<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.2.3) -->
<?rfc tocindent="yes"?>
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dogru-cedulon-core-01" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="Cedulon Core">Spend Receipts and Payment Rail Reconciliation for AI Agents</title>
    <seriesInfo name="Internet-Draft" value="draft-dogru-cedulon-core-01"/>
    <author initials="E. C." surname="Dogru" fullname="Emek Can Dogru">
      <organization>VERAX TEKNOLOJI LIMITED SIRKETI</organization>
      <address>
        <postal>
          <country>Turkey</country>
        </postal>
        <email>e.dogru@cedulon.com</email>
      </address>
    </author>
    <date year="2026" month="September" day="22"/>
    <area>sec</area>
    <keyword>Cedulon</keyword>
    <keyword>agent</keyword>
    <keyword>receipt</keyword>
    <keyword>policy</keyword>
    <keyword>SCITT</keyword>
    <abstract>
      <?line 190?>

<t>This document addresses auditable payments for AI agents and builds
upon state-of-the-art HTTP 402, AP2 and credit card systems. We
specify a cryptographically secured payment reconciliation protocol
using a Trade Manifest (a signed offer before payment), a Policy
Decision Point with default deny, a Spend Receipt (a COSE/CWT claim
set issued after a gated payment), and rail-extract reconciliation.</t>
    </abstract>
  </front>
  <middle>
    <?line 199?>

<section anchor="intro">
      <name>Introduction</name>
      <t>Artificial Intelligence (AI) agents involved in travel, stock market
transactions, etc. may need the capability of securely paying for
their transactions. Previously defined protocols such as HTTP 402
<xref target="X402"/> and Google's Agent Payments Protocol (AP2) <xref target="AP2"/> made it
possible: HTTP 402 protocols attach stablecoin settlement to ordinary
requests, and AP2 binds user intent to signed mandates. Card networks
and processors issue agent-scoped tokens.</t>
      <t>What is missing is an interoperable <strong>audit layer</strong>: a machine-checkable
answer to "was this spend allowed by policy, against which offer, and
what bytes were delivered?" The answers have limits, and this document
states them. "Allowed by policy" is the Receipt Issuer's signed
assertion; the audit does not independently re-verify the policy
decision (<xref target="policy-semantics"/>). What was delivered is machine-checkable
only where an attributable payee countersignature binds a delivery hash
(<xref target="countersign"/>). Without such a layer, a prompt-injected or looping
agent can drain a rail that has already accepted a valid signature, and
a counterparty can ship the wrong artifact.</t>
      <t>The name Cedulon is from cedule, the older legal word for a written
schedule or note. Cedulon does not clear funds, hold custody, or
operate a payment facilitator. An optional escrow actor is defined only as a third-party
role interface (<xref target="escrow-role"/>). Implementations of this specification
<bcp14>MUST NOT</bcp14> take custody of funds or operate escrow (<tt>MUST-T8-custody</tt>).</t>
      <t>Reconciling an internal ledger against an external statement is an old
accounting control <xref target="PACIOLI"/>, and signing the artifacts on both sides
is Grigg's triple-entry idea <xref target="GRIGG"/>. This document profiles that
control for parties that are software: a CBOR Object Signing and
Encryption (COSE) <xref target="RFC9052"/> receipt shape, an extract shape, and a
verification algorithm precise enough that two implementations reach
the same finding on the same evidence. The checkpoint chain that
extends it over time is in <xref target="CEDULON-CHECKPOINT"/>.</t>
      <t>A Cedulon audit is intended to be read within the architecture for
auditing AI agent delegation and interactions <xref target="KUEHLEWIND-AUDIT"/>,
which links user intent, delegation and authorization to an execution,
registers the resulting records with a Supply Chain Integrity,
Transparency, and Trust (SCITT) Transparency Service <xref target="RFC9943"/>, and
lists financial transactions by agents among its motivating cases. For
a spend, this document adds a result that architecture does not define:
completeness of signed receipts against an authenticated extract of the
rail, over a declared account, rail and time window. This document does
not define an integration profile for that architecture. Other related
drafts are noted in <xref target="adjacent"/>.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</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?>

<t>This document uses Concise Binary Object Representation (CBOR)
<xref target="RFC8949"/>, CBOR Web Token (CWT) <xref target="RFC8392"/> claim sets, and JavaScript
Object Notation (JSON) documents. In the tables, CBOR types are written
<tt>tstr</tt> (text string), <tt>bstr</tt> (byte string) and <tt>uint</tt> (unsigned
integer).</t>
      <t>The following terms are used:</t>
      <dl>
        <dt>Trade Manifest:</dt>
        <dd>
          <t>A signed statement produced <strong>before</strong> payment. It binds a description
of goods or service, price, currency, acceptance-criteria hash, cancel
condition, expiry, and an optional AP2 mandate reference.</t>
        </dd>
        <dt>Policy Decision Point (PDP):</dt>
        <dd>
          <t>The function that evaluates a structured spend request against stored
policy. The default is deny.</t>
        </dd>
        <dt>Rail:</dt>
        <dd>
          <t>The payment system that moves value and reports what it settled, such
as the settlement path behind an HTTP 402 exchange <xref target="X402"/>. A Rail
Extract names it by <tt>railId</tt>.</t>
        </dd>
        <dt>Payment Adapter:</dt>
        <dd>
          <t>The component that performs the payment on the rail. It calls the PDP
first and is the only path from the agent to the rail (<tt>MUST-T5-1</tt>).</t>
        </dd>
        <dt>Spend Receipt:</dt>
        <dd>
          <t>A signed statement produced <strong>after</strong> a gated payment attempt. It
binds payer, payee, amount, currency, policy hash, <tt>manifestHash</tt> or
an explicit <tt>noManifest</tt> flag, rail payment reference, <tt>timestampMs</tt>,
nonce, <tt>prevReceiptHash</tt>, and <tt>outcome</tt>.</t>
        </dd>
        <dt>Receipt Issuer:</dt>
        <dd>
          <t>The party that signs Spend Receipts.</t>
        </dd>
        <dt>Anchor:</dt>
        <dd>
          <t>An optional SCITT Transparency Service <xref target="RFC9943"/> that registers a
signed statement and returns a COSE receipt <xref target="RFC9942"/>.</t>
        </dd>
        <dt>Dispute Evidence Bundle:</dt>
        <dd>
          <t>A package of the Trade Manifest, the Spend Receipt, and a delivery
hash. It is evidence for a later human or legal process. It is not an
arbitral award and not an escrow release.</t>
        </dd>
        <dt>Decision Token:</dt>
        <dd>
          <t>A portable, single-use PDP allow encoded as COSE_Sign1. The claim
set binds <tt>requestHash</tt>, <tt>policyHash</tt>, <tt>expiryMs</tt>, <tt>nonce</tt>, and
<tt>singleUseId</tt>. See <xref target="decision-token"/>.</t>
        </dd>
        <dt>Rail Extract:</dt>
        <dd>
          <t>An authenticated list of settlement records for one account, one
rail, and one time window. See <xref target="rail-extract"/>.</t>
        </dd>
        <dt>Verifier:</dt>
        <dd>
          <t>The party that runs the reconciliation of <xref target="reconciliation"/> over the
receipts, the Rail Extract, and the keys it holds.</t>
        </dd>
        <dt>Pinned key:</dt>
        <dd>
          <t>A public key the verifier obtained out of band, as opposed to a key an
object carries beside its signature. See <xref target="trust-roots"/>.</t>
        </dd>
        <dt>Working set:</dt>
        <dd>
          <t>The receipts and checkpoints the verification steps consume: those
that verify under a usable pinned issuer key (the attested set), or,
when no usable issuer key is pinned, every presented one. See
<xref target="verification"/>.</t>
        </dd>
        <dt>Presented-unattested:</dt>
        <dd>
          <t>The state of a receipt or checkpoint the verifier holds no pinned
issuer key for. Its signature is checked against the key the object
itself carries (<xref target="presentation"/>), which establishes internal
consistency only, so the object is neither attested nor rejected:
every presented object is weighed as one set and the completeness
guarantee is reported as conditional. It is a state of the report,
not a finding code. See <xref target="issuer-root"/>.</t>
        </dd>
      </dl>
    </section>
    <section anchor="architecture">
      <name>Architecture</name>
      <t>The following diagram shows the payment path, the audit path, and the
optional transparency service:</t>
      <artwork><![CDATA[
  Principal --policy--> PDP
                         ^
                         | request / allow or deny
  Trade Manifest         |
  (optional) -----> Payment Adapter --payment--> Rail
                         |                         |
                         v                         v
                  Receipt Issuer              Rail Extract
                         |                         |
                         v                         |
                   Spend Receipt ---> Verifier <---+
                         |               |
                         v               v
             Anchor / SCITT (optional)  Report
]]></artwork>
      <t>The payer agent never talks to the rail except through an adapter that
calls the PDP first (<tt>MUST-T5-1</tt>).</t>
      <section anchor="policy-decision-point">
        <name>Policy Decision Point</name>
        <t>The PDP evaluates structured fields only (<tt>MUST-T1-1</tt>): amount,
currency, payee, tool identifier, nonce, optional manifest hash, and
evaluation time. It applies limit, velocity, and scope checks
(<tt>MUST-T2-1</tt>, <tt>MUST-T2-2</tt>). If the PDP is unreachable, uninitialized,
or throws, the result is deny (<tt>MUST-T2-3</tt>). Denied attempts do not
increment success counters (<tt>MUST-T2-4</tt>).</t>
        <t>An allow produces a Decision Token whose <tt>requestHash</tt> covers six
fields: amount, currency, payee, tool, nonce, and <tt>manifestHash</tt>
(<tt>MUST-T3-4</tt>, <tt>MUST-T6-1</tt>). The token is a COSE_Sign1 object
(<tt>MUST-T6-4</tt>), is single-use (<tt>MUST-T6-2</tt>), and <bcp14>MAY</bcp14> be carried to
the adapter that performs settlement.</t>
      </section>
      <section anchor="receipt-issuer">
        <name>Receipt Issuer</name>
        <t>After the adapter attempts settlement (success or a recorded deny that
still needs an audit trail for an allowed-then-aborted path), the
Receipt Issuer signs a Spend Receipt over the deterministic CBOR
encoding of its claims (<tt>MUST-T4-1</tt>). Verifiers reject bad signatures and byte mismatch
(<tt>MUST-T4-2</tt>).</t>
      </section>
      <section anchor="anchor-scitt">
        <name>Anchor / SCITT</name>
        <t>Parties <bcp14>MAY</bcp14> register the signed receipt (or a privacy-preserving hash
encoding) as a SCITT Signed Statement <xref target="RFC9943"/> and attach the COSE
receipt (<tt>MAY-T4-6</tt>). This document does not operate a Transparency
Service.</t>
      </section>
    </section>
    <section anchor="lifecycle">
      <name>Lifecycle</name>
      <ol spacing="normal" type="1"><li>
          <t><strong>Manifest.</strong> Optionally, the payee or a marketplace signs a Trade Manifest. A
spend without one is marked <tt>noManifest</tt> and still passes limit,
velocity and scope checks (<tt>MUST-T1-2</tt>); a deployment <bcp14>MAY</bcp14> refuse
such spend (<tt>MAY-T1-4</tt>).</t>
        </li>
        <li>
          <t><strong>Policy check.</strong> The adapter submits a structured request to the
PDP. Default is deny. An allow is a Decision Token
(<tt>MUST-T6-4</tt>).</t>
        </li>
        <li>
          <t><strong>Payment.</strong> On allow, the adapter performs the x402 (or other
rail) exchange using exactly the decision fields (<tt>MUST-T6-1</tt>).
The Decision Token is consumed (<tt>MUST-T6-2</tt>). A reused nonce is
denied (<tt>MUST-T3-1</tt>, <tt>MUST-T3-2</tt>). A tampered or expired token
is denied (<tt>MUST-T6-5</tt>).</t>
        </li>
        <li>
          <t><strong>Receipt.</strong> The Receipt Issuer signs a Spend Receipt. Rail
credentials <bcp14>MUST NOT</bcp14> appear in the receipt, logs, or tool
results (<tt>MUST-T5-2</tt>, <tt>MUST-T7-1</tt>).</t>
        </li>
        <li>
          <t><strong>Dispute Evidence Bundle.</strong> If delivery bytes do not match the
acceptance-criteria hash, an implementation <bcp14>MUST</bcp14> be able to emit
a bundle of manifest + receipt + delivery hash (<tt>MUST-T8-3</tt>).
The bundle <bcp14>MUST NOT</bcp14> be described as an arbitral award or escrow
release (<tt>MUST-T8-4</tt>).</t>
        </li>
      </ol>
      <t>Afterwards, a verifier reconciles the receipts against the rail's own
extract (<xref target="reconciliation"/>). Appendix C follows one 10.00 TRY spend
through these steps.</t>
    </section>
    <section anchor="trade-manifest">
      <name>Trade Manifest</name>
      <t>A Trade Manifest is a signed offer issued <strong>before</strong> value moves. It
<bcp14>MAY</bcp14> carry an AP2 mandate hash so that user intent and the offer stay
linked (<tt>SHOULD-T8-5</tt>).</t>
      <t>A Trade Manifest <bcp14>MUST</bcp14> bind all of the following (<tt>MUST-T8-1</tt>):</t>
      <ul spacing="normal">
        <li>
          <t>goods or service description</t>
        </li>
        <li>
          <t>price (integer minor units, encoded as a decimal string matching
<tt>0|[1-9][0-9]*</tt>)</t>
        </li>
        <li>
          <t>currency (ISO 4217 alphabetic or a documented token identifier)</t>
        </li>
        <li>
          <t>acceptance-criteria hash (SHA-256 <xref target="RFC6234"/> of the exact delivery
bytes, lowercase hexadecimal)</t>
        </li>
        <li>
          <t>cancel condition (opaque string agreed by the parties)</t>
        </li>
        <li>
          <t>expiry (POSIX milliseconds, <tt>expiresAtMs</tt>)</t>
        </li>
      </ul>
      <t>The hash is taken over the exact delivery bytes only. Hashing a
schema instance instead would need a marker in the manifest saying
so; this document defines no such marker, and until one is defined
that use is out of scope rather than an alternative a verifier is
expected to guess at. The acceptance-criteria hash therefore fits a
delivery whose exact bytes are known when the offer is signed, such as
a file; this document defines no such hash for a service, such as a
travel booking, whose delivery is not a byte string.</t>
      <t>It <bcp14>MAY</bcp14> include <tt>ap2MandateHash</tt>. The corresponding CBOR label is
always present; a missing mandate is encoded as CBOR null.</t>
      <t>It <bcp14>MAY</bcp14> name a <tt>payee</tt>. An offer that is specific to one counterparty
carries that party's payee identifier; when present, every receipt
that names this manifest has its <tt>payee</tt> compared against it as exact
octets under <tt>MUST-T8-9</tt>, on that requirement's two-branch severity.
An open offer legitimately omits the member, and no comparison is
made. Unlike <tt>ap2MandateHash</tt>, the label is encoded only when the
member is present, so the null convention above does not apply to it.</t>
      <t>The manifest is COSE_Sign1 <xref target="RFC9052"/> over a deterministic CBOR claim
map (<xref target="cose-profile"/>). <tt>manifestHash</tt> is the SHA-256 of the signed
COSE bytes (<tt>MUST-T8-7</tt>). A spend bound to a manifest <bcp14>MUST</bcp14> be denied
if the requested amount or currency differs from the manifest
(<tt>MUST-T8-2</tt>) or if the manifest is expired (<tt>MUST-T3-3</tt>).</t>
      <t>A spend that is not bound to a verified manifest <bcp14>MUST</bcp14> be marked
<tt>noManifest</tt> on the receipt and <bcp14>MUST</bcp14> still pass limit, velocity, and
scope checks (<tt>MUST-T1-2</tt>). An implementation <bcp14>MAY</bcp14> refuse all
<tt>noManifest</tt> spend (<tt>MAY-T1-4</tt>).</t>
    </section>
    <section anchor="spend-receipt">
      <name>Spend Receipt</name>
      <t>The Spend Receipt claim set is carried in COSE_Sign1 <xref target="RFC9052"/>
wrapping a CWT-compatible map <xref target="RFC8392"/>. New receipts <bcp14>MUST</bcp14> use the
COSE profile (<xref target="cose-profile"/>).</t>
      <t>Claims (<tt>MUST-T4-3</tt>, <tt>MUST-T4-4</tt>, <tt>MUST-T4-7</tt>):</t>
      <table>
        <thead>
          <tr>
            <th align="left">Claim</th>
            <th align="left">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">payer</td>
            <td align="left">Payer agent identifier</td>
          </tr>
          <tr>
            <td align="left">payee</td>
            <td align="left">Payee identifier</td>
          </tr>
          <tr>
            <td align="left">amount</td>
            <td align="left">Minor units as a decimal string <tt>0|[1-9][0-9]*</tt></td>
          </tr>
          <tr>
            <td align="left">currency</td>
            <td align="left">Currency identifier</td>
          </tr>
          <tr>
            <td align="left">policyHash</td>
            <td align="left">SHA-256 of the canonical policy document (lowercase hex)</td>
          </tr>
          <tr>
            <td align="left">manifestHash</td>
            <td align="left">SHA-256 of the signed manifest COSE bytes, or null when <tt>noManifest</tt> is true</td>
          </tr>
          <tr>
            <td align="left">noManifest</td>
            <td align="left">Boolean; <bcp14>MUST</bcp14> be true if and only if <tt>manifestHash</tt> is null</td>
          </tr>
          <tr>
            <td align="left">x402PaymentRef</td>
            <td align="left">Rail payment reference, or null</td>
          </tr>
          <tr>
            <td align="left">timestampMs</td>
            <td align="left">POSIX milliseconds</td>
          </tr>
          <tr>
            <td align="left">nonce</td>
            <td align="left">Unique spend nonce; at least 128 bits of randomness; unique in the issuer scope</td>
          </tr>
          <tr>
            <td align="left">prevReceiptHash</td>
            <td align="left">Previous receipt hash, or null for the first receipt (<tt>SHOULD-T4-5</tt>)</td>
          </tr>
          <tr>
            <td align="left">outcome</td>
            <td align="left">
              <tt>settled</tt> or <tt>aborted</tt></td>
          </tr>
        </tbody>
      </table>
      <t>A receipt with <tt>outcome</tt> = <tt>settled</tt> <bcp14>MUST</bcp14> have a non-null
<tt>x402PaymentRef</tt> (<tt>MUST-T4-7</tt>). An aborted receipt <bcp14>MUST NOT</bcp14> be added
into checkpoint totals.</t>
      <t>All twelve labels in <xref target="receipt-labels"/> are always present. An empty
optional value is encoded as CBOR null, never by omitting the label.</t>
      <t><tt>receiptHash</tt> is the SHA-256 of the receipt's signed COSE bytes,
encoded as lowercase hex.</t>
      <t>Verifiers <bcp14>MUST</bcp14> reject a receipt if the signature fails or if the
decoded claim map does not match the presented claims (<tt>MUST-T4-2</tt>).</t>
      <section anchor="countersign">
        <name>Optional payee countersignature</name>
        <t>A payee <bcp14>MAY</bcp14> attach a countersignature over the issuer's signed
Spend Receipt (<tt>MAY-T8-10</tt>). The profile uses a <strong>detached</strong>
COSE_Sign1 <xref target="RFC9052"/> whose payload is a CBOR map with private-use
labels:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Claim</th>
              <th align="left">CBOR type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-70401</td>
              <td align="left">receiptCose</td>
              <td align="left">bstr (exact issuer COSE_Sign1 bytes)</td>
            </tr>
            <tr>
              <td align="left">-70402</td>
              <td align="left">deliveredHash</td>
              <td align="left">bstr (optional; SHA-256 of the exact delivered bytes)</td>
            </tr>
          </tbody>
        </table>
        <t>The countersignature uses the header profile in <xref target="cose-profile"/>
and content type <tt>application/cedulon-countersign+cbor</tt>.</t>
        <t>This is a second Sign1 object, not RFC 9052 Countersignature0
(unprotected-header label 11). Countersignature0 would write into
the issuer object and change <tt>receiptHash</tt> after issue, breaking
the receipt chain. A detached Sign1 keeps the issuer bytes
stable, reuses <tt>kid</tt> and content-type, and is absent by simply
omitting the sibling object.</t>
        <t>Absence of a countersignature <bcp14>MUST NOT</bcp14> invalidate the issuer
receipt (<tt>MAY-T8-10</tt>). A countersignature travels beside the issuer
signature without being covered by it, so anyone holding an honest
receipt can append one of their own. Attribution is therefore the
gate: a countersignature that cannot be attributed to the pinned
payee key - the signature fails, <tt>kid</tt> or content type does not
match, label -70401 is not the issuer COSE bytes (<tt>MUST-T8-8</tt>), or
the signature is valid under some other key - <bcp14>MUST</bcp14> be rejected as
approval evidence. What is rejected is the countersignature, not
the receipt: the verdict on the untouched issuer receipt <bcp14>MUST NOT</bcp14>
change because an unattributable object was attached. An appendable
object the issuer signature does not cover must not be able to
manufacture a negative result. The identifiers <tt>countersign-bad</tt> (unverifiable) and
<tt>countersign-key-mismatch</tt> (verifiable under another key) name the
discarded object as warnings, and where the verifier pinned a payee
key and no attributable countersignature remains, the
<tt>countersign-missing</tt> warning still applies: a discarded forgery is
the absence of the payee's word, not a substitute for it.</t>
        <t>The optional <tt>deliveredHash</tt> claim binds delivery to the receipt
under the payee's key. A payee who countersigns <bcp14>MAY</bcp14> include the
SHA-256 of the exact bytes it delivered in the same signed payload
as the issuer receipt bytes. When an attributable countersignature
carries <tt>deliveredHash</tt> and the verifier also holds the Trade
Manifest, the two digests are compared as exact octets:
<tt>deliveredHash</tt> against <tt>acceptanceCriteriaHash</tt>. A mismatch is
<tt>delivery-mismatch</tt>, and it is a finding rather than a warning,
because both ends of the comparison are signed. A <tt>deliveredHash</tt>
carried by an unattributable countersignature is discarded with it.
A countersigner <bcp14>MUST</bcp14> refuse to sign a <tt>deliveredHash</tt> that is not 32
octets; a verifier that meets one anyway treats the countersignature
as carrying no <tt>deliveredHash</tt>, so the delivery question narrows as
it does when the claim is absent, and the signature verdict does not
move. A countersignature without the claim remains valid.</t>
        <t>A Dispute Evidence Bundle that includes a verified countersignature
has stronger evidence that the payee accepted those bytes; the
bundle is still not an award (<tt>MUST-T8-4</tt>).</t>
      </section>
    </section>
    <section anchor="cose-profile">
      <name>COSE Profile</name>
      <t>This profile uses deterministic CBOR <xref target="RFC8949"/> Section 4.2.1
(definite lengths, shortest integer form, map keys sorted in
<strong>bytewise lexicographic</strong> order of their encoded keys).
Implementations <bcp14>MUST</bcp14> encode only the types used by Cedulon claim maps:
null, bool, unsigned and negative integers, UTF-8 text, byte strings,
arrays, and maps (<tt>MUST-T4-1</tt>).</t>
      <t>A decoder <bcp14>MUST</bcp14> refuse a CBOR map that carries a duplicate encoded
key (<tt>MUST-T4-18</tt>).</t>
      <t>A decoder <bcp14>MUST</bcp14> also impose a bound on what it will attempt: on encoded
size, on nesting depth, and on the number of elements it will decode
from an audit input. It <bcp14>MUST</bcp14> refuse an input that exceeds a bound with
a named refusal rather than by exhausting memory or the stack, and it
<bcp14>SHOULD</bcp14> document the bounds it applies (<tt>MUST-T4-19</tt>). This document
fixes no numbers, because the right bounds depend on the deployment;
what it requires is that exceeding a bound is a named, reported
refusal rather than a crash.</t>
      <section anchor="receipt-labels">
        <name>Claim labels</name>
        <t>Registered CWT claims <xref target="RFC8392"/> are not required by this profile. Cedulon
uses CWT private-use integer labels less than -65536.</t>
        <t>Every claim the tables below annotate as <tt>hash</tt> carries a SHA-256
digest rendered as exactly 64 lowercase hexadecimal characters
(<tt>[0-9a-f]{64}</tt>). A signer <bcp14>MUST</bcp14> refuse to sign, and a validator <bcp14>MUST</bcp14>
reject, a value that does not match that grammar, naming the claim in
the refusal. A decoder that preserves unknown or foreign claims is a
separate layer and keeps them unchanged; the grammar binds what a
party signs and what a validator accepts, not what a decoder can
carry.</t>
        <t>Receipt labels (<tt>MUST-T4-3</tt>, <tt>MUST-T4-4</tt>, <tt>MUST-T4-7</tt>):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Claim</th>
              <th align="left">CBOR type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-70001</td>
              <td align="left">payer</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70002</td>
              <td align="left">payee</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70003</td>
              <td align="left">amount</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70004</td>
              <td align="left">currency</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70005</td>
              <td align="left">policyHash</td>
              <td align="left">tstr (hash)</td>
            </tr>
            <tr>
              <td align="left">-70006</td>
              <td align="left">manifestHash</td>
              <td align="left">tstr (hash) / null</td>
            </tr>
            <tr>
              <td align="left">-70007</td>
              <td align="left">noManifest</td>
              <td align="left">bool</td>
            </tr>
            <tr>
              <td align="left">-70008</td>
              <td align="left">x402PaymentRef</td>
              <td align="left">tstr / null</td>
            </tr>
            <tr>
              <td align="left">-70009</td>
              <td align="left">timestampMs</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70010</td>
              <td align="left">nonce</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70011</td>
              <td align="left">prevReceiptHash</td>
              <td align="left">tstr (hash) / null</td>
            </tr>
            <tr>
              <td align="left">-70012</td>
              <td align="left">outcome</td>
              <td align="left">tstr (<tt>settled</tt> / <tt>aborted</tt>)</td>
            </tr>
          </tbody>
        </table>
        <t>Checkpoint labels (<tt>MUST-T11-1</tt>):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Claim</th>
              <th align="left">CBOR type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-70101</td>
              <td align="left">epoch</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70102</td>
              <td align="left">startMs</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70103</td>
              <td align="left">endMs</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70104</td>
              <td align="left">receiptCount</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70105</td>
              <td align="left">chainHeadHash</td>
              <td align="left">tstr (hash) / null</td>
            </tr>
            <tr>
              <td align="left">-70106</td>
              <td align="left">totals</td>
              <td align="left">map tstr -&gt; tstr / null</td>
            </tr>
            <tr>
              <td align="left">-70107</td>
              <td align="left">prevCheckpointHash</td>
              <td align="left">tstr (hash) / null</td>
            </tr>
          </tbody>
        </table>
        <t>Manifest labels (<tt>MUST-T8-1</tt>):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Claim</th>
              <th align="left">CBOR type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-70201</td>
              <td align="left">description</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70202</td>
              <td align="left">amount</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70203</td>
              <td align="left">currency</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70204</td>
              <td align="left">acceptanceCriteriaHash</td>
              <td align="left">tstr (hash)</td>
            </tr>
            <tr>
              <td align="left">-70205</td>
              <td align="left">cancelCondition</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70206</td>
              <td align="left">expiresAtMs</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70207</td>
              <td align="left">ap2MandateHash</td>
              <td align="left">tstr (hash) / null</td>
            </tr>
            <tr>
              <td align="left">-70208</td>
              <td align="left">payee</td>
              <td align="left">tstr (optional; encoded only when present)</td>
            </tr>
          </tbody>
        </table>
        <t>Decision Token labels (<tt>MUST-T6-4</tt>):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Claim</th>
              <th align="left">CBOR type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-70301</td>
              <td align="left">requestHash</td>
              <td align="left">tstr (hash)</td>
            </tr>
            <tr>
              <td align="left">-70302</td>
              <td align="left">policyHash</td>
              <td align="left">tstr (hash)</td>
            </tr>
            <tr>
              <td align="left">-70303</td>
              <td align="left">expiryMs</td>
              <td align="left">uint</td>
            </tr>
            <tr>
              <td align="left">-70304</td>
              <td align="left">nonce</td>
              <td align="left">tstr</td>
            </tr>
            <tr>
              <td align="left">-70305</td>
              <td align="left">singleUseId</td>
              <td align="left">tstr</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="cosesign1-headers">
        <name>COSE_Sign1 headers</name>
        <t>The protected header <bcp14>MUST</bcp14> be a deterministic CBOR map containing
(<tt>MUST-T4-1</tt>, <tt>MUST-T4-8</tt>):</t>
        <ul spacing="normal">
          <li>
            <t><tt>1</tt> (alg) = <tt>-19</tt> (Ed25519, <xref target="RFC9864"/>; the generic EdDSA value
<tt>-8</tt> from <xref target="RFC9053"/> is deprecated for this profile)</t>
          </li>
          <li>
            <t><tt>3</tt> (content type) = a tstr that distinguishes the payload:
<tt>application/cedulon-receipt+cbor</tt>,
<tt>application/cedulon-checkpoint+cbor</tt>,
<tt>application/cedulon-manifest+cbor</tt>,
<tt>application/cedulon-decision+cbor</tt>,
<tt>application/cedulon-countersign+cbor</tt>, or
<tt>application/cedulon-inclusion+cbor</tt></t>
          </li>
          <li>
            <t><tt>4</tt> (kid) = bstr, mandatory. The profile computes <tt>kid</tt> as the
first eight bytes of SHA-256 over the issuer's SubjectPublicKeyInfo
DER, in the Ed25519 SubjectPublicKeyInfo encoding of <xref target="RFC8410"/>. A
verifier <bcp14>MUST</bcp14> obtain the public key from an authenticated
channel (preconfigured issuer set, directory, or transparency
statement) and <bcp14>MUST</bcp14> reject a message whose <tt>kid</tt> does not match
that key.</t>
          </li>
        </ul>
        <t>The unprotected header <bcp14>MUST</bcp14> be empty, and a decoder <bcp14>MUST</bcp14> refuse a
message whose unprotected header is not an empty map, by the name
<tt>cose-sign1-unprotected</tt>, rather than verify the signature and ignore
the header (<tt>MUST-T4-21</tt>): every digest in <xref target="hash-inputs"/> is
computed over octets that include the unprotected header, which the
signature does not cover. The payload <bcp14>MUST</bcp14> be
the CBOR encoding of the claim map. The signature is Ed25519
<xref target="RFC8032"/> over the COSE <tt>Sig_structure</tt>
          <tt>["Signature1", protected, h'', payload]</tt>.</t>
      </section>
      <section anchor="presentation">
        <name>How a signed object is presented</name>
        <t>The signed octets above are what this profile defines and what every
digest in <xref target="hash-inputs"/> is taken over. An object handed to a
verifier travels with more than that, and this section names what.</t>
        <t>A presented Spend Receipt, epoch checkpoint, Trade Manifest, or
Decision Token carries, beside the signed octets, its claim set or
body in decoded form and <strong>the signer's public key as a
SubjectPublicKeyInfo PEM</strong>; a countersigned receipt carries the
payee's key the same way, and an object presented in the JSON
encoding of <xref target="canonical-json"/> repeats its signature there as
base64. None of these is inside the signed octets, which is the
whole point of naming them here: the signature
covers the COSE message and nothing else, so every one of these
members is a surface anyone holding the object can rewrite. This is
the same shape the Rail Extract states in <xref target="rail-extract"/>, and it
is stated once here for the COSE objects rather than left to be
inferred from an implementation.</t>
        <t>A carried key is not an identity source and <bcp14>MUST NOT</bcp14> be used as one
(<tt>MUST-T4-11</tt>). Under a pin it has exactly one effect: an object
that verifies under the pinned key while carrying a different key is
reported as <tt>carried-key-mismatch</tt>, a warning, and stays attested
(<xref target="issuer-root"/>). With no pin held it is the only key present, so
any signature check that runs against it says the object is
internally consistent and says nothing about who signed it; two
issuers cannot be told apart in that state. A Trade Manifest with no
pinned key is not checked against its carried key at all (Appendix B,
<tt>unauthenticated-manifest</tt>).</t>
      </section>
    </section>
    <section anchor="canonical-json">
      <name>Canonical JSON encoding</name>
      <t>Not everything this document hashes or signs is CBOR. The policy
document, the six request fields bound by a Decision Token, and the
scoped body of a Rail Extract are JSON. Two implementations could
agree on every other requirement in this document and still produce
different bytes unless the encoding is named, which makes an
independent verifier impossible to write from the text. This section
names that encoding.</t>
      <t>Where this document says "the canonical encoding" of a JSON document,
it means the encoding defined by <xref target="RFC8785"/>, and the octets hashed or
signed are the UTF-8 octets of that encoding.</t>
      <t>Three notes on the boundary of that reference:</t>
      <ul spacing="normal">
        <li>
          <t><xref target="RFC8785"/> Section 3.1 takes I-JSON <xref target="RFC7493"/> as its input, and
an I-JSON object carries no duplicate member names. This document
makes that precondition a rule at every place a verifier receives a
JSON document as text - a rail extract body, a policy document, a
stored receipt file: a text in which any object, at any depth,
repeats a member name <bcp14>MUST</bcp14> be refused by the name
<tt>json-duplicate-key</tt>, before the text is parsed (<tt>MUST-T4-20</tt>). A
verifier handed an object rather than text, as a tool behind a
JSON-RPC boundary is, cannot apply the rule and <bcp14>MUST NOT</bcp14> report
that it did; whether the text was checked is then the transport's
to state.</t>
        </li>
        <li>
          <t><xref target="RFC8785"/> Section 3.2.2.2 requires a serializer to terminate on a
lone surrogate, and so does this document: a producer <bcp14>MUST</bcp14> refuse to
encode a document containing one, by name, and <bcp14>MUST NOT</bcp14> sign what it
could not encode. A verifier reading bytes it cannot canonicalize for
this reason reports the input as failing verification with the
refusal named beside the verdict; it does not crash. No field defined
by this document may contain a lone surrogate, so a conforming
document never reaches this rule.</t>
        </li>
        <li>
          <t><xref target="RFC8785"/> defines no encoding for an integer outside the IEEE 754
double range. No document defined here carries one: every amount and
cumulative limit is already a decimal string before it is encoded,
and every hash is lowercase hexadecimal. A document that would need
such an integer is outside this specification.</t>
        </li>
      </ul>
      <section anchor="hash-inputs">
        <name>Which octets are hashed</name>
        <t>Every hash-valued field in this document is SHA-256 <xref target="RFC6234"/> of the
input named below. All but two are rendered as lowercase hexadecimal, and a third
differs in another respect.
<tt>kid</tt> differs only in its rendering: the digest is computed over the
same stated input and then truncated to its first 8 bytes, carried as
a byte string rather than as hex (<xref target="cose-profile"/> states the same
rule where the header is defined). <tt>ap2MandateHash</tt> differs in whose
digest it is: AP2 defines the mandate and its octets, and this
document carries the result opaquely rather than restating a rule it
does not own. <tt>deliveredHash</tt> differs in its carrier: it is a claim in
a CBOR map and is carried as the raw 32 digest bytes (bstr), not as
hex; comparisons against <tt>acceptanceCriteriaHash</tt> are made over the
digest value.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Input to SHA-256</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>receiptHash</tt></td>
              <td align="left">the signed COSE_Sign1 octets of the receipt</td>
            </tr>
            <tr>
              <td align="left">
                <tt>manifestHash</tt></td>
              <td align="left">the signed COSE_Sign1 octets of the Trade Manifest</td>
            </tr>
            <tr>
              <td align="left">
                <tt>checkpointHash</tt></td>
              <td align="left">the signed COSE_Sign1 octets of the checkpoint</td>
            </tr>
            <tr>
              <td align="left">
                <tt>statementHash</tt></td>
              <td align="left">the signed COSE_Sign1 octets of the statement</td>
            </tr>
            <tr>
              <td align="left">
                <tt>acceptanceCriteriaHash</tt></td>
              <td align="left">the exact delivery bytes, as defined in <xref target="trade-manifest"/></td>
            </tr>
            <tr>
              <td align="left">
                <tt>deliveredHash</tt></td>
              <td align="left">the exact bytes the payee delivered, under the same input rule as <tt>acceptanceCriteriaHash</tt>, computed by the payee when it countersigns</td>
            </tr>
            <tr>
              <td align="left">
                <tt>policyHash</tt></td>
              <td align="left">the UTF-8 octets of the canonical policy document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>requestHash</tt></td>
              <td align="left">the UTF-8 octets of the canonical six-field request document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>kid</tt></td>
              <td align="left">the SubjectPublicKeyInfo DER; the digest is then truncated to its first 8 bytes</td>
            </tr>
            <tr>
              <td align="left">
                <tt>ap2MandateHash</tt></td>
              <td align="left">the octets AP2 defines for its mandate; not profiled by this document</td>
            </tr>
          </tbody>
        </table>
        <t>Wherever this table, or any other sentence in this document, says "the
signed COSE_Sign1 octets", those are the octets of the <strong>untagged</strong>
four-element COSE_Sign1 array of <xref target="RFC9052"/>. This profile never wraps
a message in CBOR tag 18, and the vectors in Appendix A carry the
untagged form. A verifier that hashed a tagged copy would compute a
different digest for every object in this profile, so the choice is
stated here once rather than left to be inferred from the vectors.</t>
        <t>The six fields of the request document are the ones <tt>MUST-T6-1</tt> names:
amount, currency, payee, tool, nonce, and <tt>manifestHash</tt>.</t>
        <t>The request document is a JSON object carrying exactly
those six members and no others, every member always present. <tt>amount</tt>
is the decimal string of the request, in the amount syntax the receipt
claims table states, never a JSON number: <xref target="RFC8785"/> encodes the
number 1 and the string "1" differently, and an implementation free to
pick either would produce two digests for one request. <tt>currency</tt>,
<tt>payee</tt>, and <tt>nonce</tt> are the request's text strings. <tt>tool</tt> is the
request's text string, or JSON null where the deployment names none.
<tt>manifestHash</tt> is the lowercase hexadecimal string, or JSON null for a
spend bound to no manifest; an absent value is null, never an omitted
member. A document with a seventh member, a missing member, or another
type for one of these is not the request document this section
defines.</t>
        <t>The policy document is different on purpose, and the difference is
scope rather than an oversight. Its member set is the deployment's
own: this document defines how the bytes of whatever policy document a
PDP evaluates are encoded (<xref target="canonical-json"/>) and digested, not what
its members are. <tt>policyHash</tt> binds a spend to the exact bytes its PDP
evaluated; it is not a value two deployments are expected to compute
from a shared schema, and nothing in the verification algorithm
compares one deployment's <tt>policyHash</tt> to another's.</t>
      </section>
    </section>
    <section anchor="decision-token">
      <name>Decision Token</name>
      <t>A Decision Token is the portable encoding of a PDP allow. It is
COSE_Sign1 with the header profile in <xref target="cose-profile"/> and the
labels in <xref target="receipt-labels"/>. All five labels are always present
(<tt>MUST-T6-4</tt>).</t>
      <t><tt>requestHash</tt> <bcp14>MUST</bcp14> be the SHA-256 of the canonical encoding of the six
fields the PDP evaluated (<tt>MUST-T6-1</tt>), rendered as lowercase
hexadecimal; <xref target="canonical-json"/> defines that encoding and
<xref target="hash-inputs"/> states the octets.
<tt>policyHash</tt> <bcp14>MUST</bcp14> be the SHA-256 of the canonical
policy document the PDP evaluated. <tt>expiryMs</tt> is a Unix time in
milliseconds after which the token <bcp14>MUST</bcp14> be treated as expired
(<tt>SHOULD-T6-3</tt>): expired when the evaluation time is strictly greater
than <tt>expiryMs</tt>, not yet expired at exactly <tt>expiryMs</tt>, on the same
boundary discipline <tt>MUST-T3-3</tt> states for the manifest. <tt>nonce</tt> is the request nonce. <tt>singleUseId</tt> is
the identifier consumed on the first settlement attempt
(<tt>MUST-T6-2</tt>).</t>
      <t>A party that accepts a Decision Token <bcp14>MUST</bcp14> reject it if the
signature fails, if <tt>kid</tt> does not match a configured PDP key, if
the content type is not <tt>application/cedulon-decision+cbor</tt>, if
the decoded claim map does not match the presented claims, or if
<tt>expiryMs</tt> is in the past (<tt>MUST-T6-5</tt>).</t>
    </section>
    <section anchor="rail-extract">
      <name>Rail Extract Profile</name>
      <t>A verifier checks completeness against a <strong>rail extract</strong>, not against
the issuer's own receipts alone (<tt>MUST-T10-7</tt>).</t>
      <section anchor="record-schema">
        <name>Record schema</name>
        <t>The extract body is a JSON document. Each settlement record <bcp14>MUST</bcp14>
contain the following members, under these names:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Member</th>
              <th align="left">JSON type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ref</td>
              <td align="left">string (rail payment reference)</td>
            </tr>
            <tr>
              <td align="left">amount</td>
              <td align="left">string matching <tt>0|[1-9][0-9]*</tt></td>
            </tr>
            <tr>
              <td align="left">currency</td>
              <td align="left">string</td>
            </tr>
            <tr>
              <td align="left">timestampMs</td>
              <td align="left">number (POSIX milliseconds, an integer)</td>
            </tr>
          </tbody>
        </table>
        <t>These member names are normative. A rail <bcp14>MAY</bcp14> add members of its own
to a record; it <bcp14>MUST NOT</bcp14> rename the four above. The types above
are stated in JSON terms.</t>
        <t>A record <bcp14>MAY</bcp14> carry a <tt>beneficiary</tt> member (string). A rail that can
resolve a payment reference to the party credited declares it there;
when present, it is compared against the payee of the receipt that
names the same <tt>ref</tt>, and a difference is reported
(<tt>beneficiary-mismatch</tt>). Resolving a reference to a beneficiary is a
feature of the rail's own system: this profile does not assume it,
and measures it only when the rail declares it.</t>
      </section>
      <section anchor="scope">
        <name>Scope</name>
        <t>An extract is scoped to one account identifier, one rail identifier,
and one half-open time window <tt>[windowStartMs, windowEndMs)</tt>. The
signed body is one JSON document with exactly this shape:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Member</th>
              <th align="left">JSON type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">accountId</td>
              <td align="left">string</td>
            </tr>
            <tr>
              <td align="left">railId</td>
              <td align="left">string</td>
            </tr>
            <tr>
              <td align="left">windowStartMs</td>
              <td align="left">number (POSIX milliseconds, an integer)</td>
            </tr>
            <tr>
              <td align="left">windowEndMs</td>
              <td align="left">number (POSIX milliseconds, an integer)</td>
            </tr>
            <tr>
              <td align="left">clockSkewMs</td>
              <td align="left">number (milliseconds, a non-negative integer; optional; see <xref target="reconciliation"/>)</td>
            </tr>
            <tr>
              <td align="left">settlements</td>
              <td align="left">array of settlement records (schema above)</td>
            </tr>
          </tbody>
        </table>
        <t>All six named members except <tt>clockSkewMs</tt> <bcp14>MUST</bcp14> be present; a body
missing one, or a record renaming a core member, <bcp14>MUST</bcp14> be refused by
name at both ends - by the signer before it signs and by the verifier
before it checks a signature - so a malformed extract is the same
refusal on both sides rather than a signature verdict. Additional
members beyond these are the rail's to add, as with records.</t>
        <t>The integer-valued members - <tt>windowStartMs</tt>, <tt>windowEndMs</tt>, each
record's <tt>timestampMs</tt>, and <tt>clockSkewMs</tt> - <bcp14>MUST</bcp14> be integers of
magnitude at most 2^53 - 1, the range a JSON number carries exactly,
and <tt>clockSkewMs</tt> <bcp14>MUST NOT</bcp14> be negative; a value outside those bounds,
or a non-integer, is refused by name in the same way as a missing
member. <tt>windowEndMs</tt> <bcp14>MUST</bcp14> be greater than <tt>windowStartMs</tt>: the window
is half-open, so one that does not end after it starts declares no
population, and a body carrying one is refused by name
(<tt>malformed-extract-window</tt>) in the same way, at both ends.</t>
        <t>The body is read as text before it is read as an object. A text in
which any object repeats a member name is refused as
<tt>json-duplicate-key</tt> at both ends, before parsing and before any
signature is checked (<tt>MUST-T4-20</tt>, <xref target="canonical-json"/>); a signer
that parsed first would sign one of the two values and an honest
verifier could check the other.</t>
        <t><tt>clockSkewMs</tt>, when present, declares the boundary allowance the
verifier applies at this window's edges during reconciliation
(<xref target="reconciliation"/>); when absent, the profile default of 300000
milliseconds (five minutes) applies.</t>
      </section>
      <section anchor="authentication">
        <name>Authentication</name>
        <t>The rail signs Ed25519 <xref target="RFC8032"/> over the canonical encoding of the
scoped body, which is a JSON document and therefore takes the encoding
of <xref target="canonical-json"/>: the signed octets are the UTF-8 octets of the
<xref target="RFC8785"/> encoding of the body above. The signature and the rail's
public key travel beside the body, the signature as base64 and the
key as a SubjectPublicKeyInfo PEM; neither is part of the signed
octets. A verifier <bcp14>MUST</bcp14>
obtain the extract from the rail or from a signature the rail
published (<tt>MUST-T10-7</tt>). A deployment that cannot do so is running
the reconciliation against evidence it did not obtain independently,
and <bcp14>MUST</bcp14> report the guarantee as conditional.</t>
        <t>A signature on an extract proves internal consistency, not origin: a
key generated by whoever produced the object verifies against itself.
The verifier therefore <bcp14>MUST</bcp14> obtain the rail's public key out of band
and <bcp14>MUST</bcp14> verify the extract signature against that key (<tt>MUST-T10-8</tt>).
A key the extract carries is not that key: it is neither the rail's
identity nor a fallback for one the verifier did not obtain. Where no
such key is held, the carried key is the only key present, so the
signature check that runs against it says the extract is internally
consistent and says nothing about who produced it, and the verifier
<bcp14>MUST</bcp14> treat the guarantee as conditional.</t>
        <t>Keys are compared as bytes. A verifier <bcp14>MUST</bcp14> compare the pinned key
and the key that signed the extract by their SubjectPublicKeyInfo
DER encoding, not by any text encoding of it, so that the same key
presented in a different envelope still compares equal
(<tt>MUST-T10-9</tt>). A pinned key the verifier cannot decode is a fault in
the verifier's own configuration, not evidence about the extract, and
<bcp14>MUST</bcp14> be reported as <tt>trust-key-unreadable</tt> rather than as a key
mismatch.</t>
        <t>What a verifier emits for an extract it cannot authenticate depends on
whether it stated an expectation. With no pinned key the verifier has
asserted nothing, so the condition is <tt>unauthenticated-extract</tt>
whatever the extract carries - a signature that verifies against the
carried key establishes internal consistency and not origin, and one
that fails or is refused is not a verdict about a key either. It is a
warning: completeness findings may still be computed, but the
guarantee is <strong>conditional</strong> on the extract being authentic. With a pinned key the verifier has
asserted what it requires, and an extract that fails to meet it is a
failure rather than a caveat; see the verification algorithm for which
finding applies.
See <xref target="security"/>.</t>
      </section>
      <section anchor="scope-agreement">
        <name>Scope agreement</name>
        <t>An extract declares a window and carries settlement records. The two
<bcp14>MUST</bcp14> agree: a verifier <bcp14>MUST</bcp14> report every settlement record whose
<tt>timestampMs</tt> falls outside <tt>[windowStartMs, windowEndMs)</tt> as
<tt>extract-scope-mismatch</tt>, identified by that record's <tt>ref</tt>
(<tt>MUST-T10-10</tt>). This check is about the extract's internal
consistency and <bcp14>MUST</bcp14> be performed whether or not a rail key is
pinned.</t>
        <t>A verifier that knows which account, rail, and window it is auditing
<bcp14>MUST</bcp14> also check the extract against that expectation and <bcp14>MUST</bcp14> fail
closed when the extract does not cover it (<tt>MUST-T10-11</tt>). An extract
for another account or rail, or one whose window does not span the
period under audit, cannot support a completeness claim about that
period.</t>
        <t>A verifier that has not stated the period under audit <bcp14>MUST</bcp14> emit <tt>unstated-audit-window</tt> and <bcp14>MUST</bcp14> treat the guarantee as
conditional (<tt>MUST-T10-15</tt>), whatever else verifies.</t>
        <t>Likewise, a verifier that has not stated the account or the rail under
audit <bcp14>MUST</bcp14> emit <tt>unstated-audit-scope</tt> and <bcp14>MUST</bcp14> treat the
guarantee as conditional (<tt>MUST-T10-18</tt>). Where no rail key is pinned
at all, all three axes are equally unstated and
<tt>unauthenticated-extract</tt> is the condition reported.</t>
        <t>A balanced audit under an unconditional guarantee is true of one
account, on one rail, over one window, so a report that carries it
<bcp14>MUST</bcp14> also carry that account, rail and window (<tt>MUST-T10-19</tt>). A
completeness claim about an account needs one such report per rail
that account can settle on; enumerating those rails is the
deployment's statement.</t>
      </section>
    </section>
    <section anchor="trust-roots">
      <name>Trust roots</name>
      <t><xref target="rail-extract"/> states the rule for one object: a signature proves
internal consistency, not origin, so the verifier obtains the rail key
out of band and checks the extract against it, and the key the extract
carries is neither the rail's identity nor a fallback for one the
verifier did not obtain (<tt>MUST-T10-8</tt>). The same discipline applies
to the issuer: a verifier obtains the public key from an
authenticated channel and rejects a <tt>kid</tt> that does not match that
key (<tt>MUST-T4-8</tt>). This section states the verification algorithm,
the separate root inputs, and the error semantics that name a missing
or mismatched pin, for every signed object in the profile.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Object</th>
            <th align="left">Key the verifier pins</th>
            <th align="left">Section</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Rail Extract</td>
            <td align="left">rail key</td>
            <td align="left">
              <xref target="rail-extract"/></td>
          </tr>
          <tr>
            <td align="left">Spend Receipt, epoch checkpoint</td>
            <td align="left">issuer key</td>
            <td align="left">
              <xref target="issuer-root"/></td>
          </tr>
          <tr>
            <td align="left">Payee countersignature</td>
            <td align="left">payee key</td>
            <td align="left">
              <xref target="payee-root"/></td>
          </tr>
          <tr>
            <td align="left">Decision Token</td>
            <td align="left">the deployment's own PDP signing key</td>
            <td align="left">
              <xref target="decision-root"/></td>
          </tr>
          <tr>
            <td align="left">Trade Manifest</td>
            <td align="left">publisher key</td>
            <td align="left">
              <xref target="manifest-root"/></td>
          </tr>
        </tbody>
      </table>
      <t>Without these roots, a verifier that checks a Spend Receipt against the
key the receipt carries accepts a receipt signed by any key at all, and
a forged receipt can make an unreceipted settlement look covered.</t>
      <section anchor="issuer-root">
        <name>The issuer root</name>
        <t>A verifier <bcp14>MUST</bcp14> obtain the issuer's public key out of band and <bcp14>MUST</bcp14>
verify Spend Receipt and epoch checkpoint signatures against that key.
A key the object carries is not that key: it establishes no signer
identity and is not a fallback for a pin the verifier does not hold
(<tt>MUST-T4-9</tt>, <tt>MUST-T4-11</tt>). Where no issuer key is held, a signature
checked against the key its own object carries establishes internal
consistency and nothing more, which is the state <xref target="presentation"/> and
the last row of the table below describe. A
verifier that holds no such key and is presented with any Spend
Receipt or epoch checkpoint <bcp14>MUST</bcp14> treat the completeness guarantee as
conditional and <bcp14>SHOULD</bcp14> report the condition; the identifier
<tt>unauthenticated-issuer</tt> is used for it in this document.</t>
        <t>An audit given no receipts and no checkpoints rests on the extract
alone and is not made conditional by this requirement.</t>
        <t>Reporting a mismatch is not sufficient on its own. A receipt that
does not answer to the pinned issuer key <bcp14>MUST NOT</bcp14> count as coverage
for the settlement it names, and the settlement <bcp14>MUST</bcp14> still be
reported as uncovered (<tt>MUST-T4-10</tt>).</t>
        <t>Keys are compared as bytes, by their SubjectPublicKeyInfo DER
encoding, on the same terms as <tt>MUST-T10-9</tt>. A pinned issuer key the
verifier cannot decode is a fault in its own configuration and <bcp14>MUST</bcp14>
be reported as <tt>trust-key-unreadable</tt> rather than as a mismatch
against the objects; where no pinned key can be decoded at all,
nothing is attested and the verifier <bcp14>MUST NOT</bcp14> fall back to accepting
the keys the objects carry (<tt>MUST-T4-11</tt>).</t>
        <t>Membership in the attested set follows one rule: the signature
verifies under a pinned issuer key. The <tt>kid</tt> header routes the check
to a candidate key; the key an object carries beside its signature is
not an identity source, because it travels outside the signed octets
and anyone can rewrite it. Two consequences are stated so that
implementations do not diverge on them. First, an honestly signed
object whose carried key was swapped stays attested: the swap is
reported (<tt>carried-key-mismatch</tt>, a warning) and <bcp14>MUST NOT</bcp14> move the
object out of the attested set or change the verdict, on the same
reasoning as <xref target="countersign"/> - a surface the signature does not cover
must not be able to manufacture a negative result. Second, an object
that claims the pin, by its carried key or its <tt>kid</tt>, but does not
verify under it is excluded from the attested set and <bcp14>MUST</bcp14> still be
walked and named - for a receipt, <tt>receipt-chain-break</tt> with a
signature-failed detail - never silently dropped; an object that
neither verifies under the pin nor claims it is
<tt>issuer-key-mismatch</tt>, excluded, and the settlement it names stays
uncovered.</t>
        <t>The rule, read out per cell (steps 6 and 8 are the verification
algorithm's):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Claims the pin (carried key or kid)</th>
              <th align="left">Verifies under the pin</th>
              <th align="left">Result</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">yes</td>
              <td align="left">yes</td>
              <td align="left">attested; a carried key other than the verifying one is <tt>carried-key-mismatch</tt>, a warning, and does not move the receipt</td>
            </tr>
            <tr>
              <td align="left">yes</td>
              <td align="left">no</td>
              <td align="left">excluded from the attested set; still walked and named in step 6 (<tt>receipt-chain-break</tt>, signature-failed detail); its settlement stays uncovered in step 8. A checkpoint has no chain walk to be named in, so it is reported as <tt>issuer-key-mismatch</tt> on this row as well as the next, and the window it would have covered is reported uncovered</td>
            </tr>
            <tr>
              <td align="left">no</td>
              <td align="left">no</td>
              <td align="left">
                <tt>issuer-key-mismatch</tt>; excluded; its settlement stays uncovered in step 8 (<tt>MUST-T4-9</tt>, <tt>MUST-T4-10</tt>)</td>
            </tr>
            <tr>
              <td align="left">no pin held</td>
              <td align="left">no pin to verify under</td>
              <td align="left">no comparison against a key the verifier holds happens, and the keys the objects carry are not a fallback for one (<tt>MUST-T4-11</tt>); each signature is still checked against the key its own object carries (<xref target="presentation"/>), which establishes that the object is internally consistent and nothing about who signed it, so a broken signature is still named (<tt>receipt-chain-break</tt>, <tt>checkpoint-total-mismatch</tt>) while two different issuers cannot be told apart; receipts are presented-unattested, the verifier reports <tt>unauthenticated-issuer</tt>, and accusation-shaped findings take the two-branch severity of <tt>MUST-T8-9</tt></td>
            </tr>
          </tbody>
        </table>
        <t>A verifier <bcp14>MUST</bcp14> accept an issuer root that is a set of keys rather
than a single key (<tt>MUST-T4-12</tt>), so that a key rotation mid-window
does not force it off the pin. The same acceptance
applies to a publisher pin, a witness pin, and a rail pin: a
verifier <bcp14>MUST</bcp14> accept each of those roots as a set of keys, so a
rotation inside the window does not force it off the pin.</t>
      </section>
      <section anchor="payee-root">
        <name>The payee root</name>
        <t>The optional countersignature in <xref target="countersign"/> travels beside the
issuer signature without being covered by it. Anyone holding an
honest receipt can append a countersignature of their own, so a
verifier that checks it against the key carried next to it learns
only that some key signed something.</t>
        <t>A countersignature <bcp14>MUST NOT</bcp14> be treated as evidence that the payee
approved the payment unless it verifies against a payee key the
verifier obtained out of band (<tt>MUST-T4-13</tt>). Without such a key the
verifier <bcp14>SHOULD</bcp14> report the condition and <bcp14>MUST</bcp14> treat the guarantee as
conditional.</t>
        <t>Where a verifier has pinned a key for a payee, a
settled receipt naming that payee and carrying no <strong>attributable</strong>
countersignature <bcp14>MUST</bcp14> be reported (<tt>MUST-T4-14</tt>): a countersignature
that failed to verify, or verified under some other key, is discarded
under <xref target="countersign"/> and leaves the expectation open exactly as a
missing one does. The discarded object itself is a warning, never a failure of the
receipt it rode beside; <xref target="countersign"/> states the invariant.</t>
      </section>
      <section anchor="decision-root">
        <name>The decision root</name>
        <t>A Decision Token is issued by the policy decision point and consumed
by the same deployment. A consumer <bcp14>MUST</bcp14> verify a Decision Token against its own
issuing key and <bcp14>MUST NOT</bcp14> accept one it cannot check that way
(<tt>MUST-T6-6</tt>).</t>
      </section>
      <section anchor="manifest-root">
        <name>The manifest root</name>
        <t>A verifier that is presented with a Trade Manifest <bcp14>MUST</bcp14> obtain the
publisher's public key out of band and <bcp14>MUST</bcp14> verify the manifest
signature against that key, not against a key the manifest carries
(<tt>MUST-T4-15</tt>). A verifier without such a key that is presented with
a Trade Manifest <bcp14>MUST</bcp14> report the completeness guarantee as
conditional and <bcp14>SHOULD</bcp14> report the condition; the identifier
<tt>unauthenticated-manifest</tt> is used for it in this document.
An audit presented with no Trade Manifest is not made conditional by
this requirement.</t>
        <t>A pinned manifest key the verifier cannot decode is a fault in its
own configuration and <bcp14>MUST</bcp14> be reported as <tt>trust-key-unreadable</tt>
rather than as a mismatch, on the same terms as <tt>MUST-T4-11</tt>. A
manifest that does not verify against a readable pin <bcp14>MUST</bcp14> be
reported as <tt>manifest-key-mismatch</tt> and <bcp14>MUST</bcp14> fail the audit.</t>
        <t>A verifier presented with a Trade Manifest <bcp14>MUST</bcp14> compare
the manifest hash to the <tt>manifestHash</tt> of the receipts presented to
the audit and <bcp14>MUST</bcp14> report a manifest that no presented receipt
references (<tt>MUST-T4-17</tt>); the identifier <tt>manifest-covers-no-receipt</tt>
is used for it in this document, and the completeness guarantee
is conditional. The comparison runs against those presented receipts,
including aborted ones, and is made before any extract window is
applied and before any issuer key is applied; a hash on an aborted
receipt, on a receipt outside the extract window, or on a receipt no
pinned key attests still counts as a reference. This requirement asks
whether any receipt names the terms, not whether a settlement in the
window was made under them, and not whether the receipt that names them
is attributable, so a forged receipt can silence this warning; the
report it leaves behind is still conditional and still carries the
finding that the receipt answers to no pinned key. This requirement does
not reach the audit presented with no Trade Manifest, which remains a
deployment choice under <tt>MUST-T1-2</tt>.</t>
        <t>Naming a manifest is not obeying one. A verifier presented with
a Trade Manifest <bcp14>MUST</bcp14> compare the amount, the currency and the
settlement time of every receipt that names it against the
manifest's amount, currency and expiry, and <bcp14>MUST</bcp14> report a receipt that
departs from them (<tt>MUST-T8-9</tt>); the identifier
<tt>manifest-terms-mismatch</tt> is used for it in this document.
Every receipt that names the manifest is measured, aborted ones
included. The time
compared is the receipt's <tt>timestampMs</tt>, against the boundary
<tt>MUST-T3-3</tt> states: strictly after <tt>expiresAtMs</tt> departs, exactly at
it does not. Amount and currency are compared on the exact-octet
terms of <tt>MUST-T8-2</tt>.</t>
        <t>Where a usable issuer key is pinned, the comparison is made over the
receipts that verify under it and the audit fails. Where none is
pinned, the departure is still reported and the audit does not fail on
it alone. An issuer key is usable when the pinned issuer root holds at
least one key the verifier can decode. A pinned root none of whose
keys decode is already <tt>trust-key-unreadable</tt> and attests nothing, so
the comparison takes the unpinned branch while that finding stands;
the audit has failed on the configuration fault, and the departure is
still reported without becoming a charge no readable key backs. Only
receipts that name the manifest are measured against it. Under a
usable issuer pin, a departure is a finding rather than a condition on
the guarantee.</t>
        <t>A policy decision point presented with a Trade Manifest it cannot
attribute <bcp14>MUST</bcp14> refuse the payment rather than settle and record the
doubt (<tt>MUST-T4-16</tt>): a settled payment carrying the hash of terms
nobody authorised cannot be withdrawn by reporting it afterwards.</t>
      </section>
      <section anchor="what-the-roots-do-not-cover">
        <name>What the roots do not cover</name>
        <t>A verifier that supplies none of these roots is not making an error,
and this document does not require it to. It is making a weaker
statement, and the guarantee it reports must say so. With no issuer
key nothing distinguishes one submitted receipt from another, so
conditions computed across the submitted set - two receipts claiming
one settlement reference, for instance - cannot be attributed to
anyone and are reported as conditions of the submission rather than
as failures of a party; the finding stands, only its attribution
changes.</t>
      </section>
    </section>
    <section anchor="reconciliation">
      <name>Reconciliation</name>
      <t>Completeness is the property that, given an authenticated rail
extract, every settlement in the extract has a matching settled Spend
Receipt, every settled receipt has a matching settlement, receipt and
checkpoint hash chains verify, and checkpoint totals equal the sum of
<strong>settled</strong> receipts in the checkpoint window. If a spend occurred
without a receipt, the missing receipt is itself the evidence
(<tt>MUST-T10-2</tt>).</t>
      <t>The property is stated over a population, and the extract is what
declares it: one account, on one rail, over one window
(<xref target="rail-extract"/>). "Every settlement" means every settlement that
extract carried. A settlement path no presented extract covers is not
reconciled and not found missing - it is outside the population - so
the report names the account, rail and window it was computed over
(<tt>MUST-T10-19</tt>), and a verifier that stated none of them says so
instead (<tt>MUST-T10-18</tt>).</t>
      <t>A checkpoint published with its totals withheld (<xref target="CEDULON-CHECKPOINT"/>, Checkpoint claims) cannot
contribute the last of those to the property. It is not a violation of
completeness and it is not a demonstration of it either: the
comparison was not made, and a result that rests on a comparison
nobody made is conditional (<tt>MUST-T11-12</tt>).</t>
      <section anchor="verification">
        <name>Verification algorithm</name>
        <t>A verifier <bcp14>MUST</bcp14> perform all of these steps and <bcp14>MUST</bcp14> report every
finding they produce (<tt>MUST-T10-1</tt>). They are numbered
for reference, not to require an evaluation order: no step
short-circuits another, and an implementation may evaluate them in any
order that produces the same set of findings.</t>
        <t>Two data dependencies limit that freedom, because "any order" read
naively would break them. An order that runs a step before the step it
consumes does not produce the same set of findings and is not
permitted.</t>
        <t>The first is the index of refs: step 7 builds it, and steps 8 and 9
reconcile it.</t>
        <t>The second is the issuer pin. The step that resolves it decides the
<strong>working set</strong>: the attested set - the receipts and checkpoints that
verify under a usable pinned issuer key - or, when no usable key is
pinned, the whole presented set, whose members are
presented-unattested. Every later step that walks receipts consumes
the working set: the indexing and reconciliation in steps 7 through 9
and the <tt>MUST-T8-9</tt> comparison. The chain walk in step 6 consumes the
working set plus one addition named in <xref target="issuer-root"/>: a receipt that
claims the pin and fails to verify under it is walked so the break can
be named, and is attested nowhere. A receipt that neither claims the
pin nor verifies under it is reported once (issuer-key-mismatch) and
then excluded, which is what keeps the settlement it names visible as
uncovered (<tt>MUST-T4-10</tt>); an
implementation that let it back into any of those steps would let a
forged receipt cover a settlement, satisfy a checkpoint count, or
invent a terms charge. Two checks deliberately stay on the presented
set whatever any key says, and <bcp14>MUST NOT</bcp14> acquire the dependency:
<tt>MUST-T4-17</tt>, which asks whether a manifest was named at all, and the
per-receipt defect checks that ask what a receipt says about itself.</t>
        <t>Checkpoint and witness verification consumes that working set
and is specified in <xref target="CEDULON-CHECKPOINT"/> (Verification algorithm),
which an implementation of this audit also implements: a receipt that
falls in no presented checkpoint window, including every receipt when
no checkpoint is presented, fails that document's window-coverage
check.</t>
        <t>When a step names an identifier in backticks, that identifier
<bcp14>SHOULD</bcp14> be used for the condition in diagnostic output. The
normative requirement is the behaviour: report the condition,
identified by the <tt>ref</tt> or other handle given in the step. The
identifiers are not an interoperability surface.</t>
        <ol spacing="normal" type="1"><li>
            <t>Establish the subject of the audit. When an extract is supplied,
the settlement records it carries are the ones reconciled; a
settlement list from any other source <bcp14>MUST NOT</bcp14> be substituted for
them (<tt>MUST-T10-12</tt>). If the caller supplies both and they differ,
the verifier <bcp14>MUST</bcp14> report that the caller-supplied list disagrees
with the extract, and <bcp14>MUST</bcp14> still reconcile the extract. The
identifier <tt>extract-settlement-mismatch</tt> <bcp14>SHOULD</bcp14> be used for this
condition in diagnostic output.</t>
          </li>
          <li>
            <t>Verify the extract signature against the out-of-band rail key
(<tt>MUST-T10-8</tt>, <tt>MUST-T10-9</tt>). If no key is pinned, the check that
runs is against the key the extract carries, which establishes
internal consistency and not origin; the verifier <bcp14>MUST</bcp14> still
compute it, <bcp14>MUST NOT</bcp14> read it as a statement about who produced the
extract, and <bcp14>MUST</bcp14> treat the completeness guarantee as conditional
(<tt>MUST-T10-7</tt>). The identifier <tt>unauthenticated-extract</tt> <bcp14>SHOULD</bcp14>
be used for this condition in diagnostic output, whatever the
extract carries. If a key is
pinned and cannot be decoded, the verifier <bcp14>MUST</bcp14> report that the
pinned key is unreadable. The identifier <tt>trust-key-unreadable</tt>
              <bcp14>SHOULD</bcp14> be used for this condition. If a key is pinned and the
signature does not verify against it, or verifies against a
different key, the verifier <bcp14>MUST</bcp14> report that the extract is not
signed by the pinned key. The identifier <tt>extract-key-mismatch</tt>
              <bcp14>SHOULD</bcp14> be used for this condition. The rows of an extract the pin
refused are not reconciled against the receipts, and no settlement
finding is read out of that document (<tt>MUST-T10-20</tt>); the
identifier <tt>settlement-comparison-skipped</tt> <bcp14>SHOULD</bcp14> be used to say
that the comparison did not run. A finding that puts the
extract itself in doubt <bcp14>MUST</bcp14> prevent an unconditional guarantee.</t>
          </li>
          <li>
            <t>Check scope. The verifier <bcp14>MUST</bcp14> report each settlement record
whose <tt>timestampMs</tt> falls outside the declared window, identified
by that record's <tt>ref</tt> (<tt>MUST-T10-10</tt>). When the verifier states
an expected account, rail, or window, it <bcp14>MUST</bcp14> report an extract
that does not cover it (<tt>MUST-T10-11</tt>). The identifier
<tt>extract-scope-mismatch</tt> <bcp14>SHOULD</bcp14> be used for both conditions. If
the verifier stated no period, it <bcp14>MUST</bcp14> treat the guarantee as
conditional (<tt>MUST-T10-15</tt>). The identifier
<tt>unstated-audit-window</tt> <bcp14>SHOULD</bcp14> be used for this condition. If it
stated no account or no rail, it <bcp14>MUST</bcp14> treat the guarantee as
conditional for the same reason (<tt>MUST-T10-18</tt>); the identifier
<tt>unstated-audit-scope</tt> <bcp14>SHOULD</bcp14> be used. Whatever the verdict, the
report <bcp14>MUST</bcp14> name the account, rail and window the extract declared,
in every structure it returns for the audit (<tt>MUST-T10-19</tt>).</t>
          </li>
          <li>
            <t>Resolve each Spend Receipt against the issuer root
(<xref target="issuer-root"/>) in one pass. Decode the COSE_Sign1; a content
type that is not the receipt type, a decoder bound, or a decoded
claim map that does not match the presented claims is a named
refusal, not a signature verdict (<tt>MUST-T4-2</tt>, <tt>MUST-T4-8</tt>). Then
ask one question: does the signature verify under a pinned issuer
key. <tt>kid</tt> routes the check to a candidate key and carries no
authority of its own; the carried key is not consulted for
membership at all. The resolution table in <xref target="issuer-root"/> reads
the answer out per cell. Every cell there is a named condition
plus a membership decision; no cell is a silent removal.
Where a countersignature is present,
<xref target="payee-root"/> governs what it establishes (<tt>MUST-T4-13</tt>,
<tt>MUST-T4-14</tt>). Where a Trade Manifest is presented, <xref target="manifest-root"/>
governs it (<tt>MUST-T4-15</tt>): with no publisher key pinned the verifier
reports <tt>unauthenticated-manifest</tt> and the guarantee is conditional;
with a pin that cannot be read, <tt>trust-key-unreadable</tt>; with a pin
the manifest does not answer to, <tt>manifest-key-mismatch</tt>; and with
a manifest that no presented receipt references,
<tt>manifest-covers-no-receipt</tt> (<tt>MUST-T4-17</tt>). A receipt that names
the manifest but departs from its amount, currency, expiry or,
where the manifest names one, payee is
reported as <tt>manifest-terms-mismatch</tt>; with a usable issuer key
pinned the comparison runs over the attested receipts and the
departure fails the audit, and with no usable issuer key it is a
warning over the presented receipts and does not by itself fail
the audit (<tt>MUST-T8-9</tt>). An audit
presented with no Trade Manifest is not made conditional by this
step.</t>
          </li>
          <li>
            <t>Scope the receipts. Membership follows the ref binding first: a
receipt whose <tt>ref</tt> appears on the extract is reconciled against
this extract even when its own <tt>timestampMs</tt> falls outside the
declared window - the rail has signed that the settlement belongs
to the window, and the receipt follows its settlement. The
<tt>timestampMs</tt> sieve applies only to receipts the extract does not
name: such a receipt outside the window is not a completeness
failure against this extract (<tt>MUST-T10-16</tt>); auditing a longer
period requires extracts that cover it. At the window's edges the
declared allowance applies (<xref target="rail-extract"/>): an unmatched
settled receipt within <tt>clockSkewMs</tt> of <tt>windowEndMs</tt>, and an
unmatched settlement record within <tt>clockSkewMs</tt> of
<tt>windowStartMs</tt>, are reported as <tt>boundary-deferred</tt>, a warning,
rather than as step 8's completeness findings - two honest clocks
can disagree by less than the allowance, and both verifiers of an
honest edge payment would otherwise reach the same false
accusation (<tt>MUST-T10-17</tt>). Where the following window's extract
is presented and verifies, a deferred receipt whose <tt>ref</tt> appears
on it is resolved and not reported, and one whose <tt>ref</tt> does not
appear hardens into the step 8 finding; a deferred settlement
record near the opening edge resolves through this step's ref
binding, since the prior window's receipt that names its <tt>ref</tt> is
reconciled here regardless of timestamp. The following window's
extract closes or hardens closing-edge deferrals only; an
opening-edge record stays deferred until a receipt in the
presented bag names its <tt>ref</tt>, whether or not a following extract
is presented. In a single-window audit
a deferred record keeps the guarantee conditional. Receipts remain
subject to every other check regardless of window.</t>
          </li>
          <li>
            <t>Walk the receipts of the working set, together with any receipt that
claims the pin and failed to verify under it (<xref target="issuer-root"/>), in
issuer order. Issuer order is the
order induced by the <tt>prevReceiptHash</tt> chain: the verifier
rebuilds the chain from the links, and the order in which
receipts were presented carries no weight. <tt>timestampMs</tt> is
issuer-asserted and is not an ordering source. The first
<tt>prevReceiptHash</tt> <bcp14>MUST</bcp14> be null. Each later <tt>prevReceiptHash</tt> <bcp14>MUST</bcp14>
equal <tt>receiptHash</tt> of the previous receipt. A miss, and a
receipt the links cannot place, <bcp14>MUST</bcp14> be reported as a break in
the receipt chain. The identifier <tt>receipt-chain-break</tt> <bcp14>SHOULD</bcp14> be
used for this condition.
An issuer stream that does not chain its receipts (<tt>SHOULD-T4-5</tt>) is
therefore reported as a break from its second receipt on: the <bcp14>SHOULD</bcp14>
states what an issuer owes, and this step states what a verifier does
with a stream that did not.</t>
          </li>
          <li>
            <t>Index the settled receipts of the working set and the extract records by <tt>ref</tt>. A <tt>ref</tt>
that appears more than once on either side <bcp14>MUST</bcp14> be reported as a
repeated reference (<tt>MUST-T10-6</tt>). The identifier <tt>duplicate-ref</tt>
              <bcp14>SHOULD</bcp14> be used for this condition.</t>
          </li>
          <li>
            <t>For each <tt>ref</tt> that appears exactly once on each side, require a
one-to-one match on <tt>ref</tt> AND <tt>amount</tt> AND <tt>currency</tt>
(<tt>MUST-T10-1</tt>), compared as exact octets on the terms of
<tt>MUST-T8-2</tt>; step 9's aggregation is the only place this algorithm
reads an amount as a number. Amount or currency mismatch <bcp14>MUST</bcp14> be reported as
a settlement that does not match its receipt, identified by that
<tt>ref</tt>. The identifier <tt>settlement-mismatch</tt> <bcp14>SHOULD</bcp14> be used for
this condition. A settlement with no receipt <bcp14>MUST</bcp14> be reported as
lacking a receipt, identified by its <tt>ref</tt> (<tt>MUST-T10-2</tt>). The
identifier <tt>settlement-without-receipt</tt> <bcp14>SHOULD</bcp14> be used for this
condition. A settled receipt with no extract row <bcp14>MUST</bcp14> be reported
as a completeness failure (<tt>MUST-T10-3</tt>). The identifier
<tt>receipt-without-settlement</tt> <bcp14>SHOULD</bcp14> be used for this condition.
A settled receipt with a null rail ref <bcp14>MUST</bcp14> be reported as
settled without a rail reference; this check asks what a receipt
says about itself and runs over the presented receipts, attested
or not. The identifier
<tt>settled-without-ref</tt> <bcp14>SHOULD</bcp14> be used for this condition.
Where a settlement record declares a <tt>beneficiary</tt>
(<xref target="rail-extract"/>), it <bcp14>MUST</bcp14> be compared against the matched
receipt's <tt>payee</tt> as exact octets; a difference is
<tt>beneficiary-mismatch</tt> and fails the audit. Where neither the
manifest names a <tt>payee</tt> nor any settlement record declares a
<tt>beneficiary</tt>, the report <bcp14>MUST</bcp14> carry <tt>counterparty-unbound</tt>, a
scope record: ref, amount and currency closed against the payer's
account extract, and the counterparty's identity was not bound.
It is a statement of what the evidence did not cover, not a
doubt about what it did, so it does not move the verdict and does
not by itself make the guarantee conditional.</t>
          </li>
          <li>
            <t>A <tt>ref</tt> already reported as repeating <bcp14>MUST</bcp14> still be reconciled
by amount rather than dropped from the comparison
(<tt>MUST-T10-13</tt>). For each currency under that <tt>ref</tt>, compare the
total settled against the total receipted. A settled total that
exceeds the receipted total <bcp14>MUST</bcp14> be reported as a settlement
lacking a receipt, and the finding <bcp14>MUST</bcp14> state the unaccounted
amount. The identifier <tt>settlement-without-receipt</tt> <bcp14>SHOULD</bcp14> be
used for this condition. A settled total that is less than the
receipted total <bcp14>MUST</bcp14> be reported as a settlement that does not
match its receipt, identified by that <tt>ref</tt>. The identifier
<tt>settlement-mismatch</tt> <bcp14>SHOULD</bcp14> be used for this condition. An
amount on that repeating <tt>ref</tt> that cannot be parsed as an
integer <bcp14>MUST</bcp14> be reported without abandoning the audit; the
identifier <tt>malformed-amount</tt> <bcp14>SHOULD</bcp14> be used for this condition.
A verifier <bcp14>MUST</bcp14> still report findings for the remaining records.</t>
          </li>
          <li>
            <t>Aborted receipts are not matched to extract rows and are not
added to totals.</t>
          </li>
          <li>
            <t>If any finding remains that is not a warning (a warning is a
condition that only makes the completeness guarantee
conditional), the audit <bcp14>MUST</bcp14> fail (<tt>MUST-T10-4</tt>).</t>
          </li>
        </ol>
      </section>
      <section anchor="finding-codes">
        <name>Finding codes</name>
        <t>The identifiers are listed in Appendix B. They are for
diagnostic output. They are not an
interoperability surface. A finding object that can be carried on
the wire is outside the scope of this document and may be defined
later. Two implementations interoperate when they accept the same
inputs and fail or warn on the same conditions, not when they
print the same strings.</t>
        <t>A condition that makes the audit fail is a finding. A condition
that only makes the completeness guarantee conditional is a
warning. Warnings <bcp14>MUST</bcp14> still appear in operator-facing output
(<tt>MUST-T10-14</tt>).</t>
        <t>A finding that puts the extract itself in doubt (<tt>extract-key-mismatch</tt>,
<tt>trust-key-unreadable</tt>, <tt>extract-scope-mismatch</tt>, or
<tt>extract-settlement-mismatch</tt>) <bcp14>MUST</bcp14> also prevent an unconditional
guarantee, not merely fail the audit. A finding that puts a presented
Trade Manifest in doubt (<tt>manifest-key-mismatch</tt>, or
<tt>trust-key-unreadable</tt> on the manifest pin) does the same.</t>
        <t>An unconditional guarantee therefore requires all of: an extract, a
pinned rail key the extract's signature verifies against, a stated
period the extract covers, an issuer root for whatever receipts and
checkpoints are presented, a manifest root for whatever Trade Manifest
is presented, no finding that puts the extract in
doubt, and no warning that withholds part of the comparison. A
checkpoint whose totals were signed as withheld
(<tt>checkpoint-totals-redacted</tt>) removes a comparison the guarantee
rests on, and a presented checkpoint a supplied witness does not
hold (<tt>checkpoint-not-anchored</tt>) leaves part of the chain
unwitnessed. Either one makes the result conditional. Anything less
than the whole list is conditional, and the report <bcp14>MUST</bcp14> say so.</t>
        <t>An implementation <bcp14>MUST</bcp14> make the guarantee and any warnings visible in
whatever human-readable audit report it produces under this document,
not only in a returned structure (<tt>MUST-T10-14</tt>). A report that says the books balance while withholding
that the balance is conditional invites the reader to take a
conditional result for an unconditional one.</t>
        <t>Checkpoints <bcp14>SHOULD</bcp14> be registered with a Transparency Service
(<tt>SHOULD-T11-5</tt>). A test deployment <bcp14>MAY</bcp14> use an in-process
append-only log as the witness (<tt>MAY-T11-6</tt>). Cedulon still <bcp14>MUST
NOT</bcp14> take custody.</t>
        <t>The guarantee named above is about completeness against the extract,
which is the subject of T10. It is not a claim that no checkpoint was
suppressed. Suppression is the subject of T11, and a report <bcp14>MUST NOT</bcp14>
be read as settling it when no witness was consulted: with no
witness receipts, the presented chain is self-consistent by
construction and says nothing about what it left out (<tt>MUST-T11-9</tt>).
A verifier that consulted a witness and found every presented
checkpoint recorded, with nothing recorded that was not presented,
has discharged T11 for the period those receipts cover, and for no
longer.</t>
      </section>
    </section>
    <section anchor="policy-semantics">
      <name>Policy Semantics</name>
      <t>Policy is default deny. The engine understands three families of
rule:</t>
      <ul spacing="normal">
        <li>
          <t><strong>Limit:</strong> maximum amount per payment; maximum cumulative amount
per window (<tt>MUST-T2-2</tt>).</t>
        </li>
        <li>
          <t><strong>Velocity:</strong> maximum number of allowed payments per window
(<tt>MUST-T2-1</tt>).</t>
        </li>
        <li>
          <t><strong>Scope:</strong> optional allow-lists for payee, currency, and tool
name.</t>
        </li>
      </ul>
      <t>Fail-closed: missing engine, crash, or exception yields deny
(<tt>MUST-T2-3</tt>). Implementations <bcp14>SHOULD</bcp14> emit stable reason codes
(<tt>SHOULD-T2-5</tt>). Decision tokens <bcp14>SHOULD</bcp14> expire after a short
time-to-live (TTL) (<tt>SHOULD-T6-3</tt>).</t>
      <t>The agent-facing spend interface <bcp14>MUST</bcp14> invoke the PDP and <bcp14>MUST NOT</bcp14>
expose a parallel ungated rail call to the model (<tt>MUST-T5-1</tt>).</t>
      <t>One boundary is stated here rather than left to be inferred. In the
retrospective audit, "allowed by policy" is the Receipt Issuer's
signed assertion: the spend passed the issuer's gate under the
<tt>policyHash</tt> the receipt names. The Decision Token is consumed at the
gate, and the verification algorithm never sees it; the audit does
not independently re-verify the PDP's allow. The completeness side of
the audit has an independent leg - the rail extract - and the policy
side deliberately does not: that is a trust boundary of this profile,
not an oversight. A deployment that wants the policy answer to be
independently verifiable needs a receipt-to-token binding, which this
document does not define; adding it would change what a receipt
carries.</t>
    </section>
    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>A public transparency encoding <bcp14>MUST</bcp14> support omitting or hashing
payer and payee identifiers and <bcp14>MUST</bcp14> support amount redaction or
bucket encoding (<tt>MUST-T9-1</tt>). Implementations <bcp14>MUST NOT</bcp14> write
government-ID numbers, the Primary Account Number (PAN) of a payment
instrument, or street address
into a public statement (<tt>MUST-T9-2</tt>). Default public anchors
<bcp14>SHOULD</bcp14> publish <tt>policyHash</tt>, <tt>manifestHash</tt>, <tt>receiptHash</tt>, and
<tt>timestampMs</tt> rather than full claims (<tt>SHOULD-T9-3</tt>). A private
auditor <bcp14>MAY</bcp14> receive an unredacted receipt out of band
(<tt>MAY-T9-4</tt>).</t>
      <t>The paragraph above counts receipt fields. A checkpoint publishes
something a receipt does not: a per-currency total for a whole
window, which discloses trading volume even when every individual
receipt is redacted (<tt>MUST-T9-5</tt>).</t>
      <t>The rule is the one <xref target="CEDULON-CHECKPOINT"/> defines and
<xref target="reconciliation"/> applies: <tt>totals</tt> <bcp14>MAY</bcp14> be
withheld by signing it as null (<tt>MUST-T11-12</tt>), and only that form
counts as a redaction (<tt>MUST-T11-13</tt>). The structural claims are not
redactable, because a verifier that cannot read the window or the
chain head cannot check anything at all, and a checkpoint that hid
them would be indistinguishable from a broken one.</t>
      <t>When totals are withheld, a verifier that cannot recompute them says
so, and the completeness guarantee for that window is conditional. A deployment that wants an unconditional result
publishes the totals; a deployment that wants the volume private
accepts a conditional one. What a deployment <bcp14>MUST NOT</bcp14> do is obtain
the unconditional result while withholding the evidence for it.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>This section is authoritative for the protocol requirements in this
document. The threat narratives in <xref target="CEDULON-THREATS"/> are informative
and do not override it.</t>
      <t>Requirement identifiers take the form KEYWORD-Tn-k, where KEYWORD
is <bcp14>MUST</bcp14>, <bcp14>SHOULD</bcp14>, or <bcp14>MAY</bcp14>, n is the threat number in this section,
and k is a sequence number within that threat. <bcp14>MUST</bcp14>-T8-custody is
the custody prohibition under T8. The tables below define the
requirement text those citations refer to.</t>
      <section anchor="t1-prompt-injection-leads-to-unauthorized-spend">
        <name>T1: Prompt injection leads to unauthorized spend</name>
        <t>An attacker plants instructions in tool output, a web page, or a retrieved
document. The agent then calls a spend tool outside the principal's intent.
Narrative: <xref target="CEDULON-THREATS"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T1-1</td>
              <td align="left">The PDP <bcp14>MUST</bcp14> decide from structured request fields and stored policy, not from model-generated prose.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T1-2</td>
              <td align="left">A spend that is not bound to a verified Trade Manifest <bcp14>MUST</bcp14> be marked <tt>noManifest</tt> on the Spend Receipt and <bcp14>MUST</bcp14> still be subject to limit, velocity, and scope policy.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T1-3</td>
              <td align="left">Hosts <bcp14>SHOULD</bcp14> require a human confirmation channel for first-use payees.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T1-4</td>
              <td align="left">An implementation <bcp14>MAY</bcp14> refuse all <tt>noManifest</tt> spend.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t2-runaway-agent-loop-spend">
        <name>T2: Runaway agent (loop spend)</name>
        <t>A stuck tool loop or recursive planner issues many payments.
Velocity and cumulative-limit counters live in the PDP, fail-closed.
Narrative: <xref target="CEDULON-THREATS"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T2-1</td>
              <td align="left">Policy <bcp14>MUST</bcp14> express a maximum payment count per configured time window (velocity).</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T2-2</td>
              <td align="left">Policy <bcp14>MUST</bcp14> express a maximum amount per payment and a maximum cumulative amount per window.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T2-3</td>
              <td align="left">If the PDP is unreachable, uninitialized, or throws during evaluation, the spend <bcp14>MUST</bcp14> be denied (fail-closed, default deny).</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T2-4</td>
              <td align="left">A denied attempt <bcp14>MUST NOT</bcp14> increment the allowed-spend counters as if it had succeeded.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T2-5</td>
              <td align="left">Implementations <bcp14>SHOULD</bcp14> emit a stable reason code for velocity and limit denials.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t3-replay-of-payment-authority">
        <name>T3: Replay of payment authority</name>
        <t>An observer replays a signed payment payload, mandate, or Cedulon decision token.
Every gated spend carries a unique nonce; manifests expire; tokens are single-use.
Narrative: <xref target="CEDULON-THREATS"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T3-1</td>
              <td align="left">Every spend attempt that the PDP allows <bcp14>MUST</bcp14> include a nonce that the implementation has not accepted before.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T3-2</td>
              <td align="left">A second attempt that reuses a nonce <bcp14>MUST</bcp14> be denied.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T3-3</td>
              <td align="left">A Trade Manifest <bcp14>MUST</bcp14> carry an expiry; a spend against an expired manifest <bcp14>MUST</bcp14> be denied. The manifest is expired when the settlement time is strictly greater than <tt>expiresAtMs</tt>; a settlement at exactly <tt>expiresAtMs</tt> is within the manifest.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T3-4</td>
              <td align="left">A PDP allow decision <bcp14>MUST</bcp14> be bound to the SHA-256 of the canonical encoding of the request fields it evaluated, as stated in <xref target="hash-inputs"/>, and <bcp14>MUST</bcp14> be single-use.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T3-5</td>
              <td align="left">Nonce stores <bcp14>SHOULD</bcp14> persist across process restart when the deployment is not a test fixture.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t4-receipt-forgery-or-repudiation">
        <name>T4: Receipt forgery or repudiation</name>
        <t>A party alters a receipt, invents a receipt, or denies a real spend.
Receipts are signed; verification covers the signed bytes; a hash chain links them.
Narrative: <xref target="CEDULON-THREATS"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-1</td>
              <td align="left">A Spend Receipt <bcp14>MUST</bcp14> be signed by the Receipt Issuer over the deterministic CBOR encoding of its claims, as profiled in <xref target="cose-profile"/>. The phrase "canonical encoding" is reserved for JSON documents (<xref target="canonical-json"/>).</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-2</td>
              <td align="left">Verifiers <bcp14>MUST</bcp14> reject a receipt whose signature does not validate or whose canonical bytes do not match the signed payload.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-3</td>
              <td align="left">A Spend Receipt <bcp14>MUST</bcp14> include <tt>payer</tt>, <tt>payee</tt>, <tt>amount</tt>, <tt>currency</tt>, <tt>policyHash</tt>, <tt>timestampMs</tt>, and <tt>nonce</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-4</td>
              <td align="left">A Spend Receipt <bcp14>MUST</bcp14> include <tt>manifestHash</tt> or an explicit <tt>noManifest</tt> flag, never an ambiguous empty hash. Empty optional values are CBOR null; labels are never absent.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T4-5</td>
              <td align="left">Receipts <bcp14>SHOULD</bcp14> form a hash chain (<tt>prevReceiptHash</tt>) so omission is detectable within one issuer stream.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T4-6</td>
              <td align="left">Parties <bcp14>MAY</bcp14> register the signed receipt as a SCITT statement to obtain a COSE receipt.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-7</td>
              <td align="left">A Spend Receipt <bcp14>MUST</bcp14> include <tt>outcome</tt> (<tt>settled</tt> or <tt>aborted</tt>). A settled receipt <bcp14>MUST</bcp14> have a non-null rail ref. Aborted receipts <bcp14>MUST NOT</bcp14> enter checkpoint totals.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-8</td>
              <td align="left">COSE_Sign1 protected headers <bcp14>MUST</bcp14> use alg -19 (Ed25519), a mandatory <tt>kid</tt>, and a payload-specific content type. Verifiers <bcp14>MUST</bcp14> reject a <tt>kid</tt> that does not match the configured issuer key.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-9</td>
              <td align="left">A verifier <bcp14>MUST</bcp14> obtain the issuer public key out of band and <bcp14>MUST</bcp14> verify Spend Receipt and epoch checkpoint signatures against that key. A key carried by the object <bcp14>MUST NOT</bcp14> be treated as the signer's identity and <bcp14>MUST NOT</bcp14> be used as a fallback where no key was obtained (<tt>MUST-T4-11</tt>). A verifier without such a key that is presented with any Spend Receipt or epoch checkpoint <bcp14>MUST</bcp14> report the completeness guarantee as conditional. An audit presented with neither rests on the extract alone and is not made conditional by this requirement.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-10</td>
              <td align="left">A receipt that does not verify against the pinned issuer key <bcp14>MUST NOT</bcp14> count as coverage for the settlement it names, and that settlement <bcp14>MUST</bcp14> still be reported as uncovered. Reporting the mismatch is not sufficient on its own.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-11</td>
              <td align="left">Pinned issuer keys <bcp14>MUST</bcp14> be compared by SubjectPublicKeyInfo DER encoding. A pinned key that cannot be decoded <bcp14>MUST</bcp14> be reported as a verifier configuration fault rather than as a mismatch, and where no pinned key decodes, the verifier <bcp14>MUST NOT</bcp14> fall back to the keys the objects carry.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-12</td>
              <td align="left">A verifier <bcp14>MUST</bcp14> accept an issuer, publisher, witness, or rail root comprising more than one key, so that a key rotation inside the audited window does not require it to abandon pinning.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-13</td>
              <td align="left">A payee countersignature <bcp14>MUST NOT</bcp14> be treated as evidence of payee approval unless it verifies against a payee key the verifier obtained out of band.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-14</td>
              <td align="left">Where a verifier has pinned a key for a payee, a settled receipt naming that payee and carrying no attributable countersignature <bcp14>MUST</bcp14> be reported.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-15</td>
              <td align="left">A verifier that is presented with a Trade Manifest <bcp14>MUST</bcp14> obtain the publisher public key out of band and <bcp14>MUST</bcp14> verify the manifest signature against that key, not against a key the manifest carries. A pin that cannot be read <bcp14>MUST</bcp14> be reported as <tt>trust-key-unreadable</tt>; a readable pin the manifest does not answer to <bcp14>MUST</bcp14> be reported as <tt>manifest-key-mismatch</tt> and <bcp14>MUST</bcp14> fail the audit. A verifier without such a key that is presented with a Trade Manifest <bcp14>MUST</bcp14> report the completeness guarantee as conditional. An audit presented with no Trade Manifest is not made conditional by this requirement.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-16</td>
              <td align="left">A policy decision point presented with a Trade Manifest it cannot verify against a key supplied out of band <bcp14>MUST</bcp14> refuse the payment.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-17</td>
              <td align="left">A verifier presented with a Trade Manifest <bcp14>MUST</bcp14> compare the manifest hash against the <tt>manifestHash</tt> of the receipts presented to the audit, including aborted ones, before any extract window is applied and before any issuer key is applied, and <bcp14>MUST</bcp14> report a presented manifest that no presented receipt references. An audit presented with no Trade Manifest is not made conditional by this requirement.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-18</td>
              <td align="left">A decoder <bcp14>MUST</bcp14> refuse a CBOR map that carries a duplicate encoded key.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-19</td>
              <td align="left">A decoder <bcp14>MUST</bcp14> impose a bound on encoded size, nesting depth, and the number of elements it will decode from an audit input, and <bcp14>MUST</bcp14> refuse an input that exceeds a bound with a named refusal rather than by exhausting memory or the stack. It <bcp14>SHOULD</bcp14> document the bounds it applies. This document fixes no numbers.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-20</td>
              <td align="left">A verifier that receives a JSON document as text <bcp14>MUST</bcp14> refuse a text in which any object repeats a member name, by name (<tt>json-duplicate-key</tt>), before parsing it. A verifier handed an object rather than text cannot apply this rule and <bcp14>MUST NOT</bcp14> report that it did.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T4-21</td>
              <td align="left">A decoder <bcp14>MUST</bcp14> refuse a COSE_Sign1 message whose unprotected header is not an empty map, by name (<tt>cose-sign1-unprotected</tt>), rather than verifying the signature and ignoring the header.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t5-policy-bypass-via-direct-rail-access">
        <name>T5: Policy bypass via direct rail access</name>
        <t>The agent or an attacker calls the rail without the PDP.
The only payment function is the adapter that calls the PDP first.
Narrative: <xref target="CEDULON-THREATS"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T5-1</td>
              <td align="left">The agent-facing spend interface <bcp14>MUST</bcp14> invoke the PDP and <bcp14>MUST NOT</bcp14> expose a parallel ungated rail call to the model.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T5-2</td>
              <td align="left">Rail credentials, wallet handles, and facilitator tokens <bcp14>MUST NOT</bcp14> be placed in tool results or prompts.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T5-3</td>
              <td align="left">Hosts <bcp14>SHOULD</bcp14> run the PDP and signing keys in a process the model runtime cannot write.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T5-4</td>
              <td align="left">A deployment <bcp14>MAY</bcp14> use OS or hardware isolation between the model and the PDP.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t6-time-of-check-to-time-of-use-toctou-between-policy-check-and-payment">
        <name>T6: Time-of-check to time-of-use (TOCTOU) between policy check and payment</name>
        <t>An allow is computed; the request is then swapped before the rail sees it.
Settlement pays only the exact fields hashed into the single-use decision.
Narrative: <xref target="CEDULON-THREATS"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T6-1</td>
              <td align="left">Payment settlement <bcp14>MUST</bcp14> use the same six <tt>requestHash</tt> fields the PDP evaluated: amount, currency, payee, tool, nonce, and <tt>manifestHash</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T6-2</td>
              <td align="left">An allow decision <bcp14>MUST</bcp14> be consumed on the first settlement attempt, success or fail-closed abort, and <bcp14>MUST NOT</bcp14> authorize a later different request.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T6-3</td>
              <td align="left">Implementations <bcp14>SHOULD</bcp14> treat a decision older than a short TTL as expired.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T6-4</td>
              <td align="left">An allow Decision Token <bcp14>MUST</bcp14> be COSE_Sign1 with CWT private-use labels -70301..-70305 (<tt>requestHash</tt>, <tt>policyHash</tt>, <tt>expiryMs</tt>, <tt>nonce</tt>, <tt>singleUseId</tt>) and content type <tt>application/cedulon-decision+cbor</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T6-5</td>
              <td align="left">A party that accepts a Decision Token <bcp14>MUST</bcp14> reject a failed signature, a <tt>kid</tt> or content-type mismatch, a claim-map mismatch, or an expired <tt>expiryMs</tt>. The token is expired when the evaluation time is strictly greater than <tt>expiryMs</tt>; at exactly <tt>expiryMs</tt> it is not.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T6-6</td>
              <td align="left">A consumer of a Decision Token <bcp14>MUST</bcp14> verify it against its own issuing key and <bcp14>MUST NOT</bcp14> accept a token it cannot check that way.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T6-7</td>
              <td align="left">A party that records a settlement under a Decision Token <bcp14>MUST</bcp14> refuse it when that settlement's <tt>timestampMs</tt> is strictly greater than the token's <tt>expiryMs</tt>. At exactly <tt>expiryMs</tt> the settlement remains inside the token's authority; the boundary is the one <tt>MUST-T6-5</tt> states.</td>
            </tr>
          </tbody>
        </table>
        <t>A later verifier cannot make this comparison. Decision Tokens are not
among the inputs <xref target="verification"/> enumerates: the extract, the
receipts, the manifests, the checkpoints, and the witness receipts.
The rule is written on the party that can apply it. Verification does
not repeat it.</t>
        <t><tt>MUST-T6-7</tt> does not let a later verifier detect a settlement that
predates its decision. That would require carrying the decision's
issuance time on the token and binding the receipt to it, which this
document does not define. <tt>MUST-T6-4</tt> names the same five labels.</t>
      </section>
      <section anchor="t7-signing-key-leakage">
        <name>T7: Signing-key leakage</name>
        <t>Keys leak from disk, logs, or a prompt. Forged manifests or receipts follow.
Narrative: <xref target="CEDULON-THREATS"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T7-1</td>
              <td align="left">Secret key material <bcp14>MUST NOT</bcp14> appear in receipts, checkpoints, manifests, decision tokens, logs, or example output.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T7-2</td>
              <td align="left">Example and test keys <bcp14>MUST</bcp14> be generated at runtime or stored as clearly fake fixtures, never as production secrets.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T7-3</td>
              <td align="left">Production deployments <bcp14>SHOULD</bcp14> use a hardware security module (HSM) or operating-system key store and <bcp14>SHOULD</bcp14> rotate keys.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T7-4</td>
              <td align="left">Implementations <bcp14>MAY</bcp14> encrypt keys at rest.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T7-5</td>
              <td align="left">An implementation that stores a signing key in the clear <bcp14>MUST</bcp14> report the protection it actually obtained, measured from the stored object rather than derived from the platform.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T7-6</td>
              <td align="left">A writable directory anywhere on the path to a stored signing key makes the file permission moot, and a symbolic link on that path hands the destination to whoever placed it. An implementation <bcp14>MUST</bcp14> refuse both rather than report the key as protected.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t8-counterparty-price-gouging-or-defective-delivery">
        <name>T8: Counterparty price gouging or defective delivery</name>
        <t>The payee ships a different artifact, or the price exceeds the signed offer.
The Trade Manifest binds price and an acceptance-criteria hash before payment.
Narrative: <xref target="CEDULON-THREATS"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-1</td>
              <td align="left">A Trade Manifest <bcp14>MUST</bcp14> bind goods or service description, price, currency, acceptance-criteria hash, cancel condition, and expiry.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-2</td>
              <td align="left">A spend bound to a manifest <bcp14>MUST</bcp14> be denied if the requested amount or currency differs from the manifest. Amount and currency are compared as the exact octets of their text strings: no case folding, no Unicode normalisation, no numeric reinterpretation.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-3</td>
              <td align="left">If delivery bytes do not hash to the acceptance-criteria hash, the implementation <bcp14>MUST</bcp14> be able to produce a Dispute Evidence Bundle containing the manifest, the spend receipt, and the delivery hash.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-4</td>
              <td align="left">The Dispute Evidence Bundle <bcp14>MUST NOT</bcp14> be described as an arbitral award or escrow release.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-7</td>
              <td align="left">
                <tt>manifestHash</tt> <bcp14>MUST</bcp14> be the SHA-256 of the signed Trade Manifest COSE bytes and <bcp14>MUST NOT</bcp14> include the issuer public key encoding.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T8-5</td>
              <td align="left">Manifests <bcp14>SHOULD</bcp14> reference an AP2 mandate hash when one exists.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T8-6</td>
              <td align="left">Parties <bcp14>MAY</bcp14> add an optional escrow actor as a third-party role interface; an implementation of this specification <bcp14>MUST NOT</bcp14> take custody (<tt>MUST-T8-custody</tt>).</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-custody</td>
              <td align="left">Implementations of this specification <bcp14>MUST NOT</bcp14> take custody of funds or operate escrow.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-8</td>
              <td align="left">If a payee countersignature is present, a verifier <bcp14>MUST</bcp14> reject it when the signature fails, when <tt>kid</tt> or content type does not match the configured payee key, or when the <tt>receiptCose</tt> value (label -70401) is not the issuer COSE_Sign1 bytes.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T8-9</td>
              <td align="left">A verifier presented with a Trade Manifest <bcp14>MUST</bcp14> compare the amount, currency and settlement time of every receipt that names it, aborted ones included, against the manifest amount, currency and expiry - amount and currency on the exact-octet terms of <tt>MUST-T8-2</tt>, time on the boundary of <tt>MUST-T3-3</tt>, and, where the manifest names a <tt>payee</tt>, the receipt payee on the same exact-octet terms - and <bcp14>MUST</bcp14> report a receipt that departs from them. Where a usable issuer key is pinned (a pinned issuer root at least one of whose keys the verifier can decode), the comparison is made over the receipts that verify under it and a departure <bcp14>MUST</bcp14> fail the audit. Where no usable issuer key is pinned, the departure <bcp14>MUST</bcp14> still be reported and <bcp14>MUST NOT</bcp14> by itself fail the audit. Receipts that do not name the manifest are not measured against it. A Trade Manifest that a stated publisher pin refuses is not terms for this purpose: where the verifier reports <tt>manifest-key-mismatch</tt>, it <bcp14>MUST NOT</bcp14> read a charge out of that document's body, neither this comparison nor the acceptance-hash comparison of <xref target="countersign"/>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T8-10</td>
              <td align="left">A payee <bcp14>MAY</bcp14> attach a detached COSE_Sign1 countersignature over the issuer receipt bytes. Absence <bcp14>MUST NOT</bcp14> invalidate the issuer receipt.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T8-11</td>
              <td align="left">An attributable countersignature <bcp14>MAY</bcp14> carry <tt>deliveredHash</tt>. When present and the verifier holds the Trade Manifest, the verifier <bcp14>MUST</bcp14> compare it against <tt>acceptanceCriteriaHash</tt> as exact octets and <bcp14>MUST</bcp14> report a mismatch as a failing finding (<tt>delivery-mismatch</tt>). A <tt>deliveredHash</tt> on an unattributable countersignature <bcp14>MUST</bcp14> be discarded with it.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="escrow-role">
        <name>Optional escrow role</name>
        <t>Parties <bcp14>MAY</bcp14> name an escrow actor in a Trade Manifest as a
third-party role that holds funds under rules outside this protocol
(<tt>MAY-T8-6</tt>). Implementations of this specification <bcp14>MUST NOT</bcp14> take
custody or operate escrow (<tt>MUST-T8-custody</tt>).</t>
      </section>
      <section anchor="t9-personally-identifiable-information-pii-leakage-into-the-transparency-log">
        <name>T9: Personally identifiable information (PII) leakage into the transparency log</name>
        <t>A public receipt or transparency statement carries names, addresses, or full
amounts that should stay private. Log-facing encodings offer redaction.
See also <xref target="privacy"/>. Narrative: <xref target="CEDULON-THREATS"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T9-1</td>
              <td align="left">A transparency encoding <bcp14>MUST</bcp14> support omitting or hashing payer/payee identifiers and <bcp14>MUST</bcp14> support amount redaction or range/bucket encoding.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T9-2</td>
              <td align="left">Implementations <bcp14>MUST NOT</bcp14> write raw government-ID, payment-instrument PAN, or street address fields into a public transparency statement.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T9-3</td>
              <td align="left">Default public anchors <bcp14>SHOULD</bcp14> publish <tt>policyHash</tt>, <tt>manifestHash</tt>, <tt>receiptHash</tt>, and timestamp rather than full claim sets.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MAY</bcp14>-T9-4</td>
              <td align="left">A private auditor <bcp14>MAY</bcp14> receive an unredacted receipt out of band.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T9-5</td>
              <td align="left">A checkpoint discloses a per-currency window total, which the receipt-field rules above do not cover. Withholding it is governed by <bcp14>MUST</bcp14>-T11-12 and <bcp14>MUST</bcp14>-T11-13: null in the signed payload, and no other form of redaction honoured.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t10-secret-spend-via-rail-bypass">
        <name>T10: Secret spend via rail bypass</name>
        <t>An operator, leaked credential, or a second binary can settle on the rail
and omit the Receipt Issuer. Completeness reconciles the extract to the receipts.
See <xref target="reconciliation"/>. Narrative: <xref target="CEDULON-THREATS"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-1</td>
              <td align="left">A verifier <bcp14>MUST</bcp14> match each extract settlement to a settled receipt on <tt>ref</tt> AND <tt>amount</tt> AND <tt>currency</tt>. An audit presented with no extract, no receipts and no checkpoints reports no completeness finding. It is not thereby unconditional, and the warnings for the roots it was not given still apply.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-2</td>
              <td align="left">A settlement with no matching receipt <bcp14>MUST</bcp14> be reported as a completeness failure identified by that settlement <tt>ref</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-3</td>
              <td align="left">A settled Spend Receipt whose <tt>x402PaymentRef</tt> is not on the extract <bcp14>MUST</bcp14> be reported as a completeness failure.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-4</td>
              <td align="left">An audit that has any fail-severity completeness finding <bcp14>MUST</bcp14> fail.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>SHOULD</bcp14>-T10-5</td>
              <td align="left">Hosts <bcp14>SHOULD</bcp14> still apply T5 (no ungated rail in the model process). Completeness does not replace prevention.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-6</td>
              <td align="left">A <tt>ref</tt> that appears more than once among settled receipts or among extract rows <bcp14>MUST</bcp14> be reported as <tt>duplicate-ref</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-7</td>
              <td align="left">A verifier <bcp14>MUST</bcp14> obtain the extract from the rail or from a rail signature. With no pinned rail key the extract <bcp14>MUST</bcp14> be reported as <tt>unauthenticated-extract</tt>, whatever it carries, and the completeness guarantee is conditional. With a pinned key, see <bcp14>MUST</bcp14>-T10-8: the extract <bcp14>MUST</bcp14> fail closed rather than warn.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-8</td>
              <td align="left">A verifier <bcp14>MUST</bcp14> obtain the rail public key out of band and <bcp14>MUST</bcp14> verify the extract signature against that key. A key the extract carries <bcp14>MUST NOT</bcp14> be treated as the rail's identity and <bcp14>MUST NOT</bcp14> stand in for a key the verifier did not obtain. Without such a key the guarantee is conditional and the condition is reported as <tt>unauthenticated-extract</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-9</td>
              <td align="left">Keys <bcp14>MUST</bcp14> be compared by SubjectPublicKeyInfo DER encoding rather than by any text encoding. A pinned key that cannot be decoded <bcp14>MUST</bcp14> be reported as <tt>trust-key-unreadable</tt>, not as a key mismatch.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-10</td>
              <td align="left">Every settlement record whose <tt>timestampMs</tt> falls outside the extract's declared window <bcp14>MUST</bcp14> be reported as <tt>extract-scope-mismatch</tt>, identified by that record's <tt>ref</tt>. This check <bcp14>MUST</bcp14> run whether or not a key is pinned.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-11</td>
              <td align="left">When the verifier states an expected account, rail, or window, an extract that does not cover it <bcp14>MUST</bcp14> fail closed as <tt>extract-scope-mismatch</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-12</td>
              <td align="left">When an extract is supplied, the records it carries are the subject of reconciliation. A settlement list from another source <bcp14>MUST NOT</bcp14> be substituted; a disagreeing list <bcp14>MUST</bcp14> be reported as <tt>extract-settlement-mismatch</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-13</td>
              <td align="left">A <tt>ref</tt> reported as <tt>duplicate-ref</tt> <bcp14>MUST</bcp14> still be reconciled by aggregate amount per currency, and a shortfall <bcp14>MUST</bcp14> state the unaccounted amount. An unparseable amount <bcp14>MUST</bcp14> be reported as <tt>malformed-amount</tt> without aborting the audit.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-14</td>
              <td align="left">An implementation <bcp14>MUST</bcp14> surface the guarantee and any warnings in any human-readable audit report it produces, not only in a returned structure.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-15</td>
              <td align="left">A verifier that supplies a rail pin but has not stated the period under audit <bcp14>MUST</bcp14> emit <tt>unstated-audit-window</tt> and <bcp14>MUST</bcp14> treat the guarantee as conditional; with no rail pin at all the condition reported is <tt>unauthenticated-extract</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-16</td>
              <td align="left">When an extract is supplied, a receipt whose <tt>ref</tt> appears on it is reconciled against it regardless of its own <tt>timestampMs</tt>; the window sieve applies only to receipts the extract does not name, and such a receipt outside the window <bcp14>MUST NOT</bcp14> be reported as a completeness failure against that extract.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-17</td>
              <td align="left">An unmatched settled receipt within the declared <tt>clockSkewMs</tt> of <tt>windowEndMs</tt>, and an unmatched settlement record within it of <tt>windowStartMs</tt>, <bcp14>MUST</bcp14> be reported as <tt>boundary-deferred</tt>, a warning, rather than as a completeness failure. A closing-edge deferral resolves against the following window's extract and hardens into the completeness finding when that extract is presented and does not name the <tt>ref</tt>; an opening-edge deferral resolves only against a receipt in the presented bag that names its <tt>ref</tt>, and a following extract does not harden it. Absent a declared <tt>clockSkewMs</tt>, the profile default of 300000 milliseconds applies.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-18</td>
              <td align="left">A verifier that supplies a rail pin but has not stated the account or the rail under audit <bcp14>MUST</bcp14> emit <tt>unstated-audit-scope</tt> and <bcp14>MUST</bcp14> treat the guarantee as conditional; with no rail pin at all the condition reported is <tt>unauthenticated-extract</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-19</td>
              <td align="left">A report <bcp14>MUST</bcp14> name the account, rail and window the extract declared, in the printed report, in the finding object it returns, and in every other structure the implementation returns for that audit, a tool result or an export included. Where no extract was presented there is no declared population, and the structure names none.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T10-20</td>
              <td align="left">Where a stated rail pin refuses the presented extract and the verifier reports <tt>extract-key-mismatch</tt>, the verifier <bcp14>MUST NOT</bcp14> read a settlement finding out of that document's body: not a mismatch against a receipt, not money reported as unaccounted for, and not a receipt left unmatched by rows the refused document omits. The verifier <bcp14>MUST</bcp14> report <tt>settlement-comparison-skipped</tt> in the same result. A pinned key the verifier cannot decode is <tt>trust-key-unreadable</tt> and is not a refusal of the document, so it does not reach this requirement.</td>
            </tr>
          </tbody>
        </table>
        <t>In <bcp14>MUST</bcp14>-T10-4, a completeness finding that makes the audit fail is
distinct from a warning that only makes the guarantee conditional.
The verification algorithm states that distinction by behaviour
(<xref target="reconciliation"/>).</t>
      </section>
      <section anchor="t11-checkpoint-suppression-or-rollback">
        <name>T11: Checkpoint suppression or rollback</name>
        <t>Checkpoint suppression and rollback, and the witness that detects
them, are addressed in <xref target="CEDULON-CHECKPOINT"/>. The two requirements
below are defined here because the core label set and the
reconciliation depend on them.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-1</td>
              <td align="left">An epoch checkpoint <bcp14>MUST</bcp14> be COSE-signed and <bcp14>MUST</bcp14> bind epoch number, time window, receipt count, chain-head hash, per-currency totals, and the previous checkpoint hash.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T11-12</td>
              <td align="left">Withheld checkpoint totals <bcp14>MUST</bcp14> be encoded as null in the signed payload. A verifier <bcp14>MUST</bcp14> report that the totals comparison was skipped and <bcp14>MUST</bcp14> treat the guarantee as conditional; <tt>receiptCount</tt> and <tt>chainHeadHash</tt> <bcp14>MUST</bcp14> still be checked.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="t12-settlement-without-a-recorded-receipt">
        <name>T12: Settlement without a recorded receipt</name>
        <t>The threats above are about a counterparty, a rail or an attacker.
This one is about the issuer's own implementation, and it produces
exactly the condition the rest of this document exists to make
detectable. Ordering, recovery and observability: <xref target="CEDULON-THREATS"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">ID</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T12-1</td>
              <td align="left">An issuer <bcp14>MUST NOT</bcp14> complete a settlement whose receipt it cannot record durably. The ability to record <bcp14>MUST</bcp14> be established before value moves, not after.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T12-2</td>
              <td align="left">Where a settlement has been made and its record cannot be completed, the issuer <bcp14>MUST</bcp14> undo the settlement in every place it still controls: in memory, on the rail ledger it controls, and in any later write it has not yet issued. A refused payment <bcp14>MUST NOT</bcp14> consume the nonce or the payment allowance it never used.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T12-3</td>
              <td align="left">Two issuers <bcp14>MUST NOT</bcp14> share one durable state. An implementation that permits it <bcp14>MUST</bcp14> fail loudly rather than let one writer overwrite the other's receipt, and the failure <bcp14>MUST</bcp14> name what an operator can act on.</td>
            </tr>
            <tr>
              <td align="left">
                <bcp14>MUST</bcp14>-T12-4</td>
              <td align="left">Where a settlement has entered a rail the issuer does not control, and the local record cannot be completed, the outcome is indeterminate. The issuer <bcp14>MUST NOT</bcp14> treat the payment as reversed, and <bcp14>MUST NOT</bcp14> return the authority to spend, unless it holds authenticated evidence that the rail did not complete the settlement or that a reversing entry completed.</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document requests the registration of four media types in the
"Media Types" registry <xref target="RFC6838"/>, in the standards tree, each
carrying the <tt>+cbor</tt> structured syntax suffix that <xref target="RFC8949"/>
registers. Each names one of the COSE_Sign1 objects this document
defines and is carried as the COSE <tt>content type</tt> header parameter
(label 3) of that object (<xref target="cose-profile"/>). The value is a normative
check inside a protected header (<tt>MUST-T4-8</tt>, <tt>MUST-T6-5</tt>), which is
why the names cannot stay unregistered while that check stands.
Registration in the standards tree requires IETF approval; until
then, an implementation outside a closed deployment should treat
these names as placeholders that a registration may change. The
provisional registration procedure of <xref target="RFC6838"/> Section 5.2.1 is
available to an Internet-Draft, and a provisional entry, if one is
made, is superseded by the registration this section requests.</t>
      <t>The claim labels this document assigns inside the CBOR claim sets,
<tt>-70001</tt> through <tt>-70402</tt> (<xref target="receipt-labels"/>, <xref target="countersign"/>), lie
in the Private Use range of the "CBOR Web Token (CWT) Claims"
registry <xref target="RFC8392"/>, integer values less than -65536, and this
document requests no assignment for them. A later Standards Track
revision that moves them into the assigned range will request new
labels then, without reinterpreting these.</t>
      <t>No other IANA action is requested.</t>
      <t>The four templates follow. The checkpoint and inclusion types are in <xref target="CEDULON-CHECKPOINT"/>. Fields that are the same for every one
are stated once, in the first, and the others say so.</t>
      <section anchor="iana-receipt">
        <name>application/cedulon-receipt+cbor</name>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>cedulon-receipt+cbor</t>
          </dd>
          <dt>Required parameters:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Optional parameters:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary. A COSE_Sign1 structure <xref target="RFC9052"/> in deterministic CBOR
<xref target="RFC8949"/>, untagged, as profiled in <xref target="spend-receipt"/> and
<xref target="cose-profile"/>.</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>See <xref target="security"/> of this document. The object is signed; its
evidentiary weight depends on the verifier holding the issuer key
out of band (<xref target="issuer-root"/>), never on a key the object carries.</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>The claim set is a CBOR map with the labels and types stated in
<xref target="receipt-labels"/>, encoded per <xref target="RFC8949"/> Section 4.2.1. A
decoder refuses a duplicate key (<tt>MUST-T4-18</tt>), an input beyond its
stated bounds (<tt>MUST-T4-19</tt>), and a non-empty unprotected header
(<tt>MUST-T4-21</tt>) by name rather than accepting it.</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>This document, <xref target="spend-receipt"/>.</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>Agent payment adapters, policy decision points, auditors, and
dispute-evidence tooling that produce or verify Cedulon Spend
Receipts.</t>
          </dd>
          <dt>Fragment identifier considerations:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Additional information:</dt>
          <dd>
            <t>Deprecated alias names for this type: N/A. Magic number(s): N/A.
File extension(s): N/A. Macintosh file type code(s): N/A.</t>
          </dd>
          <dt>Person and email address to contact for further information:</dt>
          <dd>
            <t>Emek Can Dogru, e.dogru@cedulon.com</t>
          </dd>
          <dt>Intended usage:</dt>
          <dd>
            <t>COMMON</t>
          </dd>
          <dt>Restrictions on usage:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Author:</dt>
          <dd>
            <t>Emek Can Dogru</t>
          </dd>
          <dt>Change controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
        </dl>
      </section>
      <section anchor="iana-manifest">
        <name>application/cedulon-manifest+cbor</name>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>cedulon-manifest+cbor</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary. A COSE_Sign1 structure in deterministic CBOR, untagged, as
profiled in <xref target="trade-manifest"/> and <xref target="cose-profile"/>.</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>See <xref target="security"/> of this document. A manifest is an offer signed
before payment; it binds terms, not delivery, and is verified only
against a publisher key held out of band (<xref target="manifest-root"/>).</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor; the labels are those of
the manifest table in <xref target="receipt-labels"/>, and the <tt>payee</tt> label is
encoded only when present.</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>This document, <xref target="trade-manifest"/>.</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>Payees and marketplaces that publish signed offers to paying
agents, and verifiers reconciling receipts against those offers.</t>
          </dd>
          <dt>Required parameters, optional parameters, fragment identifier considerations, additional information, contact, intended usage, restrictions on usage, author, change controller:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor.</t>
          </dd>
        </dl>
      </section>
      <section anchor="iana-decision">
        <name>application/cedulon-decision+cbor</name>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>cedulon-decision+cbor</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary. A COSE_Sign1 structure in deterministic CBOR, untagged, as
profiled in <xref target="decision-token"/> and <xref target="cose-profile"/>.</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>See <xref target="security"/> of this document. A Decision Token is consumed at
the gate by the party that issued it (<xref target="decision-root"/>); it is not
an input to the retrospective audit (<xref target="verification"/>), and a
verifier that treated it as one would be claiming a check the audit
does not make.</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor; the labels are those of
the Decision Token table in <xref target="receipt-labels"/>, all five always
present.</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>This document, <xref target="decision-token"/>.</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>Policy decision points and the payment adapters that consume their
allow decisions.</t>
          </dd>
          <dt>Required parameters, optional parameters, fragment identifier considerations, additional information, contact, intended usage, restrictions on usage, author, change controller:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor.</t>
          </dd>
        </dl>
      </section>
      <section anchor="iana-countersign">
        <name>application/cedulon-countersign+cbor</name>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>cedulon-countersign+cbor</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary. A detached COSE_Sign1 structure in deterministic CBOR,
untagged, as profiled in <xref target="countersign"/>, whose payload carries the
exact issuer receipt octets it countersigns.</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>See <xref target="security"/> of this document. A countersignature that does
not verify under a payee key held out of band carries no
evidentiary weight and cannot move the verdict on the receipt it
travels beside (<xref target="countersign"/>, <xref target="payee-root"/>).</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor; the optional
<tt>deliveredHash</tt> claim is a 32-octet byte string and is read as
absent when it is not.</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>This document, <xref target="countersign"/>.</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>Payees that acknowledge a receipt and, optionally, bind the bytes
they delivered.</t>
          </dd>
          <dt>Required parameters, optional parameters, fragment identifier considerations, additional information, contact, intended usage, restrictions on usage, author, change controller:</dt>
          <dd>
            <t>As for application/cedulon-receipt+cbor.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="impl-status">
      <name>Implementation Status</name>
      <t>This section is to be removed before publishing as an RFC.</t>
      <t>RFC 7942 <xref target="RFC7942"/> note. Detailed status is kept in the companion
repository, where it can be corrected without a revision of this
document.</t>
      <dl>
        <dt>Implementation:</dt>
        <dd>
          <t>A companion implementation with a runnable verification suite at
<eref target="https://github.com/dogrucanemek-alt/cedulon">https://github.com/dogrucanemek-alt/cedulon</eref>. The code is a profile
of this document, not a second specification. This -01 is not an
IETF working-group item.</t>
        </dd>
        <dt>Maturity:</dt>
        <dd>
          <t>Research code by a single implementer. Three readers have run the
code on their own machines against a pinned commit and reported
figures matching the author's: two from a clean clone of the whole
suite, one re-running the published reproduction. That is
byte-stability across environments and not an independent
implementation; the same code agreeing with itself on three machines
rules out a local accident and nothing more. One reader reports an
independent implementation of the Signed Statement identity, kept
deliberately separate from this codebase; no independent
implementation of the reconciliation algorithm is known to the
author. One reader rebuilt the regenerated receipt vector of
Appendix A from this text alone, in an independent toolchain, and
obtained the published 307 octets byte for byte, SHA-256
<tt>0f1fe8859faf25de906b08142674f1270656d8ea7bfc00853c2fc6e9d3f5a10b</tt>;
that reader had read parts of the public repository and says so, so
it is not a clean-room result.</t>
        </dd>
        <dt>Coverage:</dt>
        <dd>
          <t>The receipt, checkpoint, extract, reconciliation and verification
algorithm are implemented, including the transparency witness input,
the withheld and not-anchored conditions, and signed totals
redaction. Every requirement added in the posted series <xref target="CEDULON-DT"/> is covered by a
red-then-green case written before the text, with one exception: the
reversal branch of <tt>MUST-T12-4</tt> is specified and not executed,
because this tree carries no authenticated external-rail path.
<tt>MUST-T6-7</tt>, the one requirement this document adds beyond that
series, is likewise specified and not executed: no case in the suite
compares a settlement's <tt>timestampMs</tt> to a Decision Token's
<tt>expiryMs</tt>. The escrow role, reversal, refund and partial settlement
are not implemented. The witness used in the suite is the in-process log
that <tt>MAY-T11-6</tt> permits, a Merkle tree that issues inclusion
proofs; tier 2 of <xref target="CEDULON-CHECKPOINT"/> (The transparency witness) is exercised against it red-then-green,
and the implementation has not been run against a deployed
Transparency Service.</t>
        </dd>
        <dt/>
        <dd>
          <t>Continuous integration runs the pre-release suite - the post-release
registry checks are a separate job, deliberately excluded, so "the
suite" names exactly what was measured - on three hosted runners,
each as a non-root user: Linux, macOS and Windows. At the commit
this revision describes, all three assert every case, 594 of 594,
with none skipped. A local Windows run without symbolic-link
privilege skips four POSIX-mode cases with a stated reason rather
than passing silently.</t>
        </dd>
        <dt>Licensing:</dt>
        <dd>
          <t>Apache-2.0.</t>
        </dd>
        <dt>Contact:</dt>
        <dd>
          <t>The author of this document.</t>
        </dd>
        <dt>Experience:</dt>
        <dd>
          <t>The posted series <xref target="CEDULON-DT"/> was driven by what readers found
rather than by a plan. T12 came from none of them: it was found while writing an adversarial
task, in the ordering the implementation itself used.</t>
        </dd>
      </dl>
      <t>The manifest root (<tt>MUST-T4-15</tt>) and the gate's refusal to settle
against a manifest it cannot attribute (<tt>MUST-T4-16</tt>)
were published as 0.4.0 rather than as a patch: the gate had been
answering 200 to an
unattributable manifest and writing that manifest's hash into the
receipt, and refusing it is a change in behaviour that a version number
ought to announce.</t>
      <t>Note on distribution: everything the posted series <xref target="CEDULON-DT"/> added is in the
published packages at version 0.9.0, and the workspace publishes
0.13.1 as this revision is written. A reader can check a claim against
an installed package rather than against a working tree.</t>
      <t>A second implementation is named here. Same author as this document;
not an independent implementation.</t>
      <dl>
        <dt>Organization:</dt>
        <dd>
          <t>VERAX TEKNOLOJI LIMITED SIRKETI.</t>
        </dd>
        <dt>Implementation:</dt>
        <dd>
          <t>Verax. An MCP body that consumes the published <tt>@cedulon/*</tt>
libraries to write signed decision records, effect extracts and
checkpoints. The code is a profile of this document, not a second
specification.</t>
        </dd>
        <dt>Description:</dt>
        <dd>
          <t>The body admits six tools through its own gate: memory.get,
memory.put, message.read, message.send, spend and audit.explain.
An admitted call leaves a signed decision record; a retry under the
same reference is answered from that record rather than writing a
second one, and a denial the body cannot append is refused to the
caller instead of being recorded. An allowed call is expected to
leave an effect row, and the audit path reconciles the rows against
the records; an allow whose effect cannot be found is reported as
such rather than assumed to have run.</t>
        </dd>
        <dt>Level of maturity:</dt>
        <dd>
          <t>Research and pilot. Witnesses are self or same-org. There is no
third-party witness and no outside audit. One live spend row has
been reconciled against a card statement: 10.00 TRY on 6 September
2026, a charge made by hand after the rail deferred it and an
operator approved it. That statement carried dates without times
and the rule named no descriptor, so the row was matched on the
wide date window by amount, currency and class; a settled rather
than a pending row is unproven, as is a statement holding several
rows of one amount. A tenant boundary has not been exercised with
two live customers.</t>
        </dd>
        <dt>Coverage:</dt>
        <dd>
          <t><tt>@cedulon/cose</tt> and <tt>@cedulon/core</tt> implement the signed decision
record (COSE Sign1 and the Decision Record).
<tt>@cedulon/effect-extract</tt> implements the effect extract.
<tt>@cedulon/checkpoint</tt> implements the checkpoint. <tt>@cedulon/audit</tt>
is called when a window is explained. <tt>@cedulon/x402-adapter</tt> is
present as a library; there is no live x402 rail, and the body
does not move money.</t>
        </dd>
        <dt>Version compatibility:</dt>
        <dd>
          <t>Verax 0.2.2 depends on <tt>@cedulon/*</tt> 0.13.1. Those published
packages implement the posted draft-dogru-cedulon-09 profile and,
from 0.13.0, the posted draft-dogru-cedulon-decision-profile-03.
0.13.1 changes no behaviour from 0.13.0. This document is the
split form of that numbered series.</t>
        </dd>
        <dt>Licensing:</dt>
        <dd>
          <t>Apache-2.0.</t>
        </dd>
        <dt>Implementation experience:</dt>
        <dd>
          <t>Used by its author to record tool calls and to reconcile one live
card charge. Gaps that remain - a third-party witness, two live
customers on one body, a live payment rail - are named in
STATUS.md in the Verax repository, not claimed here.</t>
        </dd>
        <dt>Contact:</dt>
        <dd>
          <t>The author of this document.</t>
        </dd>
        <dt>URL:</dt>
        <dd>
          <t><eref target="https://github.com/verax-ai/verax">https://github.com/verax-ai/verax</eref>. The packages <tt>@verax-ai/body</tt>,
<tt>@verax-ai/proxy</tt> and <tt>@verax-ai/inventory</tt> are on npm at 0.2.2
(<eref target="https://www.npmjs.com/package/@verax-ai/body">https://www.npmjs.com/package/@verax-ai/body</eref>,
<eref target="https://www.npmjs.com/package/@verax-ai/proxy">https://www.npmjs.com/package/@verax-ai/proxy</eref>,
<eref target="https://www.npmjs.com/package/@verax-ai/inventory">https://www.npmjs.com/package/@verax-ai/inventory</eref>). The MCP
Registry name is <tt>io.github.verax-ai/verax</tt>. The archived release
is <eref target="https://doi.org/10.5281/zenodo.22811593">https://doi.org/10.5281/zenodo.22811593</eref>.</t>
        </dd>
      </dl>
    </section>
    <section anchor="evolution">
      <name>Evolution and Future Work (Informative)</name>
      <t>This document is an individual Internet-Draft. If the work is taken
up, the intended track is a Standards Track profile of COSE <xref target="RFC9052"/>
and CWT <xref target="RFC8392"/> for agent-spend receipts. Two extensions are
sketched and not specified here: re-attestation of receipts when a
signature algorithm is retired <xref target="REATTEST"/>, and reconciliation
evaluated as settlements arrive rather than per epoch <xref target="STREAMING"/>.
The same completeness check could apply to other consumed resources,
such as compute or data; this document does not specify those
profiles.</t>
    </section>
    <section anchor="adjacent">
      <name>Informative Notes on Adjacent Protocols</name>
      <t>x402 <xref target="X402"/> uses HTTP 402 <xref target="RFC9110"/> to negotiate stablecoin
payment. AP2 <xref target="AP2"/> uses signed mandates as verifiable credentials.
Cedulon does not replace either protocol. Profiles built on HTTP Message Signatures
<xref target="RFC9421"/> authenticate bots; they are not a spend receipt.
The drafts below are complementary, and none of them defines
rail-extract completeness. draft-bates-atp <xref target="BATES-ATP"/> covers
tamper-evident causal lineage as a signed directed acyclic graph.
draft-vauban-x402-stark-receipts <xref target="VAUBAN"/> specifies x402
receipt-format variants that a Cedulon Spend Receipt <bcp14>MAY</bcp14> carry as a
rail proof. draft-schrock-ep-outcome-binding <xref target="SCHROCK"/> compares
authorized action bytes to independently observed effects.
draft-marques-asqav-compliance-receipts <xref target="MARQUES"/> profiles
access-control action receipts (the broader Acta family includes
<xref target="ACTA"/>). draft-hopley-x402-compliance-receipt <xref target="HOPLEY"/> records an
admission-time compliance decision.
draft-abak-agent-control-delivery-evidence <xref target="ABAK"/> states evidence
requirements for a governance control - stop, suspend, revoke -
travelling toward the component expected to constrain a runtime, and
keeps emission, receiver-side observation, enforcement outcome and
observed control effect as separate results. Its object moves the
other way from this one: Cedulon reconciles a spend that already
happened against what the rail reported, and evidences neither the
delivery of a control instruction nor its enforcement. A denied spend
leaves no portable artifact here at all - a Decision Token encodes an
allow (<xref target="decision-token"/>) - so what a Cedulon audit says about a
refusal it says through the settlement that did not appear on the
extract, which is an effect observation over a declared population and
not an acknowledgement from an enforcement point. Its bounded-population
rule and this document's <tt>MUST-T10-18</tt> and <tt>MUST-T10-19</tt> are the same
kind of bound on two different objects.</t>
      <t>draft-kuehlewind-audit-architecture <xref target="KUEHLEWIND-AUDIT"/>, the
architecture a Cedulon audit is intended to be read within, is
described in <xref target="intro"/>; it also covers propagation of audit context
across domains and optional attestation under the Remote ATtestation
procedureS (RATS) architecture. draft-birkholz-verifiable-agent-conversations
<xref target="BIRKHOLZ-VAC"/> defines a COSE-signed record of an agent's
conversation - session metadata, messages, tool invocations,
reasoning traces - for the same Transparency Services. A Spend
Receipt is the kind of artifact such a record would name for a
payment step; neither document profiles the other, and the
conversation record does not define rail-extract completeness.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="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>
        <reference anchor="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
        <reference anchor="RFC7493">
          <front>
            <title>The I-JSON Message Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="March" year="2015"/>
            <abstract>
              <t>I-JSON (short for "Internet JSON") is a restricted profile of JSON designed to maximize interoperability and increase confidence that software can process it successfully with predictable results.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7493"/>
          <seriesInfo name="DOI" value="10.17487/RFC7493"/>
        </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="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="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC8410">
          <front>
            <title>Algorithm Identifiers for Ed25519, Ed448, X25519, and X448 for Use in the Internet X.509 Public Key Infrastructure</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies algorithm identifiers and ASN.1 encoding formats for elliptic curve constructs using the curve25519 and curve448 curves. The signature algorithms covered are Ed25519 and Ed448. The key agreement algorithms covered are X25519 and X448. The encoding for public key, private key, and Edwards-curve Digital Signature Algorithm (EdDSA) structures is provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8410"/>
          <seriesInfo name="DOI" value="10.17487/RFC8410"/>
        </reference>
        <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="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="RFC9864">
          <front>
            <title>Fully-Specified Algorithms for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="October" year="2025"/>
            <abstract>
              <t>This specification refers to cryptographic algorithm identifiers that fully specify the cryptographic operations to be performed, including any curve, key derivation function (KDF), and hash functions, as being "fully specified". It refers to cryptographic algorithm identifiers that require additional information beyond the algorithm identifier to determine the cryptographic operations to be performed as being "polymorphic". This specification creates fully-specified algorithm identifiers for registered JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) polymorphic algorithm identifiers, enabling applications to use only fully-specified algorithm identifiers. It deprecates those polymorphic algorithm identifiers.</t>
              <t>This specification updates RFCs 7518, 8037, and 9053. It deprecates polymorphic algorithms defined by RFCs 8037 and 9053 and provides fully-specified replacements for them. It adds to the instructions to designated experts in RFCs 7518 and 9053.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9864"/>
          <seriesInfo name="DOI" value="10.17487/RFC9864"/>
        </reference>
        <reference anchor="RFC9942">
          <front>
            <title>CBOR Object Signing and Encryption (COSE) Receipts</title>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="A. Delignat-Lavaud" initials="A." surname="Delignat-Lavaud"/>
            <author fullname="C. Fournet" initials="C." surname="Fournet"/>
            <date month="June" year="2026"/>
            <abstract>
              <t>CBOR Object Signing and Encryption (COSE) Receipts prove properties of a Verifiable Data Structure (VDS) to a verifier. VDSs and associated Proof Types enable security properties, such as minimal disclosure, transparency, and non-equivocation. Transparency helps maintain trust over time and has been applied to certificates, end-to-end encrypted messaging systems, and supply chain security. This specification enables concise transparency-oriented systems by building on Concise Binary Object Representation (CBOR) and COSE. The extensibility of the approach is demonstrated by providing CBOR encodings for Merkle inclusion and consistency proofs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9942"/>
          <seriesInfo name="DOI" value="10.17487/RFC9942"/>
        </reference>
        <reference anchor="RFC9943">
          <front>
            <title>An Architecture for Trustworthy and Transparent Digital Supply Chains</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="A. Delignat-Lavaud" initials="A." surname="Delignat-Lavaud"/>
            <author fullname="C. Fournet" initials="C." surname="Fournet"/>
            <author fullname="Y. Deshpande" initials="Y." surname="Deshpande"/>
            <author fullname="S. Lasker" initials="S." surname="Lasker"/>
            <date month="June" year="2026"/>
            <abstract>
              <t>Traceability in supply chains is a growing security concern. While Verifiable Data Structures (VDSs) have addressed specific issues, such as equivocation over digital certificates, they lack a universal architecture for all supply chains. This document defines such an architecture for single-issuer signed statement transparency. It ensures extensibility and interoperability between different transparency services as well as compliance with various auditing procedures and regulatory requirements.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9943"/>
          <seriesInfo name="DOI" value="10.17487/RFC9943"/>
        </reference>
        <reference anchor="CEDULON-CHECKPOINT" target="https://github.com/dogrucanemek-alt/cedulon/blob/master/spec/draft-dogru-cedulon-checkpoint-00.md">
          <front>
            <title>Cedulon Checkpoints: Epoch Witnesses and Transparency</title>
            <author initials="E. C." surname="Dogru" fullname="Emek Can Dogru">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC9421">
          <front>
            <title>HTTP Message Signatures</title>
            <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Sporny" initials="M." surname="Sporny"/>
            <date month="February" year="2024"/>
            <abstract>
              <t>This document describes a mechanism for creating, encoding, and verifying digital signatures or message authentication codes over components of an HTTP message. This mechanism supports use cases where the full HTTP message may not be known to the signer and where the message may be transformed (e.g., by intermediaries) before reaching the verifier. This document also describes a means for requesting that a signature be applied to a subsequent HTTP message in an ongoing HTTP exchange.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9421"/>
          <seriesInfo name="DOI" value="10.17487/RFC9421"/>
        </reference>
        <reference anchor="CEDULON-DT" target="https://datatracker.ietf.org/doc/draft-dogru-cedulon/">
          <front>
            <title>Cedulon: An Audit Layer for Agent-to-Agent Commerce</title>
            <author initials="E. C." surname="Dogru" fullname="Emek Can Dogru">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="CEDULON-THREATS" target="https://github.com/dogrucanemek-alt/cedulon/blob/master/spec/draft-dogru-cedulon-threats-00.md">
          <front>
            <title>Cedulon Threat Narratives</title>
            <author initials="E. C." surname="Dogru" fullname="Emek Can Dogru">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="KUEHLEWIND-AUDIT" target="https://datatracker.ietf.org/doc/draft-kuehlewind-audit-architecture/">
          <front>
            <title>An Architecture for Auditing AI Agent Delegation and Interactions</title>
            <author initials="M." surname="Kuehlewind" fullname="Mirja Kuehlewind">
              <organization/>
            </author>
            <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
              <organization/>
            </author>
            <date year="2026" month="May"/>
          </front>
        </reference>
        <reference anchor="BIRKHOLZ-VAC" target="https://datatracker.ietf.org/doc/draft-birkholz-verifiable-agent-conversations/">
          <front>
            <title>Verifiable Agent Conversation Records</title>
            <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
              <organization/>
            </author>
            <author initials="T." surname="Heldt" fullname="T. Heldt">
              <organization/>
            </author>
            <author initials="O." surname="Steele" fullname="Orie Steele">
              <organization/>
            </author>
            <date year="2026" month="August"/>
          </front>
        </reference>
        <reference anchor="BATES-ATP" target="https://datatracker.ietf.org/doc/html/draft-bates-atp">
          <front>
            <title>Agent Transaction Protocol (ATP)</title>
            <author initials="D." surname="Bates" fullname="David Asher Bates">
              <organization/>
            </author>
            <date year="2026" month="May"/>
          </front>
        </reference>
        <reference anchor="X402" target="https://www.x402.org/">
          <front>
            <title>x402: An Open Standard for Internet-Native Payments</title>
            <author>
              <organization>x402 Foundation</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="AP2" target="https://ap2-protocol.org/ap2/specification/">
          <front>
            <title>Agent Payments Protocol (AP2)</title>
            <author>
              <organization>Google Agentic Commerce</organization>
            </author>
            <date year="2025" month="September"/>
          </front>
        </reference>
        <reference anchor="GRIGG" target="https://iang.org/papers/triple_entry.html">
          <front>
            <title>Triple Entry Accounting</title>
            <author initials="I." surname="Grigg" fullname="Ian Grigg">
              <organization/>
            </author>
            <date year="2005"/>
          </front>
        </reference>
        <reference anchor="PACIOLI">
          <front>
            <title>Summa de arithmetica, geometria, proportioni et proportionalita</title>
            <author initials="L." surname="Pacioli" fullname="Luca Pacioli">
              <organization/>
            </author>
            <date year="1494"/>
          </front>
        </reference>
        <reference anchor="VAUBAN" target="https://datatracker.ietf.org/doc/draft-vauban-x402-stark-receipts/">
          <front>
            <title>x402 STARK Receipt Format Extension</title>
            <author>
              <organization>Vauban Research</organization>
            </author>
            <date year="2026" month="May"/>
          </front>
        </reference>
        <reference anchor="SCHROCK" target="https://datatracker.ietf.org/doc/draft-schrock-ep-outcome-binding/">
          <front>
            <title>Outcome Binding for Authorized Actions and Independently Observed Effects</title>
            <author initials="I." surname="Schrock" fullname="Iman Schrock">
              <organization/>
            </author>
            <date year="2026" month="July"/>
          </front>
        </reference>
        <reference anchor="MARQUES" target="https://datatracker.ietf.org/doc/draft-marques-asqav-compliance-receipts/">
          <front>
            <title>Compliance Profile of Signed Action Receipts for AI Agents</title>
            <author initials="J. A." surname="Gomes Marques" fullname="Joao Andre Gomes Marques">
              <organization/>
            </author>
            <date year="2026" month="July"/>
          </front>
        </reference>
        <reference anchor="ACTA" target="https://datatracker.ietf.org/doc/draft-farley-acta-signed-receipts/">
          <front>
            <title>Signed Decision Receipts for Machine-to-Machine Access Control</title>
            <author initials="T." surname="Farley" fullname="Tom Farley">
              <organization/>
            </author>
            <date year="2026" month="June"/>
          </front>
        </reference>
        <reference anchor="HOPLEY" target="https://datatracker.ietf.org/doc/draft-hopley-x402-compliance-receipt/">
          <front>
            <title>Categorical Compliance Screening Receipt Format for Agentic-Payment Flows</title>
            <author initials="C." surname="Hopley" fullname="Christopher Hopley">
              <organization/>
            </author>
            <date year="2026" month="May"/>
          </front>
        </reference>
        <reference anchor="ABAK" target="https://datatracker.ietf.org/doc/draft-abak-agent-control-delivery-evidence/">
          <front>
            <title>Evidence Requirements for Agent Control Delivery and Outcome Reconciliation</title>
            <author initials="A. T." surname="Abak" fullname="Ali Toygar Abak">
              <organization/>
            </author>
            <date year="2026" month="August"/>
          </front>
        </reference>
        <reference anchor="CPB" target="https://datatracker.ietf.org/doc/draft-mih-sokolov-scitt-payload-binding/">
          <front>
            <title>Canonical Payload Binding: A Signed Statement Construction Profile</title>
            <author initials="S." surname="Mih" fullname="Steven Mih">
              <organization/>
            </author>
            <author initials="A." surname="Sokolov" fullname="Anton Sokolov">
              <organization/>
            </author>
            <date year="2026" month="August"/>
          </front>
        </reference>
        <reference anchor="REATTEST" target="https://github.com/dogrucanemek-alt/cedulon/blob/e681e24d1b29912d8c190259c2ea9f4f9538c29d/spec/draft-dogru-cedulon-reattestation-00.md">
          <front>
            <title>Cedulon Re-Attestation: Carrying Spend Evidence Across Algorithm Retirement</title>
            <author initials="E. C." surname="Dogru" fullname="Emek Can Dogru">
              <organization/>
            </author>
            <date year="2026" month="August"/>
          </front>
        </reference>
        <reference anchor="STREAMING" target="https://github.com/dogrucanemek-alt/cedulon/blob/e681e24d1b29912d8c190259c2ea9f4f9538c29d/spec/draft-dogru-cedulon-streaming-00.md">
          <front>
            <title>Cedulon Streaming Reconciliation: Continuous Completeness for Agent Spend</title>
            <author initials="E. C." surname="Dogru" fullname="Emek Can Dogru">
              <organization/>
            </author>
            <date year="2026" month="August"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 2219?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Vernon Wharff showed that the object carrying the checkpoint guarantee
was neither profiled for registration nor read during verification,
and asked whether a recorded checkpoint absent from the chain deserves
its own identifier. Iman Schrock confirmed that finding independently
and drew its boundary.</t>
      <t>Iman Schrock and Pablo Etcheverry ran the implementation against a
pinned commit and reported defects that shaped this document. Iman
Schrock found the extract-binding defects and proposed their repair,
asked whether the profile should accept a pinned witness key, and
corrected this document's description of what its continuous
integration measures. He is also the author of <xref target="SCHROCK"/>, cited here
as adjacent work, and the reader whose independent implementation of
the Signed Statement identity is noted in <xref target="impl-status"/>; he asked for
it to be kept separate from any cross-implementation claim about
Cedulon, and that separation is his and is recorded here as he stated
it. Pablo Etcheverry found that a repeated reference hid the
unaccounted amount, ran the suite on a platform its author had not,
and found that nothing compared a settlement's clock to the clock of
the decision that authorized it.</t>
      <t>Nicholas Templeman ran the suite from a clean clone, corrected two
claims written about that run, and classified his own run as a
repetition of the author's checks rather than an independent
implementation. Walter Hawkins did not run it; he pressed for the run
to be stated precisely enough to be repeatable.</t>
      <t>Tiago Pinto ran the Appendix A vectors in an independent toolchain
before reading the text, confirmed the signatures, the SPKI-derived
<tt>kid</tt>, and deterministic re-encoding byte for byte, and listed the
places where an independent implementation could not be built from
the text. The witness tiers, the key-resolution rule, the extract
shape, issuer order, the boundary allowance, and the countersignature
and delivery bindings follow that list, and <xref target="presentation"/> answers a
later point of his. He consented to that run being recorded as the
first run of these vectors outside the companion codebase and not as
an independent implementation.</t>
      <t>Steven Mih and Anton Sokolov published the canonicalization vectors of
<xref target="CPB"/>; running them through this profile's <xref target="RFC8785"/> encoder put
the I-JSON precondition on the page as a rule.</t>
      <t>None of them reviewed this text, and any error in it is the author's.</t>
      <t>Field survey notes and the informative threat-model narrative in the
companion repository helped shape the requirement identifiers used
here. Those identifiers are defined in <xref target="security"/> and, for T11, in
<xref target="CEDULON-CHECKPOINT"/>.</t>
    </section>
    <section numbered="false" anchor="vectors">
      <name>Appendix A. Test Vectors</name>
      <t>These vectors use RFC 8032 Ed25519 secret scalar #1 (fixture only;
never a production key). Hex is lowercase.</t>
      <t>The vectors below <bcp14>MUST</bcp14> stand as the locked tests of this document:
an implementation matches them or it does not, and where an
implementation and a vector disagree, one of the two is wrong and this
document does not say in advance which.</t>
      <t>Receipt COSE_Sign1:</t>
      <t>Claims: payer=<tt>payer-1</tt>, payee=<tt>payee-1</tt>, amount=<tt>1</tt>,
currency=<tt>USD</tt>, policyHash=
<tt>fca4142da8ad241d24928227893894f4b5365efb746a4529fe9df0119d10da2c</tt>
(the SHA-256 of the UTF-8 octets of the ASCII string
<tt>cedulon/appendix-policy</tt>, standing in for a canonical policy
document; the field's input rule is in <xref target="hash-inputs"/>),
manifestHash=null,
noManifest=true, x402PaymentRef=null, timestampMs=1700000000000,
nonce=<tt>n100000000000000</tt>, prevReceiptHash=null, outcome=<tt>aborted</tt>.</t>
      <t>COSE_Sign1 hex (whitespace ignored):</t>
      <artwork><![CDATA[
845830a301320378206170706c69636174696f6e2f636564756c6f6e2d
726563656970742b63626f72044806e3fd8fda29bb60a058bbac3a0001
11706770617965722d313a000111716770617965652d313a0001117261
313a00011173635553443a000111747840666361343134326461386164
323431643234393238323237383933383934663462353336356566623734
366134353239666539646630313139643130646132633a00011175f63a
00011176f53a00011177f63a000111781b0000018bcfe568003a000111
79706e3130303030303030303030303030303a0001117af63a0001117b
6761626f7274656458400a24269b7521d409ebe462db297c3aa25b23d6
c697aa4a864b1b3a3edb5b30537b34b048a797073eaee41af371effb68
ecbb47b80e62d7e775e8cae5b066c30c
]]></artwork>
      <t>Manifest COSE_Sign1:</t>
      <t>Body: description=<tt>fixture-goods</tt>, amount=<tt>1</tt>, currency=<tt>USD</tt>,
acceptanceCriteriaHash=
<tt>e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855</tt>
(the SHA-256 of an empty delivery; the field is a digest of the exact
delivery bytes, so the vector carries a well-formed one),
cancelCondition=<tt>none</tt>,
expiresAtMs=1700000000000, ap2MandateHash=null.</t>
      <t>COSE_Sign1 hex (whitespace ignored):</t>
      <artwork><![CDATA[
845831a301320378216170706c69636174696f6e2f636564756c6f6e2d
6d616e69666573742b63626f72044806e3fd8fda29bb60a05889a73a00
0112386d666978747572652d676f6f64733a0001123961313a0001123a
635553443a0001123b7840653362306334343239386663316331343961
666266346338393936666239323432376165343165343634396239333
463613439353939316237383532623835353a0001123c646e6f6e653a
0001123d1b0000018bcfe568003a0001123ef65840599b5b1cc7bfd3fe
8b8e65cdd876652aeca13660e6bdccc93afe12188a295b20fdfe8e6e48
ae447dc74ccb0f13383f0f43f0f67f288d61a6395e95e2038e320d
]]></artwork>
    </section>
    <section numbered="false" anchor="finding-code-table">
      <name>Appendix B. Finding Codes</name>
      <table>
        <thead>
          <tr>
            <th align="left">Code</th>
            <th align="left">Effect</th>
            <th align="left">Meaning</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">settlement-without-receipt</td>
            <td align="left">audit fails</td>
            <td align="left">Extract row has no matching settled receipt, or a repeating <tt>ref</tt> settled more than it receipted</td>
          </tr>
          <tr>
            <td align="left">receipt-without-settlement</td>
            <td align="left">audit fails</td>
            <td align="left">Settled receipt ref is not on the extract</td>
          </tr>
          <tr>
            <td align="left">settlement-mismatch</td>
            <td align="left">audit fails</td>
            <td align="left">Same <tt>ref</tt>, different amount or currency, including a repeating <tt>ref</tt> that settled less than it receipted</td>
          </tr>
          <tr>
            <td align="left">duplicate-ref</td>
            <td align="left">audit fails</td>
            <td align="left">Ref appears more than once on one side</td>
          </tr>
          <tr>
            <td align="left">settled-without-ref</td>
            <td align="left">audit fails</td>
            <td align="left">
              <tt>outcome</tt> is settled and <tt>x402PaymentRef</tt> is null</td>
          </tr>
          <tr>
            <td align="left">receipt-chain-break</td>
            <td align="left">audit fails</td>
            <td align="left">Signature or <tt>prevReceiptHash</tt> failed, or the links cannot place a receipt (issuer order, step 6)</td>
          </tr>
          <tr>
            <td align="left">unauthenticated-extract</td>
            <td align="left">guarantee conditional</td>
            <td align="left">No verifier-supplied rail key, whatever the extract carries: a signature that verifies establishes internal consistency and not that the named rail produced the extract, and one that fails or is refused is not a key verdict either. The same code is reported when a rail key is pinned and no extract was presented at all, because there is nothing to check the pin against. A presented extract that does not verify under a pinned key is <tt>extract-key-mismatch</tt> instead</td>
          </tr>
          <tr>
            <td align="left">extract-key-mismatch</td>
            <td align="left">audit fails</td>
            <td align="left">Extract is signed by a key other than the pinned rail key, or does not verify against it</td>
          </tr>
          <tr>
            <td align="left">settlement-comparison-skipped</td>
            <td align="left">guarantee conditional</td>
            <td align="left">The pinned rail key refused the presented extract, so its rows were not reconciled against the receipts (<tt>MUST-T10-20</tt>). The code says what did not run; the refusal itself is reported as <tt>extract-key-mismatch</tt></td>
          </tr>
          <tr>
            <td align="left">trust-key-unreadable</td>
            <td align="left">audit fails</td>
            <td align="left">A pinned key - rail, issuer, or manifest publisher - could not be decoded; the verifier's configuration is at fault, and nothing falls back to the keys the objects carry</td>
          </tr>
          <tr>
            <td align="left">issuer-key-mismatch</td>
            <td align="left">audit fails</td>
            <td align="left">An object is signed by a key other than the pinned issuer key, or does not verify under it at all, so it is not coverage for anything it names. A checkpoint reaches this code by either route: unlike a receipt, which is named in the chain walk as <tt>receipt-chain-break</tt> when it claims the pin and fails, a checkpoint that claims the pin and fails is reported here and leaves its window uncovered</td>
          </tr>
          <tr>
            <td align="left">countersign-key-mismatch</td>
            <td align="left">conditional</td>
            <td align="left">A countersignature verifies under a key other than the one pinned for that payee; unattributable, discarded as approval evidence, and the receipt it rode beside is unaffected (<xref target="countersign"/>)</td>
          </tr>
          <tr>
            <td align="left">countersign-missing</td>
            <td align="left">conditional</td>
            <td align="left">A payee key is pinned and a settled receipt for that payee carries no attributable countersignature; a discarded garbage or foreign-key object leaves this open</td>
          </tr>
          <tr>
            <td align="left">unauthenticated-issuer</td>
            <td align="left">conditional</td>
            <td align="left">No verifier-supplied issuer key and at least one receipt or checkpoint presented; their signatures are checked against the keys the objects carry (<xref target="presentation"/>), which establishes that each object is internally consistent and not that the named issuer produced it</td>
          </tr>
          <tr>
            <td align="left">unauthenticated-countersigner</td>
            <td align="left">conditional</td>
            <td align="left">No verifier-supplied payee key; a countersignature is present but proves no approval</td>
          </tr>
          <tr>
            <td align="left">unauthenticated-manifest</td>
            <td align="left">conditional</td>
            <td align="left">No verifier-supplied manifest key and a Trade Manifest was presented; its signature is not checked at all, because the check that exists under a pin (<tt>manifest-key-mismatch</tt>) has no key to run against and the key the manifest carries is not a fallback for one. An audit presented with no Trade Manifest is not this condition</td>
          </tr>
          <tr>
            <td align="left">manifest-key-mismatch</td>
            <td align="left">audit fails</td>
            <td align="left">A presented Trade Manifest is signed by a key other than the pinned publisher key, or does not verify against it</td>
          </tr>
          <tr>
            <td align="left">manifest-covers-no-receipt</td>
            <td align="left">conditional</td>
            <td align="left">A presented Trade Manifest is referenced by no presented receipt, including aborted ones and those outside the extract window; the manifest states terms no presented receipt names. It is reported on what was presented, not on whether the manifest was attributed, so it appears beside <tt>manifest-key-mismatch</tt> as well</td>
          </tr>
          <tr>
            <td align="left">manifest-terms-mismatch</td>
            <td align="left">audit fails under a usable issuer pin; warning without one</td>
            <td align="left">A receipt names this Trade Manifest but departs from it in amount, currency, settlement time, or, where the manifest states one, payee. A manifest refused by a stated publisher pin is not compared at all; a gate applying <tt>MUST-T8-2</tt> and <tt>MUST-T3-3</tt> would have refused the payment. The two severities are the two branches of <tt>MUST-T8-9</tt></td>
          </tr>
          <tr>
            <td align="left">extract-scope-mismatch</td>
            <td align="left">audit fails</td>
            <td align="left">A record falls outside the declared window, or the extract does not cover the expected account, rail, or window</td>
          </tr>
          <tr>
            <td align="left">extract-settlement-mismatch</td>
            <td align="left">audit fails</td>
            <td align="left">A caller-supplied settlement list disagrees with the extract on <tt>ref</tt>, amount, currency or timestamp, which are the fields compared; the extract is authoritative. A beneficiary that differs is not part of this comparison and is reached by <tt>beneficiary-mismatch</tt>, against the receipt payee</td>
          </tr>
          <tr>
            <td align="left">malformed-amount</td>
            <td align="left">audit fails</td>
            <td align="left">An amount on a <tt>ref</tt> already reported as repeating that could not be parsed as an integer</td>
          </tr>
          <tr>
            <td align="left">unstated-audit-window</td>
            <td align="left">guarantee conditional</td>
            <td align="left">A supplied rail pin states no period, so the extract defined its own. Where no rail key is pinned at all the period is equally unstated, and <tt>unauthenticated-extract</tt> is the condition reported</td>
          </tr>
          <tr>
            <td align="left">unstated-audit-scope</td>
            <td align="left">guarantee conditional</td>
            <td align="left">A supplied rail pin states no account or no rail, so the extract defined the settlement path it reported on. The same "no pin at all" case is <tt>unauthenticated-extract</tt></td>
          </tr>
          <tr>
            <td align="left">countersign-bad</td>
            <td align="left">conditional</td>
            <td align="left">Present payee countersignature failed verify (signature, content type, or payload binding); unattributable, discarded as approval evidence. One verifiable under another key is <tt>countersign-key-mismatch</tt></td>
          </tr>
          <tr>
            <td align="left">carried-key-mismatch</td>
            <td align="left">conditional</td>
            <td align="left">An object verifies under a pinned issuer key but the key carried beside its signature is a different one; the unsigned surface was rewritten, the object stays attested (<xref target="issuer-root"/>)</td>
          </tr>
          <tr>
            <td align="left">boundary-deferred</td>
            <td align="left">conditional</td>
            <td align="left">An unmatched item sits within the declared <tt>clockSkewMs</tt> of the window edge; deferred to the adjacent window rather than reported as a completeness failure (step 5)</td>
          </tr>
          <tr>
            <td align="left">beneficiary-mismatch</td>
            <td align="left">audit fails</td>
            <td align="left">A settlement record declares a <tt>beneficiary</tt> and the matched receipt's <tt>payee</tt> differs</td>
          </tr>
          <tr>
            <td align="left">counterparty-unbound</td>
            <td align="left">scope record; verdict and guarantee unchanged</td>
            <td align="left">Neither the manifest names a <tt>payee</tt> nor any settlement record declares a <tt>beneficiary</tt>: ref, amount and currency closed against the payer's account extract, and the counterparty's identity was not bound</td>
          </tr>
          <tr>
            <td align="left">delivery-mismatch</td>
            <td align="left">audit fails</td>
            <td align="left">An attributable countersignature carries <tt>deliveredHash</tt> and it differs from the acceptance-criteria hash of a Trade Manifest the audit did not refuse; both ends are signed (<tt>MAY-T8-11</tt>). Where a stated publisher pin refuses the manifest, its acceptance hash founds nothing and this comparison is not made (<tt>MUST-T8-9</tt>)</td>
          </tr>
          <tr>
            <td align="left">malformed-policy-hash (and its family: malformed-request-hash, malformed-acceptance-criteria-hash, malformed-manifest-hash, malformed-receipt-hash, malformed-prev-receipt-hash, malformed-chain-head-hash, malformed-prev-checkpoint-hash, malformed-ap-two-mandate-hash)</td>
            <td align="left">audit fails</td>
            <td align="left">A hash-shaped claim does not match the 64-lowercase-hex grammar of <xref target="receipt-labels"/>; the claim is named in the code</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section numbered="false" anchor="example">
      <name>Appendix C. Worked Example: A 10.00 TRY Spend</name>
      <t>This appendix is informative. An agent pays 10.00 Turkish lira (TRY)
for a file. Amounts are integer minor units, so the amount is <tt>1000</tt>.
The run used the companion implementation with keys generated for the
run; the keys are not published, so signatures and hashes are not
shown. No real rail was involved.</t>
      <ol spacing="normal" type="1"><li>
          <t>The PDP allows the request (amount <tt>1000</tt>, currency <tt>TRY</tt>, payee
<tt>shop-1</tt>) and the adapter settles it under rail reference
<tt>x402-n-10try-example-0001</tt>.</t>
        </li>
        <li>
          <t>The Receipt Issuer signs a Spend Receipt with these claims
(<tt>policyHash</tt> omitted):</t>
        </li>
      </ol>
      <artwork><![CDATA[
payer=agent-1   payee=shop-1   amount=1000   currency=TRY
manifestHash=null   noManifest=true
x402PaymentRef=x402-n-10try-example-0001
timestampMs=1789400600000   nonce=n-10try-example-0001
prevReceiptHash=null   outcome=settled
]]></artwork>
      <ol spacing="normal" type="1" start="3"><li>
          <t>The rail signs an extract for account <tt>acct-1</tt>, rail <tt>rail-1</tt> and
the one-hour window <tt>[1789400000000, 1789403600000)</tt>, with one row:
ref <tt>x402-n-10try-example-0001</tt>, amount <tt>1000</tt>, currency <tt>TRY</tt>. The
issuer signs one checkpoint for the same hour.</t>
        </li>
        <li>
          <t>A verifier that holds the issuer key and the rail key, and states
that account, rail and window, reconciles them. The result is
balanced under an unconditional guarantee. It carries the scope
record <tt>counterparty-unbound</tt>, because no manifest names a payee.</t>
        </li>
      </ol>
      <t>The same audit was then run against an extract the rail signed with a
second 10.00 TRY row, ref <tt>rail-ref-unreceipted</tt>, twenty minutes into
the window, that no receipt names. The verifier reported
<tt>settlement-without-receipt</tt> for that ref and the audit failed. That
row is the case this document exists to detect: money that left
through the rail without a receipt.</t>
      <t>The same control has also been run once with real money, by a related
implementation from the same author that records a spend as a signed
decision and effect record rather than as the Spend Receipt of this
document. On 6 September 2026 an agent asked to spend 10.00 TRY on
advertising, the policy deferred the request, it was approved under the
operator's account, and the amount was paid by card to the advertising
platform. The next day the payer's bank statement arrived, and its line
for that payment was reconciled against the approved spend: one
matched, none unaccounted for. Two limits apply. The statement was
received as an image rather than as a signed file from the bank, and
the line was transcribed from it, so under this document the result
would be conditional (<tt>unauthenticated-extract</tt>). The line also did not
carry the spend reference, because the platform billed under its own
descriptor, so the match rested on amount, currency and date alone.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9y963bbSJYu+F9r+R0wzh8pqUmlJcsXST3dR2krO13p27GU
lV3Tq08TJCEJJQpgA6BltZ3zLPMs82Sz77EjAMpyVk2vNVNnnU6LBANx2bHv
+9vj8fjBRld2i+Iwe3i6LKp59qGYFeWya7Mc/nif314XVZd9yMsFflNXs3JR
5l1ZV9l53WTHr7LjC3igffhgI59Om+LjYfaimK8W8P2LuikebMzrWZVfw/Dz
Jj/vxvP6olmNZ/zIeAaPjB/twlN5B4/sPdp7On50MN7be7Axg08u6ub2MCur
8/rBRrlsDrOuWbXd3qNHB4/gibwp8sOsLWYPNm7q5uqiqVfLwwcbV8Ut/DmH
f2XZWCfDf+Q4Vf5nw6vkP5b1opzd8r9PX7w6O3uw0Xaw/P/I4acFvRZW0l7n
Tfcf/7mqu6I9zM7zRQsfLkt5UVfP7B9lNbcXtXXTNcV5K3/dXoc/ZvU1bi78
la+6y7rhkfD/ZLBoeMfJTvZiJ3uJW8af8k6eXBdX2Yu88t/UzcVh9ueTD8f/
mp2d/PL23et3f3qVvX715tXZycvs9NWHX07OXvGTs3pVdbivZ6sG9oo/LK7h
gA+zYofO53/I+ezADB9sVHVzDSf+saD5ffjpxd7u7oH+++ne43379/PHz/Xf
z/YPHuu/nz96vGf/3n1mzz9/fBA+3999ZP9+9vyJ/ftg39518OjJnvu3jX/w
/KmNeXCwv+f+zc+8OHn56+t3b8cvfj558cv7d6/enh3yspXyjWQvi9nVsi7h
UGCbl/XsMvut7KqibQu+D2dNXrVLoLxqdvuQx3Bnh/8brzm6u48v0L9MLG8u
iu4wu+y6ZXv4ww8XZXe5muJ5/EAnNMurAoYZ54vuBzmsH6aLevrDdd52RfND
uyxmPwzeOFvh+NGjnes5XCy4XskBP/ObuBsOBj7ejTb05ZqNPMyOq+x4NS+7
7HV+WzTMK/D2jbt6TP8A9gDU38yK/85thO/zrslnV0WzUxbd+Q5cG9jQwa36
wS/07OcPJ8dnp2vI5uwSWFGXvc2bhvax/f8kaXS0ilbpIst++fXk59cnv716
+3J8/OvLV+lZ4xE3s8uyK2bdqin4jPHMy+rCBEP2slgUFyww8AK9qmAO+Qz/
vnuX3uxkv6yKy0VxA9w03ac3ZfPXfOB7+e3PO9mPZXN1WS/+K/3lz0V1lXzp
Zc+TP0Q3VzaRcY4bMM7dvhAd/Qgc+Od3r/+P8Z+PXyTb+OeiKc/LfLooMr0Y
1ceiaXnPUOY287u36tuWaz8724GvF/Mu/U36uTz+bic77Qo4zfT5d01ZRF/5
DX3+hzZ0KjMef7TNGZPwBo0hbE7LW3t8dnI6Pj57n5InbSYxbKa37H1Tg3Cu
F9kmPL1155a+hC2FVbTpWl/mH8t5dtxeAk9zD/wtJHTZXS902TjiOO+WOMS/
7j/aS5b0CT9C1voONDXYcrhQeTOni0f3qiq68VviQKq4rSUc0hdwvOwn0Afm
tJ/34zc3Nzc7+ENaAD5y/D6dJ2+9TsHv+/u9tftOM/qXur7Qi1DOTEYkM3sC
SuLw5PLl3ngpr6MJwgfE8YCKZrRImvK/fHj1L/+STPqsKZfw6hNUjrLjGalJ
wMnuJJNXO9m/NOXFRUomr4CFuy904utoo8yrC5rtMl8Ccf/Q0VT+o8Cp7CB9
4M/eH7949e71q2TWp6vr6zybF1negBy4LmDX8lF2UdTwz6aEf8JuLEEFhZWX
WdG5P/NF2eV3ru71DpzhrATlOF3fa5Ay8Xe8xN39g338+8/Hv/54/HaAerPT
s+MPv6iNAbSHmkd28qkrqhbmdCdt/DlfTXPkiG2B/PXvxbw/0rBjnN0YtP7m
aiy2AbOX0xc/f3j34pdkLe9WHQjcAlhrNUdxx7IPZ13+VwEMggWcSLx5gYYV
nObiNns3bYvmIzxycn4O8uFuxg7kdTq7bOrZVY/ArmEnou/8Rjz7QxvR8nDj
YjmueXnAh2l5tBFvjj/8z19PeipQfb0Eg7CaFXjNz0u4QfV5dlpeVLYNwaJM
Lcb1K//TTnYMdwvm0GZv8uY/V31W/Kc6r4EXzkHzGHjub9+Oax5unLf/mX8E
uaPrjMnj+MXZcXolefEvgem0veW/yUEzqApUg+WfyGvAwECx3zX14s5tAdH8
U94s1GoLm3FWX0ff+OX/MV34nEYbg+jMxy2tKF74z+/evz75S0oNbLQDD1pk
jjJOZ01RVHhPkotvZkE5G6ur4adFfXM3cYD2/HO9HNiFF5dN2Xb1EqWzf+Jv
ZxKXNBoziT4pMCX8eJxyiRNQFgrcgA/Ff67KpmBxaIvWI0cdGWQ2iB3kF8pa
Ym/LnRsCVwUo43ia9/jE8aIE2ri9yBv39d+un+UwVlDIcA3juaxhXMii2X56
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
GEU7a+80w/isQyVyJkAA0EiWc0CHEGfXhm6kBhd+vz6kfYu0WNaYux721PhO
2+tOiofpmzcLZ5bEUA9L6povG002vhQhQi3W5OKce2lKq/ob6VlFr8SQv/VY
jpvX/7Hep5RQFG8HBpfT3YgBC++JWxmgSXqwJFKNYn0MfDYbtdLyJbjrsEq8
5y+hlt1HRC5Rdfw6GEdy7fTQ3e1UZlqcpwDDASytj8yt7mHMhArfpvUXISPf
wLuxglzbIZFmqcV+sgft6hxrbQrOjxfYk3TRZH6nK2n71Uiwf6fsc3lP9+WX
4vZVdV5nL0+C0uDajBn19BA911QZhK5l/SZfKeCFb+pKgDpK7u7l/LZ2CEQT
TwivCqOZi0ZNqw5XsmXLI92tvQGOIonUlvE5ClhTI03hIU2T+XRdc5pVU1KW
hq+8LRj2kyDoc+1hDDxYQffNq0gXpDBUmuH+U1q7QLtCpxOvhVUYDrF+czt4
tsELwl1pEDnsG3q/h/0bav2eThM1nW/tx96Tm19vx+6biK7ZDkez6SSfxHTx
B/tjO5CyP9AcexB0+dt6Y8sFTm8uheaGru06FLOkO3L0qj6K2fDQ39g8+Q9K
sj/cxPueQutbsbTukk9P+cL+bV3/+o2sqR+Cpkt7YpO9SJsCptN6FtP+t7St
jimDVH8vYb+hdXWgBN8sIG7afFej5uxb+jQP9ZMNk/kmqL3/JtJ5Lk5gxgL1
B5uz/WYAoMG/aUANLN+L+YCGvXvQH7i8ljQ79lghGIP8vi3/C8tNCgq+o+On
uwyx8ZBIWSw0MIsHBHJaWpMKpL9sFzmqopM4t1Rq+IZXo5WeOhmtYKfcZwEu
jbSLKdLGZb7iKV4X1zU7mUh3w1gi5TiLyWrZVZy8vqrYwyaJGdLg2R46Lz8x
rIwkFKXujUcDMkTSanABkcOErAOMm8ZHSR8pyg13P2ADg+siAyIo7cAIV0vg
uZsTdLmMAzQHnDQmhshFwLJJziGJ2Cy2k6AbY29xG0lTEZaDG6I0upIWoqZg
+EoAroBON2b3LuIN1iqo0m1+oehcqyq1Xh06Dzs2gOb9FpBHC2Xo7tj9GLfB
r4vZp6rcTuSi7XFR1Y21OKWXOu/lk0ONQU1vMUkz+1hinX7DO4dAVjNO/3fJ
ruK3sTA2R5stk1EFnfj5d/iXDCEi8Y5zMBc8vgiI5WUX8lZ0OHQ8U3Dz7+ym
fGLh6b8peTf71tzdiIaekO/wAz0Itgza0fkCe0DgSJ20RRE7DCe4wDQEvPQc
wfG6MCGzzC11gBNaCNtsSdkJbeLrejIQbF5V0Ro1Q4ssEPIrqa88ZCI3CHV2
XeiFojxF79h6YmG+Xm3Ju1NFXruhRJVWuw9Oi+6mECc8v0VZMZJSoNunh9kZ
5mjX52MDUu7kA3zB5tm7F2fvft2yAUVD0TSteUiJ5JwMim+UoSfkURSpYDqt
svYmJzQB152OjloyiYEMT30LzFvFwryUjuIa8kCtgk5MsfgslGE61N+Z5p9y
TFsuYGrTqzbFVbLlJ0zOpJWzkiOzVgKxaM3hAE6umDtIiSMOs4nLONKboqvw
lCN21book+V4i4OF2/ZFUS6K8Y04DtwS6btYNKtcaWstTc5BLFAKpoVGF7L4
5No85SD6cDCZ8enzMPl6MTfvAJcVZGdnrxkWhSJ9yRbs+y1I8tx1I5xgIaXh
xW9nmh1HtCOu7vGzR48f7e7s0H+fgBTxh9nz7nMQk1z74taHfzBB/toWr7D4
kOxS5x/NJqROcNDphxkHqse69H+YwXanJ/xEDHttQ5yFZL6hxZrDVYD+TKaN
zAlbNzqnMc3JuV84QjRG/TF8atEGCrOGZUtWmBYU9OKwrivnfeKwtxyETeOu
txR0VX052Rw2ooTMuW5ncFfETCo717qFcYPRJBB+nZC5OIJ0gV2csCoZl7fJ
hJ6lp6WwbVFwWSHvhw+QlKHSgqqRJxFxghL8wjWb2unZ4E/cmR0PbnDizVRg
COel0rEsSeMoKMpSP6Mp0BOj3YmA5okAOhaGEdyDvKVS6ipSRGuS491xecjA
O0UtE5SDz5+jbrW/g42C9IBvPvSe5ZHmK/oCQcv1cG2ouE40mDNpaeFOnPuN
ErwrDFzBHT/iQ7DCjOp21IIvVMywPq9JpbZ7zwIeLfdhTHeP42V9UBdqJDon
sEIkcxOMcF9zrRBR56J5zTiEzE9iVRJeDKrKpbtbO4Jiqzr08g1O9po6It2n
ZGUnEMn+xHWeZkhhzMtilmwZo88Os1NWrdCcwWTRK2r192DjF9S0Fob6OC/b
qxEW2raS98mqHOETXTiDvpVcO/Y+MGLs31l1eEaqw2kBaio57jDgBWen2DzE
ZQyxIhBlRIGOOuN8ptYtEi40CleDNYnmgCrCiTxA9Ix6WRQWCKmh3EuYT7zR
hFJ0j8H+NoQocVVoKkdrUeZWasqJrFtabqo5PyMV4H14LOi2pgmwDWi6rWaE
ozqL92zz59M3W9T+kLA9kBLa2xb0F/Z5dbXYbaqY1500BonyOp+RvtCrGQL1
GrSw5nYpWyMttpOtfDKYEirtzWuGiHMGgGZd0u71nJFilJaMVQ3caQUqzK15
0UfYRL6lkKhBcMmBDBjoiE/70T8Kpk2HQfhkBSwwkV+RP5cN1pqSsm458GI8
DPsV1pTmRy/16woICZgwklF/aI7iX9d1p5Hi9vZ6igoTpc0YqBMNfCklwMhy
0DkjG1mjuU80pZZZtzOUg+vkJEGZ+51wO0wyvQ2Bb2cGPT/MXjhwOFQGgdVd
1KsLqV/jpq7IiLCCkPuXa3ETRhyw+0HroPngBJuuPCchY/UJOKaHJ5OUhBp/
IiIk8QoiW23ll9KinBURZMXjGVqKwEDYuWr+HHbk/n1513PJSBpM9oZJwl7V
c+KhLWMk4EnC/Jac6koriCqd16xihCJyVixc71MOx5NqElHv8yhL3WWmr0kV
xDRXZ4siJ+tjqvL5teHihIy+4wEkQmRMHio2GKgKF0vvLBt2mQluEvWjn2E2
1TmXyBCky69VSZ5QahS7KFvJEmafImzQDGZOThWQ5kz5yXZIarISaJz6RCSi
rvS1mz+QKqqbSAyis3aWqK6WLdVDnWjc8McVtaBFa0JgzPwO+oTnHrKeTZoT
kqJ17YuTad37vAuHqW6qOHBwQNOyw+K1HITInIQjPACWYVMAF07qHp6Tvp4E
JnT9A5mZcn+TO0GJQ7z3kQWhyUHD2SkhzB4JyuckZN6YkmI1DQoACms8fr+n
Cc98zGQpoOZdfEKsAS/vnveSpPI5e3k1+Uv2J0c5wPF4UN2a+ZgZY1MTvIy4
9o6y9V2iNSHIUVEKXOIa18gnk63kQPTJvoz+lvfAs+fkwDd1oZB1Jq97zlco
Xxc5dz2yfMTam9qlS38NPyQU1hF/k5rd7Aq4Ow3KYuzcRlFfoLW/L+q2mHDe
XrZJqjI6L/Yf7W759nFCdc77QWSa7EGSWPXNIb/UlcV+0CQJGyNBUbPvqF/F
KAru6c3B0FwEmyszGHyhtJkaDwLIWoIRwqwRpzZAbw/mPYqMHY8JMLHkdk6E
0zq+aF4Jkq5C4vJ6+UA9/F5/NuOBUGScweTbbVEesmVTDPSfsqyKzaS7Huet
5GhW5m1HnIPQbtEpb6kz3kiXeI3gNjo8r7LlCKZlIbvWRbmFp63HBCuGoaPW
YOz/N00AumNJIxEi0UADCVZRdl3UUsu/8UM0aRGg1ogy0J2CcKpiHpxJO31V
SbJ+JCffJYOQsXdO9RR6V+n0DVJ0uWowPnLoaMwOw3rarUPkK10CIqMpZYwF
NNhq93tsfD7HlBKDh468MIQGnagQnNQbHoExMYPcOCcmkHsBJKl4fAFIAmEA
7JIIAf8Bu+M4VI8FG2kp7cqFEFZ2jEnJvhl8WVl6eP9Xycx2xXd8d7oQTFnA
rEVrKebii6eicmGYCXQKhlRrdf7HpDGUxqYM1bkoJ2HPX4jWxhpK2qKgzzQs
eVAyScsFN2WrBEBDtS+HM0lQ0vH6MoLCwnrce6VTIdBCTuBUJDjKLthb7xJl
g7SKz9/xX2P8iyGknJpC1w/9zl49oYBacs+4fUVPZ2G8ADoBVgWYCaHLzuOy
MtQL1ZEbmMVzhmL7AwrIgw3TQFLFY1D3UXP04DB7D1uKW4SuQikll96iUouO
gA3vX73aUt9XCIJF0CyL+iLCbWlCUm/0XEiCtx45kr/KmCYFu5YQPoQ8rqtK
+WN7SR5EbN+kQZSd7HV9oeFg1WxbNnQD4ARF+QrGMv38WVFmgFv8PQ3XAzFc
/xheDePK//DHoGqyBlF3fkjwaiJt64Bs2Lsha2CYmyxCrRmpkT8OMDTZ++O3
A1A0VhsWAdIMn3xiehyQQTkMUZP9jQg1ocnYGnAaVBgjw+VAguBCYdkfwqdJ
9p5jaS6rPWDDJKgy2moa6yqCR9vUmzHtsjATxrgRrYGyuUEwODgMDl7xgXLu
Nc+HEFuMsASG5ZBRXcpgT4SqJQN35TZiVGMDCw0keFlX9aqJHF27jw7VA82W
OOapUOid81a01FbwkkfEXRAs0VIrxI0uVaHTskKVGHVCVvFVpW2oTSmBz2DJ
b9erVNvJXvj0S2tCECPZCktzgRZkGX3AnL8v00As04FkcJah1NRA5+ftmnog
N/k+DYjuTBO0UFXl+oDKuXt0YVUE8eOBTpEevROppZjexvAtLrilaLKGSg/W
AefrSdXwRYlQSYaxvYj9cth1RwqHe01+aAcFuHJdt59sTWecgdYD7g0T7kIQ
z+Oxm8c8qWqRPo+f9h/tSTbHh4JaJDK0S1yCcv9pplPQdAQ6XlZCyDPFcNzj
Fq1gjGoMHVqwh1KUi0fEu6LMI3cc2dmTbBMNJp9FVfpkIElC2kouoas14C5V
AjGe+hqx/Rdt7aTfrCvpNsbB2X6Hs0a+idoWDOaKxz3F0nk8G7inLulehzd/
biPo94IKxVlHqrsyo3bFJkMI4sOzTHuKy8PUjlKAmEvTrb4KGpWCRP1mncOl
BGaEqVJhF54f9mdIVq0k7nghi/c73cXnd+8ibcM3VC0Yd1xbtKAlc/5pVTzv
KJjDiawtlyMkWaRzrhfpFaRosx5eGG9qr5Jgfe93d2ba76Bs70cE6Xaji+2X
P1yJleY0IzOh8MLfXqq1rmMBpda2sklqJKarIsNe4Cr6fZOZ3d7dltuB9KfN
uQdnu7aPwoCs4Hl834Z+NdagjI3lVdXvHBs5mXrr3eXqpSomM+kLyTlSnKMs
7YFGRL/swbV24UHViVtfSrfs/l2+Y+G9Ge7pDN170GRdaa2DKFeUk1S6AgHx
Mzmk7ljjSpr4Ec69pPCzNsqtUaO7DIOBkOo4KzS39tQEnl+2a/jqXc0west9
7ITSHTKk5x60dsh4m6RtYwQFFEM0Sx4ilRn+P+V9a3cbR5Lld57D/1BH/mBy
D4rG+0Gu+gwtyWOOrceKtN2z+wUFoEBWEwQ4KICUWvb+9o24EZGPQoGS3NO7
e86o2xKJR1VmVmZkZMSNe/VSNVJQTgYKkhZQJxICfrnsnrqoqs6Q1yoKikE1
Tlnp/R6GKjmlChQ7tm87+gEQBf74pYoBjeRz4gA7TawrpdPJWNpuzAHRyXbj
OGo0YooUujCWK17OywWBgYisr3w0xTuq4hwUlQm0tDIEkYk/82qU1hIhoKzY
fffMiq8w+ijxenIxVqkuxqGQeShi7uarjzgnsX604Rkjg3um4DUY1JLJ76yc
ReHVwREj3JidUZLCEuRzZM8MztjOhocGW1f+F3j3kYOgN94ZwYHM8O3SdK/q
RCwLo57RDWRMdnN6e3mbP/Kew8kbaeGr5czxcGS7F402L7lssQm+fslMN7hA
7Uq2bFFqyuFjcBDKSmvsFj3XnyXO69XUEycWHybEdpXafQk99XFHuL72yOFR
psEU9cdSkyeMUyKYqGeSRg6E3Xebi2nmqxNjbfeKrnudgr3Z3x1Fd98o6abk
YCYSiN8zF0wQAjQ3jmaNnnCnyX/Iz1nQvoQ4R+nrvipTcviPWTTTqrSjNn/8
y8wbtv7/j6zbSAkWvIiHmx6R+yNF/RpPC42MPqOGnw2F1lXeo+qgsKKFSHYN
lo/3HT1UFUbfrG6I06mpgbboFz1Fr9aYZmH9j8e7Y/vTVHSQlnTlpllUtYq3
EU3w0+9+db9dZB7VJCA+a6HM9SV4eCvxlGZQJ6+zxz1DSx7GKyhc+fUZw3rV
sppcVJA6DEyjew7704in6kX79FN15as+GXU5lioN3aj5am2RztBmQIXBG+3J
RwkhiEM7B2+KQxtzCFKVD6qYDTzVUKjSZzLT8rbgKqWxC7/yhJZZsXPEyndQ
7FrYWuw7VYWMJpmrV1VokVNgqgrGgmsyqS0JPjy4WAaBp8bOrhJqhu1R6WNZ
REZgWsgki5XDKjJ9+4Ro/UDvKEbo6Uimi94KBWsseXiTPRR0bjg8ONqN8Prs
WKt1mrwIiHkCgSFOuqyEJycWeYo+BZlp/dguqF+RFYwRFS7kuwbOQ5YIm8VU
0SGtu5bAPK7CZ1OykhEXI/FFVNNRREWMNF3M71pB7rzIrFEoTgiGIRHhCA1P
3n1lVFvohMmBqqfz0cKo1ARIHEVg4fiQpLq5ERKzNtyKVCMPfq8UnO4CKtzl
5w8CYBxhLJiPLGjNDgZQUiO/SxolX8x2ua5cD6wc3fjwazMnJzvBrrBQGTlU
uWoAa2Dzrgbh6zZdj9HCgQ41fBijH2mIAoyhO4+ic3HWps1Zmyiarqrrpv/k
ND1k8Qm7t+WiMHsn8o1QA7thDkpciHyijOvCtqbf9NiJb7VSKtpLdfP1h0NW
5JGyoti5EPtcbnaVTwWsyIeQO6TOPf3bSfJ2zYh2OM45IiMS+hNGWNVm/c/I
+7RthShMxO1/ZkjjPfAxlM4KasJMIH27puar5pUpyMohi992UxbMuQUqWRXE
LUg+CCZq8G2+0XrzoK3t0CvwrWI3c8K1uoBiyXMp7aY+Dmhd0ihQ2GPyQLWe
NmC0MsdKMgPQi+IJyyBGMqblKX9COBUaYRKQNurZtUa/9aPOU+NggxQxSaa7
8D7yx3wjTZqJoqDs6Fb4HjwX1PrhbsJFa2h7IxHmg4LICW60QGVbVmN5QusM
fV2MQhCDLm+ytZSxydPMZQerq0OQegYufpB0mY/cLVbbGYsfRSJSArRDx4W2
U8aAGw/f9dtAdtuspZ2WvX8tmj4+YyslZhyyW1b72N0/XcAgmM/MHgTzIQhI
4uH5ttBJSiTZn5xWyoTIhoRlj4STFAN4VZl0AM04e+qeH48Ck7FGzCzikrL3
ri6MFiHy6kJeuxFQVgnqJzrGeK4rZ/HRcUsRuOVeWQTuoKCNEnzLZu3zd85s
Jxfnb853hS2KbJl5UQtn/LQowfxX5q1cOzz1nHwiWlqzIgNUWEUtyEQ+e40X
r/jFZ/a1j2QH3//woj/sDJnp1zZATo5kHOZlfEgDWWxRgHLlfmMpOA5lBcqP
NLk/CNncB+k6Lj4cdUd//MHeiTBsknP9iv1SOcIogJSvGSD5jHstsvps5p0S
DhIuyqGoCR+A6cchUHpsjB9MFnHHE4rcRXGcOsfuJKKnw6Mql62q2oh9LYTB
2kl7SDZAi1yzHYbMgF9xyKgWX9Z6bJgQdqAfb2TPk7HQhQF0FDv/Xl8UOimS
m8F9RQgR9MTB4699fIkTQL54dfWDo2k7S7hYbwGnddmow+ZrmC6zXEJAKaEw
LqxAXKG0LvC5lm3+DUrxS78CgmayZLmojGGAueR09YDyRNiI4JNIPc+A5JyH
M5VhKfhA76R90sJIZg+0Jq3uhHpzwVZqmW/Sl2vaD71IsL8T1mKDK33EeTk8
4D2woWFWWJHc8XNGzQpVVNxqdKpOgklSWoCKYHvJvmVUGw3SJQ9jYiXwdNBs
NlucKl+vttc3yRjw/PY4kZMOQERyeV6zFfwsTa9FAd04XP6dQqB+Yd8Dwm66
2J7hxr/lEy0gP3rx29Vx8gIsz89ssZp9GHZGbbEPm5z3ZyX9XegRaJmk/V6v
0zd7H1XvOmvF3Hrov4QEZO+94x1btvVLN22v1jiTsbdfus1SFKH5Kz4qKddD
gAOadexjGH3IMn88PHBPgee4ucJBaZSas1J0nt4YPArmOJv6vK1WgblnDCvL
/BcLnFC1BFhkCQP1aXgu08VWegFzLBpBe8+EPxjrR7bxiTUUNnM5kgSrlqws
tM4tuCN0Hy7itS4DHwDdKUPFaDoi1PFI6LyCVdedx16THYjLTniJnx4enIZX
4Dcvt5NN9H7dVQPRo5m3xyU+/+a7c4hqGtS3/u1XltOeRhslPiLYMp5MwS7i
w2WYxaNmj2YxpOl3+M5ZRTXYrdgl2GTX10qOHzOew2lwo/NHAl22ZJcKHUNj
lcg1bRZ0mlOv+mPnmCMTyoKXpaOfLzhOkKhfsikYVPeYs76kHvkdK24EJ7et
29dE8EVCeAbZF3kzZRgXbIl4wRwHcbErbU8oCAljC69SDy41vfWmscxVP9MR
ziHWDD9RecN5+mK5OFkCGeFd82dneM68Bg/Q7RBd3iEgUp845jCLgobUdty7
gBN5KHJ4SiE3yT+u5GjEl9E2Kc9b8KWRaegJJ7eQi+3yj4UiwMxqNj525GNR
qgcQfqVbA8R9aye/CEauoxtKse9OUlGL98tWTYxElLgSx3mMuNz5tZIpybYl
VGF0FqvlnOQzmiBsy4YthpnUX6bed16tFp55VetCV2tDApnwyqVodiWurkZk
jdfZdUUprW6KqZ04nwU68A4Bj0+8zMnqi1efLYpMgeu+fAYDwNc5SV5n12Qb
JIh1VB7Lq9yyH9gXyz+Qk8lD4N6iL0x5YypvpLIdFpHnW/BleoaA6kvV2R0y
HIq93qykFnYqW+N8u8ZMqHbg1V1+m7yg2fFydb3e0vQ/mfEP/6IW94SOFrYg
wcm3ZSY8fPPF29ev374RKyy0L1KZsAw+YwOII1LN/SROir1Wj3iLXD7HvuUT
24uBvKP9xV78BzaY6Lr/4B5Ruy/EGwGkwaO9gHVBc98TbAb/lJ3gPBKu4UM8
CiRkS+B2xSX9vEkoIwAqxBpKoCK1Ow07QTlhNg7W81UCpmZXdcamEZHUyl7h
ysh0t/jireBcVtzn/JCzaEuAM8QhNFZ5TvCWJ1jVcpfaHcJ8IS2t1MB5IVuo
7h7IVTwGFVlfb3CrM+ErLe47yMihsVDD2+AYpV+y0omQBAImg7oEpeREWBU1
Wmbbvod/BDDqEAcgw8kXO9njnjV8sXf44vyzBhnFQDVmuGFmTk4T3kg1EOrd
sUsNDdg0TJi6Yni+cC495ftGHGpmnOzFf8A4Rdf9f2GcrAEiDP5PNU5PisTb
egVSTg/UAdGVhG7ZYB0FbVajcuYJ3DDNHauvFXvQZODVKYJ8SE8eVTm9zCvj
C8ToC4MMiygyYqwmDgxfVYSkjbZNbwD/xlfg3+b/1w1fZbSfNn90JgYrVrZ4
hA5x8udtXHVCfa2Nq/UefXqv4m5qwMtH7Qu4zjFh5X9pyxVEfiLjFUaE/rz9
ql79y01YXXH252wZP9onDt1RkKuh2TRN0TooMgLdiVY4V2q+teA5kDflUNx/
jvXbqWt2+GxuTkC2b+yNXgZjx7FyJbWrPWd8+ZCQH3LGVg/6s2LqSpF8lhEW
Y509sCWZ5Ig6Hu0M5qdPaM8/14+z1cgtqhaLS1wAMYFOW2ktuEZfSZDMWxVg
EcZU9MTEZfMMn19t0GLqgT/lsSmx6u1y9YjsZQA7AtmH9XtBXjfQETwYICBQ
a/4xcaPxX8OWVWqYOfC72SLfRa+nJX6r1XKnPR/QWZ72Lv2tvjGmCQ5G7394
IeP4w4tkMOq2JSzEP9HqpVmSMz3oRilu5dZ07dvcY0uB5FjCPDLWo+TQxkej
bZHMvWQv12uJ64QgC41Zq5kIBMOxqqKey9D521VTMEqis94ul9jhI5hUueUM
sDhX//1ms7kvT7/77pq+sZ1wFOA7xAWopXS92zRbbOyB/EXD1Io3y8zOIhhY
sW2KJ7AC3mhBaVVM2mx5Pn2+BrJMj6v1LUN7r9er7T0NmcKPXrN1ZPgFd/w9
OSHZmrFF3BSuplBKbj8MDGO4upEklujOQfJOidP5bviuWL1iDazJXcZVo7Ho
kIDvaFTulEjG8IN8CaFNKn29qc8Sf8scsI8rg7cxGeOS02E+Z0n7kAwdHkcD
LuSaLOl26TjN7p1Bors6FktlVJVjKJsDnvhqalUpNV8+FOvVUoguHahxidw4
h8mQEk0qk+bMpwwwNq5sRok1QGKDAeNhtcHi6zh6C2aLRb4+m05hWezmN6ZT
dZK8XdozcSBRefxB42rZvnJwsXKFrSORsAq9BhahBGoXxQQMGAuuD2Obt8mt
LhNni1k+ycr8jJNKTw5HoBUTQuM8xpCX/pLnjRwosLfg2Vf6ONkWi42lAh3p
qVn6B1BhqodOWwg1p/hAS9s3GUV3UKdrCJolGimOjgLn5QKoThErnkKd5sA8
GWyQbHX5h4bxzWF7bc5b83w47I3m2bzdm+WjZn/SHLa67f6gO2+1B81+rz8b
5tlgMp82m8NeZ9qeT/v5aNaZ97JWczI+k70JpXAYABb8xvYrJFI6qo4nxIyk
1HswB3+5YjgqHkig54sVxH7GnWFjEVJUcTyXJ3BYFp9Ma/jq9uqzdBEP82mT
4Pki3+bsySwUBQJ2L2S3MFSnKMrYYevRgIS6ClLhtYBBUaSaxl00PCN4QCwp
R1+itY4B1JN3ZnFuMZIrsEyWOXw/nx18ecUZK9UP1KIzvXLKWc2Ul/dSCCKN
SjoQSuBZJ4lP5fhDSoF2HpvrAk1h7aA1dyvgK2MQkHCEi9XP3QDQZcgd5sGU
uKMBUwsFHHgPtgqk+cA5+WyRCh4929wgoO7AEQOFlIsR9SNVSaLPZqVlZISy
OtFxQ+5+Udzmj0WZP9Fuz6lpiAk23rKdoLY25lzfIU4He0N8Bv8Wz7tKcB9Q
FjXcUDeQf9JqaF5OzOrs74bpq2xhwcSVC9oM3ZZ+6ogjoBzqxTI10RCw+egq
FnKiVivtjw11xoDO1/n6dpHLU/OhmNInrTWmtJqXtK+we9kWJEZd8jo5utqz
oI6F4z9f04hVC9HCadyQCI/YvD0q9AArsgPgt3cBpshmfhXe/lLoZWFjmLSX
JuISesbAMSiYg67l6iFSZfrUMU3d0rQ3ZMkoNALGSQI0md+l/raaNOINjFad
UhKWq+SZLjzc4Znmnwz++ijKAKWniUv9Xn0jJoJdC/b+cTrMjKdrqREznhnr
0+Rn6ugHZgCfvr3EiP4G/HUJDn91ce/0dCjlAeq2Gidq2dBinzVQynTRjcIP
eN00kt6oyzOB/kFDtFiI1q3CngHrgBOhd5aaaauiV3rnlOmdZY4VD+SDXsv3
S8FXvHt7efHXlEkocNPS/GEraqEx4ueHlKnO9GXCxDQQFqLLLWlM8fB/plmw
5JfF477n4ETaPmnq7oOTkNt8ZPvfPecj/PGBy0o5oek+/qTl5mc5W4MCZaKP
1zzZOaePMZ8qFfoMoGL3sNWmbt+p27P0PufdqfGrzEXKDOAwNv5yVCYDCUPD
bPEYloxZ7dVYrBQcXbfE1DkE5NWALi7FgskV5Lp7KlFicV0gUKUshXGVMGeH
B36R+uyVVwNTarg8vG5/fHx48JivQ6eHuto86Z40dysh79lnP/XBZXZT2EIw
mxCLSnJP282mYMIODyp0dJ6dkYdRB1ArXuSdb0U2yCGOnABEQ48R1GPP05TZ
6Zhr+KxAxSBwgIAyKyIyyocHDO0SIiAajO1yahCkDc4zXO6ChmKzxsrbuMPJ
k1NO3QoP/PTjSPOe2d9AUW/NaZ6MTppBYQsd3Mh+Tv3w08bWPGl1TloCswyN
hZevENw1PEU+HKvik8Z1dBLwM2Hk24bFtlxj4mfqposeILE1SVzGDqHVSVuq
iB8fzk+SS1D/yQrOKvC7M5HMqLje8fVwr7fra3r+f/dn9F9fvT//a3L16qc3
b39++28Xyc8Xry+uXr1MLi/e//Tq6mLf0f5X2gE+AP39+sU7VLlFIe2y4tuP
LYv/3X8b88KlLWSdSVxzpaB39TBdBF3pGMg5njPnvPnIpZ0iAtanPcf+z5z5
sVVFx37u60vP1+7sILqXzQBoZzUrPtKUDsNoNea8Sk8V+n9ynYuXrb9CxlHF
+054NvnfSsC0hYUMqRyQGpC3tWB2Fhy6lnJzXhgQgaP9+sGpKuyOmWjT8jYu
MVnblqVszxizkWpnQ5I7fQRHDxIT5Zj5FW8UMxVnPaOtXbKXt7Fx8nqIuYU2
pWjBn0K5EwCA0FrPZggP55rGRRnPiVOush6LkJJEpDY4emEMUJEq02MtNCIz
n8sSTYUKoRqKI92qTdwBmmYaCrclAyMheL2yx/TLphSz3YjDM72pGHDJD1KX
LaojmzVZO9Q23tVGi+A1FwvWc/pN3EtFVUpkY41HmK7W15jwVlerno7j+TRH
2ljxDOwsZBl88ueQrDHQU29vpBfifu6SKmR86pl5fsTTpNU8oY3n6v2/sznv
ky96v8nF8ie0JbX7Dc+ui9qbyUdIW0j1TuKrDJQSwFEgwyd3FRwC585F7uJK
1ERick6a+cCoOolIPsmEjjaUiMSGov5YljbHesuVTQdxSrV8duWib488ZqDL
1SJt9l/qGLZpIyh57ngShthrYwpFKThdiyQgUHMPQKaXYq98vwzMCD408XEw
Y1eC5HZUKnT6XWb0eUfGHZ0h/HmERwYteVzJUwfJ6p2hIqLohLfRU9Coo0Iv
eG1Nr7kdRY5nsfmREwTsxxEKFiQ7Zg/DnSrf4zPHckB2N5DV5grr/a2UhCPa
BSrf9XvBzvf8WyfBF7AYsBOh1gK7NhIuWSCXrDaY7ZH/JhPlpZrGHWuM01Ed
88OUrU10wFzpO8aev6rURzYmbDHjnDunvVAIjgf0q7oyOLxvCq3wcxswuTjt
k3YIjQ032kScG148yCjabowmm78UP1F1v2ZcWJAizJ5asqM5cvsqJ38QXuZt
AzdpNj73dZdf14ukzQ4eojpg4l1irLx7GVy/KjRcuIxoeb8oNo71U9gy4Ic6
N/Lz56RK1iaPj0K/lBKd4o1e/S9fvQiKBNGYzUR5xZlQLNkFSmoSsaFiFE+S
f83uS9tvWVKOKe7rbHjDLVxcwtYuP2i+tnCUZzK7DGIA05pKnAWWTwDGl1fn
V79cnty52IpMoDAJhIovdmvN5fzaI+Qv73/G5+pyNmxoPqRZIT9opsbNwvG/
uPe5U+OGrG/3Ik2aDx/NJLlXiyWzMlLbx4lUJybL+zs+AWBZAIvsmvL4+HhC
7/6tRGv0xt/Ft/1LI8o4fe4raNRXfsc1+S9agkXus2CCNfICrDSTJRSrEx2+
eOg0/sYOA7StgvANfc01ZLYqTshT+I726l572Pru7/lyNVudtOnnVm/U+Qse
GGcsXz2sFlsXbf5hiyT/b3RGSY4uLKv6kB8zL7l9sqZwT4CbzKzwUMy25A/G
RUonLCdihzAs3uyWj7Lbe626tUwtW/db2RUrRTOhV4/dJSh8EIZdli8Nanok
bQtF5khth48LjysPc4aLdXhQ3ubiA1hI1QdZeTGccu6LhWFLn31xsEPZOuga
nugxzMJwNQ6bI2rcq/Orq1eXVwbejOP9hwdOCpf3Eh845SZyqCVyMrksQOgI
Pn26vKIrv754869I9V/5NFnAeyEn1ylAYKpWbkVBDtDGDEVMWMcxOOG2chLG
kP/KNtlZJWbtti4Zr4+C6ELlGz+u0hLjfi4lHAmAETuf/Y3O48zarWTznCrP
9EXMMuyZnz79lf6hJ4rShh+vrt4l8jJPgFarSe9QV5b59WpTZIBWcAxkumLL
ZzpgkAf69In+tuuo96KSQajvk1yL8Pl7EW3qgWH4d5hhVR/CyPJPuCfodiJZ
NfoO2vtahdsvbYaQ4yDt77ZbHNoIsgms3laeCX7CwuVZrBilDxkbLWcMjFdD
Hjh2MoNCh+E15d2ge/MukTrG0WCanOjuPeExoQl/T4P2/TnN2fT86h01FNka
JgTJ7pjQQkE8CSdKaNUv6OrczSw8nRZro3/8OOWc2vU6u+f0iNzoIdtOsmUK
v4oe3Po2dcvq06dfz3/5/vwN3dYWYwkvysWqUplUyQOHBB0VfxbXXDiuYy9Z
IeoIkqvhHID1upzSoX56m+b3qVZspybpSYvsxY/v3774CYMguRSyOyb7PLOi
OpG82kTJWwgYMkcDZ4rgyJau/3fZmkvw0qz8j+wBtDtkDVhQJBiG1+fv/8cv
ry7pzraq6M6Qpk4VrWJ3d186gnu5XiFwdT7dsN7FXQGOQoTsMf/OX1ydoxhY
mnKzomnwUR7FbkOoHT++fffzq3+nZjj9Xg5HzlTmMBX5dvfFUHtcbpBNsttU
TLK2O3WaG66chpr1/TmPsnLk2Bv80D2bjLLbCn887mYjkbI24z2Ld2sJ/Jo2
rts8SWnSAi4mxTorKKEZJoYWCbg3XIwBNpE+L5SOov6pGezbPCf3LddeK/EL
NSPFOVvJOASKlLPVm2rRvFIA4BpuOlir9XwDs6/pFkkjl8xZXlppmisVpUvA
8jxmH4NUPHXj1E3+IPRh5kOWx4IjUHTuuEGQJjjqP0YsABblUOlBfQxlIIoD
ehJVrIPKtPVGBBlkSrJWDrvOwVgIkBJqhKVURWlIiymn6Z7Ct6nKkUISpBRt
6a4+tBQ66FxE+OZoF857zNNipTQRboQkToSkvhLD8CSTUL+9YWG+TUyBoMxN
ilwRvVqLHrh0vlXDB3GqYHqIhk9Ay+d50WSSaEg3QOBJfbEQzEaTS0+4PFMQ
E8jpJOGuRp3amsxtuHdz9jeg8FP/OuCyG0eFujTzGeTH4ToEwri75Eh5rU+l
NsCOLwv+dpvfLHI+UitdH9xWLhmU0tWffnn148+vfrt48zI9/+XlBfwiDGH0
ueoDK8rAYVTgXGb0lA2h73ICiIDYFjwt//gDiHsIrcg2xub0nia/OXRyedAs
fOCgvoCVZiuR/QbVjoEVQ1fQhVlpp7njLMf5lXsTjpBU+l8mR+/Pry6Pk7Bz
br8t1rc3q8XfU++DeEuJpBfQGGy1v794/9OPb3/+n+mv5y/ITDrmiIi2So+n
3KmleMGcxw+vxStCmcDu8k3Gvp2LSvPJc4V1/LBSxGiDlwanJSV3gQqe1Ikj
wN2sy1BzXtZKH20f1oS+zSa30D2bKthG4akurUI8c74c2ff8/syZIeeJ2t4o
2UB+zwVaKj03YqJYfTvZ7xTxjE7TNDFGtW9oS7VFqeRmn04t7PD82ZzmWP7s
D43gkAeW/EYn//mc2SUeczXDm7jg2PGPBFX2jk3r8ACiE97bFPj4HGLdAX3D
Ei9k4Fzi64XgoYackrLyVoJduFTAnRVW9wsE2akFAL/F8VPes1gFXVMeHpzL
ulA00S7FfxLJxvWdddUo9yKXSJozW+eP2B4slKkBmeBi/LF3tCBWySs+oVGf
GG6ULesSvS5oTbNlLzRSZYydcFN2n1cso3Tn8MCaIJF/xCGVLtLcQrsUYvdk
TcAnIpBNul1WrHnYoyEXQIacZZVtROqhPZzTQvhQOMBW4AG5VQseCAyLXCFj
XTYoUlJMCDNmeFCI4i9oXf4oSaCFxsJ9ZCdwdRvJtNjoEZg7ktjpDCd5H8jU
DKkkTp4ESoJUZT9SUgF1znAHuGky3yDGuJWZz9NQzT8QzjGYkjm1YL7TSgs0
ccvbvTvXWT8ydxXNv94UjpHHrRNxR8rkxmgquCEnuzPU5oyyxNznCu2wBNxN
oaZplyy94aa3oHVAUmDa5WEckkEBNFq6tIM7GqTVqzLHqC8QAFulmfxij8Zl
E5UL1h1wtFb/Dfk0qwUNwFWOkWV18ai1u5DiRgAoJ5eBpjPIWBysz7j1OCC6
1aeBvIrGXwoxN8BGycmNhnNThChYQzUbdClKx1WAxZW8ePJbtuDE1I/Z4y3v
8+bV8e2KDSbdvVJeOi2gLRkHmXumZLnmYQMmain+ojom/NzB3oegWZFdr5J3
wFzYoAWYWsHalk+haJlFExhIXnEO6gksZGh0A9HdUkJsl+9+ukgZIfPAMxbi
uzLQccHSOk+dwEYFhssfZoWCXOetlvFK7cCT0AONOmkaVSIjPEtkwnHrYwwg
4/G02cwWC97srULaGG8YGOLDA9jvhtVEAQXU0OSKJscc+V0oOBOXNelm5DTD
xbob/Y1MTe57QwtNNeWjVZiaScfUFMYf2UdpbtLchaXl42S+3FgeXGZ6Je+t
bF+HB6C6wQdkdpe5mxohxbyvrjDUuMfSl4pJeRINcsmKPMvkdSG553OalrTt
rm5Xi9VDgN7AvTJyY8iTWCh4xDdozj7pi3ffs30OigPugpNT4Urevi01RDsY
9mjc5OzGCuBCtpVcpP92+fYNVpPjytTKr3sXWOJJoJCiILbF2J380XZIWRIm
7UAGWXQyC+d9msEQFg4I19G++JB/xPbjSzeLIHApfKKpiEctTWnNwZH88whg
4zf5gt0LzFLdKj38N9RSZJAEncmB9ZGMXaS0GLDmClWPr9tDMRav06tWq4F8
zx4OJnVdncGhGzFG7Fd9lJ++0Yf6x1539iqajAyO5lqkYbPTTl7N2r1ea8QQ
Eejq0VyhM/E3reRoXnwQzdrl4iMjlXI59/qKEV7lx7xMPgDmTD7ymmGRDqpn
95NAp2mNLB09Hu9f/OBBxlVNTZ3KSogNkiT8lXQLAQp3GpBZY1atulso6kWr
Iky8pRGS/W1AoEmb20rr+yq0YT5inolkyOwBASxEC7ROTg5Kvsb0FLk47Jqn
osb5HKQP67Q1bkjNpbyQ4wVxI56PW5xJM7jC8/Evly/HxnTD5YnPaSOYT7Nu
q9ueZcNs1u626L9Re9huD4ajznDUnXcnvU6/l88ng24/6/bao3k+ms2brdZo
1mrOsvZ0fHiAWKMWadgg/HL1Qzq0eg597fzyxcWFFj7SnV0yXudjKg2jFuLh
yoFB43zO/Gjr/XBKVRCUJ7/V+gbBfQhO8NMnRjmmeL3kennmwvOynM+ZHbnB
oRZTzn2+WW/pecaCePKxJIDKP28Nmv4PrkDP8Pl42WpGf3i8yTK999Kfei0N
Bz4fq8b7WNKtvqr4hlbD0SMHCgS1SC9yacYxpsL/pj+HB8Nub9hpZp1mq9Nu
dgbDdrNPzRo0+9P+qN+hn7v077yft+f0W6/fHfToHf6dDM2gTa/wqyP6Rrc9
oZ/b/fmg3ex2h81+3pnPhnN6vqPJpN/Mmr3hhM6+nYzp+w4PWnSX/mDAdxv1
e4N2e9ZpyXv0Tsu/0+9F77T79N3g906/0+v1Ot2ue6U7GHab/T63vdPt8H/t
fpd+HvZb/S59t82v9rv4d0R/D+m/dmdA/446HfzdpS93++1Oj36ny1Mb+n3+
BH+7j6v26BsjerVHf/Onm3SfFv9Mfzdxt3a/41rUo6GjXV1/68977p0Bv6M/
D1sTPO3WcDKd573+sNm092ikaYRpQOnqT/zPrpQFV50cHvQH1HM8F3qW9AR7
ND7NrN1t90eTQa/dmnWbo3ySU49nk/ZoQE8oa/cm7c6sT+ueHm2WdbNhvztp
TTpZJ59NepNOs9cZTDrdSbM7zLhpg06e5Xm3lc07g1Y+n0/6w8ODfDqZdAeT
YTOnKw/ywaCXD6dZ3pvQ05l2mlObgVz4qEjjirH6HsoHwen0+Vj3gfR6tZqV
sZVKKkZK8hu7Mt9ssfLOpDntdtuj4Xzamra6o2w+mXenwxHN9cmIxmaQUXdo
TLqjCU0Ism+j3mjUmpDL0Z4Me70ai8XRVFCamQcYWBXJRs+Ka0fXnUtVQxD8
RtLHocp0c3AqYsljvlikomjFGwUboSn3bPHCnBwyHPQG9xt1Nnl5vtmxMUl2
334t2UpnR/6s0WgFRqP15UajP6PpmPexfAadLzEbw1E24AlNS6jVogVLV+jT
vBzSUu+xCWrPaIrP6X/dgS06Xp4tZybavPwqhqLdmcBQ0CKnxd2k5dplU0HL
f8jGg0xEB8ZjxAaHDQCMghiIEZkBNgkjGBEyDdSjHswK/93Ht9owJ4cHXTVE
IzIa/M1WX4wNmZB+G//2XIumZDpyHie6jhkMWod7DUO7k8/7vJxpbtKybE2n
g8l81pmTHzmcDOkq09lsOKBxbmf5NGtRq2ktTmbT6XTUyeZ5q90aDmmcabE3
57N5Tt/Iu7Rwaep3B7PpoDudTprzFvd53px3+a/+YN4eDukJZv3OqJfT/+n5
D3OaBTO/nAP38Hvm7JR9+AUyLJ++0UBeyl57imPtflfxd3yLtRAl8/F78jrP
cDoIWeeNeT6QHlE4p8s7/h5oc5R8Pa+VqrhHX+BcUcJSlWY5hfP7Y2iJ2ae8
SCsKtvAVehkNsgyztSbI/VQbdFmR36J77BHQrXbVScLsXJLD3mPRevIJFtXM
W4VKfL7oc7efgTrwLKC03e1sJAy40xhygPbp2ioSDUfSoHOz4CHuXm+svo/U
YGrzkHuqkyFm+YroiYiyxoSOYre74+YQODRI44rnNcbHOKGpYRyu0XLc1ALo
8BQXR3FEgZMOSf9YmrJHDooaUKsFQ6+/WTl+ptSk7pyubqCOG84W3UBOFUsR
8K/opcpANEFyYlyDKkQZ1F6DKIvataYcBBRo0AfmqowC23L64WcqkXuMKx+Q
PJDflTwzyYvRs0hqQsI4vkQ/xMorvtZpCTtBUUOq1ytISeK3EarEGKxWy4ZW
AYsV1LwkBwBtoh0hqFhetMpd46WMin3SUK5sAROh7iN7DZbjuZViOEgI+yil
Nn8ZzYvVeqexQY1p1ZzsijY9MSOvdu/nazVuakS0VISpFEj6Y67QpJqSgY0v
dPcsshDwGh8HxTrIrz+GifT1VlkefBYetQ9VheH6J4PhqBOZ2nkikWpVqqBs
We8Yc1c+56ki0ziIqfLBZ+rwycr+tpQg7PXWpxCwiLaLjRPvwqQVzV9OJ1oQ
/jb/WAY5wVKRSuiTUhc/OcnOlzt0yp+bZp4uuXaiyarg3JkuQdHgKgJlXg7J
4YC+1Bq+QrUKQR3lE4qQ68q1aM1IUTSbuabdID9loYriNrC/AXrCcMxBLvIx
W9xiJtRsCmPHnaRpBmcYOEfCw9Uw5jvVTkLl2p7PRnNPg0IzK8Hi1aAFA9ul
ERngkQUB5upzi5dhDcWWs+5ml2oeIVtofYxOtw/xH1Y/CEtB2X8oGX0uS8dE
EhyeJ8zhOQGfNR6RkGqhZCWDD5fPdii2jne7C2AUu3k7PfXcYLHxz6p+W6VP
Ee9CWOZaHToVVNbuXmfrCc9QJh0mt0UfhS0TfYSCmyKXt35n1zVS7Uvtdu7X
k/QK9yg3SvqgXG3rcOY5G3umOWOftRE8p2hgRYZ1j6E4qiYlnBpH6COIpCnX
1ntjYX7D4qP3HDb7HAfto3MdbBeqjlvwZL50+NzsOPMCXX5RFM4pgIgoaqhk
QtiMrm2Hs+Rf1AT3afcMGdRCi8BFOSLnBHz1SdRGmEZ7aruui3NVMqf0FTgf
tFc65uFoazu2gw6Y6lcxS4QuXyOxd32wReP8Nd50sOXw6oK+5rlBqvxmb+Ko
lX7rRdSAW2oGQ17b5Lot191j99pftmFFxM1f5By5tgngK12ugmPljnl6ooEu
b49GMk7RfdhtWMFRTGK6PMiWSQLNaZC8c94uto+z+NGZPCTzW9fezHbZi020
PzGzmhFtuO+YQHmEQLkLJ7SjK5jZJm/HPd0D9kxL3lA4tlUZazR730yw6U7u
Hahd1Z4U5PiZxqbVc7LdFDXdoM8yBSsPiC3CLBcCJ8APCjDeVQs2GxGCE4he
LgaVXE/dAwB2AXYpoik3N1mY3RQA4OYmL2TnJBn8AqaADRvIHFB/gXO6+MbD
tB2hLztpZ6wAOCkgDv1yq2i40lwTikVpHuelg2vyy0J7lJcB8dEwHY3jcwvk
k59atAqVE381nL8OtWr6l6v48Boopvlz7b1VAgRKyPimOlFx274gTnKuxeTe
hAdPmBP2LkVXeikOayLXS6qcdrWylztjyR7bR21w5yJkY8/2LLpmYdicYoPk
MM+bSb7M58UUTKeKGxaac50lPG9d2jLQ2vTcoKbtOw4uFaoV1xy8dDvVlbmQ
6HOqEaSaw4PFlviMLtEjxYlHJy8fYVK6h+BIRM0u1clcOj0l3ZQjzW572HuP
pudJHCLhFaUrko0hzfbVzEXbvXK2ZscFnBhIU9eFHLzit1wOBb//sYUXZM0V
13iv9rchCWokw+t6jaX2pzsdKKRrj/YOwCZGqoMGASE/t0kEYZpnPKBOAv2Z
coc9oXi+6+9POBhS6cw7ddXUfa86cxKHs037yL0h5K25atzBMhgRskJyjr/2
fCOUB0Fll25AS3ExLNaz77xm/RXCgc8c5dwRfOcEt3PixpZlbpvRGdiJq+pU
ZiHIfpmLxaHpJU5TuV3POXT5iPWpmLpGcESA7F6pkPW8RgxJ+mh4qdQRM9R0
0EuNM/UpNXNTKvA+3hXGABVe3uaPTCtnlKKy8LmS4czTP5jimUOWyqdCBF9o
gqpy3qoFeoQAbc/6UmMnazaPYJkYJlw6wLcJje3YudnWfTWzXEOh6htm1cMF
gnLudLuUionfEzECxtNiwVO+tjcL26VUw/Pn3/haG+9+qB6hu/FSIjBf0Ruu
Zp3btidwS9v5VBIx3FEANKGOmg2KQsUBmg6dZRCGYXkfjZVCeo9Mg9V7PRXI
evKM7841VaptbJd+c3XodZ9JTqeaShbqK5QsVTxJgYbNiiAmCd/rjKsy6SzN
PAugZJG1dyT0g8O01eLQptOVrfMJTZsrfJYNQfO6FkrD5qK/ZcFCV7gT+AaF
aTTMPMcYu3fH1R1f8DIprnskQ1RqLeBp8DEVAkxFqzxwGHYHb+czzvGvvmHB
uerrnJfZ+6YXTq//ng+f7Db2PiXPN9WSXrx9XLPqgQhS2L/AwQPNC56S/IT6
3dQB0VJOq1+vs7u7TAHyVTEKMcmO7D2OWK4kORYlV1+coMiePvXqQ8bmjOmy
PbGOFK5++iaXN58C5BVlYggqieY4vKKc703vrLTLb9e3rLizKNZZckQ3Oz48
EJAVAzTpOzAKJucoXtxdwTZmuwS5ptULiPHgzZMxT2OtSebQhDurPM3/jUiW
ZxxWcDVXq2kWAB+wEmiHR0ULwkDZcoZHmrvPMigYLuAbpuNg6VV2qNgacUHT
4kFZAFviB717+U4gwiY7LCqbR9pB6V1wNhjTmBnojmkXkjHd7T5tBbSBShCj
FhnSDOIJaGGlxhLk26i3Xaat5obLYOWBp9BJpVa2pY2GCLwQB0K0VrNKfbMd
cEqdiSCnIevgAX+0EwuRWAgIETihFJu1kkTRhNIn+lVROjwKSeJxOjQINVC6
hDUhIiid1PAHULq93T08iPF1w1G32ewDPoHLMr6u/nt1CLskcRA7DS57kMOn
U7bQ683zZx1eRR0ZYzwbHdml86qxNHTjG9MPGwAs8dkxCsZaY6Oks8B8esPs
NerGjP+X9sRQPPJrRzp2PA44jNerx1Nch5PmT0wLt3HXT02VHk4SczelT3yH
IPQcVe5xg2mydU9QhBDKCIlqOIDQcXR7YyNmRUp6WNGBgHJEcMoXUK2GCmJS
tjsdfpQ7K6VSMskWGaJt5q4jweKdUecuIQYWqKSIi6XDCCdoXOeLjX1YFviR
imslMR/DH5dCvThTclI+FlVCsEF+OZhIFk5lahAhzvMWfi0DMddZRD8hYamw
DKaLfqQF85FN73Yj2f2VYORtFLXQpxoSvAoSkolXAxjvR9iMfbqFGxSz6MlR
TRjYyDQLNRZse2bU2A7ZrBHtzQpFJdPNqVBZyaUX+Rwgf19OLVY5EJgwbouI
wkQqyjn+jVI1x5IM/AmGFyYed2pISG6dL7QwK951nEtYBlyaAe+hL5QPCCwY
5qcVUaiDV77BXaJEBaPHNnlXLIPOoyFpHhjzXJGulrcxzywuE1LtMdUCPdhN
wdk1I9xS2Sk7Svn9q2FUuo5HL2CDNJI979QH5IliWxBCzgqEnUBe5Y5prg0o
AUJNmsy6JQsBzDJTQZNDwyRb3gYMd0Jko6EVdkWZMkQcEMv34XNymK1FFrgO
YYhORTVaj2UN4TsJS+rmLHhwBR4tMHgi9qoRENesRy6YUSIHF8K62yFxDWhN
UL/pJhT3Uks1FVgk53Fwhmslugam4b7YswhXz8YZwcMDr9UW2LyjvUEZRVXg
tlglenhhnOl6LQ/ECGTU94jTUq64cFKADM9y/wilWTl9RJ0onvJaIgqr3Vi7
1JYh2M0lgLSq/w8D1YUifhICAA==

-->

</rfc>
