How to decode addresses from the Receipt protobuf?

I have a payment receipt from SignalServiceDataMessage.payment. I’m trying to find out the amount.

This is how I decode it:

In [137]: r = mobilecoin.Receipt()

In [138]: receipt_str = "CiIKIN65vBPsDpnI8yCm8ZKCczbOwfWc44sZkzvZluLpvqRWEiIKILDOqMLMxaK4Cd4Em2evNfdQoirgDE/ls5zy+peS6HEOGIJjIi0KIgogOGisHmGYmOnsrTpiry6CeGv7EP4YnWD3SzmhG7TUK08R5YGuwA/5Y/E="

In [139]: r.ParseFromString(base64.b64decode(receipt_str))
Out[139]: 122

In [141]: google.protobuf.json_format.MessageToDict(r)
{'publicKey': {'data': '3rm8E+wOmcjzIKbxkoJzNs7B9ZzjixmTO9mW4um+pFY='},
 'confirmation': {'hash': 'sM6owszForgJ3gSbZ68191CiKuAMT+WznPL6l5LocQ4='},
 'tombstoneBlock': '12674',
 'amount': {'commitment': {'data': 'OGisHmGYmOnsrTpiry6CeGv7EP4YnWD3SzmhG7TUK08='},
  'maskedValue': '17394020031887475173'}}

This is the call I make to full-service:

  "method": "check_receiver_receipt_status",
  "params": {
    "address": "<redacted>",
    "receiver_receipt": {
      "object": "receiver_receipt",
      "public_key": "3rm8E+wOmcjzIKbxkoJzNs7B9ZzjixmTO9mW4um+pFY=",
      "confirmation": "sM6owszForgJ3gSbZ68191CiKuAMT+WznPL6l5LocQ4=",
      "tombstone_block": "12674",
      "amount": {
        "commitment": "OGisHmGYmOnsrTpiry6CeGv7EP4YnWD3SzmhG7TUK08=",
        "object": "amount",
        "masked_value": "17394020031887475173"
  "jsonrpc": "2.0",
  "id": 1

I get sever_error: ““Could not decode hex for txo_public_key: InvalidHexCharacter { c: \‘r\’, index: 1 }””

How would I get the right public address? It isn’t base58 or base64 encoded. I thought I might need to decompress the CompressedRistretto, but I’ve been told that’s the correct serialization to pass around.

In the interest of not being denvercoder9, I figured it out. It’s this: