ETH Price: $3,916.76 (+6.83%)

Token

ERC-20: ClimaxSwap (CMAX)
 

Overview

Max Total Supply

100,000,000 CMAX

Holders

43

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,700,000 CMAX

Value
$0.00
0x7ab890d799ee62c8226cc0280b7ec414caede8e0
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:
ClimaxSwap

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-14
*/

// SPDX-License-Identifier: MIT


/*
    Website:    https://climaxswap.com
    Dapps:      https://app.climaxswap.com
    Docs:       https://docs.climaxswap.com
    Twitter:    https://x.com/ClimaxSwap
    Telegram:   https://t.me/ClimaxSwap
*/

pragma solidity 0.8.19;

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

interface ERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function getOwner() external view returns (address);

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

abstract contract Ownable {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER");
        _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }

    event OwnershipTransferred(address owner);
}

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

interface IUniDexV2Router {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract ClimaxSwap is ERC20, Ownable {
    using SafeMath for uint256;

    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "ClimaxSwap";
    string constant _symbol = "CMAX";

    uint8 constant _decimals = 18;

    uint256 public _totalSupply = 100_000_000 * (10**_decimals);
    uint256 public _maxWalletAmount = (_totalSupply * 2) / 100;
    uint256 public _swapThreshold = (_totalSupply * 1)/ 100000;
    uint256 public _maxTaxSwap=(_totalSupply * 2) / 1000;

    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) _allowances;
    mapping(address => bool) isFeeExempt;
    mapping(address => bool) isTxLimitExempt;

    address public _taxWallet;
    address public pair;

    IUniDexV2Router public dexV2Router;

    bool public swapEnabled = false;
    bool public feesEnabled = false;
    bool public TradingOpen = false;

    uint256 private _initBuyTax=15;
    uint256 private _initSellTax=15;

    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=4;

    uint256 private _reduceBuyTaxAt=10;
    uint256 private _reduceSellTaxAt=15;
    uint256 private _buyCounts=0;

    bool inSwap;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor(address cmaxWallet) Ownable(msg.sender) {

        address _owner = owner;
        _taxWallet = cmaxWallet;

        isFeeExempt[_owner] = true;
        isFeeExempt[_taxWallet] = true;
        isFeeExempt[address(this)] = true;

        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[_taxWallet] = true;
        isTxLimitExempt[address(this)] = true;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    function createCMaxTrade() external onlyOwner {
        
        dexV2Router = IUniDexV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IUniDexV2Factory(dexV2Router.factory()).createPair(address(this), dexV2Router.WETH());
        isTxLimitExempt[pair] = true;

        _allowances[address(this)][address(dexV2Router)] = type(uint256).max;
        dexV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner,block.timestamp);
    }

    function enableCMaxTrade() public onlyOwner {
        require(!TradingOpen,"trading is already open");

        TradingOpen = true;
        feesEnabled = true;
        swapEnabled = true;
    }

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

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

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

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

    function getOwner() external view override returns (address) {
        return owner;
    }

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

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

    function isTakeFees(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

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

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    receive() external payable {

    }

    function inSwapCMax(bool takeFee , uint actions, uint256 amount) internal view returns (bool) {

        uint256 tokensAtThreshold = _swapThreshold;
        uint256 tokenAtAmount = amount;
        uint256 tokensContractBalance = balanceOf(address(this));

        bool isSwapback = tokensContractBalance > tokensAtThreshold && tokenAtAmount > tokensAtThreshold;

        return
            !inSwap &&
            takeFee &&            
            actions > 1 &&
            isSwapback &&
            swapEnabled;
    }

    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    /**
        Internal functions
    **/

    function takeCMaxAmountAfterFees(uint action, bool takefee, uint256 amounts)
        internal
        returns (uint256)
    {
        uint256 cmaxPercents;
        uint256 cmaxFeePrDenominator = 100;

        cmaxPercents = takefee ? 
            action > 1 ? 
            (_buyCounts>_reduceSellTaxAt ? _finalSellTax : _initSellTax) : action > 0 ? 
            (_buyCounts>_reduceBuyTaxAt ? _finalBuyTax : _initBuyTax) : 0 : 1;

        uint256 feeAmounts = amounts.mul(cmaxPercents).div(cmaxFeePrDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmounts);
        feeAmounts = takefee ? feeAmounts : amounts.mul(cmaxPercents * 100).div(cmaxFeePrDenominator);

        return amounts.sub(feeAmounts);
    }

    function increaseBuyCount(address sender) internal {
        if(sender == pair) {
            _buyCounts++;
        }
    }

    function isTakeCMaxActions(address from, address to) internal view returns (uint) {

        uint actionType = 0;

        if(to == pair) {
            actionType = 2;
        } else if (from == pair) {
            actionType = 1;
        } else {
            actionType = 0;
        }
        
        return actionType;       
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        bool takefee;
        uint actions;

        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){
            require(TradingOpen,"Trading not open yet");
        }

        if(!swapEnabled) {
            return _basicTransfer(sender, recipient, amount);
        }
 
        if (recipient != pair && recipient != DEAD && !isFeeExempt[sender] && !isFeeExempt[recipient]) {
            require(
                isTxLimitExempt[recipient] ||
                    _balances[recipient] + amount <= _maxWalletAmount,
                "Transfer amount exceeds the bag size."
            );

            increaseBuyCount(sender);
        }

        takefee = isTakeFees(sender);
        actions = isTakeCMaxActions(sender, recipient);

        if (inSwapCMax(takefee, actions, amount)) {
            internalSwapBackCMax(amount);
        }

        _transferTokens(sender, recipient, amount, takefee, actions);

        return true;
    }

    function _transferTokens(
        address sender,
        address recipient,
        uint256 tAmount,
        bool takeFee,
        uint action
    ) private {

        uint256 senderAmount = takeFee
            ? tAmount : feesEnabled
            ? takeCMaxAmountAfterFees(action, takeFee, tAmount) 
            : tAmount;

        uint256 recipientAmount = feesEnabled && takeFee
            ? takeCMaxAmountAfterFees(action, takeFee, tAmount)
            : tAmount;

        _balances[sender] = _balances[sender].sub(
            senderAmount,
            "Insufficient Balance"
        );

        _balances[recipient] = _balances[recipient].add(recipientAmount);

        emit Transfer(sender, recipient, recipientAmount);

    }

    function internalSwapBackCMax(uint256 amount) private lockTheSwap {
        
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 amountToSwap = min(amount, min(contractTokenBalance, _maxTaxSwap));

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexV2Router.WETH();

        dexV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETHMarketing = address(this).balance;
        payable(_taxWallet).transfer(amountETHMarketing);
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function removeCMaxLimit() external onlyOwner returns (bool) {
        _maxWalletAmount = _totalSupply;
        return true;
    }

    function withdrawCMaxBalance() external onlyOwner {
        require(address(this).balance > 0, "Token: no ETH to clear");
        payable(msg.sender).transfer(address(this).balance);
    }
    
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"cmaxWallet","type":"address"}],"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":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"createCMaxTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexV2Router","outputs":[{"internalType":"contract IUniDexV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableCMaxTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeCMaxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"view","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"},{"inputs":[],"name":"withdrawCMaxBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620000ac91906200071e565b6305f5e100620000bd91906200076f565b60035560646002600354620000d391906200076f565b620000df9190620007e9565b600455620186a06001600354620000f791906200076f565b620001039190620007e9565b6005556103e860026003546200011a91906200076f565b620001269190620007e9565b6006556000600d60146101000a81548160ff0219169083151502179055506000600d60156101000a81548160ff0219169083151502179055506000600d60166101000a81548160ff021916908315150217905550600f600e55600f805560016010556004601155600a601255600f6013556000601455348015620001a957600080fd5b5060405162003b0c38038062003b0c8339818101604052810190620001cf91906200088b565b33806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620005749190620008ce565b60405180910390a35050620008eb565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200061257808604811115620005ea57620005e962000584565b5b6001851615620005fa5780820291505b80810290506200060a85620005b3565b9450620005ca565b94509492505050565b6000826200062d576001905062000700565b816200063d576000905062000700565b8160018114620006565760028114620006615762000697565b600191505062000700565b60ff84111562000676576200067562000584565b5b8360020a91508482111562000690576200068f62000584565b5b5062000700565b5060208310610133831016604e8410600b8410161715620006d15782820a905083811115620006cb57620006ca62000584565b5b62000700565b620006e08484846001620005c0565b92509050818404811115620006fa57620006f962000584565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200072b8262000707565b9150620007388362000711565b9250620007677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200061b565b905092915050565b60006200077c8262000707565b9150620007898362000707565b9250828202620007998162000707565b91508282048414831517620007b357620007b262000584565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007f68262000707565b9150620008038362000707565b925082620008165762000815620007ba565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008538262000826565b9050919050565b620008658162000846565b81146200087157600080fd5b50565b60008151905062000885816200085a565b92915050565b600060208284031215620008a457620008a362000821565b5b6000620008b48482850162000874565b91505092915050565b620008c88162000707565b82525050565b6000602082019050620008e56000830184620008bd565b92915050565b61321180620008fb6000396000f3fe6080604052600436106101855760003560e01c80636f268a99116100d1578063a64e4f8a1161008a578063c3e39e5911610064578063c3e39e5914610561578063c3e3b0e21461058c578063c95ebc88146105a3578063dd62ed3e146105ce5761018c565b8063a64e4f8a146104ce578063a8aa1b31146104f9578063a9059cbb146105245761018c565b80636f268a99146103e257806370a082311461040d578063715018a61461044a578063893d20e814610461578063902b2b9f1461048c57806395d89b41146104a35761018c565b806323b872dd1161013e578063313ce56711610118578063313ce567146103365780633eaaf86b146103615780636c0a24eb1461038c5780636ddd1713146103b75761018c565b806323b872dd146102a55780632af658b0146102e25780632f54bf6e146102f95761018c565b806306fdde031461019157806308fd3d05146101bc578063095ea7b3146101e75780630e5a9231146102245780630faee56f1461024f57806318160ddd1461027a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661060b565b6040516101b39190612589565b60405180910390f35b3480156101c857600080fd5b506101d1610648565b6040516101de91906125c6565b60405180910390f35b3480156101f357600080fd5b5061020e6004803603810190610209919061267a565b61065b565b60405161021b91906125c6565b60405180910390f35b34801561023057600080fd5b5061023961074d565b60405161024691906126c9565b60405180910390f35b34801561025b57600080fd5b50610264610753565b60405161027191906126c9565b60405180910390f35b34801561028657600080fd5b5061028f610759565b60405161029c91906126c9565b60405180910390f35b3480156102b157600080fd5b506102cc60048036038101906102c791906126e4565b610763565b6040516102d991906125c6565b60405180910390f35b3480156102ee57600080fd5b506102f7610963565b005b34801561030557600080fd5b50610320600480360381019061031b9190612737565b610a4e565b60405161032d91906125c6565b60405180910390f35b34801561034257600080fd5b5061034b610aa7565b6040516103589190612780565b60405180910390f35b34801561036d57600080fd5b50610376610ab0565b60405161038391906126c9565b60405180910390f35b34801561039857600080fd5b506103a1610ab6565b6040516103ae91906126c9565b60405180910390f35b3480156103c357600080fd5b506103cc610abc565b6040516103d991906125c6565b60405180910390f35b3480156103ee57600080fd5b506103f7610acf565b60405161040491906127aa565b60405180910390f35b34801561041957600080fd5b50610434600480360381019061042f9190612737565b610af5565b60405161044191906126c9565b60405180910390f35b34801561045657600080fd5b5061045f610b3e565b005b34801561046d57600080fd5b50610476610c01565b60405161048391906127aa565b60405180910390f35b34801561049857600080fd5b506104a1610c2a565b005b3480156104af57600080fd5b506104b8610cfe565b6040516104c59190612589565b60405180910390f35b3480156104da57600080fd5b506104e3610d3b565b6040516104f091906125c6565b60405180910390f35b34801561050557600080fd5b5061050e610d4e565b60405161051b91906127aa565b60405180910390f35b34801561053057600080fd5b5061054b6004803603810190610546919061267a565b610d74565b60405161055891906125c6565b60405180910390f35b34801561056d57600080fd5b50610576610d89565b6040516105839190612824565b60405180910390f35b34801561059857600080fd5b506105a1610daf565b005b3480156105af57600080fd5b506105b861123e565b6040516105c591906125c6565b60405180910390f35b3480156105da57600080fd5b506105f560048036038101906105f0919061283f565b611298565b60405161060291906126c9565b60405180910390f35b60606040518060400160405280600a81526020017f436c696d61785377617000000000000000000000000000000000000000000000815250905090565b600d60169054906101000a900460ff1681565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161073b91906126c9565b60405180910390a36001905092915050565b60055481565b60065481565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461094f576108ce826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461131f9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61095a848484611383565b90509392505050565b61096c33610a4e565b6109ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a2906128cb565b60405180910390fd5b600d60169054906101000a900460ff16156109fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f290612937565b60405180910390fd5b6001600d60166101000a81548160ff0219169083151502179055506001600d60156101000a81548160ff0219169083151502179055506001600d60146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b60035481565b60045481565b600d60149054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b4733610a4e565b610b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7d906128cb565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610bf791906127aa565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c3333610a4e565b610c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c69906128cb565b60405180910390fd5b60004711610cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cac906129a3565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610cfb573d6000803e3d6000fd5b50565b60606040518060400160405280600481526020017f434d415800000000000000000000000000000000000000000000000000000000815250905090565b600d60159054906101000a900460ff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d81338484611383565b905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610db833610a4e565b610df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dee906128cb565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd91906129d8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8a91906129d8565b6040518363ffffffff1660e01b8152600401610fa7929190612a05565b6020604051808303816000875af1158015610fc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fea91906129d8565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306111b030610af5565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016111f696959493929190612a69565b60606040518083038185885af1158015611214573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112399190612adf565b505050565b600061124933610a4e565b611288576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127f906128cb565b60405180910390fd5b6003546004819055506001905090565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000838311158290611367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135e9190612589565b60405180910390fd5b50600083856113769190612b61565b9050809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036113f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ea90612c07565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611462576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145990612c99565b60405180910390fd5b600082116114a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149c90612d2b565b60405180910390fd5b600080601560009054906101000a900460ff16156114d1576114c8868686611888565b92505050611881565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115755750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115ca57600d60169054906101000a900460ff166115c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c090612d97565b60405180910390fd5b5b600d60149054906101000a900460ff166115f2576115e9868686611888565b92505050611881565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561169e5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156116f45750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561174a5750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561183c57600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117f3575060045484600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117f09190612db7565b11155b611832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182990612e5d565b60405180910390fd5b61183b86611a5b565b5b61184586611acc565b91506118518686611b23565b905061185e828286611bf6565b1561186d5761186c84611c76565b5b61187a8686868585611f59565b6001925050505b9392505050565b6000611913826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461131f9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119a882600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461219190919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a4891906126c9565b60405180910390a3600190509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ac95760146000815480929190611ac390612e7d565b91905055505b50565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008060009050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b885760029050611bec565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611be65760019050611beb565b600090505b5b8091505092915050565b600080600554905060008390506000611c0e30610af5565b905060008382118015611c2057508383115b9050601560009054906101000a900460ff16158015611c3c5750875b8015611c485750600187115b8015611c515750805b8015611c695750600d60149054906101000a900460ff165b9450505050509392505050565b6001601560006101000a81548160ff0219169083151502179055506000611c9c30610af5565b90506000611cb583611cb0846006546121ef565b6121ef565b90506000600267ffffffffffffffff811115611cd457611cd3612ec5565b5b604051908082528060200260200182016040528015611d025781602001602082028036833780820191505090505b5090503081600081518110611d1a57611d19612ef4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de591906129d8565b81600181518110611df957611df8612ef4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e97959493929190612fe1565b600060405180830381600087803b158015611eb157600080fd5b505af1158015611ec5573d6000803e3d6000fd5b505050506000479050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f36573d6000803e3d6000fd5b50505050506000601560006101000a81548160ff02191690831515021790555050565b600082611f8b57600d60159054906101000a900460ff16611f7a5783611f86565b611f85828486612208565b5b611f8d565b835b90506000600d60159054906101000a900460ff168015611faa5750835b611fb45784611fc0565b611fbf838587612208565b5b905061204b826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461131f9092919063ffffffff16565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120e081600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461219190919063ffffffff16565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161218091906126c9565b60405180910390a350505050505050565b60008082846121a09190612db7565b9050838110156121e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121dc90613087565b60405180910390fd5b8091505092915050565b60008183116121fe5782612200565b815b905092915050565b6000806000606490508461221d57600161226a565b60018611612251576000861161223457600061224c565b6012546014541161224757600e5461224b565b6010545b5b612269565b6013546014541161226457600f54612268565b6011545b5b5b9150600061229382612285858861238890919063ffffffff16565b61240290919063ffffffff16565b90506122e781600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461219190919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555085612365576123608261235260648661234391906130a7565b8861238890919063ffffffff16565b61240290919063ffffffff16565b612367565b805b905061237c818661244c90919063ffffffff16565b93505050509392505050565b600080830361239a57600090506123fc565b600082846123a891906130a7565b90508284826123b79190613118565b146123f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ee906131bb565b60405180910390fd5b809150505b92915050565b600061244483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612496565b905092915050565b600061248e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061131f565b905092915050565b600080831182906124dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d49190612589565b60405180910390fd5b50600083856124ec9190613118565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612533578082015181840152602081019050612518565b60008484015250505050565b6000601f19601f8301169050919050565b600061255b826124f9565b6125658185612504565b9350612575818560208601612515565b61257e8161253f565b840191505092915050565b600060208201905081810360008301526125a38184612550565b905092915050565b60008115159050919050565b6125c0816125ab565b82525050565b60006020820190506125db60008301846125b7565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612611826125e6565b9050919050565b61262181612606565b811461262c57600080fd5b50565b60008135905061263e81612618565b92915050565b6000819050919050565b61265781612644565b811461266257600080fd5b50565b6000813590506126748161264e565b92915050565b60008060408385031215612691576126906125e1565b5b600061269f8582860161262f565b92505060206126b085828601612665565b9150509250929050565b6126c381612644565b82525050565b60006020820190506126de60008301846126ba565b92915050565b6000806000606084860312156126fd576126fc6125e1565b5b600061270b8682870161262f565b935050602061271c8682870161262f565b925050604061272d86828701612665565b9150509250925092565b60006020828403121561274d5761274c6125e1565b5b600061275b8482850161262f565b91505092915050565b600060ff82169050919050565b61277a81612764565b82525050565b60006020820190506127956000830184612771565b92915050565b6127a481612606565b82525050565b60006020820190506127bf600083018461279b565b92915050565b6000819050919050565b60006127ea6127e56127e0846125e6565b6127c5565b6125e6565b9050919050565b60006127fc826127cf565b9050919050565b600061280e826127f1565b9050919050565b61281e81612803565b82525050565b60006020820190506128396000830184612815565b92915050565b60008060408385031215612856576128556125e1565b5b60006128648582860161262f565b92505060206128758582860161262f565b9150509250929050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006128b5600683612504565b91506128c08261287f565b602082019050919050565b600060208201905081810360008301526128e4816128a8565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612921601783612504565b915061292c826128eb565b602082019050919050565b6000602082019050818103600083015261295081612914565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b600061298d601683612504565b915061299882612957565b602082019050919050565b600060208201905081810360008301526129bc81612980565b9050919050565b6000815190506129d281612618565b92915050565b6000602082840312156129ee576129ed6125e1565b5b60006129fc848285016129c3565b91505092915050565b6000604082019050612a1a600083018561279b565b612a27602083018461279b565b9392505050565b6000819050919050565b6000612a53612a4e612a4984612a2e565b6127c5565b612644565b9050919050565b612a6381612a38565b82525050565b600060c082019050612a7e600083018961279b565b612a8b60208301886126ba565b612a986040830187612a5a565b612aa56060830186612a5a565b612ab2608083018561279b565b612abf60a08301846126ba565b979650505050505050565b600081519050612ad98161264e565b92915050565b600080600060608486031215612af857612af76125e1565b5b6000612b0686828701612aca565b9350506020612b1786828701612aca565b9250506040612b2886828701612aca565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b6c82612644565b9150612b7783612644565b9250828203905081811115612b8f57612b8e612b32565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612bf1602583612504565b9150612bfc82612b95565b604082019050919050565b60006020820190508181036000830152612c2081612be4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c83602383612504565b9150612c8e82612c27565b604082019050919050565b60006020820190508181036000830152612cb281612c76565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612d15602983612504565b9150612d2082612cb9565b604082019050919050565b60006020820190508181036000830152612d4481612d08565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b6000612d81601483612504565b9150612d8c82612d4b565b602082019050919050565b60006020820190508181036000830152612db081612d74565b9050919050565b6000612dc282612644565b9150612dcd83612644565b9250828201905080821115612de557612de4612b32565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612e47602583612504565b9150612e5282612deb565b604082019050919050565b60006020820190508181036000830152612e7681612e3a565b9050919050565b6000612e8882612644565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612eba57612eb9612b32565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f5881612606565b82525050565b6000612f6a8383612f4f565b60208301905092915050565b6000602082019050919050565b6000612f8e82612f23565b612f988185612f2e565b9350612fa383612f3f565b8060005b83811015612fd4578151612fbb8882612f5e565b9750612fc683612f76565b925050600181019050612fa7565b5085935050505092915050565b600060a082019050612ff660008301886126ba565b6130036020830187612a5a565b81810360408301526130158186612f83565b9050613024606083018561279b565b61303160808301846126ba565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613071601b83612504565b915061307c8261303b565b602082019050919050565b600060208201905081810360008301526130a081613064565b9050919050565b60006130b282612644565b91506130bd83612644565b92508282026130cb81612644565b915082820484148315176130e2576130e1612b32565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061312382612644565b915061312e83612644565b92508261313e5761313d6130e9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006131a5602183612504565b91506131b082613149565b604082019050919050565b600060208201905081810360008301526131d481613198565b905091905056fea26469706673582212201b76934f323e0dbc14e54dae788879bdf453b678103350972fec9215a81be7c664736f6c63430008130033000000000000000000000000fbf36ead5e65c5d4c9ba7bcbb6e9b1e04816bc8e

Deployed Bytecode

0x6080604052600436106101855760003560e01c80636f268a99116100d1578063a64e4f8a1161008a578063c3e39e5911610064578063c3e39e5914610561578063c3e3b0e21461058c578063c95ebc88146105a3578063dd62ed3e146105ce5761018c565b8063a64e4f8a146104ce578063a8aa1b31146104f9578063a9059cbb146105245761018c565b80636f268a99146103e257806370a082311461040d578063715018a61461044a578063893d20e814610461578063902b2b9f1461048c57806395d89b41146104a35761018c565b806323b872dd1161013e578063313ce56711610118578063313ce567146103365780633eaaf86b146103615780636c0a24eb1461038c5780636ddd1713146103b75761018c565b806323b872dd146102a55780632af658b0146102e25780632f54bf6e146102f95761018c565b806306fdde031461019157806308fd3d05146101bc578063095ea7b3146101e75780630e5a9231146102245780630faee56f1461024f57806318160ddd1461027a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661060b565b6040516101b39190612589565b60405180910390f35b3480156101c857600080fd5b506101d1610648565b6040516101de91906125c6565b60405180910390f35b3480156101f357600080fd5b5061020e6004803603810190610209919061267a565b61065b565b60405161021b91906125c6565b60405180910390f35b34801561023057600080fd5b5061023961074d565b60405161024691906126c9565b60405180910390f35b34801561025b57600080fd5b50610264610753565b60405161027191906126c9565b60405180910390f35b34801561028657600080fd5b5061028f610759565b60405161029c91906126c9565b60405180910390f35b3480156102b157600080fd5b506102cc60048036038101906102c791906126e4565b610763565b6040516102d991906125c6565b60405180910390f35b3480156102ee57600080fd5b506102f7610963565b005b34801561030557600080fd5b50610320600480360381019061031b9190612737565b610a4e565b60405161032d91906125c6565b60405180910390f35b34801561034257600080fd5b5061034b610aa7565b6040516103589190612780565b60405180910390f35b34801561036d57600080fd5b50610376610ab0565b60405161038391906126c9565b60405180910390f35b34801561039857600080fd5b506103a1610ab6565b6040516103ae91906126c9565b60405180910390f35b3480156103c357600080fd5b506103cc610abc565b6040516103d991906125c6565b60405180910390f35b3480156103ee57600080fd5b506103f7610acf565b60405161040491906127aa565b60405180910390f35b34801561041957600080fd5b50610434600480360381019061042f9190612737565b610af5565b60405161044191906126c9565b60405180910390f35b34801561045657600080fd5b5061045f610b3e565b005b34801561046d57600080fd5b50610476610c01565b60405161048391906127aa565b60405180910390f35b34801561049857600080fd5b506104a1610c2a565b005b3480156104af57600080fd5b506104b8610cfe565b6040516104c59190612589565b60405180910390f35b3480156104da57600080fd5b506104e3610d3b565b6040516104f091906125c6565b60405180910390f35b34801561050557600080fd5b5061050e610d4e565b60405161051b91906127aa565b60405180910390f35b34801561053057600080fd5b5061054b6004803603810190610546919061267a565b610d74565b60405161055891906125c6565b60405180910390f35b34801561056d57600080fd5b50610576610d89565b6040516105839190612824565b60405180910390f35b34801561059857600080fd5b506105a1610daf565b005b3480156105af57600080fd5b506105b861123e565b6040516105c591906125c6565b60405180910390f35b3480156105da57600080fd5b506105f560048036038101906105f0919061283f565b611298565b60405161060291906126c9565b60405180910390f35b60606040518060400160405280600a81526020017f436c696d61785377617000000000000000000000000000000000000000000000815250905090565b600d60169054906101000a900460ff1681565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161073b91906126c9565b60405180910390a36001905092915050565b60055481565b60065481565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461094f576108ce826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461131f9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61095a848484611383565b90509392505050565b61096c33610a4e565b6109ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a2906128cb565b60405180910390fd5b600d60169054906101000a900460ff16156109fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f290612937565b60405180910390fd5b6001600d60166101000a81548160ff0219169083151502179055506001600d60156101000a81548160ff0219169083151502179055506001600d60146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b60035481565b60045481565b600d60149054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b4733610a4e565b610b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7d906128cb565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610bf791906127aa565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c3333610a4e565b610c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c69906128cb565b60405180910390fd5b60004711610cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cac906129a3565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610cfb573d6000803e3d6000fd5b50565b60606040518060400160405280600481526020017f434d415800000000000000000000000000000000000000000000000000000000815250905090565b600d60159054906101000a900460ff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d81338484611383565b905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610db833610a4e565b610df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dee906128cb565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd91906129d8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8a91906129d8565b6040518363ffffffff1660e01b8152600401610fa7929190612a05565b6020604051808303816000875af1158015610fc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fea91906129d8565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306111b030610af5565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016111f696959493929190612a69565b60606040518083038185885af1158015611214573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112399190612adf565b505050565b600061124933610a4e565b611288576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127f906128cb565b60405180910390fd5b6003546004819055506001905090565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000838311158290611367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135e9190612589565b60405180910390fd5b50600083856113769190612b61565b9050809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036113f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ea90612c07565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611462576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145990612c99565b60405180910390fd5b600082116114a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149c90612d2b565b60405180910390fd5b600080601560009054906101000a900460ff16156114d1576114c8868686611888565b92505050611881565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115755750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115ca57600d60169054906101000a900460ff166115c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c090612d97565b60405180910390fd5b5b600d60149054906101000a900460ff166115f2576115e9868686611888565b92505050611881565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561169e5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156116f45750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561174a5750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561183c57600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117f3575060045484600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117f09190612db7565b11155b611832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182990612e5d565b60405180910390fd5b61183b86611a5b565b5b61184586611acc565b91506118518686611b23565b905061185e828286611bf6565b1561186d5761186c84611c76565b5b61187a8686868585611f59565b6001925050505b9392505050565b6000611913826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461131f9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119a882600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461219190919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a4891906126c9565b60405180910390a3600190509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ac95760146000815480929190611ac390612e7d565b91905055505b50565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008060009050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b885760029050611bec565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611be65760019050611beb565b600090505b5b8091505092915050565b600080600554905060008390506000611c0e30610af5565b905060008382118015611c2057508383115b9050601560009054906101000a900460ff16158015611c3c5750875b8015611c485750600187115b8015611c515750805b8015611c695750600d60149054906101000a900460ff165b9450505050509392505050565b6001601560006101000a81548160ff0219169083151502179055506000611c9c30610af5565b90506000611cb583611cb0846006546121ef565b6121ef565b90506000600267ffffffffffffffff811115611cd457611cd3612ec5565b5b604051908082528060200260200182016040528015611d025781602001602082028036833780820191505090505b5090503081600081518110611d1a57611d19612ef4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de591906129d8565b81600181518110611df957611df8612ef4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e97959493929190612fe1565b600060405180830381600087803b158015611eb157600080fd5b505af1158015611ec5573d6000803e3d6000fd5b505050506000479050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f36573d6000803e3d6000fd5b50505050506000601560006101000a81548160ff02191690831515021790555050565b600082611f8b57600d60159054906101000a900460ff16611f7a5783611f86565b611f85828486612208565b5b611f8d565b835b90506000600d60159054906101000a900460ff168015611faa5750835b611fb45784611fc0565b611fbf838587612208565b5b905061204b826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461131f9092919063ffffffff16565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120e081600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461219190919063ffffffff16565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161218091906126c9565b60405180910390a350505050505050565b60008082846121a09190612db7565b9050838110156121e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121dc90613087565b60405180910390fd5b8091505092915050565b60008183116121fe5782612200565b815b905092915050565b6000806000606490508461221d57600161226a565b60018611612251576000861161223457600061224c565b6012546014541161224757600e5461224b565b6010545b5b612269565b6013546014541161226457600f54612268565b6011545b5b5b9150600061229382612285858861238890919063ffffffff16565b61240290919063ffffffff16565b90506122e781600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461219190919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555085612365576123608261235260648661234391906130a7565b8861238890919063ffffffff16565b61240290919063ffffffff16565b612367565b805b905061237c818661244c90919063ffffffff16565b93505050509392505050565b600080830361239a57600090506123fc565b600082846123a891906130a7565b90508284826123b79190613118565b146123f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ee906131bb565b60405180910390fd5b809150505b92915050565b600061244483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612496565b905092915050565b600061248e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061131f565b905092915050565b600080831182906124dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d49190612589565b60405180910390fd5b50600083856124ec9190613118565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612533578082015181840152602081019050612518565b60008484015250505050565b6000601f19601f8301169050919050565b600061255b826124f9565b6125658185612504565b9350612575818560208601612515565b61257e8161253f565b840191505092915050565b600060208201905081810360008301526125a38184612550565b905092915050565b60008115159050919050565b6125c0816125ab565b82525050565b60006020820190506125db60008301846125b7565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612611826125e6565b9050919050565b61262181612606565b811461262c57600080fd5b50565b60008135905061263e81612618565b92915050565b6000819050919050565b61265781612644565b811461266257600080fd5b50565b6000813590506126748161264e565b92915050565b60008060408385031215612691576126906125e1565b5b600061269f8582860161262f565b92505060206126b085828601612665565b9150509250929050565b6126c381612644565b82525050565b60006020820190506126de60008301846126ba565b92915050565b6000806000606084860312156126fd576126fc6125e1565b5b600061270b8682870161262f565b935050602061271c8682870161262f565b925050604061272d86828701612665565b9150509250925092565b60006020828403121561274d5761274c6125e1565b5b600061275b8482850161262f565b91505092915050565b600060ff82169050919050565b61277a81612764565b82525050565b60006020820190506127956000830184612771565b92915050565b6127a481612606565b82525050565b60006020820190506127bf600083018461279b565b92915050565b6000819050919050565b60006127ea6127e56127e0846125e6565b6127c5565b6125e6565b9050919050565b60006127fc826127cf565b9050919050565b600061280e826127f1565b9050919050565b61281e81612803565b82525050565b60006020820190506128396000830184612815565b92915050565b60008060408385031215612856576128556125e1565b5b60006128648582860161262f565b92505060206128758582860161262f565b9150509250929050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006128b5600683612504565b91506128c08261287f565b602082019050919050565b600060208201905081810360008301526128e4816128a8565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612921601783612504565b915061292c826128eb565b602082019050919050565b6000602082019050818103600083015261295081612914565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b600061298d601683612504565b915061299882612957565b602082019050919050565b600060208201905081810360008301526129bc81612980565b9050919050565b6000815190506129d281612618565b92915050565b6000602082840312156129ee576129ed6125e1565b5b60006129fc848285016129c3565b91505092915050565b6000604082019050612a1a600083018561279b565b612a27602083018461279b565b9392505050565b6000819050919050565b6000612a53612a4e612a4984612a2e565b6127c5565b612644565b9050919050565b612a6381612a38565b82525050565b600060c082019050612a7e600083018961279b565b612a8b60208301886126ba565b612a986040830187612a5a565b612aa56060830186612a5a565b612ab2608083018561279b565b612abf60a08301846126ba565b979650505050505050565b600081519050612ad98161264e565b92915050565b600080600060608486031215612af857612af76125e1565b5b6000612b0686828701612aca565b9350506020612b1786828701612aca565b9250506040612b2886828701612aca565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b6c82612644565b9150612b7783612644565b9250828203905081811115612b8f57612b8e612b32565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612bf1602583612504565b9150612bfc82612b95565b604082019050919050565b60006020820190508181036000830152612c2081612be4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c83602383612504565b9150612c8e82612c27565b604082019050919050565b60006020820190508181036000830152612cb281612c76565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612d15602983612504565b9150612d2082612cb9565b604082019050919050565b60006020820190508181036000830152612d4481612d08565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b6000612d81601483612504565b9150612d8c82612d4b565b602082019050919050565b60006020820190508181036000830152612db081612d74565b9050919050565b6000612dc282612644565b9150612dcd83612644565b9250828201905080821115612de557612de4612b32565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612e47602583612504565b9150612e5282612deb565b604082019050919050565b60006020820190508181036000830152612e7681612e3a565b9050919050565b6000612e8882612644565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612eba57612eb9612b32565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f5881612606565b82525050565b6000612f6a8383612f4f565b60208301905092915050565b6000602082019050919050565b6000612f8e82612f23565b612f988185612f2e565b9350612fa383612f3f565b8060005b83811015612fd4578151612fbb8882612f5e565b9750612fc683612f76565b925050600181019050612fa7565b5085935050505092915050565b600060a082019050612ff660008301886126ba565b6130036020830187612a5a565b81810360408301526130158186612f83565b9050613024606083018561279b565b61303160808301846126ba565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613071601b83612504565b915061307c8261303b565b602082019050919050565b600060208201905081810360008301526130a081613064565b9050919050565b60006130b282612644565b91506130bd83612644565b92508282026130cb81612644565b915082820484148315176130e2576130e1612b32565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061312382612644565b915061312e83612644565b92508261313e5761313d6130e9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006131a5602183612504565b91506131b082613149565b604082019050919050565b600060208201905081810360008301526131d481613198565b905091905056fea26469706673582212201b76934f323e0dbc14e54dae788879bdf453b678103350972fec9215a81be7c664736f6c63430008130033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000fbf36ead5e65c5d4c9ba7bcbb6e9b1e04816bc8e

-----Decoded View---------------
Arg [0] : cmaxWallet (address): 0xfBF36ead5e65c5D4c9bA7BCBb6E9b1E04816Bc8E

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000fbf36ead5e65c5d4c9ba7bcbb6e9b1e04816bc8e


Deployed Bytecode Sourcemap

4792:10133:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7420:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5770:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8488:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5263:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5328:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7522:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9526:424;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7213:199;;;;;;;;;;;;;:::i;:::-;;2774:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7632:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5132:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5198:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5694:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5591:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7940:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2885:131;;;;;;;;;;;;;:::i;:::-;;7840:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14725:191;;;;;;;;;;;;;:::i;:::-;;7734:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5732:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5623:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9330:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5651:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6700:505;;;;;;;;;;;;;:::i;:::-;;14584:133;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8292:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7420:94;7468:13;7501:5;;;;;;;;;;;;;;;;;7494:12;;7420:94;:::o;5770:31::-;;;;;;;;;;;;;:::o;8488:248::-;8590:4;8647:6;8612:11;:23;8624:10;8612:23;;;;;;;;;;;;;;;:32;8636:7;8612:32;;;;;;;;;;;;;;;:41;;;;8690:7;8669:37;;8678:10;8669:37;;;8699:6;8669:37;;;;;;:::i;:::-;;;;;;;;8724:4;8717:11;;8488:248;;;;:::o;5263:58::-;;;;:::o;5328:52::-;;;;:::o;7522:102::-;7577:7;7604:12;;7597:19;;7522:102;:::o;9526:424::-;9660:4;9716:17;9681:11;:19;9693:6;9681:19;;;;;;;;;;;;;;;:31;9701:10;9681:31;;;;;;;;;;;;;;;;:52;9677:206;;9784:87;9838:6;9784:87;;;;;;;;;;;;;;;;;:11;:19;9796:6;9784:19;;;;;;;;;;;;;;;:31;9804:10;9784:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;9750:11;:19;9762:6;9750:19;;;;;;;;;;;;;;;:31;9770:10;9750:31;;;;;;;;;;;;;;;:121;;;;9677:206;9902:40;9916:6;9924:9;9935:6;9902:13;:40::i;:::-;9895:47;;9526:424;;;;;:::o;7213:199::-;2716:19;2724:10;2716:7;:19::i;:::-;2708:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7277:11:::1;;;;;;;;;;;7276:12;7268:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;7342:4;7328:11;;:18;;;;;;;;;;;;;;;;;;7371:4;7357:11;;:18;;;;;;;;;;;;;;;;;;7400:4;7386:11;;:18;;;;;;;;;;;;;;;;;;7213:199::o:0;2774:103::-;2829:4;2864:5;;;;;;;;;;;2853:16;;:7;:16;;;2846:23;;2774:103;;;:::o;7632:94::-;7684:5;5121:2;7702:16;;7632:94;:::o;5132:59::-;;;;:::o;5198:58::-;;;;:::o;5694:31::-;;;;;;;;;;;;;:::o;5591:25::-;;;;;;;;;;;;;:::o;7940:119::-;8006:7;8033:9;:18;8043:7;8033:18;;;;;;;;;;;;;;;;8026:25;;7940:119;;;:::o;2885:131::-;2716:19;2724:10;2716:7;:19::i;:::-;2708:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2958:1:::1;2942:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2976:32;3005:1;2976:32;;;;;;:::i;:::-;;;;;;;;2885:131::o:0;7840:92::-;7892:7;7919:5;;;;;;;;;;;7912:12;;7840:92;:::o;14725:191::-;2716:19;2724:10;2716:7;:19::i;:::-;2708:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14818:1:::1;14794:21;:25;14786:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;14865:10;14857:28;;:51;14886:21;14857:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14725:191::o:0;7734:98::-;7784:13;7817:7;;;;;;;;;;;;;;;;;7810:14;;7734:98;:::o;5732:31::-;;;;;;;;;;;;;:::o;5623:19::-;;;;;;;;;;;;;:::o;9330:188::-;9437:4;9466:44;9480:10;9492:9;9503:6;9466:13;:44::i;:::-;9459:51;;9330:188;;;;:::o;5651:34::-;;;;;;;;;;;;;:::o;6700:505::-;2716:19;2724:10;2716:7;:19::i;:::-;2708:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;6797:42:::1;6767:11;;:73;;;;;;;;;;;;;;;;;;6875:11;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6858:50;;;6917:4;6924:11;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6858:85;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6851:4;;:92;;;;;;;;;;;;;;;;;;6978:4;6954:15;:21;6970:4;;;;;;;;;;;6954:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;7046:17;6995:11;:26;7015:4;6995:26;;;;;;;;;;;;;;;:48;7030:11;;;;;;;;;;;6995:48;;;;;;;;;;;;;;;:68;;;;7074:11;;;;;;;;;;;:27;;;7109:21;7140:4;7146:24;7164:4;7146:9;:24::i;:::-;7171:1;7173::::0;7175:5:::1;::::0;::::1;;;;;;;;7181:15;7074:123;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6700:505::o:0;14584:133::-;14639:4;2716:19;2724:10;2716:7;:19::i;:::-;2708:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14675:12:::1;;14656:16;:31;;;;14705:4;14698:11;;14584:133:::0;:::o;8292:188::-;8412:7;8444:11;:19;8456:6;8444:19;;;;;;;;;;;;;;;:28;8464:7;8444:28;;;;;;;;;;;;;;;;8437:35;;8292:188;;;;:::o;641:224::-;761:7;794:1;789;:6;;797:12;781:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;821:9;837:1;833;:5;;;;:::i;:::-;821:17;;856:1;849:8;;;641:224;;;;;:::o;11259:1443::-;11385:4;11430:1;11412:20;;:6;:20;;;11404:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11514:1;11493:23;;:9;:23;;;11485:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11584:1;11575:6;:10;11567:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11644:12;11667;11696:6;;;;;;;;;;;11692:87;;;11726:41;11741:6;11749:9;11760:6;11726:14;:41::i;:::-;11719:48;;;;;;11692:87;11795:11;:19;11807:6;11795:19;;;;;;;;;;;;;;;;;;;;;;;;;11794:20;:47;;;;;11819:11;:22;11831:9;11819:22;;;;;;;;;;;;;;;;;;;;;;;;;11818:23;11794:47;11791:121;;;11865:11;;;;;;;;;;;11857:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;11791:121;11928:11;;;;;;;;;;;11924:92;;11963:41;11978:6;11986:9;11997:6;11963:14;:41::i;:::-;11956:48;;;;;;11924:92;12046:4;;;;;;;;;;;12033:17;;:9;:17;;;;:38;;;;;12067:4;;;;;;;;;;;12054:17;;:9;:17;;;;12033:38;:62;;;;;12076:11;:19;12088:6;12076:19;;;;;;;;;;;;;;;;;;;;;;;;;12075:20;12033:62;:89;;;;;12100:11;:22;12112:9;12100:22;;;;;;;;;;;;;;;;;;;;;;;;;12099:23;12033:89;12029:362;;;12165:15;:26;12181:9;12165:26;;;;;;;;;;;;;;;;;;;;;;;;;:100;;;;12249:16;;12239:6;12216:9;:20;12226:9;12216:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;12165:100;12139:199;;;;;;;;;;;;:::i;:::-;;;;;;;;;12355:24;12372:6;12355:16;:24::i;:::-;12029:362;12413:18;12424:6;12413:10;:18::i;:::-;12403:28;;12452:36;12470:6;12478:9;12452:17;:36::i;:::-;12442:46;;12505:36;12516:7;12525;12534:6;12505:10;:36::i;:::-;12501:97;;;12558:28;12579:6;12558:20;:28::i;:::-;12501:97;12610:60;12626:6;12634:9;12645:6;12653:7;12662;12610:15;:60::i;:::-;12690:4;12683:11;;;;11259:1443;;;;;;:::o;14175:401::-;14302:4;14339:90;14375:6;14339:90;;;;;;;;;;;;;;;;;:9;:17;14349:6;14339:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;14319:9;:17;14329:6;14319:17;;;;;;;;;;;;;;;:110;;;;14463:32;14488:6;14463:9;:20;14473:9;14463:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14440:9;:20;14450:9;14440:20;;;;;;;;;;;;;;;:55;;;;14528:9;14511:35;;14520:6;14511:35;;;14539:6;14511:35;;;;;;:::i;:::-;;;;;;;;14564:4;14557:11;;14175:401;;;;;:::o;10769:127::-;10844:4;;;;;;;;;;;10834:14;;:6;:14;;;10831:58;;10865:10;;:12;;;;;;;;;:::i;:::-;;;;;;10831:58;10769:127;:::o;8173:111::-;8232:4;8257:11;:19;8269:6;8257:19;;;;;;;;;;;;;;;;;;;;;;;;;8256:20;8249:27;;8173:111;;;:::o;10904:347::-;10980:4;10999:15;11017:1;10999:19;;11040:4;;;;;;;;;;;11034:10;;:2;:10;;;11031:168;;11074:1;11061:14;;11031:168;;;11105:4;;;;;;;;;;;11097:12;;:4;:12;;;11093:106;;11139:1;11126:14;;11093:106;;;11186:1;11173:14;;11093:106;11031:168;11226:10;11219:17;;;10904:347;;;;:::o;8789:533::-;8877:4;8896:25;8924:14;;8896:42;;8949:21;8973:6;8949:30;;8990:29;9022:24;9040:4;9022:9;:24::i;:::-;8990:56;;9059:15;9101:17;9077:21;:41;:78;;;;;9138:17;9122:13;:33;9077:78;9059:96;;9189:6;;;;;;;;;;;9188:7;:31;;;;;9212:7;9188:31;:71;;;;;9258:1;9248:7;:11;9188:71;:98;;;;;9276:10;9188:98;:126;;;;;9303:11;;;;;;;;;;;9188:126;9168:146;;;;;;8789:533;;;;;:::o;13478:689::-;6143:4;6134:6;;:13;;;;;;;;;;;;;;;;;;13565:28:::1;13596:24;13614:4;13596:9;:24::i;:::-;13565:55;;13631:20;13654:51;13658:6;13666:38;13670:20;13692:11;;13666:3;:38::i;:::-;13654:3;:51::i;:::-;13631:74;;13718:21;13756:1;13742:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13718:40;;13787:4;13769;13774:1;13769:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13813:11;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13803:4;13808:1;13803:7;;;;;;;;:::i;:::-;;;;;;;:28;;;;;;;;;::::0;::::1;13844:11;;;;;;;;;;;:62;;;13921:12;13948:1;13964:4;13991;14011:15;13844:193;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14050:26;14079:21;14050:50;;14119:10;;;;;;;;;;;14111:28;;:48;14140:18;14111:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13544:623;;;;6179:5:::0;6170:6;;:14;;;;;;;;;;;;;;;;;;13478:689;:::o;12710:760::-;12887:20;12910:7;:133;;12943:11;;;;;;;;;;;:100;;13036:7;12943:100;;;12970:49;12994:6;13002:7;13011;12970:23;:49::i;:::-;12943:100;12910:133;;;12933:7;12910:133;12887:156;;13056:23;13082:11;;;;;;;;;;;:22;;;;;13097:7;13082:22;:110;;13185:7;13082:110;;;13120:49;13144:6;13152:7;13161;13120:23;:49::i;:::-;13082:110;13056:136;;13225:96;13261:12;13225:96;;;;;;;;;;;;;;;;;:9;:17;13235:6;13225:17;;;;;;;;;;;;;;;;:21;;:96;;;;;:::i;:::-;13205:9;:17;13215:6;13205:17;;;;;;;;;;;;;;;:116;;;;13357:41;13382:15;13357:9;:20;13367:9;13357:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;13334:9;:20;13344:9;13334:20;;;;;;;;;;;;;;;:64;;;;13433:9;13416:44;;13425:6;13416:44;;;13444:15;13416:44;;;;;;:::i;:::-;;;;;;;;12874:596;;12710:760;;;;;:::o;310:179::-;368:7;388:9;404:1;400;:5;;;;:::i;:::-;388:17;;429:1;424;:6;;416:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;480:1;473:8;;;310:179;;;;:::o;8067:98::-;8124:7;8151:1;8149;:3;8148:9;;8156:1;8148:9;;;8154:1;8148:9;8141:16;;8067:98;;;;:::o;10006:755::-;10119:7;10144:20;10175:28;10206:3;10175:34;;10237:7;:206;;10442:1;10237:206;;;10270:1;10261:6;:10;:178;;10360:1;10351:6;:10;:88;;10438:1;10351:88;;;10390:15;;10379:10;;:26;:55;;10423:11;;10379:55;;;10408:12;;10379:55;10351:88;10261:178;;;10300:16;;10289:10;;:27;:58;;10335:12;;10289:58;;;10319:13;;10289:58;10261:178;10237:206;10222:221;;10456:18;10477:51;10507:20;10477:25;10489:12;10477:7;:11;;:25;;;;:::i;:::-;:29;;:51;;;;:::i;:::-;10456:72;;10566:40;10595:10;10566:9;:24;10584:4;10566:24;;;;;;;;;;;;;;;;:28;;:40;;;;:::i;:::-;10539:9;:24;10557:4;10539:24;;;;;;;;;;;;;;;:67;;;;10630:7;:80;;10653:57;10689:20;10653:31;10680:3;10665:12;:18;;;;:::i;:::-;10653:7;:11;;:31;;;;:::i;:::-;:35;;:57;;;;:::i;:::-;10630:80;;;10640:10;10630:80;10617:93;;10730:23;10742:10;10730:7;:11;;:23;;;;:::i;:::-;10723:30;;;;;10006:755;;;;;:::o;873:246::-;931:7;960:1;955;:6;951:47;;985:1;978:8;;;;951:47;1008:9;1024:1;1020;:5;;;;:::i;:::-;1008:17;;1053:1;1048;1044;:5;;;;:::i;:::-;:10;1036:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1110:1;1103:8;;;873:246;;;;;:::o;1127:132::-;1185:7;1212:39;1216:1;1219;1212:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1205:46;;1127:132;;;;:::o;497:136::-;555:7;582:43;586:1;589;582:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;575:50;;497:136;;;;:::o;1267:223::-;1387:7;1419:1;1415;:5;1422:12;1407:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1446:9;1462:1;1458;:5;;;;:::i;:::-;1446:17;;1481:1;1474:8;;;1267:223;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:90::-;1383:7;1426:5;1419:13;1412:21;1401:32;;1349:90;;;:::o;1445:109::-;1526:21;1541:5;1526:21;:::i;:::-;1521:3;1514:34;1445:109;;:::o;1560:210::-;1647:4;1685:2;1674:9;1670:18;1662:26;;1698:65;1760:1;1749:9;1745:17;1736:6;1698:65;:::i;:::-;1560:210;;;;:::o;1857:117::-;1966:1;1963;1956:12;2103:126;2140:7;2180:42;2173:5;2169:54;2158:65;;2103:126;;;:::o;2235:96::-;2272:7;2301:24;2319:5;2301:24;:::i;:::-;2290:35;;2235:96;;;:::o;2337:122::-;2410:24;2428:5;2410:24;:::i;:::-;2403:5;2400:35;2390:63;;2449:1;2446;2439:12;2390:63;2337:122;:::o;2465:139::-;2511:5;2549:6;2536:20;2527:29;;2565:33;2592:5;2565:33;:::i;:::-;2465:139;;;;:::o;2610:77::-;2647:7;2676:5;2665:16;;2610:77;;;:::o;2693:122::-;2766:24;2784:5;2766:24;:::i;:::-;2759:5;2756:35;2746:63;;2805:1;2802;2795:12;2746:63;2693:122;:::o;2821:139::-;2867:5;2905:6;2892:20;2883:29;;2921:33;2948:5;2921:33;:::i;:::-;2821:139;;;;:::o;2966:474::-;3034:6;3042;3091:2;3079:9;3070:7;3066:23;3062:32;3059:119;;;3097:79;;:::i;:::-;3059:119;3217:1;3242:53;3287:7;3278:6;3267:9;3263:22;3242:53;:::i;:::-;3232:63;;3188:117;3344:2;3370:53;3415:7;3406:6;3395:9;3391:22;3370:53;:::i;:::-;3360:63;;3315:118;2966:474;;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:60::-;5568:3;5589:5;5582:12;;5540:60;;;:::o;5606:142::-;5656:9;5689:53;5707:34;5716:24;5734:5;5716:24;:::i;:::-;5707:34;:::i;:::-;5689:53;:::i;:::-;5676:66;;5606:142;;;:::o;5754:126::-;5804:9;5837:37;5868:5;5837:37;:::i;:::-;5824:50;;5754:126;;;:::o;5886:149::-;5959:9;5992:37;6023:5;5992:37;:::i;:::-;5979:50;;5886:149;;;:::o;6041:177::-;6151:60;6205:5;6151:60;:::i;:::-;6146:3;6139:73;6041:177;;:::o;6224:268::-;6340:4;6378:2;6367:9;6363:18;6355:26;;6391:94;6482:1;6471:9;6467:17;6458:6;6391:94;:::i;:::-;6224:268;;;;:::o;6498:474::-;6566:6;6574;6623:2;6611:9;6602:7;6598:23;6594:32;6591:119;;;6629:79;;:::i;:::-;6591:119;6749:1;6774:53;6819:7;6810:6;6799:9;6795:22;6774:53;:::i;:::-;6764:63;;6720:117;6876:2;6902:53;6947:7;6938:6;6927:9;6923:22;6902:53;:::i;:::-;6892:63;;6847:118;6498:474;;;;;:::o;6978:156::-;7118:8;7114:1;7106:6;7102:14;7095:32;6978:156;:::o;7140:365::-;7282:3;7303:66;7367:1;7362:3;7303:66;:::i;:::-;7296:73;;7378:93;7467:3;7378:93;:::i;:::-;7496:2;7491:3;7487:12;7480:19;;7140:365;;;:::o;7511:419::-;7677:4;7715:2;7704:9;7700:18;7692:26;;7764:9;7758:4;7754:20;7750:1;7739:9;7735:17;7728:47;7792:131;7918:4;7792:131;:::i;:::-;7784:139;;7511:419;;;:::o;7936:173::-;8076:25;8072:1;8064:6;8060:14;8053:49;7936:173;:::o;8115:366::-;8257:3;8278:67;8342:2;8337:3;8278:67;:::i;:::-;8271:74;;8354:93;8443:3;8354:93;:::i;:::-;8472:2;8467:3;8463:12;8456:19;;8115:366;;;:::o;8487:419::-;8653:4;8691:2;8680:9;8676:18;8668:26;;8740:9;8734:4;8730:20;8726:1;8715:9;8711:17;8704:47;8768:131;8894:4;8768:131;:::i;:::-;8760:139;;8487:419;;;:::o;8912:172::-;9052:24;9048:1;9040:6;9036:14;9029:48;8912:172;:::o;9090:366::-;9232:3;9253:67;9317:2;9312:3;9253:67;:::i;:::-;9246:74;;9329:93;9418:3;9329:93;:::i;:::-;9447:2;9442:3;9438:12;9431:19;;9090:366;;;:::o;9462:419::-;9628:4;9666:2;9655:9;9651:18;9643:26;;9715:9;9709:4;9705:20;9701:1;9690:9;9686:17;9679:47;9743:131;9869:4;9743:131;:::i;:::-;9735:139;;9462:419;;;:::o;9887:143::-;9944:5;9975:6;9969:13;9960:22;;9991:33;10018:5;9991:33;:::i;:::-;9887:143;;;;:::o;10036:351::-;10106:6;10155:2;10143:9;10134:7;10130:23;10126:32;10123:119;;;10161:79;;:::i;:::-;10123:119;10281:1;10306:64;10362:7;10353:6;10342:9;10338:22;10306:64;:::i;:::-;10296:74;;10252:128;10036:351;;;;:::o;10393:332::-;10514:4;10552:2;10541:9;10537:18;10529:26;;10565:71;10633:1;10622:9;10618:17;10609:6;10565:71;:::i;:::-;10646:72;10714:2;10703:9;10699:18;10690:6;10646:72;:::i;:::-;10393:332;;;;;:::o;10731:85::-;10776:7;10805:5;10794:16;;10731:85;;;:::o;10822:158::-;10880:9;10913:61;10931:42;10940:32;10966:5;10940:32;:::i;:::-;10931:42;:::i;:::-;10913:61;:::i;:::-;10900:74;;10822:158;;;:::o;10986:147::-;11081:45;11120:5;11081:45;:::i;:::-;11076:3;11069:58;10986:147;;:::o;11139:807::-;11388:4;11426:3;11415:9;11411:19;11403:27;;11440:71;11508:1;11497:9;11493:17;11484:6;11440:71;:::i;:::-;11521:72;11589:2;11578:9;11574:18;11565:6;11521:72;:::i;:::-;11603:80;11679:2;11668:9;11664:18;11655:6;11603:80;:::i;:::-;11693;11769:2;11758:9;11754:18;11745:6;11693:80;:::i;:::-;11783:73;11851:3;11840:9;11836:19;11827:6;11783:73;:::i;:::-;11866;11934:3;11923:9;11919:19;11910:6;11866:73;:::i;:::-;11139:807;;;;;;;;;:::o;11952:143::-;12009:5;12040:6;12034:13;12025:22;;12056:33;12083:5;12056:33;:::i;:::-;11952:143;;;;:::o;12101:663::-;12189:6;12197;12205;12254:2;12242:9;12233:7;12229:23;12225:32;12222:119;;;12260:79;;:::i;:::-;12222:119;12380:1;12405:64;12461:7;12452:6;12441:9;12437:22;12405:64;:::i;:::-;12395:74;;12351:128;12518:2;12544:64;12600:7;12591:6;12580:9;12576:22;12544:64;:::i;:::-;12534:74;;12489:129;12657:2;12683:64;12739:7;12730:6;12719:9;12715:22;12683:64;:::i;:::-;12673:74;;12628:129;12101:663;;;;;:::o;12770:180::-;12818:77;12815:1;12808:88;12915:4;12912:1;12905:15;12939:4;12936:1;12929:15;12956:194;12996:4;13016:20;13034:1;13016:20;:::i;:::-;13011:25;;13050:20;13068:1;13050:20;:::i;:::-;13045:25;;13094:1;13091;13087:9;13079:17;;13118:1;13112:4;13109:11;13106:37;;;13123:18;;:::i;:::-;13106:37;12956:194;;;;:::o;13156:224::-;13296:34;13292:1;13284:6;13280:14;13273:58;13365:7;13360:2;13352:6;13348:15;13341:32;13156:224;:::o;13386:366::-;13528:3;13549:67;13613:2;13608:3;13549:67;:::i;:::-;13542:74;;13625:93;13714:3;13625:93;:::i;:::-;13743:2;13738:3;13734:12;13727:19;;13386:366;;;:::o;13758:419::-;13924:4;13962:2;13951:9;13947:18;13939:26;;14011:9;14005:4;14001:20;13997:1;13986:9;13982:17;13975:47;14039:131;14165:4;14039:131;:::i;:::-;14031:139;;13758:419;;;:::o;14183:222::-;14323:34;14319:1;14311:6;14307:14;14300:58;14392:5;14387:2;14379:6;14375:15;14368:30;14183:222;:::o;14411:366::-;14553:3;14574:67;14638:2;14633:3;14574:67;:::i;:::-;14567:74;;14650:93;14739:3;14650:93;:::i;:::-;14768:2;14763:3;14759:12;14752:19;;14411:366;;;:::o;14783:419::-;14949:4;14987:2;14976:9;14972:18;14964:26;;15036:9;15030:4;15026:20;15022:1;15011:9;15007:17;15000:47;15064:131;15190:4;15064:131;:::i;:::-;15056:139;;14783:419;;;:::o;15208:228::-;15348:34;15344:1;15336:6;15332:14;15325:58;15417:11;15412:2;15404:6;15400:15;15393:36;15208:228;:::o;15442:366::-;15584:3;15605:67;15669:2;15664:3;15605:67;:::i;:::-;15598:74;;15681:93;15770:3;15681:93;:::i;:::-;15799:2;15794:3;15790:12;15783:19;;15442:366;;;:::o;15814:419::-;15980:4;16018:2;16007:9;16003:18;15995:26;;16067:9;16061:4;16057:20;16053:1;16042:9;16038:17;16031:47;16095:131;16221:4;16095:131;:::i;:::-;16087:139;;15814:419;;;:::o;16239:170::-;16379:22;16375:1;16367:6;16363:14;16356:46;16239:170;:::o;16415:366::-;16557:3;16578:67;16642:2;16637:3;16578:67;:::i;:::-;16571:74;;16654:93;16743:3;16654:93;:::i;:::-;16772:2;16767:3;16763:12;16756:19;;16415:366;;;:::o;16787:419::-;16953:4;16991:2;16980:9;16976:18;16968:26;;17040:9;17034:4;17030:20;17026:1;17015:9;17011:17;17004:47;17068:131;17194:4;17068:131;:::i;:::-;17060:139;;16787:419;;;:::o;17212:191::-;17252:3;17271:20;17289:1;17271:20;:::i;:::-;17266:25;;17305:20;17323:1;17305:20;:::i;:::-;17300:25;;17348:1;17345;17341:9;17334:16;;17369:3;17366:1;17363:10;17360:36;;;17376:18;;:::i;:::-;17360:36;17212:191;;;;:::o;17409:224::-;17549:34;17545:1;17537:6;17533:14;17526:58;17618:7;17613:2;17605:6;17601:15;17594:32;17409:224;:::o;17639:366::-;17781:3;17802:67;17866:2;17861:3;17802:67;:::i;:::-;17795:74;;17878:93;17967:3;17878:93;:::i;:::-;17996:2;17991:3;17987:12;17980:19;;17639:366;;;:::o;18011:419::-;18177:4;18215:2;18204:9;18200:18;18192:26;;18264:9;18258:4;18254:20;18250:1;18239:9;18235:17;18228:47;18292:131;18418:4;18292:131;:::i;:::-;18284:139;;18011:419;;;:::o;18436:233::-;18475:3;18498:24;18516:5;18498:24;:::i;:::-;18489:33;;18544:66;18537:5;18534:77;18531:103;;18614:18;;:::i;:::-;18531:103;18661:1;18654:5;18650:13;18643:20;;18436:233;;;:::o;18675:180::-;18723:77;18720:1;18713:88;18820:4;18817:1;18810:15;18844:4;18841:1;18834:15;18861:180;18909:77;18906:1;18899:88;19006:4;19003:1;18996:15;19030:4;19027:1;19020:15;19047:114;19114:6;19148:5;19142:12;19132:22;;19047:114;;;:::o;19167:184::-;19266:11;19300:6;19295:3;19288:19;19340:4;19335:3;19331:14;19316:29;;19167:184;;;;:::o;19357:132::-;19424:4;19447:3;19439:11;;19477:4;19472:3;19468:14;19460:22;;19357:132;;;:::o;19495:108::-;19572:24;19590:5;19572:24;:::i;:::-;19567:3;19560:37;19495:108;;:::o;19609:179::-;19678:10;19699:46;19741:3;19733:6;19699:46;:::i;:::-;19777:4;19772:3;19768:14;19754:28;;19609:179;;;;:::o;19794:113::-;19864:4;19896;19891:3;19887:14;19879:22;;19794:113;;;:::o;19943:732::-;20062:3;20091:54;20139:5;20091:54;:::i;:::-;20161:86;20240:6;20235:3;20161:86;:::i;:::-;20154:93;;20271:56;20321:5;20271:56;:::i;:::-;20350:7;20381:1;20366:284;20391:6;20388:1;20385:13;20366:284;;;20467:6;20461:13;20494:63;20553:3;20538:13;20494:63;:::i;:::-;20487:70;;20580:60;20633:6;20580:60;:::i;:::-;20570:70;;20426:224;20413:1;20410;20406:9;20401:14;;20366:284;;;20370:14;20666:3;20659:10;;20067:608;;;19943:732;;;;:::o;20681:831::-;20944:4;20982:3;20971:9;20967:19;20959:27;;20996:71;21064:1;21053:9;21049:17;21040:6;20996:71;:::i;:::-;21077:80;21153:2;21142:9;21138:18;21129:6;21077:80;:::i;:::-;21204:9;21198:4;21194:20;21189:2;21178:9;21174:18;21167:48;21232:108;21335:4;21326:6;21232:108;:::i;:::-;21224:116;;21350:72;21418:2;21407:9;21403:18;21394:6;21350:72;:::i;:::-;21432:73;21500:3;21489:9;21485:19;21476:6;21432:73;:::i;:::-;20681:831;;;;;;;;:::o;21518:177::-;21658:29;21654:1;21646:6;21642:14;21635:53;21518:177;:::o;21701:366::-;21843:3;21864:67;21928:2;21923:3;21864:67;:::i;:::-;21857:74;;21940:93;22029:3;21940:93;:::i;:::-;22058:2;22053:3;22049:12;22042:19;;21701:366;;;:::o;22073:419::-;22239:4;22277:2;22266:9;22262:18;22254:26;;22326:9;22320:4;22316:20;22312:1;22301:9;22297:17;22290:47;22354:131;22480:4;22354:131;:::i;:::-;22346:139;;22073:419;;;:::o;22498:410::-;22538:7;22561:20;22579:1;22561:20;:::i;:::-;22556:25;;22595:20;22613:1;22595:20;:::i;:::-;22590:25;;22650:1;22647;22643:9;22672:30;22690:11;22672:30;:::i;:::-;22661:41;;22851:1;22842:7;22838:15;22835:1;22832:22;22812:1;22805:9;22785:83;22762:139;;22881:18;;:::i;:::-;22762:139;22546:362;22498:410;;;;:::o;22914:180::-;22962:77;22959:1;22952:88;23059:4;23056:1;23049:15;23083:4;23080:1;23073:15;23100:185;23140:1;23157:20;23175:1;23157:20;:::i;:::-;23152:25;;23191:20;23209:1;23191:20;:::i;:::-;23186:25;;23230:1;23220:35;;23235:18;;:::i;:::-;23220:35;23277:1;23274;23270:9;23265:14;;23100:185;;;;:::o;23291:220::-;23431:34;23427:1;23419:6;23415:14;23408:58;23500:3;23495:2;23487:6;23483:15;23476:28;23291:220;:::o;23517:366::-;23659:3;23680:67;23744:2;23739:3;23680:67;:::i;:::-;23673:74;;23756:93;23845:3;23756:93;:::i;:::-;23874:2;23869:3;23865:12;23858:19;;23517:366;;;:::o;23889:419::-;24055:4;24093:2;24082:9;24078:18;24070:26;;24142:9;24136:4;24132:20;24128:1;24117:9;24113:17;24106:47;24170:131;24296:4;24170:131;:::i;:::-;24162:139;;23889:419;;;:::o

Swarm Source

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