<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 4.0.6) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-chueayen-attestation-receipts-01" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="AI Attestation Receipts">Enforcement Attestation Receipts for AI Inference Decisions</title>

    <author initials="A." surname="Chueayen" fullname="Anya Chueayen">
      <organization>Aqta Technologies Limited</organization>
      <address>
        <postal>
          <city>Dublin</city>
          <country>Ireland</country>
        </postal>
        <email>hello@aqta.ai</email>
      </address>
    </author>

    <date year="2026" month="July" day="25"/>

    <area>Security</area>
    
    <keyword>attestation</keyword> <keyword>AI</keyword> <keyword>receipts</keyword> <keyword>audit</keyword> <keyword>Ed25519</keyword>

    <abstract>


<?line 32?>

<t>This document specifies a compact JSON attestation receipt for an AI inference
decision. A receipt binds an outcome to a request hash under a published
Ed25519 public key, so a party that does not trust the issuer's infrastructure
can still verify offline what was decided. The format is intentionally small
and version-selected, so independent verifiers stay easy to implement and
audit. It is intended for settings where an operator-controlled log is not, on
its own, sufficient evidence of the decision.</t>



    </abstract>



  </front>

  <middle>


<?line 42?>

<section anchor="introduction"><name>Introduction</name>

<t>AI systems that take or influence consequential actions are increasingly
deployed in regulated settings. When such a decision is later questioned, the
party being questioned is frequently also the party that produced the record of
the decision. A log an operator controls does not, on its own, let an
independent reviewer confirm what was asked and what was decided.</t>

<t>This document defines a compact receipt that an issuer signs for an LLM
inference decision. The receipt is verifiable offline by any holder of the
issuer's public key. The verifier need not contact the issuer at verification
time.</t>

<section anchor="relationship-to-other-work"><name>Relationship to Other Work</name>

<t>Related Internet-Drafts address neighbouring problems.
<xref target="I-D.marques-asqav-compliance-receipts"/> profiles signed action receipts for AI
agents. <xref target="I-D.farley-acta-signed-receipts"/> defines signed decision receipts for
machine-to-machine access control. Those documents are broader profiles. This
document specifies one fixed receipt shape for the LLM inference decision case,
with an explicit verification algorithm, a version-selected signature suite, and
published conformance vectors. Implementations <bcp14>MAY</bcp14> also implement the related
drafts; this document does not redefine them.</t>

</section>
<section anchor="nongoals"><name>Non-Goals</name>

<t>This document does not:</t>

<t><list style="symbols">
  <t>Claim that a decision was correct, safe, lawful, or free of model error.</t>
  <t>Define policy language, agent tool protocols, or model evaluation methods.</t>
  <t>Require a Trusted Execution Environment, hardware root of trust, or qualified
timestamp authority.</t>
  <t>Define deployment topology, commercial packaging, or product features beyond
the receipt bytes.</t>
  <t>Replace platform attestation documents (for example TEE quotes). A receipt is
application-layer evidence of a decision, not hardware evidence of the
runtime.</t>
</list></t>

<t>A receipt that verifies proves only what <xref target="whatproves"/> states.</t>

</section>
<section anchor="requirements-language"><name>Requirements Language</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

</section>
<section anchor="terminology"><name>Terminology</name>

<dl>
  <dt>Issuer:</dt>
  <dd>
    <t>The system that produces and signs a receipt.</t>
  </dd>
  <dt>Subject:</dt>
  <dd>
    <t>The organisation, identified by org_id, for which the decision was made.</t>
  </dd>
  <dt>Verifier:</dt>
  <dd>
    <t>Any party that checks a receipt's signature against a public key it trusts for
the issuer.</t>
  </dd>
  <dt>Trusted public key:</dt>
  <dd>
    <t>The Ed25519 public key the verifier has obtained out of band for the issuer.
It is not sufficient to trust only the public_key field embedded in a receipt.</t>
  </dd>
</dl>

</section>
</section>
<section anchor="structure"><name>Receipt Structure</name>

<t>A receipt is a single JSON object <xref target="RFC8259"/>. Version 1 defines the required
fields in <xref target="required"/> and the optional fields in <xref target="optional"/>.</t>

<t>Unless a field is listed in this document for version 1, it <bcp14>MUST NOT</bcp14> appear at
the top level. Verifiers <bcp14>MUST</bcp14> reject receipts that contain unknown top-level
fields. This closed set keeps independent verifiers simple and prevents silent
semantic drift.</t>

<section anchor="required"><name>Required Fields</name>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>v</c>
      <c>integer</c>
      <c>Format and suite version. <bcp14>MUST</bcp14> be 1 for this document.</c>
      <c>attestation_id</c>
      <c>string</c>
      <c>UUID string, unique per receipt. Production issuers <bcp14>SHOULD</bcp14> use UUID version 4.</c>
      <c>trace_id</c>
      <c>string</c>
      <c>Issuer-assigned identifier for the LLM call.</c>
      <c>org_id</c>
      <c>string</c>
      <c>Identifier of the subject organisation.</c>
      <c>request_hash</c>
      <c>string</c>
      <c>SHA-256 <xref target="RFC6234"/> digest of the canonicalised request body, 64 lowercase hex characters.</c>
      <c>model</c>
      <c>string</c>
      <c>Provider-qualified model identifier.</c>
      <c>outcome</c>
      <c>string</c>
      <c>One of the values in <xref target="outcomes"/>.</c>
      <c>policy_applied</c>
      <c>array</c>
      <c>Lexicographically sorted array of UTF-8 string policy identifiers. <bcp14>MAY</bcp14> be empty.</c>
      <c>cost_prevented_eur</c>
      <c>number</c>
      <c>Non-negative number. <bcp14>MUST</bcp14> be 0 when not computed. See <xref target="cost"/>.</c>
      <c>timestamp</c>
      <c>string</c>
      <c>RFC 3339 datetime with an explicit timezone offset.</c>
      <c>public_key</c>
      <c>string</c>
      <c>base64url-encoded raw 32-byte Ed25519 public key, no padding.</c>
      <c>signature</c>
      <c>string</c>
      <c>base64url-encoded 64-byte Ed25519 signature, no padding. Omitted from the canonical payload.</c>
</texttable>

</section>
<section anchor="optional"><name>Optional Fields</name>

<t>The following fields <bcp14>MAY</bcp14> appear. If present, they <bcp14>MUST</bcp14> match the types below.
They are ignored by signature verification except that they participate in the
canonical payload when present (see <xref target="canon"/>).</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>prev_attestation_id</c>
      <c>string</c>
      <c>attestation_id of a prior receipt in an issuer-defined chain.</c>
      <c>prev_attestation_hash</c>
      <c>string</c>
      <c>SHA-256 hex digest binding this receipt to prior receipt bytes, as defined by the issuer.</c>
      <c>spec_version</c>
      <c>string</c>
      <c>If present, <bcp14>MUST</bcp14> be the ASCII string "ATTESTATION-v1".</c>
</texttable>

<t>If prev_attestation_id is present, prev_attestation_hash <bcp14>MUST</bcp14> also be present.
Verifiers that do not implement chaining <bcp14>MUST</bcp14> still accept well-formed receipts
that include these fields, and <bcp14>MUST</bcp14> still enforce the signature and required
field checks.</t>

</section>
<section anchor="cost"><name>cost_prevented_eur</name>

<t>cost_prevented_eur is retained for wire compatibility with existing version-1
issuers. It is an issuer estimate only. It is not part of the security claim of
the receipt. New issuers <bcp14>SHOULD</bcp14> emit 0. Verifiers <bcp14>MUST NOT</bcp14> treat a non-zero
value as proof of savings, risk reduction, or policy quality.</t>

</section>
</section>
<section anchor="outcomes"><name>Outcome Values</name>

<t>The outcome field <bcp14>MUST</bcp14> be one of:</t>

<dl>
  <dt>ALLOWED:</dt>
  <dd>
    <t>The request was permitted to proceed to the model provider.</t>
  </dd>
  <dt>BLOCKED:</dt>
  <dd>
    <t>The request was not sent to the model provider.</t>
  </dd>
  <dt>SUPPRESSED:</dt>
  <dd>
    <t>The request was not sent because the issuer detected a runaway or loop
condition.</t>
  </dd>
  <dt>PASSED:</dt>
  <dd>
    <t>A synonym of ALLOWED retained for backward compatibility. New issuers <bcp14>SHOULD</bcp14>
emit ALLOWED.</t>
  </dd>
</dl>

</section>
<section anchor="whatproves"><name>What a Verified Receipt Proves</name>

<t>A receipt that verifies under a trusted public key proves that the holder of the
corresponding private key attested the included fields, including outcome and
request_hash, at the stated timestamp. It does not prove that the underlying
model output was correct, that the policy identifiers were appropriate, or that
the issuer's process was fair.</t>

</section>
<section anchor="canon"><name>Canonical Payload and Signing</name>

<t>The canonical payload is produced by:</t>

<t><list style="numbers" type="1">
  <t>Removing the signature field, if present.</t>
  <t>Serialising the remaining fields to JSON with all object keys sorted
lexicographically and no whitespace between tokens.</t>
  <t>Encoding the result as UTF-8, with non-ASCII characters emitted literally as
UTF-8 and never as \uXXXX escapes (see <xref target="strings"/>).</t>
  <t>Serialising every integer-valued number, including a float such as 1.0, as
an integer with no decimal point or trailing zero, and every other number as
the shortest decimal representation that round-trips to the same value.</t>
</list></t>

<t>A number whose shortest representation requires exponential notation, meaning a
magnitude below 1e-4 or at or above 1e21, is outside the range that common
implementations serialise identically. An issuer <bcp14>MUST NOT</bcp14> sign such a value
directly; where one would arise it <bcp14>MUST</bcp14> first be rounded into the safe range
(for cost_prevented_eur, to two decimal places). This canonicalisation aligns
in intent with the JSON Canonicalization Scheme <xref target="RFC8785"/> but does not adopt
its number serialisation. A later version of this format <bcp14>MAY</bcp14> adopt RFC 8785
fully; such a change requires a new v value.</t>

<section anchor="agility"><name>Signature Suite and Algorithm Agility</name>

<t>The version field v identifies the complete cryptographic suite, not only the
field layout. In version 1 the suite is Ed25519 <xref target="RFC8032"/> over the canonical
payload. The issuer signs the canonical payload bytes and places the
base64url-encoded signature, without padding, in the signature field.</t>

<t>A verifier <bcp14>MUST</bcp14> select the signature algorithm from v and <bcp14>MUST NOT</bcp14> infer it
from the length or contents of the signature field. A future version <bcp14>MAY</bcp14> define
a post-quantum suite. A verifier that does not implement the suite named by v
<bcp14>MUST</bcp14> reject the receipt rather than guess.</t>

</section>
<section anchor="reqhash"><name>Request Hash</name>

<t>The request_hash field is the SHA-256 digest <xref target="RFC6234"/>, encoded as 64
lowercase hexadecimal characters, of the request body serialised by the
canonicalisation of <xref target="canon"/>, including its number rule. Request bodies often
carry non-integer sampling parameters such as temperature or top_p, so an
issuer whose requests can contain numbers in the exponential range <bcp14>SHOULD</bcp14> round
them before hashing.</t>

<t>The digest is computed over the request body as received from the caller,
before any redaction, so that a verifier holding the original request can
reproduce it. A verifier that does not hold the original request treats
request_hash as an opaque commitment.</t>

</section>
<section anchor="strings"><name>String Canonicalisation</name>

<t>Strings <bcp14>MUST</bcp14> be serialised as literal UTF-8. Escaping non-ASCII characters as
\uXXXX produces different canonical bytes and <bcp14>MUST NOT</bcp14> be done; only the
escapes required by <xref target="RFC8259"/> are permitted. Mainstream JSON serialisers
disagree by default on this point. Issuers and verifiers <bcp14>MUST</bcp14> both emit literal
UTF-8.</t>

</section>
</section>
<section anchor="verify"><name>Verification</name>

<t>A verifier that holds a trusted public key for the issuer:</t>

<t><list style="numbers" type="1">
  <t>Confirms all required fields are present and well-typed for <xref target="required"/>,
including: request_hash is 64 lowercase hex characters; public_key and
signature decode as unpadded base64url to 32 and 64 bytes respectively;
cost_prevented_eur is a non-negative number; timestamp is an RFC 3339
datetime with an explicit timezone offset; and policy_applied is an array of
strings in lexicographic order.</t>
  <t>Confirms no unknown top-level fields exist.</t>
  <t>Confirms optional fields, if present, satisfy <xref target="optional"/>.</t>
  <t>Confirms outcome is one of the values in <xref target="outcomes"/>.</t>
  <t>Confirms the embedded public_key equals the trusted public key.</t>
  <t>Reconstructs the canonical payload per <xref target="canon"/>.</t>
  <t>Verifies the signature over the canonical bytes using the suite named by v
and the trusted public key.</t>
</list></t>

<t>Verifying only against the embedded public_key, without an out-of-band trust
decision, proves integrity of the object but not issuer identity.</t>

</section>
<section anchor="conformance"><name>Conformance</name>

<t>An implementation claiming conformance to this document <bcp14>MUST</bcp14>:</t>

<t><list style="symbols">
  <t>Produce or accept receipts matching <xref target="structure"/>.</t>
  <t>Implement canonicalisation and verification as specified in <xref target="canon"/> and
<xref target="verify"/>.</t>
  <t>Reject the invalid cases described by the published conformance vectors
referenced in <xref target="vectors"/>.</t>
</list></t>

<t>Informative interoperability artefacts, including valid and invalid receipts
and a fixed test public key, are published with the ATTESTATION-v1
specification repository. Those vectors are not normative text of this
document; if a vector and this document disagree, this document prevails, and
the vector set <bcp14>SHOULD</bcp14> be corrected.</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<section anchor="issuer-identity"><name>Issuer Identity</name>

<t>A receipt proves that the holder of a private key signed the stated fields. It
does not, on its own, prove which organisation that key represents. Verifiers
<bcp14>MUST</bcp14> pin the issuer's public key out of band (for example via a published key
URL, an enterprise configuration, or a trust list).</t>

</section>
<section anchor="confidentiality-of-requests"><name>Confidentiality of Requests</name>

<t>Receipts contain no plaintext prompt or response, only a request hash. For a
high-entropy request body the hash reveals nothing useful by inversion. Where
the request body is low-entropy or guessable, an attacker can hash candidates
and match. Deployments <bcp14>MUST</bcp14> treat request_hash as potentially personal data and
apply their own data-protection controls. Issuers that require pseudonymity
<bcp14>SHOULD</bcp14> hash with a key kept secret from verifiers, at the cost of offline
reproducibility by third parties.</t>

</section>
<section anchor="integrity-versus-correctness"><name>Integrity Versus Correctness</name>

<t>Signature verification establishes integrity and issuer attribution under a
pinned key. It does not establish that the decision was the right decision.</t>

</section>
<section anchor="post-quantum-considerations"><name>Post-Quantum Considerations</name>

<t>Ed25519 is not post-quantum secure. An adversary with a cryptographically
relevant quantum computer could forge signatures under an issuer key that was
active before migration, which matters where long audit retention intersects
that horizon. SHA-256 request binding remains useful as a tamper-detection
commitment for detecting alteration of past receipt bytes under known attacks
on hashes. Because v selects the whole suite (<xref target="agility"/>), a later version
can introduce a post-quantum signature suite without changing the field names.
This document does not define such a suite.</t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document has no IANA actions. A future revision may request registration
of a media type for the receipt object.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>
<reference anchor="RFC8032">
  <front>
    <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
    <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
    <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
    <date month="January" year="2017"/>
    <abstract>
      <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8032"/>
  <seriesInfo name="DOI" value="10.17487/RFC8032"/>
</reference>
<reference anchor="RFC8259">
  <front>
    <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
    <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
    <date month="December" year="2017"/>
    <abstract>
      <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
      <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="90"/>
  <seriesInfo name="RFC" value="8259"/>
  <seriesInfo name="DOI" value="10.17487/RFC8259"/>
</reference>
<reference anchor="RFC6234">
  <front>
    <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
    <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
    <author fullname="T. Hansen" initials="T." surname="Hansen"/>
    <date month="May" year="2011"/>
    <abstract>
      <t>Federal Information Processing Standard, FIPS</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6234"/>
  <seriesInfo name="DOI" value="10.17487/RFC6234"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC8785">
  <front>
    <title>JSON Canonicalization Scheme (JCS)</title>
    <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
    <author fullname="B. Jordan" initials="B." surname="Jordan"/>
    <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
    <date month="June" year="2020"/>
    <abstract>
      <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
      <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8785"/>
  <seriesInfo name="DOI" value="10.17487/RFC8785"/>
</reference>

<reference anchor="I-D.marques-asqav-compliance-receipts">
   <front>
      <title>Compliance Profile of Signed Action Receipts for AI Agents</title>
      <author fullname="João André Gomes Marques" initials="J. A. G." surname="Marques">
         <organization>Asqav</organization>
      </author>
      <date day="20" month="July" year="2026"/>
      <abstract>
	 <t>   This document defines a multi-jurisdiction compliance profile of the
   signed action receipt format used by AI agents to record machine-
   readable evidence of access-control decisions.  The profile binds
   receipt fields to two regulatory surfaces: on the European Union
   side, Articles 12 and 26 of the EU AI Act (Regulation (EU) 2024/1689)
   and Article 17 of DORA (Regulation (EU) 2022/2554); on the United
   States side, the NIST AI Risk Management Framework, the Colorado AI
   Act, the Texas Responsible AI Governance Act, the New York Department
   of Financial Services Cybersecurity Regulation (23 NYCRR Part 500),
   the HIPAA Security Rule, SEC Rule 17a-4, and the Cyber Incident
   Reporting for Critical Infrastructure Act of 2022 (CIRCIA).  Working
   entirely within the existing wire format, canonicalization
   transformation, and signing algorithms of the underlying receipt
   format, the profile tightens a subset of the OPTIONAL fields to
   REQUIRED, imposes a retention floor, and requires at least one
   timestamping anchor (RFC 3161 or OpenTimestamps).  It registers
   OPTIONAL extension fields for risk and incident classification,
   cross-agent envelope binding, per-action freshness and integrity,
   build provenance, threat-framework taxonomy, server-built enforcement
   attestation, producer-asserted risk acceptance, and producer-asserted
   code authorship, each subject to false-attestation guards where
   applicable, and registers receipt type namespaces for passive-
   telemetry, result-bound observation, risk-acceptance, and code-
   authorship receipts.  The full field set and its normative
   requirements are defined in the body of this document.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-marques-asqav-compliance-receipts-07"/>
   
</reference>

<reference anchor="I-D.farley-acta-signed-receipts">
   <front>
      <title>Signed Decision Receipts for Machine-to-Machine Access Control</title>
      <author fullname="Tom Farley" initials="T." surname="Farley">
         <organization>ScopeBlind (Veritas Acta)</organization>
      </author>
      <date day="28" month="June" year="2026"/>
      <abstract>
	 <t>   This document defines a portable, cryptographically signed receipt
   format for recording machine-to-machine access control decisions.
   Each receipt captures the identity of the decision maker, the tool or
   resource being accessed, the policy evaluation result, and a
   timestamp — all signed with Ed25519 [RFC8032] and serialized using
   deterministic JSON canonicalization [RFC8785].

   The format is designed for environments where AI agents invoke tools
   on behalf of human operators, particularly the Model Context Protocol
   (MCP) ecosystem.  Receipts are independently verifiable without
   contacting the issuer, enabling offline audit, regulatory compliance,
   and cross-organizational trust federation.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-farley-acta-signed-receipts-02"/>
   
</reference>



    </references>

</references>


<?line 332?>

<section anchor="example"><name>Example Receipt</name>

<t>The following informative example is vector <spanx style="verb">valid/001-allowed.json</spanx> from the
conformance set in <xref target="vectors"/>. A verifier that pins the test public key in
<xref target="vectors"/> <bcp14>MUST</bcp14> accept it. The author regenerated and re-checked this object
against that key before publishing this revision; if verification fails, the
vector set or this figure is wrong and <bcp14>MUST</bcp14> be corrected before relying on
either.</t>

<t>Field order in this figure is for readability; canonical signing order is
defined in <xref target="canon"/>. The signature value is shown on two lines for document
formatting only; in the vector file it is a single base64url string with no
whitespace.</t>

<figure><artwork><![CDATA[
{
  "v": 1,
  "attestation_id": "00000000-0000-0000-0000-000000000001",
  "trace_id": "trace-tv-001",
  "org_id": "org-test-vectors",
  "request_hash":
    "8f3a7e2b9c4d5f6a1b0c9d8e7f6a5b4c3d2e1f0a9b8c7d6e5f4a3b2c1d0e9f8a",
  "model": "gpt-4o",
  "outcome": "ALLOWED",
  "policy_applied": ["budget_guard"],
  "cost_prevented_eur": 0,
  "timestamp": "2026-04-23T10:15:30.000000+00:00",
  "public_key": "alWzEnrA_z9McN9z_MFfQCnH9mVgOwRZ26wrI7oix4E",
  "signature":
    "gXA2GNEvACSGDtOk9KMEeHDUQMPUhHJHeLFMbbrwKlEI"
    "XY9UkvI5gWQ201Lm3Tkh7K3luXwQtqcua6vv4HmAAg"
}
]]></artwork></figure>

<t>Pinned test public key for this example and the vector set:</t>

<figure><artwork><![CDATA[
alWzEnrA_z9McN9z_MFfQCnH9mVgOwRZ26wrI7oix4E
]]></artwork></figure>

</section>
<section anchor="vectors"><name>Conformance Vectors</name>

<t>Informative conformance vectors (valid receipts, invalid receipts, and the
fixed test public key) are published at:</t>

<t>https://github.com/Aqta-ai/attestation-spec/tree/main/test-vectors</t>

<t>A conformant verifier that pins that test public key <bcp14>MUST</bcp14> accept every receipt
in the valid set and <bcp14>MUST</bcp14> reject every receipt in the invalid set. Those
vectors are generated from a fixed seed documented in that repository so
third parties can reproduce the signatures.</t>

</section>
<section anchor="reference-implementations"><name>Reference Implementations</name>

<t>Open-source reference verifiers implementing this format are published as
aqta-verify-receipt on the Python Package Index and on the npm package registry.
Those packages are informative aids. Conformance is defined by this document
and the vector set in <xref target="vectors"/>, not by any single implementation.</t>

</section>
<section anchor="changes-from-draft-chueayen-attestation-receipts-00"><name>Changes From draft-chueayen-attestation-receipts-00</name>

<t><list style="symbols">
  <t>Added explicit non-goals and a "what a verified receipt proves" section.</t>
  <t>Clarified relationship to related Internet-Drafts without requiring them.</t>
  <t>Documented optional chain fields and spec_version for wire clarity.</t>
  <t>Clarified that cost_prevented_eur is non-security and <bcp14>SHOULD</bcp14> be 0 for new
issuers.</t>
  <t>Added conformance language, an example receipt, and a pointer to published
test vectors.</t>
  <t>Normative reference to SHA-256 via RFC 6234.</t>
  <t>Tightened verification steps for issuer identity pinning.</t>
  <t>Softened attestation_id to UUID string with version-4 <bcp14>SHOULD</bcp14>, matching the
published conformance vectors.</t>
  <t>Clarified policy_applied as UTF-8 strings (matches the non-ASCII valid
vector) and tightened verification type checks.</t>
</list></t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA6Vb63Ybx5H+P0/RS/2InQUg8KIblZMsItIRY0qkRcp2NvFR
GpgGMOFgBp4eAIJo5Vn2WfbJ9qtL98wAlDd7VscmwUFfq6u++qq6pt/vJ3VW
5+7UHJwX07KauIUrajOqa+drW2dlYd65icuWtTf42owuzEUxdZUrJs6cuUnm
0cQfJHY8rtwao6DBQ50PkrScFHaBidLKTuv+ZL5yduuKvm1a9ytt3R8eJhNb
u1lZbU9NhoUl2bI6NXW18vXRcPhieJTYytlTc+Mmqyqrt4lfjReZp9XcbpeO
OqVu6fCjqJM7t92UVXpq/tqarIe99EyYsWfsKs3qnjlPj548OXzxU4JmRfrB
5mWB0bbOJ8sMA9TlpGd8WdWVm6KT3y7ow0+JXdXzsjpNjOnjf4Pp/akZDcwr
3SY/lP2Piq3tPi+rmS2yT7wsfP9zbc2tm8yLMi9nmfPmMltktUu57QSbPTVn
q3GeSedJuSpqEtNF5XIsmR+6hc3yUzN3eV7+h8WAA5slRVktMMfa0TLfffPq
6PDwhX58fvjsJHwcHh+Fj0dPQoOnR8doQCfRHeP5s+dP6ONF/2ywsNXPK+f7
1v9s1/1JuVjmmYWexGMNDae2yt22bye17ftsVri01aQPlaQfxo59XaFNktzO
M2+gPyvWTb+E2k1JLtbQJGhi/nxz9da0DjecK+usLUhts6C2SapqOzCj2G4M
ffHUslzVGNSZusTwlaMN1WZu/dysoEwYzCxJ9n6O81BdkScTAzUj3aAmtqq3
pp7bGsvGQouyFt3FM2egpitX/cbTkiqLTa4m9apy0PjC+DrLc7N2VTbdmnI6
xSk7s6GBNhYywMpTlw7MLYaRo8BoGKeGYLAjm+db4xf4lUATaBjaZ9+73E2g
QLy6lmHIPBlaYV67Nc76LW08w8kJDpA+sWEMzEUzFZbAgvWurrNi5rFAiJal
t3SVrcsKpw+lLPMcLaHE1BMy6JmySDIgSbmB+fnVdJpNMprGrbEtQpRyyhKK
JySasMjSNHdJ8gjYg1FTyAtfJglO1W997RZeZF3bOwxRkVzzFY+HZXg6Q0jH
5sZyPxwzFpsVEwCIx/LzLTRimZdbrDUjzZmtcmBPGrc3MD/MHY5mNZnjbMPa
aE/UrjKsI3hCAsbqEzn9sUPf1nfUflrJYnBKNsdZ0F5burLkvaEpPYdmArMg
kaQjEegsCbQla6Oy9lHXSM4myjl3dI5J+9wB1ZnbOO46zapFo2HW32F+Up49
pdu1w9RNoZxtKwzGxJuxhSq6IRP3wRIvL98k0RRb27qVLXN/zCKaace5i1Yw
htCKrZmXOdmhaEoSbamxQRkrqLYpHDZEBkhiolU2JgjE0HYTRg24woXDPh89
gt/K+ZGfZ0syiSv0qswPZXWXJPwdBoUyuqpwdf+MPBoEkaaV8zgBl83m4xJ+
CQqAM8UmFn6Q3N//SyD5+TP1mWY5RCvgqHobfZU64sTOcAzQThn4V0AVQ4bD
0hGjErfHTBZ2Mkerfl329SOmntCWVMVItKV3UQfElMZVaelIwrKpVeaTBwAb
dmCm2UcsIBy1n9slQxkfC5TD7CuHmVjveskmq+ekQe4jRAY32Dk62BPIAlos
4Mn3gI+3bQlkYcVwpT0GtgjkbAaEpjTrGj3KCpu4CCgoimDejP4iVtvAo9gp
a0PCtMa/xLOOkQT4r5wcAfVZiI69xQr/VGJIc/+oKIsZffy8Z2U6wCmg0LzK
bbZQ82rEQ0YKrIBIYfneTrG93G6mq7xHYAjMYVxdlKnLjauqshpgqDNZzbKE
LLdoX8xW0CcIZsYbK8uczhN0B8DC42j/tc1XIvGFA+VJPQ32DrCWkQcwt+Tl
INHzjyBm3Oy8WGdVWdBmenCkVbohnalKyIRsmNrz+D+vbE5aQgSG7BAeabE0
wqvAeVprFrSWAyiXRJLgd2FJC1dNCOaBRXd2BuPjcQVUwQQcK4AHMG9Lpkl1
C3LGW3AH2coyt1AD/KxJJzqsotH7r0hl3UdLqmBuz8+x/BLtvm5zCtiAMXZJ
2ir0NgfjqzrOrjnFHmtJlM+OR8RAFWiewNOoC7SKdJ52umYjg3th9L6/p1/y
GBhAu6BNCr7xiclmLvX0SfccQaghuuzNwZv3N7cHPflt3l7x53fn372/eHd+
Rp9vXo8uL+OHRFvcvL56f3nWfGp6vrp68+b87Zl0xlPTeZQcwMQO2DbNwdX1
7cXV29HlAfnkrk2RfADJY8dspFpWjjTOAnGcn1TZWPz4H19d//d/HZ5ACP+m
XBcikD+I7eIPsJZCZlOR0Z8Q9jbBoTlLPAIGnwN+llltyQxgaH4Op2qI70CQ
v/0rSeanU/O78WR5ePJ7fUAb7jwMMus8ZJntP9nrLEJ84NED00Rpdp7vSLq7
3tFfOn8Hubce/u4P7H/7h8//8PuEtefWVYuMw5NtklywLz1NTtnvCiHr8BnP
MhYWYIPuQno3q/E/gFmhp0RBXoMzUv+a8YAcP777kIFekdVt5hmIWJsUMQIu
4IMw6Pfq92lURFptejWZu8ldawm/8S2/YGcWMVsd+D0zCXAoAShxj6ZFHYgN
KdQ17cNO9uMC7hkpCcIJU45rTIjuCDjIyMcko+AHwxxGWTdBQ4suQ/klmmC9
ZRLJM32gmTBDniIAhBmkYgltmT8KEbm5CXEHvE+MQT630SUjWTFDdhJglXxe
MCKNDT9/HpjvxdWaw0gxBFYZXtKEV0NhA3qFhzA92iy1K5cStph2u/AQwyfJ
+yInAmJ1X0S6Mxb7HiyQ8NZhNT06u2CLRu3Z1syl4TRAitcu59VrAMRtK8cb
jKRI1IZ4I2ZbFXcF2T6697m7bk7ojpnkYEYcNODA3dJ/KdBi9sACAHCtGX89
WFNRJx5RO3R+YlI0rjs4nZpvRED3j6IUk+QXeWp+MZTzwK8zBkAWn/kl+aUv
/37p/AoP0XuNLgShM+gkxpJ4km2VSFIQ5kBkA7g9VAVtSX1A87R9JMwUY0Gh
iPz+Yt6/vzjTv3qQYAbuaxC3RI001zGeU633RtFtBaLJ3cOhnshklBRwO9MI
BoFUK7+N6FF1uOUEcC6DCKB0hmi6aBTqBZ86wCS9NS/wgfMCrTEA4P2jJ0/F
QihlQsw7m1EKQcdEjF8W4ANQYmbBkl8YlykozNMThHaIyojuwsN8BGBZSoA4
YqM0rVCw1nwQHvGEqh/Jk7Zp9q/b1axGq+9VEcNt4nQuGJ+09GTb1FMI4gem
MY4EZqvKbvH70n3MJuWssss57YcSD2XFjpgbYOj3t9/0n4cJlWg2C8OeiFFD
rdxiCX7Hs01KSFXtwqUf3IoUs1gBzOgDEebCzTj/pE8b5RyyA9dIb7Fc1ZQn
uQH3vb+nUcN+GmrZkgVOyxwfH78wKRgStTB7wQY9/VSyzKawcRVOA7ut0cY4
v6cnqyrvg8GVBMKV3Zjjoz6RzAecA1E/+Kk0RXcZt3FLvzrs05PukLFbd8Sr
RVbTwUyrctFVQrTZ5gjeaFZCm6sAxxFtIhYLN5yWOVSU1qOAzUERoysCpilB
mmeiTzRKjgaYou66BkgR/cYIAxptK4mYWVFW4uWbbXdCO/dx4gLZ5XHJp+NQ
ljgscQOcO+tuSbRB12O+8qII1Orz568H/3/sJCX98GXc2/mGqf6yysqq8a5F
kyLpi+9MyeIzxZi9Cb4ENoQUCjKUxaQvGaJjkFDuzMyxDpPZMO1426YdooII
2j8E5G3DZOuQg+lR39HNq4uL0OxgdHt7fnM7IirZXx8esH5Jzz2hZb4Z8OE9
8zQceWMubTtIGteteVY2/SY2Z1HSYri75FUpmwEBbFye9ym4axIRPuFRsmKS
r1LekXeq4xIitEZxclEiPqIhkEW6Q3uUcIojfwDZ7h8xMCXJA9/x+SlDZNJL
4TXn2epsnOUIiAWiAMKekpQx5XGoKTEfMrZNHo4ykQuyGaKNgxa1JHuKTk8v
VMBnKNeg6cfort+6za6fdoAXM9zjUsS76spxqgJW1//kqjJhT0Oah9AAE+I/
b9eUY+2ZKvN3lCURMiChu/gMdm6UAQB7vVJH9r24LABU8FcCUMHRyQEEBRXc
PgW5vby8+uH8LBD14H8pflhSTMM4yQZTTpx8pO2LU12qt8VC/nh59erbh8dh
rh5Y+kN9b95fX787v7n5X7qP3cQSBWqlK1MEupzOspQNsBtysxU4Q7lM6B4I
tl9L0vx6FIYfISCD9Ld0kkZ339WssZ3cbWyVdrXroZNOjJy1DsPn8YPkovTs
0xhdXEsu4v5RKwPx5cxFuFqp90KqkNQI4L+T/uW0l1+WAnuAuTXpN/UTFNFc
upp1Gi1aHlCfoDCUEGzTup7RCTlrkja8gQ0npvV4ec3qeCP5FgMncu4YHlSk
m6KLrfc5EaCJoGSJYbEZS5lKpq8auTTZbtJPhEU07tRmFZ/Fq+gDr9UHEibd
AKFoo0Ab9n5iJ/v+knFY7x/GCGWTwwFOc1GuxaG0oY6lCCFOGzQ+Iq6FFYPX
hvYVXUIWLa4Ag+AwUrgVgFTjSRyXV/JIl5f5HrGkbYDQIPDHmS4pOzd29cY5
isXuXAGEPR6YcyJFzdx+ldcENExCezInwZD4qYZZs0rTAUPrXSXTUd5O2StP
DWCuaKy//W31I/4BSCeWqIyyCnF6nnnFSVcO1HMbYqw+o1+qzLWthIhucQa1
XjF5czgY9nQZBN8aoukeOO2xoJMr8Q3rR2VhtBiHMFbclUxc8q2F8mcZj09y
TsL2dRypcnqQQrhYQasSytzH1pY+QJm3Cw0WOAup4274SiCOuTOWukRPTBow
LBdxsBxN8yycZRWxycJCT2tyvswQzaHrn9DmLG/RjsnODt0RRfaezMpn4qdB
rouZC6H6YkFXjDuZe68n4tTUWKsGZhQ9Y3RYpOPhoo83mqQZGW2+famXnORK
NuUqpziHR9Q0wzSriIA5kRvnJ6LUprrIhLPG+96+xwLetE6WUtCUTJbMQhMz
hrsOyqUlWaE3v6IZNBfbV8QBLSkwNyAiC6d5m2fPnyAqHa9aIGZT0Hy+mNUj
DQLTkHekF52BDjL4Zj7cQHMMQENwHEUTJNNVTiJTScLa6IiiKoAQwLmsoyqB
Ht1EcLnh3APp8Chc6ZjRTCjP/SMrnxTFwoLE268bJJUsFN+uwWeaSbVd1gFS
whUQ7Twk0JSw5XYLzQLCF00mSVMBtChsOYRaIsvh8RFkWRI8dOKqJMZVt433
lgTog/GXUHJJCvHR85r2A75WgEdHTqlDjfJ6GgjtojQbakw8ConlS7Fd9hpl
zVHiuuG8ZBZ8JwdVT2IImbtiBp3T22fOYgUCubMAaM90FYI6Finpi0QeCYIi
WAOlL4p6tRAxU4+44m4NRffmTQ6Fimo4glkn7Rxe+3KnsoyDGKswM3j41h0I
IdZrCjI4sUaOX1Wrk+KJuUcaNcRdGnO1cj09Ew4KGP70JOlkc2ww7sb39ILM
2nmgBq1CXJbsAQC6xWC27UdaJlytcjeIW8TAfP86xVFhuAq+gZxh8Cye7rGY
QWFpC8d+Mfii2i240IBOkHxNufywlDKXQkMN9QC6CcarmDSV1fignW0nILit
QQSjJnGcBTAUuOK45obSF3IcKmxCQ03uNGbXkZ7VwHfdTXjkOTxuokNTGQEi
DauRBhdiMI1tMvRgmYFLwC5mWcFeUubB/hLyckyWDNXGfFFhaZyHB+HQyHco
J62d6zosZUnJl2U151gFISW0frWrC5y9Z/6B0EI+xbinpUrWB4YjzAaEiVgM
DfkgLQJbCHQnXuOk2ZTv5usWgjXIFdFiTAUChXvZoGsgTCE+JsVu3SJwHijG
XwPzhq9iIKCFOLS4jcrDH3s7oyttDAEQsUTzSr0KYEI00GSwLGrdDUrHJcXM
FMSoMBIRBtHn79s5p/tHUoP1uYOffLh0pv7hYKV7fyMc+pWU2HhmvFEASol5
45qj4qIbykxQnkxis/adSS/hskI19dMuQGX+17LHL9uJSi0RbGAauATMIgVZ
FeRN6HiC5yFicnzES8P4ctYUcAFhYWFw8QlXID6UvpCofydd+7KVf5XcREi9
0kD/cvb1pbjKbmpaxgvZZ96jmgPApxNUwBo5FD9qnQ549d4FTzglTrJwkBGb
71xctYMhqsGoMz/d7lxlnbS7a9SZec1N/FoePnnS6skoGi73WsfqKEsiX+8r
5iB5Sr6AquH4pu9LNIRuZqJjGSTPYlLH77j2fcqjyrGK4d+ed+ZgJv3iCiWh
t+WYnHAjXMh+YcMNA5KizX457fMdKo+dNGUVmkBgV8eJLRW2Bp9EhJlaiCsT
BqnJpletsiBK1sW/CBUK0w0zJGFGy29XE3EM0L6lJBjiWp5r9R8U3EhaMl47
csqcY/b75mb2M1WnXDTpzb2gIKJdqIjysfIqFZ3Sg1UIuL9XiPssdS+RNmUF
FDFLueyKcsShqGLcumv+UtkUFao4LeDSWfUbvs29aAqIpXiDixg1oWkRQE6B
WJ38jCyFNheWFTO29NBqPRmHnu0rFUbWuNIYIHUT04kKaBJiVbDRDIvdhkI3
XTuPRloSS6gx4cc6BEKx1O0lwYDVXqrtnWIudV69necEngjhJdWcSK0AD0G3
ycqQxi5kkLgW81EsfSc1pWC4kmiXyYK4QL3TrLftzNuXE2q2k0DTm9RWCixc
d1/AvB6sNJVkmNRntC9NZTIaNCYHfCtfLLx9qRTxgYrOTo1Ep/Jqndl2RTY1
Tt6/u+yx85DiIArSucx1tqpsTC2r++Zigq+FYDHEpkJOFSeUPnuq+VTbjMS2
pFCNdPgjy3Sx5DyFZCM95e0YxDol5AO6Yzc2mWezOWK6Gtq/7bJXPhBy6ORN
Cc8hY0aClXeIqckEYQbhXv4HykgkexSYaiTKTZwAU3LQQ8W0LBhb13ZyR9W/
+INnw4c0I+8rRsX4MzBnsc5O2ZOk83cp67KsRWjYL6zZs1vEYFaqx+GdeV9Z
RUrCX/SpstDJpX8oXm5om2SftKJw6d0qpfw1abFaAk8sFIG1447A07tJBWOR
6DVoVkziEkUxfOHAtcSRvoe7FIa2rErlajEUyV1En0FVLisPFWEDLCBNkO0v
3FbCWkQd206HASwUHYOWjKU4UhPfCZS/EPXtppfjYI29doqe+OyhTXW7ZB4r
v6ao+juNqnfxIeQwwu1PJwInUHGcG7MpKZqttkHWnSwKHTfECJ6EjiZ01+CM
sgKUIoOpzlq0ISb6Y+JNSqOk0DyxTCpD/LfIZsFeBVEWlNKvwssGeUlZQ3o1
ga4z5PUHcSnYQrjOo9LRT2QpIWaPdqIXpZKj9sG8LPN6SwFvXy5bqCq8icSY
lOsXNH1eq1RJt5bWNyXwyoZ4u8Iqxep8UorNUZn0H/WKZ605GTlPRNN5oE9f
3d+HjNfnr6myuZOI4zdGMn0lgqpvu0fZrXmOfImzcYGlSWaDWJoffKHyWHM1
IZknORp+GWP0drSnXN0x5nyjJS317YtWQoheQ2BVXtgGBys3y+jFHxY9eyUw
SMA8RUUxwApiFhKnr4nQTRat61ydQ7iLun+k7mKviKH1PlN0KfzyATvfvzPf
eDwcHvYt9YDf/QfQ7e8xr5C0CRC56h2+s5cXWGaaAdyhK+iYtDrqjbewQsov
0KqlEprE4woSt76mUbk+XzM75RoikaRhz+p51arUVbaKBOQImLl0cGwqhIS2
2SIjof6L3SkLa1OxJRbNbWukKWFSwITy+sRllIrDgUn1BQdisZSvGXTKO7Wp
UsOXrTjD632WdqWqXyliaFNcEVmrnoTvnbNQvkuUZFOanOsV2aZVYRPRhzpE
IS9D4kpFQO83UMq/XRrZBMta/aD3NElzX4X9/vOf/0zuwY4P1gen5pCC+YNu
IQQeHwz1X/+BH/rv8ID7hiI46sWf+/W6H7+V6jb6Dp/6NEtflUu+b7vwg1N+
Y/Dg+fTYPnNH4xeTk/TJ9Kk9HA8nL9Ln7hk+PxmfTI7TI3c4HdoX4+eTZ+lT
92R6Yo/HR5PDdOheTJ9bGZlvPWni2bLun5S6HIll6bHeHcvzbgCPr/96MF6l
M1d/mK1slR78xK320wtoORQphGQCDX00PHraH570j45vD4enh09Oj4cDkdm/
D4enw6HOGSNI6mPzHz6dF9Xow6cXbyZvX3z68Oab6XevitcvFt/Prjbv/vPo
6aa6eFZmH0/OpXtUqSC22Y+joz+9PV+PXt386ay+unvx7Ztz9/rs/Xdvrt/P
X//5tbv85s14XG2+zc8vDqTLj3958f5uffFk9sN3R8PDy8Xx7d382bfH+erH
zXf1z5OVfbpen7xejEazg+QzK05yLfxgFzZiOWYArxBgNxZ7Kqr3f9iozNiN
fr/XOIjSYgJS3VjugUjQfNUN13p7AVwvLDd5MIb7eieGs7SXeV0v/enjxzPY
2Go8gFo9pvdl+zZ73H6RmOK6x6Cr7jH598dtC6BYKC63fhigiWrtiLoNyXK5
qttIAkLw3ryrGyzUq4hO8wAoQRhcS8jBZtIONhuQZ2cTwlxPRSkBrEIRNNPl
ELkaXyYdKsssv0lXd/I4XivCwxtXO688JcnV0kGY5YrKnWJc30qqxhRIdCh6
J7hzdCB3dEqScOhH7y2iuN7CsxXmml/bwSJAmj7qaxn8fbFc6Ds9LrCDLZEV
CtD1eXins9FIm1Go2tbhbKfercVTkn272fHlcl2oryAq8HfzP5Ix4ptOb76h
Q/uXXnQfUi5oxMmtmO2kxCm/DWYkxXGw6VxPpDux/AGxdlkCvyIWG3VfYay+
8Npi4IUScikxXPD7Vo2ixXwnl9XF9DXVircLBZtSNVqGvLXVrEjv6B/KFhf8
tp4mNLhsJWY9hjxq4TZAz1DbFmXWBp7WS2xFREQVVU9FyVcEZO1l6z1uI9Ye
3vzD4G+jHjVajy4hjKC0AyWu6dqPmt9SCOZIszoUytf0HgCtfie7SDhT8OVW
39zwpRzjW6cuEtO1iueFVIQivxMVT69JFcpLYr/+SmPnMHay56FUJibNv+Kh
NfPbXBExamEmGfNrgfCHt8+MPdRA/g8Fvsk5akIAAA==

-->

</rfc>

