ETH Price: $3,270.46 (+0.73%)
Gas: 2 Gwei

Token

Prima Protocol (PRIMA)
 

Overview

Max Total Supply

100,000,000 PRIMA

Holders

133

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
*🏌🏿‍♂️🏌🏿‍♂️🏌🏿‍♂️🏌🏿‍♂️🏌🏿‍♂️.eth
Balance
430,924.522476728576028489 PRIMA

Value
$0.00
0x818da393ff91868b6355c7c85c58feae450c84b9
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:
PrimaProtocol

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 2023-12-13
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

/*
    Website:  https://www.primaprotocol.org
    DApp:     https://app.primaprotocol.org
    Docs:     https://docs.primaprotocol.org

    Medium:   https://medium.com/@prima_protocol
    Twitter:  https://twitter.com/prima_protocol
    Telegram: https://t.me/prima_protocol

*/

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 IDEXFactory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface IDEXRouter {
    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 PrimaProtocol is ERC20, Ownable {
    using SafeMath for uint256;

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

    string constant _name = "Prima Protocol";
    string constant _symbol = "PRIMA";

    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;

    IDEXRouter public router;

    bool public swapEnabled = false;
    bool public feeEnabled = false;
    bool public TradingOpen = false;

    uint256 private _initBuyTax=17;
    uint256 private _initSellTax=17;

    uint256 private _finalBuyTax=2;
    uint256 private _finalSellTax=2;

    uint256 private _reduceBuyTaxAt=19;
    uint256 private _reduceSellTaxAt=25;
    uint256 private _buyCounts=0;

    bool inSwap;
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

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

        address _owner = owner;
        _taxWallet = prWallet;

        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 createPrimaTrade() external onlyOwner {
        
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IDEXFactory(router.factory()).createPair(address(this), router.WETH());
        isTxLimitExempt[pair] = true;

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

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

        TradingOpen = true;
        feeEnabled = 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;
    }

    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 inSwapPrima(bool takeFee , uint actions, uint256 amount) internal view returns (bool) {

        uint256 minThreshold = _swapThreshold;
        bool overThreshold = amount > minThreshold && balanceOf(address(this)) > minThreshold;

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

    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 takeAmountAfterFee(uint action, bool takefee, uint256 amounts)
        internal
        returns (uint256)
    {
        uint256 primaPercents;
        uint256 feePrDenominator = 100;

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

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

        return amounts.sub(feeAmounts);
    }

    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."
            );

            if(sender == pair) {
                _buyCounts++;
            }
        }

        takefee = isTakeFees(sender);
        actions = recipient == pair? 2 : sender == pair? 1: 0;

        if (inSwapPrima(takefee, actions, amount)) {
            swapBackPrimaEth(amount);
        }

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

        return true;
    }

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

        uint256 amountX = takeFee
            ? rAmount : feeEnabled
            ? takeAmountAfterFee(action, takeFee, rAmount) 
            : rAmount;

        uint256 amountY = feeEnabled && takeFee
            ? takeAmountAfterFee(action, takeFee, rAmount)
            : rAmount;

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

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

        emit Transfer(sender, recipient, amountY);

    }

    function swapBackPrimaEth(uint256 amount) internal swapping {
        
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 amountToSwap = min(amount, min(contractTokenBalance, _maxTaxSwap));

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

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

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

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

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

    receive() external payable {

    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"prWallet","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":"createPrimaTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enablePrimaTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeEnabled","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":"removePrimaLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","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":"withdrawStuckEthBalances","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620000ac91906200071f565b6305f5e100620000bd919062000770565b60035560646002600354620000d3919062000770565b620000df9190620007ea565b600455620186a06001600354620000f7919062000770565b620001039190620007ea565b6005556103e860026003546200011a919062000770565b620001269190620007ea565b6006556000600d60146101000a81548160ff0219169083151502179055506000600d60156101000a81548160ff0219169083151502179055506000600d60166101000a81548160ff0219169083151502179055506011600e556011600f5560026010556002601155601360125560196013556000601455348015620001aa57600080fd5b5060405162003ab238038062003ab28339818101604052810190620001d091906200088c565b33806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620005759190620008cf565b60405180910390a35050620008ec565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200061357808604811115620005eb57620005ea62000585565b5b6001851615620005fb5780820291505b80810290506200060b85620005b4565b9450620005cb565b94509492505050565b6000826200062e576001905062000701565b816200063e576000905062000701565b8160018114620006575760028114620006625762000698565b600191505062000701565b60ff84111562000677576200067662000585565b5b8360020a91508482111562000691576200069062000585565b5b5062000701565b5060208310610133831016604e8410600b8410161715620006d25782820a905083811115620006cc57620006cb62000585565b5b62000701565b620006e18484846001620005c1565b92509050818404811115620006fb57620006fa62000585565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200072c8262000708565b9150620007398362000712565b9250620007687fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200061c565b905092915050565b60006200077d8262000708565b91506200078a8362000708565b92508282026200079a8162000708565b91508282048414831517620007b457620007b362000585565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007f78262000708565b9150620008048362000708565b925082620008175762000816620007bb565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008548262000827565b9050919050565b620008668162000847565b81146200087257600080fd5b50565b60008151905062000886816200085b565b92915050565b600060208284031215620008a557620008a462000822565b5b6000620008b58482850162000875565b91505092915050565b620008c98162000708565b82525050565b6000602082019050620008e66000830184620008be565b92915050565b6131b680620008fc6000396000f3fe6080604052600436106101855760003560e01c80636c0a24eb116100d157806395d89b411161008a578063a8aa1b3111610064578063a8aa1b311461053b578063a9059cbb14610566578063dd62ed3e146105a3578063f887ea40146105e05761018c565b806395d89b41146104ce5780639743a332146104f9578063a771ebc7146105105761018c565b80636c0a24eb146103ce5780636ddd1713146103f95780636f268a991461042457806370a082311461044f578063715018a61461048c578063893d20e8146104a35761018c565b806323b872dd1161013e578063313ce56711610118578063313ce5671461034a5780633e6e0e87146103755780633eaaf86b1461038c5780634987e77d146103b75761018c565b806323b872dd146102a5578063242d2810146102e25780632f54bf6e1461030d5761018c565b806306fdde031461019157806308fd3d05146101bc578063095ea7b3146101e75780630e5a9231146102245780630faee56f1461024f57806318160ddd1461027a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661060b565b6040516101b3919061252e565b60405180910390f35b3480156101c857600080fd5b506101d1610648565b6040516101de919061256b565b60405180910390f35b3480156101f357600080fd5b5061020e6004803603810190610209919061261f565b61065b565b60405161021b919061256b565b60405180910390f35b34801561023057600080fd5b5061023961074d565b604051610246919061266e565b60405180910390f35b34801561025b57600080fd5b50610264610753565b604051610271919061266e565b60405180910390f35b34801561028657600080fd5b5061028f610759565b60405161029c919061266e565b60405180910390f35b3480156102b157600080fd5b506102cc60048036038101906102c79190612689565b610763565b6040516102d9919061256b565b60405180910390f35b3480156102ee57600080fd5b506102f7610963565b604051610304919061256b565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f91906126dc565b6109bd565b604051610341919061256b565b60405180910390f35b34801561035657600080fd5b5061035f610a16565b60405161036c9190612725565b60405180910390f35b34801561038157600080fd5b5061038a610a1f565b005b34801561039857600080fd5b506103a1610eae565b6040516103ae919061266e565b60405180910390f35b3480156103c357600080fd5b506103cc610eb4565b005b3480156103da57600080fd5b506103e3610f9f565b6040516103f0919061266e565b60405180910390f35b34801561040557600080fd5b5061040e610fa5565b60405161041b919061256b565b60405180910390f35b34801561043057600080fd5b50610439610fb8565b604051610446919061274f565b60405180910390f35b34801561045b57600080fd5b50610476600480360381019061047191906126dc565b610fde565b604051610483919061266e565b60405180910390f35b34801561049857600080fd5b506104a1611027565b005b3480156104af57600080fd5b506104b86110ea565b6040516104c5919061274f565b60405180910390f35b3480156104da57600080fd5b506104e3611113565b6040516104f0919061252e565b60405180910390f35b34801561050557600080fd5b5061050e611150565b005b34801561051c57600080fd5b50610525611224565b604051610532919061256b565b60405180910390f35b34801561054757600080fd5b50610550611237565b60405161055d919061274f565b60405180910390f35b34801561057257600080fd5b5061058d6004803603810190610588919061261f565b61125d565b60405161059a919061256b565b60405180910390f35b3480156105af57600080fd5b506105ca60048036038101906105c5919061276a565b611272565b6040516105d7919061266e565b60405180910390f35b3480156105ec57600080fd5b506105f56112f9565b6040516106029190612809565b60405180910390f35b60606040518060400160405280600e81526020017f5072696d612050726f746f636f6c000000000000000000000000000000000000815250905090565b600d60169054906101000a900460ff1681565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161073b919061266e565b60405180910390a36001905092915050565b60055481565b60065481565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461094f576108ce826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461131f9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61095a848484611383565b90509392505050565b600061096e336109bd565b6109ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a490612870565b60405180910390fd5b6003546004819055506001905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b610a28336109bd565b610a67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5e90612870565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4d91906128a5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfa91906128a5565b6040518363ffffffff1660e01b8152600401610c179291906128d2565b6020604051808303816000875af1158015610c36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5a91906128a5565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e2030610fde565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401610e6696959493929190612936565b60606040518083038185885af1158015610e84573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ea991906129ac565b505050565b60035481565b610ebd336109bd565b610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef390612870565b60405180910390fd5b600d60169054906101000a900460ff1615610f4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4390612a4b565b60405180910390fd5b6001600d60166101000a81548160ff0219169083151502179055506001600d60156101000a81548160ff0219169083151502179055506001600d60146101000a81548160ff021916908315150217905550565b60045481565b600d60149054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611030336109bd565b61106f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106690612870565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516110e0919061274f565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5052494d41000000000000000000000000000000000000000000000000000000815250905090565b611159336109bd565b611198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118f90612870565b60405180910390fd5b600047116111db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d290612ab7565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611221573d6000803e3d6000fd5b50565b600d60159054906101000a900460ff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061126a338484611383565b905092915050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135e919061252e565b60405180910390fd5b50600083856113769190612b06565b9050809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036113f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ea90612bac565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611462576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145990612c3e565b60405180910390fd5b600082116114a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149c90612cd0565b60405180910390fd5b600080601560009054906101000a900460ff16156114d1576114c88686866119a2565b9250505061199b565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115755750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115ca57600d60169054906101000a900460ff166115c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c090612d3c565b60405180910390fd5b5b600d60149054906101000a900460ff166115f2576115e98686866119a2565b9250505061199b565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561169e5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156116f45750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561174a5750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118a157600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117f3575060045484600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117f09190612d5c565b11155b611832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182990612e02565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036118a0576014600081548092919061189a90612e22565b91905055505b5b6118aa86611b75565b9150600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461196557600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461195d576000611960565b60015b611968565b60025b60ff169050611978828286611bcc565b156119875761198684611c40565b5b6119948686868585611f23565b6001925050505b9392505050565b6000611a2d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461131f9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ac282600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215b90919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b62919061266e565b60405180910390a3600190509392505050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080600554905060008184118015611bec575081611bea30610fde565b115b9050601560009054906101000a900460ff16158015611c085750855b8015611c205750600d60149054906101000a900460ff165b8015611c2c5750600185115b8015611c355750805b925050509392505050565b6001601560006101000a81548160ff0219169083151502179055506000611c6630610fde565b90506000611c7f83611c7a846006546121b9565b6121b9565b90506000600267ffffffffffffffff811115611c9e57611c9d612e6a565b5b604051908082528060200260200182016040528015611ccc5781602001602082028036833780820191505090505b5090503081600081518110611ce457611ce3612e99565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611daf91906128a5565b81600181518110611dc357611dc2612e99565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e61959493929190612f86565b600060405180830381600087803b158015611e7b57600080fd5b505af1158015611e8f573d6000803e3d6000fd5b505050506000479050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f00573d6000803e3d6000fd5b50505050506000601560006101000a81548160ff02191690831515021790555050565b600082611f5557600d60159054906101000a900460ff16611f445783611f50565b611f4f8284866121d2565b5b611f57565b835b90506000600d60159054906101000a900460ff168015611f745750835b611f7e5784611f8a565b611f898385876121d2565b5b9050612015826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461131f9092919063ffffffff16565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120aa81600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215b90919063ffffffff16565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161214a919061266e565b60405180910390a350505050505050565b600080828461216a9190612d5c565b9050838110156121af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a69061302c565b60405180910390fd5b8091505092915050565b60008183116121c857826121ca565b815b905092915050565b600080600060649050846121e7576001612234565b6001861161221b57600086116121fe576000612216565b6012546014541161221157600e54612215565b6010545b5b612233565b6013546014541161222e57600f54612232565b6011545b5b5b9150600061225d8261224f858861232d90919063ffffffff16565b6123a790919063ffffffff16565b90506122b181600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215b90919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508561230a578285612305919061304c565b61230c565b805b905061232181866123f190919063ffffffff16565b93505050509392505050565b600080830361233f57600090506123a1565b6000828461234d919061304c565b905082848261235c91906130bd565b1461239c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239390613160565b60405180910390fd5b809150505b92915050565b60006123e983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061243b565b905092915050565b600061243383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061131f565b905092915050565b60008083118290612482576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612479919061252e565b60405180910390fd5b506000838561249191906130bd565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124d85780820151818401526020810190506124bd565b60008484015250505050565b6000601f19601f8301169050919050565b60006125008261249e565b61250a81856124a9565b935061251a8185602086016124ba565b612523816124e4565b840191505092915050565b6000602082019050818103600083015261254881846124f5565b905092915050565b60008115159050919050565b61256581612550565b82525050565b6000602082019050612580600083018461255c565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125b68261258b565b9050919050565b6125c6816125ab565b81146125d157600080fd5b50565b6000813590506125e3816125bd565b92915050565b6000819050919050565b6125fc816125e9565b811461260757600080fd5b50565b600081359050612619816125f3565b92915050565b6000806040838503121561263657612635612586565b5b6000612644858286016125d4565b92505060206126558582860161260a565b9150509250929050565b612668816125e9565b82525050565b6000602082019050612683600083018461265f565b92915050565b6000806000606084860312156126a2576126a1612586565b5b60006126b0868287016125d4565b93505060206126c1868287016125d4565b92505060406126d28682870161260a565b9150509250925092565b6000602082840312156126f2576126f1612586565b5b6000612700848285016125d4565b91505092915050565b600060ff82169050919050565b61271f81612709565b82525050565b600060208201905061273a6000830184612716565b92915050565b612749816125ab565b82525050565b60006020820190506127646000830184612740565b92915050565b6000806040838503121561278157612780612586565b5b600061278f858286016125d4565b92505060206127a0858286016125d4565b9150509250929050565b6000819050919050565b60006127cf6127ca6127c58461258b565b6127aa565b61258b565b9050919050565b60006127e1826127b4565b9050919050565b60006127f3826127d6565b9050919050565b612803816127e8565b82525050565b600060208201905061281e60008301846127fa565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b600061285a6006836124a9565b915061286582612824565b602082019050919050565b600060208201905081810360008301526128898161284d565b9050919050565b60008151905061289f816125bd565b92915050565b6000602082840312156128bb576128ba612586565b5b60006128c984828501612890565b91505092915050565b60006040820190506128e76000830185612740565b6128f46020830184612740565b9392505050565b6000819050919050565b600061292061291b612916846128fb565b6127aa565b6125e9565b9050919050565b61293081612905565b82525050565b600060c08201905061294b6000830189612740565b612958602083018861265f565b6129656040830187612927565b6129726060830186612927565b61297f6080830185612740565b61298c60a083018461265f565b979650505050505050565b6000815190506129a6816125f3565b92915050565b6000806000606084860312156129c5576129c4612586565b5b60006129d386828701612997565b93505060206129e486828701612997565b92505060406129f586828701612997565b9150509250925092565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612a356017836124a9565b9150612a40826129ff565b602082019050919050565b60006020820190508181036000830152612a6481612a28565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b6000612aa16016836124a9565b9150612aac82612a6b565b602082019050919050565b60006020820190508181036000830152612ad081612a94565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b11826125e9565b9150612b1c836125e9565b9250828203905081811115612b3457612b33612ad7565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b966025836124a9565b9150612ba182612b3a565b604082019050919050565b60006020820190508181036000830152612bc581612b89565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c286023836124a9565b9150612c3382612bcc565b604082019050919050565b60006020820190508181036000830152612c5781612c1b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612cba6029836124a9565b9150612cc582612c5e565b604082019050919050565b60006020820190508181036000830152612ce981612cad565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b6000612d266014836124a9565b9150612d3182612cf0565b602082019050919050565b60006020820190508181036000830152612d5581612d19565b9050919050565b6000612d67826125e9565b9150612d72836125e9565b9250828201905080821115612d8a57612d89612ad7565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612dec6025836124a9565b9150612df782612d90565b604082019050919050565b60006020820190508181036000830152612e1b81612ddf565b9050919050565b6000612e2d826125e9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e5f57612e5e612ad7565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612efd816125ab565b82525050565b6000612f0f8383612ef4565b60208301905092915050565b6000602082019050919050565b6000612f3382612ec8565b612f3d8185612ed3565b9350612f4883612ee4565b8060005b83811015612f79578151612f608882612f03565b9750612f6b83612f1b565b925050600181019050612f4c565b5085935050505092915050565b600060a082019050612f9b600083018861265f565b612fa86020830187612927565b8181036040830152612fba8186612f28565b9050612fc96060830185612740565b612fd6608083018461265f565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613016601b836124a9565b915061302182612fe0565b602082019050919050565b6000602082019050818103600083015261304581613009565b9050919050565b6000613057826125e9565b9150613062836125e9565b9250828202613070816125e9565b9150828204841483151761308757613086612ad7565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130c8826125e9565b91506130d3836125e9565b9250826130e3576130e261308e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061314a6021836124a9565b9150613155826130ee565b604082019050919050565b600060208201905081810360008301526131798161313d565b905091905056fea26469706673582212207cdf4781dcbb9ef50e4f07e571b7e4d429b87f4666a8f8c4e69e53922e2b49c764736f6c63430008130033000000000000000000000000aeb21c49f130eaa7fedcdb983d9f382501dad715

Deployed Bytecode

0x6080604052600436106101855760003560e01c80636c0a24eb116100d157806395d89b411161008a578063a8aa1b3111610064578063a8aa1b311461053b578063a9059cbb14610566578063dd62ed3e146105a3578063f887ea40146105e05761018c565b806395d89b41146104ce5780639743a332146104f9578063a771ebc7146105105761018c565b80636c0a24eb146103ce5780636ddd1713146103f95780636f268a991461042457806370a082311461044f578063715018a61461048c578063893d20e8146104a35761018c565b806323b872dd1161013e578063313ce56711610118578063313ce5671461034a5780633e6e0e87146103755780633eaaf86b1461038c5780634987e77d146103b75761018c565b806323b872dd146102a5578063242d2810146102e25780632f54bf6e1461030d5761018c565b806306fdde031461019157806308fd3d05146101bc578063095ea7b3146101e75780630e5a9231146102245780630faee56f1461024f57806318160ddd1461027a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661060b565b6040516101b3919061252e565b60405180910390f35b3480156101c857600080fd5b506101d1610648565b6040516101de919061256b565b60405180910390f35b3480156101f357600080fd5b5061020e6004803603810190610209919061261f565b61065b565b60405161021b919061256b565b60405180910390f35b34801561023057600080fd5b5061023961074d565b604051610246919061266e565b60405180910390f35b34801561025b57600080fd5b50610264610753565b604051610271919061266e565b60405180910390f35b34801561028657600080fd5b5061028f610759565b60405161029c919061266e565b60405180910390f35b3480156102b157600080fd5b506102cc60048036038101906102c79190612689565b610763565b6040516102d9919061256b565b60405180910390f35b3480156102ee57600080fd5b506102f7610963565b604051610304919061256b565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f91906126dc565b6109bd565b604051610341919061256b565b60405180910390f35b34801561035657600080fd5b5061035f610a16565b60405161036c9190612725565b60405180910390f35b34801561038157600080fd5b5061038a610a1f565b005b34801561039857600080fd5b506103a1610eae565b6040516103ae919061266e565b60405180910390f35b3480156103c357600080fd5b506103cc610eb4565b005b3480156103da57600080fd5b506103e3610f9f565b6040516103f0919061266e565b60405180910390f35b34801561040557600080fd5b5061040e610fa5565b60405161041b919061256b565b60405180910390f35b34801561043057600080fd5b50610439610fb8565b604051610446919061274f565b60405180910390f35b34801561045b57600080fd5b50610476600480360381019061047191906126dc565b610fde565b604051610483919061266e565b60405180910390f35b34801561049857600080fd5b506104a1611027565b005b3480156104af57600080fd5b506104b86110ea565b6040516104c5919061274f565b60405180910390f35b3480156104da57600080fd5b506104e3611113565b6040516104f0919061252e565b60405180910390f35b34801561050557600080fd5b5061050e611150565b005b34801561051c57600080fd5b50610525611224565b604051610532919061256b565b60405180910390f35b34801561054757600080fd5b50610550611237565b60405161055d919061274f565b60405180910390f35b34801561057257600080fd5b5061058d6004803603810190610588919061261f565b61125d565b60405161059a919061256b565b60405180910390f35b3480156105af57600080fd5b506105ca60048036038101906105c5919061276a565b611272565b6040516105d7919061266e565b60405180910390f35b3480156105ec57600080fd5b506105f56112f9565b6040516106029190612809565b60405180910390f35b60606040518060400160405280600e81526020017f5072696d612050726f746f636f6c000000000000000000000000000000000000815250905090565b600d60169054906101000a900460ff1681565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161073b919061266e565b60405180910390a36001905092915050565b60055481565b60065481565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461094f576108ce826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461131f9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61095a848484611383565b90509392505050565b600061096e336109bd565b6109ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a490612870565b60405180910390fd5b6003546004819055506001905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b610a28336109bd565b610a67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5e90612870565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4d91906128a5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfa91906128a5565b6040518363ffffffff1660e01b8152600401610c179291906128d2565b6020604051808303816000875af1158015610c36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5a91906128a5565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e2030610fde565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401610e6696959493929190612936565b60606040518083038185885af1158015610e84573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ea991906129ac565b505050565b60035481565b610ebd336109bd565b610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef390612870565b60405180910390fd5b600d60169054906101000a900460ff1615610f4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4390612a4b565b60405180910390fd5b6001600d60166101000a81548160ff0219169083151502179055506001600d60156101000a81548160ff0219169083151502179055506001600d60146101000a81548160ff021916908315150217905550565b60045481565b600d60149054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611030336109bd565b61106f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106690612870565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516110e0919061274f565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5052494d41000000000000000000000000000000000000000000000000000000815250905090565b611159336109bd565b611198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118f90612870565b60405180910390fd5b600047116111db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d290612ab7565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611221573d6000803e3d6000fd5b50565b600d60159054906101000a900460ff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061126a338484611383565b905092915050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135e919061252e565b60405180910390fd5b50600083856113769190612b06565b9050809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036113f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ea90612bac565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611462576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145990612c3e565b60405180910390fd5b600082116114a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149c90612cd0565b60405180910390fd5b600080601560009054906101000a900460ff16156114d1576114c88686866119a2565b9250505061199b565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115755750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115ca57600d60169054906101000a900460ff166115c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c090612d3c565b60405180910390fd5b5b600d60149054906101000a900460ff166115f2576115e98686866119a2565b9250505061199b565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561169e5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156116f45750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561174a5750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118a157600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117f3575060045484600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117f09190612d5c565b11155b611832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182990612e02565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036118a0576014600081548092919061189a90612e22565b91905055505b5b6118aa86611b75565b9150600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461196557600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461195d576000611960565b60015b611968565b60025b60ff169050611978828286611bcc565b156119875761198684611c40565b5b6119948686868585611f23565b6001925050505b9392505050565b6000611a2d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461131f9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ac282600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215b90919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b62919061266e565b60405180910390a3600190509392505050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080600554905060008184118015611bec575081611bea30610fde565b115b9050601560009054906101000a900460ff16158015611c085750855b8015611c205750600d60149054906101000a900460ff165b8015611c2c5750600185115b8015611c355750805b925050509392505050565b6001601560006101000a81548160ff0219169083151502179055506000611c6630610fde565b90506000611c7f83611c7a846006546121b9565b6121b9565b90506000600267ffffffffffffffff811115611c9e57611c9d612e6a565b5b604051908082528060200260200182016040528015611ccc5781602001602082028036833780820191505090505b5090503081600081518110611ce457611ce3612e99565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611daf91906128a5565b81600181518110611dc357611dc2612e99565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e61959493929190612f86565b600060405180830381600087803b158015611e7b57600080fd5b505af1158015611e8f573d6000803e3d6000fd5b505050506000479050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f00573d6000803e3d6000fd5b50505050506000601560006101000a81548160ff02191690831515021790555050565b600082611f5557600d60159054906101000a900460ff16611f445783611f50565b611f4f8284866121d2565b5b611f57565b835b90506000600d60159054906101000a900460ff168015611f745750835b611f7e5784611f8a565b611f898385876121d2565b5b9050612015826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461131f9092919063ffffffff16565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120aa81600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215b90919063ffffffff16565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161214a919061266e565b60405180910390a350505050505050565b600080828461216a9190612d5c565b9050838110156121af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a69061302c565b60405180910390fd5b8091505092915050565b60008183116121c857826121ca565b815b905092915050565b600080600060649050846121e7576001612234565b6001861161221b57600086116121fe576000612216565b6012546014541161221157600e54612215565b6010545b5b612233565b6013546014541161222e57600f54612232565b6011545b5b5b9150600061225d8261224f858861232d90919063ffffffff16565b6123a790919063ffffffff16565b90506122b181600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215b90919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508561230a578285612305919061304c565b61230c565b805b905061232181866123f190919063ffffffff16565b93505050509392505050565b600080830361233f57600090506123a1565b6000828461234d919061304c565b905082848261235c91906130bd565b1461239c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239390613160565b60405180910390fd5b809150505b92915050565b60006123e983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061243b565b905092915050565b600061243383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061131f565b905092915050565b60008083118290612482576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612479919061252e565b60405180910390fd5b506000838561249191906130bd565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124d85780820151818401526020810190506124bd565b60008484015250505050565b6000601f19601f8301169050919050565b60006125008261249e565b61250a81856124a9565b935061251a8185602086016124ba565b612523816124e4565b840191505092915050565b6000602082019050818103600083015261254881846124f5565b905092915050565b60008115159050919050565b61256581612550565b82525050565b6000602082019050612580600083018461255c565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125b68261258b565b9050919050565b6125c6816125ab565b81146125d157600080fd5b50565b6000813590506125e3816125bd565b92915050565b6000819050919050565b6125fc816125e9565b811461260757600080fd5b50565b600081359050612619816125f3565b92915050565b6000806040838503121561263657612635612586565b5b6000612644858286016125d4565b92505060206126558582860161260a565b9150509250929050565b612668816125e9565b82525050565b6000602082019050612683600083018461265f565b92915050565b6000806000606084860312156126a2576126a1612586565b5b60006126b0868287016125d4565b93505060206126c1868287016125d4565b92505060406126d28682870161260a565b9150509250925092565b6000602082840312156126f2576126f1612586565b5b6000612700848285016125d4565b91505092915050565b600060ff82169050919050565b61271f81612709565b82525050565b600060208201905061273a6000830184612716565b92915050565b612749816125ab565b82525050565b60006020820190506127646000830184612740565b92915050565b6000806040838503121561278157612780612586565b5b600061278f858286016125d4565b92505060206127a0858286016125d4565b9150509250929050565b6000819050919050565b60006127cf6127ca6127c58461258b565b6127aa565b61258b565b9050919050565b60006127e1826127b4565b9050919050565b60006127f3826127d6565b9050919050565b612803816127e8565b82525050565b600060208201905061281e60008301846127fa565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b600061285a6006836124a9565b915061286582612824565b602082019050919050565b600060208201905081810360008301526128898161284d565b9050919050565b60008151905061289f816125bd565b92915050565b6000602082840312156128bb576128ba612586565b5b60006128c984828501612890565b91505092915050565b60006040820190506128e76000830185612740565b6128f46020830184612740565b9392505050565b6000819050919050565b600061292061291b612916846128fb565b6127aa565b6125e9565b9050919050565b61293081612905565b82525050565b600060c08201905061294b6000830189612740565b612958602083018861265f565b6129656040830187612927565b6129726060830186612927565b61297f6080830185612740565b61298c60a083018461265f565b979650505050505050565b6000815190506129a6816125f3565b92915050565b6000806000606084860312156129c5576129c4612586565b5b60006129d386828701612997565b93505060206129e486828701612997565b92505060406129f586828701612997565b9150509250925092565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612a356017836124a9565b9150612a40826129ff565b602082019050919050565b60006020820190508181036000830152612a6481612a28565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b6000612aa16016836124a9565b9150612aac82612a6b565b602082019050919050565b60006020820190508181036000830152612ad081612a94565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b11826125e9565b9150612b1c836125e9565b9250828203905081811115612b3457612b33612ad7565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b966025836124a9565b9150612ba182612b3a565b604082019050919050565b60006020820190508181036000830152612bc581612b89565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c286023836124a9565b9150612c3382612bcc565b604082019050919050565b60006020820190508181036000830152612c5781612c1b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612cba6029836124a9565b9150612cc582612c5e565b604082019050919050565b60006020820190508181036000830152612ce981612cad565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b6000612d266014836124a9565b9150612d3182612cf0565b602082019050919050565b60006020820190508181036000830152612d5581612d19565b9050919050565b6000612d67826125e9565b9150612d72836125e9565b9250828201905080821115612d8a57612d89612ad7565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612dec6025836124a9565b9150612df782612d90565b604082019050919050565b60006020820190508181036000830152612e1b81612ddf565b9050919050565b6000612e2d826125e9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e5f57612e5e612ad7565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612efd816125ab565b82525050565b6000612f0f8383612ef4565b60208301905092915050565b6000602082019050919050565b6000612f3382612ec8565b612f3d8185612ed3565b9350612f4883612ee4565b8060005b83811015612f79578151612f608882612f03565b9750612f6b83612f1b565b925050600181019050612f4c565b5085935050505092915050565b600060a082019050612f9b600083018861265f565b612fa86020830187612927565b8181036040830152612fba8186612f28565b9050612fc96060830185612740565b612fd6608083018461265f565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613016601b836124a9565b915061302182612fe0565b602082019050919050565b6000602082019050818103600083015261304581613009565b9050919050565b6000613057826125e9565b9150613062836125e9565b9250828202613070816125e9565b9150828204841483151761308757613086612ad7565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130c8826125e9565b91506130d3836125e9565b9250826130e3576130e261308e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061314a6021836124a9565b9150613155826130ee565b604082019050919050565b600060208201905081810360008301526131798161313d565b905091905056fea26469706673582212207cdf4781dcbb9ef50e4f07e571b7e4d429b87f4666a8f8c4e69e53922e2b49c764736f6c63430008130033

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

000000000000000000000000aeb21c49f130eaa7fedcdb983d9f382501dad715

-----Decoded View---------------
Arg [0] : prWallet (address): 0xaeB21C49f130EAa7FEdcDb983d9F382501DAd715

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


Deployed Bytecode Sourcemap

4851:9407:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7437:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5826:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8505:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5330:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5395:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7539:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9775:424;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14076:134;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2843:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7649:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6751:471;;;;;;;;;;;;;:::i;:::-;;5199:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7230:199;;;;;;;;;;;;;:::i;:::-;;5265:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5751:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5658:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7957:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2954:131;;;;;;;;;;;;;:::i;:::-;;7857:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7751:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13872:196;;;;;;;;;;;;;:::i;:::-;;5789:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5690:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9579:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5718:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7437:94;7485:13;7518:5;;;;;;;;;;;;;;;;;7511:12;;7437:94;:::o;5826:31::-;;;;;;;;;;;;;:::o;8505:248::-;8607:4;8664:6;8629:11;:23;8641:10;8629:23;;;;;;;;;;;;;;;:32;8653:7;8629:32;;;;;;;;;;;;;;;:41;;;;8707:7;8686:37;;8695:10;8686:37;;;8716:6;8686:37;;;;;;:::i;:::-;;;;;;;;8741:4;8734:11;;8505:248;;;;:::o;5330:58::-;;;;:::o;5395:52::-;;;;:::o;7539:102::-;7594:7;7621:12;;7614:19;;7539:102;:::o;9775:424::-;9909:4;9965:17;9930:11;:19;9942:6;9930:19;;;;;;;;;;;;;;;:31;9950:10;9930:31;;;;;;;;;;;;;;;;:52;9926:206;;10033:87;10087:6;10033:87;;;;;;;;;;;;;;;;;:11;:19;10045:6;10033:19;;;;;;;;;;;;;;;:31;10053:10;10033:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;9999:11;:19;10011:6;9999:19;;;;;;;;;;;;;;;:31;10019:10;9999:31;;;;;;;;;;;;;;;:121;;;;9926:206;10151:40;10165:6;10173:9;10184:6;10151:13;:40::i;:::-;10144:47;;9775:424;;;;;:::o;14076:134::-;14132:4;2785:19;2793:10;2785:7;:19::i;:::-;2777:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14168:12:::1;;14149:16;:31;;;;14198:4;14191:11;;14076:134:::0;:::o;2843:103::-;2898:4;2933:5;;;;;;;;;;;2922:16;;:7;:16;;;2915:23;;2843:103;;;:::o;7649:94::-;7701:5;5188:2;7719:16;;7649:94;:::o;6751:471::-;2785:19;2793:10;2785:7;:19::i;:::-;2777:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;6839:42:::1;6819:6;;:63;;;;;;;;;;;;;;;;;;6912:6;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6900:40;;;6949:4;6956:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6900:70;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6893:4;;:77;;;;;;;;;;;;;;;;;;7005:4;6981:15;:21;6997:4;;;;;;;;;;;6981:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;7068:17;7022:11;:26;7042:4;7022:26;;;;;;;;;;;;;;;:43;7057:6;;;;;;;;;;;7022:43;;;;;;;;;;;;;;;:63;;;;7096:6;;;;;;;;;;;:22;;;7126:21;7157:4;7163:24;7181:4;7163:9;:24::i;:::-;7188:1;7190::::0;7192:5:::1;::::0;::::1;;;;;;;;7198:15;7096:118;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6751:471::o:0;5199:59::-;;;;:::o;7230:199::-;2785:19;2793:10;2785:7;:19::i;:::-;2777:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7295:11:::1;;;;;;;;;;;7294:12;7286:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;7360:4;7346:11;;:18;;;;;;;;;;;;;;;;;;7388:4;7375:10;;:17;;;;;;;;;;;;;;;;;;7417:4;7403:11;;:18;;;;;;;;;;;;;;;;;;7230:199::o:0;5265:58::-;;;;:::o;5751:31::-;;;;;;;;;;;;;:::o;5658:25::-;;;;;;;;;;;;;:::o;7957:119::-;8023:7;8050:9;:18;8060:7;8050:18;;;;;;;;;;;;;;;;8043:25;;7957:119;;;:::o;2954:131::-;2785:19;2793:10;2785:7;:19::i;:::-;2777:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3027:1:::1;3011:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;3045:32;3074:1;3045:32;;;;;;:::i;:::-;;;;;;;;2954:131::o:0;7857:92::-;7909:7;7936:5;;;;;;;;;;;7929:12;;7857:92;:::o;7751:98::-;7801:13;7834:7;;;;;;;;;;;;;;;;;7827:14;;7751:98;:::o;13872:196::-;2785:19;2793:10;2785:7;:19::i;:::-;2777:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13970:1:::1;13946:21;:25;13938:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;14017:10;14009:28;;:51;14038:21;14009:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13872:196::o:0;5789:30::-;;;;;;;;;;;;;:::o;5690:19::-;;;;;;;;;;;;;:::o;9579:188::-;9686:4;9715:44;9729:10;9741:9;9752:6;9715:13;:44::i;:::-;9708:51;;9579:188;;;;:::o;8309:::-;8429:7;8461:11;:19;8473:6;8461:19;;;;;;;;;;;;;;;:28;8481:7;8461:28;;;;;;;;;;;;;;;;8454:35;;8309:188;;;;:::o;5718:24::-;;;;;;;;;;;;;:::o;710:224::-;830:7;863:1;858;:6;;866:12;850:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;890:9;906:1;902;:5;;;;:::i;:::-;890:17;;925:1;918:8;;;710:224;;;;;:::o;10974:1487::-;11100:4;11145:1;11127:20;;:6;:20;;;11119:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11229:1;11208:23;;:9;:23;;;11200:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11299:1;11290:6;:10;11282:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11359:12;11382;11411:6;;;;;;;;;;;11407:87;;;11441:41;11456:6;11464:9;11475:6;11441:14;:41::i;:::-;11434:48;;;;;;11407:87;11510:11;:19;11522:6;11510:19;;;;;;;;;;;;;;;;;;;;;;;;;11509:20;:47;;;;;11534:11;:22;11546:9;11534:22;;;;;;;;;;;;;;;;;;;;;;;;;11533:23;11509:47;11506:121;;;11580:11;;;;;;;;;;;11572:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;11506:121;11643:11;;;;;;;;;;;11639:92;;11678:41;11693:6;11701:9;11712:6;11678:14;:41::i;:::-;11671:48;;;;;;11639:92;11760:4;;;;;;;;;;;11747:17;;:9;:17;;;;:38;;;;;11781:4;;;;;;;;;;;11768:17;;:9;:17;;;;11747:38;:62;;;;;11790:11;:19;11802:6;11790:19;;;;;;;;;;;;;;;;;;;;;;;;;11789:20;11747:62;:89;;;;;11814:11;:22;11826:9;11814:22;;;;;;;;;;;;;;;;;;;;;;;;;11813:23;11747:89;11743:403;;;11879:15;:26;11895:9;11879:26;;;;;;;;;;;;;;;;;;;;;;;;;:100;;;;11963:16;;11953:6;11930:9;:20;11940:9;11930:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;11879:100;11853:199;;;;;;;;;;;;:::i;:::-;;;;;;;;;12082:4;;;;;;;;;;;12072:14;;:6;:14;;;12069:66;;12107:10;;:12;;;;;;;;;:::i;:::-;;;;;;12069:66;11743:403;12168:18;12179:6;12168:10;:18::i;:::-;12158:28;;12220:4;;;;;;;;;;;12207:17;;:9;:17;;;:43;;12240:4;;;;;;;;;;;12230:14;;:6;:14;;;:20;;12249:1;12230:20;;;12246:1;12230:20;12207:43;;;12226:1;12207:43;12197:53;;;;12267:37;12279:7;12288;12297:6;12267:11;:37::i;:::-;12263:94;;;12321:24;12338:6;12321:16;:24::i;:::-;12263:94;12369:60;12385:6;12393:9;12404:6;12412:7;12421;12369:15;:60::i;:::-;12449:4;12442:11;;;;10974:1487;;;;;;:::o;8761:401::-;8888:4;8925:90;8961:6;8925:90;;;;;;;;;;;;;;;;;:9;:17;8935:6;8925:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;8905:9;:17;8915:6;8905:17;;;;;;;;;;;;;;;:110;;;;9049:32;9074:6;9049:9;:20;9059:9;9049:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9026:9;:20;9036:9;9026:20;;;;;;;;;;;;;;;:55;;;;9114:9;9097:35;;9106:6;9097:35;;;9125:6;9097:35;;;;;;:::i;:::-;;;;;;;;9150:4;9143:11;;8761:401;;;;;:::o;8190:111::-;8249:4;8274:11;:19;8286:6;8274:19;;;;;;;;;;;;;;;;;;;;;;;;;8273:20;8266:27;;8190:111;;;:::o;9171:400::-;9260:4;9279:20;9302:14;;9279:37;;9327:18;9357:12;9348:6;:21;:64;;;;;9400:12;9373:24;9391:4;9373:9;:24::i;:::-;:39;9348:64;9327:85;;9446:6;;;;;;;;;;;9445:7;:31;;;;;9469:7;9445:31;:59;;;;;9493:11;;;;;;;;;;;9445:59;:88;;;;;9532:1;9522:7;:11;9445:88;:118;;;;;9550:13;9445:118;9425:138;;;;9171:400;;;;;:::o;13191:673::-;6198:4;6189:6;;:13;;;;;;;;;;;;;;;;;;13272:28:::1;13303:24;13321:4;13303:9;:24::i;:::-;13272:55;;13338:20;13361:51;13365:6;13373:38;13377:20;13399:11;;13373:3;:38::i;:::-;13361:3;:51::i;:::-;13338:74;;13425:21;13463:1;13449:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13425:40;;13494:4;13476;13481:1;13476:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13520:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13510:4;13515:1;13510:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13546:6;;;;;;;;;;;:57;;;13618:12;13645:1;13661:4;13688;13708:15;13546:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13747:26;13776:21;13747:50;;13816:10;;;;;;;;;;;13808:28;;:48;13837:18;13808:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13251:613;;;;6234:5:::0;6225:6;;:14;;;;;;;;;;;;;;;;;;13191:673;:::o;12469:714::-;12646:15;12664:7;:127;;12697:10;;;;;;;;;;;:94;;12784:7;12697:94;;;12723:44;12742:6;12750:7;12759;12723:18;:44::i;:::-;12697:94;12664:127;;;12687:7;12664:127;12646:145;;12804:15;12822:10;;;;;;;;;;;:21;;;;;12836:7;12822:21;:104;;12919:7;12822:104;;;12859:44;12878:6;12886:7;12895;12859:18;:44::i;:::-;12822:104;12804:122;;12959:91;12995:7;12959:91;;;;;;;;;;;;;;;;;:9;:17;12969:6;12959:17;;;;;;;;;;;;;;;;:21;;:91;;;;;:::i;:::-;12939:9;:17;12949:6;12939:17;;;;;;;;;;;;;;;:111;;;;13086:33;13111:7;13086:9;:20;13096:9;13086:20;;;;;;;;;;;;;;;;:24;;:33;;;;:::i;:::-;13063:9;:20;13073:9;13063:20;;;;;;;;;;;;;;;:56;;;;13154:9;13137:36;;13146:6;13137:36;;;13165:7;13137:36;;;;;;:::i;:::-;;;;;;;;12633:550;;12469:714;;;;;:::o;379:179::-;437:7;457:9;473:1;469;:5;;;;:::i;:::-;457:17;;498:1;493;:6;;485:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;549:1;542:8;;;379:179;;;;:::o;8084:98::-;8141:7;8168:1;8166;:3;8165:9;;8173:1;8165:9;;;8171:1;8165:9;8158:16;;8084:98;;;;:::o;10255:711::-;10363:7;10388:21;10420:24;10447:3;10420:30;;10479:7;:206;;10684:1;10479:206;;;10512:1;10503:6;:10;:178;;10602:1;10593:6;:10;:88;;10680:1;10593:88;;;10632:15;;10621:10;;:26;:55;;10665:11;;10621:55;;;10650:12;;10621:55;10593:88;10503:178;;;10542:16;;10531:10;;:27;:58;;10577:12;;10531:58;;;10561:13;;10531:58;10503:178;10479:206;10463:222;;10698:18;10719:48;10750:16;10719:26;10731:13;10719:7;:11;;:26;;;;:::i;:::-;:30;;:48;;;;:::i;:::-;10698:69;;10805:40;10834:10;10805:9;:24;10823:4;10805:24;;;;;;;;;;;;;;;;:28;;:40;;;;:::i;:::-;10778:9;:24;10796:4;10778:24;;;;;;;;;;;;;;;:67;;;;10869:7;:46;;10902:13;10892:7;:23;;;;:::i;:::-;10869:46;;;10879:10;10869:46;10856:59;;10935:23;10947:10;10935:7;:11;;:23;;;;:::i;:::-;10928:30;;;;;10255:711;;;;;:::o;942:246::-;1000:7;1029:1;1024;:6;1020:47;;1054:1;1047:8;;;;1020:47;1077:9;1093:1;1089;:5;;;;:::i;:::-;1077:17;;1122:1;1117;1113;:5;;;;:::i;:::-;:10;1105:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1179:1;1172:8;;;942:246;;;;;:::o;1196:132::-;1254:7;1281:39;1285:1;1288;1281:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1274:46;;1196:132;;;;:::o;566:136::-;624:7;651:43;655:1;658;651:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;644:50;;566:136;;;;:::o;1336:223::-;1456:7;1488:1;1484;:5;1491:12;1476:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1515:9;1531:1;1527;:5;;;;:::i;:::-;1515:17;;1550:1;1543:8;;;1336: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:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:60::-;6048:3;6069:5;6062:12;;6020:60;;;:::o;6086:142::-;6136:9;6169:53;6187:34;6196:24;6214:5;6196:24;:::i;:::-;6187:34;:::i;:::-;6169:53;:::i;:::-;6156:66;;6086:142;;;:::o;6234:126::-;6284:9;6317:37;6348:5;6317:37;:::i;:::-;6304:50;;6234:126;;;:::o;6366:144::-;6434:9;6467:37;6498:5;6467:37;:::i;:::-;6454:50;;6366:144;;;:::o;6516:167::-;6621:55;6670:5;6621:55;:::i;:::-;6616:3;6609:68;6516:167;;:::o;6689:258::-;6800:4;6838:2;6827:9;6823:18;6815:26;;6851:89;6937:1;6926:9;6922:17;6913:6;6851:89;:::i;:::-;6689:258;;;;:::o;6953:156::-;7093:8;7089:1;7081:6;7077:14;7070:32;6953:156;:::o;7115:365::-;7257:3;7278:66;7342:1;7337:3;7278:66;:::i;:::-;7271:73;;7353:93;7442:3;7353:93;:::i;:::-;7471:2;7466:3;7462:12;7455:19;;7115:365;;;:::o;7486:419::-;7652:4;7690:2;7679:9;7675:18;7667:26;;7739:9;7733:4;7729:20;7725:1;7714:9;7710:17;7703:47;7767:131;7893:4;7767:131;:::i;:::-;7759:139;;7486:419;;;:::o;7911:143::-;7968:5;7999:6;7993:13;7984:22;;8015:33;8042:5;8015:33;:::i;:::-;7911:143;;;;:::o;8060:351::-;8130:6;8179:2;8167:9;8158:7;8154:23;8150:32;8147:119;;;8185:79;;:::i;:::-;8147:119;8305:1;8330:64;8386:7;8377:6;8366:9;8362:22;8330:64;:::i;:::-;8320:74;;8276:128;8060:351;;;;:::o;8417:332::-;8538:4;8576:2;8565:9;8561:18;8553:26;;8589:71;8657:1;8646:9;8642:17;8633:6;8589:71;:::i;:::-;8670:72;8738:2;8727:9;8723:18;8714:6;8670:72;:::i;:::-;8417:332;;;;;:::o;8755:85::-;8800:7;8829:5;8818:16;;8755:85;;;:::o;8846:158::-;8904:9;8937:61;8955:42;8964:32;8990:5;8964:32;:::i;:::-;8955:42;:::i;:::-;8937:61;:::i;:::-;8924:74;;8846:158;;;:::o;9010:147::-;9105:45;9144:5;9105:45;:::i;:::-;9100:3;9093:58;9010:147;;:::o;9163:807::-;9412:4;9450:3;9439:9;9435:19;9427:27;;9464:71;9532:1;9521:9;9517:17;9508:6;9464:71;:::i;:::-;9545:72;9613:2;9602:9;9598:18;9589:6;9545:72;:::i;:::-;9627:80;9703:2;9692:9;9688:18;9679:6;9627:80;:::i;:::-;9717;9793:2;9782:9;9778:18;9769:6;9717:80;:::i;:::-;9807:73;9875:3;9864:9;9860:19;9851:6;9807:73;:::i;:::-;9890;9958:3;9947:9;9943:19;9934:6;9890:73;:::i;:::-;9163:807;;;;;;;;;:::o;9976:143::-;10033:5;10064:6;10058:13;10049:22;;10080:33;10107:5;10080:33;:::i;:::-;9976:143;;;;:::o;10125:663::-;10213:6;10221;10229;10278:2;10266:9;10257:7;10253:23;10249:32;10246:119;;;10284:79;;:::i;:::-;10246:119;10404:1;10429:64;10485:7;10476:6;10465:9;10461:22;10429:64;:::i;:::-;10419:74;;10375:128;10542:2;10568:64;10624:7;10615:6;10604:9;10600:22;10568:64;:::i;:::-;10558:74;;10513:129;10681:2;10707:64;10763:7;10754:6;10743:9;10739:22;10707:64;:::i;:::-;10697:74;;10652:129;10125:663;;;;;:::o;10794:173::-;10934:25;10930:1;10922:6;10918:14;10911:49;10794:173;:::o;10973:366::-;11115:3;11136:67;11200:2;11195:3;11136:67;:::i;:::-;11129:74;;11212:93;11301:3;11212:93;:::i;:::-;11330:2;11325:3;11321:12;11314:19;;10973:366;;;:::o;11345:419::-;11511:4;11549:2;11538:9;11534:18;11526:26;;11598:9;11592:4;11588:20;11584:1;11573:9;11569:17;11562:47;11626:131;11752:4;11626:131;:::i;:::-;11618:139;;11345:419;;;:::o;11770:172::-;11910:24;11906:1;11898:6;11894:14;11887:48;11770:172;:::o;11948:366::-;12090:3;12111:67;12175:2;12170:3;12111:67;:::i;:::-;12104:74;;12187:93;12276:3;12187:93;:::i;:::-;12305:2;12300:3;12296:12;12289:19;;11948:366;;;:::o;12320:419::-;12486:4;12524:2;12513:9;12509:18;12501:26;;12573:9;12567:4;12563:20;12559:1;12548:9;12544:17;12537:47;12601:131;12727:4;12601:131;:::i;:::-;12593:139;;12320:419;;;:::o;12745:180::-;12793:77;12790:1;12783:88;12890:4;12887:1;12880:15;12914:4;12911:1;12904:15;12931:194;12971:4;12991:20;13009:1;12991:20;:::i;:::-;12986:25;;13025:20;13043:1;13025:20;:::i;:::-;13020:25;;13069:1;13066;13062:9;13054:17;;13093:1;13087:4;13084:11;13081:37;;;13098:18;;:::i;:::-;13081:37;12931:194;;;;:::o;13131:224::-;13271:34;13267:1;13259:6;13255:14;13248:58;13340:7;13335:2;13327:6;13323:15;13316:32;13131:224;:::o;13361:366::-;13503:3;13524:67;13588:2;13583:3;13524:67;:::i;:::-;13517:74;;13600:93;13689:3;13600:93;:::i;:::-;13718:2;13713:3;13709:12;13702:19;;13361:366;;;:::o;13733:419::-;13899:4;13937:2;13926:9;13922:18;13914:26;;13986:9;13980:4;13976:20;13972:1;13961:9;13957:17;13950:47;14014:131;14140:4;14014:131;:::i;:::-;14006:139;;13733:419;;;:::o;14158:222::-;14298:34;14294:1;14286:6;14282:14;14275:58;14367:5;14362:2;14354:6;14350:15;14343:30;14158:222;:::o;14386:366::-;14528:3;14549:67;14613:2;14608:3;14549:67;:::i;:::-;14542:74;;14625:93;14714:3;14625:93;:::i;:::-;14743:2;14738:3;14734:12;14727:19;;14386:366;;;:::o;14758:419::-;14924:4;14962:2;14951:9;14947:18;14939:26;;15011:9;15005:4;15001:20;14997:1;14986:9;14982:17;14975:47;15039:131;15165:4;15039:131;:::i;:::-;15031:139;;14758:419;;;:::o;15183:228::-;15323:34;15319:1;15311:6;15307:14;15300:58;15392:11;15387:2;15379:6;15375:15;15368:36;15183:228;:::o;15417:366::-;15559:3;15580:67;15644:2;15639:3;15580:67;:::i;:::-;15573:74;;15656:93;15745:3;15656:93;:::i;:::-;15774:2;15769:3;15765:12;15758:19;;15417:366;;;:::o;15789:419::-;15955:4;15993:2;15982:9;15978:18;15970:26;;16042:9;16036:4;16032:20;16028:1;16017:9;16013:17;16006:47;16070:131;16196:4;16070:131;:::i;:::-;16062:139;;15789:419;;;:::o;16214:170::-;16354:22;16350:1;16342:6;16338:14;16331:46;16214:170;:::o;16390:366::-;16532:3;16553:67;16617:2;16612:3;16553:67;:::i;:::-;16546:74;;16629:93;16718:3;16629:93;:::i;:::-;16747:2;16742:3;16738:12;16731:19;;16390:366;;;:::o;16762:419::-;16928:4;16966:2;16955:9;16951:18;16943:26;;17015:9;17009:4;17005:20;17001:1;16990:9;16986:17;16979:47;17043:131;17169:4;17043:131;:::i;:::-;17035:139;;16762:419;;;:::o;17187:191::-;17227:3;17246:20;17264:1;17246:20;:::i;:::-;17241:25;;17280:20;17298:1;17280:20;:::i;:::-;17275:25;;17323:1;17320;17316:9;17309:16;;17344:3;17341:1;17338:10;17335:36;;;17351:18;;:::i;:::-;17335:36;17187:191;;;;:::o;17384:224::-;17524:34;17520:1;17512:6;17508:14;17501:58;17593:7;17588:2;17580:6;17576:15;17569:32;17384:224;:::o;17614:366::-;17756:3;17777:67;17841:2;17836:3;17777:67;:::i;:::-;17770:74;;17853:93;17942:3;17853:93;:::i;:::-;17971:2;17966:3;17962:12;17955:19;;17614:366;;;:::o;17986:419::-;18152:4;18190:2;18179:9;18175:18;18167:26;;18239:9;18233:4;18229:20;18225:1;18214:9;18210:17;18203:47;18267:131;18393:4;18267:131;:::i;:::-;18259:139;;17986:419;;;:::o;18411:233::-;18450:3;18473:24;18491:5;18473:24;:::i;:::-;18464:33;;18519:66;18512:5;18509:77;18506:103;;18589:18;;:::i;:::-;18506:103;18636:1;18629:5;18625:13;18618:20;;18411:233;;;:::o;18650:180::-;18698:77;18695:1;18688:88;18795:4;18792:1;18785:15;18819:4;18816:1;18809:15;18836:180;18884:77;18881:1;18874:88;18981:4;18978:1;18971:15;19005:4;19002:1;18995:15;19022:114;19089:6;19123:5;19117:12;19107:22;;19022:114;;;:::o;19142:184::-;19241:11;19275:6;19270:3;19263:19;19315:4;19310:3;19306:14;19291:29;;19142:184;;;;:::o;19332:132::-;19399:4;19422:3;19414:11;;19452:4;19447:3;19443:14;19435:22;;19332:132;;;:::o;19470:108::-;19547:24;19565:5;19547:24;:::i;:::-;19542:3;19535:37;19470:108;;:::o;19584:179::-;19653:10;19674:46;19716:3;19708:6;19674:46;:::i;:::-;19752:4;19747:3;19743:14;19729:28;;19584:179;;;;:::o;19769:113::-;19839:4;19871;19866:3;19862:14;19854:22;;19769:113;;;:::o;19918:732::-;20037:3;20066:54;20114:5;20066:54;:::i;:::-;20136:86;20215:6;20210:3;20136:86;:::i;:::-;20129:93;;20246:56;20296:5;20246:56;:::i;:::-;20325:7;20356:1;20341:284;20366:6;20363:1;20360:13;20341:284;;;20442:6;20436:13;20469:63;20528:3;20513:13;20469:63;:::i;:::-;20462:70;;20555:60;20608:6;20555:60;:::i;:::-;20545:70;;20401:224;20388:1;20385;20381:9;20376:14;;20341:284;;;20345:14;20641:3;20634:10;;20042:608;;;19918:732;;;;:::o;20656:831::-;20919:4;20957:3;20946:9;20942:19;20934:27;;20971:71;21039:1;21028:9;21024:17;21015:6;20971:71;:::i;:::-;21052:80;21128:2;21117:9;21113:18;21104:6;21052:80;:::i;:::-;21179:9;21173:4;21169:20;21164:2;21153:9;21149:18;21142:48;21207:108;21310:4;21301:6;21207:108;:::i;:::-;21199:116;;21325:72;21393:2;21382:9;21378:18;21369:6;21325:72;:::i;:::-;21407:73;21475:3;21464:9;21460:19;21451:6;21407:73;:::i;:::-;20656:831;;;;;;;;:::o;21493:177::-;21633:29;21629:1;21621:6;21617:14;21610:53;21493:177;:::o;21676:366::-;21818:3;21839:67;21903:2;21898:3;21839:67;:::i;:::-;21832:74;;21915:93;22004:3;21915:93;:::i;:::-;22033:2;22028:3;22024:12;22017:19;;21676:366;;;:::o;22048:419::-;22214:4;22252:2;22241:9;22237:18;22229:26;;22301:9;22295:4;22291:20;22287:1;22276:9;22272:17;22265:47;22329:131;22455:4;22329:131;:::i;:::-;22321:139;;22048:419;;;:::o;22473:410::-;22513:7;22536:20;22554:1;22536:20;:::i;:::-;22531:25;;22570:20;22588:1;22570:20;:::i;:::-;22565:25;;22625:1;22622;22618:9;22647:30;22665:11;22647:30;:::i;:::-;22636:41;;22826:1;22817:7;22813:15;22810:1;22807:22;22787:1;22780:9;22760:83;22737:139;;22856:18;;:::i;:::-;22737:139;22521:362;22473:410;;;;:::o;22889:180::-;22937:77;22934:1;22927:88;23034:4;23031:1;23024:15;23058:4;23055:1;23048:15;23075:185;23115:1;23132:20;23150:1;23132:20;:::i;:::-;23127:25;;23166:20;23184:1;23166:20;:::i;:::-;23161:25;;23205:1;23195:35;;23210:18;;:::i;:::-;23195:35;23252:1;23249;23245:9;23240:14;;23075:185;;;;:::o;23266:220::-;23406:34;23402:1;23394:6;23390:14;23383:58;23475:3;23470:2;23462:6;23458:15;23451:28;23266:220;:::o;23492:366::-;23634:3;23655:67;23719:2;23714:3;23655:67;:::i;:::-;23648:74;;23731:93;23820:3;23731:93;:::i;:::-;23849:2;23844:3;23840:12;23833:19;;23492:366;;;:::o;23864:419::-;24030:4;24068:2;24057:9;24053:18;24045:26;;24117:9;24111:4;24107:20;24103:1;24092:9;24088:17;24081:47;24145:131;24271:4;24145:131;:::i;:::-;24137:139;;23864:419;;;:::o

Swarm Source

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