Contract Address Details

0xCE1bC003880f159082bCED7b8a6D410C2fEeB5c5

Contract Name
EWC_SIDE
Creator
0x528fb4–158fd5 at 0x5492ce–60cc65
Balance
0 EWT ( )
Tokens
Fetching tokens...
Transactions
30 Transactions
Transfers
15 Transfers
Gas Used
2,594,465
Last Balance Update
33412501
Contract name:
EWC_SIDE




Optimization enabled
false
Compiler version
v0.8.7+commit.e28d00a7




EVM Version
default




Verified at
2022-04-06T03:42:22.397367Z

Contract source code

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

//
//
//

interface IERC165 {
    
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

//
//
//

interface IERC721 is IERC165 {
    
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
    
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
    
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
    
    function balanceOf(address owner) external view returns (uint256 balance);
    
    function ownerOf(uint256 tokenId) external view returns (address owner);
    
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;
    
    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;
    
    function approve(address to, uint256 tokenId) external;
    
    function getApproved(uint256 tokenId) external view returns (address operator);
    
    function setApprovalForAll(address operator, bool _approved) external;
    
    function isApprovedForAll(address owner, address operator) external view returns (bool);
    
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes calldata data
    ) external;
}

//
//
//

interface IERC721Receiver {
    
    function onERC721Received(
        address operator,
        address from,
        uint256 tokenId,
        bytes calldata data
    ) external returns (bytes4);
}

//
//
//

interface IERC721Metadata is IERC721 {
    
    function name() external view returns (string memory);
    
    function symbol() external view returns (string memory);
    
    function tokenURI(uint256 tokenId) external view returns (string memory);
}

//
//
//

library Address {
    
    function isContract(address account) internal view returns (bool) {
        
        
        
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }
    
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }
    
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResult(success, returndata, errorMessage);
    }
    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }
    
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }
    
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            
            if (returndata.length > 0) {
                
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

//
//
//

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

//
//
//

library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";
    
    function toString(uint256 value) internal pure returns (string memory) {
        
        
        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }
    
    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0x00";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }
    
    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }
}

//
//
//

abstract contract ERC165 is IERC165 {
    
    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IERC165).interfaceId;
    }
}

//
//
//

interface IERC721Enumerable is IERC721 {
    
    function totalSupply() external view returns (uint256);
    
    function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);
    
    function tokenByIndex(uint256 index) external view returns (uint256);
}

//
//
//

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;
    }
    
    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);
    }
}

//
//
//


contract EWC_SIDE is Ownable{

    address oracleWallet = 0x528fB4e33473a4aB9D83BaF52961E9400d158Fd5;
    address iinuSC = 0xbf0e4613f25bBA08811632613F4161FA415CB253;
    uint public bridgeGas = 10000000000000000;

    mapping(uint => bool) public queued;
    mapping(uint => bool) public locked;
    mapping(uint => address) public receiva;
    mapping(uint => address) public senda;
    uint[] public pending;

    constructor () {
    }

    function getPending() public view returns(uint) {
        return pending.length;
    }

    function sendIinu(uint tokenId) public payable{
        require(msg.value >= bridgeGas, "You must pay the bridge gas fee.");
        require(IERC721(iinuSC).ownerOf(tokenId) == _msgSender(), "You don't own that Iinu!");
        IERC721(iinuSC).transferFrom(address(_msgSender()), address(this), tokenId);
        senda[tokenId] = _msgSender();
        locked[tokenId] = true;
        pending.push(tokenId);
        (bool bridgeFee,) = payable(oracleWallet).call{value:address(this).balance}("Fee paid!");
        require(bridgeFee);
    }

    function receiveIinu(uint tokenId) public payable{
        require(msg.value >= bridgeGas, "You must pay the bridge gas fee.");
        require(locked[tokenId] != true, "That Iinu is currently locked!");
        require(receiva[tokenId] == _msgSender(), "You're not the owner of that iinu!");
        IERC721(iinuSC).transferFrom(address(this), _msgSender(), tokenId);
        receiva[tokenId] = address(0);
        senda[tokenId] = address(0);
        (bool bridgeFee,) = payable(oracleWallet).call{value:address(this).balance}("Fee paid!");
        require(bridgeFee);
    }

    function unlock(uint tokenId, address addy) public {
        require(msg.sender == oracleWallet, "Oracle command only!");
        locked[tokenId] = false;
        receiva[tokenId] = addy;
    }

    function oracleTenFour() public {
        require(msg.sender == oracleWallet, "Oracle command only!");
        delete pending;
    }

    function wdOverages() public {
        require(msg.sender == oracleWallet, "Oracle command only!");
        (bool wd,) = payable(_msgSender()).call{value: address(this).balance}("Withdrawn!");
        require(wd);
    }

}
        

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[]},{"type":"event","name":"OwnershipTransferred","inputs":[{"type":"address","name":"previousOwner","internalType":"address","indexed":true},{"type":"address","name":"newOwner","internalType":"address","indexed":true}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"bridgeGas","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getPending","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"locked","inputs":[{"type":"uint256","name":"","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"oracleTenFour","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"pending","inputs":[{"type":"uint256","name":"","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"queued","inputs":[{"type":"uint256","name":"","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"receiva","inputs":[{"type":"uint256","name":"","internalType":"uint256"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"receiveIinu","inputs":[{"type":"uint256","name":"tokenId","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"renounceOwnership","inputs":[]},{"type":"function","stateMutability":"payable","outputs":[],"name":"sendIinu","inputs":[{"type":"uint256","name":"tokenId","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"senda","inputs":[{"type":"uint256","name":"","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transferOwnership","inputs":[{"type":"address","name":"newOwner","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"unlock","inputs":[{"type":"uint256","name":"tokenId","internalType":"uint256"},{"type":"address","name":"addy","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"wdOverages","inputs":[]}]
            

Deployed ByteCode

0x6080604052600436106100e85760003560e01c80639f0c31011161008a578063cd1986c411610059578063cd1986c4146102d5578063f1d2ec1d146102f1578063f2fde38b1461031a578063f31aad9b14610343576100e8565b80639f0c310114610207578063a0f267fc14610244578063af6e62381461025b578063b45a3c0e14610298576100e8565b806352c8d064116100c657806352c8d06414610171578063715018a6146101885780638da5cb5b1461019f5780638fd133d6146101ca576100e8565b806311ae9ed2146100ed57806318bdfd621461011857806349068d6a14610134575b600080fd5b3480156100f957600080fd5b5061010261036e565b60405161010f919061141a565b60405180910390f35b610132600480360381019061012d91906110ce565b61037b565b005b34801561014057600080fd5b5061015b600480360381019061015691906110ce565b6106aa565b60405161016891906112cd565b60405180910390f35b34801561017d57600080fd5b506101866106dd565b005b34801561019457600080fd5b5061019d6107ed565b005b3480156101ab57600080fd5b506101b4610875565b6040516101c191906112cd565b60405180910390f35b3480156101d657600080fd5b506101f160048036038101906101ec91906110ce565b61089e565b6040516101fe91906112cd565b60405180910390f35b34801561021357600080fd5b5061022e600480360381019061022991906110ce565b6108d1565b60405161023b919061131f565b60405180910390f35b34801561025057600080fd5b506102596108f1565b005b34801561026757600080fd5b50610282600480360381019061027d91906110ce565b610991565b60405161028f919061141a565b60405180910390f35b3480156102a457600080fd5b506102bf60048036038101906102ba91906110ce565b6109b5565b6040516102cc919061131f565b60405180910390f35b6102ef60048036038101906102ea91906110ce565b6109d5565b005b3480156102fd57600080fd5b50610318600480360381019061031391906110fb565b610d1b565b005b34801561032657600080fd5b50610341600480360381019061033c9190611074565b610e2d565b005b34801561034f57600080fd5b50610358610f25565b604051610365919061141a565b60405180910390f35b6000600880549050905090565b6003543410156103c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b7906113da565b60405180910390fd5b600115156005600083815260200190815260200160002060009054906101000a900460ff1615151415610428576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041f9061137a565b60405180910390fd5b610430610f2b565b73ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c79061135a565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd30610517610f2b565b846040518463ffffffff1660e01b8152600401610536939291906112e8565b600060405180830381600087803b15801561055057600080fd5b505af1158015610564573d6000803e3d6000fd5b5050505060006006600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006007600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051610656906112a3565b60006040518083038185875af1925050503d8060008114610693576040519150601f19603f3d011682016040523d82523d6000602084013e610698565b606091505b50509050806106a657600080fd5b5050565b60066020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461076d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610764906113ba565b60405180910390fd5b6000610777610f2b565b73ffffffffffffffffffffffffffffffffffffffff164760405161079a906112b8565b60006040518083038185875af1925050503d80600081146107d7576040519150601f19603f3d011682016040523d82523d6000602084013e6107dc565b606091505b50509050806107ea57600080fd5b50565b6107f5610f2b565b73ffffffffffffffffffffffffffffffffffffffff16610813610875565b73ffffffffffffffffffffffffffffffffffffffff1614610869576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108609061139a565b60405180910390fd5b6108736000610f33565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60076020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610981576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610978906113ba565b60405180910390fd5b6008600061098f9190610ff7565b565b600881815481106109a157600080fd5b906000526020600020016000915090505481565b60056020528060005260406000206000915054906101000a900460ff1681565b600354341015610a1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a11906113da565b60405180910390fd5b610a22610f2b565b73ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b8152600401610a93919061141a565b60206040518083038186803b158015610aab57600080fd5b505afa158015610abf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae391906110a1565b73ffffffffffffffffffffffffffffffffffffffff1614610b39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b30906113fa565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd610b7f610f2b565b30846040518463ffffffff1660e01b8152600401610b9f939291906112e8565b600060405180830381600087803b158015610bb957600080fd5b505af1158015610bcd573d6000803e3d6000fd5b50505050610bd9610f2b565b6007600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060088190806001815401808255809150506001900390600052602060002001600090919091909150556000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051610cc7906112a3565b60006040518083038185875af1925050503d8060008114610d04576040519150601f19603f3d011682016040523d82523d6000602084013e610d09565b606091505b5050905080610d1757600080fd5b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da2906113ba565b60405180910390fd5b60006005600084815260200190815260200160002060006101000a81548160ff021916908315150217905550806006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b610e35610f2b565b73ffffffffffffffffffffffffffffffffffffffff16610e53610875565b73ffffffffffffffffffffffffffffffffffffffff1614610ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea09061139a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f109061133a565b60405180910390fd5b610f2281610f33565b50565b60035481565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b50805460008255906000526020600020908101906110159190611018565b50565b5b80821115611031576000816000905550600101611019565b5090565b6000813590506110448161165b565b92915050565b6000815190506110598161165b565b92915050565b60008135905061106e81611672565b92915050565b60006020828403121561108a57611089611499565b5b600061109884828501611035565b91505092915050565b6000602082840312156110b7576110b6611499565b5b60006110c58482850161104a565b91505092915050565b6000602082840312156110e4576110e3611499565b5b60006110f28482850161105f565b91505092915050565b6000806040838503121561111257611111611499565b5b60006111208582860161105f565b925050602061113185828601611035565b9150509250929050565b61114481611451565b82525050565b61115381611463565b82525050565b6000611166602683611440565b91506111718261149e565b604082019050919050565b6000611189602283611440565b9150611194826114ed565b604082019050919050565b60006111ac600983611435565b91506111b78261153c565b600982019050919050565b60006111cf601e83611440565b91506111da82611565565b602082019050919050565b60006111f2600a83611435565b91506111fd8261158e565b600a82019050919050565b6000611215602083611440565b9150611220826115b7565b602082019050919050565b6000611238601483611440565b9150611243826115e0565b602082019050919050565b600061125b602083611440565b915061126682611609565b602082019050919050565b600061127e601883611440565b915061128982611632565b602082019050919050565b61129d8161148f565b82525050565b60006112ae8261119f565b9150819050919050565b60006112c3826111e5565b9150819050919050565b60006020820190506112e2600083018461113b565b92915050565b60006060820190506112fd600083018661113b565b61130a602083018561113b565b6113176040830184611294565b949350505050565b6000602082019050611334600083018461114a565b92915050565b6000602082019050818103600083015261135381611159565b9050919050565b600060208201905081810360008301526113738161117c565b9050919050565b60006020820190508181036000830152611393816111c2565b9050919050565b600060208201905081810360008301526113b381611208565b9050919050565b600060208201905081810360008301526113d38161122b565b9050919050565b600060208201905081810360008301526113f38161124e565b9050919050565b6000602082019050818103600083015261141381611271565b9050919050565b600060208201905061142f6000830184611294565b92915050565b600081905092915050565b600082825260208201905092915050565b600061145c8261146f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600080fd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f596f75277265206e6f7420746865206f776e6572206f6620746861742069696e60008201527f7521000000000000000000000000000000000000000000000000000000000000602082015250565b7f4665652070616964210000000000000000000000000000000000000000000000600082015250565b7f546861742049696e752069732063757272656e746c79206c6f636b6564210000600082015250565b7f57697468647261776e2100000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4f7261636c6520636f6d6d616e64206f6e6c7921000000000000000000000000600082015250565b7f596f75206d75737420706179207468652062726964676520676173206665652e600082015250565b7f596f7520646f6e2774206f776e20746861742049696e75210000000000000000600082015250565b61166481611451565b811461166f57600080fd5b50565b61167b8161148f565b811461168657600080fd5b5056fea2646970667358221220d98d63fb8fbd7ac0ba335761c759fcba0e4a4a6bfb8e6d587c19c8470587642264736f6c63430008070033