Loading
[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721IncorrectOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721InsufficientApproval", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC721InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC721InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721InvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC721InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC721InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721NonexistentToken", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "nftId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "brainFather", "type": "address" } ], "name": "BrainMinted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "nftId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "brainTokenAddress", "type": "address" } ], "name": "BrainTokenActivated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "newURI", "type": "string" } ], "name": "BrainURIUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "contributor", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ContributionReceived", "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": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "MAX_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "activateBrain", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "brainCreditAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "brainToERC20", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "collectiveMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "contributeBrainCredits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "contributions", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "contributors", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "staker", "type": "address" } ], "name": "getStakedAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getTimeUntilWithdrawal", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "mintLabsBrain", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "onERC721Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pepecoinAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "redeemBrain", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_brainCreditAddress", "type": "address" } ], "name": "setBrainCredits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_pepecoinAddress", "type": "address" } ], "name": "setPepecoin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "stakePepecoin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "stakes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "toggleBlockBrainUri", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "tokenCounter", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "tokenStakeTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "unstakePepecoin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "newURI", "type": "string" } ], "name": "updateBrainURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801561000f575f80fd5b50336040518060400160405280600e81526020016d4261736564414920427261696e7360901b81525060405180604001604052806005815260200164212920a4a760d91b815250815f908161006491906101a2565b50600161007182826101a2565b50506001600655506001600160a01b0381166100a657604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100af816100b9565b505f60115561025c565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061013257607f821691505b60208210810361015057634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561019d57805f5260205f20601f840160051c8101602085101561017b5750805b601f840160051c820191505b8181101561019a575f8155600101610187565b50505b505050565b81516001600160401b038111156101bb576101bb61010a565b6101cf816101c9845461011e565b84610156565b6020601f821160018114610201575f83156101ea5750848201515b5f19600385901b1c1916600184901b17845561019a565b5f84815260208120601f198516915b828110156102305787850151825560209485019460019092019101610210565b508482101561024d57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b614052806102695f395ff3fe608060405234801561000f575f80fd5b50600436106102b7575f3560e01c806370a0823111610171578063a43275bd116100d2578063d082e38111610088578063ee2231991161006e578063ee22319914610606578063f2fde38b14610625578063fa7f1db814610638575f80fd5b8063d082e381146105c2578063e985e9c5146105cb575f80fd5b8063c3edd884116100b8578063c3edd88414610594578063c87b56dd146105a7578063cd07c6aa146105ba575f80fd5b8063a43275bd1461056e578063b88d4fde14610581575f80fd5b80638da5cb5b1161012757806397d7cef41161010d57806397d7cef41461053557806398462b6814610548578063a22cb4651461055b575f80fd5b80638da5cb5b1461051c57806395d89b411461052d575f80fd5b806379e8a6041161015757806379e8a604146104ce5780637ca77d9f146104f657806387d5ec8e14610509575f80fd5b806370a08231146104b3578063715018a6146104c6575f80fd5b806334ad35011161021b5780634da6a556116101d157806352ed33c3116101b757806352ed33c31461047a57806353917a4d1461048d5780636352211e146104a0575f80fd5b80634da6a5561461043f5780634ddfb0f214610467575f80fd5b80633cb5d100116102015780633cb5d100146103fa57806342842e0e1461040d57806342e94c9014610420575f80fd5b806334ad3501146103d45780633765af0b146103e7575f80fd5b806316934fc41161027057806323b872dd1161025657806323b872dd146103a55780632b3ae25c146103b857806332cb6b0c146103cb575f80fd5b806316934fc41461037057806318160ddd1461039d575f80fd5b8063081812fc116102a0578063081812fc146102f8578063095ea7b314610323578063150b7a0214610338575f80fd5b806301ffc9a7146102bb57806306fdde03146102e3575b5f80fd5b6102ce6102c93660046128ec565b61064b565b60405190151581526020015b60405180910390f35b6102eb6106e7565b6040516102da9190612935565b61030b610306366004612947565b610776565b6040516001600160a01b0390911681526020016102da565b610336610331366004612974565b61079d565b005b61035761034636600461299c565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020016102da565b61038f61037e366004612a31565b600d6020525f908152604090205481565b6040519081526020016102da565b61040061038f565b6103366103b3366004612a4a565b6107ac565b61038f6103c6366004612947565b610853565b61038f61040081565b6103366103e2366004612947565b610930565b6103366103f5366004612b0f565b610957565b61030b610408366004612947565b610ab4565b61033661041b366004612a4a565b610adc565b61038f61042e366004612a31565b600b6020525f908152604090205481565b61038f61044d366004612a31565b6001600160a01b03165f908152600d602052604090205490565b610336610475366004612947565b610afb565b610336610488366004612947565b610dba565b61033661049b366004612a31565b610f57565b61030b6104ae366004612947565b610f8e565b61038f6104c1366004612a31565b610f98565b610336610ff6565b61030b6104dc366004612947565b600c6020525f90815260409020546001600160a01b031681565b60095461030b906001600160a01b031681565b610336610517366004612947565b611009565b6007546001600160a01b031661030b565b6102eb61139b565b610336610543366004612947565b6113aa565b60085461030b906001600160a01b031681565b610336610569366004612b73565b61150d565b61033661057c366004612947565b611518565b61033661058f366004612ba8565b611837565b6103366105a2366004612947565b61184e565b6102eb6105b5366004612947565b6119c3565b610336611aa2565b61038f60115481565b6102ce6105d9366004612c1f565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205460ff1690565b61038f610614366004612947565b600e6020525f908152604090205481565b610336610633366004612a31565b611ea0565b610336610646366004612a31565b611ef3565b5f6001600160e01b031982167f80ac58cd0000000000000000000000000000000000000000000000000000000014806106ad57506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b806106e157507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b60605f80546106f590612c50565b80601f016020809104026020016040519081016040528092919081815260200182805461072190612c50565b801561076c5780601f106107435761010080835404028352916020019161076c565b820191905f5260205f20905b81548152906001019060200180831161074f57829003601f168201915b5050505050905090565b5f61078082611f2a565b505f828152600460205260409020546001600160a01b03166106e1565b6107a8828233611f62565b5050565b6001600160a01b0382166107da57604051633250574960e11b81525f60048201526024015b60405180910390fd5b5f6107e6838333611f6f565b9050836001600160a01b0316816001600160a01b03161461084d576040517f64283d7b0000000000000000000000000000000000000000000000000000000081526001600160a01b03808616600483015260248201849052821660448201526064016107d1565b50505050565b5f3361085e83610f8e565b6001600160a01b0316146108da5760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920746865206f776e65722063616e20636865636b207468652074696d60448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016107d1565b5f828152600e60205260409020546108f6906276a70090612c9c565b421061090357505f919050565b5f828152600e60205260409020544290610921906276a70090612c9c565b6106e19190612caf565b919050565b61093861206e565b5f908152601060205260409020805460ff19811660ff90911615179055565b3361096183610f8e565b6001600160a01b0316148061098f5750336109846007546001600160a01b031690565b6001600160a01b0316145b6109db5760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420617574686f72697a656420746f20757064617465205552490000000060448201526064016107d1565b5f8281526010602052604090205460ff1615610a5f5760405162461bcd60e51b815260206004820152602560248201527f427261696e20494420697320626c6f636b65642066726f6d207570646174696e60448201527f672055524900000000000000000000000000000000000000000000000000000060648201526084016107d1565b5f828152600f60205260409020610a768282612d06565b507f2711e4c38562f558a1dbf8d9d2d9810789462585e6a5d6ca11d98d3fc5df31e28282604051610aa8929190612dc1565b60405180910390a15050565b600a8181548110610ac3575f80fd5b5f918252602090912001546001600160a01b0316905081565b610af683838360405180602001604052805f815250611837565b505050565b610b036120b4565b33610b0d82610f8e565b6001600160a01b031614610b635760405162461bcd60e51b815260206004820152601c60248201527f4f6e6c7920427261696e206f776e65722063616e20756e7374616b650000000060448201526064016107d1565b5f818152600e6020526040902054610b7f906276a70090612c9c565b421015610bce5760405162461bcd60e51b815260206004820152601e60248201527f5374616b6520706572696f64206e6f742079657420636f6d706c65746564000060448201526064016107d1565b335f908152600d602052604090205469152d02c7e14af68000001115610c365760405162461bcd60e51b815260206004820152601860248201527f4e6f7420656e6f75676820746f6b656e73207374616b6564000000000000000060448201526064016107d1565b335f908152600d6020526040902054610c599069152d02c7e14af680000061210d565b335f818152600d6020526040908190209290925560095491517fa9059cbb000000000000000000000000000000000000000000000000000000008152600481019190915269152d02c7e14af680000060248201526001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015610cde573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d029190612dd9565b50610d0c8161211f565b601280546001810182555f9182527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec344401829055600854604080517fde0f2be100000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169263de0f2be19260048084019382900301818387803b158015610d97575f80fd5b505af1158015610da9573d5f803e3d5ffd5b50505050610db76001600655565b50565b6008546001600160a01b0316610e125760405162461bcd60e51b815260206004820152601c60248201527f427261696e204372656469742061646472657373206e6f74207365740000000060448201526064016107d1565b6008546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303815f875af1158015610e66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8a9190612dd9565b50335f908152600b60205260408120549003610eef57600a80546001810182555f919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a801805473ffffffffffffffffffffffffffffffffffffffff1916331790555b335f908152600b6020526040902054610f089082612157565b335f818152600b60209081526040918290209390935580519182529181018390527f1bb460ccaaf70fbacfec17a376f8acbd278c1405590ffcc8ebe4b88daf4f64ad910160405180910390a150565b610f5f61206e565b6008805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b5f6106e182611f2a565b5f6001600160a01b038216610fdb576040517f89c62b640000000000000000000000000000000000000000000000000000000081525f60048201526024016107d1565b506001600160a01b03165f9081526003602052604090205490565b610ffe61206e565b6110075f612162565b565b6110116120b4565b6009546001600160a01b031661108f5760405162461bcd60e51b815260206004820152602160248201527f53706563696669632050657065636f696e2061646472657373206e6f7420736560448201527f740000000000000000000000000000000000000000000000000000000000000060648201526084016107d1565b6110a369152d02c7e14af680000082612e08565b156111165760405162461bcd60e51b815260206004820152603460248201527f5374616b6520616d6f756e74206d75737420626520696e20696e6372656d656e60448201527f7473206f66203130302c30303020746f6b656e7300000000000000000000000060648201526084016107d1565b5f61112b8269152d02c7e14af68000006121c0565b90506104006001826011546111409190612c9c565b61114a9190612caf565b11156111985760405162461bcd60e51b815260206004820181905260248201527f45786365656473206d6178696d756d20737570706c79206f6620427261696e7360448201526064016107d1565b6009546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303815f875af11580156111ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112109190612dd9565b50335f908152600d602052604090205461122a9083612157565b335f908152600d60205260408082209290925560085482517f90578ae100000000000000000000000000000000000000000000000000000000815292516001600160a01b03909116926390578ae192600480830193919282900301818387803b158015611295575f80fd5b505af11580156112a7573d5f803e3d5ffd5b505050505f5b8181101561138f576012545f901561131357601280546112cf90600190612caf565b815481106112df576112df612e1b565b905f5260205f200154905060128054806112fb576112fb612e2f565b600190038181905f5260205f20015f90559055611335565b5060118054600181019091555f19602f82900301611335576011805460010190555b604080518281523360208201527f565d5be3c5d9b8fce8cebcd35e95027d3d05547e683e3d6fdb0f0e49d33db90d910160405180910390a161137733826121cb565b5f908152600e602052604090204290556001016112ad565b5050610db76001600655565b6060600180546106f590612c50565b336113b482610f8e565b6001600160a01b0316146114305760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920427261696e206f776e65722063616e206c696e6b2061204552433260448201527f300000000000000000000000000000000000000000000000000000000000000060648201526084016107d1565b5f818152600c60205260409020546001600160a01b0316156114945760405162461bcd60e51b815260206004820152601f60248201527f427261696e20746f6b656e20686173206265656e206163746976617465642e0060448201526064016107d1565b5f61149f33836121e4565b5f838152600c6020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091558251868152918201529192507f44165505aa9de0a6966949bee8bf2595f4ee689a16dd65a62fe05aa3a67410d19101610aa8565b6107a833838361228c565b6115206120b4565b6008546001600160a01b031661159e5760405162461bcd60e51b815260206004820152602560248201527f537065636966696320427261696e204372656469742061646472657373206e6f60448201527f742073657400000000000000000000000000000000000000000000000000000060648201526084016107d1565b683635c9adc5dea000008110156115f75760405162461bcd60e51b815260206004820152601660248201527f4d696e696d756d20616d6f756e74206e6f74206d65740000000000000000000060448201526064016107d1565b61160a683635c9adc5dea0000082612e08565b1561167d5760405162461bcd60e51b815260206004820152602c60248201527f416d6f756e74206d75737420626520696e20696e6372656d656e7473206f662060448201527f313030302063726564697473000000000000000000000000000000000000000060648201526084016107d1565b5f611691683635c9adc5dea0000083612e43565b90506104006001826011546116a69190612c9c565b6116b09190612caf565b11156116fe5760405162461bcd60e51b815260206004820181905260248201527f45786365656473206d6178696d756d20737570706c79206f6620427261696e7360448201526064016107d1565b6008546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303815f875af1158015611752573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117769190612dd9565b505f5b8181101561138f576012545f90156117df576012805461179b90600190612caf565b815481106117ab576117ab612e1b565b905f5260205f200154905060128054806117c7576117c7612e2f565b600190038181905f5260205f20015f905590556117ec565b5060118054600181019091555b604080518281523360208201527f565d5be3c5d9b8fce8cebcd35e95027d3d05547e683e3d6fdb0f0e49d33db90d910160405180910390a161182e33826121cb565b50600101611779565b6118428484846107ac565b61084d84848484612343565b61185661206e565b61040081106118a75760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e2049442065786365656473206d6178696d756d20737570706c790060448201526064016107d1565b6009546001600160a01b0316156119005760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f742072756e206166746572206d696e74207374617274000000000060448201526064016107d1565b604080518281523360208201527f565d5be3c5d9b8fce8cebcd35e95027d3d05547e683e3d6fdb0f0e49d33db90d910160405180910390a160085f9054906101000a90046001600160a01b03166001600160a01b03166390578ae16040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611984575f80fd5b505af1158015611996573d5f803e3d5ffd5b505050506119a433826121cb565b80602f14610db75760118054905f6119bb83612e56565b919050555050565b5f818152600f60205260408120805460609291906119e090612c50565b90501115611a83575f828152600f602052604090208054611a0090612c50565b80601f0160208091040260200160405190810160405280929190818152602001828054611a2c90612c50565b8015611a775780601f10611a4e57610100808354040283529160200191611a77565b820191905f5260205f20905b815481529060010190602001808311611a5a57829003601f168201915b50505050509050919050565b6040518060800160405280605f8152602001613fbe605f913992915050565b611aaa6120b4565b5f805f5b600a54811015611b0657600b5f600a8381548110611ace57611ace612e1b565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054611afc9084612c9c565b9250600101611aae565b50683635c9adc5dea00000821015611b865760405162461bcd60e51b815260206004820152603060248201527f4e6f7420656e6f75676820427261696e4372656469747320636f6e747269627560448201527f74656420636f6c6c6563746976656c790000000000000000000000000000000060648201526084016107d1565b61040060115410611bd95760405162461bcd60e51b815260206004820181905260248201527f45786365656473206d6178696d756d20737570706c79206f6620427261696e7360448201526064016107d1565b6012545f9015611c375760128054611bf390600190612caf565b81548110611c0357611c03612e1b565b905f5260205f20015490506012805480611c1f57611c1f612e2f565b600190038181905f5260205f20015f90559055611c59565b5060118054600181019091555f19602f82900301611c59576011805460010190555b604080518281523060208201527f565d5be3c5d9b8fce8cebcd35e95027d3d05547e683e3d6fdb0f0e49d33db90d910160405180910390a1611c9b30826121cb565b5f611ca630836121e4565b90505f5b600a5481108015611cc35750683635c9adc5dea0000084105b15611e50575f600a8281548110611cdc57611cdc612e1b565b5f9182526020808320909101546001600160a01b0316808352600b909152604090912054909150683635c9adc5dea00000611d178288612c9c565b1115611d3357611d3086683635c9adc5dea00000612caf565b90505b6001600160a01b0382165f908152600b602052604081208054839290611d5a908490612caf565b90915550611d6a90508187612c9c565b95505f611d94683635c9adc5dea00000611d8e8469d3c21bcecceda1000000612469565b906121c0565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018390529192509086169063a9059cbb906044016020604051808303815f875af1158015611dfd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e219190612dd9565b50683635c9adc5dea000008703611e3a57505050611e50565b5050508080611e4890612e56565b915050611caa565b50604080518381526001600160a01b03831660208201527f44165505aa9de0a6966949bee8bf2595f4ee689a16dd65a62fe05aa3a67410d1910160405180910390a1505050506110076001600655565b611ea861206e565b6001600160a01b038116611eea576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024016107d1565b610db781612162565b611efb61206e565b6009805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b5f818152600260205260408120546001600160a01b0316806106e157604051637e27328960e01b8152600481018490526024016107d1565b610af68383836001612474565b5f828152600260205260408120546001600160a01b0390811690831615611f9b57611f9b8184866125bc565b6001600160a01b03811615611fd557611fb65f855f80612474565b6001600160a01b0381165f90815260036020526040902080545f190190555b6001600160a01b03851615612003576001600160a01b0385165f908152600360205260409020805460010190555b5f84815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6007546001600160a01b03163314611007576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016107d1565b6002600654036121065760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107d1565b6002600655565b5f6121188284612caf565b9392505050565b5f61212b5f835f611f6f565b90506001600160a01b0381166107a857604051637e27328960e01b8152600481018390526024016107d1565b5f6121188284612c9c565b600780546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6121188284612e43565b6107a8828260405180602001604052805f815250612639565b5f806121ef8361264f565b6040516020016121ff9190612e85565b60405160208183030381529060405290505f61221a8461264f565b60405160200161222a9190612eb6565b60405160208183030381529060405290505f69d3c21bcecceda100000090505f8383838960405161225a906128ca565b6122679493929190612ee7565b604051809103905ff080158015612280573d5f803e3d5ffd5b50979650505050505050565b6001600160a01b0382166122d7576040517f5b08ba180000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024016107d1565b6001600160a01b038381165f81815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561084d57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290612385903390889087908790600401612f2c565b6020604051808303815f875af19250505080156123bf575060408051601f3d908101601f191682019092526123bc91810190612f6c565b60015b612426573d8080156123ec576040519150601f19603f3d011682016040523d82523d5f602084013e6123f1565b606091505b5080515f0361241e57604051633250574960e11b81526001600160a01b03851660048201526024016107d1565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b1461246257604051633250574960e11b81526001600160a01b03851660048201526024016107d1565b5050505050565b5f6121188284612f87565b808061248857506001600160a01b03821615155b15612580575f61249784611f2a565b90506001600160a01b038316158015906124c35750826001600160a01b0316816001600160a01b031614155b80156124f457506001600160a01b038082165f9081526005602090815260408083209387168352929052205460ff16155b15612536576040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016107d1565b811561257e5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b50505f908152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6125c78383836126ec565b610af6576001600160a01b0383166125f557604051637e27328960e01b8152600481018290526024016107d1565b6040517f177e802f0000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602481018290526044016107d1565b612643838361276f565b610af65f848484612343565b60605f61265b836127e9565b60010190505f8167ffffffffffffffff81111561267a5761267a612a84565b6040519080825280601f01601f1916602001820160405280156126a4576020820181803683370190505b5090508181016020015b5f19017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85049450846126ae57509392505050565b5f6001600160a01b038316158015906127675750826001600160a01b0316846001600160a01b0316148061274457506001600160a01b038085165f9081526005602090815260408083209387168352929052205460ff165b8061276757505f828152600460205260409020546001600160a01b038481169116145b949350505050565b6001600160a01b03821661279857604051633250574960e11b81525f60048201526024016107d1565b5f6127a483835f611f6f565b90506001600160a01b03811615610af6576040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081525f60048201526024016107d1565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612831577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831061285d576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061287b57662386f26fc10000830492506010015b6305f5e1008310612893576305f5e100830492506008015b61271083106128a757612710830492506004015b606483106128b9576064830492506002015b600a83106106e15760010192915050565b61101f80612f9f83390190565b6001600160e01b031981168114610db7575f80fd5b5f602082840312156128fc575f80fd5b8135612118816128d7565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6121186020830184612907565b5f60208284031215612957575f80fd5b5035919050565b80356001600160a01b038116811461092b575f80fd5b5f8060408385031215612985575f80fd5b61298e8361295e565b946020939093013593505050565b5f805f805f608086880312156129b0575f80fd5b6129b98661295e565b94506129c76020870161295e565b935060408601359250606086013567ffffffffffffffff8111156129e9575f80fd5b8601601f810188136129f9575f80fd5b803567ffffffffffffffff811115612a0f575f80fd5b886020828401011115612a20575f80fd5b959894975092955050506020019190565b5f60208284031215612a41575f80fd5b6121188261295e565b5f805f60608486031215612a5c575f80fd5b612a658461295e565b9250612a736020850161295e565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f8067ffffffffffffffff841115612ab257612ab2612a84565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715612ae157612ae1612a84565b604052838152905080828401851015612af8575f80fd5b838360208301375f60208583010152509392505050565b5f8060408385031215612b20575f80fd5b82359150602083013567ffffffffffffffff811115612b3d575f80fd5b8301601f81018513612b4d575f80fd5b612b5c85823560208401612a98565b9150509250929050565b8015158114610db7575f80fd5b5f8060408385031215612b84575f80fd5b612b8d8361295e565b91506020830135612b9d81612b66565b809150509250929050565b5f805f8060808587031215612bbb575f80fd5b612bc48561295e565b9350612bd26020860161295e565b925060408501359150606085013567ffffffffffffffff811115612bf4575f80fd5b8501601f81018713612c04575f80fd5b612c1387823560208401612a98565b91505092959194509250565b5f8060408385031215612c30575f80fd5b612c398361295e565b9150612c476020840161295e565b90509250929050565b600181811c90821680612c6457607f821691505b602082108103612c8257634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106e1576106e1612c88565b818103818111156106e1576106e1612c88565b601f821115610af657805f5260205f20601f840160051c81016020851015612ce75750805b601f840160051c820191505b81811015612462575f8155600101612cf3565b815167ffffffffffffffff811115612d2057612d20612a84565b612d3481612d2e8454612c50565b84612cc2565b6020601f821160018114612d66575f8315612d4f5750848201515b5f19600385901b1c1916600184901b178455612462565b5f84815260208120601f198516915b82811015612d955787850151825560209485019460019092019101612d75565b5084821015612db257868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b828152604060208201525f6127676040830184612907565b5f60208284031215612de9575f80fd5b815161211881612b66565b634e487b7160e01b5f52601260045260245ffd5b5f82612e1657612e16612df4565b500690565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b5f82612e5157612e51612df4565b500490565b5f60018201612e6757612e67612c88565b5060010190565b5f81518060208401855e5f93019283525090919050565b7f425241494e20544f4b454e20230000000000000000000000000000000000000081525f612118600d830184612e6e565b7f422300000000000000000000000000000000000000000000000000000000000081525f6121186002830184612e6e565b608081525f612ef96080830187612907565b8281036020840152612f0b8187612907565b9150508360408301526001600160a01b038316606083015295945050505050565b6001600160a01b03851681526001600160a01b0384166020820152826040820152608060608201525f612f626080830184612907565b9695505050505050565b5f60208284031215612f7c575f80fd5b8151612118816128d7565b80820281158282048414176106e1576106e1612c8856fe608060405234801561000f575f80fd5b5060405161101f38038061101f83398101604081905261002e9161034c565b808484600361003d838261045d565b50600461004a828261045d565b5050506001600160a01b03811661007b57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61008481610100565b5069d3c21bcecceda10000008211156100ed5760405162461bcd60e51b815260206004820152602560248201527f496e697469616c20737570706c792065786365656473206d6178696d756d20736044820152647570706c7960d81b6064820152608401610072565b6100f78183610151565b5050505061053c565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b03821661017a5760405163ec442f0560e01b81525f6004820152602401610072565b6101855f8383610189565b5050565b6001600160a01b0383166101b3578060025f8282546101a89190610517565b909155506102239050565b6001600160a01b0383165f90815260208190526040902054818110156102055760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610072565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661023f5760028054829003905561025d565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516102a291815260200190565b60405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126102d2575f80fd5b81516001600160401b038111156102eb576102eb6102af565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610319576103196102af565b604052818152838201602001851015610330575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f805f806080858703121561035f575f80fd5b84516001600160401b03811115610374575f80fd5b610380878288016102c3565b602087015190955090506001600160401b0381111561039d575f80fd5b6103a9878288016102c3565b60408701516060880151919550935090506001600160a01b03811681146103ce575f80fd5b939692955090935050565b600181811c908216806103ed57607f821691505b60208210810361040b57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561045857805f5260205f20601f840160051c810160208510156104365750805b601f840160051c820191505b81811015610455575f8155600101610442565b50505b505050565b81516001600160401b03811115610476576104766102af565b61048a8161048484546103d9565b84610411565b6020601f8211600181146104bc575f83156104a55750848201515b5f19600385901b1c1916600184901b178455610455565b5f84815260208120601f198516915b828110156104eb57878501518255602094850194600190920191016104cb565b508482101561050857868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b8082018082111561053657634e487b7160e01b5f52601160045260245ffd5b92915050565b610ad6806105495f395ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c806370a082311161008857806395d89b411161006357806395d89b41146101d1578063a9059cbb146101d9578063dd62ed3e146101ec578063f2fde38b14610224575f80fd5b806370a0823114610186578063715018a6146101ae5780638da5cb5b146101b6575f80fd5b806323b872dd116100c357806323b872dd1461013c578063313ce5671461014f57806340c10f191461015e57806342966c6814610173575f80fd5b806306fdde03146100e9578063095ea7b31461010757806318160ddd1461012a575b5f80fd5b6100f1610237565b6040516100fe91906108fd565b60405180910390f35b61011a61011536600461094d565b6102c7565b60405190151581526020016100fe565b6002545b6040519081526020016100fe565b61011a61014a366004610975565b6102e0565b604051601281526020016100fe565b61017161016c36600461094d565b610303565b005b6101716101813660046109af565b6103a5565b61012e6101943660046109c6565b6001600160a01b03165f9081526020819052604090205490565b6101716103ba565b6005546040516001600160a01b0390911681526020016100fe565b6100f16103cd565b61011a6101e736600461094d565b6103dc565b61012e6101fa3660046109e6565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6101716102323660046109c6565b6103e9565b60606003805461024690610a17565b80601f016020809104026020016040519081016040528092919081815260200182805461027290610a17565b80156102bd5780601f10610294576101008083540402835291602001916102bd565b820191905f5260205f20905b8154815290600101906020018083116102a057829003601f168201915b5050505050905090565b5f336102d481858561043c565b60019150505b92915050565b5f336102ed85828561044e565b6102f88585856104e2565b506001949350505050565b61030b610571565b69d3c21bcecceda10000008161032060025490565b61032a9190610a68565b1115610397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4d696e74696e6720776f756c6420657863656564206d617820737570706c790060448201526064015b60405180910390fd5b6103a182826105b7565b5050565b6103ad610571565b6103b73382610604565b50565b6103c2610571565b6103cb5f610651565b565b60606004805461024690610a17565b5f336102d48185856104e2565b6103f1610571565b6001600160a01b038116610433576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f600482015260240161038e565b6103b781610651565b61044983838360016106ba565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f1981146104dc57818110156104ce576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602481018290526044810183905260640161038e565b6104dc84848484035f6106ba565b50505050565b6001600160a01b038316610524576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f600482015260240161038e565b6001600160a01b038216610566576040517fec442f050000000000000000000000000000000000000000000000000000000081525f600482015260240161038e565b6104498383836107be565b6005546001600160a01b031633146103cb576040517f118cdaa700000000000000000000000000000000000000000000000000000000815233600482015260240161038e565b6001600160a01b0382166105f9576040517fec442f050000000000000000000000000000000000000000000000000000000081525f600482015260240161038e565b6103a15f83836107be565b6001600160a01b038216610646576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f600482015260240161038e565b6103a1825f836107be565b600580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0384166106fc576040517fe602df050000000000000000000000000000000000000000000000000000000081525f600482015260240161038e565b6001600160a01b03831661073e576040517f94280d620000000000000000000000000000000000000000000000000000000081525f600482015260240161038e565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156104dc57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107b091815260200190565b60405180910390a350505050565b6001600160a01b0383166107e8578060025f8282546107dd9190610a68565b909155506108719050565b6001600160a01b0383165f9081526020819052604090205481811015610853576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602481018290526044810183905260640161038e565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661088d576002805482900390556108ab565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108f091815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610948575f80fd5b919050565b5f806040838503121561095e575f80fd5b61096783610932565b946020939093013593505050565b5f805f60608486031215610987575f80fd5b61099084610932565b925061099e60208501610932565b929592945050506040919091013590565b5f602082840312156109bf575f80fd5b5035919050565b5f602082840312156109d6575f80fd5b6109df82610932565b9392505050565b5f80604083850312156109f7575f80fd5b610a0083610932565b9150610a0e60208401610932565b90509250929050565b600181811c90821680610a2b57607f821691505b602082108103610a62577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b808201808211156102da577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffdfea26469706673582212209877b48cd7a9ef1736a6711e7442f0762abecc71836b7cc5b8c007d7a689fc0564736f6c634300081a003368747470733a2f2f6f7264696e616c732e636f6d2f636f6e74656e742f663462653739353138656262303238336564333730313262343231353264656463326264666532653761383932363763373434386162333665303262663939636930a26469706673582212208beafa02d0efc92e4ad6b70404383485688bdb6fba3959cce3f31f08b7ed722d64736f6c634300081a0033