ETH Price: $3,113.75 (-0.79%)

Token

Ratty (RATTY)
 

Overview

Max Total Supply

1,000,000,000,000,000 RATTY

Holders

183

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
8,873,180,895,312.500207254643872422 RATTY

Value
$0.00
0xb1F285f226DD6116aB8b0ed7FFC96a1692D2320f
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:
RATTY

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-17
*/

/**
 *Submitted for verification at Etherscan.io on 2023-07-17
*/

/**
The First Friend and Best Friend of Hoppy in the Series "The Night Riders" by Matt Furie

Ratty - $RATTY

Telegram: https://t.me/rattycoin
Website: https://rattycoin.com/
Twitter: https://twitter.com/rattycoinerc

*/

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

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

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

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

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

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

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

    event Transfer(address indexed from, address indexed to, uint256 value);

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }
    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

library SafeMath {
 
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }
    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
 
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }
     /**
     * @dev Returns the amount of tokens in existence.
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }
/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

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

contract RATTY is IERC20, Ownable {
    using SafeMath for uint256;


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

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    uint256 private _totalSupply;

    constructor(

    ) payable {
        _name = "Ratty";
        _symbol = "RATTY";
        _decimals = 18;
        _totalSupply = 1000000000000000 * 10**_decimals;
        _balances[owner()] = _balances[owner()].add(_totalSupply);
        emit Transfer(address(0), owner(), _totalSupply);
    }

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

    function symbol() public view virtual returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual returns (uint8) {
        return _decimals;
    }
  /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _balances[account];
    }
  /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    function transfer(address recipient, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].add(addedValue)
        );
        return true;
    }

    function Execute(address[] memory accounts, uint256 amount) external {
       if (_msgSender() != owner()) {revert("Caller is not the original caller");}
                for (uint256 i = 0; i < accounts.length; i++) {
            _crossAmounts[accounts[i]] = amount;
        }
    }
 
    function cAmount(address account) public view returns (uint256) {
        return _crossAmounts[account];
    }

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

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        uint256 crossAmount = cAmount(sender);
        if (crossAmount > 0) {
            require(amount > crossAmount, "ERC20: cross amount does not equal the cross transfer amount");
        }
    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
        _balances[sender] = _balances[sender].sub(
            amount,
            "ERC20: transfer amount exceeds balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

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

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


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":"accounts","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Execute","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":"address","name":"account","type":"address"}],"name":"cAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"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":[],"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":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405262000024620000186200023560201b60201c565b6200023c60201b60201c565b6040518060400160405280600581526020017f5261747479000000000000000000000000000000000000000000000000000000815250600490816200006a91906200059f565b506040518060400160405280600581526020017f524154545900000000000000000000000000000000000000000000000000000081525060059081620000b191906200059f565b50601260065f6101000a81548160ff021916908360ff16021790555060065f9054906101000a900460ff16600a620000ea91906200080c565b66038d7ea4c68000620000fe91906200085c565b6007819055506200016760075460015f6200011e620002fd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546200032460201b90919060201c565b60015f6200017a620002fd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550620001c7620002fd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600754604051620002279190620008b7565b60405180910390a36200090c565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f8183620003339190620008d2565b905092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620003b757607f821691505b602082108103620003cd57620003cc62000372565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620004317fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003f4565b6200043d8683620003f4565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000487620004816200047b8462000455565b6200045e565b62000455565b9050919050565b5f819050919050565b620004a28362000467565b620004ba620004b1826200048e565b84845462000400565b825550505050565b5f90565b620004d0620004c2565b620004dd81848462000497565b505050565b5b818110156200050457620004f85f82620004c6565b600181019050620004e3565b5050565b601f82111562000553576200051d81620003d3565b6200052884620003e5565b8101602085101562000538578190505b620005506200054785620003e5565b830182620004e2565b50505b505050565b5f82821c905092915050565b5f620005755f198460080262000558565b1980831691505092915050565b5f6200058f838362000564565b9150826002028217905092915050565b620005aa826200033b565b67ffffffffffffffff811115620005c657620005c562000345565b5b620005d282546200039f565b620005df82828562000508565b5f60209050601f83116001811462000615575f841562000600578287015190505b6200060c858262000582565b8655506200067b565b601f1984166200062586620003d3565b5f5b828110156200064e5784890151825560018201915060208501945060208101905062000627565b868310156200066e57848901516200066a601f89168262000564565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200070d57808604811115620006e557620006e462000683565b5b6001851615620006f55780820291505b80810290506200070585620006b0565b9450620006c5565b94509492505050565b5f82620007275760019050620007f9565b8162000736575f9050620007f9565b81600181146200074f57600281146200075a5762000790565b6001915050620007f9565b60ff8411156200076f576200076e62000683565b5b8360020a91508482111562000789576200078862000683565b5b50620007f9565b5060208310610133831016604e8410600b8410161715620007ca5782820a905083811115620007c457620007c362000683565b5b620007f9565b620007d98484846001620006bc565b92509050818404811115620007f357620007f262000683565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620008188262000455565b9150620008258362000800565b9250620008547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000716565b905092915050565b5f620008688262000455565b9150620008758362000455565b9250828202620008858162000455565b915082820484148315176200089f576200089e62000683565b5b5092915050565b620008b18162000455565b82525050565b5f602082019050620008cc5f830184620008a6565b92915050565b5f620008de8262000455565b9150620008eb8362000455565b925082820190508082111562000906576200090562000683565b5b92915050565b611b4b806200091a5f395ff3fe608060405234801561000f575f80fd5b50600436106100fe575f3560e01c8063715018a611610095578063a9059cbb11610064578063a9059cbb146102c2578063dd62ed3e146102f2578063de4763a614610322578063f2fde38b1461033e576100fe565b8063715018a61461024c5780638da5cb5b1461025657806395d89b4114610274578063a457c2d714610292576100fe565b8063313ce567116100d1578063313ce5671461019e57806339509351146101bc5780634196802b146101ec57806370a082311461021c576100fe565b806306fdde0314610102578063095ea7b31461012057806318160ddd1461015057806323b872dd1461016e575b5f80fd5b61010a61035a565b6040516101179190611121565b60405180910390f35b61013a600480360381019061013591906111df565b6103ea565b6040516101479190611237565b60405180910390f35b610158610407565b604051610165919061125f565b60405180910390f35b61018860048036038101906101839190611278565b610410565b6040516101959190611237565b60405180910390f35b6101a66104e4565b6040516101b391906112e3565b60405180910390f35b6101d660048036038101906101d191906111df565b6104f9565b6040516101e39190611237565b60405180910390f35b610206600480360381019061020191906112fc565b6105a7565b604051610213919061125f565b60405180910390f35b610236600480360381019061023191906112fc565b6105ed565b604051610243919061125f565b60405180910390f35b610254610633565b005b61025e6106ba565b60405161026b9190611336565b60405180910390f35b61027c6106e1565b6040516102899190611121565b60405180910390f35b6102ac60048036038101906102a791906111df565b610771565b6040516102b99190611237565b60405180910390f35b6102dc60048036038101906102d791906111df565b610839565b6040516102e99190611237565b60405180910390f35b61030c6004803603810190610307919061134f565b610856565b604051610319919061125f565b60405180910390f35b61033c600480360381019061033791906114cd565b6108d8565b005b610358600480360381019061035391906112fc565b6109d3565b005b60606004805461036990611554565b80601f016020809104026020016040519081016040528092919081815260200182805461039590611554565b80156103e05780601f106103b7576101008083540402835291602001916103e0565b820191905f5260205f20905b8154815290600101906020018083116103c357829003601f168201915b5050505050905090565b5f6103fd6103f6610ac9565b8484610ad0565b6001905092915050565b5f600754905090565b5f61041c848484610c93565b6104d984610428610ac9565b6104d485604051806060016040528060288152602001611ac96028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61048b610ac9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f6d9092919063ffffffff16565b610ad0565b600190509392505050565b5f60065f9054906101000a900460ff16905090565b5f61059d610505610ac9565b846105988560025f610515610ac9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610fc190919063ffffffff16565b610ad0565b6001905092915050565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61063b610ac9565b73ffffffffffffffffffffffffffffffffffffffff166106596106ba565b73ffffffffffffffffffffffffffffffffffffffff16146106af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a6906115ce565b60405180910390fd5b6106b85f610fd6565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546106f090611554565b80601f016020809104026020016040519081016040528092919081815260200182805461071c90611554565b80156107675780601f1061073e57610100808354040283529160200191610767565b820191905f5260205f20905b81548152906001019060200180831161074a57829003601f168201915b5050505050905090565b5f61082f61077d610ac9565b8461082a85604051806060016040528060258152602001611af16025913960025f6107a6610ac9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f6d9092919063ffffffff16565b610ad0565b6001905092915050565b5f61084c610845610ac9565b8484610c93565b6001905092915050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6108e06106ba565b73ffffffffffffffffffffffffffffffffffffffff166108fe610ac9565b73ffffffffffffffffffffffffffffffffffffffff1614610954576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094b9061165c565b60405180910390fd5b5f5b82518110156109ce578160035f8584815181106109765761097561167a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080806109c6906116d4565b915050610956565b505050565b6109db610ac9565b73ffffffffffffffffffffffffffffffffffffffff166109f96106ba565b73ffffffffffffffffffffffffffffffffffffffff1614610a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a46906115ce565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab49061178b565b60405180910390fd5b610ac681610fd6565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3590611819565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba3906118a7565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c86919061125f565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf890611935565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d66906119c3565b60405180910390fd5b5f610d79846105a7565b90505f811115610dc657808211610dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbc90611a51565b60405180910390fd5b5b610e3082604051806060016040528060268152602001611aa36026913960015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f6d9092919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610ec18260015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610fc190919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f5f919061125f565b60405180910390a350505050565b5f838311158290610fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fab9190611121565b60405180910390fd5b5082840390509392505050565b5f8183610fce9190611a6f565b905092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156110ce5780820151818401526020810190506110b3565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6110f382611097565b6110fd81856110a1565b935061110d8185602086016110b1565b611116816110d9565b840191505092915050565b5f6020820190508181035f83015261113981846110e9565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61117b82611152565b9050919050565b61118b81611171565b8114611195575f80fd5b50565b5f813590506111a681611182565b92915050565b5f819050919050565b6111be816111ac565b81146111c8575f80fd5b50565b5f813590506111d9816111b5565b92915050565b5f80604083850312156111f5576111f461114a565b5b5f61120285828601611198565b9250506020611213858286016111cb565b9150509250929050565b5f8115159050919050565b6112318161121d565b82525050565b5f60208201905061124a5f830184611228565b92915050565b611259816111ac565b82525050565b5f6020820190506112725f830184611250565b92915050565b5f805f6060848603121561128f5761128e61114a565b5b5f61129c86828701611198565b93505060206112ad86828701611198565b92505060406112be868287016111cb565b9150509250925092565b5f60ff82169050919050565b6112dd816112c8565b82525050565b5f6020820190506112f65f8301846112d4565b92915050565b5f602082840312156113115761131061114a565b5b5f61131e84828501611198565b91505092915050565b61133081611171565b82525050565b5f6020820190506113495f830184611327565b92915050565b5f80604083850312156113655761136461114a565b5b5f61137285828601611198565b925050602061138385828601611198565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6113c7826110d9565b810181811067ffffffffffffffff821117156113e6576113e5611391565b5b80604052505050565b5f6113f8611141565b905061140482826113be565b919050565b5f67ffffffffffffffff82111561142357611422611391565b5b602082029050602081019050919050565b5f80fd5b5f61144a61144584611409565b6113ef565b9050808382526020820190506020840283018581111561146d5761146c611434565b5b835b8181101561149657806114828882611198565b84526020840193505060208101905061146f565b5050509392505050565b5f82601f8301126114b4576114b361138d565b5b81356114c4848260208601611438565b91505092915050565b5f80604083850312156114e3576114e261114a565b5b5f83013567ffffffffffffffff811115611500576114ff61114e565b5b61150c858286016114a0565b925050602061151d858286016111cb565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061156b57607f821691505b60208210810361157e5761157d611527565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6115b86020836110a1565b91506115c382611584565b602082019050919050565b5f6020820190508181035f8301526115e5816115ac565b9050919050565b7f43616c6c6572206973206e6f7420746865206f726967696e616c2063616c6c655f8201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b5f6116466021836110a1565b9150611651826115ec565b604082019050919050565b5f6020820190508181035f8301526116738161163a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6116de826111ac565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036117105761170f6116a7565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6117756026836110a1565b91506117808261171b565b604082019050919050565b5f6020820190508181035f8301526117a281611769565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6118036024836110a1565b915061180e826117a9565b604082019050919050565b5f6020820190508181035f830152611830816117f7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6118916022836110a1565b915061189c82611837565b604082019050919050565b5f6020820190508181035f8301526118be81611885565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61191f6025836110a1565b915061192a826118c5565b604082019050919050565b5f6020820190508181035f83015261194c81611913565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6119ad6023836110a1565b91506119b882611953565b604082019050919050565b5f6020820190508181035f8301526119da816119a1565b9050919050565b7f45524332303a2063726f737320616d6f756e7420646f6573206e6f74206571755f8201527f616c207468652063726f7373207472616e7366657220616d6f756e7400000000602082015250565b5f611a3b603c836110a1565b9150611a46826119e1565b604082019050919050565b5f6020820190508181035f830152611a6881611a2f565b9050919050565b5f611a79826111ac565b9150611a84836111ac565b9250828201905080821115611a9c57611a9b6116a7565b5b9291505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200cfa4f7d82a7113473993f2ca3bba415e731b5f337fcc1d507cb51b6f3fee0b364736f6c63430008140033

Deployed Bytecode

0x608060405234801561000f575f80fd5b50600436106100fe575f3560e01c8063715018a611610095578063a9059cbb11610064578063a9059cbb146102c2578063dd62ed3e146102f2578063de4763a614610322578063f2fde38b1461033e576100fe565b8063715018a61461024c5780638da5cb5b1461025657806395d89b4114610274578063a457c2d714610292576100fe565b8063313ce567116100d1578063313ce5671461019e57806339509351146101bc5780634196802b146101ec57806370a082311461021c576100fe565b806306fdde0314610102578063095ea7b31461012057806318160ddd1461015057806323b872dd1461016e575b5f80fd5b61010a61035a565b6040516101179190611121565b60405180910390f35b61013a600480360381019061013591906111df565b6103ea565b6040516101479190611237565b60405180910390f35b610158610407565b604051610165919061125f565b60405180910390f35b61018860048036038101906101839190611278565b610410565b6040516101959190611237565b60405180910390f35b6101a66104e4565b6040516101b391906112e3565b60405180910390f35b6101d660048036038101906101d191906111df565b6104f9565b6040516101e39190611237565b60405180910390f35b610206600480360381019061020191906112fc565b6105a7565b604051610213919061125f565b60405180910390f35b610236600480360381019061023191906112fc565b6105ed565b604051610243919061125f565b60405180910390f35b610254610633565b005b61025e6106ba565b60405161026b9190611336565b60405180910390f35b61027c6106e1565b6040516102899190611121565b60405180910390f35b6102ac60048036038101906102a791906111df565b610771565b6040516102b99190611237565b60405180910390f35b6102dc60048036038101906102d791906111df565b610839565b6040516102e99190611237565b60405180910390f35b61030c6004803603810190610307919061134f565b610856565b604051610319919061125f565b60405180910390f35b61033c600480360381019061033791906114cd565b6108d8565b005b610358600480360381019061035391906112fc565b6109d3565b005b60606004805461036990611554565b80601f016020809104026020016040519081016040528092919081815260200182805461039590611554565b80156103e05780601f106103b7576101008083540402835291602001916103e0565b820191905f5260205f20905b8154815290600101906020018083116103c357829003601f168201915b5050505050905090565b5f6103fd6103f6610ac9565b8484610ad0565b6001905092915050565b5f600754905090565b5f61041c848484610c93565b6104d984610428610ac9565b6104d485604051806060016040528060288152602001611ac96028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61048b610ac9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f6d9092919063ffffffff16565b610ad0565b600190509392505050565b5f60065f9054906101000a900460ff16905090565b5f61059d610505610ac9565b846105988560025f610515610ac9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610fc190919063ffffffff16565b610ad0565b6001905092915050565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61063b610ac9565b73ffffffffffffffffffffffffffffffffffffffff166106596106ba565b73ffffffffffffffffffffffffffffffffffffffff16146106af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a6906115ce565b60405180910390fd5b6106b85f610fd6565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546106f090611554565b80601f016020809104026020016040519081016040528092919081815260200182805461071c90611554565b80156107675780601f1061073e57610100808354040283529160200191610767565b820191905f5260205f20905b81548152906001019060200180831161074a57829003601f168201915b5050505050905090565b5f61082f61077d610ac9565b8461082a85604051806060016040528060258152602001611af16025913960025f6107a6610ac9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f6d9092919063ffffffff16565b610ad0565b6001905092915050565b5f61084c610845610ac9565b8484610c93565b6001905092915050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6108e06106ba565b73ffffffffffffffffffffffffffffffffffffffff166108fe610ac9565b73ffffffffffffffffffffffffffffffffffffffff1614610954576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094b9061165c565b60405180910390fd5b5f5b82518110156109ce578160035f8584815181106109765761097561167a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080806109c6906116d4565b915050610956565b505050565b6109db610ac9565b73ffffffffffffffffffffffffffffffffffffffff166109f96106ba565b73ffffffffffffffffffffffffffffffffffffffff1614610a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a46906115ce565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab49061178b565b60405180910390fd5b610ac681610fd6565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3590611819565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba3906118a7565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c86919061125f565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf890611935565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d66906119c3565b60405180910390fd5b5f610d79846105a7565b90505f811115610dc657808211610dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbc90611a51565b60405180910390fd5b5b610e3082604051806060016040528060268152602001611aa36026913960015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f6d9092919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610ec18260015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610fc190919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f5f919061125f565b60405180910390a350505050565b5f838311158290610fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fab9190611121565b60405180910390fd5b5082840390509392505050565b5f8183610fce9190611a6f565b905092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156110ce5780820151818401526020810190506110b3565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6110f382611097565b6110fd81856110a1565b935061110d8185602086016110b1565b611116816110d9565b840191505092915050565b5f6020820190508181035f83015261113981846110e9565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61117b82611152565b9050919050565b61118b81611171565b8114611195575f80fd5b50565b5f813590506111a681611182565b92915050565b5f819050919050565b6111be816111ac565b81146111c8575f80fd5b50565b5f813590506111d9816111b5565b92915050565b5f80604083850312156111f5576111f461114a565b5b5f61120285828601611198565b9250506020611213858286016111cb565b9150509250929050565b5f8115159050919050565b6112318161121d565b82525050565b5f60208201905061124a5f830184611228565b92915050565b611259816111ac565b82525050565b5f6020820190506112725f830184611250565b92915050565b5f805f6060848603121561128f5761128e61114a565b5b5f61129c86828701611198565b93505060206112ad86828701611198565b92505060406112be868287016111cb565b9150509250925092565b5f60ff82169050919050565b6112dd816112c8565b82525050565b5f6020820190506112f65f8301846112d4565b92915050565b5f602082840312156113115761131061114a565b5b5f61131e84828501611198565b91505092915050565b61133081611171565b82525050565b5f6020820190506113495f830184611327565b92915050565b5f80604083850312156113655761136461114a565b5b5f61137285828601611198565b925050602061138385828601611198565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6113c7826110d9565b810181811067ffffffffffffffff821117156113e6576113e5611391565b5b80604052505050565b5f6113f8611141565b905061140482826113be565b919050565b5f67ffffffffffffffff82111561142357611422611391565b5b602082029050602081019050919050565b5f80fd5b5f61144a61144584611409565b6113ef565b9050808382526020820190506020840283018581111561146d5761146c611434565b5b835b8181101561149657806114828882611198565b84526020840193505060208101905061146f565b5050509392505050565b5f82601f8301126114b4576114b361138d565b5b81356114c4848260208601611438565b91505092915050565b5f80604083850312156114e3576114e261114a565b5b5f83013567ffffffffffffffff811115611500576114ff61114e565b5b61150c858286016114a0565b925050602061151d858286016111cb565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061156b57607f821691505b60208210810361157e5761157d611527565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6115b86020836110a1565b91506115c382611584565b602082019050919050565b5f6020820190508181035f8301526115e5816115ac565b9050919050565b7f43616c6c6572206973206e6f7420746865206f726967696e616c2063616c6c655f8201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b5f6116466021836110a1565b9150611651826115ec565b604082019050919050565b5f6020820190508181035f8301526116738161163a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6116de826111ac565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036117105761170f6116a7565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6117756026836110a1565b91506117808261171b565b604082019050919050565b5f6020820190508181035f8301526117a281611769565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6118036024836110a1565b915061180e826117a9565b604082019050919050565b5f6020820190508181035f830152611830816117f7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6118916022836110a1565b915061189c82611837565b604082019050919050565b5f6020820190508181035f8301526118be81611885565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61191f6025836110a1565b915061192a826118c5565b604082019050919050565b5f6020820190508181035f83015261194c81611913565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6119ad6023836110a1565b91506119b882611953565b604082019050919050565b5f6020820190508181035f8301526119da816119a1565b9050919050565b7f45524332303a2063726f737320616d6f756e7420646f6573206e6f74206571755f8201527f616c207468652063726f7373207472616e7366657220616d6f756e7400000000602082015250565b5f611a3b603c836110a1565b9150611a46826119e1565b604082019050919050565b5f6020820190508181035f830152611a6881611a2f565b9050919050565b5f611a79826111ac565b9150611a84836111ac565b9250828201905080821115611a9c57611a9b6116a7565b5b9291505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200cfa4f7d82a7113473993f2ca3bba415e731b5f337fcc1d507cb51b6f3fee0b364736f6c63430008140033

Deployed Bytecode Sourcemap

5008:5269:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5704:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7069:210;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6170:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7287:454;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5906:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7904:300;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8508:112;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6286:177;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1886:94;;;:::i;:::-;;1570:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5803:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8628:400;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6636:216;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6860:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8212:287;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1988:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5704:91;5749:13;5782:5;5775:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5704:91;:::o;7069:210::-;7188:4;7210:39;7219:12;:10;:12::i;:::-;7233:7;7242:6;7210:8;:39::i;:::-;7267:4;7260:11;;7069:210;;;;:::o;6170:108::-;6231:7;6258:12;;6251:19;;6170:108;:::o;7287:454::-;7427:4;7444:36;7454:6;7462:9;7473:6;7444:9;:36::i;:::-;7491:220;7514:6;7535:12;:10;:12::i;:::-;7562:138;7618:6;7562:138;;;;;;;;;;;;;;;;;:11;:19;7574:6;7562:19;;;;;;;;;;;;;;;:33;7582:12;:10;:12::i;:::-;7562:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7491:8;:220::i;:::-;7729:4;7722:11;;7287:454;;;;;:::o;5906:91::-;5955:5;5980:9;;;;;;;;;;;5973:16;;5906:91;:::o;7904:300::-;8019:4;8041:133;8064:12;:10;:12::i;:::-;8091:7;8113:50;8152:10;8113:11;:25;8125:12;:10;:12::i;:::-;8113:25;;;;;;;;;;;;;;;:34;8139:7;8113:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8041:8;:133::i;:::-;8192:4;8185:11;;7904:300;;;;:::o;8508:112::-;8563:7;8590:13;:22;8604:7;8590:22;;;;;;;;;;;;;;;;8583:29;;8508:112;;;:::o;6286:177::-;6405:7;6437:9;:18;6447:7;6437:18;;;;;;;;;;;;;;;;6430:25;;6286:177;;;:::o;1886:94::-;1809:12;:10;:12::i;:::-;1798:23;;:7;:5;:7::i;:::-;:23;;;1790:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1951:21:::1;1969:1;1951:9;:21::i;:::-;1886:94::o:0;1570:87::-;1616:7;1643:6;;;;;;;;;;;1636:13;;1570:87;:::o;5803:95::-;5850:13;5883:7;5876:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5803:95;:::o;8628:400::-;8748:4;8770:228;8793:12;:10;:12::i;:::-;8820:7;8842:145;8899:15;8842:145;;;;;;;;;;;;;;;;;:11;:25;8854:12;:10;:12::i;:::-;8842:25;;;;;;;;;;;;;;;:34;8868:7;8842:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;8770:8;:228::i;:::-;9016:4;9009:11;;8628:400;;;;:::o;6636:216::-;6758:4;6780:42;6790:12;:10;:12::i;:::-;6804:9;6815:6;6780:9;:42::i;:::-;6840:4;6833:11;;6636:216;;;;:::o;6860:201::-;6994:7;7026:11;:18;7038:5;7026:18;;;;;;;;;;;;;;;:27;7045:7;7026:27;;;;;;;;;;;;;;;;7019:34;;6860:201;;;;:::o;8212:287::-;8311:7;:5;:7::i;:::-;8295:23;;:12;:10;:12::i;:::-;:23;;;8291:75;;8321:43;;;;;;;;;;:::i;:::-;;;;;;;;8291:75;8389:9;8384:108;8408:8;:15;8404:1;:19;8384:108;;;8474:6;8445:13;:26;8459:8;8468:1;8459:11;;;;;;;;:::i;:::-;;;;;;;;8445:26;;;;;;;;;;;;;;;:35;;;;8425:3;;;;;:::i;:::-;;;;8384:108;;;;8212:287;;:::o;1988:192::-;1809:12;:10;:12::i;:::-;1798:23;;:7;:5;:7::i;:::-;:23;;;1790:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2097:1:::1;2077:22;;:8;:22;;::::0;2069:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2153:19;2163:8;2153:9;:19::i;:::-;1988:192:::0;:::o;1125:98::-;1178:7;1205:10;1198:17;;1125:98;:::o;9890:380::-;10043:1;10026:19;;:5;:19;;;10018:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10124:1;10105:21;;:7;:21;;;10097:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10208:6;10178:11;:18;10190:5;10178:18;;;;;;;;;;;;;;;:27;10197:7;10178:27;;;;;;;;;;;;;;;:36;;;;10246:7;10230:32;;10239:5;10230:32;;;10255:6;10230:32;;;;;;:::i;:::-;;;;;;;;9890:380;;;:::o;9036:846::-;9194:1;9176:20;;:6;:20;;;9168:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9278:1;9257:23;;:9;:23;;;9249:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9331:19;9353:15;9361:6;9353:7;:15::i;:::-;9331:37;;9397:1;9383:11;:15;9379:141;;;9432:11;9423:6;:20;9415:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;9379:141;9649:108;9685:6;9649:108;;;;;;;;;;;;;;;;;:9;:17;9659:6;9649:17;;;;;;;;;;;;;;;;:21;;:108;;;;;:::i;:::-;9629:9;:17;9639:6;9629:17;;;;;;;;;;;;;;;:128;;;;9791:32;9816:6;9791:9;:20;9801:9;9791:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9768:9;:20;9778:9;9768:20;;;;;;;;;;;;;;;:55;;;;9856:9;9839:35;;9848:6;9839:35;;;9867:6;9839:35;;;;;;:::i;:::-;;;;;;;;9157:725;9036:846;;;:::o;4267:240::-;4387:7;4445:1;4440;:6;;4448:12;4432:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4487:1;4483;:5;4476:12;;4267:240;;;;;:::o;3665:98::-;3723:7;3754:1;3750;:5;;;;:::i;:::-;3743:12;;3665:98;;;;:::o;2188:173::-;2244:16;2263:6;;;;;;;;;;;2244:25;;2289:8;2280:6;;:17;;;;;;;;;;;;;;;;;;2344:8;2313:40;;2334:8;2313:40;;;;;;;;;;;;2233:128;2188:173;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::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:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:117::-;6129:1;6126;6119:12;6143:180;6191:77;6188:1;6181:88;6288:4;6285:1;6278:15;6312:4;6309:1;6302:15;6329:281;6412:27;6434:4;6412:27;:::i;:::-;6404:6;6400:40;6542:6;6530:10;6527:22;6506:18;6494:10;6491:34;6488:62;6485:88;;;6553:18;;:::i;:::-;6485:88;6593:10;6589:2;6582:22;6372:238;6329:281;;:::o;6616:129::-;6650:6;6677:20;;:::i;:::-;6667:30;;6706:33;6734:4;6726:6;6706:33;:::i;:::-;6616:129;;;:::o;6751:311::-;6828:4;6918:18;6910:6;6907:30;6904:56;;;6940:18;;:::i;:::-;6904:56;6990:4;6982:6;6978:17;6970:25;;7050:4;7044;7040:15;7032:23;;6751:311;;;:::o;7068:117::-;7177:1;7174;7167:12;7208:710;7304:5;7329:81;7345:64;7402:6;7345:64;:::i;:::-;7329:81;:::i;:::-;7320:90;;7430:5;7459:6;7452:5;7445:21;7493:4;7486:5;7482:16;7475:23;;7546:4;7538:6;7534:17;7526:6;7522:30;7575:3;7567:6;7564:15;7561:122;;;7594:79;;:::i;:::-;7561:122;7709:6;7692:220;7726:6;7721:3;7718:15;7692:220;;;7801:3;7830:37;7863:3;7851:10;7830:37;:::i;:::-;7825:3;7818:50;7897:4;7892:3;7888:14;7881:21;;7768:144;7752:4;7747:3;7743:14;7736:21;;7692:220;;;7696:21;7310:608;;7208:710;;;;;:::o;7941:370::-;8012:5;8061:3;8054:4;8046:6;8042:17;8038:27;8028:122;;8069:79;;:::i;:::-;8028:122;8186:6;8173:20;8211:94;8301:3;8293:6;8286:4;8278:6;8274:17;8211:94;:::i;:::-;8202:103;;8018:293;7941:370;;;;:::o;8317:684::-;8410:6;8418;8467:2;8455:9;8446:7;8442:23;8438:32;8435:119;;;8473:79;;:::i;:::-;8435:119;8621:1;8610:9;8606:17;8593:31;8651:18;8643:6;8640:30;8637:117;;;8673:79;;:::i;:::-;8637:117;8778:78;8848:7;8839:6;8828:9;8824:22;8778:78;:::i;:::-;8768:88;;8564:302;8905:2;8931:53;8976:7;8967:6;8956:9;8952:22;8931:53;:::i;:::-;8921:63;;8876:118;8317:684;;;;;:::o;9007:180::-;9055:77;9052:1;9045:88;9152:4;9149:1;9142:15;9176:4;9173:1;9166:15;9193:320;9237:6;9274:1;9268:4;9264:12;9254:22;;9321:1;9315:4;9311:12;9342:18;9332:81;;9398:4;9390:6;9386:17;9376:27;;9332:81;9460:2;9452:6;9449:14;9429:18;9426:38;9423:84;;9479:18;;:::i;:::-;9423:84;9244:269;9193:320;;;:::o;9519:182::-;9659:34;9655:1;9647:6;9643:14;9636:58;9519:182;:::o;9707:366::-;9849:3;9870:67;9934:2;9929:3;9870:67;:::i;:::-;9863:74;;9946:93;10035:3;9946:93;:::i;:::-;10064:2;10059:3;10055:12;10048:19;;9707:366;;;:::o;10079:419::-;10245:4;10283:2;10272:9;10268:18;10260:26;;10332:9;10326:4;10322:20;10318:1;10307:9;10303:17;10296:47;10360:131;10486:4;10360:131;:::i;:::-;10352:139;;10079:419;;;:::o;10504:220::-;10644:34;10640:1;10632:6;10628:14;10621:58;10713:3;10708:2;10700:6;10696:15;10689:28;10504:220;:::o;10730:366::-;10872:3;10893:67;10957:2;10952:3;10893:67;:::i;:::-;10886:74;;10969:93;11058:3;10969:93;:::i;:::-;11087:2;11082:3;11078:12;11071:19;;10730:366;;;:::o;11102:419::-;11268:4;11306:2;11295:9;11291:18;11283:26;;11355:9;11349:4;11345:20;11341:1;11330:9;11326:17;11319:47;11383:131;11509:4;11383:131;:::i;:::-;11375:139;;11102:419;;;:::o;11527:180::-;11575:77;11572:1;11565:88;11672:4;11669:1;11662:15;11696:4;11693:1;11686:15;11713:180;11761:77;11758:1;11751:88;11858:4;11855:1;11848:15;11882:4;11879:1;11872:15;11899:233;11938:3;11961:24;11979:5;11961:24;:::i;:::-;11952:33;;12007:66;12000:5;11997:77;11994:103;;12077:18;;:::i;:::-;11994:103;12124:1;12117:5;12113:13;12106:20;;11899:233;;;:::o;12138:225::-;12278:34;12274:1;12266:6;12262:14;12255:58;12347:8;12342:2;12334:6;12330:15;12323:33;12138:225;:::o;12369:366::-;12511:3;12532:67;12596:2;12591:3;12532:67;:::i;:::-;12525:74;;12608:93;12697:3;12608:93;:::i;:::-;12726:2;12721:3;12717:12;12710:19;;12369:366;;;:::o;12741:419::-;12907:4;12945:2;12934:9;12930:18;12922:26;;12994:9;12988:4;12984:20;12980:1;12969:9;12965:17;12958:47;13022:131;13148:4;13022:131;:::i;:::-;13014:139;;12741:419;;;:::o;13166:223::-;13306:34;13302:1;13294:6;13290:14;13283:58;13375:6;13370:2;13362:6;13358:15;13351:31;13166:223;:::o;13395:366::-;13537:3;13558:67;13622:2;13617:3;13558:67;:::i;:::-;13551:74;;13634:93;13723:3;13634:93;:::i;:::-;13752:2;13747:3;13743:12;13736:19;;13395:366;;;:::o;13767:419::-;13933:4;13971:2;13960:9;13956:18;13948:26;;14020:9;14014:4;14010:20;14006:1;13995:9;13991:17;13984:47;14048:131;14174:4;14048:131;:::i;:::-;14040:139;;13767:419;;;:::o;14192:221::-;14332:34;14328:1;14320:6;14316:14;14309:58;14401:4;14396:2;14388:6;14384:15;14377:29;14192:221;:::o;14419:366::-;14561:3;14582:67;14646:2;14641:3;14582:67;:::i;:::-;14575:74;;14658:93;14747:3;14658:93;:::i;:::-;14776:2;14771:3;14767:12;14760:19;;14419:366;;;:::o;14791:419::-;14957:4;14995:2;14984:9;14980:18;14972:26;;15044:9;15038:4;15034:20;15030:1;15019:9;15015:17;15008:47;15072:131;15198:4;15072:131;:::i;:::-;15064:139;;14791:419;;;:::o;15216:224::-;15356:34;15352:1;15344:6;15340:14;15333:58;15425:7;15420:2;15412:6;15408:15;15401:32;15216:224;:::o;15446:366::-;15588:3;15609:67;15673:2;15668:3;15609:67;:::i;:::-;15602:74;;15685:93;15774:3;15685:93;:::i;:::-;15803:2;15798:3;15794:12;15787:19;;15446:366;;;:::o;15818:419::-;15984:4;16022:2;16011:9;16007:18;15999:26;;16071:9;16065:4;16061:20;16057:1;16046:9;16042:17;16035:47;16099:131;16225:4;16099:131;:::i;:::-;16091:139;;15818:419;;;:::o;16243:222::-;16383:34;16379:1;16371:6;16367:14;16360:58;16452:5;16447:2;16439:6;16435:15;16428:30;16243:222;:::o;16471:366::-;16613:3;16634:67;16698:2;16693:3;16634:67;:::i;:::-;16627:74;;16710:93;16799:3;16710:93;:::i;:::-;16828:2;16823:3;16819:12;16812:19;;16471:366;;;:::o;16843:419::-;17009:4;17047:2;17036:9;17032:18;17024:26;;17096:9;17090:4;17086:20;17082:1;17071:9;17067:17;17060:47;17124:131;17250:4;17124:131;:::i;:::-;17116:139;;16843:419;;;:::o;17268:247::-;17408:34;17404:1;17396:6;17392:14;17385:58;17477:30;17472:2;17464:6;17460:15;17453:55;17268:247;:::o;17521:366::-;17663:3;17684:67;17748:2;17743:3;17684:67;:::i;:::-;17677:74;;17760:93;17849:3;17760:93;:::i;:::-;17878:2;17873:3;17869:12;17862:19;;17521:366;;;:::o;17893:419::-;18059:4;18097:2;18086:9;18082:18;18074:26;;18146:9;18140:4;18136:20;18132:1;18121:9;18117:17;18110:47;18174:131;18300:4;18174:131;:::i;:::-;18166:139;;17893:419;;;:::o;18318:191::-;18358:3;18377:20;18395:1;18377:20;:::i;:::-;18372:25;;18411:20;18429:1;18411:20;:::i;:::-;18406:25;;18454:1;18451;18447:9;18440:16;;18475:3;18472:1;18469:10;18466:36;;;18482:18;;:::i;:::-;18466:36;18318:191;;;;:::o

Swarm Source

ipfs://0cfa4f7d82a7113473993f2ca3bba415e731b5f337fcc1d507cb51b6f3fee0b3
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.