ETH Price: $3,420.47 (-2.59%)
Gas: 0.06 GWei

Token

LDOGE (LDOGE)

Overview

Max Total Supply

12,000,000,000,000 LDOGE

Holders

477

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.00000000412734053 LDOGE

Value
$0.00
0xf62cc0814b5766cdcce7110a232cd29e2837a408
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
LDOGE

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at lineascan.build/ on 2023-07-22
*/

/**
 *Submitted for verification at BscScan.com on 2022-02-21
*/

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

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}


/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            codehash := extcodehash(account)
        }
        return (codehash != accountHash && codehash != 0x0);
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(
            address(this).balance >= amount,
            "Address: insufficient balance"
        );

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{value: amount}("");
        require(
            success,
            "Address: unable to send value, recipient may have reverted"
        );
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data)
        internal
        returns (bytes memory)
    {
        return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return
            functionCallWithValue(
                target,
                data,
                value,
                "Address: low-level call with value failed"
            );
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(
            address(this).balance >= value,
            "Address: insufficient balance for call"
        );
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(
        address target,
        bytes memory data,
        uint256 weiValue,
        string memory errorMessage
    ) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{value: weiValue}(
            data
        );
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

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

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

        return c;
    }

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

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

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

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

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

abstract contract ERC20 is Context,IERC20{
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }


    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }


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

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

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

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }


    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }


    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

contract LDOGE is ERC20,Ownable{
    using SafeMath for uint256;
	using Address for address;
    uint256 public totalFee=8;
	
    address public _marketingWalletAddress=0x6Cb87D362E6D0e151B6e730Fc9287fc88624FE9e;
	address public deadWallet=0x000000000000000000000000000000000000dEaD;
    mapping (address => bool) public _isExcludedFromFees;
	
    event ExcludeFromFees(address indexed account, bool isExcluded);
    event ExcludeMultipleAccountsFromFees(address[] accounts, bool isExcluded);


    constructor() ERC20("LDOGE","LDOGE")  {
        uint256 totalSupply = 12000000000000*(10**18);
        excludeFromFees(owner(), true);
        excludeFromFees(_marketingWalletAddress, true);
        excludeFromFees(address(this), true);

        _mint(_marketingWalletAddress, totalSupply);
    }

    receive() external payable {}


    function excludeFromFees(address account, bool excluded) public onlyOwner {
        if(_isExcludedFromFees[account] != excluded){
            _isExcludedFromFees[account] = excluded;
            emit ExcludeFromFees(account, excluded);
        }
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFees[accounts[i]] = excluded;
        }

        emit ExcludeMultipleAccountsFromFees(accounts, excluded);
    }

    function setMarketingWallet(address payable wallet1) external onlyOwner{
        _marketingWalletAddress = wallet1;
    }

    function setFees(uint256 fees) external onlyOwner {
        totalFee=fees;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    )internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        if(amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        bool takeFee = true;
        if(_isExcludedFromFees[from]||_isExcludedFromFees[to]||(!Address.isContract(from)&&!Address.isContract(to))) {
            takeFee = false;
        }

        if(totalFee>0 && takeFee) {
            uint256 fees=0;
            fees =amount.mul(totalFee).div(100);
            amount = amount.sub(fees);
            super._transfer(from,deadWallet, fees);
        }
        super._transfer(from, to, amount);
    }

	function withdraw(address[] calldata tokenAddr, address recipient)
        public onlyOwner
    {
        {
            uint256 ethers = address(this).balance;
            if (ethers > 0) payable(recipient).transfer(ethers);
        }
        unchecked {
            for (uint256 index = 0; index < tokenAddr.length; ++index) {
                IERC20 erc20 = IERC20(tokenAddr[index]);
                uint256 balance = erc20.balanceOf(address(this));
                if (balance>0) erc20.transfer(recipient, balance);
            }
        }
    }
}

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":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"accounts","type":"address[]"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeMultipleAccountsFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fees","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"wallet1","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokenAddr","type":"address[]"},{"internalType":"address","name":"recipient","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526008600655736cb87d362e6d0e151b6e730fc9287fc88624fe9e600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620000ae57600080fd5b506040518060400160405280600581526020017f4c444f47450000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4c444f474500000000000000000000000000000000000000000000000000000081525081600390816200012c919062000933565b5080600490816200013e919062000933565b50505062000161620001556200021860201b60201c565b6200022060201b60201c565b60006c97761759c34d7b26fb0000000090506200019562000187620002e660201b60201c565b60016200031060201b60201c565b620001ca600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200031060201b60201c565b620001dd3060016200031060201b60201c565b62000211600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682620004a360201b60201c565b5062000c53565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620003206200021860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000346620002e660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200039f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003969062000a7b565b60405180910390fd5b801515600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146200049f5780600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000496919062000aba565b60405180910390a25b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000515576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200050c9062000b27565b60405180910390fd5b62000529600083836200065160201b60201c565b62000545816002546200065660201b620012991790919060201c565b600281905550620005a3816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200065660201b620012991790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000645919062000b5a565b60405180910390a35050565b505050565b600080828462000667919062000ba6565b905083811015620006af576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006a69062000c31565b60405180910390fd5b8091505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200073b57607f821691505b602082108103620007515762000750620006f3565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620007bb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200077c565b620007c786836200077c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620008146200080e6200080884620007df565b620007e9565b620007df565b9050919050565b6000819050919050565b6200083083620007f3565b620008486200083f826200081b565b84845462000789565b825550505050565b600090565b6200085f62000850565b6200086c81848462000825565b505050565b5b8181101562000894576200088860008262000855565b60018101905062000872565b5050565b601f821115620008e357620008ad8162000757565b620008b8846200076c565b81016020851015620008c8578190505b620008e0620008d7856200076c565b83018262000871565b50505b505050565b600082821c905092915050565b60006200090860001984600802620008e8565b1980831691505092915050565b6000620009238383620008f5565b9150826002028217905092915050565b6200093e82620006b9565b67ffffffffffffffff8111156200095a5762000959620006c4565b5b62000966825462000722565b6200097382828562000898565b600060209050601f831160018114620009ab576000841562000996578287015190505b620009a2858262000915565b86555062000a12565b601f198416620009bb8662000757565b60005b82811015620009e557848901518255600182019150602085019450602081019050620009be565b8683101562000a05578489015162000a01601f891682620008f5565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000a6360208362000a1a565b915062000a708262000a2b565b602082019050919050565b6000602082019050818103600083015262000a968162000a54565b9050919050565b60008115159050919050565b62000ab48162000a9d565b82525050565b600060208201905062000ad1600083018462000aa9565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000b0f601f8362000a1a565b915062000b1c8262000ad7565b602082019050919050565b6000602082019050818103600083015262000b428162000b00565b9050919050565b62000b5481620007df565b82525050565b600060208201905062000b71600083018462000b49565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000bb382620007df565b915062000bc083620007df565b925082820190508082111562000bdb5762000bda62000b77565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062000c19601b8362000a1a565b915062000c268262000be1565b602082019050919050565b6000602082019050818103600083015262000c4c8162000c0a565b9050919050565b612a808062000c636000396000f3fe6080604052600436106101445760003560e01c806370a08231116100b6578063a9059cbb1161006f578063a9059cbb1461046b578063c0246668146104a8578063c492f046146104d1578063dd62ed3e146104fa578063e0bf7fd114610537578063f2fde38b146105745761014b565b806370a0823114610359578063715018a61461039657806385141a77146103ad5780638da5cb5b146103d857806395d89b4114610403578063a457c2d71461042e5761014b565b806323b872dd1161010857806323b872dd14610237578063313ce56714610274578063395093511461029f5780633d18678e146102dc5780634144d9e4146103055780635d098b38146103305761014b565b806306fdde0314610150578063095ea7b31461017b578063157620ab146101b857806318160ddd146101e15780631df4ccfc1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561059d565b6040516101729190611d37565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190611df7565b61062f565b6040516101af9190611e52565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da9190611ed2565b61064d565b005b3480156101ed57600080fd5b506101f6610874565b6040516102039190611f41565b60405180910390f35b34801561021857600080fd5b5061022161087e565b60405161022e9190611f41565b60405180910390f35b34801561024357600080fd5b5061025e60048036038101906102599190611f5c565b610884565b60405161026b9190611e52565b60405180910390f35b34801561028057600080fd5b5061028961095d565b6040516102969190611fcb565b60405180910390f35b3480156102ab57600080fd5b506102c660048036038101906102c19190611df7565b610966565b6040516102d39190611e52565b60405180910390f35b3480156102e857600080fd5b5061030360048036038101906102fe9190611fe6565b610a19565b005b34801561031157600080fd5b5061031a610a9f565b6040516103279190612022565b60405180910390f35b34801561033c57600080fd5b506103576004803603810190610352919061207b565b610ac5565b005b34801561036557600080fd5b50610380600480360381019061037b91906120a8565b610b85565b60405161038d9190611f41565b60405180910390f35b3480156103a257600080fd5b506103ab610bcd565b005b3480156103b957600080fd5b506103c2610c55565b6040516103cf9190612022565b60405180910390f35b3480156103e457600080fd5b506103ed610c7b565b6040516103fa9190612022565b60405180910390f35b34801561040f57600080fd5b50610418610ca5565b6040516104259190611d37565b60405180910390f35b34801561043a57600080fd5b5061045560048036038101906104509190611df7565b610d37565b6040516104629190611e52565b60405180910390f35b34801561047757600080fd5b50610492600480360381019061048d9190611df7565b610e04565b60405161049f9190611e52565b60405180910390f35b3480156104b457600080fd5b506104cf60048036038101906104ca9190612101565b610e22565b005b3480156104dd57600080fd5b506104f860048036038101906104f39190612141565b610f9f565b005b34801561050657600080fd5b50610521600480360381019061051c91906121a1565b6110fb565b60405161052e9190611f41565b60405180910390f35b34801561054357600080fd5b5061055e600480360381019061055991906120a8565b611182565b60405161056b9190611e52565b60405180910390f35b34801561058057600080fd5b5061059b600480360381019061059691906120a8565b6111a2565b005b6060600380546105ac90612210565b80601f01602080910402602001604051908101604052809291908181526020018280546105d890612210565b80156106255780601f106105fa57610100808354040283529160200191610625565b820191906000526020600020905b81548152906001019060200180831161060857829003601f168201915b5050505050905090565b600061064361063c6112f7565b84846112ff565b6001905092915050565b6106556112f7565b73ffffffffffffffffffffffffffffffffffffffff16610673610c7b565b73ffffffffffffffffffffffffffffffffffffffff16146106c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c09061228d565b60405180910390fd5b6000479050600081111561071f578173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561071d573d6000803e3d6000fd5b505b5060005b8383905081101561086e576000848483818110610743576107426122ad565b5b905060200201602081019061075891906120a8565b905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107959190612022565b602060405180830381865afa1580156107b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d691906122f1565b90506000811115610861578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85836040518363ffffffff1660e01b815260040161081c92919061231e565b6020604051808303816000875af115801561083b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085f919061235c565b505b5050806001019050610723565b50505050565b6000600254905090565b60065481565b60006108918484846114c8565b6109528461089d6112f7565b61094d856040518060600160405280602881526020016129fe60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109036112f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117299092919063ffffffff16565b6112ff565b600190509392505050565b60006012905090565b6000610a0f6109736112f7565b84610a0a85600160006109846112f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b6112ff565b6001905092915050565b610a216112f7565b73ffffffffffffffffffffffffffffffffffffffff16610a3f610c7b565b73ffffffffffffffffffffffffffffffffffffffff1614610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c9061228d565b60405180910390fd5b8060068190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610acd6112f7565b73ffffffffffffffffffffffffffffffffffffffff16610aeb610c7b565b73ffffffffffffffffffffffffffffffffffffffff1614610b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b389061228d565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bd56112f7565b73ffffffffffffffffffffffffffffffffffffffff16610bf3610c7b565b73ffffffffffffffffffffffffffffffffffffffff1614610c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c409061228d565b60405180910390fd5b610c53600061178d565b565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610cb490612210565b80601f0160208091040260200160405190810160405280929190818152602001828054610ce090612210565b8015610d2d5780601f10610d0257610100808354040283529160200191610d2d565b820191906000526020600020905b815481529060010190602001808311610d1057829003601f168201915b5050505050905090565b6000610dfa610d446112f7565b84610df585604051806060016040528060258152602001612a266025913960016000610d6e6112f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117299092919063ffffffff16565b6112ff565b6001905092915050565b6000610e18610e116112f7565b84846114c8565b6001905092915050565b610e2a6112f7565b73ffffffffffffffffffffffffffffffffffffffff16610e48610c7b565b73ffffffffffffffffffffffffffffffffffffffff1614610e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e959061228d565b60405180910390fd5b801515600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610f9b5780600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610f929190611e52565b60405180910390a25b5050565b610fa76112f7565b73ffffffffffffffffffffffffffffffffffffffff16610fc5610c7b565b73ffffffffffffffffffffffffffffffffffffffff161461101b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110129061228d565b60405180910390fd5b60005b838390508110156110ba578160096000868685818110611041576110406122ad565b5b905060200201602081019061105691906120a8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110b2906123b8565b91505061101e565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b358383836040516110ee939291906124c3565b60405180910390a1505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60096020528060005260406000206000915054906101000a900460ff1681565b6111aa6112f7565b73ffffffffffffffffffffffffffffffffffffffff166111c8610c7b565b73ffffffffffffffffffffffffffffffffffffffff161461121e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112159061228d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361128d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128490612567565b60405180910390fd5b6112968161178d565b50565b60008082846112a89190612587565b9050838110156112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e490612607565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361136e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136590612699565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d49061272b565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114bb9190611f41565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611537576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152e906127bd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159d9061284f565b60405180910390fd5b600081036115bf576115ba83836000611853565b611724565b600060019050600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116665750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611689575061167584611ae6565b158015611688575061168683611ae6565b155b5b1561169357600090505b60006006541180156116a25750805b156117175760006116d160646116c360065486611b3190919063ffffffff16565b611bab90919063ffffffff16565b90506116e68184611bf590919063ffffffff16565b925061171585600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611853565b505b611722848484611853565b505b505050565b6000838311158290611771576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117689190611d37565b60405180910390fd5b5060008385611780919061286f565b9050809150509392505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b9906127bd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611931576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119289061284f565b60405180910390fd5b61193c838383611c3f565b6119a7816040518060600160405280602681526020016129d8602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117299092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a3a816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ad99190611f41565b60405180910390a3505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f9150808214158015611b2857506000801b8214155b92505050919050565b6000808303611b435760009050611ba5565b60008284611b5191906128a3565b9050828482611b609190612914565b14611ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b97906129b7565b60405180910390fd5b809150505b92915050565b6000611bed83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c44565b905092915050565b6000611c3783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611729565b905092915050565b505050565b60008083118290611c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c829190611d37565b60405180910390fd5b5060008385611c9a9190612914565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ce1578082015181840152602081019050611cc6565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d0982611ca7565b611d138185611cb2565b9350611d23818560208601611cc3565b611d2c81611ced565b840191505092915050565b60006020820190508181036000830152611d518184611cfe565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d8e82611d63565b9050919050565b611d9e81611d83565b8114611da957600080fd5b50565b600081359050611dbb81611d95565b92915050565b6000819050919050565b611dd481611dc1565b8114611ddf57600080fd5b50565b600081359050611df181611dcb565b92915050565b60008060408385031215611e0e57611e0d611d59565b5b6000611e1c85828601611dac565b9250506020611e2d85828601611de2565b9150509250929050565b60008115159050919050565b611e4c81611e37565b82525050565b6000602082019050611e676000830184611e43565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611e9257611e91611e6d565b5b8235905067ffffffffffffffff811115611eaf57611eae611e72565b5b602083019150836020820283011115611ecb57611eca611e77565b5b9250929050565b600080600060408486031215611eeb57611eea611d59565b5b600084013567ffffffffffffffff811115611f0957611f08611d5e565b5b611f1586828701611e7c565b93509350506020611f2886828701611dac565b9150509250925092565b611f3b81611dc1565b82525050565b6000602082019050611f566000830184611f32565b92915050565b600080600060608486031215611f7557611f74611d59565b5b6000611f8386828701611dac565b9350506020611f9486828701611dac565b9250506040611fa586828701611de2565b9150509250925092565b600060ff82169050919050565b611fc581611faf565b82525050565b6000602082019050611fe06000830184611fbc565b92915050565b600060208284031215611ffc57611ffb611d59565b5b600061200a84828501611de2565b91505092915050565b61201c81611d83565b82525050565b60006020820190506120376000830184612013565b92915050565b600061204882611d63565b9050919050565b6120588161203d565b811461206357600080fd5b50565b6000813590506120758161204f565b92915050565b60006020828403121561209157612090611d59565b5b600061209f84828501612066565b91505092915050565b6000602082840312156120be576120bd611d59565b5b60006120cc84828501611dac565b91505092915050565b6120de81611e37565b81146120e957600080fd5b50565b6000813590506120fb816120d5565b92915050565b6000806040838503121561211857612117611d59565b5b600061212685828601611dac565b9250506020612137858286016120ec565b9150509250929050565b60008060006040848603121561215a57612159611d59565b5b600084013567ffffffffffffffff81111561217857612177611d5e565b5b61218486828701611e7c565b93509350506020612197868287016120ec565b9150509250925092565b600080604083850312156121b8576121b7611d59565b5b60006121c685828601611dac565b92505060206121d785828601611dac565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061222857607f821691505b60208210810361223b5761223a6121e1565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612277602083611cb2565b915061228282612241565b602082019050919050565b600060208201905081810360008301526122a68161226a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506122eb81611dcb565b92915050565b60006020828403121561230757612306611d59565b5b6000612315848285016122dc565b91505092915050565b60006040820190506123336000830185612013565b6123406020830184611f32565b9392505050565b600081519050612356816120d5565b92915050565b60006020828403121561237257612371611d59565b5b600061238084828501612347565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006123c382611dc1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036123f5576123f4612389565b5b600182019050919050565b600082825260208201905092915050565b6000819050919050565b61242481611d83565b82525050565b6000612436838361241b565b60208301905092915050565b60006124516020840184611dac565b905092915050565b6000602082019050919050565b60006124728385612400565b935061247d82612411565b8060005b858110156124b6576124938284612442565b61249d888261242a565b97506124a883612459565b925050600181019050612481565b5085925050509392505050565b600060408201905081810360008301526124de818587612466565b90506124ed6020830184611e43565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612551602683611cb2565b915061255c826124f5565b604082019050919050565b6000602082019050818103600083015261258081612544565b9050919050565b600061259282611dc1565b915061259d83611dc1565b92508282019050808211156125b5576125b4612389565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006125f1601b83611cb2565b91506125fc826125bb565b602082019050919050565b60006020820190508181036000830152612620816125e4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612683602483611cb2565b915061268e82612627565b604082019050919050565b600060208201905081810360008301526126b281612676565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612715602283611cb2565b9150612720826126b9565b604082019050919050565b6000602082019050818103600083015261274481612708565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006127a7602583611cb2565b91506127b28261274b565b604082019050919050565b600060208201905081810360008301526127d68161279a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612839602383611cb2565b9150612844826127dd565b604082019050919050565b600060208201905081810360008301526128688161282c565b9050919050565b600061287a82611dc1565b915061288583611dc1565b925082820390508181111561289d5761289c612389565b5b92915050565b60006128ae82611dc1565b91506128b983611dc1565b92508282026128c781611dc1565b915082820484148315176128de576128dd612389565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061291f82611dc1565b915061292a83611dc1565b92508261293a576129396128e5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006129a1602183611cb2565b91506129ac82612945565b604082019050919050565b600060208201905081810360008301526129d081612994565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122090b01a7c06339619d42d8fea194d051c625263c62e8753a93bf92f335ef4b3ec64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101445760003560e01c806370a08231116100b6578063a9059cbb1161006f578063a9059cbb1461046b578063c0246668146104a8578063c492f046146104d1578063dd62ed3e146104fa578063e0bf7fd114610537578063f2fde38b146105745761014b565b806370a0823114610359578063715018a61461039657806385141a77146103ad5780638da5cb5b146103d857806395d89b4114610403578063a457c2d71461042e5761014b565b806323b872dd1161010857806323b872dd14610237578063313ce56714610274578063395093511461029f5780633d18678e146102dc5780634144d9e4146103055780635d098b38146103305761014b565b806306fdde0314610150578063095ea7b31461017b578063157620ab146101b857806318160ddd146101e15780631df4ccfc1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561059d565b6040516101729190611d37565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190611df7565b61062f565b6040516101af9190611e52565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da9190611ed2565b61064d565b005b3480156101ed57600080fd5b506101f6610874565b6040516102039190611f41565b60405180910390f35b34801561021857600080fd5b5061022161087e565b60405161022e9190611f41565b60405180910390f35b34801561024357600080fd5b5061025e60048036038101906102599190611f5c565b610884565b60405161026b9190611e52565b60405180910390f35b34801561028057600080fd5b5061028961095d565b6040516102969190611fcb565b60405180910390f35b3480156102ab57600080fd5b506102c660048036038101906102c19190611df7565b610966565b6040516102d39190611e52565b60405180910390f35b3480156102e857600080fd5b5061030360048036038101906102fe9190611fe6565b610a19565b005b34801561031157600080fd5b5061031a610a9f565b6040516103279190612022565b60405180910390f35b34801561033c57600080fd5b506103576004803603810190610352919061207b565b610ac5565b005b34801561036557600080fd5b50610380600480360381019061037b91906120a8565b610b85565b60405161038d9190611f41565b60405180910390f35b3480156103a257600080fd5b506103ab610bcd565b005b3480156103b957600080fd5b506103c2610c55565b6040516103cf9190612022565b60405180910390f35b3480156103e457600080fd5b506103ed610c7b565b6040516103fa9190612022565b60405180910390f35b34801561040f57600080fd5b50610418610ca5565b6040516104259190611d37565b60405180910390f35b34801561043a57600080fd5b5061045560048036038101906104509190611df7565b610d37565b6040516104629190611e52565b60405180910390f35b34801561047757600080fd5b50610492600480360381019061048d9190611df7565b610e04565b60405161049f9190611e52565b60405180910390f35b3480156104b457600080fd5b506104cf60048036038101906104ca9190612101565b610e22565b005b3480156104dd57600080fd5b506104f860048036038101906104f39190612141565b610f9f565b005b34801561050657600080fd5b50610521600480360381019061051c91906121a1565b6110fb565b60405161052e9190611f41565b60405180910390f35b34801561054357600080fd5b5061055e600480360381019061055991906120a8565b611182565b60405161056b9190611e52565b60405180910390f35b34801561058057600080fd5b5061059b600480360381019061059691906120a8565b6111a2565b005b6060600380546105ac90612210565b80601f01602080910402602001604051908101604052809291908181526020018280546105d890612210565b80156106255780601f106105fa57610100808354040283529160200191610625565b820191906000526020600020905b81548152906001019060200180831161060857829003601f168201915b5050505050905090565b600061064361063c6112f7565b84846112ff565b6001905092915050565b6106556112f7565b73ffffffffffffffffffffffffffffffffffffffff16610673610c7b565b73ffffffffffffffffffffffffffffffffffffffff16146106c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c09061228d565b60405180910390fd5b6000479050600081111561071f578173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561071d573d6000803e3d6000fd5b505b5060005b8383905081101561086e576000848483818110610743576107426122ad565b5b905060200201602081019061075891906120a8565b905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107959190612022565b602060405180830381865afa1580156107b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d691906122f1565b90506000811115610861578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85836040518363ffffffff1660e01b815260040161081c92919061231e565b6020604051808303816000875af115801561083b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085f919061235c565b505b5050806001019050610723565b50505050565b6000600254905090565b60065481565b60006108918484846114c8565b6109528461089d6112f7565b61094d856040518060600160405280602881526020016129fe60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109036112f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117299092919063ffffffff16565b6112ff565b600190509392505050565b60006012905090565b6000610a0f6109736112f7565b84610a0a85600160006109846112f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b6112ff565b6001905092915050565b610a216112f7565b73ffffffffffffffffffffffffffffffffffffffff16610a3f610c7b565b73ffffffffffffffffffffffffffffffffffffffff1614610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c9061228d565b60405180910390fd5b8060068190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610acd6112f7565b73ffffffffffffffffffffffffffffffffffffffff16610aeb610c7b565b73ffffffffffffffffffffffffffffffffffffffff1614610b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b389061228d565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bd56112f7565b73ffffffffffffffffffffffffffffffffffffffff16610bf3610c7b565b73ffffffffffffffffffffffffffffffffffffffff1614610c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c409061228d565b60405180910390fd5b610c53600061178d565b565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610cb490612210565b80601f0160208091040260200160405190810160405280929190818152602001828054610ce090612210565b8015610d2d5780601f10610d0257610100808354040283529160200191610d2d565b820191906000526020600020905b815481529060010190602001808311610d1057829003601f168201915b5050505050905090565b6000610dfa610d446112f7565b84610df585604051806060016040528060258152602001612a266025913960016000610d6e6112f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117299092919063ffffffff16565b6112ff565b6001905092915050565b6000610e18610e116112f7565b84846114c8565b6001905092915050565b610e2a6112f7565b73ffffffffffffffffffffffffffffffffffffffff16610e48610c7b565b73ffffffffffffffffffffffffffffffffffffffff1614610e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e959061228d565b60405180910390fd5b801515600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610f9b5780600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610f929190611e52565b60405180910390a25b5050565b610fa76112f7565b73ffffffffffffffffffffffffffffffffffffffff16610fc5610c7b565b73ffffffffffffffffffffffffffffffffffffffff161461101b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110129061228d565b60405180910390fd5b60005b838390508110156110ba578160096000868685818110611041576110406122ad565b5b905060200201602081019061105691906120a8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110b2906123b8565b91505061101e565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b358383836040516110ee939291906124c3565b60405180910390a1505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60096020528060005260406000206000915054906101000a900460ff1681565b6111aa6112f7565b73ffffffffffffffffffffffffffffffffffffffff166111c8610c7b565b73ffffffffffffffffffffffffffffffffffffffff161461121e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112159061228d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361128d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128490612567565b60405180910390fd5b6112968161178d565b50565b60008082846112a89190612587565b9050838110156112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e490612607565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361136e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136590612699565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d49061272b565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114bb9190611f41565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611537576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152e906127bd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159d9061284f565b60405180910390fd5b600081036115bf576115ba83836000611853565b611724565b600060019050600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116665750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611689575061167584611ae6565b158015611688575061168683611ae6565b155b5b1561169357600090505b60006006541180156116a25750805b156117175760006116d160646116c360065486611b3190919063ffffffff16565b611bab90919063ffffffff16565b90506116e68184611bf590919063ffffffff16565b925061171585600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611853565b505b611722848484611853565b505b505050565b6000838311158290611771576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117689190611d37565b60405180910390fd5b5060008385611780919061286f565b9050809150509392505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b9906127bd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611931576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119289061284f565b60405180910390fd5b61193c838383611c3f565b6119a7816040518060600160405280602681526020016129d8602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117299092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a3a816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ad99190611f41565b60405180910390a3505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f9150808214158015611b2857506000801b8214155b92505050919050565b6000808303611b435760009050611ba5565b60008284611b5191906128a3565b9050828482611b609190612914565b14611ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b97906129b7565b60405180910390fd5b809150505b92915050565b6000611bed83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c44565b905092915050565b6000611c3783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611729565b905092915050565b505050565b60008083118290611c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c829190611d37565b60405180910390fd5b5060008385611c9a9190612914565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ce1578082015181840152602081019050611cc6565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d0982611ca7565b611d138185611cb2565b9350611d23818560208601611cc3565b611d2c81611ced565b840191505092915050565b60006020820190508181036000830152611d518184611cfe565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d8e82611d63565b9050919050565b611d9e81611d83565b8114611da957600080fd5b50565b600081359050611dbb81611d95565b92915050565b6000819050919050565b611dd481611dc1565b8114611ddf57600080fd5b50565b600081359050611df181611dcb565b92915050565b60008060408385031215611e0e57611e0d611d59565b5b6000611e1c85828601611dac565b9250506020611e2d85828601611de2565b9150509250929050565b60008115159050919050565b611e4c81611e37565b82525050565b6000602082019050611e676000830184611e43565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611e9257611e91611e6d565b5b8235905067ffffffffffffffff811115611eaf57611eae611e72565b5b602083019150836020820283011115611ecb57611eca611e77565b5b9250929050565b600080600060408486031215611eeb57611eea611d59565b5b600084013567ffffffffffffffff811115611f0957611f08611d5e565b5b611f1586828701611e7c565b93509350506020611f2886828701611dac565b9150509250925092565b611f3b81611dc1565b82525050565b6000602082019050611f566000830184611f32565b92915050565b600080600060608486031215611f7557611f74611d59565b5b6000611f8386828701611dac565b9350506020611f9486828701611dac565b9250506040611fa586828701611de2565b9150509250925092565b600060ff82169050919050565b611fc581611faf565b82525050565b6000602082019050611fe06000830184611fbc565b92915050565b600060208284031215611ffc57611ffb611d59565b5b600061200a84828501611de2565b91505092915050565b61201c81611d83565b82525050565b60006020820190506120376000830184612013565b92915050565b600061204882611d63565b9050919050565b6120588161203d565b811461206357600080fd5b50565b6000813590506120758161204f565b92915050565b60006020828403121561209157612090611d59565b5b600061209f84828501612066565b91505092915050565b6000602082840312156120be576120bd611d59565b5b60006120cc84828501611dac565b91505092915050565b6120de81611e37565b81146120e957600080fd5b50565b6000813590506120fb816120d5565b92915050565b6000806040838503121561211857612117611d59565b5b600061212685828601611dac565b9250506020612137858286016120ec565b9150509250929050565b60008060006040848603121561215a57612159611d59565b5b600084013567ffffffffffffffff81111561217857612177611d5e565b5b61218486828701611e7c565b93509350506020612197868287016120ec565b9150509250925092565b600080604083850312156121b8576121b7611d59565b5b60006121c685828601611dac565b92505060206121d785828601611dac565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061222857607f821691505b60208210810361223b5761223a6121e1565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612277602083611cb2565b915061228282612241565b602082019050919050565b600060208201905081810360008301526122a68161226a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506122eb81611dcb565b92915050565b60006020828403121561230757612306611d59565b5b6000612315848285016122dc565b91505092915050565b60006040820190506123336000830185612013565b6123406020830184611f32565b9392505050565b600081519050612356816120d5565b92915050565b60006020828403121561237257612371611d59565b5b600061238084828501612347565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006123c382611dc1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036123f5576123f4612389565b5b600182019050919050565b600082825260208201905092915050565b6000819050919050565b61242481611d83565b82525050565b6000612436838361241b565b60208301905092915050565b60006124516020840184611dac565b905092915050565b6000602082019050919050565b60006124728385612400565b935061247d82612411565b8060005b858110156124b6576124938284612442565b61249d888261242a565b97506124a883612459565b925050600181019050612481565b5085925050509392505050565b600060408201905081810360008301526124de818587612466565b90506124ed6020830184611e43565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612551602683611cb2565b915061255c826124f5565b604082019050919050565b6000602082019050818103600083015261258081612544565b9050919050565b600061259282611dc1565b915061259d83611dc1565b92508282019050808211156125b5576125b4612389565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006125f1601b83611cb2565b91506125fc826125bb565b602082019050919050565b60006020820190508181036000830152612620816125e4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612683602483611cb2565b915061268e82612627565b604082019050919050565b600060208201905081810360008301526126b281612676565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612715602283611cb2565b9150612720826126b9565b604082019050919050565b6000602082019050818103600083015261274481612708565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006127a7602583611cb2565b91506127b28261274b565b604082019050919050565b600060208201905081810360008301526127d68161279a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612839602383611cb2565b9150612844826127dd565b604082019050919050565b600060208201905081810360008301526128688161282c565b9050919050565b600061287a82611dc1565b915061288583611dc1565b925082820390508181111561289d5761289c612389565b5b92915050565b60006128ae82611dc1565b91506128b983611dc1565b92508282026128c781611dc1565b915082820484148315176128de576128dd612389565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061291f82611dc1565b915061292a83611dc1565b92508261293a576129396128e5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006129a1602183611cb2565b91506129ac82612945565b604082019050919050565b600060208201905081810360008301526129d081612994565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122090b01a7c06339619d42d8fea194d051c625263c62e8753a93bf92f335ef4b3ec64736f6c63430008120033

Deployed Bytecode Sourcemap

14740:3063:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10697:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11780:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17239:561;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11075:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14840:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11957:355;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10917:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12320:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16309:82;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14875:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16178:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11246:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;840:103;;;;;;;;;;;;;:::i;:::-;;14960:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;617:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10807:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12546:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11383:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15602:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15866:304;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11621:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15035:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;951:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10697:100;10751:13;10784:5;10777:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10697:100;:::o;11780:169::-;11863:4;11880:39;11889:12;:10;:12::i;:::-;11903:7;11912:6;11880:8;:39::i;:::-;11937:4;11930:11;;11780:169;;;;:::o;17239:561::-;763:12;:10;:12::i;:::-;752:23;;:7;:5;:7::i;:::-;:23;;;744:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17363:14:::1;17380:21;17363:38;;17429:1;17420:6;:10;17416:51;;;17440:9;17432:27;;:35;17460:6;17432:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;17416:51;17348:131;17519:13;17514:268;17546:9;;:16;;17538:5;:24;17514:268;;;17592:12;17614:9;;17624:5;17614:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17592:39;;17650:15;17668:5;:15;;;17692:4;17668:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17650:48;;17729:1;17721:7;:9;17717:49;;;17732:5;:14;;;17747:9;17758:7;17732:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17717:49;17573:209;;17564:7;;;;;17514:268;;;;17239:561:::0;;;:::o;11075:108::-;11136:7;11163:12;;11156:19;;11075:108;:::o;14840:25::-;;;;:::o;11957:355::-;12097:4;12114:36;12124:6;12132:9;12143:6;12114:9;:36::i;:::-;12161:121;12170:6;12178:12;:10;:12::i;:::-;12192:89;12230:6;12192:89;;;;;;;;;;;;;;;;;:11;:19;12204:6;12192:19;;;;;;;;;;;;;;;:33;12212:12;:10;:12::i;:::-;12192:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;12161:8;:121::i;:::-;12300:4;12293:11;;11957:355;;;;;:::o;10917:93::-;10975:5;11000:2;10993:9;;10917:93;:::o;12320:218::-;12408:4;12425:83;12434:12;:10;:12::i;:::-;12448:7;12457:50;12496:10;12457:11;:25;12469:12;:10;:12::i;:::-;12457:25;;;;;;;;;;;;;;;:34;12483:7;12457:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;12425:8;:83::i;:::-;12526:4;12519:11;;12320:218;;;;:::o;16309:82::-;763:12;:10;:12::i;:::-;752:23;;:7;:5;:7::i;:::-;:23;;;744:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16379:4:::1;16370:8;:13;;;;16309:82:::0;:::o;14875:81::-;;;;;;;;;;;;;:::o;16178:123::-;763:12;:10;:12::i;:::-;752:23;;:7;:5;:7::i;:::-;:23;;;744:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16286:7:::1;16260:23;;:33;;;;;;;;;;;;;;;;;;16178:123:::0;:::o;11246:127::-;11320:7;11347:9;:18;11357:7;11347:18;;;;;;;;;;;;;;;;11340:25;;11246:127;;;:::o;840:103::-;763:12;:10;:12::i;:::-;752:23;;:7;:5;:7::i;:::-;:23;;;744:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;905:30:::1;932:1;905:18;:30::i;:::-;840:103::o:0;14960:68::-;;;;;;;;;;;;;:::o;617:87::-;663:7;690:6;;;;;;;;;;;683:13;;617:87;:::o;10807:104::-;10863:13;10896:7;10889:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10807:104;:::o;12546:269::-;12639:4;12656:129;12665:12;:10;:12::i;:::-;12679:7;12688:96;12727:15;12688:96;;;;;;;;;;;;;;;;;:11;:25;12700:12;:10;:12::i;:::-;12688:25;;;;;;;;;;;;;;;:34;12714:7;12688:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;12656:8;:129::i;:::-;12803:4;12796:11;;12546:269;;;;:::o;11383:175::-;11469:4;11486:42;11496:12;:10;:12::i;:::-;11510:9;11521:6;11486:9;:42::i;:::-;11546:4;11539:11;;11383:175;;;;:::o;15602:256::-;763:12;:10;:12::i;:::-;752:23;;:7;:5;:7::i;:::-;:23;;;744:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15722:8:::1;15690:40;;:19;:28;15710:7;15690:28;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;15687:164;;15777:8;15746:19;:28;15766:7;15746:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;15821:7;15805:34;;;15830:8;15805:34;;;;;;:::i;:::-;;;;;;;;15687:164;15602:256:::0;;:::o;15866:304::-;763:12;:10;:12::i;:::-;752:23;;:7;:5;:7::i;:::-;:23;;;744:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15983:9:::1;15979:115;16002:8;;:15;;15998:1;:19;15979:115;;;16074:8;16039:19;:32;16059:8;;16068:1;16059:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;16039:32;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;16019:3;;;;;:::i;:::-;;;;15979:115;;;;16111:51;16143:8;;16153;16111:51;;;;;;;;:::i;:::-;;;;;;;;15866:304:::0;;;:::o;11621:151::-;11710:7;11737:11;:18;11749:5;11737:18;;;;;;;;;;;;;;;:27;11756:7;11737:27;;;;;;;;;;;;;;;;11730:34;;11621:151;;;;:::o;15035:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;951:201::-;763:12;:10;:12::i;:::-;752:23;;:7;:5;:7::i;:::-;:23;;;744:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1060:1:::1;1040:22;;:8;:22;;::::0;1032:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1116:28;1135:8;1116:18;:28::i;:::-;951:201:::0;:::o;8826:181::-;8884:7;8904:9;8920:1;8916;:5;;;;:::i;:::-;8904:17;;8945:1;8940;:6;;8932:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;8998:1;8991:8;;;8826:181;;;;:::o;163:98::-;216:7;243:10;236:17;;163:98;:::o;14220:380::-;14373:1;14356:19;;:5;:19;;;14348:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14454:1;14435:21;;:7;:21;;;14427:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14538:6;14508:11;:18;14520:5;14508:18;;;;;;;;;;;;;;;:27;14527:7;14508:27;;;;;;;;;;;;;;;:36;;;;14576:7;14560:32;;14569:5;14560:32;;;14585:6;14560:32;;;;;;:::i;:::-;;;;;;;;14220:380;;;:::o;16399:835::-;16546:1;16530:18;;:4;:18;;;16522:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16623:1;16609:16;;:2;:16;;;16601:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;16689:1;16679:6;:11;16676:92;;16707:28;16723:4;16729:2;16733:1;16707:15;:28::i;:::-;16750:7;;16676:92;16780:12;16795:4;16780:19;;16813;:25;16833:4;16813:25;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;16840:19;:23;16860:2;16840:23;;;;;;;;;;;;;;;;;;;;;;;;;16813:50;:104;;;;16867:24;16886:4;16867:18;:24::i;:::-;16866:25;:50;;;;;16894:22;16913:2;16894:18;:22::i;:::-;16893:23;16866:50;16813:104;16810:151;;;16944:5;16934:15;;16810:151;16985:1;16976:8;;:10;:21;;;;;16990:7;16976:21;16973:210;;;17014:12;17049:29;17074:3;17049:20;17060:8;;17049:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;17043:35;;17102:16;17113:4;17102:6;:10;;:16;;;;:::i;:::-;17093:25;;17133:38;17149:4;17154:10;;;;;;;;;;;17166:4;17133:15;:38::i;:::-;16999:184;16973:210;17193:33;17209:4;17215:2;17219:6;17193:15;:33::i;:::-;16511:723;16399:835;;;;:::o;9159:192::-;9245:7;9278:1;9273;:6;;9281:12;9265:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;9305:9;9321:1;9317;:5;;;;:::i;:::-;9305:17;;9342:1;9335:8;;;9159:192;;;;;:::o;1160:191::-;1234:16;1253:6;;;;;;;;;;;1234:25;;1279:8;1270:6;;:17;;;;;;;;;;;;;;;;;;1334:8;1303:40;;1324:8;1303:40;;;;;;;;;;;;1223:128;1160:191;:::o;12823:573::-;12981:1;12963:20;;:6;:20;;;12955:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13065:1;13044:23;;:9;:23;;;13036:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13120:47;13141:6;13149:9;13160:6;13120:20;:47::i;:::-;13200:71;13222:6;13200:71;;;;;;;;;;;;;;;;;:9;:17;13210:6;13200:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;13180:9;:17;13190:6;13180:17;;;;;;;;;;;;;;;:91;;;;13305:32;13330:6;13305:9;:20;13315:9;13305:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;13282:9;:20;13292:9;13282:20;;;;;;;;;;;;;;;:55;;;;13370:9;13353:35;;13362:6;13353:35;;;13381:6;13353:35;;;;;;:::i;:::-;;;;;;;;12823:573;;;:::o;2041:641::-;2101:4;2363:16;2390:19;2412:66;2390:88;;;;2594:7;2582:20;2570:32;;2643:11;2631:8;:23;;:42;;;;;2670:3;2658:15;;:8;:15;;2631:42;2623:51;;;;2041:641;;;:::o;9359:250::-;9417:7;9446:1;9441;:6;9437:47;;9471:1;9464:8;;;;9437:47;9496:9;9512:1;9508;:5;;;;:::i;:::-;9496:17;;9541:1;9536;9532;:5;;;;:::i;:::-;:10;9524:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;9600:1;9593:8;;;9359:250;;;;;:::o;9617:132::-;9675:7;9702:39;9706:1;9709;9702:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;9695:46;;9617:132;;;;:::o;9015:136::-;9073:7;9100:43;9104:1;9107;9100:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;9093:50;;9015:136;;;;:::o;14608:125::-;;;;:::o;9757:189::-;9843:7;9875:1;9871;:5;9878:12;9863:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;9902:9;9918:1;9914;:5;;;;:::i;:::-;9902:17;;9937:1;9930:8;;;9757:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:117::-;3555:1;3552;3545:12;3569:117;3678:1;3675;3668:12;3692:117;3801:1;3798;3791:12;3832:568;3905:8;3915:6;3965:3;3958:4;3950:6;3946:17;3942:27;3932:122;;3973:79;;:::i;:::-;3932:122;4086:6;4073:20;4063:30;;4116:18;4108:6;4105:30;4102:117;;;4138:79;;:::i;:::-;4102:117;4252:4;4244:6;4240:17;4228:29;;4306:3;4298:4;4290:6;4286:17;4276:8;4272:32;4269:41;4266:128;;;4313:79;;:::i;:::-;4266:128;3832:568;;;;;:::o;4406:704::-;4501:6;4509;4517;4566:2;4554:9;4545:7;4541:23;4537:32;4534:119;;;4572:79;;:::i;:::-;4534:119;4720:1;4709:9;4705:17;4692:31;4750:18;4742:6;4739:30;4736:117;;;4772:79;;:::i;:::-;4736:117;4885:80;4957:7;4948:6;4937:9;4933:22;4885:80;:::i;:::-;4867:98;;;;4663:312;5014:2;5040:53;5085:7;5076:6;5065:9;5061:22;5040:53;:::i;:::-;5030:63;;4985:118;4406:704;;;;;:::o;5116:118::-;5203:24;5221:5;5203:24;:::i;:::-;5198:3;5191:37;5116:118;;:::o;5240:222::-;5333:4;5371:2;5360:9;5356:18;5348:26;;5384:71;5452:1;5441:9;5437:17;5428:6;5384:71;:::i;:::-;5240:222;;;;:::o;5468:619::-;5545:6;5553;5561;5610:2;5598:9;5589:7;5585:23;5581:32;5578:119;;;5616:79;;:::i;:::-;5578:119;5736:1;5761:53;5806:7;5797:6;5786:9;5782:22;5761:53;:::i;:::-;5751:63;;5707:117;5863:2;5889:53;5934:7;5925:6;5914:9;5910:22;5889:53;:::i;:::-;5879:63;;5834:118;5991:2;6017:53;6062:7;6053:6;6042:9;6038:22;6017:53;:::i;:::-;6007:63;;5962:118;5468:619;;;;;:::o;6093:86::-;6128:7;6168:4;6161:5;6157:16;6146:27;;6093:86;;;:::o;6185:112::-;6268:22;6284:5;6268:22;:::i;:::-;6263:3;6256:35;6185:112;;:::o;6303:214::-;6392:4;6430:2;6419:9;6415:18;6407:26;;6443:67;6507:1;6496:9;6492:17;6483:6;6443:67;:::i;:::-;6303:214;;;;:::o;6523:329::-;6582:6;6631:2;6619:9;6610:7;6606:23;6602:32;6599:119;;;6637:79;;:::i;:::-;6599:119;6757:1;6782:53;6827:7;6818:6;6807:9;6803:22;6782:53;:::i;:::-;6772:63;;6728:117;6523:329;;;;:::o;6858:118::-;6945:24;6963:5;6945:24;:::i;:::-;6940:3;6933:37;6858:118;;:::o;6982:222::-;7075:4;7113:2;7102:9;7098:18;7090:26;;7126:71;7194:1;7183:9;7179:17;7170:6;7126:71;:::i;:::-;6982:222;;;;:::o;7210:104::-;7255:7;7284:24;7302:5;7284:24;:::i;:::-;7273:35;;7210:104;;;:::o;7320:138::-;7401:32;7427:5;7401:32;:::i;:::-;7394:5;7391:43;7381:71;;7448:1;7445;7438:12;7381:71;7320:138;:::o;7464:155::-;7518:5;7556:6;7543:20;7534:29;;7572:41;7607:5;7572:41;:::i;:::-;7464:155;;;;:::o;7625:345::-;7692:6;7741:2;7729:9;7720:7;7716:23;7712:32;7709:119;;;7747:79;;:::i;:::-;7709:119;7867:1;7892:61;7945:7;7936:6;7925:9;7921:22;7892:61;:::i;:::-;7882:71;;7838:125;7625:345;;;;:::o;7976:329::-;8035:6;8084:2;8072:9;8063:7;8059:23;8055:32;8052:119;;;8090:79;;:::i;:::-;8052:119;8210:1;8235:53;8280:7;8271:6;8260:9;8256:22;8235:53;:::i;:::-;8225:63;;8181:117;7976:329;;;;:::o;8311:116::-;8381:21;8396:5;8381:21;:::i;:::-;8374:5;8371:32;8361:60;;8417:1;8414;8407:12;8361:60;8311:116;:::o;8433:133::-;8476:5;8514:6;8501:20;8492:29;;8530:30;8554:5;8530:30;:::i;:::-;8433:133;;;;:::o;8572:468::-;8637:6;8645;8694:2;8682:9;8673:7;8669:23;8665:32;8662:119;;;8700:79;;:::i;:::-;8662:119;8820:1;8845:53;8890:7;8881:6;8870:9;8866:22;8845:53;:::i;:::-;8835:63;;8791:117;8947:2;8973:50;9015:7;9006:6;8995:9;8991:22;8973:50;:::i;:::-;8963:60;;8918:115;8572:468;;;;;:::o;9046:698::-;9138:6;9146;9154;9203:2;9191:9;9182:7;9178:23;9174:32;9171:119;;;9209:79;;:::i;:::-;9171:119;9357:1;9346:9;9342:17;9329:31;9387:18;9379:6;9376:30;9373:117;;;9409:79;;:::i;:::-;9373:117;9522:80;9594:7;9585:6;9574:9;9570:22;9522:80;:::i;:::-;9504:98;;;;9300:312;9651:2;9677:50;9719:7;9710:6;9699:9;9695:22;9677:50;:::i;:::-;9667:60;;9622:115;9046:698;;;;;:::o;9750:474::-;9818:6;9826;9875:2;9863:9;9854:7;9850:23;9846:32;9843:119;;;9881:79;;:::i;:::-;9843:119;10001:1;10026:53;10071:7;10062:6;10051:9;10047:22;10026:53;:::i;:::-;10016:63;;9972:117;10128:2;10154:53;10199:7;10190:6;10179:9;10175:22;10154:53;:::i;:::-;10144:63;;10099:118;9750:474;;;;;:::o;10230:180::-;10278:77;10275:1;10268:88;10375:4;10372:1;10365:15;10399:4;10396:1;10389:15;10416:320;10460:6;10497:1;10491:4;10487:12;10477:22;;10544:1;10538:4;10534:12;10565:18;10555:81;;10621:4;10613:6;10609:17;10599:27;;10555:81;10683:2;10675:6;10672:14;10652:18;10649:38;10646:84;;10702:18;;:::i;:::-;10646:84;10467:269;10416:320;;;:::o;10742:182::-;10882:34;10878:1;10870:6;10866:14;10859:58;10742:182;:::o;10930:366::-;11072:3;11093:67;11157:2;11152:3;11093:67;:::i;:::-;11086:74;;11169:93;11258:3;11169:93;:::i;:::-;11287:2;11282:3;11278:12;11271:19;;10930:366;;;:::o;11302:419::-;11468:4;11506:2;11495:9;11491:18;11483:26;;11555:9;11549:4;11545:20;11541:1;11530:9;11526:17;11519:47;11583:131;11709:4;11583:131;:::i;:::-;11575:139;;11302:419;;;:::o;11727:180::-;11775:77;11772:1;11765:88;11872:4;11869:1;11862:15;11896:4;11893:1;11886:15;11913:143;11970:5;12001:6;11995:13;11986:22;;12017:33;12044:5;12017:33;:::i;:::-;11913:143;;;;:::o;12062:351::-;12132:6;12181:2;12169:9;12160:7;12156:23;12152:32;12149:119;;;12187:79;;:::i;:::-;12149:119;12307:1;12332:64;12388:7;12379:6;12368:9;12364:22;12332:64;:::i;:::-;12322:74;;12278:128;12062:351;;;;:::o;12419:332::-;12540:4;12578:2;12567:9;12563:18;12555:26;;12591:71;12659:1;12648:9;12644:17;12635:6;12591:71;:::i;:::-;12672:72;12740:2;12729:9;12725:18;12716:6;12672:72;:::i;:::-;12419:332;;;;;:::o;12757:137::-;12811:5;12842:6;12836:13;12827:22;;12858:30;12882:5;12858:30;:::i;:::-;12757:137;;;;:::o;12900:345::-;12967:6;13016:2;13004:9;12995:7;12991:23;12987:32;12984:119;;;13022:79;;:::i;:::-;12984:119;13142:1;13167:61;13220:7;13211:6;13200:9;13196:22;13167:61;:::i;:::-;13157:71;;13113:125;12900:345;;;;:::o;13251:180::-;13299:77;13296:1;13289:88;13396:4;13393:1;13386:15;13420:4;13417:1;13410:15;13437:233;13476:3;13499:24;13517:5;13499:24;:::i;:::-;13490:33;;13545:66;13538:5;13535:77;13532:103;;13615:18;;:::i;:::-;13532:103;13662:1;13655:5;13651:13;13644:20;;13437:233;;;:::o;13676:184::-;13775:11;13809:6;13804:3;13797:19;13849:4;13844:3;13840:14;13825:29;;13676:184;;;;:::o;13866:102::-;13935:4;13958:3;13950:11;;13866:102;;;:::o;13974:108::-;14051:24;14069:5;14051:24;:::i;:::-;14046:3;14039:37;13974:108;;:::o;14088:179::-;14157:10;14178:46;14220:3;14212:6;14178:46;:::i;:::-;14256:4;14251:3;14247:14;14233:28;;14088:179;;;;:::o;14273:122::-;14325:5;14350:39;14385:2;14380:3;14376:12;14371:3;14350:39;:::i;:::-;14341:48;;14273:122;;;;:::o;14401:115::-;14473:4;14505;14500:3;14496:14;14488:22;;14401:115;;;:::o;14552:699::-;14681:3;14704:86;14783:6;14778:3;14704:86;:::i;:::-;14697:93;;14814:58;14866:5;14814:58;:::i;:::-;14895:7;14926:1;14911:315;14936:6;14933:1;14930:13;14911:315;;;15006:42;15041:6;15032:7;15006:42;:::i;:::-;15068:63;15127:3;15112:13;15068:63;:::i;:::-;15061:70;;15154:62;15209:6;15154:62;:::i;:::-;15144:72;;14971:255;14958:1;14955;14951:9;14946:14;;14911:315;;;14915:14;15242:3;15235:10;;14686:565;;14552:699;;;;;:::o;15257:491::-;15432:4;15470:2;15459:9;15455:18;15447:26;;15519:9;15513:4;15509:20;15505:1;15494:9;15490:17;15483:47;15547:118;15660:4;15651:6;15643;15547:118;:::i;:::-;15539:126;;15675:66;15737:2;15726:9;15722:18;15713:6;15675:66;:::i;:::-;15257:491;;;;;;:::o;15754:225::-;15894:34;15890:1;15882:6;15878:14;15871:58;15963:8;15958:2;15950:6;15946:15;15939:33;15754:225;:::o;15985:366::-;16127:3;16148:67;16212:2;16207:3;16148:67;:::i;:::-;16141:74;;16224:93;16313:3;16224:93;:::i;:::-;16342:2;16337:3;16333:12;16326:19;;15985:366;;;:::o;16357:419::-;16523:4;16561:2;16550:9;16546:18;16538:26;;16610:9;16604:4;16600:20;16596:1;16585:9;16581:17;16574:47;16638:131;16764:4;16638:131;:::i;:::-;16630:139;;16357:419;;;:::o;16782:191::-;16822:3;16841:20;16859:1;16841:20;:::i;:::-;16836:25;;16875:20;16893:1;16875:20;:::i;:::-;16870:25;;16918:1;16915;16911:9;16904:16;;16939:3;16936:1;16933:10;16930:36;;;16946:18;;:::i;:::-;16930:36;16782:191;;;;:::o;16979:177::-;17119:29;17115:1;17107:6;17103:14;17096:53;16979:177;:::o;17162:366::-;17304:3;17325:67;17389:2;17384:3;17325:67;:::i;:::-;17318:74;;17401:93;17490:3;17401:93;:::i;:::-;17519:2;17514:3;17510:12;17503:19;;17162:366;;;:::o;17534:419::-;17700:4;17738:2;17727:9;17723:18;17715:26;;17787:9;17781:4;17777:20;17773:1;17762:9;17758:17;17751:47;17815:131;17941:4;17815:131;:::i;:::-;17807:139;;17534:419;;;:::o;17959:223::-;18099:34;18095:1;18087:6;18083:14;18076:58;18168:6;18163:2;18155:6;18151:15;18144:31;17959:223;:::o;18188:366::-;18330:3;18351:67;18415:2;18410:3;18351:67;:::i;:::-;18344:74;;18427:93;18516:3;18427:93;:::i;:::-;18545:2;18540:3;18536:12;18529:19;;18188:366;;;:::o;18560:419::-;18726:4;18764:2;18753:9;18749:18;18741:26;;18813:9;18807:4;18803:20;18799:1;18788:9;18784:17;18777:47;18841:131;18967:4;18841:131;:::i;:::-;18833:139;;18560:419;;;:::o;18985:221::-;19125:34;19121:1;19113:6;19109:14;19102:58;19194:4;19189:2;19181:6;19177:15;19170:29;18985:221;:::o;19212:366::-;19354:3;19375:67;19439:2;19434:3;19375:67;:::i;:::-;19368:74;;19451:93;19540:3;19451:93;:::i;:::-;19569:2;19564:3;19560:12;19553:19;;19212:366;;;:::o;19584:419::-;19750:4;19788:2;19777:9;19773:18;19765:26;;19837:9;19831:4;19827:20;19823:1;19812:9;19808:17;19801:47;19865:131;19991:4;19865:131;:::i;:::-;19857:139;;19584:419;;;:::o;20009:224::-;20149:34;20145:1;20137:6;20133:14;20126:58;20218:7;20213:2;20205:6;20201:15;20194:32;20009:224;:::o;20239:366::-;20381:3;20402:67;20466:2;20461:3;20402:67;:::i;:::-;20395:74;;20478:93;20567:3;20478:93;:::i;:::-;20596:2;20591:3;20587:12;20580:19;;20239:366;;;:::o;20611:419::-;20777:4;20815:2;20804:9;20800:18;20792:26;;20864:9;20858:4;20854:20;20850:1;20839:9;20835:17;20828:47;20892:131;21018:4;20892:131;:::i;:::-;20884:139;;20611:419;;;:::o;21036:222::-;21176:34;21172:1;21164:6;21160:14;21153:58;21245:5;21240:2;21232:6;21228:15;21221:30;21036:222;:::o;21264:366::-;21406:3;21427:67;21491:2;21486:3;21427:67;:::i;:::-;21420:74;;21503:93;21592:3;21503:93;:::i;:::-;21621:2;21616:3;21612:12;21605:19;;21264:366;;;:::o;21636:419::-;21802:4;21840:2;21829:9;21825:18;21817:26;;21889:9;21883:4;21879:20;21875:1;21864:9;21860:17;21853:47;21917:131;22043:4;21917:131;:::i;:::-;21909:139;;21636:419;;;:::o;22061:194::-;22101:4;22121:20;22139:1;22121:20;:::i;:::-;22116:25;;22155:20;22173:1;22155:20;:::i;:::-;22150:25;;22199:1;22196;22192:9;22184:17;;22223:1;22217:4;22214:11;22211:37;;;22228:18;;:::i;:::-;22211:37;22061:194;;;;:::o;22261:410::-;22301:7;22324:20;22342:1;22324:20;:::i;:::-;22319:25;;22358:20;22376:1;22358:20;:::i;:::-;22353:25;;22413:1;22410;22406:9;22435:30;22453:11;22435:30;:::i;:::-;22424:41;;22614:1;22605:7;22601:15;22598:1;22595:22;22575:1;22568:9;22548:83;22525:139;;22644:18;;:::i;:::-;22525:139;22309:362;22261:410;;;;:::o;22677:180::-;22725:77;22722:1;22715:88;22822:4;22819:1;22812:15;22846:4;22843:1;22836:15;22863:185;22903:1;22920:20;22938:1;22920:20;:::i;:::-;22915:25;;22954:20;22972:1;22954:20;:::i;:::-;22949:25;;22993:1;22983:35;;22998:18;;:::i;:::-;22983:35;23040:1;23037;23033:9;23028:14;;22863:185;;;;:::o;23054:220::-;23194:34;23190:1;23182:6;23178:14;23171:58;23263:3;23258:2;23250:6;23246:15;23239:28;23054:220;:::o;23280:366::-;23422:3;23443:67;23507:2;23502:3;23443:67;:::i;:::-;23436:74;;23519:93;23608:3;23519:93;:::i;:::-;23637:2;23632:3;23628:12;23621:19;;23280:366;;;:::o;23652:419::-;23818:4;23856:2;23845:9;23841:18;23833:26;;23905:9;23899:4;23895:20;23891:1;23880:9;23876:17;23869:47;23933:131;24059:4;23933:131;:::i;:::-;23925:139;;23652:419;;;:::o

Swarm Source

ipfs://90b01a7c06339619d42d8fea194d051c625263c62e8753a93bf92f335ef4b3ec
[ 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.