Token Monster

Gaming 
 

Overview ERC-20

Price
$0.00 @ 0.000000 FTM
Fully Diluted Market Cap
Total Supply:
3,775,147.25 MST

Holders:
6,181 addresses

Transfers:
-

Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

OVERVIEW

MetaLand is an RPG in monsters’ prospective based on the D20 rules.


Update? Click here to update the token ICO / general information
# Exchange Pair Price  24H Volume % Volume
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MonsterERC20

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-20
*/

// File: @openzeppelin/contracts/utils/Context.sol



pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol



pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol



pragma solidity ^0.8.0;


/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

// File: @openzeppelin/contracts/token/ERC20/ERC20.sol



pragma solidity ^0.8.0;




/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    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];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    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];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    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);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    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);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

// File: erc20/MonsterERC20.sol


pragma solidity ^0.8.7;


interface IMultiSignature {
    function is_apporved(uint) external view returns (string memory, uint, address, bool);
}

interface IMonsterERC20 {
    function mint(address to, uint256 amount) external returns (bool);

    function burn(uint256 amount) external returns (bool);

    function whitelist(uint proposalIndex) external;

    event IntoWhitelist(string symbol, uint index, address operator, bool arg);
}

contract MonsterERC20 is ERC20, IMonsterERC20 {
    uint256 public constant Limitation = 100_000_000e18;

    IMultiSignature immutable ms;

    mapping(address => bool) public isApproved;
    mapping(uint => bool) public hasBeenProcessed;

    constructor(string memory name_, string memory symbol_, address multiSig_) ERC20(name_, symbol_){
        ms = IMultiSignature(multiSig_);
    }

    modifier is_approved() {
        require(isApproved[msg.sender], "Not approved");
        _;
    }

    function mint(address to, uint256 amount) external is_approved override returns (bool) {
        require(totalSupply() + amount <= Limitation, "Total supply overflow the limitation");

        _mint(to, amount);
        return true;
    }

    function burn(uint256 amount) external override returns (bool) {
        _burn(msg.sender, amount);

        return true;
    }
 
    function whitelist(uint proposalIndex) external override {
        string memory applySymbol;
        uint approved = 0;
        address operator = address(0);
        bool arg = false;
        
        (applySymbol, approved, operator, arg) = ms.is_apporved(proposalIndex);
        
        require(!hasBeenProcessed[proposalIndex], "Proposal has been processed");
        require(keccak256(abi.encodePacked(applySymbol)) == keccak256(abi.encodePacked(symbol())));
        require(approved >= 2, "Approved less than 2");

        isApproved[operator] = arg;
        hasBeenProcessed[proposalIndex] = true;

        emit IntoWhitelist(symbol(), proposalIndex, operator, arg);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"multiSig_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"symbol","type":"string"},{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"arg","type":"bool"}],"name":"IntoWhitelist","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Limitation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":"uint256","name":"","type":"uint256"}],"name":"hasBeenProcessed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"address","name":"","type":"address"}],"name":"isApproved","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"uint256","name":"proposalIndex","type":"uint256"}],"name":"whitelist","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a06040523480156200001157600080fd5b506040516200273a3803806200273a8339818101604052810190620000379190620001f2565b8282816003908051906020019062000051929190620000ad565b5080600490805190602001906200006a929190620000ad565b5050508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250505050506200045e565b828054620000bb9062000355565b90600052602060002090601f016020900481019282620000df57600085556200012b565b82601f10620000fa57805160ff19168380011785556200012b565b828001600101855582156200012b579182015b828111156200012a5782518255916020019190600101906200010d565b5b5090506200013a91906200013e565b5090565b5b80821115620001595760008160009055506001016200013f565b5090565b6000620001746200016e84620002b5565b6200028c565b90508281526020810184848401111562000193576200019262000424565b5b620001a08482856200031f565b509392505050565b600081519050620001b98162000444565b92915050565b600082601f830112620001d757620001d66200041f565b5b8151620001e98482602086016200015d565b91505092915050565b6000806000606084860312156200020e576200020d6200042e565b5b600084015167ffffffffffffffff8111156200022f576200022e62000429565b5b6200023d86828701620001bf565b935050602084015167ffffffffffffffff81111562000261576200026062000429565b5b6200026f86828701620001bf565b92505060406200028286828701620001a8565b9150509250925092565b600062000298620002ab565b9050620002a682826200038b565b919050565b6000604051905090565b600067ffffffffffffffff821115620002d357620002d2620003f0565b5b620002de8262000433565b9050602081019050919050565b6000620002f882620002ff565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60005b838110156200033f57808201518184015260208101905062000322565b838111156200034f576000848401525b50505050565b600060028204905060018216806200036e57607f821691505b60208210811415620003855762000384620003c1565b5b50919050565b620003968262000433565b810181811067ffffffffffffffff82111715620003b857620003b7620003f0565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6200044f81620002eb565b81146200045b57600080fd5b50565b60805160601c6122bd6200047d60003960006107d001526122bd6000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806342966c68116100a257806395d89b411161007157806395d89b41146102f4578063a457c2d714610312578063a9059cbb14610342578063dd62ed3e14610372578063e6d390fe146103a25761010b565b806342966c6814610248578063673448dd1461027857806370a08231146102a85780637ebd1b30146102d85761010b565b80633054909f116100de5780633054909f146101ac578063313ce567146101ca57806339509351146101e857806340c10f19146102185761010b565b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015e57806323b872dd1461017c575b600080fd5b6101186103d2565b6040516101259190611980565b60405180910390f35b610148600480360381019061014391906115ce565b610464565b6040516101559190611965565b60405180910390f35b610166610482565b6040516101739190611bae565b60405180910390f35b6101966004803603810190610191919061157b565b61048c565b6040516101a39190611965565b60405180910390f35b6101b4610584565b6040516101c19190611bae565b60405180910390f35b6101d2610593565b6040516101df9190611bc9565b60405180910390f35b61020260048036038101906101fd91906115ce565b61059c565b60405161020f9190611965565b60405180910390f35b610232600480360381019061022d91906115ce565b610648565b60405161023f9190611965565b60405180910390f35b610262600480360381019061025d9190611691565b61074a565b60405161026f9190611965565b60405180910390f35b610292600480360381019061028d919061150e565b61075f565b60405161029f9190611965565b60405180910390f35b6102c260048036038101906102bd919061150e565b61077f565b6040516102cf9190611bae565b60405180910390f35b6102f260048036038101906102ed9190611691565b6107c7565b005b6102fc610a5e565b6040516103099190611980565b60405180910390f35b61032c600480360381019061032791906115ce565b610af0565b6040516103399190611965565b60405180910390f35b61035c600480360381019061035791906115ce565b610bdb565b6040516103699190611965565b60405180910390f35b61038c6004803603810190610387919061153b565b610bf9565b6040516103999190611bae565b60405180910390f35b6103bc60048036038101906103b79190611691565b610c80565b6040516103c99190611965565b60405180910390f35b6060600380546103e190611d73565b80601f016020809104026020016040519081016040528092919081815260200182805461040d90611d73565b801561045a5780601f1061042f5761010080835404028352916020019161045a565b820191906000526020600020905b81548152906001019060200180831161043d57829003601f168201915b5050505050905090565b6000610478610471610ca0565b8484610ca8565b6001905092915050565b6000600254905090565b6000610499848484610e73565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104e4610ca0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055b90611aee565b60405180910390fd5b61057885610570610ca0565b858403610ca8565b60019150509392505050565b6a52b7d2dcc80cd2e400000081565b60006012905090565b600061063e6105a9610ca0565b8484600160006105b7610ca0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106399190611c61565b610ca8565b6001905092915050565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166106d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cd90611ace565b60405180910390fd5b6a52b7d2dcc80cd2e4000000826106eb610482565b6106f59190611c61565b1115610736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072d90611a0e565b60405180910390fd5b61074083836110f4565b6001905092915050565b60006107563383611254565b60019050919050565b60056020528060005260406000206000915054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631a71f46f866040518263ffffffff1660e01b81526004016108279190611bae565b60006040518083038186803b15801561083f57600080fd5b505afa158015610853573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061087c919061160e565b809450819550829650839750505050506006600086815260200190815260200160002060009054906101000a900460ff16156108ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e490611a6e565b60405180910390fd5b6108f5610a5e565b604051602001610905919061194e565b604051602081830303815290604052805190602001208460405160200161092c919061194e565b604051602081830303815290604052805190602001201461094c57600080fd5b6002831015610990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098790611a4e565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016006600087815260200190815260200160002060006101000a81548160ff0219169083151502179055507f3eefe3d47b124593d0eee904c5dd1a983dcceb6b5abe0782dbb305c018b4c9c7610a3c610a5e565b868484604051610a4f94939291906119a2565b60405180910390a15050505050565b606060048054610a6d90611d73565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9990611d73565b8015610ae65780601f10610abb57610100808354040283529160200191610ae6565b820191906000526020600020905b815481529060010190602001808311610ac957829003601f168201915b5050505050905090565b60008060016000610aff610ca0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb390611b6e565b60405180910390fd5b610bd0610bc7610ca0565b85858403610ca8565b600191505092915050565b6000610bef610be8610ca0565b8484610e73565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0f90611b4e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7f90611a8e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e669190611bae565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eda90611b2e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4a906119ee565b60405180910390fd5b610f5e83838361142b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdb90611aae565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110779190611c61565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110db9190611bae565b60405180910390a36110ee848484611430565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115b90611b8e565b60405180910390fd5b6111706000838361142b565b80600260008282546111829190611c61565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111d79190611c61565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161123c9190611bae565b60405180910390a361125060008383611430565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bb90611b0e565b60405180910390fd5b6112d08260008361142b565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611356576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134d90611a2e565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546113ad9190611cb7565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114129190611bae565b60405180910390a361142683600084611430565b505050565b505050565b505050565b600061144861144384611c09565b611be4565b90508281526020810184848401111561146457611463611e68565b5b61146f848285611d40565b509392505050565b60008135905061148681612242565b92915050565b60008151905061149b81612242565b92915050565b6000815190506114b081612259565b92915050565b600082601f8301126114cb576114ca611e63565b5b81516114db848260208601611435565b91505092915050565b6000813590506114f381612270565b92915050565b60008151905061150881612270565b92915050565b60006020828403121561152457611523611e72565b5b600061153284828501611477565b91505092915050565b6000806040838503121561155257611551611e72565b5b600061156085828601611477565b925050602061157185828601611477565b9150509250929050565b60008060006060848603121561159457611593611e72565b5b60006115a286828701611477565b93505060206115b386828701611477565b92505060406115c4868287016114e4565b9150509250925092565b600080604083850312156115e5576115e4611e72565b5b60006115f385828601611477565b9250506020611604858286016114e4565b9150509250929050565b6000806000806080858703121561162857611627611e72565b5b600085015167ffffffffffffffff81111561164657611645611e6d565b5b611652878288016114b6565b9450506020611663878288016114f9565b93505060406116748782880161148c565b9250506060611685878288016114a1565b91505092959194509250565b6000602082840312156116a7576116a6611e72565b5b60006116b5848285016114e4565b91505092915050565b6116c781611ceb565b82525050565b6116d681611cfd565b82525050565b60006116e782611c3a565b6116f18185611c45565b9350611701818560208601611d40565b61170a81611e77565b840191505092915050565b600061172082611c3a565b61172a8185611c56565b935061173a818560208601611d40565b80840191505092915050565b6000611753602383611c45565b915061175e82611e88565b604082019050919050565b6000611776602483611c45565b915061178182611ed7565b604082019050919050565b6000611799602283611c45565b91506117a482611f26565b604082019050919050565b60006117bc601483611c45565b91506117c782611f75565b602082019050919050565b60006117df601b83611c45565b91506117ea82611f9e565b602082019050919050565b6000611802602283611c45565b915061180d82611fc7565b604082019050919050565b6000611825602683611c45565b915061183082612016565b604082019050919050565b6000611848600c83611c45565b915061185382612065565b602082019050919050565b600061186b602883611c45565b91506118768261208e565b604082019050919050565b600061188e602183611c45565b9150611899826120dd565b604082019050919050565b60006118b1602583611c45565b91506118bc8261212c565b604082019050919050565b60006118d4602483611c45565b91506118df8261217b565b604082019050919050565b60006118f7602583611c45565b9150611902826121ca565b604082019050919050565b600061191a601f83611c45565b915061192582612219565b602082019050919050565b61193981611d29565b82525050565b61194881611d33565b82525050565b600061195a8284611715565b915081905092915050565b600060208201905061197a60008301846116cd565b92915050565b6000602082019050818103600083015261199a81846116dc565b905092915050565b600060808201905081810360008301526119bc81876116dc565b90506119cb6020830186611930565b6119d860408301856116be565b6119e560608301846116cd565b95945050505050565b60006020820190508181036000830152611a0781611746565b9050919050565b60006020820190508181036000830152611a2781611769565b9050919050565b60006020820190508181036000830152611a478161178c565b9050919050565b60006020820190508181036000830152611a67816117af565b9050919050565b60006020820190508181036000830152611a87816117d2565b9050919050565b60006020820190508181036000830152611aa7816117f5565b9050919050565b60006020820190508181036000830152611ac781611818565b9050919050565b60006020820190508181036000830152611ae78161183b565b9050919050565b60006020820190508181036000830152611b078161185e565b9050919050565b60006020820190508181036000830152611b2781611881565b9050919050565b60006020820190508181036000830152611b47816118a4565b9050919050565b60006020820190508181036000830152611b67816118c7565b9050919050565b60006020820190508181036000830152611b87816118ea565b9050919050565b60006020820190508181036000830152611ba78161190d565b9050919050565b6000602082019050611bc36000830184611930565b92915050565b6000602082019050611bde600083018461193f565b92915050565b6000611bee611bff565b9050611bfa8282611da5565b919050565b6000604051905090565b600067ffffffffffffffff821115611c2457611c23611e34565b5b611c2d82611e77565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b6000611c6c82611d29565b9150611c7783611d29565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611cac57611cab611dd6565b5b828201905092915050565b6000611cc282611d29565b9150611ccd83611d29565b925082821015611ce057611cdf611dd6565b5b828203905092915050565b6000611cf682611d09565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611d5e578082015181840152602081019050611d43565b83811115611d6d576000848401525b50505050565b60006002820490506001821680611d8b57607f821691505b60208210811415611d9f57611d9e611e05565b5b50919050565b611dae82611e77565b810181811067ffffffffffffffff82111715611dcd57611dcc611e34565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f546f74616c20737570706c79206f766572666c6f7720746865206c696d69746160008201527f74696f6e00000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f417070726f766564206c657373207468616e2032000000000000000000000000600082015250565b7f50726f706f73616c20686173206265656e2070726f6365737365640000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f4e6f7420617070726f7665640000000000000000000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61224b81611ceb565b811461225657600080fd5b50565b61226281611cfd565b811461226d57600080fd5b50565b61227981611d29565b811461228457600080fd5b5056fea2646970667358221220ef82f6fc5af017de3611f72a5fe841171a8c64eb11cd7d01c533763b318772e864736f6c63430008070033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000007b4b69b489c2b1000a61c3bfa9934194ece6815900000000000000000000000000000000000000000000000000000000000000074d6f6e737465720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034d53540000000000000000000000000000000000000000000000000000000000

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

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000007b4b69b489c2b1000a61c3bfa9934194ece6815900000000000000000000000000000000000000000000000000000000000000074d6f6e737465720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034d53540000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): Monster
Arg [1] : symbol_ (string): MST
Arg [2] : multiSig_ (address): 0x7b4b69b489c2b1000a61c3bfa9934194ece68159

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 0000000000000000000000007b4b69b489c2b1000a61c3bfa9934194ece68159
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [4] : 4d6f6e7374657200000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [6] : 4d53540000000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

16864:1607:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6406:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8573:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7526:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9224:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16917:51;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7368:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10125:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17380:243;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17631:131;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17014:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7697:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17771:697;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6625:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10843:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8037:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8275:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17063:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6406:100;6460:13;6493:5;6486:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6406:100;:::o;8573:169::-;8656:4;8673:39;8682:12;:10;:12::i;:::-;8696:7;8705:6;8673:8;:39::i;:::-;8730:4;8723:11;;8573:169;;;;:::o;7526:108::-;7587:7;7614:12;;7607:19;;7526:108;:::o;9224:492::-;9364:4;9381:36;9391:6;9399:9;9410:6;9381:9;:36::i;:::-;9430:24;9457:11;:19;9469:6;9457:19;;;;;;;;;;;;;;;:33;9477:12;:10;:12::i;:::-;9457:33;;;;;;;;;;;;;;;;9430:60;;9529:6;9509:16;:26;;9501:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9616:57;9625:6;9633:12;:10;:12::i;:::-;9666:6;9647:16;:25;9616:8;:57::i;:::-;9704:4;9697:11;;;9224:492;;;;;:::o;16917:51::-;16954:14;16917:51;:::o;7368:93::-;7426:5;7451:2;7444:9;;7368:93;:::o;10125:215::-;10213:4;10230:80;10239:12;:10;:12::i;:::-;10253:7;10299:10;10262:11;:25;10274:12;:10;:12::i;:::-;10262:25;;;;;;;;;;;;;;;:34;10288:7;10262:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;10230:8;:80::i;:::-;10328:4;10321:11;;10125:215;;;;:::o;17380:243::-;17461:4;17313:10;:22;17324:10;17313:22;;;;;;;;;;;;;;;;;;;;;;;;;17305:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;16954:14:::1;17502:6;17486:13;:11;:13::i;:::-;:22;;;;:::i;:::-;:36;;17478:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;17576:17;17582:2;17586:6;17576:5;:17::i;:::-;17611:4;17604:11;;17380:243:::0;;;;:::o;17631:131::-;17688:4;17705:25;17711:10;17723:6;17705:5;:25::i;:::-;17750:4;17743:11;;17631:131;;;:::o;17014:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;7697:127::-;7771:7;7798:9;:18;7808:7;7798:18;;;;;;;;;;;;;;;;7791:25;;7697:127;;;:::o;17771:697::-;17839:25;17875:13;17903:16;17943:8;18021:2;:14;;;18036:13;18021:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17980:70;;;;;;;;;;;;;;;;18080:16;:31;18097:13;18080:31;;;;;;;;;;;;;;;;;;;;;18079:32;18071:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;18233:8;:6;:8::i;:::-;18216:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;18206:37;;;;;;18189:11;18172:29;;;;;;;;:::i;:::-;;;;;;;;;;;;;18162:40;;;;;;:81;18154:90;;;;;;18275:1;18263:8;:13;;18255:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;18337:3;18314:10;:20;18325:8;18314:20;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;18385:4;18351:16;:31;18368:13;18351:31;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;18407:53;18421:8;:6;:8::i;:::-;18431:13;18446:8;18456:3;18407:53;;;;;;;;;:::i;:::-;;;;;;;;17828:640;;;;17771:697;:::o;6625:104::-;6681:13;6714:7;6707:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6625:104;:::o;10843:413::-;10936:4;10953:24;10980:11;:25;10992:12;:10;:12::i;:::-;10980:25;;;;;;;;;;;;;;;:34;11006:7;10980:34;;;;;;;;;;;;;;;;10953:61;;11053:15;11033:16;:35;;11025:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11146:67;11155:12;:10;:12::i;:::-;11169:7;11197:15;11178:16;:34;11146:8;:67::i;:::-;11244:4;11237:11;;;10843:413;;;;:::o;8037:175::-;8123:4;8140:42;8150:12;:10;:12::i;:::-;8164:9;8175:6;8140:9;:42::i;:::-;8200:4;8193:11;;8037:175;;;;:::o;8275:151::-;8364:7;8391:11;:18;8403:5;8391:18;;;;;;;;;;;;;;;:27;8410:7;8391:27;;;;;;;;;;;;;;;;8384:34;;8275:151;;;;:::o;17063:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;625:98::-;678:7;705:10;698:17;;625:98;:::o;14527:380::-;14680:1;14663:19;;:5;:19;;;;14655:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14761:1;14742:21;;:7;:21;;;;14734:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14845:6;14815:11;:18;14827:5;14815:18;;;;;;;;;;;;;;;:27;14834:7;14815:27;;;;;;;;;;;;;;;:36;;;;14883:7;14867:32;;14876:5;14867:32;;;14892:6;14867:32;;;;;;:::i;:::-;;;;;;;;14527:380;;;:::o;11746:733::-;11904:1;11886:20;;:6;:20;;;;11878:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11988:1;11967:23;;:9;:23;;;;11959:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12043:47;12064:6;12072:9;12083:6;12043:20;:47::i;:::-;12103:21;12127:9;:17;12137:6;12127:17;;;;;;;;;;;;;;;;12103:41;;12180:6;12163:13;:23;;12155:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12301:6;12285:13;:22;12265:9;:17;12275:6;12265:17;;;;;;;;;;;;;;;:42;;;;12353:6;12329:9;:20;12339:9;12329:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12394:9;12377:35;;12386:6;12377:35;;;12405:6;12377:35;;;;;;:::i;:::-;;;;;;;;12425:46;12445:6;12453:9;12464:6;12425:19;:46::i;:::-;11867:612;11746:733;;;:::o;12766:399::-;12869:1;12850:21;;:7;:21;;;;12842:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;12920:49;12949:1;12953:7;12962:6;12920:20;:49::i;:::-;12998:6;12982:12;;:22;;;;;;;:::i;:::-;;;;;;;;13037:6;13015:9;:18;13025:7;13015:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;13080:7;13059:37;;13076:1;13059:37;;;13089:6;13059:37;;;;;;:::i;:::-;;;;;;;;13109:48;13137:1;13141:7;13150:6;13109:19;:48::i;:::-;12766:399;;:::o;13498:591::-;13601:1;13582:21;;:7;:21;;;;13574:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13654:49;13675:7;13692:1;13696:6;13654:20;:49::i;:::-;13716:22;13741:9;:18;13751:7;13741:18;;;;;;;;;;;;;;;;13716:43;;13796:6;13778:14;:24;;13770:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13915:6;13898:14;:23;13877:9;:18;13887:7;13877:18;;;;;;;;;;;;;;;:44;;;;13959:6;13943:12;;:22;;;;;;;:::i;:::-;;;;;;;;14009:1;13983:37;;13992:7;13983:37;;;14013:6;13983:37;;;;;;:::i;:::-;;;;;;;;14033:48;14053:7;14070:1;14074:6;14033:19;:48::i;:::-;13563:526;13498:591;;:::o;15507:125::-;;;;:::o;16236:124::-;;;;:::o;7:421:1:-;96:5;121:66;137:49;179:6;137:49;:::i;:::-;121:66;:::i;:::-;112:75;;210:6;203:5;196:21;248:4;241:5;237:16;286:3;277:6;272:3;268:16;265:25;262:112;;;293:79;;:::i;:::-;262:112;383:39;415:6;410:3;405;383:39;:::i;:::-;102:326;7:421;;;;;:::o;434:139::-;480:5;518:6;505:20;496:29;;534:33;561:5;534:33;:::i;:::-;434:139;;;;:::o;579:143::-;636:5;667:6;661:13;652:22;;683:33;710:5;683:33;:::i;:::-;579:143;;;;:::o;728:137::-;782:5;813:6;807:13;798:22;;829:30;853:5;829:30;:::i;:::-;728:137;;;;:::o;885:355::-;952:5;1001:3;994:4;986:6;982:17;978:27;968:122;;1009:79;;:::i;:::-;968:122;1119:6;1113:13;1144:90;1230:3;1222:6;1215:4;1207:6;1203:17;1144:90;:::i;:::-;1135:99;;958:282;885:355;;;;:::o;1246:139::-;1292:5;1330:6;1317:20;1308:29;;1346:33;1373:5;1346:33;:::i;:::-;1246:139;;;;:::o;1391:143::-;1448:5;1479:6;1473:13;1464:22;;1495:33;1522:5;1495:33;:::i;:::-;1391:143;;;;:::o;1540:329::-;1599:6;1648:2;1636:9;1627:7;1623:23;1619:32;1616:119;;;1654:79;;:::i;:::-;1616:119;1774:1;1799:53;1844:7;1835:6;1824:9;1820:22;1799:53;:::i;:::-;1789:63;;1745:117;1540:329;;;;:::o;1875:474::-;1943:6;1951;2000:2;1988:9;1979:7;1975:23;1971:32;1968:119;;;2006:79;;:::i;:::-;1968:119;2126:1;2151:53;2196:7;2187:6;2176:9;2172:22;2151:53;:::i;:::-;2141:63;;2097:117;2253:2;2279:53;2324:7;2315:6;2304:9;2300:22;2279:53;:::i;:::-;2269:63;;2224:118;1875:474;;;;;:::o;2355:619::-;2432:6;2440;2448;2497:2;2485:9;2476:7;2472:23;2468:32;2465:119;;;2503:79;;:::i;:::-;2465:119;2623:1;2648:53;2693:7;2684:6;2673:9;2669:22;2648:53;:::i;:::-;2638:63;;2594:117;2750:2;2776:53;2821:7;2812:6;2801:9;2797:22;2776:53;:::i;:::-;2766:63;;2721:118;2878:2;2904:53;2949:7;2940:6;2929:9;2925:22;2904:53;:::i;:::-;2894:63;;2849:118;2355:619;;;;;:::o;2980:474::-;3048:6;3056;3105:2;3093:9;3084:7;3080:23;3076:32;3073:119;;;3111:79;;:::i;:::-;3073:119;3231:1;3256:53;3301:7;3292:6;3281:9;3277:22;3256:53;:::i;:::-;3246:63;;3202:117;3358:2;3384:53;3429:7;3420:6;3409:9;3405:22;3384:53;:::i;:::-;3374:63;;3329:118;2980:474;;;;;:::o;3460:987::-;3564:6;3572;3580;3588;3637:3;3625:9;3616:7;3612:23;3608:33;3605:120;;;3644:79;;:::i;:::-;3605:120;3785:1;3774:9;3770:17;3764:24;3815:18;3807:6;3804:30;3801:117;;;3837:79;;:::i;:::-;3801:117;3942:74;4008:7;3999:6;3988:9;3984:22;3942:74;:::i;:::-;3932:84;;3735:291;4065:2;4091:64;4147:7;4138:6;4127:9;4123:22;4091:64;:::i;:::-;4081:74;;4036:129;4204:2;4230:64;4286:7;4277:6;4266:9;4262:22;4230:64;:::i;:::-;4220:74;;4175:129;4343:2;4369:61;4422:7;4413:6;4402:9;4398:22;4369:61;:::i;:::-;4359:71;;4314:126;3460:987;;;;;;;:::o;4453:329::-;4512:6;4561:2;4549:9;4540:7;4536:23;4532:32;4529:119;;;4567:79;;:::i;:::-;4529:119;4687:1;4712:53;4757:7;4748:6;4737:9;4733:22;4712:53;:::i;:::-;4702:63;;4658:117;4453:329;;;;:::o;4788:118::-;4875:24;4893:5;4875:24;:::i;:::-;4870:3;4863:37;4788:118;;:::o;4912:109::-;4993:21;5008:5;4993:21;:::i;:::-;4988:3;4981:34;4912:109;;:::o;5027:364::-;5115:3;5143:39;5176:5;5143:39;:::i;:::-;5198:71;5262:6;5257:3;5198:71;:::i;:::-;5191:78;;5278:52;5323:6;5318:3;5311:4;5304:5;5300:16;5278:52;:::i;:::-;5355:29;5377:6;5355:29;:::i;:::-;5350:3;5346:39;5339:46;;5119:272;5027:364;;;;:::o;5397:377::-;5503:3;5531:39;5564:5;5531:39;:::i;:::-;5586:89;5668:6;5663:3;5586:89;:::i;:::-;5579:96;;5684:52;5729:6;5724:3;5717:4;5710:5;5706:16;5684:52;:::i;:::-;5761:6;5756:3;5752:16;5745:23;;5507:267;5397:377;;;;:::o;5780:366::-;5922:3;5943:67;6007:2;6002:3;5943:67;:::i;:::-;5936:74;;6019:93;6108:3;6019:93;:::i;:::-;6137:2;6132:3;6128:12;6121:19;;5780:366;;;:::o;6152:::-;6294:3;6315:67;6379:2;6374:3;6315:67;:::i;:::-;6308:74;;6391:93;6480:3;6391:93;:::i;:::-;6509:2;6504:3;6500:12;6493:19;;6152:366;;;:::o;6524:::-;6666:3;6687:67;6751:2;6746:3;6687:67;:::i;:::-;6680:74;;6763:93;6852:3;6763:93;:::i;:::-;6881:2;6876:3;6872:12;6865:19;;6524:366;;;:::o;6896:::-;7038:3;7059:67;7123:2;7118:3;7059:67;:::i;:::-;7052:74;;7135:93;7224:3;7135:93;:::i;:::-;7253:2;7248:3;7244:12;7237:19;;6896:366;;;:::o;7268:::-;7410:3;7431:67;7495:2;7490:3;7431:67;:::i;:::-;7424:74;;7507:93;7596:3;7507:93;:::i;:::-;7625:2;7620:3;7616:12;7609:19;;7268:366;;;:::o;7640:::-;7782:3;7803:67;7867:2;7862:3;7803:67;:::i;:::-;7796:74;;7879:93;7968:3;7879:93;:::i;:::-;7997:2;7992:3;7988:12;7981:19;;7640:366;;;:::o;8012:::-;8154:3;8175:67;8239:2;8234:3;8175:67;:::i;:::-;8168:74;;8251:93;8340:3;8251:93;:::i;:::-;8369:2;8364:3;8360:12;8353:19;;8012:366;;;:::o;8384:::-;8526:3;8547:67;8611:2;8606:3;8547:67;:::i;:::-;8540:74;;8623:93;8712:3;8623:93;:::i;:::-;8741:2;8736:3;8732:12;8725:19;;8384:366;;;:::o;8756:::-;8898:3;8919:67;8983:2;8978:3;8919:67;:::i;:::-;8912:74;;8995:93;9084:3;8995:93;:::i;:::-;9113:2;9108:3;9104:12;9097:19;;8756:366;;;:::o;9128:::-;9270:3;9291:67;9355:2;9350:3;9291:67;:::i;:::-;9284:74;;9367:93;9456:3;9367:93;:::i;:::-;9485:2;9480:3;9476:12;9469:19;;9128:366;;;:::o;9500:::-;9642:3;9663:67;9727:2;9722:3;9663:67;:::i;:::-;9656:74;;9739:93;9828:3;9739:93;:::i;:::-;9857:2;9852:3;9848:12;9841:19;;9500:366;;;:::o;9872:::-;10014:3;10035:67;10099:2;10094:3;10035:67;:::i;:::-;10028:74;;10111:93;10200:3;10111:93;:::i;:::-;10229:2;10224:3;10220:12;10213:19;;9872:366;;;:::o;10244:::-;10386:3;10407:67;10471:2;10466:3;10407:67;:::i;:::-;10400:74;;10483:93;10572:3;10483:93;:::i;:::-;10601:2;10596:3;10592:12;10585:19;;10244:366;;;:::o;10616:::-;10758:3;10779:67;10843:2;10838:3;10779:67;:::i;:::-;10772:74;;10855:93;10944:3;10855:93;:::i;:::-;10973:2;10968:3;10964:12;10957:19;;10616:366;;;:::o;10988:118::-;11075:24;11093:5;11075:24;:::i;:::-;11070:3;11063:37;10988:118;;:::o;11112:112::-;11195:22;11211:5;11195:22;:::i;:::-;11190:3;11183:35;11112:112;;:::o;11230:275::-;11362:3;11384:95;11475:3;11466:6;11384:95;:::i;:::-;11377:102;;11496:3;11489:10;;11230:275;;;;:::o;11511:210::-;11598:4;11636:2;11625:9;11621:18;11613:26;;11649:65;11711:1;11700:9;11696:17;11687:6;11649:65;:::i;:::-;11511:210;;;;:::o;11727:313::-;11840:4;11878:2;11867:9;11863:18;11855:26;;11927:9;11921:4;11917:20;11913:1;11902:9;11898:17;11891:47;11955:78;12028:4;12019:6;11955:78;:::i;:::-;11947:86;;11727:313;;;;:::o;12046:632::-;12237:4;12275:3;12264:9;12260:19;12252:27;;12325:9;12319:4;12315:20;12311:1;12300:9;12296:17;12289:47;12353:78;12426:4;12417:6;12353:78;:::i;:::-;12345:86;;12441:72;12509:2;12498:9;12494:18;12485:6;12441:72;:::i;:::-;12523;12591:2;12580:9;12576:18;12567:6;12523:72;:::i;:::-;12605:66;12667:2;12656:9;12652:18;12643:6;12605:66;:::i;:::-;12046:632;;;;;;;:::o;12684:419::-;12850:4;12888:2;12877:9;12873:18;12865:26;;12937:9;12931:4;12927:20;12923:1;12912:9;12908:17;12901:47;12965:131;13091:4;12965:131;:::i;:::-;12957:139;;12684:419;;;:::o;13109:::-;13275:4;13313:2;13302:9;13298:18;13290:26;;13362:9;13356:4;13352:20;13348:1;13337:9;13333:17;13326:47;13390:131;13516:4;13390:131;:::i;:::-;13382:139;;13109:419;;;:::o;13534:::-;13700:4;13738:2;13727:9;13723:18;13715:26;;13787:9;13781:4;13777:20;13773:1;13762:9;13758:17;13751:47;13815:131;13941:4;13815:131;:::i;:::-;13807:139;;13534:419;;;:::o;13959:::-;14125:4;14163:2;14152:9;14148:18;14140:26;;14212:9;14206:4;14202:20;14198:1;14187:9;14183:17;14176:47;14240:131;14366:4;14240:131;:::i;:::-;14232:139;;13959:419;;;:::o;14384:::-;14550:4;14588:2;14577:9;14573:18;14565:26;;14637:9;14631:4;14627:20;14623:1;14612:9;14608:17;14601:47;14665:131;14791:4;14665:131;:::i;:::-;14657:139;;14384:419;;;:::o;14809:::-;14975:4;15013:2;15002:9;14998:18;14990:26;;15062:9;15056:4;15052:20;15048:1;15037:9;15033:17;15026:47;15090:131;15216:4;15090:131;:::i;:::-;15082:139;;14809:419;;;:::o;15234:::-;15400:4;15438:2;15427:9;15423:18;15415:26;;15487:9;15481:4;15477:20;15473:1;15462:9;15458:17;15451:47;15515:131;15641:4;15515:131;:::i;:::-;15507:139;;15234:419;;;:::o;15659:::-;15825:4;15863:2;15852:9;15848:18;15840:26;;15912:9;15906:4;15902:20;15898:1;15887:9;15883:17;15876:47;15940:131;16066:4;15940:131;:::i;:::-;15932:139;;15659:419;;;:::o;16084:::-;16250:4;16288:2;16277:9;16273:18;16265:26;;16337:9;16331:4;16327:20;16323:1;16312:9;16308:17;16301:47;16365:131;16491:4;16365:131;:::i;:::-;16357:139;;16084:419;;;:::o;16509:::-;16675:4;16713:2;16702:9;16698:18;16690:26;;16762:9;16756:4;16752:20;16748:1;16737:9;16733:17;16726:47;16790:131;16916:4;16790:131;:::i;:::-;16782:139;;16509:419;;;:::o;16934:::-;17100:4;17138:2;17127:9;17123:18;17115:26;;17187:9;17181:4;17177:20;17173:1;17162:9;17158:17;17151:47;17215:131;17341:4;17215:131;:::i;:::-;17207:139;;16934:419;;;:::o;17359:::-;17525:4;17563:2;17552:9;17548:18;17540:26;;17612:9;17606:4;17602:20;17598:1;17587:9;17583:17;17576:47;17640:131;17766:4;17640:131;:::i;:::-;17632:139;;17359:419;;;:::o;17784:::-;17950:4;17988:2;17977:9;17973:18;17965:26;;18037:9;18031:4;18027:20;18023:1;18012:9;18008:17;18001:47;18065:131;18191:4;18065:131;:::i;:::-;18057:139;;17784:419;;;:::o;18209:::-;18375:4;18413:2;18402:9;18398:18;18390:26;;18462:9;18456:4;18452:20;18448:1;18437:9;18433:17;18426:47;18490:131;18616:4;18490:131;:::i;:::-;18482:139;;18209:419;;;:::o;18634:222::-;18727:4;18765:2;18754:9;18750:18;18742:26;;18778:71;18846:1;18835:9;18831:17;18822:6;18778:71;:::i;:::-;18634:222;;;;:::o;18862:214::-;18951:4;18989:2;18978:9;18974:18;18966:26;;19002:67;19066:1;19055:9;19051:17;19042:6;19002:67;:::i;:::-;18862:214;;;;:::o;19082:129::-;19116:6;19143:20;;:::i;:::-;19133:30;;19172:33;19200:4;19192:6;19172:33;:::i;:::-;19082:129;;;:::o;19217:75::-;19250:6;19283:2;19277:9;19267:19;;19217:75;:::o;19298:308::-;19360:4;19450:18;19442:6;19439:30;19436:56;;;19472:18;;:::i;:::-;19436:56;19510:29;19532:6;19510:29;:::i;:::-;19502:37;;19594:4;19588;19584:15;19576:23;;19298:308;;;:::o;19612:99::-;19664:6;19698:5;19692:12;19682:22;;19612:99;;;:::o;19717:169::-;19801:11;19835:6;19830:3;19823:19;19875:4;19870:3;19866:14;19851:29;;19717:169;;;;:::o;19892:148::-;19994:11;20031:3;20016:18;;19892:148;;;;:::o;20046:305::-;20086:3;20105:20;20123:1;20105:20;:::i;:::-;20100:25;;20139:20;20157:1;20139:20;:::i;:::-;20134:25;;20293:1;20225:66;20221:74;20218:1;20215:81;20212:107;;;20299:18;;:::i;:::-;20212:107;20343:1;20340;20336:9;20329:16;;20046:305;;;;:::o;20357:191::-;20397:4;20417:20;20435:1;20417:20;:::i;:::-;20412:25;;20451:20;20469:1;20451:20;:::i;:::-;20446:25;;20490:1;20487;20484:8;20481:34;;;20495:18;;:::i;:::-;20481:34;20540:1;20537;20533:9;20525:17;;20357:191;;;;:::o;20554:96::-;20591:7;20620:24;20638:5;20620:24;:::i;:::-;20609:35;;20554:96;;;:::o;20656:90::-;20690:7;20733:5;20726:13;20719:21;20708:32;;20656:90;;;:::o;20752:126::-;20789:7;20829:42;20822:5;20818:54;20807:65;;20752:126;;;:::o;20884:77::-;20921:7;20950:5;20939:16;;20884:77;;;:::o;20967:86::-;21002:7;21042:4;21035:5;21031:16;21020:27;;20967:86;;;:::o;21059:307::-;21127:1;21137:113;21151:6;21148:1;21145:13;21137:113;;;21236:1;21231:3;21227:11;21221:18;21217:1;21212:3;21208:11;21201:39;21173:2;21170:1;21166:10;21161:15;;21137:113;;;21268:6;21265:1;21262:13;21259:101;;;21348:1;21339:6;21334:3;21330:16;21323:27;21259:101;21108:258;21059:307;;;:::o;21372:320::-;21416:6;21453:1;21447:4;21443:12;21433:22;;21500:1;21494:4;21490:12;21521:18;21511:81;;21577:4;21569:6;21565:17;21555:27;;21511:81;21639:2;21631:6;21628:14;21608:18;21605:38;21602:84;;;21658:18;;:::i;:::-;21602:84;21423:269;21372:320;;;:::o;21698:281::-;21781:27;21803:4;21781:27;:::i;:::-;21773:6;21769:40;21911:6;21899:10;21896:22;21875:18;21863:10;21860:34;21857:62;21854:88;;;21922:18;;:::i;:::-;21854:88;21962:10;21958:2;21951:22;21741:238;21698:281;;:::o;21985:180::-;22033:77;22030:1;22023:88;22130:4;22127:1;22120:15;22154:4;22151:1;22144:15;22171:180;22219:77;22216:1;22209:88;22316:4;22313:1;22306:15;22340:4;22337:1;22330:15;22357:180;22405:77;22402:1;22395:88;22502:4;22499:1;22492:15;22526:4;22523:1;22516:15;22543:117;22652:1;22649;22642:12;22666:117;22775:1;22772;22765:12;22789:117;22898:1;22895;22888:12;22912:117;23021:1;23018;23011:12;23035:102;23076:6;23127:2;23123:7;23118:2;23111:5;23107:14;23103:28;23093:38;;23035:102;;;:::o;23143:222::-;23283:34;23279:1;23271:6;23267:14;23260:58;23352:5;23347:2;23339:6;23335:15;23328:30;23143:222;:::o;23371:223::-;23511:34;23507:1;23499:6;23495:14;23488:58;23580:6;23575:2;23567:6;23563:15;23556:31;23371:223;:::o;23600:221::-;23740:34;23736:1;23728:6;23724:14;23717:58;23809:4;23804:2;23796:6;23792:15;23785:29;23600:221;:::o;23827:170::-;23967:22;23963:1;23955:6;23951:14;23944:46;23827:170;:::o;24003:177::-;24143:29;24139:1;24131:6;24127:14;24120:53;24003:177;:::o;24186:221::-;24326:34;24322:1;24314:6;24310:14;24303:58;24395:4;24390:2;24382:6;24378:15;24371:29;24186:221;:::o;24413:225::-;24553:34;24549:1;24541:6;24537:14;24530:58;24622:8;24617:2;24609:6;24605:15;24598:33;24413:225;:::o;24644:162::-;24784:14;24780:1;24772:6;24768:14;24761:38;24644:162;:::o;24812:227::-;24952:34;24948:1;24940:6;24936:14;24929:58;25021:10;25016:2;25008:6;25004:15;24997:35;24812:227;:::o;25045:220::-;25185:34;25181:1;25173:6;25169:14;25162:58;25254:3;25249:2;25241:6;25237:15;25230:28;25045:220;:::o;25271:224::-;25411:34;25407:1;25399:6;25395:14;25388:58;25480:7;25475:2;25467:6;25463:15;25456:32;25271:224;:::o;25501:223::-;25641:34;25637:1;25629:6;25625:14;25618:58;25710:6;25705:2;25697:6;25693:15;25686:31;25501:223;:::o;25730:224::-;25870:34;25866:1;25858:6;25854:14;25847:58;25939:7;25934:2;25926:6;25922:15;25915:32;25730:224;:::o;25960:181::-;26100:33;26096:1;26088:6;26084:14;26077:57;25960:181;:::o;26147:122::-;26220:24;26238:5;26220:24;:::i;:::-;26213:5;26210:35;26200:63;;26259:1;26256;26249:12;26200:63;26147:122;:::o;26275:116::-;26345:21;26360:5;26345:21;:::i;:::-;26338:5;26335:32;26325:60;;26381:1;26378;26371:12;26325:60;26275:116;:::o;26397:122::-;26470:24;26488:5;26470:24;:::i;:::-;26463:5;26460:35;26450:63;;26509:1;26506;26499:12;26450:63;26397:122;:::o

Swarm Source

ipfs://ef82f6fc5af017de3611f72a5fe841171a8c64eb11cd7d01c533763b318772e8
Loading