ETH Price: $2,203.17 (+1.16%)

Token

Decentracash (dCASH)
 

Overview

Max Total Supply

2,000,000,000 dCASH

Holders

43

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
ethernull.eth
Balance
0.131800287 dCASH

Value
$0.00
0x97b6009825ba7578e9a63671e48c02bf5e7ca9e9
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:
dCASH

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-03-15
*/

// https://www.decentracash.online/
// Decentralized internet money crafted with blockchain technology
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;

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

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

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

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

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

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

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

    function decimals() external view returns (uint8);

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

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

    function getOwner() external view returns (address);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address _owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

abstract contract Ownable {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

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

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

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

    event OwnershipTransferred(address owner);
}

interface 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 dCASH is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address immutable DEV_ADDRESS = 0xcA218F53F95f30dAF540F5fD018C04c17A08ca15;

    string constant _name = "Decentracash"; // Decentralized internet money crafted with blockchain technology
    string constant _symbol = "dCASH";
    uint8 constant _decimals = 9;
    uint256 _totalSupply = 2_000_000_000 * (10**_decimals);
    uint256 public _maxWalletAmount = 2_000_000_000 * (10**_decimals);
    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) _allowances;
    mapping(address => bool) isFeeExempt;
    mapping(address => bool) isTxLimitExempt;
    uint256 dCASHFee = 8; // Will be lowered after launch
    address public dCASHTeam = msg.sender;
    IDEXRouter public router;
    address public pair;
    bool public swapEnabled = true;
    bool public feesEnabled = true;
    uint256 public swapThreshold = (_totalSupply / 1000) * 5;
    bool inSwap;
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    string private _websiteInformation;
    string private _telegramInformation;
    string private _twitterInformation;

    constructor() Ownable(msg.sender) {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(
            router.WETH(),
            address(this)
        );
        _allowances[address(this)][address(router)] = type(uint256).max;
        address _owner = owner;
        isFeeExempt[_owner] = true;
        isTxLimitExempt[_owner] = true;
        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    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 shouldSwapBack() internal view returns (bool) {
        return
            msg.sender != pair &&
            !inSwap &&
            swapEnabled &&
            _balances[address(this)] >= swapThreshold;
    }

    function shouldTakeFee(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 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);
    }

    function toggleFee(bool _feesEnabled) external {
        require(msg.sender == DEV_ADDRESS, "Only developer can toggle fees on / off");
        feesEnabled = _feesEnabled;
    }

    function setDecentraFee(uint256 _dCASHFee) external onlyOwner {
        require(_dCASHFee <= 8, "Must keep fees at 8% or less");
        dCASHFee = _dCASHFee;
    }

    function setMaxWallet(uint256 _percentage) external onlyOwner {
        if (_percentage == 100) {
            _maxWalletAmount = type(uint256).max;
        } else {
            _maxWalletAmount = _totalSupply.mul(_percentage).div(100);
        }
    }

    /**
        Internal functions
    **/

    function takeFee(address sender, uint256 amount)
        internal
        returns (uint256)
    {
        uint256 feeAmount = amount.mul(dCASHFee).div(100);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function swapBack() internal swapping {
        uint256 contractTokenBalance = swapThreshold;
        uint256 amountToSwap = contractTokenBalance;

        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;

        (
            bool MarketingSuccess, /* bytes memory data */

        ) = payable(dCASHTeam).call{value: amountETHMarketing}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

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

        if (shouldSwapBack()) {
            swapBack();
        }

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

        uint256 amountReceived = feesEnabled && shouldTakeFee(sender)
            ? takeFee(sender, amount)
            : amount;

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

        emit Transfer(sender, recipient, amountReceived);
        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;
    }

    /**
        Social links
    **/

    function setSocials(
        string calldata __websiteInformation,
        string calldata __telegramInformation,
        string calldata __twitterInformation
    ) external {
        require(
            msg.sender == DEV_ADDRESS,
            "Only developer can adjust social links"
        );

        _websiteInformation = __websiteInformation;
        _telegramInformation = __telegramInformation;
        _twitterInformation = __twitterInformation;
    }

    function getWebsiteInformation() public view returns (string memory) {
        return _websiteInformation;
    }

    function getTelegramInformation() public view returns (string memory) {
        return _telegramInformation;
    }

    function getTwitterInformation() public view returns (string memory) {
        return _twitterInformation;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"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":"_maxWalletAmount","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":"dCASHTeam","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"feesEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTelegramInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTwitterInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWebsiteInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_dCASHFee","type":"uint256"}],"name":"setDecentraFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentage","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"__websiteInformation","type":"string"},{"internalType":"string","name":"__telegramInformation","type":"string"},{"internalType":"string","name":"__twitterInformation","type":"string"}],"name":"setSocials","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_feesEnabled","type":"bool"}],"name":"toggleFee","outputs":[],"stateMutability":"nonpayable","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"},{"stateMutability":"payable","type":"receive"}]

60a0604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ca218f53f95f30daf540f5fd018c04c17a08ca1573ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152506009600a620000f3919062000850565b6377359400620001049190620008a1565b6003556009600a62000117919062000850565b6377359400620001289190620008a1565b600455600860095533600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60146101000a81548160ff0219169083151502179055506001600c60156101000a81548160ff02191690831515021790555060056103e8600354620001bb91906200091b565b620001c79190620008a1565b600d55348015620001d757600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003119190620009bd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200039a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c09190620009bd565b306040518363ffffffff1660e01b8152600401620003e092919062000a00565b6020604051808303816000875af115801562000400573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004269190620009bd565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620006a7919062000a3e565b60405180910390a35062000a5b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000744578086048111156200071c576200071b620006b6565b5b60018516156200072c5780820291505b80810290506200073c85620006e5565b9450620006fc565b94509492505050565b6000826200075f576001905062000832565b816200076f576000905062000832565b81600181146200078857600281146200079357620007c9565b600191505062000832565b60ff841115620007a857620007a7620006b6565b5b8360020a915084821115620007c257620007c1620006b6565b5b5062000832565b5060208310610133831016604e8410600b8410161715620008035782820a905083811115620007fd57620007fc620006b6565b5b62000832565b620008128484846001620006f2565b925090508184048111156200082c576200082b620006b6565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200085d8262000839565b91506200086a8362000843565b9250620008997fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200074d565b905092915050565b6000620008ae8262000839565b9150620008bb8362000839565b9250828202620008cb8162000839565b91508282048414831517620008e557620008e4620006b6565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009288262000839565b9150620009358362000839565b925082620009485762000947620008ec565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009858262000958565b9050919050565b620009978162000978565b8114620009a357600080fd5b50565b600081519050620009b7816200098c565b92915050565b600060208284031215620009d657620009d562000953565b5b6000620009e684828501620009a6565b91505092915050565b620009fa8162000978565b82525050565b600060408201905062000a176000830185620009ef565b62000a266020830184620009ef565b9392505050565b62000a388162000839565b82525050565b600060208201905062000a55600083018462000a2d565b92915050565b608051612e2a62000a7e600039600081816107760152610da90152612e2a6000f3fe6080604052600436106101855760003560e01c8063715018a6116100d1578063a64e4f8a1161008a578063c3f93b0111610064578063c3f93b0114610581578063dd62ed3e146105ac578063e0dc3546146105e9578063f887ea40146106145761018c565b8063a64e4f8a146104ee578063a8aa1b3114610519578063a9059cbb146105445761018c565b8063715018a614610402578063756b7bb714610419578063868e4c611461044457806386d7dbd71461046d578063893d20e81461049857806395d89b41146104c35761018c565b80632f54bf6e1161013e5780635d0044ca116101185780635d0044ca146103465780636c0a24eb1461036f5780636ddd17131461039a57806370a08231146103c55761018c565b80632f54bf6e146102b5578063313ce567146102f2578063471084bf1461031d5761018c565b80630445b6671461019157806306fdde03146101bc578063095ea7b3146101e75780630d0da2d41461022457806318160ddd1461024d57806323b872dd146102785761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661063f565b6040516101b39190611e9c565b60405180910390f35b3480156101c857600080fd5b506101d1610645565b6040516101de9190611f47565b60405180910390f35b3480156101f357600080fd5b5061020e60048036038101906102099190611ffd565b610682565b60405161021b9190612058565b60405180910390f35b34801561023057600080fd5b5061024b600480360381019061024691906120d8565b610774565b005b34801561025957600080fd5b50610262610840565b60405161026f9190611e9c565b60405180910390f35b34801561028457600080fd5b5061029f600480360381019061029a919061218c565b61084a565b6040516102ac9190612058565b60405180910390f35b3480156102c157600080fd5b506102dc60048036038101906102d791906121df565b610a4a565b6040516102e99190612058565b60405180910390f35b3480156102fe57600080fd5b50610307610aa3565b6040516103149190612228565b60405180910390f35b34801561032957600080fd5b50610344600480360381019061033f9190612243565b610aac565b005b34801561035257600080fd5b5061036d60048036038101906103689190612243565b610b42565b005b34801561037b57600080fd5b50610384610bf0565b6040516103919190611e9c565b60405180910390f35b3480156103a657600080fd5b506103af610bf6565b6040516103bc9190612058565b60405180910390f35b3480156103d157600080fd5b506103ec60048036038101906103e791906121df565b610c09565b6040516103f99190611e9c565b60405180910390f35b34801561040e57600080fd5b50610417610c52565b005b34801561042557600080fd5b5061042e610d15565b60405161043b9190611f47565b60405180910390f35b34801561045057600080fd5b5061046b6004803603810190610466919061229c565b610da7565b005b34801561047957600080fd5b50610482610e52565b60405161048f91906122d8565b60405180910390f35b3480156104a457600080fd5b506104ad610e78565b6040516104ba91906122d8565b60405180910390f35b3480156104cf57600080fd5b506104d8610ea1565b6040516104e59190611f47565b60405180910390f35b3480156104fa57600080fd5b50610503610ede565b6040516105109190612058565b60405180910390f35b34801561052557600080fd5b5061052e610ef1565b60405161053b91906122d8565b60405180910390f35b34801561055057600080fd5b5061056b60048036038101906105669190611ffd565b610f17565b6040516105789190612058565b60405180910390f35b34801561058d57600080fd5b50610596610f2c565b6040516105a39190611f47565b60405180910390f35b3480156105b857600080fd5b506105d360048036038101906105ce91906122f3565b610fbe565b6040516105e09190611e9c565b60405180910390f35b3480156105f557600080fd5b506105fe611045565b60405161060b9190611f47565b60405180910390f35b34801561062057600080fd5b506106296110d7565b6040516106369190612392565b60405180910390f35b600d5481565b60606040518060400160405280600c81526020017f446563656e747261636173680000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107629190611e9c565b60405180910390a36001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f99061241f565b60405180910390fd5b8585600f918261081392919061267b565b5083836010918261082592919061267b565b5081816011918261083792919061267b565b50505050505050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610a36576109b5826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110fd9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610a41848484611161565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b610ab533610a4a565b610af4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aeb90612797565b60405180910390fd5b6008811115610b38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2f90612803565b60405180910390fd5b8060098190555050565b610b4b33610a4a565b610b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8190612797565b60405180910390fd5b60648103610bbe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600481905550610bed565b610be66064610bd88360035461154290919063ffffffff16565b6115bc90919063ffffffff16565b6004819055505b50565b60045481565b600c60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c5b33610a4a565b610c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9190612797565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610d0b91906122d8565b60405180910390a1565b606060108054610d24906124a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610d50906124a8565b8015610d9d5780601f10610d7257610100808354040283529160200191610d9d565b820191906000526020600020905b815481529060010190602001808311610d8057829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2c90612895565b60405180910390fd5b80600c60156101000a81548160ff02191690831515021790555050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f6443415348000000000000000000000000000000000000000000000000000000815250905090565b600c60159054906101000a900460ff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610f24338484611161565b905092915050565b606060118054610f3b906124a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610f67906124a8565b8015610fb45780601f10610f8957610100808354040283529160200191610fb4565b820191906000526020600020905b815481529060010190602001808311610f9757829003601f168201915b5050505050905090565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6060600f8054611054906124a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611080906124a8565b80156110cd5780601f106110a2576101008083540402835291602001916110cd565b820191906000526020600020905b8154815290600101906020018083116110b057829003601f168201915b5050505050905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c9190611f47565b60405180910390fd5b506000838561115491906128e4565b9050809150509392505050565b6000600e60009054906101000a900460ff161561118a57611183848484611606565b905061153b565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112365750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561131f57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806112df575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112dc9190612918565b11155b61131e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611315906129be565b60405180910390fd5b5b6113276117d9565b15611335576113346118b0565b5b6113be826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110fd9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600c60159054906101000a900460ff168015611424575061142385611bde565b5b61142e5782611439565b6114388584611c35565b5b905061148d81600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7890919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161152d9190611e9c565b60405180910390a360019150505b9392505050565b600080830361155457600090506115b6565b6000828461156291906129de565b90508284826115719190612a4f565b146115b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a890612af2565b60405180910390fd5b809150505b92915050565b60006115fe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dd6565b905092915050565b6000611691826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110fd9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061172682600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7890919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117c69190611e9c565b60405180910390a3600190509392505050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156118465750600e60009054906101000a900460ff16155b801561185e5750600c60149054906101000a900460ff165b80156118ab5750600d54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001600e60006101000a81548160ff0219169083151502179055506000600d54905060008190506000600267ffffffffffffffff8111156118f4576118f361244a565b5b6040519080825280602002602001820160405280156119225781602001602082028036833780820191505090505b509050308160008151811061193a57611939612b12565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a059190612b56565b81600181518110611a1957611a18612b12565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ab7959493929190612c7c565b600060405180830381600087803b158015611ad157600080fd5b505af1158015611ae5573d6000803e3d6000fd5b5050505060004790506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611b3690612d07565b60006040518083038185875af1925050503d8060008114611b73576040519150601f19603f3d011682016040523d82523d6000602084013e611b78565b606091505b5050905080611bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb390612d68565b60405180910390fd5b50505050506000600e60006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611c606064611c526009548661154290919063ffffffff16565b6115bc90919063ffffffff16565b9050611cb481600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7890919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d549190611e9c565b60405180910390a3611d6f8184611e3990919063ffffffff16565b91505092915050565b6000808284611d879190612918565b905083811015611dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc390612dd4565b60405180910390fd5b8091505092915050565b60008083118290611e1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e149190611f47565b60405180910390fd5b5060008385611e2c9190612a4f565b9050809150509392505050565b6000611e7b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110fd565b905092915050565b6000819050919050565b611e9681611e83565b82525050565b6000602082019050611eb16000830184611e8d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ef1578082015181840152602081019050611ed6565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f1982611eb7565b611f238185611ec2565b9350611f33818560208601611ed3565b611f3c81611efd565b840191505092915050565b60006020820190508181036000830152611f618184611f0e565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f9e82611f73565b9050919050565b611fae81611f93565b8114611fb957600080fd5b50565b600081359050611fcb81611fa5565b92915050565b611fda81611e83565b8114611fe557600080fd5b50565b600081359050611ff781611fd1565b92915050565b6000806040838503121561201457612013611f69565b5b600061202285828601611fbc565b925050602061203385828601611fe8565b9150509250929050565b60008115159050919050565b6120528161203d565b82525050565b600060208201905061206d6000830184612049565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261209857612097612073565b5b8235905067ffffffffffffffff8111156120b5576120b4612078565b5b6020830191508360018202830111156120d1576120d061207d565b5b9250929050565b600080600080600080606087890312156120f5576120f4611f69565b5b600087013567ffffffffffffffff81111561211357612112611f6e565b5b61211f89828a01612082565b9650965050602087013567ffffffffffffffff81111561214257612141611f6e565b5b61214e89828a01612082565b9450945050604087013567ffffffffffffffff81111561217157612170611f6e565b5b61217d89828a01612082565b92509250509295509295509295565b6000806000606084860312156121a5576121a4611f69565b5b60006121b386828701611fbc565b93505060206121c486828701611fbc565b92505060406121d586828701611fe8565b9150509250925092565b6000602082840312156121f5576121f4611f69565b5b600061220384828501611fbc565b91505092915050565b600060ff82169050919050565b6122228161220c565b82525050565b600060208201905061223d6000830184612219565b92915050565b60006020828403121561225957612258611f69565b5b600061226784828501611fe8565b91505092915050565b6122798161203d565b811461228457600080fd5b50565b60008135905061229681612270565b92915050565b6000602082840312156122b2576122b1611f69565b5b60006122c084828501612287565b91505092915050565b6122d281611f93565b82525050565b60006020820190506122ed60008301846122c9565b92915050565b6000806040838503121561230a57612309611f69565b5b600061231885828601611fbc565b925050602061232985828601611fbc565b9150509250929050565b6000819050919050565b600061235861235361234e84611f73565b612333565b611f73565b9050919050565b600061236a8261233d565b9050919050565b600061237c8261235f565b9050919050565b61238c81612371565b82525050565b60006020820190506123a76000830184612383565b92915050565b7f4f6e6c7920646576656c6f7065722063616e2061646a75737420736f6369616c60008201527f206c696e6b730000000000000000000000000000000000000000000000000000602082015250565b6000612409602683611ec2565b9150612414826123ad565b604082019050919050565b60006020820190508181036000830152612438816123fc565b9050919050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806124c057607f821691505b6020821081036124d3576124d2612479565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261253b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826124fe565b61254586836124fe565b95508019841693508086168417925050509392505050565b600061257861257361256e84611e83565b612333565b611e83565b9050919050565b6000819050919050565b6125928361255d565b6125a661259e8261257f565b84845461250b565b825550505050565b600090565b6125bb6125ae565b6125c6818484612589565b505050565b5b818110156125ea576125df6000826125b3565b6001810190506125cc565b5050565b601f82111561262f57612600816124d9565b612609846124ee565b81016020851015612618578190505b61262c612624856124ee565b8301826125cb565b50505b505050565b600082821c905092915050565b600061265260001984600802612634565b1980831691505092915050565b600061266b8383612641565b9150826002028217905092915050565b612685838361243f565b67ffffffffffffffff81111561269e5761269d61244a565b5b6126a882546124a8565b6126b38282856125ee565b6000601f8311600181146126e257600084156126d0578287013590505b6126da858261265f565b865550612742565b601f1984166126f0866124d9565b60005b82811015612718578489013582556001820191506020850194506020810190506126f3565b868310156127355784890135612731601f891682612641565b8355505b6001600288020188555050505b50505050505050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612781600683611ec2565b915061278c8261274b565b602082019050919050565b600060208201905081810360008301526127b081612774565b9050919050565b7f4d757374206b6565702066656573206174203825206f72206c65737300000000600082015250565b60006127ed601c83611ec2565b91506127f8826127b7565b602082019050919050565b6000602082019050818103600083015261281c816127e0565b9050919050565b7f4f6e6c7920646576656c6f7065722063616e20746f67676c652066656573206f60008201527f6e202f206f666600000000000000000000000000000000000000000000000000602082015250565b600061287f602783611ec2565b915061288a82612823565b604082019050919050565b600060208201905081810360008301526128ae81612872565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128ef82611e83565b91506128fa83611e83565b9250828203905081811115612912576129116128b5565b5b92915050565b600061292382611e83565b915061292e83611e83565b9250828201905080821115612946576129456128b5565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b60006129a8602583611ec2565b91506129b38261294c565b604082019050919050565b600060208201905081810360008301526129d78161299b565b9050919050565b60006129e982611e83565b91506129f483611e83565b9250828202612a0281611e83565b91508282048414831517612a1957612a186128b5565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a5a82611e83565b9150612a6583611e83565b925082612a7557612a74612a20565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612adc602183611ec2565b9150612ae782612a80565b604082019050919050565b60006020820190508181036000830152612b0b81612acf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612b5081611fa5565b92915050565b600060208284031215612b6c57612b6b611f69565b5b6000612b7a84828501612b41565b91505092915050565b6000819050919050565b6000612ba8612ba3612b9e84612b83565b612333565b611e83565b9050919050565b612bb881612b8d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612bf381611f93565b82525050565b6000612c058383612bea565b60208301905092915050565b6000602082019050919050565b6000612c2982612bbe565b612c338185612bc9565b9350612c3e83612bda565b8060005b83811015612c6f578151612c568882612bf9565b9750612c6183612c11565b925050600181019050612c42565b5085935050505092915050565b600060a082019050612c916000830188611e8d565b612c9e6020830187612baf565b8181036040830152612cb08186612c1e565b9050612cbf60608301856122c9565b612ccc6080830184611e8d565b9695505050505050565b600081905092915050565b50565b6000612cf1600083612cd6565b9150612cfc82612ce1565b600082019050919050565b6000612d1282612ce4565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000612d52601e83611ec2565b9150612d5d82612d1c565b602082019050919050565b60006020820190508181036000830152612d8181612d45565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612dbe601b83611ec2565b9150612dc982612d88565b602082019050919050565b60006020820190508181036000830152612ded81612db1565b905091905056fea264697066735822122093b3ec40e16e7142aafa99ee6c4fdf33e4d02954cfb131330969709c753832e664736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101855760003560e01c8063715018a6116100d1578063a64e4f8a1161008a578063c3f93b0111610064578063c3f93b0114610581578063dd62ed3e146105ac578063e0dc3546146105e9578063f887ea40146106145761018c565b8063a64e4f8a146104ee578063a8aa1b3114610519578063a9059cbb146105445761018c565b8063715018a614610402578063756b7bb714610419578063868e4c611461044457806386d7dbd71461046d578063893d20e81461049857806395d89b41146104c35761018c565b80632f54bf6e1161013e5780635d0044ca116101185780635d0044ca146103465780636c0a24eb1461036f5780636ddd17131461039a57806370a08231146103c55761018c565b80632f54bf6e146102b5578063313ce567146102f2578063471084bf1461031d5761018c565b80630445b6671461019157806306fdde03146101bc578063095ea7b3146101e75780630d0da2d41461022457806318160ddd1461024d57806323b872dd146102785761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661063f565b6040516101b39190611e9c565b60405180910390f35b3480156101c857600080fd5b506101d1610645565b6040516101de9190611f47565b60405180910390f35b3480156101f357600080fd5b5061020e60048036038101906102099190611ffd565b610682565b60405161021b9190612058565b60405180910390f35b34801561023057600080fd5b5061024b600480360381019061024691906120d8565b610774565b005b34801561025957600080fd5b50610262610840565b60405161026f9190611e9c565b60405180910390f35b34801561028457600080fd5b5061029f600480360381019061029a919061218c565b61084a565b6040516102ac9190612058565b60405180910390f35b3480156102c157600080fd5b506102dc60048036038101906102d791906121df565b610a4a565b6040516102e99190612058565b60405180910390f35b3480156102fe57600080fd5b50610307610aa3565b6040516103149190612228565b60405180910390f35b34801561032957600080fd5b50610344600480360381019061033f9190612243565b610aac565b005b34801561035257600080fd5b5061036d60048036038101906103689190612243565b610b42565b005b34801561037b57600080fd5b50610384610bf0565b6040516103919190611e9c565b60405180910390f35b3480156103a657600080fd5b506103af610bf6565b6040516103bc9190612058565b60405180910390f35b3480156103d157600080fd5b506103ec60048036038101906103e791906121df565b610c09565b6040516103f99190611e9c565b60405180910390f35b34801561040e57600080fd5b50610417610c52565b005b34801561042557600080fd5b5061042e610d15565b60405161043b9190611f47565b60405180910390f35b34801561045057600080fd5b5061046b6004803603810190610466919061229c565b610da7565b005b34801561047957600080fd5b50610482610e52565b60405161048f91906122d8565b60405180910390f35b3480156104a457600080fd5b506104ad610e78565b6040516104ba91906122d8565b60405180910390f35b3480156104cf57600080fd5b506104d8610ea1565b6040516104e59190611f47565b60405180910390f35b3480156104fa57600080fd5b50610503610ede565b6040516105109190612058565b60405180910390f35b34801561052557600080fd5b5061052e610ef1565b60405161053b91906122d8565b60405180910390f35b34801561055057600080fd5b5061056b60048036038101906105669190611ffd565b610f17565b6040516105789190612058565b60405180910390f35b34801561058d57600080fd5b50610596610f2c565b6040516105a39190611f47565b60405180910390f35b3480156105b857600080fd5b506105d360048036038101906105ce91906122f3565b610fbe565b6040516105e09190611e9c565b60405180910390f35b3480156105f557600080fd5b506105fe611045565b60405161060b9190611f47565b60405180910390f35b34801561062057600080fd5b506106296110d7565b6040516106369190612392565b60405180910390f35b600d5481565b60606040518060400160405280600c81526020017f446563656e747261636173680000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107629190611e9c565b60405180910390a36001905092915050565b7f000000000000000000000000ca218f53f95f30daf540f5fd018c04c17a08ca1573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f99061241f565b60405180910390fd5b8585600f918261081392919061267b565b5083836010918261082592919061267b565b5081816011918261083792919061267b565b50505050505050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610a36576109b5826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110fd9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610a41848484611161565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b610ab533610a4a565b610af4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aeb90612797565b60405180910390fd5b6008811115610b38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2f90612803565b60405180910390fd5b8060098190555050565b610b4b33610a4a565b610b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8190612797565b60405180910390fd5b60648103610bbe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600481905550610bed565b610be66064610bd88360035461154290919063ffffffff16565b6115bc90919063ffffffff16565b6004819055505b50565b60045481565b600c60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c5b33610a4a565b610c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9190612797565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610d0b91906122d8565b60405180910390a1565b606060108054610d24906124a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610d50906124a8565b8015610d9d5780601f10610d7257610100808354040283529160200191610d9d565b820191906000526020600020905b815481529060010190602001808311610d8057829003601f168201915b5050505050905090565b7f000000000000000000000000ca218f53f95f30daf540f5fd018c04c17a08ca1573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2c90612895565b60405180910390fd5b80600c60156101000a81548160ff02191690831515021790555050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f6443415348000000000000000000000000000000000000000000000000000000815250905090565b600c60159054906101000a900460ff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610f24338484611161565b905092915050565b606060118054610f3b906124a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610f67906124a8565b8015610fb45780601f10610f8957610100808354040283529160200191610fb4565b820191906000526020600020905b815481529060010190602001808311610f9757829003601f168201915b5050505050905090565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6060600f8054611054906124a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611080906124a8565b80156110cd5780601f106110a2576101008083540402835291602001916110cd565b820191906000526020600020905b8154815290600101906020018083116110b057829003601f168201915b5050505050905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c9190611f47565b60405180910390fd5b506000838561115491906128e4565b9050809150509392505050565b6000600e60009054906101000a900460ff161561118a57611183848484611606565b905061153b565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112365750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561131f57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806112df575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112dc9190612918565b11155b61131e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611315906129be565b60405180910390fd5b5b6113276117d9565b15611335576113346118b0565b5b6113be826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110fd9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600c60159054906101000a900460ff168015611424575061142385611bde565b5b61142e5782611439565b6114388584611c35565b5b905061148d81600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7890919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161152d9190611e9c565b60405180910390a360019150505b9392505050565b600080830361155457600090506115b6565b6000828461156291906129de565b90508284826115719190612a4f565b146115b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a890612af2565b60405180910390fd5b809150505b92915050565b60006115fe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dd6565b905092915050565b6000611691826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110fd9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061172682600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7890919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117c69190611e9c565b60405180910390a3600190509392505050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156118465750600e60009054906101000a900460ff16155b801561185e5750600c60149054906101000a900460ff165b80156118ab5750600d54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001600e60006101000a81548160ff0219169083151502179055506000600d54905060008190506000600267ffffffffffffffff8111156118f4576118f361244a565b5b6040519080825280602002602001820160405280156119225781602001602082028036833780820191505090505b509050308160008151811061193a57611939612b12565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a059190612b56565b81600181518110611a1957611a18612b12565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ab7959493929190612c7c565b600060405180830381600087803b158015611ad157600080fd5b505af1158015611ae5573d6000803e3d6000fd5b5050505060004790506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611b3690612d07565b60006040518083038185875af1925050503d8060008114611b73576040519150601f19603f3d011682016040523d82523d6000602084013e611b78565b606091505b5050905080611bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb390612d68565b60405180910390fd5b50505050506000600e60006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611c606064611c526009548661154290919063ffffffff16565b6115bc90919063ffffffff16565b9050611cb481600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7890919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d549190611e9c565b60405180910390a3611d6f8184611e3990919063ffffffff16565b91505092915050565b6000808284611d879190612918565b905083811015611dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc390612dd4565b60405180910390fd5b8091505092915050565b60008083118290611e1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e149190611f47565b60405180910390fd5b5060008385611e2c9190612a4f565b9050809150509392505050565b6000611e7b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110fd565b905092915050565b6000819050919050565b611e9681611e83565b82525050565b6000602082019050611eb16000830184611e8d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ef1578082015181840152602081019050611ed6565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f1982611eb7565b611f238185611ec2565b9350611f33818560208601611ed3565b611f3c81611efd565b840191505092915050565b60006020820190508181036000830152611f618184611f0e565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f9e82611f73565b9050919050565b611fae81611f93565b8114611fb957600080fd5b50565b600081359050611fcb81611fa5565b92915050565b611fda81611e83565b8114611fe557600080fd5b50565b600081359050611ff781611fd1565b92915050565b6000806040838503121561201457612013611f69565b5b600061202285828601611fbc565b925050602061203385828601611fe8565b9150509250929050565b60008115159050919050565b6120528161203d565b82525050565b600060208201905061206d6000830184612049565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261209857612097612073565b5b8235905067ffffffffffffffff8111156120b5576120b4612078565b5b6020830191508360018202830111156120d1576120d061207d565b5b9250929050565b600080600080600080606087890312156120f5576120f4611f69565b5b600087013567ffffffffffffffff81111561211357612112611f6e565b5b61211f89828a01612082565b9650965050602087013567ffffffffffffffff81111561214257612141611f6e565b5b61214e89828a01612082565b9450945050604087013567ffffffffffffffff81111561217157612170611f6e565b5b61217d89828a01612082565b92509250509295509295509295565b6000806000606084860312156121a5576121a4611f69565b5b60006121b386828701611fbc565b93505060206121c486828701611fbc565b92505060406121d586828701611fe8565b9150509250925092565b6000602082840312156121f5576121f4611f69565b5b600061220384828501611fbc565b91505092915050565b600060ff82169050919050565b6122228161220c565b82525050565b600060208201905061223d6000830184612219565b92915050565b60006020828403121561225957612258611f69565b5b600061226784828501611fe8565b91505092915050565b6122798161203d565b811461228457600080fd5b50565b60008135905061229681612270565b92915050565b6000602082840312156122b2576122b1611f69565b5b60006122c084828501612287565b91505092915050565b6122d281611f93565b82525050565b60006020820190506122ed60008301846122c9565b92915050565b6000806040838503121561230a57612309611f69565b5b600061231885828601611fbc565b925050602061232985828601611fbc565b9150509250929050565b6000819050919050565b600061235861235361234e84611f73565b612333565b611f73565b9050919050565b600061236a8261233d565b9050919050565b600061237c8261235f565b9050919050565b61238c81612371565b82525050565b60006020820190506123a76000830184612383565b92915050565b7f4f6e6c7920646576656c6f7065722063616e2061646a75737420736f6369616c60008201527f206c696e6b730000000000000000000000000000000000000000000000000000602082015250565b6000612409602683611ec2565b9150612414826123ad565b604082019050919050565b60006020820190508181036000830152612438816123fc565b9050919050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806124c057607f821691505b6020821081036124d3576124d2612479565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261253b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826124fe565b61254586836124fe565b95508019841693508086168417925050509392505050565b600061257861257361256e84611e83565b612333565b611e83565b9050919050565b6000819050919050565b6125928361255d565b6125a661259e8261257f565b84845461250b565b825550505050565b600090565b6125bb6125ae565b6125c6818484612589565b505050565b5b818110156125ea576125df6000826125b3565b6001810190506125cc565b5050565b601f82111561262f57612600816124d9565b612609846124ee565b81016020851015612618578190505b61262c612624856124ee565b8301826125cb565b50505b505050565b600082821c905092915050565b600061265260001984600802612634565b1980831691505092915050565b600061266b8383612641565b9150826002028217905092915050565b612685838361243f565b67ffffffffffffffff81111561269e5761269d61244a565b5b6126a882546124a8565b6126b38282856125ee565b6000601f8311600181146126e257600084156126d0578287013590505b6126da858261265f565b865550612742565b601f1984166126f0866124d9565b60005b82811015612718578489013582556001820191506020850194506020810190506126f3565b868310156127355784890135612731601f891682612641565b8355505b6001600288020188555050505b50505050505050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612781600683611ec2565b915061278c8261274b565b602082019050919050565b600060208201905081810360008301526127b081612774565b9050919050565b7f4d757374206b6565702066656573206174203825206f72206c65737300000000600082015250565b60006127ed601c83611ec2565b91506127f8826127b7565b602082019050919050565b6000602082019050818103600083015261281c816127e0565b9050919050565b7f4f6e6c7920646576656c6f7065722063616e20746f67676c652066656573206f60008201527f6e202f206f666600000000000000000000000000000000000000000000000000602082015250565b600061287f602783611ec2565b915061288a82612823565b604082019050919050565b600060208201905081810360008301526128ae81612872565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128ef82611e83565b91506128fa83611e83565b9250828203905081811115612912576129116128b5565b5b92915050565b600061292382611e83565b915061292e83611e83565b9250828201905080821115612946576129456128b5565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b60006129a8602583611ec2565b91506129b38261294c565b604082019050919050565b600060208201905081810360008301526129d78161299b565b9050919050565b60006129e982611e83565b91506129f483611e83565b9250828202612a0281611e83565b91508282048414831517612a1957612a186128b5565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a5a82611e83565b9150612a6583611e83565b925082612a7557612a74612a20565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612adc602183611ec2565b9150612ae782612a80565b604082019050919050565b60006020820190508181036000830152612b0b81612acf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612b5081611fa5565b92915050565b600060208284031215612b6c57612b6b611f69565b5b6000612b7a84828501612b41565b91505092915050565b6000819050919050565b6000612ba8612ba3612b9e84612b83565b612333565b611e83565b9050919050565b612bb881612b8d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612bf381611f93565b82525050565b6000612c058383612bea565b60208301905092915050565b6000602082019050919050565b6000612c2982612bbe565b612c338185612bc9565b9350612c3e83612bda565b8060005b83811015612c6f578151612c568882612bf9565b9750612c6183612c11565b925050600181019050612c42565b5085935050505092915050565b600060a082019050612c916000830188611e8d565b612c9e6020830187612baf565b8181036040830152612cb08186612c1e565b9050612cbf60608301856122c9565b612ccc6080830184611e8d565b9695505050505050565b600081905092915050565b50565b6000612cf1600083612cd6565b9150612cfc82612ce1565b600082019050919050565b6000612d1282612ce4565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000612d52601e83611ec2565b9150612d5d82612d1c565b602082019050919050565b60006020820190508181036000830152612d8181612d45565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612dbe601b83611ec2565b9150612dc982612d88565b602082019050919050565b60006020820190508181036000830152612ded81612db1565b905091905056fea264697066735822122093b3ec40e16e7142aafa99ee6c4fdf33e4d02954cfb131330969709c753832e664736f6c63430008130033

Deployed Bytecode Sourcemap

4662:8068:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5708:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6517:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7712:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11849:473;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6619:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8164:424;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2654:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6729:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8784:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8959:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5202:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5634:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7037:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2765:131;;;;;;;;;;;;;:::i;:::-;;12452:116;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8596:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5533:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6937:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6831:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5671:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5608:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7968:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12576:114;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7516:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12330:114;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5577:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5708:56;;;;:::o;6517:94::-;6565:13;6598:5;;;;;;;;;;;;;;;;;6591:12;;6517:94;:::o;7712:248::-;7814:4;7871:6;7836:11;:23;7848:10;7836:23;;;;;;;;;;;;;;;:32;7860:7;7836:32;;;;;;;;;;;;;;;:41;;;;7914:7;7893:37;;7902:10;7893:37;;;7923:6;7893:37;;;;;;:::i;:::-;;;;;;;;7948:4;7941:11;;7712:248;;;;:::o;11849:473::-;12074:11;12060:25;;:10;:25;;;12038:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;12186:20;;12164:19;:42;;;;;;;:::i;:::-;;12240:21;;12217:20;:44;;;;;;;:::i;:::-;;12294:20;;12272:19;:42;;;;;;;:::i;:::-;;11849:473;;;;;;:::o;6619:102::-;6674:7;6701:12;;6694:19;;6619:102;:::o;8164:424::-;8298:4;8354:17;8319:11;:19;8331:6;8319:19;;;;;;;;;;;;;;;:31;8339:10;8319:31;;;;;;;;;;;;;;;;:52;8315:206;;8422:87;8476:6;8422:87;;;;;;;;;;;;;;;;;:11;:19;8434:6;8422:19;;;;;;;;;;;;;;;:31;8442:10;8422:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;8388:11;:19;8400:6;8388:19;;;;;;;;;;;;;;;:31;8408:10;8388:31;;;;;;;;;;;;;;;:121;;;;8315:206;8540:40;8554:6;8562:9;8573:6;8540:13;:40::i;:::-;8533:47;;8164:424;;;;;:::o;2654:103::-;2709:4;2744:5;;;;;;;;;;;2733:16;;:7;:16;;;2726:23;;2654:103;;;:::o;6729:94::-;6781:5;5133:1;6799:16;;6729:94;:::o;8784:167::-;2596:19;2604:10;2596:7;:19::i;:::-;2588:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8878:1:::1;8865:9;:14;;8857:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;8934:9;8923:8;:20;;;;8784:167:::0;:::o;8959:257::-;2596:19;2604:10;2596:7;:19::i;:::-;2588:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9051:3:::1;9036:11;:18:::0;9032:177:::1;;9090:17;9071:16;:36;;;;9032:177;;;9159:38;9193:3;9159:29;9176:11;9159:12;;:16;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;9140:16;:57;;;;9032:177;8959:257:::0;:::o;5202:65::-;;;;:::o;5634:30::-;;;;;;;;;;;;;:::o;7037:119::-;7103:7;7130:9;:18;7140:7;7130:18;;;;;;;;;;;;;;;;7123:25;;7037:119;;;:::o;2765:131::-;2596:19;2604:10;2596:7;:19::i;:::-;2588:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2838:1:::1;2822:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2856:32;2885:1;2856:32;;;;;;:::i;:::-;;;;;;;;2765:131::o:0;12452:116::-;12507:13;12540:20;12533:27;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12452:116;:::o;8596:180::-;8676:11;8662:25;;:10;:25;;;8654:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;8756:12;8742:11;;:26;;;;;;;;;;;;;;;;;;8596:180;:::o;5533:37::-;;;;;;;;;;;;;:::o;6937:92::-;6989:7;7016:5;;;;;;;;;;;7009:12;;6937:92;:::o;6831:98::-;6881:13;6914:7;;;;;;;;;;;;;;;;;6907:14;;6831:98;:::o;5671:30::-;;;;;;;;;;;;;:::o;5608:19::-;;;;;;;;;;;;;:::o;7968:188::-;8075:4;8104:44;8118:10;8130:9;8141:6;8104:13;:44::i;:::-;8097:51;;7968:188;;;;:::o;12576:114::-;12630:13;12663:19;12656:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12576:114;:::o;7516:188::-;7636:7;7668:11;:19;7680:6;7668:19;;;;;;;;;;;;;;;:28;7688:7;7668:28;;;;;;;;;;;;;;;;7661:35;;7516:188;;;;:::o;12330:114::-;12384:13;12417:19;12410:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12330:114;:::o;5577:24::-;;;;;;;;;;;;;:::o;521:224::-;641:7;674:1;669;:6;;677:12;661:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;701:9;717:1;713;:5;;;;:::i;:::-;701:17;;736:1;729:8;;;521:224;;;;;:::o;10383:1007::-;10509:4;10530:6;;;;;;;;;;;10526:87;;;10560:41;10575:6;10583:9;10594:6;10560:14;:41::i;:::-;10553:48;;;;10526:87;10642:4;;;;;;;;;;;10629:17;;:9;:17;;;;:38;;;;;10663:4;;;;;;;;;;;10650:17;;:9;:17;;;;10629:38;10625:270;;;10710:15;:26;10726:9;10710:26;;;;;;;;;;;;;;;;;;;;;;;;;:100;;;;10794:16;;10784:6;10761:9;:20;10771:9;10761:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;10710:100;10684:199;;;;;;;;;;;;:::i;:::-;;;;;;;;;10625:270;10911:16;:14;:16::i;:::-;10907:59;;;10944:10;:8;:10::i;:::-;10907:59;10998:90;11034:6;10998:90;;;;;;;;;;;;;;;;;:9;:17;11008:6;10998:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;10978:9;:17;10988:6;10978:17;;;;;;;;;;;;;;;:110;;;;11101:22;11126:11;;;;;;;;;;;:36;;;;;11141:21;11155:6;11141:13;:21::i;:::-;11126:36;:97;;11217:6;11126:97;;;11178:23;11186:6;11194;11178:7;:23::i;:::-;11126:97;11101:122;;11259:40;11284:14;11259:9;:20;11269:9;11259:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11236:9;:20;11246:9;11236:20;;;;;;;;;;;;;;;:63;;;;11334:9;11317:43;;11326:6;11317:43;;;11345:14;11317:43;;;;;;:::i;:::-;;;;;;;;11378:4;11371:11;;;10383:1007;;;;;;:::o;753:246::-;811:7;840:1;835;:6;831:47;;865:1;858:8;;;;831:47;888:9;904:1;900;:5;;;;:::i;:::-;888:17;;933:1;928;924;:5;;;;:::i;:::-;:10;916:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;990:1;983:8;;;753:246;;;;;:::o;1007:132::-;1065:7;1092:39;1096:1;1099;1092:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1085:46;;1007:132;;;;:::o;11398:401::-;11525:4;11562:90;11598:6;11562:90;;;;;;;;;;;;;;;;;:9;:17;11572:6;11562:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;11542:9;:17;11552:6;11542:17;;;;;;;;;;;;;;;:110;;;;11686:32;11711:6;11686:9;:20;11696:9;11686:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11663:9;:20;11673:9;11663:20;;;;;;;;;;;;;;;:55;;;;11751:9;11734:35;;11743:6;11734:35;;;11762:6;11734:35;;;;;;:::i;:::-;;;;;;;;11787:4;11780:11;;11398:401;;;;;:::o;7164:222::-;7213:4;7264;;;;;;;;;;;7250:18;;:10;:18;;;;:42;;;;;7286:6;;;;;;;;;;;7285:7;7250:42;:70;;;;;7309:11;;;;;;;;;;;7250:70;:128;;;;;7365:13;;7337:9;:24;7355:4;7337:24;;;;;;;;;;;;;;;;:41;;7250:128;7230:148;;7164:222;:::o;9621:754::-;5829:4;5820:6;;:13;;;;;;;;;;;;;;;;;;9670:28:::1;9701:13;;9670:44;;9725:20;9748;9725:43;;9781:21;9819:1;9805:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9781:40;;9850:4;9832;9837:1;9832:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9876:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9866:4;9871:1;9866:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9902:6;;;;;;;;;;;:57;;;9974:12;10001:1;10017:4;10044;10064:15;9902:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10103:26;10132:21;10103:50;;10181:21;10251:9;;;;;;;;;;;10243:23;;10274:18;10243:54;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10166:131;;;10316:16;10308:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;9659:716;;;;;5865:5:::0;5856:6;;:14;;;;;;;;;;;;;;;;;;9621:754::o;7394:114::-;7456:4;7481:11;:19;7493:6;7481:19;;;;;;;;;;;;;;;;;;;;;;;;;7480:20;7473:27;;7394:114;;;:::o;9272:341::-;9357:7;9382:17;9402:29;9427:3;9402:20;9413:8;;9402:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;9382:49;;9469:39;9498:9;9469;:24;9487:4;9469:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9442:9;:24;9460:4;9442:24;;;;;;;;;;;;;;;:66;;;;9549:4;9524:42;;9533:6;9524:42;;;9556:9;9524:42;;;;;;:::i;:::-;;;;;;;;9584:21;9595:9;9584:6;:10;;:21;;;;:::i;:::-;9577:28;;;9272:341;;;;:::o;190:179::-;248:7;268:9;284:1;280;:5;;;;:::i;:::-;268:17;;309:1;304;:6;;296:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;360:1;353:8;;;190:179;;;;:::o;1147:223::-;1267:7;1299:1;1295;:5;1302:12;1287:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1326:9;1342:1;1338;:5;;;;:::i;:::-;1326:17;;1361:1;1354:8;;;1147:223;;;;;:::o;377:136::-;435:7;462:43;466:1;469;462:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;455:50;;377:136;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;1988:117;2097:1;2094;2087:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:117::-;3907:1;3904;3897:12;3921:117;4030:1;4027;4020:12;4044:117;4153:1;4150;4143:12;4181:553;4239:8;4249:6;4299:3;4292:4;4284:6;4280:17;4276:27;4266:122;;4307:79;;:::i;:::-;4266:122;4420:6;4407:20;4397:30;;4450:18;4442:6;4439:30;4436:117;;;4472:79;;:::i;:::-;4436:117;4586:4;4578:6;4574:17;4562:29;;4640:3;4632:4;4624:6;4620:17;4610:8;4606:32;4603:41;4600:128;;;4647:79;;:::i;:::-;4600:128;4181:553;;;;;:::o;4740:1219::-;4853:6;4861;4869;4877;4885;4893;4942:2;4930:9;4921:7;4917:23;4913:32;4910:119;;;4948:79;;:::i;:::-;4910:119;5096:1;5085:9;5081:17;5068:31;5126:18;5118:6;5115:30;5112:117;;;5148:79;;:::i;:::-;5112:117;5261:65;5318:7;5309:6;5298:9;5294:22;5261:65;:::i;:::-;5243:83;;;;5039:297;5403:2;5392:9;5388:18;5375:32;5434:18;5426:6;5423:30;5420:117;;;5456:79;;:::i;:::-;5420:117;5569:65;5626:7;5617:6;5606:9;5602:22;5569:65;:::i;:::-;5551:83;;;;5346:298;5711:2;5700:9;5696:18;5683:32;5742:18;5734:6;5731:30;5728:117;;;5764:79;;:::i;:::-;5728:117;5877:65;5934:7;5925:6;5914:9;5910:22;5877:65;:::i;:::-;5859:83;;;;5654:298;4740:1219;;;;;;;;:::o;5965:619::-;6042:6;6050;6058;6107:2;6095:9;6086:7;6082:23;6078:32;6075:119;;;6113:79;;:::i;:::-;6075:119;6233:1;6258:53;6303:7;6294:6;6283:9;6279:22;6258:53;:::i;:::-;6248:63;;6204:117;6360:2;6386:53;6431:7;6422:6;6411:9;6407:22;6386:53;:::i;:::-;6376:63;;6331:118;6488:2;6514:53;6559:7;6550:6;6539:9;6535:22;6514:53;:::i;:::-;6504:63;;6459:118;5965:619;;;;;:::o;6590:329::-;6649:6;6698:2;6686:9;6677:7;6673:23;6669:32;6666:119;;;6704:79;;:::i;:::-;6666:119;6824:1;6849:53;6894:7;6885:6;6874:9;6870:22;6849:53;:::i;:::-;6839:63;;6795:117;6590:329;;;;:::o;6925:86::-;6960:7;7000:4;6993:5;6989:16;6978:27;;6925:86;;;:::o;7017:112::-;7100:22;7116:5;7100:22;:::i;:::-;7095:3;7088:35;7017:112;;:::o;7135:214::-;7224:4;7262:2;7251:9;7247:18;7239:26;;7275:67;7339:1;7328:9;7324:17;7315:6;7275:67;:::i;:::-;7135:214;;;;:::o;7355:329::-;7414:6;7463:2;7451:9;7442:7;7438:23;7434:32;7431:119;;;7469:79;;:::i;:::-;7431:119;7589:1;7614:53;7659:7;7650:6;7639:9;7635:22;7614:53;:::i;:::-;7604:63;;7560:117;7355:329;;;;:::o;7690:116::-;7760:21;7775:5;7760:21;:::i;:::-;7753:5;7750:32;7740:60;;7796:1;7793;7786:12;7740:60;7690:116;:::o;7812:133::-;7855:5;7893:6;7880:20;7871:29;;7909:30;7933:5;7909:30;:::i;:::-;7812:133;;;;:::o;7951:323::-;8007:6;8056:2;8044:9;8035:7;8031:23;8027:32;8024:119;;;8062:79;;:::i;:::-;8024:119;8182:1;8207:50;8249:7;8240:6;8229:9;8225:22;8207:50;:::i;:::-;8197:60;;8153:114;7951:323;;;;:::o;8280:118::-;8367:24;8385:5;8367:24;:::i;:::-;8362:3;8355:37;8280:118;;:::o;8404:222::-;8497:4;8535:2;8524:9;8520:18;8512:26;;8548:71;8616:1;8605:9;8601:17;8592:6;8548:71;:::i;:::-;8404:222;;;;:::o;8632:474::-;8700:6;8708;8757:2;8745:9;8736:7;8732:23;8728:32;8725:119;;;8763:79;;:::i;:::-;8725:119;8883:1;8908:53;8953:7;8944:6;8933:9;8929:22;8908:53;:::i;:::-;8898:63;;8854:117;9010:2;9036:53;9081:7;9072:6;9061:9;9057:22;9036:53;:::i;:::-;9026:63;;8981:118;8632:474;;;;;:::o;9112:60::-;9140:3;9161:5;9154:12;;9112:60;;;:::o;9178:142::-;9228:9;9261:53;9279:34;9288:24;9306:5;9288:24;:::i;:::-;9279:34;:::i;:::-;9261:53;:::i;:::-;9248:66;;9178:142;;;:::o;9326:126::-;9376:9;9409:37;9440:5;9409:37;:::i;:::-;9396:50;;9326:126;;;:::o;9458:144::-;9526:9;9559:37;9590:5;9559:37;:::i;:::-;9546:50;;9458:144;;;:::o;9608:167::-;9713:55;9762:5;9713:55;:::i;:::-;9708:3;9701:68;9608:167;;:::o;9781:258::-;9892:4;9930:2;9919:9;9915:18;9907:26;;9943:89;10029:1;10018:9;10014:17;10005:6;9943:89;:::i;:::-;9781:258;;;;:::o;10045:225::-;10185:34;10181:1;10173:6;10169:14;10162:58;10254:8;10249:2;10241:6;10237:15;10230:33;10045:225;:::o;10276:366::-;10418:3;10439:67;10503:2;10498:3;10439:67;:::i;:::-;10432:74;;10515:93;10604:3;10515:93;:::i;:::-;10633:2;10628:3;10624:12;10617:19;;10276:366;;;:::o;10648:419::-;10814:4;10852:2;10841:9;10837:18;10829:26;;10901:9;10895:4;10891:20;10887:1;10876:9;10872:17;10865:47;10929:131;11055:4;10929:131;:::i;:::-;10921:139;;10648:419;;;:::o;11073:97::-;11132:6;11160:3;11150:13;;11073:97;;;;:::o;11176:180::-;11224:77;11221:1;11214:88;11321:4;11318:1;11311:15;11345:4;11342:1;11335:15;11362:180;11410:77;11407:1;11400:88;11507:4;11504:1;11497:15;11531:4;11528:1;11521:15;11548:320;11592:6;11629:1;11623:4;11619:12;11609:22;;11676:1;11670:4;11666:12;11697:18;11687:81;;11753:4;11745:6;11741:17;11731:27;;11687:81;11815:2;11807:6;11804:14;11784:18;11781:38;11778:84;;11834:18;;:::i;:::-;11778:84;11599:269;11548:320;;;:::o;11874:141::-;11923:4;11946:3;11938:11;;11969:3;11966:1;11959:14;12003:4;12000:1;11990:18;11982:26;;11874:141;;;:::o;12021:93::-;12058:6;12105:2;12100;12093:5;12089:14;12085:23;12075:33;;12021:93;;;:::o;12120:107::-;12164:8;12214:5;12208:4;12204:16;12183:37;;12120:107;;;;:::o;12233:393::-;12302:6;12352:1;12340:10;12336:18;12375:97;12405:66;12394:9;12375:97;:::i;:::-;12493:39;12523:8;12512:9;12493:39;:::i;:::-;12481:51;;12565:4;12561:9;12554:5;12550:21;12541:30;;12614:4;12604:8;12600:19;12593:5;12590:30;12580:40;;12309:317;;12233:393;;;;;:::o;12632:142::-;12682:9;12715:53;12733:34;12742:24;12760:5;12742:24;:::i;:::-;12733:34;:::i;:::-;12715:53;:::i;:::-;12702:66;;12632:142;;;:::o;12780:75::-;12823:3;12844:5;12837:12;;12780:75;;;:::o;12861:269::-;12971:39;13002:7;12971:39;:::i;:::-;13032:91;13081:41;13105:16;13081:41;:::i;:::-;13073:6;13066:4;13060:11;13032:91;:::i;:::-;13026:4;13019:105;12937:193;12861:269;;;:::o;13136:73::-;13181:3;13136:73;:::o;13215:189::-;13292:32;;:::i;:::-;13333:65;13391:6;13383;13377:4;13333:65;:::i;:::-;13268:136;13215:189;;:::o;13410:186::-;13470:120;13487:3;13480:5;13477:14;13470:120;;;13541:39;13578:1;13571:5;13541:39;:::i;:::-;13514:1;13507:5;13503:13;13494:22;;13470:120;;;13410:186;;:::o;13602:543::-;13703:2;13698:3;13695:11;13692:446;;;13737:38;13769:5;13737:38;:::i;:::-;13821:29;13839:10;13821:29;:::i;:::-;13811:8;13807:44;14004:2;13992:10;13989:18;13986:49;;;14025:8;14010:23;;13986:49;14048:80;14104:22;14122:3;14104:22;:::i;:::-;14094:8;14090:37;14077:11;14048:80;:::i;:::-;13707:431;;13692:446;13602:543;;;:::o;14151:117::-;14205:8;14255:5;14249:4;14245:16;14224:37;;14151:117;;;;:::o;14274:169::-;14318:6;14351:51;14399:1;14395:6;14387:5;14384:1;14380:13;14351:51;:::i;:::-;14347:56;14432:4;14426;14422:15;14412:25;;14325:118;14274:169;;;;:::o;14448:295::-;14524:4;14670:29;14695:3;14689:4;14670:29;:::i;:::-;14662:37;;14732:3;14729:1;14725:11;14719:4;14716:21;14708:29;;14448:295;;;;:::o;14748:1403::-;14872:44;14912:3;14907;14872:44;:::i;:::-;14981:18;14973:6;14970:30;14967:56;;;15003:18;;:::i;:::-;14967:56;15047:38;15079:4;15073:11;15047:38;:::i;:::-;15132:67;15192:6;15184;15178:4;15132:67;:::i;:::-;15226:1;15255:2;15247:6;15244:14;15272:1;15267:632;;;;15943:1;15960:6;15957:84;;;16016:9;16011:3;16007:19;15994:33;15985:42;;15957:84;16067:67;16127:6;16120:5;16067:67;:::i;:::-;16061:4;16054:81;15916:229;15237:908;;15267:632;15319:4;15315:9;15307:6;15303:22;15353:37;15385:4;15353:37;:::i;:::-;15412:1;15426:215;15440:7;15437:1;15434:14;15426:215;;;15526:9;15521:3;15517:19;15504:33;15496:6;15489:49;15577:1;15569:6;15565:14;15555:24;;15624:2;15613:9;15609:18;15596:31;;15463:4;15460:1;15456:12;15451:17;;15426:215;;;15669:6;15660:7;15657:19;15654:186;;;15734:9;15729:3;15725:19;15712:33;15777:48;15819:4;15811:6;15807:17;15796:9;15777:48;:::i;:::-;15769:6;15762:64;15677:163;15654:186;15886:1;15882;15874:6;15870:14;15866:22;15860:4;15853:36;15274:625;;;15237:908;;14847:1304;;;14748:1403;;;:::o;16157:156::-;16297:8;16293:1;16285:6;16281:14;16274:32;16157:156;:::o;16319:365::-;16461:3;16482:66;16546:1;16541:3;16482:66;:::i;:::-;16475:73;;16557:93;16646:3;16557:93;:::i;:::-;16675:2;16670:3;16666:12;16659:19;;16319:365;;;:::o;16690:419::-;16856:4;16894:2;16883:9;16879:18;16871:26;;16943:9;16937:4;16933:20;16929:1;16918:9;16914:17;16907:47;16971:131;17097:4;16971:131;:::i;:::-;16963:139;;16690:419;;;:::o;17115:178::-;17255:30;17251:1;17243:6;17239:14;17232:54;17115:178;:::o;17299:366::-;17441:3;17462:67;17526:2;17521:3;17462:67;:::i;:::-;17455:74;;17538:93;17627:3;17538:93;:::i;:::-;17656:2;17651:3;17647:12;17640:19;;17299:366;;;:::o;17671:419::-;17837:4;17875:2;17864:9;17860:18;17852:26;;17924:9;17918:4;17914:20;17910:1;17899:9;17895:17;17888:47;17952:131;18078:4;17952:131;:::i;:::-;17944:139;;17671:419;;;:::o;18096:226::-;18236:34;18232:1;18224:6;18220:14;18213:58;18305:9;18300:2;18292:6;18288:15;18281:34;18096:226;:::o;18328:366::-;18470:3;18491:67;18555:2;18550:3;18491:67;:::i;:::-;18484:74;;18567:93;18656:3;18567:93;:::i;:::-;18685:2;18680:3;18676:12;18669:19;;18328:366;;;:::o;18700:419::-;18866:4;18904:2;18893:9;18889:18;18881:26;;18953:9;18947:4;18943:20;18939:1;18928:9;18924:17;18917:47;18981:131;19107:4;18981:131;:::i;:::-;18973:139;;18700:419;;;:::o;19125:180::-;19173:77;19170:1;19163:88;19270:4;19267:1;19260:15;19294:4;19291:1;19284:15;19311:194;19351:4;19371:20;19389:1;19371:20;:::i;:::-;19366:25;;19405:20;19423:1;19405:20;:::i;:::-;19400:25;;19449:1;19446;19442:9;19434:17;;19473:1;19467:4;19464:11;19461:37;;;19478:18;;:::i;:::-;19461:37;19311:194;;;;:::o;19511:191::-;19551:3;19570:20;19588:1;19570:20;:::i;:::-;19565:25;;19604:20;19622:1;19604:20;:::i;:::-;19599:25;;19647:1;19644;19640:9;19633:16;;19668:3;19665:1;19662:10;19659:36;;;19675:18;;:::i;:::-;19659:36;19511:191;;;;:::o;19708:224::-;19848:34;19844:1;19836:6;19832:14;19825:58;19917:7;19912:2;19904:6;19900:15;19893:32;19708:224;:::o;19938:366::-;20080:3;20101:67;20165:2;20160:3;20101:67;:::i;:::-;20094:74;;20177:93;20266:3;20177:93;:::i;:::-;20295:2;20290:3;20286:12;20279:19;;19938:366;;;:::o;20310:419::-;20476:4;20514:2;20503:9;20499:18;20491:26;;20563:9;20557:4;20553:20;20549:1;20538:9;20534:17;20527:47;20591:131;20717:4;20591:131;:::i;:::-;20583:139;;20310:419;;;:::o;20735:410::-;20775:7;20798:20;20816:1;20798:20;:::i;:::-;20793:25;;20832:20;20850:1;20832:20;:::i;:::-;20827:25;;20887:1;20884;20880:9;20909:30;20927:11;20909:30;:::i;:::-;20898:41;;21088:1;21079:7;21075:15;21072:1;21069:22;21049:1;21042:9;21022:83;20999:139;;21118:18;;:::i;:::-;20999:139;20783:362;20735:410;;;;:::o;21151:180::-;21199:77;21196:1;21189:88;21296:4;21293:1;21286:15;21320:4;21317:1;21310:15;21337:185;21377:1;21394:20;21412:1;21394:20;:::i;:::-;21389:25;;21428:20;21446:1;21428:20;:::i;:::-;21423:25;;21467:1;21457:35;;21472:18;;:::i;:::-;21457:35;21514:1;21511;21507:9;21502:14;;21337:185;;;;:::o;21528:220::-;21668:34;21664:1;21656:6;21652:14;21645:58;21737:3;21732:2;21724:6;21720:15;21713:28;21528:220;:::o;21754:366::-;21896:3;21917:67;21981:2;21976:3;21917:67;:::i;:::-;21910:74;;21993:93;22082:3;21993:93;:::i;:::-;22111:2;22106:3;22102:12;22095:19;;21754:366;;;:::o;22126:419::-;22292:4;22330:2;22319:9;22315:18;22307:26;;22379:9;22373:4;22369:20;22365:1;22354:9;22350:17;22343:47;22407:131;22533:4;22407:131;:::i;:::-;22399:139;;22126:419;;;:::o;22551:180::-;22599:77;22596:1;22589:88;22696:4;22693:1;22686:15;22720:4;22717:1;22710:15;22737:143;22794:5;22825:6;22819:13;22810:22;;22841:33;22868:5;22841:33;:::i;:::-;22737:143;;;;:::o;22886:351::-;22956:6;23005:2;22993:9;22984:7;22980:23;22976:32;22973:119;;;23011:79;;:::i;:::-;22973:119;23131:1;23156:64;23212:7;23203:6;23192:9;23188:22;23156:64;:::i;:::-;23146:74;;23102:128;22886:351;;;;:::o;23243:85::-;23288:7;23317:5;23306:16;;23243:85;;;:::o;23334:158::-;23392:9;23425:61;23443:42;23452:32;23478:5;23452:32;:::i;:::-;23443:42;:::i;:::-;23425:61;:::i;:::-;23412:74;;23334:158;;;:::o;23498:147::-;23593:45;23632:5;23593:45;:::i;:::-;23588:3;23581:58;23498:147;;:::o;23651:114::-;23718:6;23752:5;23746:12;23736:22;;23651:114;;;:::o;23771:184::-;23870:11;23904:6;23899:3;23892:19;23944:4;23939:3;23935:14;23920:29;;23771:184;;;;:::o;23961:132::-;24028:4;24051:3;24043:11;;24081:4;24076:3;24072:14;24064:22;;23961:132;;;:::o;24099:108::-;24176:24;24194:5;24176:24;:::i;:::-;24171:3;24164:37;24099:108;;:::o;24213:179::-;24282:10;24303:46;24345:3;24337:6;24303:46;:::i;:::-;24381:4;24376:3;24372:14;24358:28;;24213:179;;;;:::o;24398:113::-;24468:4;24500;24495:3;24491:14;24483:22;;24398:113;;;:::o;24547:732::-;24666:3;24695:54;24743:5;24695:54;:::i;:::-;24765:86;24844:6;24839:3;24765:86;:::i;:::-;24758:93;;24875:56;24925:5;24875:56;:::i;:::-;24954:7;24985:1;24970:284;24995:6;24992:1;24989:13;24970:284;;;25071:6;25065:13;25098:63;25157:3;25142:13;25098:63;:::i;:::-;25091:70;;25184:60;25237:6;25184:60;:::i;:::-;25174:70;;25030:224;25017:1;25014;25010:9;25005:14;;24970:284;;;24974:14;25270:3;25263:10;;24671:608;;;24547:732;;;;:::o;25285:831::-;25548:4;25586:3;25575:9;25571:19;25563:27;;25600:71;25668:1;25657:9;25653:17;25644:6;25600:71;:::i;:::-;25681:80;25757:2;25746:9;25742:18;25733:6;25681:80;:::i;:::-;25808:9;25802:4;25798:20;25793:2;25782:9;25778:18;25771:48;25836:108;25939:4;25930:6;25836:108;:::i;:::-;25828:116;;25954:72;26022:2;26011:9;26007:18;25998:6;25954:72;:::i;:::-;26036:73;26104:3;26093:9;26089:19;26080:6;26036:73;:::i;:::-;25285:831;;;;;;;;:::o;26122:147::-;26223:11;26260:3;26245:18;;26122:147;;;;:::o;26275:114::-;;:::o;26395:398::-;26554:3;26575:83;26656:1;26651:3;26575:83;:::i;:::-;26568:90;;26667:93;26756:3;26667:93;:::i;:::-;26785:1;26780:3;26776:11;26769:18;;26395:398;;;:::o;26799:379::-;26983:3;27005:147;27148:3;27005:147;:::i;:::-;26998:154;;27169:3;27162:10;;26799:379;;;:::o;27184:180::-;27324:32;27320:1;27312:6;27308:14;27301:56;27184:180;:::o;27370:366::-;27512:3;27533:67;27597:2;27592:3;27533:67;:::i;:::-;27526:74;;27609:93;27698:3;27609:93;:::i;:::-;27727:2;27722:3;27718:12;27711:19;;27370:366;;;:::o;27742:419::-;27908:4;27946:2;27935:9;27931:18;27923:26;;27995:9;27989:4;27985:20;27981:1;27970:9;27966:17;27959:47;28023:131;28149:4;28023:131;:::i;:::-;28015:139;;27742:419;;;:::o;28167:177::-;28307:29;28303:1;28295:6;28291:14;28284:53;28167:177;:::o;28350:366::-;28492:3;28513:67;28577:2;28572:3;28513:67;:::i;:::-;28506:74;;28589:93;28678:3;28589:93;:::i;:::-;28707:2;28702:3;28698:12;28691:19;;28350:366;;;:::o;28722:419::-;28888:4;28926:2;28915:9;28911:18;28903:26;;28975:9;28969:4;28965:20;28961:1;28950:9;28946:17;28939:47;29003:131;29129:4;29003:131;:::i;:::-;28995:139;;28722:419;;;:::o

Swarm Source

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