code: @CheckReturnValue
    public static byte[][] toRawSerializedHeaders(byte[][] http2Headers) {
      for (int i = 0; i < http2Headers.length; i += 2) {
        byte[] key = http2Headers[i];
        byte[] value = http2Headers[i + 1];
        if (endsWith(key, binaryHeaderSuffixBytes)) {
          // Binary header
          for (int idx = 0; idx < value.length; idx++) {
            if (value[idx] == (byte) ',') {
              return serializeHeadersWithCommasInBin(http2Headers, i);
            }
          }
          byte[] decodedVal = BaseEncoding.base64().decode(new String(value, US_ASCII));
          http2Headers[i + 1] = decodedVal;
        } else {
          // Non-binary header
          // Nothing to do, the value is already in the right place.
        }
      }
      return http2Headers;
    }
docs: Transform HTTP/2-compliant headers to the raw serialized format which can be deserialized by
  metadata marshallers. It decodes the Base64-encoded binary headers.
  
  <p>Warning: This function may partially modify the headers in place by modifying the input
  array (but not modifying any single byte), so the input reference {@code http2Headers} can not
  be used again.
  
  @param http2Headers the interleaved keys and values of HTTP/2-compliant headers
  @return the interleaved keys and values in the raw serialized format