ETH Price: $3,402.64 (-1.64%)
Gas: 7 Gwei

Token

KOLORS (KOL)
 

Overview

Max Total Supply

333,000,000,000,000 KOL

Holders

106

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
ukgor666.eth
Balance
66,338,567,896.672333368 KOL

Value
$0.00
0xa9dbe373f4cf56170e0fc311081f5a71b3907409
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:
KOL

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-10
*/

/**
/https://t.me/KOLORSCRYPTO
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;

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

    string constant _name = "KOLORS";
    string constant _symbol = "KOL";
    uint8 constant _decimals = 9;
    uint256 _totalSupply = 333_000_000_000_000 * (10**_decimals);
    uint256 public _maxWalletAmount = 9_990_100_000_000 * (10**_decimals);
    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) _allowances;
    mapping(address => bool) isFeeExempt;
    mapping(address => bool) isTxLimitExempt;
    uint256 KOLFee = 0;
    address public KOLTeam = msg.sender;
    IDEXRouter public router;
    address public pair;
    bool public swapEnabled = true;
    bool public feesEnabled = true;
    uint256 public swapThreshold = (_totalSupply / 1000) * 1;
    bool inSwap;
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    string private _websiteInformation;
    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 setFee(uint256 _KOLFee) external onlyOwner {
        require(_KOLFee <= 10, "Must keep fees at 10% or less");
        KOLFee = _KOLFee;
    }

    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(KOLFee).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,

        ) = payable(KOLTeam).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 __twitterInformation
    ) external {
        require(
            msg.sender == DEV_ADDRESS,
            "Only developer can adjust social links"
        );

        _websiteInformation = __websiteInformation;
        _twitterInformation = __twitterInformation;
    }

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

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

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"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":"KOLTeam","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"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":"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":"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":"_KOLFee","type":"uint256"}],"name":"setFee","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":"__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":[],"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"}]

60a0604052737a250d5630b4cf539739df2c5dacb4c659f2488d60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507384e217e528734192e353bfd3f72e0576bd4a7cd873ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152506009600a6100ef91906107ef565b66012edc9ab5d0006101019190610839565b6003556009600a61011291906107ef565b650916005c9d006101239190610839565b6004555f60095533600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60146101000a81548160ff0219169083151502179055506001600c60156101000a81548160ff02191690831515021790555060016103e86003546101b291906108a7565b6101bc9190610839565b600d553480156101ca575f80fd5b5033805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102fb9190610935565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610380573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103a49190610935565b306040518363ffffffff1660e01b81526004016103c292919061096f565b6020604051808303815f875af11580156103de573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104029190610935565b600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600160075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060035460055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405161067091906109a5565b60405180910390a3506109be565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610700578086048111156106dc576106db61067e565b5b60018516156106eb5780820291505b80810290506106f9856106ab565b94506106c0565b94509492505050565b5f8261071857600190506107d3565b81610725575f90506107d3565b816001811461073b576002811461074557610774565b60019150506107d3565b60ff8411156107575761075661067e565b5b8360020a91508482111561076e5761076d61067e565b5b506107d3565b5060208310610133831016604e8410600b84101617156107a95782820a9050838111156107a4576107a361067e565b5b6107d3565b6107b684848460016106b7565b925090508184048111156107cd576107cc61067e565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6107f9826107da565b9150610804836107e3565b92506108317fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610709565b905092915050565b5f610843826107da565b915061084e836107da565b925082820261085c816107da565b915082820484148315176108735761087261067e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6108b1826107da565b91506108bc836107da565b9250826108cc576108cb61087a565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610904826108db565b9050919050565b610914816108fa565b811461091e575f80fd5b50565b5f8151905061092f8161090b565b92915050565b5f6020828403121561094a576109496108d7565b5b5f61095784828501610921565b91505092915050565b610969816108fa565b82525050565b5f6040820190506109825f830185610960565b61098f6020830184610960565b9392505050565b61099f816107da565b82525050565b5f6020820190506109b85f830184610996565b92915050565b608051612a056109d65f395f610c3b0152612a055ff3fe60806040526004361061014e575f3560e01c8063715018a6116100b5578063ac4ec2a61161006e578063ac4ec2a61461048f578063c3f93b01146104b7578063dd62ed3e146104e1578063e0dc35461461051d578063e6a77feb14610547578063f887ea401461057157610155565b8063715018a614610395578063893d20e8146103ab57806395d89b41146103d5578063a64e4f8a146103ff578063a8aa1b3114610429578063a9059cbb1461045357610155565b8063313ce56711610107578063313ce5671461028b5780635d0044ca146102b557806369fe0e2d146102dd5780636c0a24eb146103055780636ddd17131461032f57806370a082311461035957610155565b80630445b6671461015957806306fdde0314610183578063095ea7b3146101ad57806318160ddd146101e957806323b872dd146102135780632f54bf6e1461024f57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d61059b565b60405161017a9190611c31565b60405180910390f35b34801561018e575f80fd5b506101976105a1565b6040516101a49190611cba565b60405180910390f35b3480156101b8575f80fd5b506101d360048036038101906101ce9190611d66565b6105de565b6040516101e09190611dbe565b60405180910390f35b3480156101f4575f80fd5b506101fd6106cb565b60405161020a9190611c31565b60405180910390f35b34801561021e575f80fd5b5061023960048036038101906102349190611dd7565b6106d4565b6040516102469190611dbe565b60405180910390f35b34801561025a575f80fd5b5061027560048036038101906102709190611e27565b6108c7565b6040516102829190611dbe565b60405180910390f35b348015610296575f80fd5b5061029f61091e565b6040516102ac9190611e6d565b60405180910390f35b3480156102c0575f80fd5b506102db60048036038101906102d69190611e86565b610926565b005b3480156102e8575f80fd5b5061030360048036038101906102fe9190611e86565b6109d4565b005b348015610310575f80fd5b50610319610a6a565b6040516103269190611c31565b60405180910390f35b34801561033a575f80fd5b50610343610a70565b6040516103509190611dbe565b60405180910390f35b348015610364575f80fd5b5061037f600480360381019061037a9190611e27565b610a83565b60405161038c9190611c31565b60405180910390f35b3480156103a0575f80fd5b506103a9610ac9565b005b3480156103b6575f80fd5b506103bf610b89565b6040516103cc9190611ec0565b60405180910390f35b3480156103e0575f80fd5b506103e9610bb0565b6040516103f69190611cba565b60405180910390f35b34801561040a575f80fd5b50610413610bed565b6040516104209190611dbe565b60405180910390f35b348015610434575f80fd5b5061043d610c00565b60405161044a9190611ec0565b60405180910390f35b34801561045e575f80fd5b5061047960048036038101906104749190611d66565b610c25565b6040516104869190611dbe565b60405180910390f35b34801561049a575f80fd5b506104b560048036038101906104b09190611f3a565b610c39565b005b3480156104c2575f80fd5b506104cb610cf1565b6040516104d89190611cba565b60405180910390f35b3480156104ec575f80fd5b5061050760048036038101906105029190611fb8565b610d81565b6040516105149190611c31565b60405180910390f35b348015610528575f80fd5b50610531610e03565b60405161053e9190611cba565b60405180910390f35b348015610552575f80fd5b5061055b610e93565b6040516105689190611ec0565b60405180910390f35b34801561057c575f80fd5b50610585610eb8565b6040516105929190612051565b60405180910390f35b600d5481565b60606040518060400160405280600681526020017f4b4f4c4f52530000000000000000000000000000000000000000000000000000815250905090565b5f8160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106b99190611c31565b60405180910390a36001905092915050565b5f600354905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054146108b357610836826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610edd9092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6108be848484610f3f565b90509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b5f6009905090565b61092f336108c7565b61096e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610965906120b4565b60405180910390fd5b606481036109a2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6004819055506109d1565b6109ca60646109bc8360035461130e90919063ffffffff16565b61138590919063ffffffff16565b6004819055505b50565b6109dd336108c7565b610a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a13906120b4565b60405180910390fd5b600a811115610a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a579061211c565b60405180910390fd5b8060098190555050565b60045481565b600c60149054906101000a900460ff1681565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ad2336108c7565b610b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b08906120b4565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f604051610b7f9190611ec0565b60405180910390a1565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4b4f4c0000000000000000000000000000000000000000000000000000000000815250905090565b600c60159054906101000a900460ff1681565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610c31338484610f3f565b905092915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbe906121aa565b60405180910390fd5b8383600f9182610cd89291906123f0565b50818160109182610cea9291906123f0565b5050505050565b606060108054610d009061222c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2c9061222c565b8015610d775780601f10610d4e57610100808354040283529160200191610d77565b820191905f5260205f20905b815481529060010190602001808311610d5a57829003601f168201915b5050505050905090565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6060600f8054610e129061222c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3e9061222c565b8015610e895780601f10610e6057610100808354040283529160200191610e89565b820191905f5260205f20905b815481529060010190602001808311610e6c57829003601f168201915b5050505050905090565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f838311158290610f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1b9190611cba565b60405180910390fd5b505f8385610f3291906124ea565b9050809150509392505050565b5f600e5f9054906101000a900460ff1615610f6657610f5f8484846113ce565b9050611307565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611010575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156110f45760085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806110b457506004548260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546110b1919061251d565b11155b6110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ea906125c0565b60405180910390fd5b5b6110fc611598565b1561110a5761110961166a565b5b611191826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610edd9092919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f600c60159054906101000a900460ff1680156111f457506111f385611981565b5b6111fe5782611209565b61120885846119d4565b5b905061125b8160055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b1290919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112f99190611c31565b60405180910390a360019150505b9392505050565b5f80830361131e575f905061137f565b5f828461132b91906125de565b905082848261133a919061264c565b1461137a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611371906126ec565b60405180910390fd5b809150505b92915050565b5f6113c683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b6f565b905092915050565b5f611456826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610edd9092919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506114e78260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b1290919063ffffffff16565b60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115859190611c31565b60405180910390a3600190509392505050565b5f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156116025750600e5f9054906101000a900460ff16155b801561161a5750600c60149054906101000a900460ff165b80156116655750600d5460055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001600e5f6101000a81548160ff0219169083151502179055505f600d5490505f8190505f600267ffffffffffffffff8111156116aa576116a96121d2565b5b6040519080825280602002602001820160405280156116d85781602001602082028036833780820191505090505b50905030815f815181106116ef576116ee61270a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611793573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117b7919061274b565b816001815181106117cb576117ca61270a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611867959493929190612866565b5f604051808303815f87803b15801561187e575f80fd5b505af1158015611890573d5f803e3d5ffd5b505050505f4790505f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516118de906128eb565b5f6040518083038185875af1925050503d805f8114611918576040519150601f19603f3d011682016040523d82523d5f602084013e61191d565b606091505b5050905080611961576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195890612949565b60405180910390fd5b50505050505f600e5f6101000a81548160ff021916908315150217905550565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16159050919050565b5f806119fe60646119f06009548661130e90919063ffffffff16565b61138590919063ffffffff16565b9050611a508160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b1290919063ffffffff16565b60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611aee9190611c31565b60405180910390a3611b098184611bd090919063ffffffff16565b91505092915050565b5f808284611b20919061251d565b905083811015611b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5c906129b1565b60405180910390fd5b8091505092915050565b5f8083118290611bb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bac9190611cba565b60405180910390fd5b505f8385611bc3919061264c565b9050809150509392505050565b5f611c1183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610edd565b905092915050565b5f819050919050565b611c2b81611c19565b82525050565b5f602082019050611c445f830184611c22565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611c8c82611c4a565b611c968185611c54565b9350611ca6818560208601611c64565b611caf81611c72565b840191505092915050565b5f6020820190508181035f830152611cd28184611c82565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611d0b82611ce2565b9050919050565b611d1b81611d01565b8114611d25575f80fd5b50565b5f81359050611d3681611d12565b92915050565b611d4581611c19565b8114611d4f575f80fd5b50565b5f81359050611d6081611d3c565b92915050565b5f8060408385031215611d7c57611d7b611cda565b5b5f611d8985828601611d28565b9250506020611d9a85828601611d52565b9150509250929050565b5f8115159050919050565b611db881611da4565b82525050565b5f602082019050611dd15f830184611daf565b92915050565b5f805f60608486031215611dee57611ded611cda565b5b5f611dfb86828701611d28565b9350506020611e0c86828701611d28565b9250506040611e1d86828701611d52565b9150509250925092565b5f60208284031215611e3c57611e3b611cda565b5b5f611e4984828501611d28565b91505092915050565b5f60ff82169050919050565b611e6781611e52565b82525050565b5f602082019050611e805f830184611e5e565b92915050565b5f60208284031215611e9b57611e9a611cda565b5b5f611ea884828501611d52565b91505092915050565b611eba81611d01565b82525050565b5f602082019050611ed35f830184611eb1565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611efa57611ef9611ed9565b5b8235905067ffffffffffffffff811115611f1757611f16611edd565b5b602083019150836001820283011115611f3357611f32611ee1565b5b9250929050565b5f805f8060408587031215611f5257611f51611cda565b5b5f85013567ffffffffffffffff811115611f6f57611f6e611cde565b5b611f7b87828801611ee5565b9450945050602085013567ffffffffffffffff811115611f9e57611f9d611cde565b5b611faa87828801611ee5565b925092505092959194509250565b5f8060408385031215611fce57611fcd611cda565b5b5f611fdb85828601611d28565b9250506020611fec85828601611d28565b9150509250929050565b5f819050919050565b5f61201961201461200f84611ce2565b611ff6565b611ce2565b9050919050565b5f61202a82611fff565b9050919050565b5f61203b82612020565b9050919050565b61204b81612031565b82525050565b5f6020820190506120645f830184612042565b92915050565b7f214f574e455200000000000000000000000000000000000000000000000000005f82015250565b5f61209e600683611c54565b91506120a98261206a565b602082019050919050565b5f6020820190508181035f8301526120cb81612092565b9050919050565b7f4d757374206b656570206665657320617420313025206f72206c6573730000005f82015250565b5f612106601d83611c54565b9150612111826120d2565b602082019050919050565b5f6020820190508181035f830152612133816120fa565b9050919050565b7f4f6e6c7920646576656c6f7065722063616e2061646a75737420736f6369616c5f8201527f206c696e6b730000000000000000000000000000000000000000000000000000602082015250565b5f612194602683611c54565b915061219f8261213a565b604082019050919050565b5f6020820190508181035f8301526121c181612188565b9050919050565b5f82905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061224357607f821691505b602082108103612256576122556121ff565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026122b87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261227d565b6122c2868361227d565b95508019841693508086168417925050509392505050565b5f6122f46122ef6122ea84611c19565b611ff6565b611c19565b9050919050565b5f819050919050565b61230d836122da565b612321612319826122fb565b848454612289565b825550505050565b5f90565b612335612329565b612340818484612304565b505050565b5b81811015612363576123585f8261232d565b600181019050612346565b5050565b601f8211156123a8576123798161225c565b6123828461226e565b81016020851015612391578190505b6123a561239d8561226e565b830182612345565b50505b505050565b5f82821c905092915050565b5f6123c85f19846008026123ad565b1980831691505092915050565b5f6123e083836123b9565b9150826002028217905092915050565b6123fa83836121c8565b67ffffffffffffffff811115612413576124126121d2565b5b61241d825461222c565b612428828285612367565b5f601f831160018114612455575f8415612443578287013590505b61244d85826123d5565b8655506124b4565b601f1984166124638661225c565b5f5b8281101561248a57848901358255600182019150602085019450602081019050612465565b868310156124a757848901356124a3601f8916826123b9565b8355505b6001600288020188555050505b50505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6124f482611c19565b91506124ff83611c19565b9250828203905081811115612517576125166124bd565b5b92915050565b5f61252782611c19565b915061253283611c19565b925082820190508082111561254a576125496124bd565b5b92915050565b7f5472616e7366657220616d6f756e7420657863656564732074686520626167205f8201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b5f6125aa602583611c54565b91506125b582612550565b604082019050919050565b5f6020820190508181035f8301526125d78161259e565b9050919050565b5f6125e882611c19565b91506125f383611c19565b925082820261260181611c19565b91508282048414831517612618576126176124bd565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61265682611c19565b915061266183611c19565b9250826126715761267061261f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6126d6602183611c54565b91506126e18261267c565b604082019050919050565b5f6020820190508181035f830152612703816126ca565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061274581611d12565b92915050565b5f602082840312156127605761275f611cda565b5b5f61276d84828501612737565b91505092915050565b5f819050919050565b5f61279961279461278f84612776565b611ff6565b611c19565b9050919050565b6127a98161277f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6127e181611d01565b82525050565b5f6127f283836127d8565b60208301905092915050565b5f602082019050919050565b5f612814826127af565b61281e81856127b9565b9350612829836127c9565b805f5b8381101561285957815161284088826127e7565b975061284b836127fe565b92505060018101905061282c565b5085935050505092915050565b5f60a0820190506128795f830188611c22565b61288660208301876127a0565b8181036040830152612898818661280a565b90506128a76060830185611eb1565b6128b46080830184611c22565b9695505050505050565b5f81905092915050565b50565b5f6128d65f836128be565b91506128e1826128c8565b5f82019050919050565b5f6128f5826128cb565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e7366657200005f82015250565b5f612933601e83611c54565b915061293e826128ff565b602082019050919050565b5f6020820190508181035f83015261296081612927565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61299b601b83611c54565b91506129a682612967565b602082019050919050565b5f6020820190508181035f8301526129c88161298f565b905091905056fea264697066735822122088a0e6661df1ca78faaef2d2b39a247043aca812fdce114b1e16db2ffd84f36c64736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061014e575f3560e01c8063715018a6116100b5578063ac4ec2a61161006e578063ac4ec2a61461048f578063c3f93b01146104b7578063dd62ed3e146104e1578063e0dc35461461051d578063e6a77feb14610547578063f887ea401461057157610155565b8063715018a614610395578063893d20e8146103ab57806395d89b41146103d5578063a64e4f8a146103ff578063a8aa1b3114610429578063a9059cbb1461045357610155565b8063313ce56711610107578063313ce5671461028b5780635d0044ca146102b557806369fe0e2d146102dd5780636c0a24eb146103055780636ddd17131461032f57806370a082311461035957610155565b80630445b6671461015957806306fdde0314610183578063095ea7b3146101ad57806318160ddd146101e957806323b872dd146102135780632f54bf6e1461024f57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d61059b565b60405161017a9190611c31565b60405180910390f35b34801561018e575f80fd5b506101976105a1565b6040516101a49190611cba565b60405180910390f35b3480156101b8575f80fd5b506101d360048036038101906101ce9190611d66565b6105de565b6040516101e09190611dbe565b60405180910390f35b3480156101f4575f80fd5b506101fd6106cb565b60405161020a9190611c31565b60405180910390f35b34801561021e575f80fd5b5061023960048036038101906102349190611dd7565b6106d4565b6040516102469190611dbe565b60405180910390f35b34801561025a575f80fd5b5061027560048036038101906102709190611e27565b6108c7565b6040516102829190611dbe565b60405180910390f35b348015610296575f80fd5b5061029f61091e565b6040516102ac9190611e6d565b60405180910390f35b3480156102c0575f80fd5b506102db60048036038101906102d69190611e86565b610926565b005b3480156102e8575f80fd5b5061030360048036038101906102fe9190611e86565b6109d4565b005b348015610310575f80fd5b50610319610a6a565b6040516103269190611c31565b60405180910390f35b34801561033a575f80fd5b50610343610a70565b6040516103509190611dbe565b60405180910390f35b348015610364575f80fd5b5061037f600480360381019061037a9190611e27565b610a83565b60405161038c9190611c31565b60405180910390f35b3480156103a0575f80fd5b506103a9610ac9565b005b3480156103b6575f80fd5b506103bf610b89565b6040516103cc9190611ec0565b60405180910390f35b3480156103e0575f80fd5b506103e9610bb0565b6040516103f69190611cba565b60405180910390f35b34801561040a575f80fd5b50610413610bed565b6040516104209190611dbe565b60405180910390f35b348015610434575f80fd5b5061043d610c00565b60405161044a9190611ec0565b60405180910390f35b34801561045e575f80fd5b5061047960048036038101906104749190611d66565b610c25565b6040516104869190611dbe565b60405180910390f35b34801561049a575f80fd5b506104b560048036038101906104b09190611f3a565b610c39565b005b3480156104c2575f80fd5b506104cb610cf1565b6040516104d89190611cba565b60405180910390f35b3480156104ec575f80fd5b5061050760048036038101906105029190611fb8565b610d81565b6040516105149190611c31565b60405180910390f35b348015610528575f80fd5b50610531610e03565b60405161053e9190611cba565b60405180910390f35b348015610552575f80fd5b5061055b610e93565b6040516105689190611ec0565b60405180910390f35b34801561057c575f80fd5b50610585610eb8565b6040516105929190612051565b60405180910390f35b600d5481565b60606040518060400160405280600681526020017f4b4f4c4f52530000000000000000000000000000000000000000000000000000815250905090565b5f8160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106b99190611c31565b60405180910390a36001905092915050565b5f600354905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054146108b357610836826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610edd9092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6108be848484610f3f565b90509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b5f6009905090565b61092f336108c7565b61096e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610965906120b4565b60405180910390fd5b606481036109a2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6004819055506109d1565b6109ca60646109bc8360035461130e90919063ffffffff16565b61138590919063ffffffff16565b6004819055505b50565b6109dd336108c7565b610a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a13906120b4565b60405180910390fd5b600a811115610a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a579061211c565b60405180910390fd5b8060098190555050565b60045481565b600c60149054906101000a900460ff1681565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ad2336108c7565b610b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b08906120b4565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f604051610b7f9190611ec0565b60405180910390a1565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4b4f4c0000000000000000000000000000000000000000000000000000000000815250905090565b600c60159054906101000a900460ff1681565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610c31338484610f3f565b905092915050565b7f00000000000000000000000084e217e528734192e353bfd3f72e0576bd4a7cd873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbe906121aa565b60405180910390fd5b8383600f9182610cd89291906123f0565b50818160109182610cea9291906123f0565b5050505050565b606060108054610d009061222c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2c9061222c565b8015610d775780601f10610d4e57610100808354040283529160200191610d77565b820191905f5260205f20905b815481529060010190602001808311610d5a57829003601f168201915b5050505050905090565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6060600f8054610e129061222c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3e9061222c565b8015610e895780601f10610e6057610100808354040283529160200191610e89565b820191905f5260205f20905b815481529060010190602001808311610e6c57829003601f168201915b5050505050905090565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f838311158290610f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1b9190611cba565b60405180910390fd5b505f8385610f3291906124ea565b9050809150509392505050565b5f600e5f9054906101000a900460ff1615610f6657610f5f8484846113ce565b9050611307565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611010575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156110f45760085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806110b457506004548260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546110b1919061251d565b11155b6110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ea906125c0565b60405180910390fd5b5b6110fc611598565b1561110a5761110961166a565b5b611191826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610edd9092919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f600c60159054906101000a900460ff1680156111f457506111f385611981565b5b6111fe5782611209565b61120885846119d4565b5b905061125b8160055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b1290919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112f99190611c31565b60405180910390a360019150505b9392505050565b5f80830361131e575f905061137f565b5f828461132b91906125de565b905082848261133a919061264c565b1461137a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611371906126ec565b60405180910390fd5b809150505b92915050565b5f6113c683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b6f565b905092915050565b5f611456826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610edd9092919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506114e78260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b1290919063ffffffff16565b60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115859190611c31565b60405180910390a3600190509392505050565b5f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156116025750600e5f9054906101000a900460ff16155b801561161a5750600c60149054906101000a900460ff165b80156116655750600d5460055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001600e5f6101000a81548160ff0219169083151502179055505f600d5490505f8190505f600267ffffffffffffffff8111156116aa576116a96121d2565b5b6040519080825280602002602001820160405280156116d85781602001602082028036833780820191505090505b50905030815f815181106116ef576116ee61270a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611793573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117b7919061274b565b816001815181106117cb576117ca61270a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611867959493929190612866565b5f604051808303815f87803b15801561187e575f80fd5b505af1158015611890573d5f803e3d5ffd5b505050505f4790505f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516118de906128eb565b5f6040518083038185875af1925050503d805f8114611918576040519150601f19603f3d011682016040523d82523d5f602084013e61191d565b606091505b5050905080611961576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195890612949565b60405180910390fd5b50505050505f600e5f6101000a81548160ff021916908315150217905550565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16159050919050565b5f806119fe60646119f06009548661130e90919063ffffffff16565b61138590919063ffffffff16565b9050611a508160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b1290919063ffffffff16565b60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611aee9190611c31565b60405180910390a3611b098184611bd090919063ffffffff16565b91505092915050565b5f808284611b20919061251d565b905083811015611b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5c906129b1565b60405180910390fd5b8091505092915050565b5f8083118290611bb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bac9190611cba565b60405180910390fd5b505f8385611bc3919061264c565b9050809150509392505050565b5f611c1183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610edd565b905092915050565b5f819050919050565b611c2b81611c19565b82525050565b5f602082019050611c445f830184611c22565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611c8c82611c4a565b611c968185611c54565b9350611ca6818560208601611c64565b611caf81611c72565b840191505092915050565b5f6020820190508181035f830152611cd28184611c82565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611d0b82611ce2565b9050919050565b611d1b81611d01565b8114611d25575f80fd5b50565b5f81359050611d3681611d12565b92915050565b611d4581611c19565b8114611d4f575f80fd5b50565b5f81359050611d6081611d3c565b92915050565b5f8060408385031215611d7c57611d7b611cda565b5b5f611d8985828601611d28565b9250506020611d9a85828601611d52565b9150509250929050565b5f8115159050919050565b611db881611da4565b82525050565b5f602082019050611dd15f830184611daf565b92915050565b5f805f60608486031215611dee57611ded611cda565b5b5f611dfb86828701611d28565b9350506020611e0c86828701611d28565b9250506040611e1d86828701611d52565b9150509250925092565b5f60208284031215611e3c57611e3b611cda565b5b5f611e4984828501611d28565b91505092915050565b5f60ff82169050919050565b611e6781611e52565b82525050565b5f602082019050611e805f830184611e5e565b92915050565b5f60208284031215611e9b57611e9a611cda565b5b5f611ea884828501611d52565b91505092915050565b611eba81611d01565b82525050565b5f602082019050611ed35f830184611eb1565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611efa57611ef9611ed9565b5b8235905067ffffffffffffffff811115611f1757611f16611edd565b5b602083019150836001820283011115611f3357611f32611ee1565b5b9250929050565b5f805f8060408587031215611f5257611f51611cda565b5b5f85013567ffffffffffffffff811115611f6f57611f6e611cde565b5b611f7b87828801611ee5565b9450945050602085013567ffffffffffffffff811115611f9e57611f9d611cde565b5b611faa87828801611ee5565b925092505092959194509250565b5f8060408385031215611fce57611fcd611cda565b5b5f611fdb85828601611d28565b9250506020611fec85828601611d28565b9150509250929050565b5f819050919050565b5f61201961201461200f84611ce2565b611ff6565b611ce2565b9050919050565b5f61202a82611fff565b9050919050565b5f61203b82612020565b9050919050565b61204b81612031565b82525050565b5f6020820190506120645f830184612042565b92915050565b7f214f574e455200000000000000000000000000000000000000000000000000005f82015250565b5f61209e600683611c54565b91506120a98261206a565b602082019050919050565b5f6020820190508181035f8301526120cb81612092565b9050919050565b7f4d757374206b656570206665657320617420313025206f72206c6573730000005f82015250565b5f612106601d83611c54565b9150612111826120d2565b602082019050919050565b5f6020820190508181035f830152612133816120fa565b9050919050565b7f4f6e6c7920646576656c6f7065722063616e2061646a75737420736f6369616c5f8201527f206c696e6b730000000000000000000000000000000000000000000000000000602082015250565b5f612194602683611c54565b915061219f8261213a565b604082019050919050565b5f6020820190508181035f8301526121c181612188565b9050919050565b5f82905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061224357607f821691505b602082108103612256576122556121ff565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026122b87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261227d565b6122c2868361227d565b95508019841693508086168417925050509392505050565b5f6122f46122ef6122ea84611c19565b611ff6565b611c19565b9050919050565b5f819050919050565b61230d836122da565b612321612319826122fb565b848454612289565b825550505050565b5f90565b612335612329565b612340818484612304565b505050565b5b81811015612363576123585f8261232d565b600181019050612346565b5050565b601f8211156123a8576123798161225c565b6123828461226e565b81016020851015612391578190505b6123a561239d8561226e565b830182612345565b50505b505050565b5f82821c905092915050565b5f6123c85f19846008026123ad565b1980831691505092915050565b5f6123e083836123b9565b9150826002028217905092915050565b6123fa83836121c8565b67ffffffffffffffff811115612413576124126121d2565b5b61241d825461222c565b612428828285612367565b5f601f831160018114612455575f8415612443578287013590505b61244d85826123d5565b8655506124b4565b601f1984166124638661225c565b5f5b8281101561248a57848901358255600182019150602085019450602081019050612465565b868310156124a757848901356124a3601f8916826123b9565b8355505b6001600288020188555050505b50505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6124f482611c19565b91506124ff83611c19565b9250828203905081811115612517576125166124bd565b5b92915050565b5f61252782611c19565b915061253283611c19565b925082820190508082111561254a576125496124bd565b5b92915050565b7f5472616e7366657220616d6f756e7420657863656564732074686520626167205f8201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b5f6125aa602583611c54565b91506125b582612550565b604082019050919050565b5f6020820190508181035f8301526125d78161259e565b9050919050565b5f6125e882611c19565b91506125f383611c19565b925082820261260181611c19565b91508282048414831517612618576126176124bd565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61265682611c19565b915061266183611c19565b9250826126715761267061261f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6126d6602183611c54565b91506126e18261267c565b604082019050919050565b5f6020820190508181035f830152612703816126ca565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061274581611d12565b92915050565b5f602082840312156127605761275f611cda565b5b5f61276d84828501612737565b91505092915050565b5f819050919050565b5f61279961279461278f84612776565b611ff6565b611c19565b9050919050565b6127a98161277f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6127e181611d01565b82525050565b5f6127f283836127d8565b60208301905092915050565b5f602082019050919050565b5f612814826127af565b61281e81856127b9565b9350612829836127c9565b805f5b8381101561285957815161284088826127e7565b975061284b836127fe565b92505060018101905061282c565b5085935050505092915050565b5f60a0820190506128795f830188611c22565b61288660208301876127a0565b8181036040830152612898818661280a565b90506128a76060830185611eb1565b6128b46080830184611c22565b9695505050505050565b5f81905092915050565b50565b5f6128d65f836128be565b91506128e1826128c8565b5f82019050919050565b5f6128f5826128cb565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e7366657200005f82015250565b5f612933601e83611c54565b915061293e826128ff565b602082019050919050565b5f6020820190508181035f83015261296081612927565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61299b601b83611c54565b91506129a682612967565b602082019050919050565b5f6020820190508181035f8301526129c88161298f565b905091905056fea264697066735822122088a0e6661df1ca78faaef2d2b39a247043aca812fdce114b1e16db2ffd84f36c64736f6c634300081a0033

Deployed Bytecode Sourcemap

4596:7466:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5539:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6306:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7501:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6408:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7953:424;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2588:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6518:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8546:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8385:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5065:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5465:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6826:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2699:131;;;;;;;;;;;;;:::i;:::-;;6726:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6620:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5502:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5439:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7757:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11408:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11908:114;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7305:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11786:114;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5366:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5408:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5539:56;;;;:::o;6306:94::-;6354:13;6387:5;;;;;;;;;;;;;;;;;6380:12;;6306:94;:::o;7501:248::-;7603:4;7660:6;7625:11;:23;7637:10;7625:23;;;;;;;;;;;;;;;:32;7649:7;7625:32;;;;;;;;;;;;;;;:41;;;;7703:7;7682:37;;7691:10;7682:37;;;7712:6;7682:37;;;;;;:::i;:::-;;;;;;;;7737:4;7730:11;;7501:248;;;;:::o;6408:102::-;6463:7;6490:12;;6483:19;;6408:102;:::o;7953:424::-;8087:4;8143:17;8108:11;:19;8120:6;8108:19;;;;;;;;;;;;;;;:31;8128:10;8108:31;;;;;;;;;;;;;;;;:52;8104:206;;8211:87;8265:6;8211:87;;;;;;;;;;;;;;;;;:11;:19;8223:6;8211:19;;;;;;;;;;;;;;;:31;8231:10;8211:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;8177:11;:19;8189:6;8177:19;;;;;;;;;;;;;;;:31;8197:10;8177:31;;;;;;;;;;;;;;;:121;;;;8104:206;8329:40;8343:6;8351:9;8362:6;8329:13;:40::i;:::-;8322:47;;7953:424;;;;;:::o;2588:103::-;2643:4;2678:5;;;;;;;;;;;2667:16;;:7;:16;;;2660:23;;2588:103;;;:::o;6518:94::-;6570:5;4990:1;6588:16;;6518:94;:::o;8546:257::-;2530:19;2538:10;2530:7;:19::i;:::-;2522:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8638:3:::1;8623:11;:18:::0;8619:177:::1;;8677:17;8658:16;:36;;;;8619:177;;;8746:38;8780:3;8746:29;8763:11;8746:12;;:16;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;8727:16;:57;;;;8619:177;8546:257:::0;:::o;8385:153::-;2530:19;2538:10;2530:7;:19::i;:::-;2522:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8467:2:::1;8456:7;:13;;8448:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;8523:7;8514:6;:16;;;;8385:153:::0;:::o;5065:69::-;;;;:::o;5465:30::-;;;;;;;;;;;;;:::o;6826:119::-;6892:7;6919:9;:18;6929:7;6919:18;;;;;;;;;;;;;;;;6912:25;;6826:119;;;:::o;2699:131::-;2530:19;2538:10;2530:7;:19::i;:::-;2522:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2772:1:::1;2756:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2790:32;2819:1;2790:32;;;;;;:::i;:::-;;;;;;;;2699:131::o:0;6726:92::-;6778:7;6805:5;;;;;;;;;;;6798:12;;6726:92;:::o;6620:98::-;6670:13;6703:7;;;;;;;;;;;;;;;;;6696:14;;6620:98;:::o;5502:30::-;;;;;;;;;;;;;:::o;5439:19::-;;;;;;;;;;;;;:::o;7757:188::-;7864:4;7893:44;7907:10;7919:9;7930:6;7893:13;:44::i;:::-;7886:51;;7757:188;;;;:::o;11408:370::-;11585:11;11571:25;;:10;:25;;;11549:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;11697:20;;11675:19;:42;;;;;;;:::i;:::-;;11750:20;;11728:19;:42;;;;;;;:::i;:::-;;11408:370;;;;:::o;11908:114::-;11962:13;11995:19;11988:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11908:114;:::o;7305:188::-;7425:7;7457:11;:19;7469:6;7457:19;;;;;;;;;;;;;;;:28;7477:7;7457:28;;;;;;;;;;;;;;;;7450:35;;7305:188;;;;:::o;11786:114::-;11840:13;11873:19;11866:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11786:114;:::o;5366:35::-;;;;;;;;;;;;;:::o;5408:24::-;;;;;;;;;;;;;:::o;455:224::-;575:7;608:1;603;:6;;611:12;595:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;635:9;651:1;647;:5;;;;:::i;:::-;635:17;;670:1;663:8;;;455:224;;;;;:::o;9942:1007::-;10068:4;10089:6;;;;;;;;;;;10085:87;;;10119:41;10134:6;10142:9;10153:6;10119:14;:41::i;:::-;10112:48;;;;10085:87;10201:4;;;;;;;;;;;10188:17;;:9;:17;;;;:38;;;;;10222:4;;;;;;;;;;;10209:17;;:9;:17;;;;10188:38;10184:270;;;10269:15;:26;10285:9;10269:26;;;;;;;;;;;;;;;;;;;;;;;;;:100;;;;10353:16;;10343:6;10320:9;:20;10330:9;10320:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;10269:100;10243:199;;;;;;;;;;;;:::i;:::-;;;;;;;;;10184:270;10470:16;:14;:16::i;:::-;10466:59;;;10503:10;:8;:10::i;:::-;10466:59;10557:90;10593:6;10557:90;;;;;;;;;;;;;;;;;:9;:17;10567:6;10557:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;10537:9;:17;10547:6;10537:17;;;;;;;;;;;;;;;:110;;;;10660:22;10685:11;;;;;;;;;;;:36;;;;;10700:21;10714:6;10700:13;:21::i;:::-;10685:36;:97;;10776:6;10685:97;;;10737:23;10745:6;10753;10737:7;:23::i;:::-;10685:97;10660:122;;10818:40;10843:14;10818:9;:20;10828:9;10818:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;10795:9;:20;10805:9;10795:20;;;;;;;;;;;;;;;:63;;;;10893:9;10876:43;;10885:6;10876:43;;;10904:14;10876:43;;;;;;:::i;:::-;;;;;;;;10937:4;10930:11;;;9942:1007;;;;;;:::o;687:246::-;745:7;774:1;769;:6;765:47;;799:1;792:8;;;;765:47;822:9;838:1;834;:5;;;;:::i;:::-;822:17;;867:1;862;858;:5;;;;:::i;:::-;:10;850:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;924:1;917:8;;;687:246;;;;;:::o;941:132::-;999:7;1026:39;1030:1;1033;1026:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1019:46;;941:132;;;;:::o;10957:401::-;11084:4;11121:90;11157:6;11121:90;;;;;;;;;;;;;;;;;:9;:17;11131:6;11121:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;11101:9;:17;11111:6;11101:17;;;;;;;;;;;;;;;:110;;;;11245:32;11270:6;11245:9;:20;11255:9;11245:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11222:9;:20;11232:9;11222:20;;;;;;;;;;;;;;;:55;;;;11310:9;11293:35;;11302:6;11293:35;;;11321:6;11293:35;;;;;;:::i;:::-;;;;;;;;11346:4;11339:11;;10957:401;;;;;:::o;6953:222::-;7002:4;7053;;;;;;;;;;;7039:18;;:10;:18;;;;:42;;;;;7075:6;;;;;;;;;;;7074:7;7039:42;:70;;;;;7098:11;;;;;;;;;;;7039:70;:128;;;;;7154:13;;7126:9;:24;7144:4;7126:24;;;;;;;;;;;;;;;;:41;;7039:128;7019:148;;6953:222;:::o;9206:728::-;5660:4;5651:6;;:13;;;;;;;;;;;;;;;;;;9255:28:::1;9286:13;;9255:44;;9310:20;9333;9310:43;;9366:21;9404:1;9390:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9366:40;;9435:4;9417;9422:1;9417:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9461:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9451:4;9456:1;9451:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9487:6;;;;;;;;;;;:57;;;9559:12;9586:1;9602:4;9629;9649:15;9487:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9688:26;9717:21;9688:50;;9766:21;9812:7;;;;;;;;;;;9804:21;;9833:18;9804:52;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9751:105;;;9875:16;9867:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;9244:690;;;;;5696:5:::0;5687:6;;:14;;;;;;;;;;;;;;;;;;9206:728::o;7183:114::-;7245:4;7270:11;:19;7282:6;7270:19;;;;;;;;;;;;;;;;;;;;;;;;;7269:20;7262:27;;7183:114;;;:::o;8859:339::-;8944:7;8969:17;8989:27;9012:3;8989:18;9000:6;;8989;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;8969:47;;9054:39;9083:9;9054;:24;9072:4;9054:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9027:9;:24;9045:4;9027:24;;;;;;;;;;;;;;;:66;;;;9134:4;9109:42;;9118:6;9109:42;;;9141:9;9109:42;;;;;;:::i;:::-;;;;;;;;9169:21;9180:9;9169:6;:10;;:21;;;;:::i;:::-;9162:28;;;8859:339;;;;:::o;124:179::-;182:7;202:9;218:1;214;:5;;;;:::i;:::-;202:17;;243:1;238;:6;;230:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;294:1;287:8;;;124:179;;;;:::o;1081:223::-;1201:7;1233:1;1229;:5;1236:12;1221:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1260:9;1276:1;1272;:5;;;;:::i;:::-;1260:17;;1295:1;1288:8;;;1081:223;;;;;:::o;311:136::-;369:7;396:43;400:1;403;396:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;389:50;;311: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:139::-;811:6;806:3;801;795:23;852:1;843:6;838:3;834:16;827:27;722:139;;;:::o;867:102::-;908:6;959:2;955:7;950:2;943:5;939:14;935:28;925:38;;867:102;;;:::o;975:377::-;1063:3;1091:39;1124:5;1091:39;:::i;:::-;1146:71;1210:6;1205:3;1146:71;:::i;:::-;1139:78;;1226:65;1284:6;1279:3;1272:4;1265:5;1261:16;1226:65;:::i;:::-;1316:29;1338:6;1316:29;:::i;:::-;1311:3;1307:39;1300:46;;1067:285;975:377;;;;:::o;1358:313::-;1471:4;1509:2;1498:9;1494:18;1486:26;;1558:9;1552:4;1548:20;1544:1;1533:9;1529:17;1522:47;1586:78;1659:4;1650:6;1586:78;:::i;:::-;1578:86;;1358:313;;;;:::o;1758:117::-;1867:1;1864;1857:12;1881:117;1990:1;1987;1980:12;2004:126;2041:7;2081:42;2074:5;2070:54;2059:65;;2004:126;;;:::o;2136:96::-;2173:7;2202:24;2220:5;2202:24;:::i;:::-;2191:35;;2136:96;;;:::o;2238:122::-;2311:24;2329:5;2311:24;:::i;:::-;2304:5;2301:35;2291:63;;2350:1;2347;2340:12;2291:63;2238:122;:::o;2366:139::-;2412:5;2450:6;2437:20;2428:29;;2466:33;2493:5;2466:33;:::i;:::-;2366:139;;;;:::o;2511:122::-;2584:24;2602:5;2584:24;:::i;:::-;2577:5;2574:35;2564:63;;2623:1;2620;2613:12;2564:63;2511:122;:::o;2639:139::-;2685:5;2723:6;2710:20;2701:29;;2739:33;2766:5;2739:33;:::i;:::-;2639:139;;;;:::o;2784:474::-;2852:6;2860;2909:2;2897:9;2888:7;2884:23;2880:32;2877:119;;;2915:79;;:::i;:::-;2877:119;3035:1;3060:53;3105:7;3096:6;3085:9;3081:22;3060:53;:::i;:::-;3050:63;;3006:117;3162:2;3188:53;3233:7;3224:6;3213:9;3209:22;3188:53;:::i;:::-;3178:63;;3133:118;2784:474;;;;;:::o;3264:90::-;3298:7;3341:5;3334:13;3327:21;3316:32;;3264:90;;;:::o;3360:109::-;3441:21;3456:5;3441:21;:::i;:::-;3436:3;3429:34;3360:109;;:::o;3475:210::-;3562:4;3600:2;3589:9;3585:18;3577:26;;3613:65;3675:1;3664:9;3660:17;3651:6;3613:65;:::i;:::-;3475:210;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:329::-;4375:6;4424:2;4412:9;4403:7;4399:23;4395:32;4392:119;;;4430:79;;:::i;:::-;4392:119;4550:1;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4521:117;4316:329;;;;:::o;4651:86::-;4686:7;4726:4;4719:5;4715:16;4704:27;;4651:86;;;:::o;4743:112::-;4826:22;4842:5;4826:22;:::i;:::-;4821:3;4814:35;4743:112;;:::o;4861:214::-;4950:4;4988:2;4977:9;4973:18;4965:26;;5001:67;5065:1;5054:9;5050:17;5041:6;5001:67;:::i;:::-;4861:214;;;;:::o;5081:329::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;;:::i;:::-;5157:119;5315:1;5340:53;5385:7;5376:6;5365:9;5361:22;5340:53;:::i;:::-;5330:63;;5286:117;5081:329;;;;:::o;5416:118::-;5503:24;5521:5;5503:24;:::i;:::-;5498:3;5491:37;5416:118;;:::o;5540:222::-;5633:4;5671:2;5660:9;5656:18;5648:26;;5684:71;5752:1;5741:9;5737:17;5728:6;5684:71;:::i;:::-;5540:222;;;;:::o;5768:117::-;5877:1;5874;5867:12;5891:117;6000:1;5997;5990:12;6014:117;6123:1;6120;6113:12;6151:553;6209:8;6219:6;6269:3;6262:4;6254:6;6250:17;6246:27;6236:122;;6277:79;;:::i;:::-;6236:122;6390:6;6377:20;6367:30;;6420:18;6412:6;6409:30;6406:117;;;6442:79;;:::i;:::-;6406:117;6556:4;6548:6;6544:17;6532:29;;6610:3;6602:4;6594:6;6590:17;6580:8;6576:32;6573:41;6570:128;;;6617:79;;:::i;:::-;6570:128;6151:553;;;;;:::o;6710:874::-;6802:6;6810;6818;6826;6875:2;6863:9;6854:7;6850:23;6846:32;6843:119;;;6881:79;;:::i;:::-;6843:119;7029:1;7018:9;7014:17;7001:31;7059:18;7051:6;7048:30;7045:117;;;7081:79;;:::i;:::-;7045:117;7194:65;7251:7;7242:6;7231:9;7227:22;7194:65;:::i;:::-;7176:83;;;;6972:297;7336:2;7325:9;7321:18;7308:32;7367:18;7359:6;7356:30;7353:117;;;7389:79;;:::i;:::-;7353:117;7502:65;7559:7;7550:6;7539:9;7535:22;7502:65;:::i;:::-;7484:83;;;;7279:298;6710:874;;;;;;;:::o;7590:474::-;7658:6;7666;7715:2;7703:9;7694:7;7690:23;7686:32;7683:119;;;7721:79;;:::i;:::-;7683:119;7841:1;7866:53;7911:7;7902:6;7891:9;7887:22;7866:53;:::i;:::-;7856:63;;7812:117;7968:2;7994:53;8039:7;8030:6;8019:9;8015:22;7994:53;:::i;:::-;7984:63;;7939:118;7590:474;;;;;:::o;8070:60::-;8098:3;8119:5;8112:12;;8070:60;;;:::o;8136:142::-;8186:9;8219:53;8237:34;8246:24;8264:5;8246:24;:::i;:::-;8237:34;:::i;:::-;8219:53;:::i;:::-;8206:66;;8136:142;;;:::o;8284:126::-;8334:9;8367:37;8398:5;8367:37;:::i;:::-;8354:50;;8284:126;;;:::o;8416:144::-;8484:9;8517:37;8548:5;8517:37;:::i;:::-;8504:50;;8416:144;;;:::o;8566:167::-;8671:55;8720:5;8671:55;:::i;:::-;8666:3;8659:68;8566:167;;:::o;8739:258::-;8850:4;8888:2;8877:9;8873:18;8865:26;;8901:89;8987:1;8976:9;8972:17;8963:6;8901:89;:::i;:::-;8739:258;;;;:::o;9003:156::-;9143:8;9139:1;9131:6;9127:14;9120:32;9003:156;:::o;9165:365::-;9307:3;9328:66;9392:1;9387:3;9328:66;:::i;:::-;9321:73;;9403:93;9492:3;9403:93;:::i;:::-;9521:2;9516:3;9512:12;9505:19;;9165:365;;;:::o;9536:419::-;9702:4;9740:2;9729:9;9725:18;9717:26;;9789:9;9783:4;9779:20;9775:1;9764:9;9760:17;9753:47;9817:131;9943:4;9817:131;:::i;:::-;9809:139;;9536:419;;;:::o;9961:179::-;10101:31;10097:1;10089:6;10085:14;10078:55;9961:179;:::o;10146:366::-;10288:3;10309:67;10373:2;10368:3;10309:67;:::i;:::-;10302:74;;10385:93;10474:3;10385:93;:::i;:::-;10503:2;10498:3;10494:12;10487:19;;10146:366;;;:::o;10518:419::-;10684:4;10722:2;10711:9;10707:18;10699:26;;10771:9;10765:4;10761:20;10757:1;10746:9;10742:17;10735:47;10799:131;10925:4;10799:131;:::i;:::-;10791:139;;10518:419;;;:::o;10943:225::-;11083:34;11079:1;11071:6;11067:14;11060:58;11152:8;11147:2;11139:6;11135:15;11128:33;10943:225;:::o;11174:366::-;11316:3;11337:67;11401:2;11396:3;11337:67;:::i;:::-;11330:74;;11413:93;11502:3;11413:93;:::i;:::-;11531:2;11526:3;11522:12;11515:19;;11174:366;;;:::o;11546:419::-;11712:4;11750:2;11739:9;11735:18;11727:26;;11799:9;11793:4;11789:20;11785:1;11774:9;11770:17;11763:47;11827:131;11953:4;11827:131;:::i;:::-;11819:139;;11546:419;;;:::o;11971:97::-;12030:6;12058:3;12048:13;;11971:97;;;;:::o;12074:180::-;12122:77;12119:1;12112:88;12219:4;12216:1;12209:15;12243:4;12240:1;12233:15;12260:180;12308:77;12305:1;12298:88;12405:4;12402:1;12395:15;12429:4;12426:1;12419:15;12446:320;12490:6;12527:1;12521:4;12517:12;12507:22;;12574:1;12568:4;12564:12;12595:18;12585:81;;12651:4;12643:6;12639:17;12629:27;;12585:81;12713:2;12705:6;12702:14;12682:18;12679:38;12676:84;;12732:18;;:::i;:::-;12676:84;12497:269;12446:320;;;:::o;12772:141::-;12821:4;12844:3;12836:11;;12867:3;12864:1;12857:14;12901:4;12898:1;12888:18;12880:26;;12772:141;;;:::o;12919:93::-;12956:6;13003:2;12998;12991:5;12987:14;12983:23;12973:33;;12919:93;;;:::o;13018:107::-;13062:8;13112:5;13106:4;13102:16;13081:37;;13018:107;;;;:::o;13131:393::-;13200:6;13250:1;13238:10;13234:18;13273:97;13303:66;13292:9;13273:97;:::i;:::-;13391:39;13421:8;13410:9;13391:39;:::i;:::-;13379:51;;13463:4;13459:9;13452:5;13448:21;13439:30;;13512:4;13502:8;13498:19;13491:5;13488:30;13478:40;;13207:317;;13131:393;;;;;:::o;13530:142::-;13580:9;13613:53;13631:34;13640:24;13658:5;13640:24;:::i;:::-;13631:34;:::i;:::-;13613:53;:::i;:::-;13600:66;;13530:142;;;:::o;13678:75::-;13721:3;13742:5;13735:12;;13678:75;;;:::o;13759:269::-;13869:39;13900:7;13869:39;:::i;:::-;13930:91;13979:41;14003:16;13979:41;:::i;:::-;13971:6;13964:4;13958:11;13930:91;:::i;:::-;13924:4;13917:105;13835:193;13759:269;;;:::o;14034:73::-;14079:3;14034:73;:::o;14113:189::-;14190:32;;:::i;:::-;14231:65;14289:6;14281;14275:4;14231:65;:::i;:::-;14166:136;14113:189;;:::o;14308:186::-;14368:120;14385:3;14378:5;14375:14;14368:120;;;14439:39;14476:1;14469:5;14439:39;:::i;:::-;14412:1;14405:5;14401:13;14392:22;;14368:120;;;14308:186;;:::o;14500:543::-;14601:2;14596:3;14593:11;14590:446;;;14635:38;14667:5;14635:38;:::i;:::-;14719:29;14737:10;14719:29;:::i;:::-;14709:8;14705:44;14902:2;14890:10;14887:18;14884:49;;;14923:8;14908:23;;14884:49;14946:80;15002:22;15020:3;15002:22;:::i;:::-;14992:8;14988:37;14975:11;14946:80;:::i;:::-;14605:431;;14590:446;14500:543;;;:::o;15049:117::-;15103:8;15153:5;15147:4;15143:16;15122:37;;15049:117;;;;:::o;15172:169::-;15216:6;15249:51;15297:1;15293:6;15285:5;15282:1;15278:13;15249:51;:::i;:::-;15245:56;15330:4;15324;15320:15;15310:25;;15223:118;15172:169;;;;:::o;15346:295::-;15422:4;15568:29;15593:3;15587:4;15568:29;:::i;:::-;15560:37;;15630:3;15627:1;15623:11;15617:4;15614:21;15606:29;;15346:295;;;;:::o;15646:1403::-;15770:44;15810:3;15805;15770:44;:::i;:::-;15879:18;15871:6;15868:30;15865:56;;;15901:18;;:::i;:::-;15865:56;15945:38;15977:4;15971:11;15945:38;:::i;:::-;16030:67;16090:6;16082;16076:4;16030:67;:::i;:::-;16124:1;16153:2;16145:6;16142:14;16170:1;16165:632;;;;16841:1;16858:6;16855:84;;;16914:9;16909:3;16905:19;16892:33;16883:42;;16855:84;16965:67;17025:6;17018:5;16965:67;:::i;:::-;16959:4;16952:81;16814:229;16135:908;;16165:632;16217:4;16213:9;16205:6;16201:22;16251:37;16283:4;16251:37;:::i;:::-;16310:1;16324:215;16338:7;16335:1;16332:14;16324:215;;;16424:9;16419:3;16415:19;16402:33;16394:6;16387:49;16475:1;16467:6;16463:14;16453:24;;16522:2;16511:9;16507:18;16494:31;;16361:4;16358:1;16354:12;16349:17;;16324:215;;;16567:6;16558:7;16555:19;16552:186;;;16632:9;16627:3;16623:19;16610:33;16675:48;16717:4;16709:6;16705:17;16694:9;16675:48;:::i;:::-;16667:6;16660:64;16575:163;16552:186;16784:1;16780;16772:6;16768:14;16764:22;16758:4;16751:36;16172:625;;;16135:908;;15745:1304;;;15646:1403;;;:::o;17055:180::-;17103:77;17100:1;17093:88;17200:4;17197:1;17190:15;17224:4;17221:1;17214:15;17241:194;17281:4;17301:20;17319:1;17301:20;:::i;:::-;17296:25;;17335:20;17353:1;17335:20;:::i;:::-;17330:25;;17379:1;17376;17372:9;17364:17;;17403:1;17397:4;17394:11;17391:37;;;17408:18;;:::i;:::-;17391:37;17241:194;;;;:::o;17441:191::-;17481:3;17500:20;17518:1;17500:20;:::i;:::-;17495:25;;17534:20;17552:1;17534:20;:::i;:::-;17529:25;;17577:1;17574;17570:9;17563:16;;17598:3;17595:1;17592:10;17589:36;;;17605:18;;:::i;:::-;17589:36;17441:191;;;;:::o;17638:224::-;17778:34;17774:1;17766:6;17762:14;17755:58;17847:7;17842:2;17834:6;17830:15;17823:32;17638:224;:::o;17868:366::-;18010:3;18031:67;18095:2;18090:3;18031:67;:::i;:::-;18024:74;;18107:93;18196:3;18107:93;:::i;:::-;18225:2;18220:3;18216:12;18209:19;;17868:366;;;:::o;18240:419::-;18406:4;18444:2;18433:9;18429:18;18421:26;;18493:9;18487:4;18483:20;18479:1;18468:9;18464:17;18457:47;18521:131;18647:4;18521:131;:::i;:::-;18513:139;;18240:419;;;:::o;18665:410::-;18705:7;18728:20;18746:1;18728:20;:::i;:::-;18723:25;;18762:20;18780:1;18762:20;:::i;:::-;18757:25;;18817:1;18814;18810:9;18839:30;18857:11;18839:30;:::i;:::-;18828:41;;19018:1;19009:7;19005:15;19002:1;18999:22;18979:1;18972:9;18952:83;18929:139;;19048:18;;:::i;:::-;18929:139;18713:362;18665:410;;;;:::o;19081:180::-;19129:77;19126:1;19119:88;19226:4;19223:1;19216:15;19250:4;19247:1;19240:15;19267:185;19307:1;19324:20;19342:1;19324:20;:::i;:::-;19319:25;;19358:20;19376:1;19358:20;:::i;:::-;19353:25;;19397:1;19387:35;;19402:18;;:::i;:::-;19387:35;19444:1;19441;19437:9;19432:14;;19267:185;;;;:::o;19458:220::-;19598:34;19594:1;19586:6;19582:14;19575:58;19667:3;19662:2;19654:6;19650:15;19643:28;19458:220;:::o;19684:366::-;19826:3;19847:67;19911:2;19906:3;19847:67;:::i;:::-;19840:74;;19923:93;20012:3;19923:93;:::i;:::-;20041:2;20036:3;20032:12;20025:19;;19684:366;;;:::o;20056:419::-;20222:4;20260:2;20249:9;20245:18;20237:26;;20309:9;20303:4;20299:20;20295:1;20284:9;20280:17;20273:47;20337:131;20463:4;20337:131;:::i;:::-;20329:139;;20056:419;;;:::o;20481:180::-;20529:77;20526:1;20519:88;20626:4;20623:1;20616:15;20650:4;20647:1;20640:15;20667:143;20724:5;20755:6;20749:13;20740:22;;20771:33;20798:5;20771:33;:::i;:::-;20667:143;;;;:::o;20816:351::-;20886:6;20935:2;20923:9;20914:7;20910:23;20906:32;20903:119;;;20941:79;;:::i;:::-;20903:119;21061:1;21086:64;21142:7;21133:6;21122:9;21118:22;21086:64;:::i;:::-;21076:74;;21032:128;20816:351;;;;:::o;21173:85::-;21218:7;21247:5;21236:16;;21173:85;;;:::o;21264:158::-;21322:9;21355:61;21373:42;21382:32;21408:5;21382:32;:::i;:::-;21373:42;:::i;:::-;21355:61;:::i;:::-;21342:74;;21264:158;;;:::o;21428:147::-;21523:45;21562:5;21523:45;:::i;:::-;21518:3;21511:58;21428:147;;:::o;21581:114::-;21648:6;21682:5;21676:12;21666:22;;21581:114;;;:::o;21701:184::-;21800:11;21834:6;21829:3;21822:19;21874:4;21869:3;21865:14;21850:29;;21701:184;;;;:::o;21891:132::-;21958:4;21981:3;21973:11;;22011:4;22006:3;22002:14;21994:22;;21891:132;;;:::o;22029:108::-;22106:24;22124:5;22106:24;:::i;:::-;22101:3;22094:37;22029:108;;:::o;22143:179::-;22212:10;22233:46;22275:3;22267:6;22233:46;:::i;:::-;22311:4;22306:3;22302:14;22288:28;;22143:179;;;;:::o;22328:113::-;22398:4;22430;22425:3;22421:14;22413:22;;22328:113;;;:::o;22477:732::-;22596:3;22625:54;22673:5;22625:54;:::i;:::-;22695:86;22774:6;22769:3;22695:86;:::i;:::-;22688:93;;22805:56;22855:5;22805:56;:::i;:::-;22884:7;22915:1;22900:284;22925:6;22922:1;22919:13;22900:284;;;23001:6;22995:13;23028:63;23087:3;23072:13;23028:63;:::i;:::-;23021:70;;23114:60;23167:6;23114:60;:::i;:::-;23104:70;;22960:224;22947:1;22944;22940:9;22935:14;;22900:284;;;22904:14;23200:3;23193:10;;22601:608;;;22477:732;;;;:::o;23215:831::-;23478:4;23516:3;23505:9;23501:19;23493:27;;23530:71;23598:1;23587:9;23583:17;23574:6;23530:71;:::i;:::-;23611:80;23687:2;23676:9;23672:18;23663:6;23611:80;:::i;:::-;23738:9;23732:4;23728:20;23723:2;23712:9;23708:18;23701:48;23766:108;23869:4;23860:6;23766:108;:::i;:::-;23758:116;;23884:72;23952:2;23941:9;23937:18;23928:6;23884:72;:::i;:::-;23966:73;24034:3;24023:9;24019:19;24010:6;23966:73;:::i;:::-;23215:831;;;;;;;;:::o;24052:147::-;24153:11;24190:3;24175:18;;24052:147;;;;:::o;24205:114::-;;:::o;24325:398::-;24484:3;24505:83;24586:1;24581:3;24505:83;:::i;:::-;24498:90;;24597:93;24686:3;24597:93;:::i;:::-;24715:1;24710:3;24706:11;24699:18;;24325:398;;;:::o;24729:379::-;24913:3;24935:147;25078:3;24935:147;:::i;:::-;24928:154;;25099:3;25092:10;;24729:379;;;:::o;25114:180::-;25254:32;25250:1;25242:6;25238:14;25231:56;25114:180;:::o;25300:366::-;25442:3;25463:67;25527:2;25522:3;25463:67;:::i;:::-;25456:74;;25539:93;25628:3;25539:93;:::i;:::-;25657:2;25652:3;25648:12;25641:19;;25300:366;;;:::o;25672:419::-;25838:4;25876:2;25865:9;25861:18;25853:26;;25925:9;25919:4;25915:20;25911:1;25900:9;25896:17;25889:47;25953:131;26079:4;25953:131;:::i;:::-;25945:139;;25672:419;;;:::o;26097:177::-;26237:29;26233:1;26225:6;26221:14;26214:53;26097:177;:::o;26280:366::-;26422:3;26443:67;26507:2;26502:3;26443:67;:::i;:::-;26436:74;;26519:93;26608:3;26519:93;:::i;:::-;26637:2;26632:3;26628:12;26621:19;;26280:366;;;:::o;26652:419::-;26818:4;26856:2;26845:9;26841:18;26833:26;;26905:9;26899:4;26895:20;26891:1;26880:9;26876:17;26869:47;26933:131;27059:4;26933:131;:::i;:::-;26925:139;;26652:419;;;:::o

Swarm Source

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