ETH Price: $3,083.51 (-0.16%)
Gas: 4 Gwei

Token

Member Berries 🍇 (GRAPE)
 

Overview

Max Total Supply

420,000,000 GRAPE

Holders

66

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Filtered by Token Holder
Uniswap V2: GRAPE 14
Balance
0.00000146 GRAPE

Value
$0.00
0x7757c68a8c5d779aff10f2a0dd992b6f7e359c2e
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:
GRAPE

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-28
*/

/*

🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 
🍇      Member wen memecoins were fun? Member wen memecoins went up?    🍇
🍇                                                                      🍇
🍇                              I member                                🍇
🍇                                                                      🍇
🍇          $GRAPE       And you too shall member        $GRAPE         🍇
🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇 🍇

🔗 Telegram: https://t.me/grapeerc20portal
🐦 Twitter: https://x.com/grape_erc20
🖥️ Website: https://tickergrape.com

*/

// SPDX-License-Identifier: MIT

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 sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

}

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

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 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 GRAPE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    bool public delayTransferEnabled = false;
    bool private inSwap = false;
    bool private enabledSwap = false;
    string private constant _name = unicode"Member Berries 🍇";
    string private constant _symbol = unicode"GRAPE";

    uint8 private constant _decimals = 8;
    uint256 private constant _totalSupply = 420000000 * 10**_decimals;
    uint256 public _maxTxAmount = 4200000 * 10**_decimals;
    uint256 public _maxWalletSize = 8400000 * 10**_decimals;
    uint256 public _taxSwapThreshold=  0 * 10**_decimals;
    uint256 public _maxTaxSwap = 4169696 * 10**_decimals;

    uint256 private _beginningBuyTax=20;
    uint256 private _beginningSellTax=40;
    uint256 private _lowerBuyTaxAfter=50;
    uint256 private _lowerSellTaxAfter=123;

    mapping (address => bool) private memberBots;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _preventSwapBefore=50;
    uint256 private _buyCount=0;

    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _lastTrsTime;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;

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

    address payable private _MemberFund;

    constructor () {
        _MemberFund = payable(_msgSender());
        _balances[_msgSender()] = _totalSupply;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_MemberFund] = true;

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _totalSupply;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    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 zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

            if (delayTransferEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                  require(_lastTrsTime[tx.origin] < block.number,"Transfers are limited to one per block.");
                  _lastTrsTime[tx.origin] = block.number;
                }
            }

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

            taxAmount = amount.mul((_buyCount>_lowerBuyTaxAfter)?_finalBuyTax:_beginningBuyTax).div(100);
            if(to == uniswapV2Pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_buyCount>_lowerSellTaxAfter)?_finalSellTax:_beginningSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && enabledSwap && 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 removeLimits() external onlyOwner{
        _maxTxAmount = _totalSupply;
        _maxWalletSize=_totalSupply;
        delayTransferEnabled=false;
        emit MaxTxAmountUpdated(_totalSupply);
    }

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

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

    function timeToMember() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        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);
        enabledSwap = true;
        tradingOpen = true;
    }

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

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

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_MemberFund);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function finalizeBuyTaxes() external {
      require(_msgSender()==_MemberFund);
      _beginningBuyTax=_finalBuyTax;
    }

    function lowerSellTaxes() external {
      require(_msgSender()==_MemberFund);
      _beginningSellTax= _beginningSellTax - 10;
    }

    function finalizeSellTaxes() external {
      require(_msgSender()==_MemberFund);
      _beginningSellTax=_finalSellTax;
    }

//Time to member....$GRAPES//

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"delayTransferEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalizeBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalizeSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lowerSellTaxes","outputs":[],"stateMutability":"nonpayable","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"timeToMember","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f8060146101000a81548160ff0219169083151502179055505f8060156101000a81548160ff0219169083151502179055505f8060166101000a81548160ff0219169083151502179055506008600a6200005f919062000604565b624016406200006f919062000654565b6001556008600a62000082919062000604565b62802c8062000092919062000654565b6002556008600a620000a5919062000604565b5f620000b2919062000654565b6003556008600a620000c5919062000604565b623f9fe0620000d5919062000654565b600455601460055560286006556032600755607b6008556001600c556001600d556032600e555f600f553480156200010b575f80fd5b505f6200011d6200044460201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001c96200044460201b60201c565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a62000218919062000604565b631908b10062000229919062000654565b600a5f6200023c6200044460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160105f6200028e6200044b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003b86200044460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a62000416919062000604565b631908b10062000427919062000654565b604051620004369190620006af565b60405180910390a3620006ca565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004fc57808604811115620004d457620004d362000472565b5b6001851615620004e45780820291505b8081029050620004f4856200049f565b9450620004b4565b94509492505050565b5f82620005165760019050620005e8565b8162000525575f9050620005e8565b81600181146200053e576002811462000549576200057f565b6001915050620005e8565b60ff8411156200055e576200055d62000472565b5b8360020a91508482111562000578576200057762000472565b5b50620005e8565b5060208310610133831016604e8410600b8410161715620005b95782820a905083811115620005b357620005b262000472565b5b620005e8565b620005c88484846001620004ab565b92509050818404811115620005e257620005e162000472565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200061082620005ef565b91506200061d83620005f8565b92506200064c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000505565b905092915050565b5f6200066082620005ef565b91506200066d83620005ef565b92508282026200067d81620005ef565b9150828204841483151762000697576200069662000472565b5b5092915050565b620006a981620005ef565b82525050565b5f602082019050620006c45f8301846200069e565b92915050565b6131e580620006d85f395ff3fe608060405260043610610138575f3560e01c8063715018a6116100aa5780638f9a55c01161006e5780638f9a55c0146103a157806391f5e36b146103cb57806395d89b41146103e1578063a9059cbb1461040b578063bf474bed14610447578063dd62ed3e146104715761013f565b8063715018a61461030b578063751039fc146103215780637d1db4a5146103375780638da5cb5b146103615780638dec6aaa1461038b5761013f565b806323b872dd116100fc57806323b872dd14610213578063313ce5671461024f57806340a2a9211461027957806351bc3c85146102a357806353e87e54146102b957806370a08231146102cf5761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d35780631ad1fda5146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104ad565b6040516101649190612323565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e91906123d4565b6104ea565b6040516101a0919061242c565b60405180910390f35b3480156101b4575f80fd5b506101bd610507565b6040516101ca9190612454565b60405180910390f35b3480156101de575f80fd5b506101e761050d565b6040516101f49190612454565b60405180910390f35b348015610208575f80fd5b50610211610530565b005b34801561021e575f80fd5b506102396004803603810190610234919061246d565b61059a565b604051610246919061242c565b60405180910390f35b34801561025a575f80fd5b5061026361066e565b60405161027091906124d8565b60405180910390f35b348015610284575f80fd5b5061028d610676565b60405161029a919061242c565b60405180910390f35b3480156102ae575f80fd5b506102b7610688565b005b3480156102c4575f80fd5b506102cd61071f565b005b3480156102da575f80fd5b506102f560048036038101906102f091906124f1565b610789565b6040516103029190612454565b60405180910390f35b348015610316575f80fd5b5061031f6107cf565b005b34801561032c575f80fd5b5061033561091d565b005b348015610342575f80fd5b5061034b610a65565b6040516103589190612454565b60405180910390f35b34801561036c575f80fd5b50610375610a6b565b604051610382919061252b565b60405180910390f35b348015610396575f80fd5b5061039f610a92565b005b3480156103ac575f80fd5b506103b5610b08565b6040516103c29190612454565b60405180910390f35b3480156103d6575f80fd5b506103df610b0e565b005b3480156103ec575f80fd5b506103f561102f565b6040516104029190612323565b60405180910390f35b348015610416575f80fd5b50610431600480360381019061042c91906123d4565b61106c565b60405161043e919061242c565b60405180910390f35b348015610452575f80fd5b5061045b611089565b6040516104689190612454565b60405180910390f35b34801561047c575f80fd5b5061049760048036038101906104929190612544565b61108f565b6040516104a49190612454565b60405180910390f35b60606040518060400160405280601381526020017f4d656d626572204265727269657320f09f8d8700000000000000000000000000815250905090565b5f6104fd6104f6611111565b8484611118565b6001905092915050565b60045481565b5f6008600a61051c91906126de565b631908b10061052b9190612728565b905090565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610570611111565b73ffffffffffffffffffffffffffffffffffffffff161461058f575f80fd5b600c54600581905550565b5f6105a68484846112db565b610663846105b2611111565b61065e8560405180606001604052806028815260200161318860289139600b5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610615611111565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d589092919063ffffffff16565b611118565b600190509392505050565b5f6008905090565b5f60149054906101000a900460ff1681565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106c8611111565b73ffffffffffffffffffffffffffffffffffffffff16146106e7575f80fd5b5f6106f130610789565b90505f8111156107055761070481611dba565b5b5f4790505f81111561071b5761071a81612041565b5b5050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661075f611111565b73ffffffffffffffffffffffffffffffffffffffff161461077e575f80fd5b600d54600681905550565b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107d7611111565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a906127b3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610925611111565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a8906127b3565b60405180910390fd5b6008600a6109bf91906126de565b631908b1006109ce9190612728565b6001819055506008600a6109e291906126de565b631908b1006109f19190612728565b6002819055505f8060146101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610a3f91906126de565b631908b100610a4e9190612728565b604051610a5b9190612454565b60405180910390a1565b60015481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ad2611111565b73ffffffffffffffffffffffffffffffffffffffff1614610af1575f80fd5b600a600654610b0091906127d1565b600681905550565b60025481565b610b16611111565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b99906127b3565b60405180910390fd5b601360149054906101000a900460ff1615610bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be99061284e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c8e3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610c7a91906126de565b631908b100610c899190612728565b611118565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cf8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d1c9190612880565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610da2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc69190612880565b6040518363ffffffff1660e01b8152600401610de39291906128ab565b6020604051808303815f875af1158015610dff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e239190612880565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610eaa30610789565b5f80610eb4610a6b565b426040518863ffffffff1660e01b8152600401610ed696959493929190612914565b60606040518083038185885af1158015610ef2573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f179190612987565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fb79291906129d7565b6020604051808303815f875af1158015610fd3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ff79190612a28565b5060015f60166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b60606040518060400160405280600581526020017f4752415045000000000000000000000000000000000000000000000000000000815250905090565b5f61107f611078611111565b84846112db565b6001905092915050565b60035481565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d90612a9d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111eb90612b2b565b60405180910390fd5b80600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112ce9190612454565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611349576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134090612bb9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ae90612c47565b60405180910390fd5b5f81116113f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f090612cd5565b60405180910390fd5b5f611402610a6b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114705750611440610a6b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611aa85760095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611513575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61151b575f80fd5b5f60149054906101000a900460ff16156116a15760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115d9575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116a0574360115f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541061165d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165490612d63565b60405180910390fd5b4360115f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561174a575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561179d575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611876576001548211156117e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117de90612dcb565b60405180910390fd5b600254826117f485610789565b6117fe9190612de9565b111561183f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183690612e66565b60405180910390fd5b600e54600f54101561185e57611854836120a9565b1561185d575f80fd5b5b600f5f81548092919061187090612e84565b91905055505b6118b260646118a4600754600f541161189157600554611895565b600c545b856120ba90919063ffffffff16565b61213190919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561193c57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119c557600154821115611986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197d90612dcb565b60405180910390fd5b6119c260646119b4600854600f54116119a1576006546119a5565b600d545b856120ba90919063ffffffff16565b61213190919063ffffffff16565b90505b5f6119cf30610789565b90505f60159054906101000a900460ff16158015611a39575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a5057505f60169054906101000a900460ff165b8015611a5d575060035481115b8015611a6c5750600e54600f54115b15611aa657611a8e611a8984611a848460045461217a565b61217a565b611dba565b5f4790505f811115611aa457611aa347612041565b5b505b505b5f811115611ba757611b0081600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461219290919063ffffffff16565b600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b9e9190612454565b60405180910390a35b611bf782600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121ef90919063ffffffff16565b600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c9a611c4e82846121ef90919063ffffffff16565b600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461219290919063ffffffff16565b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d3d84866121ef90919063ffffffff16565b604051611d4a9190612454565b60405180910390a350505050565b5f838311158290611d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d969190612323565b60405180910390fd5b505f8385611dad91906127d1565b9050809150509392505050565b60015f60156101000a81548160ff0219169083151502179055505f81031561202557601360149054906101000a900460ff1615612025575f600267ffffffffffffffff811115611e0d57611e0c612ecb565b5b604051908082528060200260200182016040528015611e3b5781602001602082028036833780820191505090505b50905030815f81518110611e5257611e51612ef8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ef6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f1a9190612880565b81600181518110611f2e57611f2d612ef8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f943060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611118565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611ff6959493929190612fdc565b5f604051808303815f87803b15801561200d575f80fd5b505af115801561201f573d5f803e3d5ffd5b50505050505b5f8060156101000a81548160ff02191690831515021790555050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120a5573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f8083036120ca575f905061212b565b5f82846120d79190612728565b90508284826120e69190613061565b14612126576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211d90613101565b60405180910390fd5b809150505b92915050565b5f61217283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612238565b905092915050565b5f818311612188578261218a565b815b905092915050565b5f8082846121a09190612de9565b9050838110156121e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121dc90613169565b60405180910390fd5b8091505092915050565b5f61223083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d58565b905092915050565b5f808311829061227e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122759190612323565b60405180910390fd5b505f838561228c9190613061565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122d05780820151818401526020810190506122b5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6122f582612299565b6122ff81856122a3565b935061230f8185602086016122b3565b612318816122db565b840191505092915050565b5f6020820190508181035f83015261233b81846122eb565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61237082612347565b9050919050565b61238081612366565b811461238a575f80fd5b50565b5f8135905061239b81612377565b92915050565b5f819050919050565b6123b3816123a1565b81146123bd575f80fd5b50565b5f813590506123ce816123aa565b92915050565b5f80604083850312156123ea576123e9612343565b5b5f6123f78582860161238d565b9250506020612408858286016123c0565b9150509250929050565b5f8115159050919050565b61242681612412565b82525050565b5f60208201905061243f5f83018461241d565b92915050565b61244e816123a1565b82525050565b5f6020820190506124675f830184612445565b92915050565b5f805f6060848603121561248457612483612343565b5b5f6124918682870161238d565b93505060206124a28682870161238d565b92505060406124b3868287016123c0565b9150509250925092565b5f60ff82169050919050565b6124d2816124bd565b82525050565b5f6020820190506124eb5f8301846124c9565b92915050565b5f6020828403121561250657612505612343565b5b5f6125138482850161238d565b91505092915050565b61252581612366565b82525050565b5f60208201905061253e5f83018461251c565b92915050565b5f806040838503121561255a57612559612343565b5b5f6125678582860161238d565b92505060206125788582860161238d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612604578086048111156125e0576125df612582565b5b60018516156125ef5780820291505b80810290506125fd856125af565b94506125c4565b94509492505050565b5f8261261c57600190506126d7565b81612629575f90506126d7565b816001811461263f576002811461264957612678565b60019150506126d7565b60ff84111561265b5761265a612582565b5b8360020a91508482111561267257612671612582565b5b506126d7565b5060208310610133831016604e8410600b84101617156126ad5782820a9050838111156126a8576126a7612582565b5b6126d7565b6126ba84848460016125bb565b925090508184048111156126d1576126d0612582565b5b81810290505b9392505050565b5f6126e8826123a1565b91506126f3836124bd565b92506127207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461260d565b905092915050565b5f612732826123a1565b915061273d836123a1565b925082820261274b816123a1565b9150828204841483151761276257612761612582565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61279d6020836122a3565b91506127a882612769565b602082019050919050565b5f6020820190508181035f8301526127ca81612791565b9050919050565b5f6127db826123a1565b91506127e6836123a1565b92508282039050818111156127fe576127fd612582565b5b92915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128386017836122a3565b915061284382612804565b602082019050919050565b5f6020820190508181035f8301526128658161282c565b9050919050565b5f8151905061287a81612377565b92915050565b5f6020828403121561289557612894612343565b5b5f6128a28482850161286c565b91505092915050565b5f6040820190506128be5f83018561251c565b6128cb602083018461251c565b9392505050565b5f819050919050565b5f819050919050565b5f6128fe6128f96128f4846128d2565b6128db565b6123a1565b9050919050565b61290e816128e4565b82525050565b5f60c0820190506129275f83018961251c565b6129346020830188612445565b6129416040830187612905565b61294e6060830186612905565b61295b608083018561251c565b61296860a0830184612445565b979650505050505050565b5f81519050612981816123aa565b92915050565b5f805f6060848603121561299e5761299d612343565b5b5f6129ab86828701612973565b93505060206129bc86828701612973565b92505060406129cd86828701612973565b9150509250925092565b5f6040820190506129ea5f83018561251c565b6129f76020830184612445565b9392505050565b612a0781612412565b8114612a11575f80fd5b50565b5f81519050612a22816129fe565b92915050565b5f60208284031215612a3d57612a3c612343565b5b5f612a4a84828501612a14565b91505092915050565b7f45524332303a20617070726f76652066726f6d207a65726f20616464726573735f82015250565b5f612a876020836122a3565b9150612a9282612a53565b602082019050919050565b5f6020820190508181035f830152612ab481612a7b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b156022836122a3565b9150612b2082612abb565b604082019050919050565b5f6020820190508181035f830152612b4281612b09565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ba36025836122a3565b9150612bae82612b49565b604082019050919050565b5f6020820190508181035f830152612bd081612b97565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612c316023836122a3565b9150612c3c82612bd7565b604082019050919050565b5f6020820190508181035f830152612c5e81612c25565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612cbf6029836122a3565b9150612cca82612c65565b604082019050919050565b5f6020820190508181035f830152612cec81612cb3565b9050919050565b7f5472616e736665727320617265206c696d6974656420746f206f6e65207065725f8201527f20626c6f636b2e00000000000000000000000000000000000000000000000000602082015250565b5f612d4d6027836122a3565b9150612d5882612cf3565b604082019050919050565b5f6020820190508181035f830152612d7a81612d41565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612db56019836122a3565b9150612dc082612d81565b602082019050919050565b5f6020820190508181035f830152612de281612da9565b9050919050565b5f612df3826123a1565b9150612dfe836123a1565b9250828201905080821115612e1657612e15612582565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612e50601a836122a3565b9150612e5b82612e1c565b602082019050919050565b5f6020820190508181035f830152612e7d81612e44565b9050919050565b5f612e8e826123a1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ec057612ebf612582565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f5781612366565b82525050565b5f612f688383612f4e565b60208301905092915050565b5f602082019050919050565b5f612f8a82612f25565b612f948185612f2f565b9350612f9f83612f3f565b805f5b83811015612fcf578151612fb68882612f5d565b9750612fc183612f74565b925050600181019050612fa2565b5085935050505092915050565b5f60a082019050612fef5f830188612445565b612ffc6020830187612905565b818103604083015261300e8186612f80565b905061301d606083018561251c565b61302a6080830184612445565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61306b826123a1565b9150613076836123a1565b92508261308657613085613034565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130eb6021836122a3565b91506130f682613091565b604082019050919050565b5f6020820190508181035f830152613118816130df565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613153601b836122a3565b915061315e8261311f565b602082019050919050565b5f6020820190508181035f83015261318081613147565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220030254b51c4e71fee66621f5af63c6cd539926556801d413b8a5c1acc28f77b164736f6c63430008140033

Deployed Bytecode

0x608060405260043610610138575f3560e01c8063715018a6116100aa5780638f9a55c01161006e5780638f9a55c0146103a157806391f5e36b146103cb57806395d89b41146103e1578063a9059cbb1461040b578063bf474bed14610447578063dd62ed3e146104715761013f565b8063715018a61461030b578063751039fc146103215780637d1db4a5146103375780638da5cb5b146103615780638dec6aaa1461038b5761013f565b806323b872dd116100fc57806323b872dd14610213578063313ce5671461024f57806340a2a9211461027957806351bc3c85146102a357806353e87e54146102b957806370a08231146102cf5761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d35780631ad1fda5146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104ad565b6040516101649190612323565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e91906123d4565b6104ea565b6040516101a0919061242c565b60405180910390f35b3480156101b4575f80fd5b506101bd610507565b6040516101ca9190612454565b60405180910390f35b3480156101de575f80fd5b506101e761050d565b6040516101f49190612454565b60405180910390f35b348015610208575f80fd5b50610211610530565b005b34801561021e575f80fd5b506102396004803603810190610234919061246d565b61059a565b604051610246919061242c565b60405180910390f35b34801561025a575f80fd5b5061026361066e565b60405161027091906124d8565b60405180910390f35b348015610284575f80fd5b5061028d610676565b60405161029a919061242c565b60405180910390f35b3480156102ae575f80fd5b506102b7610688565b005b3480156102c4575f80fd5b506102cd61071f565b005b3480156102da575f80fd5b506102f560048036038101906102f091906124f1565b610789565b6040516103029190612454565b60405180910390f35b348015610316575f80fd5b5061031f6107cf565b005b34801561032c575f80fd5b5061033561091d565b005b348015610342575f80fd5b5061034b610a65565b6040516103589190612454565b60405180910390f35b34801561036c575f80fd5b50610375610a6b565b604051610382919061252b565b60405180910390f35b348015610396575f80fd5b5061039f610a92565b005b3480156103ac575f80fd5b506103b5610b08565b6040516103c29190612454565b60405180910390f35b3480156103d6575f80fd5b506103df610b0e565b005b3480156103ec575f80fd5b506103f561102f565b6040516104029190612323565b60405180910390f35b348015610416575f80fd5b50610431600480360381019061042c91906123d4565b61106c565b60405161043e919061242c565b60405180910390f35b348015610452575f80fd5b5061045b611089565b6040516104689190612454565b60405180910390f35b34801561047c575f80fd5b5061049760048036038101906104929190612544565b61108f565b6040516104a49190612454565b60405180910390f35b60606040518060400160405280601381526020017f4d656d626572204265727269657320f09f8d8700000000000000000000000000815250905090565b5f6104fd6104f6611111565b8484611118565b6001905092915050565b60045481565b5f6008600a61051c91906126de565b631908b10061052b9190612728565b905090565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610570611111565b73ffffffffffffffffffffffffffffffffffffffff161461058f575f80fd5b600c54600581905550565b5f6105a68484846112db565b610663846105b2611111565b61065e8560405180606001604052806028815260200161318860289139600b5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610615611111565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d589092919063ffffffff16565b611118565b600190509392505050565b5f6008905090565b5f60149054906101000a900460ff1681565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106c8611111565b73ffffffffffffffffffffffffffffffffffffffff16146106e7575f80fd5b5f6106f130610789565b90505f8111156107055761070481611dba565b5b5f4790505f81111561071b5761071a81612041565b5b5050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661075f611111565b73ffffffffffffffffffffffffffffffffffffffff161461077e575f80fd5b600d54600681905550565b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107d7611111565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a906127b3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610925611111565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a8906127b3565b60405180910390fd5b6008600a6109bf91906126de565b631908b1006109ce9190612728565b6001819055506008600a6109e291906126de565b631908b1006109f19190612728565b6002819055505f8060146101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610a3f91906126de565b631908b100610a4e9190612728565b604051610a5b9190612454565b60405180910390a1565b60015481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ad2611111565b73ffffffffffffffffffffffffffffffffffffffff1614610af1575f80fd5b600a600654610b0091906127d1565b600681905550565b60025481565b610b16611111565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b99906127b3565b60405180910390fd5b601360149054906101000a900460ff1615610bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be99061284e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c8e3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610c7a91906126de565b631908b100610c899190612728565b611118565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cf8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d1c9190612880565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610da2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc69190612880565b6040518363ffffffff1660e01b8152600401610de39291906128ab565b6020604051808303815f875af1158015610dff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e239190612880565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610eaa30610789565b5f80610eb4610a6b565b426040518863ffffffff1660e01b8152600401610ed696959493929190612914565b60606040518083038185885af1158015610ef2573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f179190612987565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fb79291906129d7565b6020604051808303815f875af1158015610fd3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ff79190612a28565b5060015f60166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b60606040518060400160405280600581526020017f4752415045000000000000000000000000000000000000000000000000000000815250905090565b5f61107f611078611111565b84846112db565b6001905092915050565b60035481565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d90612a9d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111eb90612b2b565b60405180910390fd5b80600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112ce9190612454565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611349576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134090612bb9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ae90612c47565b60405180910390fd5b5f81116113f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f090612cd5565b60405180910390fd5b5f611402610a6b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114705750611440610a6b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611aa85760095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611513575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61151b575f80fd5b5f60149054906101000a900460ff16156116a15760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115d9575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116a0574360115f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541061165d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165490612d63565b60405180910390fd5b4360115f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561174a575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561179d575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611876576001548211156117e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117de90612dcb565b60405180910390fd5b600254826117f485610789565b6117fe9190612de9565b111561183f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183690612e66565b60405180910390fd5b600e54600f54101561185e57611854836120a9565b1561185d575f80fd5b5b600f5f81548092919061187090612e84565b91905055505b6118b260646118a4600754600f541161189157600554611895565b600c545b856120ba90919063ffffffff16565b61213190919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561193c57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119c557600154821115611986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197d90612dcb565b60405180910390fd5b6119c260646119b4600854600f54116119a1576006546119a5565b600d545b856120ba90919063ffffffff16565b61213190919063ffffffff16565b90505b5f6119cf30610789565b90505f60159054906101000a900460ff16158015611a39575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a5057505f60169054906101000a900460ff165b8015611a5d575060035481115b8015611a6c5750600e54600f54115b15611aa657611a8e611a8984611a848460045461217a565b61217a565b611dba565b5f4790505f811115611aa457611aa347612041565b5b505b505b5f811115611ba757611b0081600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461219290919063ffffffff16565b600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b9e9190612454565b60405180910390a35b611bf782600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121ef90919063ffffffff16565b600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c9a611c4e82846121ef90919063ffffffff16565b600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461219290919063ffffffff16565b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d3d84866121ef90919063ffffffff16565b604051611d4a9190612454565b60405180910390a350505050565b5f838311158290611d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d969190612323565b60405180910390fd5b505f8385611dad91906127d1565b9050809150509392505050565b60015f60156101000a81548160ff0219169083151502179055505f81031561202557601360149054906101000a900460ff1615612025575f600267ffffffffffffffff811115611e0d57611e0c612ecb565b5b604051908082528060200260200182016040528015611e3b5781602001602082028036833780820191505090505b50905030815f81518110611e5257611e51612ef8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ef6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f1a9190612880565b81600181518110611f2e57611f2d612ef8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f943060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611118565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611ff6959493929190612fdc565b5f604051808303815f87803b15801561200d575f80fd5b505af115801561201f573d5f803e3d5ffd5b50505050505b5f8060156101000a81548160ff02191690831515021790555050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120a5573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f8083036120ca575f905061212b565b5f82846120d79190612728565b90508284826120e69190613061565b14612126576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211d90613101565b60405180910390fd5b809150505b92915050565b5f61217283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612238565b905092915050565b5f818311612188578261218a565b815b905092915050565b5f8082846121a09190612de9565b9050838110156121e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121dc90613169565b60405180910390fd5b8091505092915050565b5f61223083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d58565b905092915050565b5f808311829061227e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122759190612323565b60405180910390fd5b505f838561228c9190613061565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122d05780820151818401526020810190506122b5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6122f582612299565b6122ff81856122a3565b935061230f8185602086016122b3565b612318816122db565b840191505092915050565b5f6020820190508181035f83015261233b81846122eb565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61237082612347565b9050919050565b61238081612366565b811461238a575f80fd5b50565b5f8135905061239b81612377565b92915050565b5f819050919050565b6123b3816123a1565b81146123bd575f80fd5b50565b5f813590506123ce816123aa565b92915050565b5f80604083850312156123ea576123e9612343565b5b5f6123f78582860161238d565b9250506020612408858286016123c0565b9150509250929050565b5f8115159050919050565b61242681612412565b82525050565b5f60208201905061243f5f83018461241d565b92915050565b61244e816123a1565b82525050565b5f6020820190506124675f830184612445565b92915050565b5f805f6060848603121561248457612483612343565b5b5f6124918682870161238d565b93505060206124a28682870161238d565b92505060406124b3868287016123c0565b9150509250925092565b5f60ff82169050919050565b6124d2816124bd565b82525050565b5f6020820190506124eb5f8301846124c9565b92915050565b5f6020828403121561250657612505612343565b5b5f6125138482850161238d565b91505092915050565b61252581612366565b82525050565b5f60208201905061253e5f83018461251c565b92915050565b5f806040838503121561255a57612559612343565b5b5f6125678582860161238d565b92505060206125788582860161238d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612604578086048111156125e0576125df612582565b5b60018516156125ef5780820291505b80810290506125fd856125af565b94506125c4565b94509492505050565b5f8261261c57600190506126d7565b81612629575f90506126d7565b816001811461263f576002811461264957612678565b60019150506126d7565b60ff84111561265b5761265a612582565b5b8360020a91508482111561267257612671612582565b5b506126d7565b5060208310610133831016604e8410600b84101617156126ad5782820a9050838111156126a8576126a7612582565b5b6126d7565b6126ba84848460016125bb565b925090508184048111156126d1576126d0612582565b5b81810290505b9392505050565b5f6126e8826123a1565b91506126f3836124bd565b92506127207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461260d565b905092915050565b5f612732826123a1565b915061273d836123a1565b925082820261274b816123a1565b9150828204841483151761276257612761612582565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61279d6020836122a3565b91506127a882612769565b602082019050919050565b5f6020820190508181035f8301526127ca81612791565b9050919050565b5f6127db826123a1565b91506127e6836123a1565b92508282039050818111156127fe576127fd612582565b5b92915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128386017836122a3565b915061284382612804565b602082019050919050565b5f6020820190508181035f8301526128658161282c565b9050919050565b5f8151905061287a81612377565b92915050565b5f6020828403121561289557612894612343565b5b5f6128a28482850161286c565b91505092915050565b5f6040820190506128be5f83018561251c565b6128cb602083018461251c565b9392505050565b5f819050919050565b5f819050919050565b5f6128fe6128f96128f4846128d2565b6128db565b6123a1565b9050919050565b61290e816128e4565b82525050565b5f60c0820190506129275f83018961251c565b6129346020830188612445565b6129416040830187612905565b61294e6060830186612905565b61295b608083018561251c565b61296860a0830184612445565b979650505050505050565b5f81519050612981816123aa565b92915050565b5f805f6060848603121561299e5761299d612343565b5b5f6129ab86828701612973565b93505060206129bc86828701612973565b92505060406129cd86828701612973565b9150509250925092565b5f6040820190506129ea5f83018561251c565b6129f76020830184612445565b9392505050565b612a0781612412565b8114612a11575f80fd5b50565b5f81519050612a22816129fe565b92915050565b5f60208284031215612a3d57612a3c612343565b5b5f612a4a84828501612a14565b91505092915050565b7f45524332303a20617070726f76652066726f6d207a65726f20616464726573735f82015250565b5f612a876020836122a3565b9150612a9282612a53565b602082019050919050565b5f6020820190508181035f830152612ab481612a7b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b156022836122a3565b9150612b2082612abb565b604082019050919050565b5f6020820190508181035f830152612b4281612b09565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ba36025836122a3565b9150612bae82612b49565b604082019050919050565b5f6020820190508181035f830152612bd081612b97565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612c316023836122a3565b9150612c3c82612bd7565b604082019050919050565b5f6020820190508181035f830152612c5e81612c25565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612cbf6029836122a3565b9150612cca82612c65565b604082019050919050565b5f6020820190508181035f830152612cec81612cb3565b9050919050565b7f5472616e736665727320617265206c696d6974656420746f206f6e65207065725f8201527f20626c6f636b2e00000000000000000000000000000000000000000000000000602082015250565b5f612d4d6027836122a3565b9150612d5882612cf3565b604082019050919050565b5f6020820190508181035f830152612d7a81612d41565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612db56019836122a3565b9150612dc082612d81565b602082019050919050565b5f6020820190508181035f830152612de281612da9565b9050919050565b5f612df3826123a1565b9150612dfe836123a1565b9250828201905080821115612e1657612e15612582565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612e50601a836122a3565b9150612e5b82612e1c565b602082019050919050565b5f6020820190508181035f830152612e7d81612e44565b9050919050565b5f612e8e826123a1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ec057612ebf612582565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f5781612366565b82525050565b5f612f688383612f4e565b60208301905092915050565b5f602082019050919050565b5f612f8a82612f25565b612f948185612f2f565b9350612f9f83612f3f565b805f5b83811015612fcf578151612fb68882612f5d565b9750612fc183612f74565b925050600181019050612fa2565b5085935050505092915050565b5f60a082019050612fef5f830188612445565b612ffc6020830187612905565b818103604083015261300e8186612f80565b905061301d606083018561251c565b61302a6080830184612445565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61306b826123a1565b9150613076836123a1565b92508261308657613085613034565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130eb6021836122a3565b91506130f682613091565b604082019050919050565b5f6020820190508181035f830152613118816130df565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613153601b836122a3565b915061315e8261311f565b602082019050919050565b5f6020820190508181035f83015261318081613147565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220030254b51c4e71fee66621f5af63c6cd539926556801d413b8a5c1acc28f77b164736f6c63430008140033

Deployed Bytecode Sourcemap

4307:8817:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6266:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7104:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4930:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6448:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12679:126;;;;;;;;;;;;;:::i;:::-;;7273:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6357:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4390:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12322:349;;;;;;;;;;;;;:::i;:::-;;12957:129;;;;;;;;;;;;;:::i;:::-;;6651:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3512:148;;;;;;;;;;;;;:::i;:::-;;10408:211;;;;;;;;;;;;;:::i;:::-;;4749:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3298:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12813:136;;;;;;;;;;;;;:::i;:::-;;4809:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11296:677;;;;;;;;;;;;;:::i;:::-;;6556:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6778:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4871:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6953:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6266:83;6303:13;6336:5;;;;;;;;;;;;;;;;;6329:12;;6266:83;:::o;7104:161::-;7179:4;7196:39;7205:12;:10;:12::i;:::-;7219:7;7228:6;7196:8;:39::i;:::-;7253:4;7246:11;;7104:161;;;;:::o;4930:52::-;;;;:::o;6448:100::-;6501:7;4669:1;4729:2;:13;;;;:::i;:::-;4717:9;:25;;;;:::i;:::-;6521:19;;6448:100;:::o;12679:126::-;12747:11;;;;;;;;;;;12733:25;;:12;:10;:12::i;:::-;:25;;;12725:34;;;;;;12785:12;;12768:16;:29;;;;12679:126::o;7273:313::-;7371:4;7388:36;7398:6;7406:9;7417:6;7388:9;:36::i;:::-;7435:121;7444:6;7452:12;:10;:12::i;:::-;7466:89;7504:6;7466:89;;;;;;;;;;;;;;;;;:11;:19;7478:6;7466:19;;;;;;;;;;;;;;;:33;7486:12;:10;:12::i;:::-;7466:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7435:8;:121::i;:::-;7574:4;7567:11;;7273:313;;;;;:::o;6357:83::-;6398:5;4669:1;6416:16;;6357:83;:::o;4390:40::-;;;;;;;;;;;;;:::o;12322:349::-;12386:11;;;;;;;;;;;12372:25;;:12;:10;:12::i;:::-;:25;;;12364:34;;;;;;12409:20;12430:24;12448:4;12430:9;:24::i;:::-;12409:45;;12481:1;12468:12;:14;12465:73;;;12496:30;12513:12;12496:16;:30::i;:::-;12465:73;12548:18;12567:21;12548:40;;12613:1;12602:10;:12;12599:65;;;12628:24;12641:10;12628:12;:24::i;:::-;12599:65;12353:318;;12322:349::o;12957:129::-;13026:11;;;;;;;;;;;13012:25;;:12;:10;:12::i;:::-;:25;;;13004:34;;;;;;13065:13;;13047:17;:31;;;;12957:129::o;6651:119::-;6717:7;6744:9;:18;6754:7;6744:18;;;;;;;;;;;;;;;;6737:25;;6651:119;;;:::o;3512:148::-;3435:12;:10;:12::i;:::-;3425:22;;:6;;;;;;;;;;:22;;;3417:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3619:1:::1;3582:40;;3603:6;::::0;::::1;;;;;;;;3582:40;;;;;;;;;;;;3650:1;3633:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3512:148::o:0;10408:211::-;3435:12;:10;:12::i;:::-;3425:22;;:6;;;;;;;;;;:22;;;3417:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4669:1:::1;4729:2;:13;;;;:::i;:::-;4717:9;:25;;;;:::i;:::-;10461:12;:27;;;;4669:1;4729:2;:13;;;;:::i;:::-;4717:9;:25;;;;:::i;:::-;10499:14;:27;;;;10558:5;10537:20:::0;::::1;:26;;;;;;;;;;;;;;;;;;10579:32;4669:1;4729:2;:13;;;;:::i;:::-;4717:9;:25;;;;:::i;:::-;10579:32;;;;;;:::i;:::-;;;;;;;;10408:211::o:0;4749:53::-;;;;:::o;3298:79::-;3336:7;3363:6;;;;;;;;;;;3356:13;;3298:79;:::o;12813:136::-;12879:11;;;;;;;;;;;12865:25;;:12;:10;:12::i;:::-;:25;;;12857:34;;;;;;12939:2;12919:17;;:22;;;;:::i;:::-;12900:17;:41;;;;12813:136::o;4809:55::-;;;;:::o;11296:677::-;3435:12;:10;:12::i;:::-;3425:22;;:6;;;;;;;;;;:22;;;3417:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11361:11:::1;;;;;;;;;;;11360:12;11352:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11447:42;11410:15;;:80;;;;;;;;;;;;;;;;;;11501:63;11518:4;11533:15;;;;;;;;;;;4669:1;4729:2;:13;;;;:::i;:::-;4717:9;:25;;;;:::i;:::-;11501:8;:63::i;:::-;11609:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11591:55;;;11655:4;11662:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11591:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11575:13;;:110;;;;;;;;;;;;;;;;;;11696:15;;;;;;;;;;;:31;;;11735:21;11766:4;11772:24;11790:4;11772:9;:24::i;:::-;11797:1;11799::::0;11801:7:::1;:5;:7::i;:::-;11809:15;11696:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11843:13;;;;;;;;;;;11836:29;;;11874:15;;;;;;;;;;;11892:14;11836:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11932:4;11918:11;;:18;;;;;;;;;;;;;;;;;;11961:4;11947:11;;:18;;;;;;;;;;;;;;;;;;11296:677::o:0;6556:87::-;6595:13;6628:7;;;;;;;;;;;;;;;;;6621:14;;6556:87;:::o;6778:167::-;6856:4;6873:42;6883:12;:10;:12::i;:::-;6897:9;6908:6;6873:9;:42::i;:::-;6933:4;6926:11;;6778:167;;;;:::o;4871:52::-;;;;:::o;6953:143::-;7034:7;7061:11;:18;7073:5;7061:18;;;;;;;;;;;;;;;:27;7080:7;7061:27;;;;;;;;;;;;;;;;7054:34;;6953:143;;;;:::o;923:98::-;976:7;1003:10;996:17;;923:98;:::o;7594:331::-;7704:1;7687:19;;:5;:19;;;7679:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7781:1;7762:21;;:7;:21;;;7754:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7863:6;7833:11;:18;7845:5;7833:18;;;;;;;;;;;;;;;:27;7852:7;7833:27;;;;;;;;;;;;;;;:36;;;;7901:7;7885:32;;7894:5;7885:32;;;7910:6;7885:32;;;;;;:::i;:::-;;;;;;;;7594:331;;;:::o;7933:2467::-;8037:1;8021:18;;:4;:18;;;8013:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8114:1;8100:16;;:2;:16;;;8092:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8184:1;8175:6;:10;8167:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8242:17;8284:7;:5;:7::i;:::-;8276:15;;:4;:15;;;;:32;;;;;8301:7;:5;:7::i;:::-;8295:13;;:2;:13;;;;8276:32;8272:1772;;;8334:10;:16;8345:4;8334:16;;;;;;;;;;;;;;;;;;;;;;;;;8333:17;:36;;;;;8355:10;:14;8366:2;8355:14;;;;;;;;;;;;;;;;;;;;;;;;;8354:15;8333:36;8325:45;;;;;;8391:20;;;;;;;;;;;8387:317;;;8450:15;;;;;;;;;;;8436:30;;:2;:30;;;;:62;;;;;8484:13;;;;;;;;;;;8470:28;;:2;:28;;;;8436:62;8432:257;;;8555:12;8529;:23;8542:9;8529:23;;;;;;;;;;;;;;;;:38;8521:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;8657:12;8631;:23;8644:9;8631:23;;;;;;;;;;;;;;;:38;;;;8432:257;8387:317;8732:13;;;;;;;;;;;8724:21;;:4;:21;;;:55;;;;;8763:15;;;;;;;;;;;8749:30;;:2;:30;;;;8724:55;:83;;;;;8785:18;:22;8804:2;8785:22;;;;;;;;;;;;;;;;;;;;;;;;;8783:24;8724:83;8720:428;;;8847:12;;8837:6;:22;;8829:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8942:14;;8932:6;8916:13;8926:2;8916:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8908:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9019:18;;9009:9;;:28;9006:97;;;9068:14;9079:2;9068:10;:14::i;:::-;9067:15;9059:24;;;;;;9006:97;9121:9;;:11;;;;;;;;;:::i;:::-;;;;;;8720:428;9176:80;9252:3;9176:71;9198:17;;9188:9;;:27;9187:59;;9230:16;;9187:59;;;9217:12;;9187:59;9176:6;:10;;:71;;;;:::i;:::-;:75;;:80;;;;:::i;:::-;9164:92;;9280:13;;;;;;;;;;;9274:19;;:2;:19;;;:43;;;;;9312:4;9297:20;;:4;:20;;;;9274:43;9271:257;;;9356:12;;9346:6;:22;;9338:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9429:83;9508:3;9429:74;9451:18;;9441:9;;:28;9440:62;;9485:17;;9440:62;;;9471:13;;9440:62;9429:6;:10;;:74;;;;:::i;:::-;:78;;:83;;;;:::i;:::-;9417:95;;9271:257;9544:28;9575:24;9593:4;9575:9;:24::i;:::-;9544:55;;9619:6;;;;;;;;;;;9618:7;:30;;;;;9635:13;;;;;;;;;;;9629:19;;:2;:19;;;9618:30;:45;;;;;9652:11;;;;;;;;;;;9618:45;:87;;;;;9688:17;;9667:20;:38;9618:87;:119;;;;;9719:18;;9709:9;;:28;9618:119;9614:419;;;9758:67;9775:49;9779:6;9786:37;9790:20;9811:11;;9786:3;:37::i;:::-;9775:3;:49::i;:::-;9758:16;:67::i;:::-;9844:26;9873:21;9844:50;;9937:1;9916:18;:22;9913:105;;;9963:35;9976:21;9963:12;:35::i;:::-;9913:105;9739:294;9614:419;8310:1734;8272:1772;10069:1;10059:9;:11;10056:161;;;10109:39;10138:9;10109;:24;10127:4;10109:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10084:9;:24;10102:4;10084:24;;;;;;;;;;;;;;;:64;;;;10189:4;10166:39;;10175:4;10166:39;;;10195:9;10166:39;;;;;;:::i;:::-;;;;;;;;10056:161;10243:27;10263:6;10243:9;:15;10253:4;10243:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10227:9;:15;10237:4;10227:15;;;;;;;;;;;;;;;:43;;;;10295:40;10313:21;10324:9;10313:6;:10;;:21;;;;:::i;:::-;10295:9;:13;10305:2;10295:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10281:9;:13;10291:2;10281:13;;;;;;;;;;;;;;;:54;;;;10366:2;10351:41;;10360:4;10351:41;;;10370:21;10381:9;10370:6;:10;;:21;;;;:::i;:::-;10351:41;;;;;;:::i;:::-;;;;;;;;8002:2398;7933:2467;;;:::o;2064:190::-;2150:7;2183:1;2178;:6;;2186:12;2170:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2210:9;2226:1;2222;:5;;;;:::i;:::-;2210:17;;2245:1;2238:8;;;2064:190;;;;;:::o;10733:555::-;5828:4;5819:6;;:13;;;;;;;;;;;;;;;;;;10827:1:::1;10814:11;:14:::0;10811:27;10830:7:::1;10811:27;10852:11;;;;;;;;;;;10848:25:::0;10865:7:::1;10848:25;10883:21;10921:1;10907:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10883:40;;10952:4;10934;10939:1;10934:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10978:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10968:4;10973:1;10968:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11011:62;11028:4;11043:15;;;;;;;;;;;11061:11;11011:8;:62::i;:::-;11084:15;;;;;;;;;;;:66;;;11165:11;11191:1;11207:4;11234;11254:15;11084:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10800:488;5843:1;5864:5:::0;5855:6;;:14;;;;;;;;;;;;;;;;;;10733:555;:::o;12184:93::-;12241:11;;;;;;;;;;;:20;;:28;12262:6;12241:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12184:93;:::o;11981:195::-;12040:4;12057:12;12124:7;12112:20;12104:28;;12167:1;12160:4;:8;12153:15;;;11981:195;;;:::o;2262:246::-;2320:7;2349:1;2344;:6;2340:47;;2374:1;2367:8;;;;2340:47;2397:9;2413:1;2409;:5;;;;:::i;:::-;2397:17;;2442:1;2437;2433;:5;;;;:::i;:::-;:10;2425:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2499:1;2492:8;;;2262:246;;;;;:::o;2516:132::-;2574:7;2601:39;2605:1;2608;2601:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2594:46;;2516:132;;;;:::o;10627:98::-;10684:7;10711:1;10709;:3;10708:9;;10716:1;10708:9;;;10714:1;10708:9;10701:16;;10627:98;;;;:::o;1877:179::-;1935:7;1955:9;1971:1;1967;:5;;;;:::i;:::-;1955:17;;1996:1;1991;:6;;1983:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2047:1;2040:8;;;1877:179;;;;:::o;1733:136::-;1791:7;1818:43;1822:1;1825;1818:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1811:50;;1733:136;;;;:::o;2656:189::-;2742:7;2774:1;2770;:5;2777:12;2762:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2801:9;2817:1;2813;:5;;;;:::i;:::-;2801:17;;2836:1;2829:8;;;2656:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:102;6248:8;6295:5;6292:1;6288:13;6267:34;;6206:102;;;:::o;6314:848::-;6375:5;6382:4;6406:6;6397:15;;6430:5;6421:14;;6444:712;6465:1;6455:8;6452:15;6444:712;;;6560:4;6555:3;6551:14;6545:4;6542:24;6539:50;;;6569:18;;:::i;:::-;6539:50;6619:1;6609:8;6605:16;6602:451;;;7034:4;7027:5;7023:16;7014:25;;6602:451;7084:4;7078;7074:15;7066:23;;7114:32;7137:8;7114:32;:::i;:::-;7102:44;;6444:712;;;6314:848;;;;;;;:::o;7168:1073::-;7222:5;7413:8;7403:40;;7434:1;7425:10;;7436:5;;7403:40;7462:4;7452:36;;7479:1;7470:10;;7481:5;;7452:36;7548:4;7596:1;7591:27;;;;7632:1;7627:191;;;;7541:277;;7591:27;7609:1;7600:10;;7611:5;;;7627:191;7672:3;7662:8;7659:17;7656:43;;;7679:18;;:::i;:::-;7656:43;7728:8;7725:1;7721:16;7712:25;;7763:3;7756:5;7753:14;7750:40;;;7770:18;;:::i;:::-;7750:40;7803:5;;;7541:277;;7927:2;7917:8;7914:16;7908:3;7902:4;7899:13;7895:36;7877:2;7867:8;7864:16;7859:2;7853:4;7850:12;7846:35;7830:111;7827:246;;;7983:8;7977:4;7973:19;7964:28;;8018:3;8011:5;8008:14;8005:40;;;8025:18;;:::i;:::-;8005:40;8058:5;;7827:246;8098:42;8136:3;8126:8;8120:4;8117:1;8098:42;:::i;:::-;8083:57;;;;8172:4;8167:3;8163:14;8156:5;8153:25;8150:51;;;8181:18;;:::i;:::-;8150:51;8230:4;8223:5;8219:16;8210:25;;7168:1073;;;;;;:::o;8247:281::-;8305:5;8329:23;8347:4;8329:23;:::i;:::-;8321:31;;8373:25;8389:8;8373:25;:::i;:::-;8361:37;;8417:104;8454:66;8444:8;8438:4;8417:104;:::i;:::-;8408:113;;8247:281;;;;:::o;8534:410::-;8574:7;8597:20;8615:1;8597:20;:::i;:::-;8592:25;;8631:20;8649:1;8631:20;:::i;:::-;8626:25;;8686:1;8683;8679:9;8708:30;8726:11;8708:30;:::i;:::-;8697:41;;8887:1;8878:7;8874:15;8871:1;8868:22;8848:1;8841:9;8821:83;8798:139;;8917:18;;:::i;:::-;8798:139;8582:362;8534:410;;;;:::o;8950:182::-;9090:34;9086:1;9078:6;9074:14;9067:58;8950:182;:::o;9138:366::-;9280:3;9301:67;9365:2;9360:3;9301:67;:::i;:::-;9294:74;;9377:93;9466:3;9377:93;:::i;:::-;9495:2;9490:3;9486:12;9479:19;;9138:366;;;:::o;9510:419::-;9676:4;9714:2;9703:9;9699:18;9691:26;;9763:9;9757:4;9753:20;9749:1;9738:9;9734:17;9727:47;9791:131;9917:4;9791:131;:::i;:::-;9783:139;;9510:419;;;:::o;9935:194::-;9975:4;9995:20;10013:1;9995:20;:::i;:::-;9990:25;;10029:20;10047:1;10029:20;:::i;:::-;10024:25;;10073:1;10070;10066:9;10058:17;;10097:1;10091:4;10088:11;10085:37;;;10102:18;;:::i;:::-;10085:37;9935:194;;;;:::o;10135:173::-;10275:25;10271:1;10263:6;10259:14;10252:49;10135:173;:::o;10314:366::-;10456:3;10477:67;10541:2;10536:3;10477:67;:::i;:::-;10470:74;;10553:93;10642:3;10553:93;:::i;:::-;10671:2;10666:3;10662:12;10655:19;;10314:366;;;:::o;10686:419::-;10852:4;10890:2;10879:9;10875:18;10867:26;;10939:9;10933:4;10929:20;10925:1;10914:9;10910:17;10903:47;10967:131;11093:4;10967:131;:::i;:::-;10959:139;;10686:419;;;:::o;11111:143::-;11168:5;11199:6;11193:13;11184:22;;11215:33;11242:5;11215:33;:::i;:::-;11111:143;;;;:::o;11260:351::-;11330:6;11379:2;11367:9;11358:7;11354:23;11350:32;11347:119;;;11385:79;;:::i;:::-;11347:119;11505:1;11530:64;11586:7;11577:6;11566:9;11562:22;11530:64;:::i;:::-;11520:74;;11476:128;11260:351;;;;:::o;11617:332::-;11738:4;11776:2;11765:9;11761:18;11753:26;;11789:71;11857:1;11846:9;11842:17;11833:6;11789:71;:::i;:::-;11870:72;11938:2;11927:9;11923:18;11914:6;11870:72;:::i;:::-;11617:332;;;;;:::o;11955:85::-;12000:7;12029:5;12018:16;;11955:85;;;:::o;12046:60::-;12074:3;12095:5;12088:12;;12046:60;;;:::o;12112:158::-;12170:9;12203:61;12221:42;12230:32;12256:5;12230:32;:::i;:::-;12221:42;:::i;:::-;12203:61;:::i;:::-;12190:74;;12112:158;;;:::o;12276:147::-;12371:45;12410:5;12371:45;:::i;:::-;12366:3;12359:58;12276:147;;:::o;12429:807::-;12678:4;12716:3;12705:9;12701:19;12693:27;;12730:71;12798:1;12787:9;12783:17;12774:6;12730:71;:::i;:::-;12811:72;12879:2;12868:9;12864:18;12855:6;12811:72;:::i;:::-;12893:80;12969:2;12958:9;12954:18;12945:6;12893:80;:::i;:::-;12983;13059:2;13048:9;13044:18;13035:6;12983:80;:::i;:::-;13073:73;13141:3;13130:9;13126:19;13117:6;13073:73;:::i;:::-;13156;13224:3;13213:9;13209:19;13200:6;13156:73;:::i;:::-;12429:807;;;;;;;;;:::o;13242:143::-;13299:5;13330:6;13324:13;13315:22;;13346:33;13373:5;13346:33;:::i;:::-;13242:143;;;;:::o;13391:663::-;13479:6;13487;13495;13544:2;13532:9;13523:7;13519:23;13515:32;13512:119;;;13550:79;;:::i;:::-;13512:119;13670:1;13695:64;13751:7;13742:6;13731:9;13727:22;13695:64;:::i;:::-;13685:74;;13641:128;13808:2;13834:64;13890:7;13881:6;13870:9;13866:22;13834:64;:::i;:::-;13824:74;;13779:129;13947:2;13973:64;14029:7;14020:6;14009:9;14005:22;13973:64;:::i;:::-;13963:74;;13918:129;13391:663;;;;;:::o;14060:332::-;14181:4;14219:2;14208:9;14204:18;14196:26;;14232:71;14300:1;14289:9;14285:17;14276:6;14232:71;:::i;:::-;14313:72;14381:2;14370:9;14366:18;14357:6;14313:72;:::i;:::-;14060:332;;;;;:::o;14398:116::-;14468:21;14483:5;14468:21;:::i;:::-;14461:5;14458:32;14448:60;;14504:1;14501;14494:12;14448:60;14398:116;:::o;14520:137::-;14574:5;14605:6;14599:13;14590:22;;14621:30;14645:5;14621:30;:::i;:::-;14520:137;;;;:::o;14663:345::-;14730:6;14779:2;14767:9;14758:7;14754:23;14750:32;14747:119;;;14785:79;;:::i;:::-;14747:119;14905:1;14930:61;14983:7;14974:6;14963:9;14959:22;14930:61;:::i;:::-;14920:71;;14876:125;14663:345;;;;:::o;15014:182::-;15154:34;15150:1;15142:6;15138:14;15131:58;15014:182;:::o;15202:366::-;15344:3;15365:67;15429:2;15424:3;15365:67;:::i;:::-;15358:74;;15441:93;15530:3;15441:93;:::i;:::-;15559:2;15554:3;15550:12;15543:19;;15202:366;;;:::o;15574:419::-;15740:4;15778:2;15767:9;15763:18;15755:26;;15827:9;15821:4;15817:20;15813:1;15802:9;15798:17;15791:47;15855:131;15981:4;15855:131;:::i;:::-;15847:139;;15574:419;;;:::o;15999:221::-;16139:34;16135:1;16127:6;16123:14;16116:58;16208:4;16203:2;16195:6;16191:15;16184:29;15999:221;:::o;16226:366::-;16368:3;16389:67;16453:2;16448:3;16389:67;:::i;:::-;16382:74;;16465:93;16554:3;16465:93;:::i;:::-;16583:2;16578:3;16574:12;16567:19;;16226:366;;;:::o;16598:419::-;16764:4;16802:2;16791:9;16787:18;16779:26;;16851:9;16845:4;16841:20;16837:1;16826:9;16822:17;16815:47;16879:131;17005:4;16879:131;:::i;:::-;16871:139;;16598:419;;;:::o;17023:224::-;17163:34;17159:1;17151:6;17147:14;17140:58;17232:7;17227:2;17219:6;17215:15;17208:32;17023:224;:::o;17253:366::-;17395:3;17416:67;17480:2;17475:3;17416:67;:::i;:::-;17409:74;;17492:93;17581:3;17492:93;:::i;:::-;17610:2;17605:3;17601:12;17594:19;;17253:366;;;:::o;17625:419::-;17791:4;17829:2;17818:9;17814:18;17806:26;;17878:9;17872:4;17868:20;17864:1;17853:9;17849:17;17842:47;17906:131;18032:4;17906:131;:::i;:::-;17898:139;;17625:419;;;:::o;18050:222::-;18190:34;18186:1;18178:6;18174:14;18167:58;18259:5;18254:2;18246:6;18242:15;18235:30;18050:222;:::o;18278:366::-;18420:3;18441:67;18505:2;18500:3;18441:67;:::i;:::-;18434:74;;18517:93;18606:3;18517:93;:::i;:::-;18635:2;18630:3;18626:12;18619:19;;18278:366;;;:::o;18650:419::-;18816:4;18854:2;18843:9;18839:18;18831:26;;18903:9;18897:4;18893:20;18889:1;18878:9;18874:17;18867:47;18931:131;19057:4;18931:131;:::i;:::-;18923:139;;18650:419;;;:::o;19075:228::-;19215:34;19211:1;19203:6;19199:14;19192:58;19284:11;19279:2;19271:6;19267:15;19260:36;19075:228;:::o;19309:366::-;19451:3;19472:67;19536:2;19531:3;19472:67;:::i;:::-;19465:74;;19548:93;19637:3;19548:93;:::i;:::-;19666:2;19661:3;19657:12;19650:19;;19309:366;;;:::o;19681:419::-;19847:4;19885:2;19874:9;19870:18;19862:26;;19934:9;19928:4;19924:20;19920:1;19909:9;19905:17;19898:47;19962:131;20088:4;19962:131;:::i;:::-;19954:139;;19681:419;;;:::o;20106:226::-;20246:34;20242:1;20234:6;20230:14;20223:58;20315:9;20310:2;20302:6;20298:15;20291:34;20106:226;:::o;20338:366::-;20480:3;20501:67;20565:2;20560:3;20501:67;:::i;:::-;20494:74;;20577:93;20666:3;20577:93;:::i;:::-;20695:2;20690:3;20686:12;20679:19;;20338:366;;;:::o;20710:419::-;20876:4;20914:2;20903:9;20899:18;20891:26;;20963:9;20957:4;20953:20;20949:1;20938:9;20934:17;20927:47;20991:131;21117:4;20991:131;:::i;:::-;20983:139;;20710:419;;;:::o;21135:175::-;21275:27;21271:1;21263:6;21259:14;21252:51;21135:175;:::o;21316:366::-;21458:3;21479:67;21543:2;21538:3;21479:67;:::i;:::-;21472:74;;21555:93;21644:3;21555:93;:::i;:::-;21673:2;21668:3;21664:12;21657:19;;21316:366;;;:::o;21688:419::-;21854:4;21892:2;21881:9;21877:18;21869:26;;21941:9;21935:4;21931:20;21927:1;21916:9;21912:17;21905:47;21969:131;22095:4;21969:131;:::i;:::-;21961:139;;21688:419;;;:::o;22113:191::-;22153:3;22172:20;22190:1;22172:20;:::i;:::-;22167:25;;22206:20;22224:1;22206:20;:::i;:::-;22201:25;;22249:1;22246;22242:9;22235:16;;22270:3;22267:1;22264:10;22261:36;;;22277:18;;:::i;:::-;22261:36;22113:191;;;;:::o;22310:176::-;22450:28;22446:1;22438:6;22434:14;22427:52;22310:176;:::o;22492:366::-;22634:3;22655:67;22719:2;22714:3;22655:67;:::i;:::-;22648:74;;22731:93;22820:3;22731:93;:::i;:::-;22849:2;22844:3;22840:12;22833:19;;22492:366;;;:::o;22864:419::-;23030:4;23068:2;23057:9;23053:18;23045:26;;23117:9;23111:4;23107:20;23103:1;23092:9;23088:17;23081:47;23145:131;23271:4;23145:131;:::i;:::-;23137:139;;22864:419;;;:::o;23289:233::-;23328:3;23351:24;23369:5;23351:24;:::i;:::-;23342:33;;23397:66;23390:5;23387:77;23384:103;;23467:18;;:::i;:::-;23384:103;23514:1;23507:5;23503:13;23496:20;;23289:233;;;:::o;23528:180::-;23576:77;23573:1;23566:88;23673:4;23670:1;23663:15;23697:4;23694:1;23687:15;23714:180;23762:77;23759:1;23752:88;23859:4;23856:1;23849:15;23883:4;23880:1;23873:15;23900:114;23967:6;24001:5;23995:12;23985:22;;23900:114;;;:::o;24020:184::-;24119:11;24153:6;24148:3;24141:19;24193:4;24188:3;24184:14;24169:29;;24020:184;;;;:::o;24210:132::-;24277:4;24300:3;24292:11;;24330:4;24325:3;24321:14;24313:22;;24210:132;;;:::o;24348:108::-;24425:24;24443:5;24425:24;:::i;:::-;24420:3;24413:37;24348:108;;:::o;24462:179::-;24531:10;24552:46;24594:3;24586:6;24552:46;:::i;:::-;24630:4;24625:3;24621:14;24607:28;;24462:179;;;;:::o;24647:113::-;24717:4;24749;24744:3;24740:14;24732:22;;24647:113;;;:::o;24796:732::-;24915:3;24944:54;24992:5;24944:54;:::i;:::-;25014:86;25093:6;25088:3;25014:86;:::i;:::-;25007:93;;25124:56;25174:5;25124:56;:::i;:::-;25203:7;25234:1;25219:284;25244:6;25241:1;25238:13;25219:284;;;25320:6;25314:13;25347:63;25406:3;25391:13;25347:63;:::i;:::-;25340:70;;25433:60;25486:6;25433:60;:::i;:::-;25423:70;;25279:224;25266:1;25263;25259:9;25254:14;;25219:284;;;25223:14;25519:3;25512:10;;24920:608;;;24796:732;;;;:::o;25534:831::-;25797:4;25835:3;25824:9;25820:19;25812:27;;25849:71;25917:1;25906:9;25902:17;25893:6;25849:71;:::i;:::-;25930:80;26006:2;25995:9;25991:18;25982:6;25930:80;:::i;:::-;26057:9;26051:4;26047:20;26042:2;26031:9;26027:18;26020:48;26085:108;26188:4;26179:6;26085:108;:::i;:::-;26077:116;;26203:72;26271:2;26260:9;26256:18;26247:6;26203:72;:::i;:::-;26285:73;26353:3;26342:9;26338:19;26329:6;26285:73;:::i;:::-;25534:831;;;;;;;;:::o;26371:180::-;26419:77;26416:1;26409:88;26516:4;26513:1;26506:15;26540:4;26537:1;26530:15;26557:185;26597:1;26614:20;26632:1;26614:20;:::i;:::-;26609:25;;26648:20;26666:1;26648:20;:::i;:::-;26643:25;;26687:1;26677:35;;26692:18;;:::i;:::-;26677:35;26734:1;26731;26727:9;26722:14;;26557:185;;;;:::o;26748:220::-;26888:34;26884:1;26876:6;26872:14;26865:58;26957:3;26952:2;26944:6;26940:15;26933:28;26748:220;:::o;26974:366::-;27116:3;27137:67;27201:2;27196:3;27137:67;:::i;:::-;27130:74;;27213:93;27302:3;27213:93;:::i;:::-;27331:2;27326:3;27322:12;27315:19;;26974:366;;;:::o;27346:419::-;27512:4;27550:2;27539:9;27535:18;27527:26;;27599:9;27593:4;27589:20;27585:1;27574:9;27570:17;27563:47;27627:131;27753:4;27627:131;:::i;:::-;27619:139;;27346:419;;;:::o;27771:177::-;27911:29;27907:1;27899:6;27895:14;27888:53;27771:177;:::o;27954:366::-;28096:3;28117:67;28181:2;28176:3;28117:67;:::i;:::-;28110:74;;28193:93;28282:3;28193:93;:::i;:::-;28311:2;28306:3;28302:12;28295:19;;27954:366;;;:::o;28326:419::-;28492:4;28530:2;28519:9;28515:18;28507:26;;28579:9;28573:4;28569:20;28565:1;28554:9;28550:17;28543:47;28607:131;28733:4;28607:131;:::i;:::-;28599:139;;28326:419;;;:::o

Swarm Source

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