<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def get_response_metadata(response: str) -> str: """ Parse transaction response to fetch metadata. The important use case for this method is validation of Node's response freshens. Distributed Ledgers can reply with outdated information for consequence read request after write. To reduce pool load libindy sends read requests to one random node in the pool. Consensus validation is performed based on validation of nodes multi signature for current ledger Merkle Trie root. This multi signature contains information about the latest ldeger's transaction ordering time and sequence number that this method returns. If node that returned response for some reason is out of consensus and has outdated ledger it can be caught by analysis of the returned latest ledger's transaction ordering time and sequence number. There are two ways to filter outdated responses: 1) based on "seqNo" - sender knows the sequence number of transaction that he consider as a fresh enough. 2) based on "txnTime" - sender knows the timestamp that he consider as a fresh enough. Note: response of GET_VALIDATOR_INFO request isn't supported :param response: response of write or get request. :return: Response Metadata. { "seqNo": Option<u64> - transaction sequence number, "txnTime": Option<u64> - transaction ordering time, "lastSeqNo": Option<u64> - the latest transaction seqNo for particular Node, "lastTxnTime": Option<u64> - the latest transaction ordering time for particular Node } """


    logger = logging.getLogger(__name__)
    logger.debug("get_response_metadata: >>> response: %r",
                 response)

    if not hasattr(get_response_metadata, "cb"):
        logger.debug("get_response_metadata: Creating callback")
        get_response_metadata.cb = create_cb(CFUNCTYPE(None, c_int32, c_int32, c_char_p))

    c_response = c_char_p(response.encode('utf-8'))

    response_metadata = await do_call('indy_get_response_metadata',
                                      c_response,
                                      get_response_metadata.cb)

    res = response_metadata.decode()
    logger.debug("get_response_metadata: <<< res: %r", res)
    return res