ETH Price: $2,286.12 (+2.40%)

Token

Make America Mog Again (MAMA)
 

Overview

Max Total Supply

100,000,000 MAMA

Holders

87

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
15,379.306811249 MAMA

Value
$0.00
0x98e49e2e79861120e3d72d1e256fbdc227adbf67
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:
MakeAmericaMogAgain

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
shanghai EvmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-19
*/

// SPDX-License-Identifier: MIT

/**
                                                                                     
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###########################################
    ##*-####-####-*##%=+%%#+=%##*-##*******************************************
    #%*:#%%#:#%%#:+%%%-=%%%=-%%%*:#%#******************************************
    *###%*+%%#*=###*-####:####-##%%%###########################################
    #%##%%####%#%##%*%##%*%##%*%##%%=..........................................
    *####+*###++###*+%%%#+###%+*###############################################
    #%*:#%%#.#%%#.+%%%-=%%%=:%%%*.#%+::::::::::::::::::::::::::::::::::::::::::
    ###-%%%#-####-*##%=*%#%*=####-#%###########################################
    ###%%%%%%##%####%%#%###%##%#%%%%###########################################
    ...........................................................................
    ###########################################################################
    ...........................................................................
    ###########################################################################
    ***************************************************************************
    ***************************************************************************
    ###########################################################################
      
    Make America Mog Again

    Telegram: https://t.me/MAMACoinERC
    Twitter: https://x.com/MAMACoinERC
    Website: https://www.makeamericamogagain.live

*/

pragma solidity 0.8.26;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract MakeAmericaMogAgain is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=25;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=0;
    uint256 private _reduceSellTaxAt=0;
    uint256 private _preventSwapBefore=0; 
    uint256 private _transferTax=80;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"Make America Mog Again";
    string private constant _symbol = unicode"MAMA";
    uint256 public _maxTxAmount = 2000000 * 10**_decimals;
    uint256 public _maxWalletSize = 2000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 250000 * 10**_decimals;
    uint256 public _maxTaxSwap= 250000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

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

        emit Transfer(address(0), address(this), _tTotal);
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            if(_buyCount==0){
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

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


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

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

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

    function removeTransferTax() external onlyOwner{
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }

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

    function addLiquidityEth() external payable onlyOwner {
        require(!tradingOpen, "Trading is already open.");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        IUniswapV2Factory uniswapV2Factory = IUniswapV2Factory(uniswapV2Router.factory());
        uniswapV2Pair = uniswapV2Factory.createPair(address(this), uniswapV2Router.WETH());
        _isExcludedFromFee[address(uniswapV2Pair)] = true;
        _approve(address(this), address(uniswapV2Router), totalSupply());
        uniswapV2Router.addLiquidityETH{ value: msg.value }(
            address(this),
            totalSupply(),
            0,
            0,
            owner(),
            block.timestamp
        );
        tradingOpen = true;
        swapEnabled = true;
    }

    receive() external payable {}

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

    function manualsend() external {
        require(_msgSender()==_taxWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
}

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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","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":[],"name":"addLiquidityEth","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","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":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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"}]

6080604052601960055560196006555f6007555f6008555f6009555f600a555f600b556050600c555f600d556009600a6100399190610597565b621e848061004791906105e1565b600e556009600a6100589190610597565b621e848061006691906105e1565b600f556009600a6100779190610597565b6203d09061008591906105e1565b6010556009600a6100969190610597565b6203d0906100a491906105e1565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055505f6014555f6015553480156100ee575f80fd5b505f6100fe6103f860201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101a86103f860201b60201c565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6101f59190610597565b6305f5e10061020491906105e1565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6102586103ff60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103cf9190610597565b6305f5e1006103de91906105e1565b6040516103eb9190610631565b60405180910390a361064a565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104a85780860481111561048457610483610426565b5b60018516156104935780820291505b80810290506104a185610453565b9450610468565b94509492505050565b5f826104c0576001905061057b565b816104cd575f905061057b565b81600181146104e357600281146104ed5761051c565b600191505061057b565b60ff8411156104ff576104fe610426565b5b8360020a91508482111561051657610515610426565b5b5061057b565b5060208310610133831016604e8410600b84101617156105515782820a90508381111561054c5761054b610426565b5b61057b565b61055e848484600161045f565b9250905081840481111561057557610574610426565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105a182610582565b91506105ac8361058b565b92506105d97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104b1565b905092915050565b5f6105eb82610582565b91506105f683610582565b925082820261060481610582565b9150828204841483151761061b5761061a610426565b5b5092915050565b61062b81610582565b82525050565b5f6020820190506106445f830184610622565b92915050565b612e78806106575f395ff3fe608060405260043610610122575f3560e01c806370a082311161009f5780638f9a55c0116100635780638f9a55c01461035557806395d89b411461037f578063a9059cbb146103a9578063bf474bed146103e5578063dd62ed3e1461040f57610129565b806370a0823114610299578063715018a6146102d5578063751039fc146102eb5780637d1db4a5146103015780638da5cb5b1461032b57610129565b806323b872dd116100e657806323b872dd146101fd57806324e3444314610239578063313ce5671461024357806351bc3c851461026d5780636fc3eaec1461028357610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f14610193578063109daa99146101bd57806318160ddd146101d357610129565b3661012957005b5f80fd5b348015610138575f80fd5b5061014161044b565b60405161014e9190612019565b60405180910390f35b348015610162575f80fd5b5061017d600480360381019061017891906120ca565b610488565b60405161018a9190612122565b60405180910390f35b34801561019e575f80fd5b506101a76104a5565b6040516101b4919061214a565b60405180910390f35b3480156101c8575f80fd5b506101d16104ab565b005b3480156101de575f80fd5b506101e761057f565b6040516101f4919061214a565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e9190612163565b6105a2565b6040516102309190612122565b60405180910390f35b610241610676565b005b34801561024e575f80fd5b50610257610b1f565b60405161026491906121ce565b60405180910390f35b348015610278575f80fd5b50610281610b27565b005b34801561028e575f80fd5b50610297610bbe565b005b3480156102a4575f80fd5b506102bf60048036038101906102ba91906121e7565b610c2d565b6040516102cc919061214a565b60405180910390f35b3480156102e0575f80fd5b506102e9610c73565b005b3480156102f6575f80fd5b506102ff610dc1565b005b34801561030c575f80fd5b50610315610ef0565b604051610322919061214a565b60405180910390f35b348015610336575f80fd5b5061033f610ef6565b60405161034c9190612221565b60405180910390f35b348015610360575f80fd5b50610369610f1d565b604051610376919061214a565b60405180910390f35b34801561038a575f80fd5b50610393610f23565b6040516103a09190612019565b60405180910390f35b3480156103b4575f80fd5b506103cf60048036038101906103ca91906120ca565b610f60565b6040516103dc9190612122565b60405180910390f35b3480156103f0575f80fd5b506103f9610f7d565b604051610406919061214a565b60405180910390f35b34801561041a575f80fd5b506104356004803603810190610430919061223a565b610f83565b604051610442919061214a565b60405180910390f35b60606040518060400160405280601681526020017f4d616b6520416d6572696361204d6f6720416761696e00000000000000000000815250905090565b5f61049b610494611005565b848461100c565b6001905092915050565b60115481565b6104b3611005565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461053f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610536906122c2565b60405180910390fd5b5f600c819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516105759190612322565b60405180910390a1565b5f6009600a61058e9190612497565b6305f5e10061059d91906124e1565b905090565b5f6105ae8484846111cf565b61066b846105ba611005565b61066685604051806060016040528060288152602001612e1b6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61061d611005565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a7b9092919063ffffffff16565b61100c565b600190509392505050565b61067e611005565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461070a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610701906122c2565b60405180910390fd5b601360149054906101000a900460ff161561075a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107519061256c565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610819573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083d919061259e565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ea919061259e565b6040518363ffffffff1660e01b81526004016109079291906125c9565b6020604051808303815f875af1158015610923573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610947919061259e565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160035f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610a2f3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a2a61057f565b61100c565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610a7661057f565b5f80610a80610ef6565b426040518863ffffffff1660e01b8152600401610aa2969594939291906125f0565b60606040518083038185885af1158015610abe573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ae39190612663565b5050506001601360146101000a81548160ff0219169083151502179055506001601360166101000a81548160ff02191690831515021790555050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b67611005565b73ffffffffffffffffffffffffffffffffffffffff1614610b86575f80fd5b5f610b9030610c2d565b90505f811115610ba457610ba381611add565b5b5f4790505f811115610bba57610bb981611d48565b5b5050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bfe611005565b73ffffffffffffffffffffffffffffffffffffffff1614610c1d575f80fd5b5f479050610c2a81611d48565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c7b611005565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfe906122c2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dc9611005565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4c906122c2565b60405180910390fd5b6009600a610e639190612497565b6305f5e100610e7291906124e1565b600e819055506009600a610e869190612497565b6305f5e100610e9591906124e1565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610eca9190612497565b6305f5e100610ed991906124e1565b604051610ee6919061214a565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600481526020017f4d414d4100000000000000000000000000000000000000000000000000000000815250905090565b5f610f73610f6c611005565b84846111cf565b6001905092915050565b60105481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361107a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107190612723565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110df906127b1565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111c2919061214a565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361123d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112349061283f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a2906128cd565b60405180910390fd5b5f81116112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e49061295b565b60405180910390fd5b5f6112f6610ef6565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113645750611334610ef6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117cb575f600d54036113b1576113ae60646113a0600954600d541161138d57600554611391565b6007545b85611db090919063ffffffff16565b611e2790919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561145a575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114ad575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156115a557600e548211156114f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ee906129c3565b60405180910390fd5b600f548261150485610c2d565b61150e91906129e1565b111561154f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154690612a5e565b60405180910390fd5b61158b606461157d600954600d541161156a5760055461156e565b6007545b85611db090919063ffffffff16565b611e2790919063ffffffff16565b9050600d5f81548092919061159f90612a7c565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561162d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116715761166e6064611660600a54600d541161164d57600654611651565b6008545b85611db090919063ffffffff16565b611e2790919063ffffffff16565b90505b5f61167b30610c2d565b9050601360159054906101000a900460ff161580156116e6575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156116fe5750601360169054906101000a900460ff165b801561170b575060105481115b801561171a5750600b54600d54115b156117c957601554431115611731575f6014819055505b600360145410611776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176d90612b0d565b60405180910390fd5b61179361178e8461178984601154611e70565b611e70565b611add565b5f4790505f8111156117a9576117a847611d48565b5b60145f8154809291906117bb90612a7c565b919050555043601581905550505b505b5f8111156118ca576118238160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c1919061214a565b60405180910390a35b61191a8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ee590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119bd6119718284611ee590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a608486611ee590919063ffffffff16565b604051611a6d919061214a565b60405180910390a350505050565b5f838311158290611ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab99190612019565b60405180910390fd5b505f8385611ad09190612b2b565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611b1457611b13612b5e565b5b604051908082528060200260200182016040528015611b425781602001602082028036833780820191505090505b50905030815f81518110611b5957611b58612b8b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bfd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c21919061259e565b81600181518110611c3557611c34612b8b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c9b3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461100c565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611cfd959493929190612c6f565b5f604051808303815f87803b158015611d14575f80fd5b505af1158015611d26573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611dac573d5f803e3d5ffd5b5050565b5f808303611dc0575f9050611e21565b5f8284611dcd91906124e1565b9050828482611ddc9190612cf4565b14611e1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1390612d94565b60405180910390fd5b809150505b92915050565b5f611e6883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f2e565b905092915050565b5f818311611e7e5782611e80565b815b905092915050565b5f808284611e9691906129e1565b905083811015611edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed290612dfc565b60405180910390fd5b8091505092915050565b5f611f2683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a7b565b905092915050565b5f8083118290611f74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6b9190612019565b60405180910390fd5b505f8385611f829190612cf4565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611fc6578082015181840152602081019050611fab565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611feb82611f8f565b611ff58185611f99565b9350612005818560208601611fa9565b61200e81611fd1565b840191505092915050565b5f6020820190508181035f8301526120318184611fe1565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120668261203d565b9050919050565b6120768161205c565b8114612080575f80fd5b50565b5f813590506120918161206d565b92915050565b5f819050919050565b6120a981612097565b81146120b3575f80fd5b50565b5f813590506120c4816120a0565b92915050565b5f80604083850312156120e0576120df612039565b5b5f6120ed85828601612083565b92505060206120fe858286016120b6565b9150509250929050565b5f8115159050919050565b61211c81612108565b82525050565b5f6020820190506121355f830184612113565b92915050565b61214481612097565b82525050565b5f60208201905061215d5f83018461213b565b92915050565b5f805f6060848603121561217a57612179612039565b5b5f61218786828701612083565b935050602061219886828701612083565b92505060406121a9868287016120b6565b9150509250925092565b5f60ff82169050919050565b6121c8816121b3565b82525050565b5f6020820190506121e15f8301846121bf565b92915050565b5f602082840312156121fc576121fb612039565b5b5f61220984828501612083565b91505092915050565b61221b8161205c565b82525050565b5f6020820190506122345f830184612212565b92915050565b5f80604083850312156122505761224f612039565b5b5f61225d85828601612083565b925050602061226e85828601612083565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6122ac602083611f99565b91506122b782612278565b602082019050919050565b5f6020820190508181035f8301526122d9816122a0565b9050919050565b5f819050919050565b5f819050919050565b5f61230c612307612302846122e0565b6122e9565b612097565b9050919050565b61231c816122f2565b82525050565b5f6020820190506123355f830184612313565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156123bd578086048111156123995761239861233b565b5b60018516156123a85780820291505b80810290506123b685612368565b945061237d565b94509492505050565b5f826123d55760019050612490565b816123e2575f9050612490565b81600181146123f8576002811461240257612431565b6001915050612490565b60ff8411156124145761241361233b565b5b8360020a91508482111561242b5761242a61233b565b5b50612490565b5060208310610133831016604e8410600b84101617156124665782820a9050838111156124615761246061233b565b5b612490565b6124738484846001612374565b9250905081840481111561248a5761248961233b565b5b81810290505b9392505050565b5f6124a182612097565b91506124ac836121b3565b92506124d97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846123c6565b905092915050565b5f6124eb82612097565b91506124f683612097565b925082820261250481612097565b9150828204841483151761251b5761251a61233b565b5b5092915050565b7f54726164696e6720697320616c7265616479206f70656e2e00000000000000005f82015250565b5f612556601883611f99565b915061256182612522565b602082019050919050565b5f6020820190508181035f8301526125838161254a565b9050919050565b5f815190506125988161206d565b92915050565b5f602082840312156125b3576125b2612039565b5b5f6125c08482850161258a565b91505092915050565b5f6040820190506125dc5f830185612212565b6125e96020830184612212565b9392505050565b5f60c0820190506126035f830189612212565b612610602083018861213b565b61261d6040830187612313565b61262a6060830186612313565b6126376080830185612212565b61264460a083018461213b565b979650505050505050565b5f8151905061265d816120a0565b92915050565b5f805f6060848603121561267a57612679612039565b5b5f6126878682870161264f565b93505060206126988682870161264f565b92505060406126a98682870161264f565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61270d602483611f99565b9150612718826126b3565b604082019050919050565b5f6020820190508181035f83015261273a81612701565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61279b602283611f99565b91506127a682612741565b604082019050919050565b5f6020820190508181035f8301526127c88161278f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612829602583611f99565b9150612834826127cf565b604082019050919050565b5f6020820190508181035f8301526128568161281d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6128b7602383611f99565b91506128c28261285d565b604082019050919050565b5f6020820190508181035f8301526128e4816128ab565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612945602983611f99565b9150612950826128eb565b604082019050919050565b5f6020820190508181035f83015261297281612939565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6129ad601983611f99565b91506129b882612979565b602082019050919050565b5f6020820190508181035f8301526129da816129a1565b9050919050565b5f6129eb82612097565b91506129f683612097565b9250828201905080821115612a0e57612a0d61233b565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612a48601a83611f99565b9150612a5382612a14565b602082019050919050565b5f6020820190508181035f830152612a7581612a3c565b9050919050565b5f612a8682612097565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ab857612ab761233b565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612af7601783611f99565b9150612b0282612ac3565b602082019050919050565b5f6020820190508181035f830152612b2481612aeb565b9050919050565b5f612b3582612097565b9150612b4083612097565b9250828203905081811115612b5857612b5761233b565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612bea8161205c565b82525050565b5f612bfb8383612be1565b60208301905092915050565b5f602082019050919050565b5f612c1d82612bb8565b612c278185612bc2565b9350612c3283612bd2565b805f5b83811015612c62578151612c498882612bf0565b9750612c5483612c07565b925050600181019050612c35565b5085935050505092915050565b5f60a082019050612c825f83018861213b565b612c8f6020830187612313565b8181036040830152612ca18186612c13565b9050612cb06060830185612212565b612cbd608083018461213b565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612cfe82612097565b9150612d0983612097565b925082612d1957612d18612cc7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d7e602183611f99565b9150612d8982612d24565b604082019050919050565b5f6020820190508181035f830152612dab81612d72565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612de6601b83611f99565b9150612df182612db2565b602082019050919050565b5f6020820190508181035f830152612e1381612dda565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209c32b9722d90e5d21a718a67eb6ffde8c0ea0e62906aa4ddf10f376e4be6db2b64736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610122575f3560e01c806370a082311161009f5780638f9a55c0116100635780638f9a55c01461035557806395d89b411461037f578063a9059cbb146103a9578063bf474bed146103e5578063dd62ed3e1461040f57610129565b806370a0823114610299578063715018a6146102d5578063751039fc146102eb5780637d1db4a5146103015780638da5cb5b1461032b57610129565b806323b872dd116100e657806323b872dd146101fd57806324e3444314610239578063313ce5671461024357806351bc3c851461026d5780636fc3eaec1461028357610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f14610193578063109daa99146101bd57806318160ddd146101d357610129565b3661012957005b5f80fd5b348015610138575f80fd5b5061014161044b565b60405161014e9190612019565b60405180910390f35b348015610162575f80fd5b5061017d600480360381019061017891906120ca565b610488565b60405161018a9190612122565b60405180910390f35b34801561019e575f80fd5b506101a76104a5565b6040516101b4919061214a565b60405180910390f35b3480156101c8575f80fd5b506101d16104ab565b005b3480156101de575f80fd5b506101e761057f565b6040516101f4919061214a565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e9190612163565b6105a2565b6040516102309190612122565b60405180910390f35b610241610676565b005b34801561024e575f80fd5b50610257610b1f565b60405161026491906121ce565b60405180910390f35b348015610278575f80fd5b50610281610b27565b005b34801561028e575f80fd5b50610297610bbe565b005b3480156102a4575f80fd5b506102bf60048036038101906102ba91906121e7565b610c2d565b6040516102cc919061214a565b60405180910390f35b3480156102e0575f80fd5b506102e9610c73565b005b3480156102f6575f80fd5b506102ff610dc1565b005b34801561030c575f80fd5b50610315610ef0565b604051610322919061214a565b60405180910390f35b348015610336575f80fd5b5061033f610ef6565b60405161034c9190612221565b60405180910390f35b348015610360575f80fd5b50610369610f1d565b604051610376919061214a565b60405180910390f35b34801561038a575f80fd5b50610393610f23565b6040516103a09190612019565b60405180910390f35b3480156103b4575f80fd5b506103cf60048036038101906103ca91906120ca565b610f60565b6040516103dc9190612122565b60405180910390f35b3480156103f0575f80fd5b506103f9610f7d565b604051610406919061214a565b60405180910390f35b34801561041a575f80fd5b506104356004803603810190610430919061223a565b610f83565b604051610442919061214a565b60405180910390f35b60606040518060400160405280601681526020017f4d616b6520416d6572696361204d6f6720416761696e00000000000000000000815250905090565b5f61049b610494611005565b848461100c565b6001905092915050565b60115481565b6104b3611005565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461053f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610536906122c2565b60405180910390fd5b5f600c819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516105759190612322565b60405180910390a1565b5f6009600a61058e9190612497565b6305f5e10061059d91906124e1565b905090565b5f6105ae8484846111cf565b61066b846105ba611005565b61066685604051806060016040528060288152602001612e1b6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61061d611005565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a7b9092919063ffffffff16565b61100c565b600190509392505050565b61067e611005565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461070a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610701906122c2565b60405180910390fd5b601360149054906101000a900460ff161561075a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107519061256c565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610819573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083d919061259e565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ea919061259e565b6040518363ffffffff1660e01b81526004016109079291906125c9565b6020604051808303815f875af1158015610923573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610947919061259e565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160035f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610a2f3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a2a61057f565b61100c565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610a7661057f565b5f80610a80610ef6565b426040518863ffffffff1660e01b8152600401610aa2969594939291906125f0565b60606040518083038185885af1158015610abe573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ae39190612663565b5050506001601360146101000a81548160ff0219169083151502179055506001601360166101000a81548160ff02191690831515021790555050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b67611005565b73ffffffffffffffffffffffffffffffffffffffff1614610b86575f80fd5b5f610b9030610c2d565b90505f811115610ba457610ba381611add565b5b5f4790505f811115610bba57610bb981611d48565b5b5050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bfe611005565b73ffffffffffffffffffffffffffffffffffffffff1614610c1d575f80fd5b5f479050610c2a81611d48565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c7b611005565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfe906122c2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dc9611005565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4c906122c2565b60405180910390fd5b6009600a610e639190612497565b6305f5e100610e7291906124e1565b600e819055506009600a610e869190612497565b6305f5e100610e9591906124e1565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610eca9190612497565b6305f5e100610ed991906124e1565b604051610ee6919061214a565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600481526020017f4d414d4100000000000000000000000000000000000000000000000000000000815250905090565b5f610f73610f6c611005565b84846111cf565b6001905092915050565b60105481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361107a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107190612723565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110df906127b1565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111c2919061214a565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361123d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112349061283f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a2906128cd565b60405180910390fd5b5f81116112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e49061295b565b60405180910390fd5b5f6112f6610ef6565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113645750611334610ef6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117cb575f600d54036113b1576113ae60646113a0600954600d541161138d57600554611391565b6007545b85611db090919063ffffffff16565b611e2790919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561145a575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114ad575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156115a557600e548211156114f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ee906129c3565b60405180910390fd5b600f548261150485610c2d565b61150e91906129e1565b111561154f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154690612a5e565b60405180910390fd5b61158b606461157d600954600d541161156a5760055461156e565b6007545b85611db090919063ffffffff16565b611e2790919063ffffffff16565b9050600d5f81548092919061159f90612a7c565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561162d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116715761166e6064611660600a54600d541161164d57600654611651565b6008545b85611db090919063ffffffff16565b611e2790919063ffffffff16565b90505b5f61167b30610c2d565b9050601360159054906101000a900460ff161580156116e6575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156116fe5750601360169054906101000a900460ff165b801561170b575060105481115b801561171a5750600b54600d54115b156117c957601554431115611731575f6014819055505b600360145410611776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176d90612b0d565b60405180910390fd5b61179361178e8461178984601154611e70565b611e70565b611add565b5f4790505f8111156117a9576117a847611d48565b5b60145f8154809291906117bb90612a7c565b919050555043601581905550505b505b5f8111156118ca576118238160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c1919061214a565b60405180910390a35b61191a8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ee590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119bd6119718284611ee590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a608486611ee590919063ffffffff16565b604051611a6d919061214a565b60405180910390a350505050565b5f838311158290611ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab99190612019565b60405180910390fd5b505f8385611ad09190612b2b565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611b1457611b13612b5e565b5b604051908082528060200260200182016040528015611b425781602001602082028036833780820191505090505b50905030815f81518110611b5957611b58612b8b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bfd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c21919061259e565b81600181518110611c3557611c34612b8b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c9b3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461100c565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611cfd959493929190612c6f565b5f604051808303815f87803b158015611d14575f80fd5b505af1158015611d26573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611dac573d5f803e3d5ffd5b5050565b5f808303611dc0575f9050611e21565b5f8284611dcd91906124e1565b9050828482611ddc9190612cf4565b14611e1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1390612d94565b60405180910390fd5b809150505b92915050565b5f611e6883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f2e565b905092915050565b5f818311611e7e5782611e80565b815b905092915050565b5f808284611e9691906129e1565b905083811015611edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed290612dfc565b60405180910390fd5b8091505092915050565b5f611f2683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a7b565b905092915050565b5f8083118290611f74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6b9190612019565b60405180910390fd5b505f8385611f829190612cf4565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611fc6578082015181840152602081019050611fab565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611feb82611f8f565b611ff58185611f99565b9350612005818560208601611fa9565b61200e81611fd1565b840191505092915050565b5f6020820190508181035f8301526120318184611fe1565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120668261203d565b9050919050565b6120768161205c565b8114612080575f80fd5b50565b5f813590506120918161206d565b92915050565b5f819050919050565b6120a981612097565b81146120b3575f80fd5b50565b5f813590506120c4816120a0565b92915050565b5f80604083850312156120e0576120df612039565b5b5f6120ed85828601612083565b92505060206120fe858286016120b6565b9150509250929050565b5f8115159050919050565b61211c81612108565b82525050565b5f6020820190506121355f830184612113565b92915050565b61214481612097565b82525050565b5f60208201905061215d5f83018461213b565b92915050565b5f805f6060848603121561217a57612179612039565b5b5f61218786828701612083565b935050602061219886828701612083565b92505060406121a9868287016120b6565b9150509250925092565b5f60ff82169050919050565b6121c8816121b3565b82525050565b5f6020820190506121e15f8301846121bf565b92915050565b5f602082840312156121fc576121fb612039565b5b5f61220984828501612083565b91505092915050565b61221b8161205c565b82525050565b5f6020820190506122345f830184612212565b92915050565b5f80604083850312156122505761224f612039565b5b5f61225d85828601612083565b925050602061226e85828601612083565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6122ac602083611f99565b91506122b782612278565b602082019050919050565b5f6020820190508181035f8301526122d9816122a0565b9050919050565b5f819050919050565b5f819050919050565b5f61230c612307612302846122e0565b6122e9565b612097565b9050919050565b61231c816122f2565b82525050565b5f6020820190506123355f830184612313565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156123bd578086048111156123995761239861233b565b5b60018516156123a85780820291505b80810290506123b685612368565b945061237d565b94509492505050565b5f826123d55760019050612490565b816123e2575f9050612490565b81600181146123f8576002811461240257612431565b6001915050612490565b60ff8411156124145761241361233b565b5b8360020a91508482111561242b5761242a61233b565b5b50612490565b5060208310610133831016604e8410600b84101617156124665782820a9050838111156124615761246061233b565b5b612490565b6124738484846001612374565b9250905081840481111561248a5761248961233b565b5b81810290505b9392505050565b5f6124a182612097565b91506124ac836121b3565b92506124d97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846123c6565b905092915050565b5f6124eb82612097565b91506124f683612097565b925082820261250481612097565b9150828204841483151761251b5761251a61233b565b5b5092915050565b7f54726164696e6720697320616c7265616479206f70656e2e00000000000000005f82015250565b5f612556601883611f99565b915061256182612522565b602082019050919050565b5f6020820190508181035f8301526125838161254a565b9050919050565b5f815190506125988161206d565b92915050565b5f602082840312156125b3576125b2612039565b5b5f6125c08482850161258a565b91505092915050565b5f6040820190506125dc5f830185612212565b6125e96020830184612212565b9392505050565b5f60c0820190506126035f830189612212565b612610602083018861213b565b61261d6040830187612313565b61262a6060830186612313565b6126376080830185612212565b61264460a083018461213b565b979650505050505050565b5f8151905061265d816120a0565b92915050565b5f805f6060848603121561267a57612679612039565b5b5f6126878682870161264f565b93505060206126988682870161264f565b92505060406126a98682870161264f565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61270d602483611f99565b9150612718826126b3565b604082019050919050565b5f6020820190508181035f83015261273a81612701565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61279b602283611f99565b91506127a682612741565b604082019050919050565b5f6020820190508181035f8301526127c88161278f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612829602583611f99565b9150612834826127cf565b604082019050919050565b5f6020820190508181035f8301526128568161281d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6128b7602383611f99565b91506128c28261285d565b604082019050919050565b5f6020820190508181035f8301526128e4816128ab565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612945602983611f99565b9150612950826128eb565b604082019050919050565b5f6020820190508181035f83015261297281612939565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6129ad601983611f99565b91506129b882612979565b602082019050919050565b5f6020820190508181035f8301526129da816129a1565b9050919050565b5f6129eb82612097565b91506129f683612097565b9250828201905080821115612a0e57612a0d61233b565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612a48601a83611f99565b9150612a5382612a14565b602082019050919050565b5f6020820190508181035f830152612a7581612a3c565b9050919050565b5f612a8682612097565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ab857612ab761233b565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612af7601783611f99565b9150612b0282612ac3565b602082019050919050565b5f6020820190508181035f830152612b2481612aeb565b9050919050565b5f612b3582612097565b9150612b4083612097565b9250828203905081811115612b5857612b5761233b565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612bea8161205c565b82525050565b5f612bfb8383612be1565b60208301905092915050565b5f602082019050919050565b5f612c1d82612bb8565b612c278185612bc2565b9350612c3283612bd2565b805f5b83811015612c62578151612c498882612bf0565b9750612c5483612c07565b925050600181019050612c35565b5085935050505092915050565b5f60a082019050612c825f83018861213b565b612c8f6020830187612313565b8181036040830152612ca18186612c13565b9050612cb06060830185612212565b612cbd608083018461213b565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612cfe82612097565b9150612d0983612097565b925082612d1957612d18612cc7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d7e602183611f99565b9150612d8982612d24565b604082019050919050565b5f6020820190508181035f830152612dab81612d72565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612de6601b83611f99565b9150612df182612db2565b602082019050919050565b5f6020820190508181035f830152612e1381612dda565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209c32b9722d90e5d21a718a67eb6ffde8c0ea0e62906aa4ddf10f376e4be6db2b64736f6c634300081a0033

Deployed Bytecode Sourcemap

5076:8298:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7023:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7856:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6178:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11752:119;;;;;;;;;;;;;:::i;:::-;;7300:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8025:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11979:804;;;:::i;:::-;;7209:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12828:348;;;;;;;;;;;;;:::i;:::-;;13184:187;;;;;;;;;;;;;:::i;:::-;;7403:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4157:148;;;;;;;;;;;;;:::i;:::-;;11585:159;;;;;;;;;;;;;:::i;:::-;;5993:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3943:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6053:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7114:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7530:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6115:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7705:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7023:83;7060:13;7093:5;;;;;;;;;;;;;;;;;7086:12;;7023:83;:::o;7856:161::-;7931:4;7948:39;7957:12;:10;:12::i;:::-;7971:7;7980:6;7948:8;:39::i;:::-;8005:4;7998:11;;7856:161;;;;:::o;6178:50::-;;;;:::o;11752:119::-;4080:12;:10;:12::i;:::-;4070:22;;:6;;;;;;;;;;:22;;;4062:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11825:1:::1;11810:12;:16;;;;11842:21;11861:1;11842:21;;;;;;:::i;:::-;;;;;;;;11752:119::o:0;7300:95::-;7353:7;5794:1;5849:2;:13;;;;:::i;:::-;5837:9;:25;;;;:::i;:::-;7373:14;;7300:95;:::o;8025:313::-;8123:4;8140:36;8150:6;8158:9;8169:6;8140:9;:36::i;:::-;8187:121;8196:6;8204:12;:10;:12::i;:::-;8218:89;8256:6;8218:89;;;;;;;;;;;;;;;;;:11;:19;8230:6;8218:19;;;;;;;;;;;;;;;:33;8238:12;:10;:12::i;:::-;8218:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8187:8;:121::i;:::-;8326:4;8319:11;;8025:313;;;;;:::o;11979:804::-;4080:12;:10;:12::i;:::-;4070:22;;:6;;;;;;;;;;:22;;;4062:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12053:11:::1;;;;;;;;;;;12052:12;12044:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;12141:42;12104:15;;:80;;;;;;;;;;;;;;;;;;12195:34;12250:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12195:81;;12303:16;:27;;;12339:4;12346:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12303:66;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12287:13;;:82;;;;;;;;;;;;;;;;;;12425:4;12380:18;:42;12407:13;;;;;;;;;;;12380:42;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;12440:64;12457:4;12472:15;;;;;;;;;;;12490:13;:11;:13::i;:::-;12440:8;:64::i;:::-;12515:15;;;;;;;;;;;:31;;;12555:9;12589:4;12609:13;:11;:13::i;:::-;12637:1;12653::::0;12669:7:::1;:5;:7::i;:::-;12691:15;12515:202;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12742:4;12728:11;;:18;;;;;;;;;;;;;;;;;;12771:4;12757:11;;:18;;;;;;;;;;;;;;;;;;12033:750;11979:804::o:0;7209:83::-;7250:5;5794:1;7268:16;;7209:83;:::o;12828:348::-;12892:10;;;;;;;;;;;12878:24;;:12;:10;:12::i;:::-;:24;;;12870:33;;;;;;12914:20;12935:24;12953:4;12935:9;:24::i;:::-;12914:45;;12986:1;12973:12;:14;12970:73;;;13001:30;13018:12;13001:16;:30::i;:::-;12970:73;13053:18;13072:21;13053:40;;13118:1;13107:10;:12;13104:65;;;13133:24;13146:10;13133:12;:24::i;:::-;13104:65;12859:317;;12828:348::o;13184:187::-;13248:10;;;;;;;;;;;13234:24;;:12;:10;:12::i;:::-;:24;;;13226:33;;;;;;13270:26;13299:21;13270:50;;13331:32;13344:18;13331:12;:32::i;:::-;13215:156;13184:187::o;7403:119::-;7469:7;7496:9;:18;7506:7;7496:18;;;;;;;;;;;;;;;;7489:25;;7403:119;;;:::o;4157:148::-;4080:12;:10;:12::i;:::-;4070:22;;:6;;;;;;;;;;:22;;;4062:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4264:1:::1;4227:40;;4248:6;::::0;::::1;;;;;;;;4227:40;;;;;;;;;;;;4295:1;4278:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4157:148::o:0;11585:159::-;4080:12;:10;:12::i;:::-;4070:22;;:6;;;;;;;;;;:22;;;4062:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5794:1:::1;5849:2;:13;;;;:::i;:::-;5837:9;:25;;;;:::i;:::-;11638:12;:22;;;;5794:1;5849:2;:13;;;;:::i;:::-;5837:9;:25;;;;:::i;:::-;11671:14;:22;;;;11709:27;5794:1;5849:2;:13;;;;:::i;:::-;5837:9;:25;;;;:::i;:::-;11709:27;;;;;;:::i;:::-;;;;;;;;11585:159::o:0;5993:53::-;;;;:::o;3943:79::-;3981:7;4008:6;;;;;;;;;;;4001:13;;3943:79;:::o;6053:55::-;;;;:::o;7114:87::-;7153:13;7186:7;;;;;;;;;;;;;;;;;7179:14;;7114:87;:::o;7530:167::-;7608:4;7625:42;7635:12;:10;:12::i;:::-;7649:9;7660:6;7625:9;:42::i;:::-;7685:4;7678:11;;7530:167;;;;:::o;6115:56::-;;;;:::o;7705:143::-;7786:7;7813:11;:18;7825:5;7813:18;;;;;;;;;;;;;;;:27;7832:7;7813:27;;;;;;;;;;;;;;;;7806:34;;7705:143;;;;:::o;1698:98::-;1751:7;1778:10;1771:17;;1698:98;:::o;8346:335::-;8456:1;8439:19;;:5;:19;;;8431:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8537:1;8518:21;;:7;:21;;;8510:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8619:6;8589:11;:18;8601:5;8589:18;;;;;;;;;;;;;;;:27;8608:7;8589:27;;;;;;;;;;;;;;;:36;;;;8657:7;8641:32;;8650:5;8641:32;;;8666:6;8641:32;;;;;;:::i;:::-;;;;;;;;8346:335;;;:::o;8689:2289::-;8793:1;8777:18;;:4;:18;;;8769:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8870:1;8856:16;;:2;:16;;;8848:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8940:1;8931:6;:10;8923:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8998:17;9040:7;:5;:7::i;:::-;9032:15;;:4;:15;;;;:32;;;;;9057:7;:5;:7::i;:::-;9051:13;;:2;:13;;;;9032:32;9028:1594;;;9095:1;9084:9;;:12;9081:139;;9128:76;9200:3;9128:67;9150:15;;9140:9;;:25;9139:55;;9180:14;;9139:55;;;9167:12;;9139:55;9128:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;9116:88;;9081:139;9248:13;;;;;;;;;;;9240:21;;:4;:21;;;:55;;;;;9279:15;;;;;;;;;;;9265:30;;:2;:30;;;;9240:55;:83;;;;;9301:18;:22;9320:2;9301:22;;;;;;;;;;;;;;;;;;;;;;;;;9299:24;9240:83;9236:420;;;9363:12;;9353:6;:22;;9345:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9458:14;;9448:6;9432:13;9442:2;9432:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9424:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9534:76;9606:3;9534:67;9556:15;;9546:9;;:25;9545:55;;9586:14;;9545:55;;;9573:12;;9545:55;9534:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;9522:88;;9629:9;;:11;;;;;;;;;:::i;:::-;;;;;;9236:420;9681:13;;;;;;;;;;;9675:19;;:2;:19;;;:43;;;;;9713:4;9698:20;;:4;:20;;;;9675:43;9672:174;;;9751:79;9826:3;9751:70;9773:16;;9763:9;;:26;9762:58;;9805:15;;9762:58;;;9791:13;;9762:58;9751:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9739:91;;9672:174;9862:28;9893:24;9911:4;9893:9;:24::i;:::-;9862:55;;9937:6;;;;;;;;;;;9936:7;:30;;;;;9953:13;;;;;;;;;;;9947:19;;:2;:19;;;9936:30;:45;;;;;9970:11;;;;;;;;;;;9936:45;:89;;;;;10008:17;;9985:20;:40;9936:89;:123;;;;;10041:18;;10029:9;;:30;9936:123;9932:679;;;10099:13;;10084:12;:28;10080:90;;;10149:1;10137:9;:13;;;;10080:90;10208:1;10196:9;;:13;10188:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;10256:69;10273:51;10277:6;10285:38;10289:20;10311:11;;10285:3;:38::i;:::-;10273:3;:51::i;:::-;10256:16;:69::i;:::-;10344:26;10373:21;10344:50;;10438:1;10417:18;:22;10413:106;;;10464:35;10477:21;10464:12;:35::i;:::-;10413:106;10537:9;;:11;;;;;;;;;:::i;:::-;;;;;;10583:12;10567:13;:28;;;;10061:550;9932:679;9066:1556;9028:1594;10647:1;10637:9;:11;10634:161;;;10687:39;10716:9;10687;:24;10705:4;10687:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10662:9;:24;10680:4;10662:24;;;;;;;;;;;;;;;:64;;;;10767:4;10744:39;;10753:4;10744:39;;;10773:9;10744:39;;;;;;:::i;:::-;;;;;;;;10634:161;10821:27;10841:6;10821:9;:15;10831:4;10821:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10805:9;:15;10815:4;10805:15;;;;;;;;;;;;;;;:43;;;;10873:40;10891:21;10902:9;10891:6;:10;;:21;;;;:::i;:::-;10873:9;:13;10883:2;10873:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10859:9;:13;10869:2;10859:13;;;;;;;;;;;;;;;:54;;;;10944:2;10929:41;;10938:4;10929:41;;;10948:21;10959:9;10948:6;:10;;:21;;;;:::i;:::-;10929:41;;;;;;:::i;:::-;;;;;;;;8758:2220;8689:2289;;;:::o;2835:190::-;2921:7;2954:1;2949;:6;;2957:12;2941:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2981:9;2997:1;2993;:5;;;;:::i;:::-;2981:17;;3016:1;3009:8;;;2835:190;;;;;:::o;11094:483::-;6639:4;6630:6;;:13;;;;;;;;;;;;;;;;;;11172:21:::1;11210:1;11196:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11172:40;;11241:4;11223;11228:1;11223:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11267:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11257:4;11262:1;11257:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11300:62;11317:4;11332:15;;;;;;;;;;;11350:11;11300:8;:62::i;:::-;11373:15;;;;;;;;;;;:66;;;11454:11;11480:1;11496:4;11523;11543:15;11373:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11161:416;6675:5:::0;6666:6;;:14;;;;;;;;;;;;;;;;;;11094:483;:::o;11879:92::-;11936:10;;;;;;;;;;;:19;;:27;11956:6;11936:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11879:92;:::o;3033:246::-;3091:7;3120:1;3115;:6;3111:47;;3145:1;3138:8;;;;3111:47;3168:9;3184:1;3180;:5;;;;:::i;:::-;3168:17;;3213:1;3208;3204;:5;;;;:::i;:::-;:10;3196:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3270:1;3263:8;;;3033:246;;;;;:::o;3287:132::-;3345:7;3372:39;3376:1;3379;3372:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3365:46;;3287:132;;;;:::o;10988:98::-;11045:7;11072:1;11070;:3;11069:9;;11077:1;11069:9;;;11075:1;11069:9;11062:16;;10988:98;;;;:::o;2504:179::-;2562:7;2582:9;2598:1;2594;:5;;;;:::i;:::-;2582:17;;2623:1;2618;:6;;2610:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2674:1;2667:8;;;2504:179;;;;:::o;2691:136::-;2749:7;2776:43;2780:1;2783;2776:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2769:50;;2691:136;;;;:::o;3427:189::-;3513:7;3545:1;3541;:5;3548:12;3533:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3572:9;3588:1;3584;:5;;;;:::i;:::-;3572:17;;3607:1;3600:8;;;3427: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:248::-;369:1;379:113;393:6;390:1;387:13;379:113;;;478:1;473:3;469:11;463:18;459:1;454:3;450:11;443:39;415:2;412:1;408:10;403:15;;379:113;;;526:1;517:6;512:3;508:16;501:27;349:186;287:248;;;:::o;541:102::-;582:6;633:2;629:7;624:2;617:5;613:14;609:28;599:38;;541:102;;;:::o;649:377::-;737:3;765:39;798:5;765:39;:::i;:::-;820:71;884:6;879:3;820:71;:::i;:::-;813:78;;900:65;958:6;953:3;946:4;939:5;935:16;900:65;:::i;:::-;990:29;1012:6;990:29;:::i;:::-;985:3;981:39;974:46;;741:285;649:377;;;;:::o;1032:313::-;1145:4;1183:2;1172:9;1168:18;1160:26;;1232:9;1226:4;1222:20;1218:1;1207:9;1203:17;1196:47;1260:78;1333:4;1324:6;1260:78;:::i;:::-;1252:86;;1032:313;;;;:::o;1432:117::-;1541:1;1538;1531:12;1678:126;1715:7;1755:42;1748:5;1744:54;1733:65;;1678:126;;;:::o;1810:96::-;1847:7;1876:24;1894:5;1876:24;:::i;:::-;1865:35;;1810:96;;;:::o;1912:122::-;1985:24;2003:5;1985:24;:::i;:::-;1978:5;1975:35;1965:63;;2024:1;2021;2014:12;1965:63;1912:122;:::o;2040:139::-;2086:5;2124:6;2111:20;2102:29;;2140:33;2167:5;2140:33;:::i;:::-;2040:139;;;;:::o;2185:77::-;2222:7;2251:5;2240:16;;2185:77;;;:::o;2268:122::-;2341:24;2359:5;2341:24;:::i;:::-;2334:5;2331:35;2321:63;;2380:1;2377;2370:12;2321:63;2268:122;:::o;2396:139::-;2442:5;2480:6;2467:20;2458:29;;2496:33;2523:5;2496:33;:::i;:::-;2396:139;;;;:::o;2541:474::-;2609:6;2617;2666:2;2654:9;2645:7;2641:23;2637:32;2634:119;;;2672:79;;:::i;:::-;2634:119;2792:1;2817:53;2862:7;2853:6;2842:9;2838:22;2817:53;:::i;:::-;2807:63;;2763:117;2919:2;2945:53;2990:7;2981:6;2970:9;2966:22;2945:53;:::i;:::-;2935:63;;2890:118;2541:474;;;;;:::o;3021:90::-;3055:7;3098:5;3091:13;3084:21;3073:32;;3021:90;;;:::o;3117:109::-;3198:21;3213:5;3198:21;:::i;:::-;3193:3;3186:34;3117:109;;:::o;3232:210::-;3319:4;3357:2;3346:9;3342:18;3334:26;;3370:65;3432:1;3421:9;3417:17;3408:6;3370:65;:::i;:::-;3232:210;;;;:::o;3448:118::-;3535:24;3553:5;3535:24;:::i;:::-;3530:3;3523:37;3448:118;;:::o;3572:222::-;3665:4;3703:2;3692:9;3688:18;3680:26;;3716:71;3784:1;3773:9;3769:17;3760:6;3716:71;:::i;:::-;3572:222;;;;:::o;3800:619::-;3877:6;3885;3893;3942:2;3930:9;3921:7;3917:23;3913:32;3910:119;;;3948:79;;:::i;:::-;3910:119;4068:1;4093:53;4138:7;4129:6;4118:9;4114:22;4093:53;:::i;:::-;4083:63;;4039:117;4195:2;4221:53;4266:7;4257:6;4246:9;4242:22;4221:53;:::i;:::-;4211:63;;4166:118;4323:2;4349:53;4394:7;4385:6;4374:9;4370:22;4349:53;:::i;:::-;4339:63;;4294:118;3800:619;;;;;:::o;4425:86::-;4460:7;4500:4;4493:5;4489:16;4478:27;;4425:86;;;:::o;4517:112::-;4600:22;4616:5;4600:22;:::i;:::-;4595:3;4588:35;4517:112;;:::o;4635:214::-;4724:4;4762:2;4751:9;4747:18;4739:26;;4775:67;4839:1;4828:9;4824:17;4815:6;4775:67;:::i;:::-;4635:214;;;;:::o;4855:329::-;4914:6;4963:2;4951:9;4942:7;4938:23;4934:32;4931:119;;;4969:79;;:::i;:::-;4931:119;5089:1;5114:53;5159:7;5150:6;5139:9;5135:22;5114:53;:::i;:::-;5104:63;;5060:117;4855:329;;;;:::o;5190:118::-;5277:24;5295:5;5277:24;:::i;:::-;5272:3;5265:37;5190:118;;:::o;5314:222::-;5407:4;5445:2;5434:9;5430:18;5422:26;;5458:71;5526:1;5515:9;5511:17;5502:6;5458:71;:::i;:::-;5314:222;;;;:::o;5542:474::-;5610:6;5618;5667:2;5655:9;5646:7;5642:23;5638:32;5635:119;;;5673:79;;:::i;:::-;5635:119;5793:1;5818:53;5863:7;5854:6;5843:9;5839:22;5818:53;:::i;:::-;5808:63;;5764:117;5920:2;5946:53;5991:7;5982:6;5971:9;5967:22;5946:53;:::i;:::-;5936:63;;5891:118;5542:474;;;;;:::o;6022:182::-;6162:34;6158:1;6150:6;6146:14;6139:58;6022:182;:::o;6210:366::-;6352:3;6373:67;6437:2;6432:3;6373:67;:::i;:::-;6366:74;;6449:93;6538:3;6449:93;:::i;:::-;6567:2;6562:3;6558:12;6551:19;;6210:366;;;:::o;6582:419::-;6748:4;6786:2;6775:9;6771:18;6763:26;;6835:9;6829:4;6825:20;6821:1;6810:9;6806:17;6799:47;6863:131;6989:4;6863:131;:::i;:::-;6855:139;;6582:419;;;:::o;7007:85::-;7052:7;7081:5;7070:16;;7007:85;;;:::o;7098:60::-;7126:3;7147:5;7140:12;;7098:60;;;:::o;7164:158::-;7222:9;7255:61;7273:42;7282:32;7308:5;7282:32;:::i;:::-;7273:42;:::i;:::-;7255:61;:::i;:::-;7242:74;;7164:158;;;:::o;7328:147::-;7423:45;7462:5;7423:45;:::i;:::-;7418:3;7411:58;7328:147;;:::o;7481:238::-;7582:4;7620:2;7609:9;7605:18;7597:26;;7633:79;7709:1;7698:9;7694:17;7685:6;7633:79;:::i;:::-;7481:238;;;;:::o;7725:180::-;7773:77;7770:1;7763:88;7870:4;7867:1;7860:15;7894:4;7891:1;7884:15;7911:102;7953:8;8000:5;7997:1;7993:13;7972:34;;7911:102;;;:::o;8019:848::-;8080:5;8087:4;8111:6;8102:15;;8135:5;8126:14;;8149:712;8170:1;8160:8;8157:15;8149:712;;;8265:4;8260:3;8256:14;8250:4;8247:24;8244:50;;;8274:18;;:::i;:::-;8244:50;8324:1;8314:8;8310:16;8307:451;;;8739:4;8732:5;8728:16;8719:25;;8307:451;8789:4;8783;8779:15;8771:23;;8819:32;8842:8;8819:32;:::i;:::-;8807:44;;8149:712;;;8019:848;;;;;;;:::o;8873:1073::-;8927:5;9118:8;9108:40;;9139:1;9130:10;;9141:5;;9108:40;9167:4;9157:36;;9184:1;9175:10;;9186:5;;9157:36;9253:4;9301:1;9296:27;;;;9337:1;9332:191;;;;9246:277;;9296:27;9314:1;9305:10;;9316:5;;;9332:191;9377:3;9367:8;9364:17;9361:43;;;9384:18;;:::i;:::-;9361:43;9433:8;9430:1;9426:16;9417:25;;9468:3;9461:5;9458:14;9455:40;;;9475:18;;:::i;:::-;9455:40;9508:5;;;9246:277;;9632:2;9622:8;9619:16;9613:3;9607:4;9604:13;9600:36;9582:2;9572:8;9569:16;9564:2;9558:4;9555:12;9551:35;9535:111;9532:246;;;9688:8;9682:4;9678:19;9669:28;;9723:3;9716:5;9713:14;9710:40;;;9730:18;;:::i;:::-;9710:40;9763:5;;9532:246;9803:42;9841:3;9831:8;9825:4;9822:1;9803:42;:::i;:::-;9788:57;;;;9877:4;9872:3;9868:14;9861:5;9858:25;9855:51;;;9886:18;;:::i;:::-;9855:51;9935:4;9928:5;9924:16;9915:25;;8873:1073;;;;;;:::o;9952:281::-;10010:5;10034:23;10052:4;10034:23;:::i;:::-;10026:31;;10078:25;10094:8;10078:25;:::i;:::-;10066:37;;10122:104;10159:66;10149:8;10143:4;10122:104;:::i;:::-;10113:113;;9952:281;;;;:::o;10239:410::-;10279:7;10302:20;10320:1;10302:20;:::i;:::-;10297:25;;10336:20;10354:1;10336:20;:::i;:::-;10331:25;;10391:1;10388;10384:9;10413:30;10431:11;10413:30;:::i;:::-;10402:41;;10592:1;10583:7;10579:15;10576:1;10573:22;10553:1;10546:9;10526:83;10503:139;;10622:18;;:::i;:::-;10503:139;10287:362;10239:410;;;;:::o;10655:174::-;10795:26;10791:1;10783:6;10779:14;10772:50;10655:174;:::o;10835:366::-;10977:3;10998:67;11062:2;11057:3;10998:67;:::i;:::-;10991:74;;11074:93;11163:3;11074:93;:::i;:::-;11192:2;11187:3;11183:12;11176:19;;10835:366;;;:::o;11207:419::-;11373:4;11411:2;11400:9;11396:18;11388:26;;11460:9;11454:4;11450:20;11446:1;11435:9;11431:17;11424:47;11488:131;11614:4;11488:131;:::i;:::-;11480:139;;11207:419;;;:::o;11632:143::-;11689:5;11720:6;11714:13;11705:22;;11736:33;11763:5;11736:33;:::i;:::-;11632:143;;;;:::o;11781:351::-;11851:6;11900:2;11888:9;11879:7;11875:23;11871:32;11868:119;;;11906:79;;:::i;:::-;11868:119;12026:1;12051:64;12107:7;12098:6;12087:9;12083:22;12051:64;:::i;:::-;12041:74;;11997:128;11781:351;;;;:::o;12138:332::-;12259:4;12297:2;12286:9;12282:18;12274:26;;12310:71;12378:1;12367:9;12363:17;12354:6;12310:71;:::i;:::-;12391:72;12459:2;12448:9;12444:18;12435:6;12391:72;:::i;:::-;12138:332;;;;;:::o;12476:807::-;12725:4;12763:3;12752:9;12748:19;12740:27;;12777:71;12845:1;12834:9;12830:17;12821:6;12777:71;:::i;:::-;12858:72;12926:2;12915:9;12911:18;12902:6;12858:72;:::i;:::-;12940:80;13016:2;13005:9;13001:18;12992:6;12940:80;:::i;:::-;13030;13106:2;13095:9;13091:18;13082:6;13030:80;:::i;:::-;13120:73;13188:3;13177:9;13173:19;13164:6;13120:73;:::i;:::-;13203;13271:3;13260:9;13256:19;13247:6;13203:73;:::i;:::-;12476:807;;;;;;;;;:::o;13289:143::-;13346:5;13377:6;13371:13;13362:22;;13393:33;13420:5;13393:33;:::i;:::-;13289:143;;;;:::o;13438:663::-;13526:6;13534;13542;13591:2;13579:9;13570:7;13566:23;13562:32;13559:119;;;13597:79;;:::i;:::-;13559:119;13717:1;13742:64;13798:7;13789:6;13778:9;13774:22;13742:64;:::i;:::-;13732:74;;13688:128;13855:2;13881:64;13937:7;13928:6;13917:9;13913:22;13881:64;:::i;:::-;13871:74;;13826:129;13994:2;14020:64;14076:7;14067:6;14056:9;14052:22;14020:64;:::i;:::-;14010:74;;13965:129;13438:663;;;;;:::o;14107:223::-;14247:34;14243:1;14235:6;14231:14;14224:58;14316:6;14311:2;14303:6;14299:15;14292:31;14107:223;:::o;14336:366::-;14478:3;14499:67;14563:2;14558:3;14499:67;:::i;:::-;14492:74;;14575:93;14664:3;14575:93;:::i;:::-;14693:2;14688:3;14684:12;14677:19;;14336:366;;;:::o;14708:419::-;14874:4;14912:2;14901:9;14897:18;14889:26;;14961:9;14955:4;14951:20;14947:1;14936:9;14932:17;14925:47;14989:131;15115:4;14989:131;:::i;:::-;14981:139;;14708:419;;;:::o;15133:221::-;15273:34;15269:1;15261:6;15257:14;15250:58;15342:4;15337:2;15329:6;15325:15;15318:29;15133:221;:::o;15360:366::-;15502:3;15523:67;15587:2;15582:3;15523:67;:::i;:::-;15516:74;;15599:93;15688:3;15599:93;:::i;:::-;15717:2;15712:3;15708:12;15701:19;;15360:366;;;:::o;15732:419::-;15898:4;15936:2;15925:9;15921:18;15913:26;;15985:9;15979:4;15975:20;15971:1;15960:9;15956:17;15949:47;16013:131;16139:4;16013:131;:::i;:::-;16005:139;;15732:419;;;:::o;16157:224::-;16297:34;16293:1;16285:6;16281:14;16274:58;16366:7;16361:2;16353:6;16349:15;16342:32;16157:224;:::o;16387:366::-;16529:3;16550:67;16614:2;16609:3;16550:67;:::i;:::-;16543:74;;16626:93;16715:3;16626:93;:::i;:::-;16744:2;16739:3;16735:12;16728:19;;16387:366;;;:::o;16759:419::-;16925:4;16963:2;16952:9;16948:18;16940:26;;17012:9;17006:4;17002:20;16998:1;16987:9;16983:17;16976:47;17040:131;17166:4;17040:131;:::i;:::-;17032:139;;16759:419;;;:::o;17184:222::-;17324:34;17320:1;17312:6;17308:14;17301:58;17393:5;17388:2;17380:6;17376:15;17369:30;17184:222;:::o;17412:366::-;17554:3;17575:67;17639:2;17634:3;17575:67;:::i;:::-;17568:74;;17651:93;17740:3;17651:93;:::i;:::-;17769:2;17764:3;17760:12;17753:19;;17412:366;;;:::o;17784:419::-;17950:4;17988:2;17977:9;17973:18;17965:26;;18037:9;18031:4;18027:20;18023:1;18012:9;18008:17;18001:47;18065:131;18191:4;18065:131;:::i;:::-;18057:139;;17784:419;;;:::o;18209:228::-;18349:34;18345:1;18337:6;18333:14;18326:58;18418:11;18413:2;18405:6;18401:15;18394:36;18209:228;:::o;18443:366::-;18585:3;18606:67;18670:2;18665:3;18606:67;:::i;:::-;18599:74;;18682:93;18771:3;18682:93;:::i;:::-;18800:2;18795:3;18791:12;18784:19;;18443:366;;;:::o;18815:419::-;18981:4;19019:2;19008:9;19004:18;18996:26;;19068:9;19062:4;19058:20;19054:1;19043:9;19039:17;19032:47;19096:131;19222:4;19096:131;:::i;:::-;19088:139;;18815:419;;;:::o;19240:175::-;19380:27;19376:1;19368:6;19364:14;19357:51;19240:175;:::o;19421:366::-;19563:3;19584:67;19648:2;19643:3;19584:67;:::i;:::-;19577:74;;19660:93;19749:3;19660:93;:::i;:::-;19778:2;19773:3;19769:12;19762:19;;19421:366;;;:::o;19793:419::-;19959:4;19997:2;19986:9;19982:18;19974:26;;20046:9;20040:4;20036:20;20032:1;20021:9;20017:17;20010:47;20074:131;20200:4;20074:131;:::i;:::-;20066:139;;19793:419;;;:::o;20218:191::-;20258:3;20277:20;20295:1;20277:20;:::i;:::-;20272:25;;20311:20;20329:1;20311:20;:::i;:::-;20306:25;;20354:1;20351;20347:9;20340:16;;20375:3;20372:1;20369:10;20366:36;;;20382:18;;:::i;:::-;20366:36;20218:191;;;;:::o;20415:176::-;20555:28;20551:1;20543:6;20539:14;20532:52;20415:176;:::o;20597:366::-;20739:3;20760:67;20824:2;20819:3;20760:67;:::i;:::-;20753:74;;20836:93;20925:3;20836:93;:::i;:::-;20954:2;20949:3;20945:12;20938:19;;20597:366;;;:::o;20969:419::-;21135:4;21173:2;21162:9;21158:18;21150:26;;21222:9;21216:4;21212:20;21208:1;21197:9;21193:17;21186:47;21250:131;21376:4;21250:131;:::i;:::-;21242:139;;20969:419;;;:::o;21394:233::-;21433:3;21456:24;21474:5;21456:24;:::i;:::-;21447:33;;21502:66;21495:5;21492:77;21489:103;;21572:18;;:::i;:::-;21489:103;21619:1;21612:5;21608:13;21601:20;;21394:233;;;:::o;21633:173::-;21773:25;21769:1;21761:6;21757:14;21750:49;21633:173;:::o;21812:366::-;21954:3;21975:67;22039:2;22034:3;21975:67;:::i;:::-;21968:74;;22051:93;22140:3;22051:93;:::i;:::-;22169:2;22164:3;22160:12;22153:19;;21812:366;;;:::o;22184:419::-;22350:4;22388:2;22377:9;22373:18;22365:26;;22437:9;22431:4;22427:20;22423:1;22412:9;22408:17;22401:47;22465:131;22591:4;22465:131;:::i;:::-;22457:139;;22184:419;;;:::o;22609:194::-;22649:4;22669:20;22687:1;22669:20;:::i;:::-;22664:25;;22703:20;22721:1;22703:20;:::i;:::-;22698:25;;22747:1;22744;22740:9;22732:17;;22771:1;22765:4;22762:11;22759:37;;;22776:18;;:::i;:::-;22759:37;22609:194;;;;:::o;22809:180::-;22857:77;22854:1;22847:88;22954:4;22951:1;22944:15;22978:4;22975:1;22968:15;22995:180;23043:77;23040:1;23033:88;23140:4;23137:1;23130:15;23164:4;23161:1;23154:15;23181:114;23248:6;23282:5;23276:12;23266:22;;23181:114;;;:::o;23301:184::-;23400:11;23434:6;23429:3;23422:19;23474:4;23469:3;23465:14;23450:29;;23301:184;;;;:::o;23491:132::-;23558:4;23581:3;23573:11;;23611:4;23606:3;23602:14;23594:22;;23491:132;;;:::o;23629:108::-;23706:24;23724:5;23706:24;:::i;:::-;23701:3;23694:37;23629:108;;:::o;23743:179::-;23812:10;23833:46;23875:3;23867:6;23833:46;:::i;:::-;23911:4;23906:3;23902:14;23888:28;;23743:179;;;;:::o;23928:113::-;23998:4;24030;24025:3;24021:14;24013:22;;23928:113;;;:::o;24077:732::-;24196:3;24225:54;24273:5;24225:54;:::i;:::-;24295:86;24374:6;24369:3;24295:86;:::i;:::-;24288:93;;24405:56;24455:5;24405:56;:::i;:::-;24484:7;24515:1;24500:284;24525:6;24522:1;24519:13;24500:284;;;24601:6;24595:13;24628:63;24687:3;24672:13;24628:63;:::i;:::-;24621:70;;24714:60;24767:6;24714:60;:::i;:::-;24704:70;;24560:224;24547:1;24544;24540:9;24535:14;;24500:284;;;24504:14;24800:3;24793:10;;24201:608;;;24077:732;;;;:::o;24815:831::-;25078:4;25116:3;25105:9;25101:19;25093:27;;25130:71;25198:1;25187:9;25183:17;25174:6;25130:71;:::i;:::-;25211:80;25287:2;25276:9;25272:18;25263:6;25211:80;:::i;:::-;25338:9;25332:4;25328:20;25323:2;25312:9;25308:18;25301:48;25366:108;25469:4;25460:6;25366:108;:::i;:::-;25358:116;;25484:72;25552:2;25541:9;25537:18;25528:6;25484:72;:::i;:::-;25566:73;25634:3;25623:9;25619:19;25610:6;25566:73;:::i;:::-;24815:831;;;;;;;;:::o;25652:180::-;25700:77;25697:1;25690:88;25797:4;25794:1;25787:15;25821:4;25818:1;25811:15;25838:185;25878:1;25895:20;25913:1;25895:20;:::i;:::-;25890:25;;25929:20;25947:1;25929:20;:::i;:::-;25924:25;;25968:1;25958:35;;25973:18;;:::i;:::-;25958:35;26015:1;26012;26008:9;26003:14;;25838:185;;;;:::o;26029:220::-;26169:34;26165:1;26157:6;26153:14;26146:58;26238:3;26233:2;26225:6;26221:15;26214:28;26029:220;:::o;26255:366::-;26397:3;26418:67;26482:2;26477:3;26418:67;:::i;:::-;26411:74;;26494:93;26583:3;26494:93;:::i;:::-;26612:2;26607:3;26603:12;26596:19;;26255:366;;;:::o;26627:419::-;26793:4;26831:2;26820:9;26816:18;26808:26;;26880:9;26874:4;26870:20;26866:1;26855:9;26851:17;26844:47;26908:131;27034:4;26908:131;:::i;:::-;26900:139;;26627:419;;;:::o;27052:177::-;27192:29;27188:1;27180:6;27176:14;27169:53;27052:177;:::o;27235:366::-;27377:3;27398:67;27462:2;27457:3;27398:67;:::i;:::-;27391:74;;27474:93;27563:3;27474:93;:::i;:::-;27592:2;27587:3;27583:12;27576:19;;27235:366;;;:::o;27607:419::-;27773:4;27811:2;27800:9;27796:18;27788:26;;27860:9;27854:4;27850:20;27846:1;27835:9;27831:17;27824:47;27888:131;28014:4;27888:131;:::i;:::-;27880:139;;27607:419;;;:::o

Swarm Source

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