<?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 xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-hood-agtp-session-01" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.35.0 -->
  <front>
    <title abbrev="AGTP-SESSION">AGTP Session Protocol</title>
    <seriesInfo name="Internet-Draft" value="draft-hood-agtp-session-01"/>
    <author fullname="Chris Hood">
      <organization>Nomotic, Inc.</organization>
      <address>
        <email>chris@nomotic.ai</email>
        <uri>https://nomotic.ai</uri>
      </address>
    </author>
    <date year="2026" month="October" day="30"/>
    <area>Applications and Real-Time</area>
    <workgroup>Independent Submission</workgroup>
    <keyword>AI agents</keyword>
    <keyword>sessions</keyword>
    <keyword>agent communication</keyword>
    <keyword>long-lived connections</keyword>
    <abstract>
      <?line 94?>

<t>This document specifies the AGTP Session Protocol (AGTP-SESSION), a
companion to <xref target="AGTP"/> that defines session semantics for agent-to-agent
and agent-to-API communication. AGTP-SESSION addresses two distinct
session models: bounded sessions for time-limited transactional flows,
and persistent sessions for long-lived agent contexts. Both inherit
identity, authority, and attribution from base AGTP. This revision
specifies the session identifier format, the ESTABLISH, RESUME, and
TERMINATE methods and their wire format, and resumption after
transport loss, in which a session is bound to its participants by a
signed session token and to the live sender by the per-request
signature of base AGTP; no transport connection is part of the
binding.</t>
    </abstract>
  </front>
  <middle>
    <?line 109?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Base AGTP defines request-and-response semantics for individual method
invocations between agents. Many real-world agent interactions span
multiple invocations under shared context: a chatbot conversation that
continues across hours, an agentic commerce flow that completes a
transaction across a sequence of methods, a research agent maintaining
working state across a long-running task.</t>
      <t>These interactions need session semantics that base AGTP leaves
unspecified. AGTP-SESSION defines those semantics as a companion
protocol that builds on base AGTP without modifying it.</t>
      <t>The architectural commitment is simple: a session in AGTP is an
agent-level abstraction, distinct from a TLS connection, a QUIC
connection, or any transport-level session. It is a logical context
shared between two or more agents (or between an agent and an API),
within which multiple method invocations carry shared identity,
authority scope, and attribution chain.</t>
      <t>A session may map to a single underlying transport connection, may
span multiple connections over time, or may persist while the
underlying transport is intermittently disconnected and reestablished.
The session state is the agent-level fact; the connection is the
mechanism that carries traffic when active.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" 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>
      <dl>
        <dt>Session:</dt>
        <dd>
          <t>A logical context shared between AGTP participants under which
multiple method invocations are correlated, identity and authority
remain consistent, and shared state evolves across the lifetime of
the session. Sessions are agent-level abstractions and exist
above any transport-level construct.</t>
        </dd>
        <dt>Bounded Session:</dt>
        <dd>
          <t>A session with an explicit termination condition: a time limit, an
action completion, or a transaction outcome. Bounded sessions are
appropriate for commerce flows, multi-step delegations with finite
scope, and any agent interaction with a defined end state.</t>
        </dd>
        <dt>Persistent Session:</dt>
        <dd>
          <t>A long-lived session intended to span hours, days, or longer. State
is maintained across reconnections. Persistent sessions are
appropriate for chatbot interactions, research agents, monitoring
agents, and other contexts where the agent retains continuity.</t>
        </dd>
        <dt>Session Identifier:</dt>
        <dd>
          <t>A 256-bit cryptographically random identifier assigned by the
responder at session establishment, encoded as 64 lowercase
hexadecimal characters, carried in the <tt>Session-ID</tt> header of every
method invocation within the session. Unique per responder; never
derived from either participant's Agent-ID. See
<xref target="session-identifier"/>.</t>
        </dd>
        <dt>Session Token:</dt>
        <dd>
          <t>The signed record of a session's establishment: a compact JWS
<xref target="RFC7515"/> issued by the responder over the session identifier,
the two participant Agent-IDs, the session model, the expiry, the
resume window, and the session-scoped Authority-Scope grants. The
token binds a session to its participants. See
<xref target="session-token"/>.</t>
        </dd>
        <dt>Session Root:</dt>
        <dd>
          <t>A 32-byte rolling SHA-256 commitment over the ordered sequence of
Audit-IDs of the responses exchanged under a session, folded by
both participants independently. Equal roots mean the two agree on
what the session has carried; unequal roots name the point of
divergence. See <xref target="session-root"/>.</t>
        </dd>
        <dt>Initiator, Responder:</dt>
        <dd>
          <t>The agent that sends ESTABLISH and the agent that accepts it. The
roles persist for the session's lifetime: only the initiator may
RESUME, and either may TERMINATE.</t>
        </dd>
        <dt>Session Context:</dt>
        <dd>
          <t>The shared state associated with a session, including at minimum
participant Agent-IDs, Authority-Scope grants applicable
to the session, accumulated Attribution-Records for invocations
within the session, and any session-specific governance metadata.</t>
        </dd>
      </dl>
    </section>
    <section anchor="session-models">
      <name>Session Models</name>
      <t>AGTP-SESSION defines two session models. Implementations MAY support
one or both depending on deployment profile.</t>
      <section anchor="bounded-sessions">
        <name>Bounded Sessions</name>
        <t>Bounded sessions exist for a finite, often short period and complete
when one of the following conditions is met:</t>
        <ul spacing="normal">
          <li>
            <t>An explicit time limit (<tt>session_ttl</tt>) expires</t>
          </li>
          <li>
            <t>A defined transaction or workflow completes</t>
          </li>
          <li>
            <t>A participant explicitly terminates the session</t>
          </li>
          <li>
            <t>An authority constraint is violated (e.g., scope limit reached)</t>
          </li>
        </ul>
        <t>Bounded sessions match the semantics of agentic transactions where the
session has a clear lifecycle: an agent initiates a purchase flow,
exchanges several methods with a merchant, completes the transaction,
and the session closes. The session boundary is meaningful to
governance and attribution: all method invocations within a bounded
session are correlated under a single transactional context.</t>
      </section>
      <section anchor="persistent-sessions">
        <name>Persistent Sessions</name>
        <t>Persistent sessions exist for extended periods and survive transport
disconnection, network instability, and platform restarts through
the resumption procedure of <xref target="resumption"/>. The session identifier
remains stable; the underlying transport may reconnect any number of
times during the session lifetime, and each reconnection is
re-bound to the session by the initiator's RESUME.</t>
        <t>Persistent sessions match the semantics of long-lived agent contexts:
a chatbot maintaining conversation continuity, a research agent
working on a multi-day task, a monitoring agent maintaining persistent
attention to a system. Authority-Scope grants applicable to the
session may be re-validated periodically; identity verification
follows base AGTP semantics on reconnection.</t>
      </section>
    </section>
    <section anchor="session-establishment">
      <name>Session Establishment</name>
      <t>A session is established explicitly via an <tt>ESTABLISH</tt> method invoked
between two AGTP participants. Implicit establishment via an extended-
context flag on a standard method invocation is noted as an
alternative under consideration but is <strong>NOT RECOMMENDED</strong> as the
primary mechanism. Explicit establishment provides:</t>
      <ul spacing="normal">
        <li>
          <t>Unambiguous negotiation of session model (bounded or persistent),
session lifetime, and any session-scoped Authority-Scope grants</t>
        </li>
        <li>
          <t>A clear root for the session attribution chain, with the ESTABLISH
invocation serving as the first signed Attribution-Record under
the session</t>
        </li>
        <li>
          <t>Clean error semantics when negotiation fails (455 Scope Violation
if session-scoped grants exceed the establishing agent's
Authority-Scope, 4xx for unsupported session models, 5xx for
governance platform unavailability)</t>
        </li>
        <li>
          <t>Predictable enforcement boundaries for governance platforms and
Scope-Enforcement Points, which can recognize session establishment
as a distinct event with no inference from method context</t>
        </li>
      </ul>
      <section anchor="establish">
        <name>ESTABLISH Wire Format</name>
        <t>ESTABLISH is invoked on the path <tt>/session</tt> with no <tt>Session-ID</tt>
header and carries the standard AGTP request headers of <xref target="AGTP"/>,
including <tt>Request-Signature</tt>. The request body is a JSON object:</t>
        <artwork><![CDATA[
AGTP/1.0 ESTABLISH /session
Agent-ID: <initiator Agent-ID>
Authority-Scope: documents:query, knowledge:query
Request-Signature: <JWS per AGTP>
Content-Type: application/json
Content-Length: ...

{
  "model": "persistent",
  "session_ttl": 86400,
  "scopes": ["documents:query", "knowledge:query"],
  "resume_window": 3600,
  "initiator_nonce": "<base64url, at least 96 bits>"
}
]]></artwork>
        <dl>
          <dt><tt>model</tt>:</dt>
          <dd>
            <t><tt>bounded</tt> or <tt>persistent</tt>. <strong>REQUIRED</strong>.</t>
          </dd>
          <dt><tt>session_ttl</tt>:</dt>
          <dd>
            <t>Proposed lifetime in seconds from establishment. <strong>REQUIRED</strong> for
<tt>bounded</tt>; <strong>OPTIONAL</strong> for <tt>persistent</tt>, where absence means the
responder's default.</t>
          </dd>
          <dt><tt>scopes</tt>:</dt>
          <dd>
            <t>The session-scoped Authority-Scope grants the initiator proposes,
in the grammar of <xref target="AGTP"/>. <strong>MUST</strong> be a subset of the initiator's
claimed or inherited Authority-Scope. <strong>OPTIONAL</strong>; absence means
the session carries no scope narrower than the request's.</t>
          </dd>
          <dt><tt>resume_window</tt>:</dt>
          <dd>
            <t>Proposed seconds after transport loss during which the responder
retains session state for RESUME. <strong>OPTIONAL</strong>; the responder
<strong>MAY</strong> shorten it.</t>
          </dd>
          <dt><tt>initiator_nonce</tt>:</dt>
          <dd>
            <t>Random value echoed into the session token so the initiator can
bind the token to this request. <strong>REQUIRED</strong>.</t>
          </dd>
        </dl>
        <section anchor="body-extensions">
          <name>Body Extensions</name>
          <t>Companion specifications <strong>MAY</strong> add top-level keys to the ESTABLISH
request and response bodies, registered in the ESTABLISH Body
Extension Registry of <xref target="iana"/>. A responder that recognizes an
extension key negotiates it and returns the negotiated value under
the same key in the response; a responder that fails to recognize a
key <strong>MUST</strong> ignore it and <strong>MUST</strong> omit it from the response, so
that the absence of the key in the response tells the initiator the
extension went unnegotiated. An initiator for which the extension
is essential <strong>MUST</strong> then TERMINATE the session; using it without
the extension is prohibited. The first registered extension is
<tt>communication</tt>, defined by <xref target="AGTP-COMMUNICATION"/>.</t>
          <t>A successful response is <tt>200 OK</tt> with the <tt>Session-ID</tt> response
header carrying the new session identifier and a JSON body:</t>
          <artwork><![CDATA[
{
  "session_id": "<64 lowercase hex>",
  "model": "persistent",
  "expires_at": "2026-10-28T22:00:00Z",
  "resume_window": 3600,
  "scopes": ["documents:query", "knowledge:query"],
  "session_token": "<compact JWS>"
}
]]></artwork>
          <t>The responder <strong>MUST</strong> verify the initiator at Level 2 or Level 3
per <xref target="AGTP"/> before issuing a token, and the ESTABLISH invocation's
Attribution-Record is the first record under the session.</t>
          <t>Rejection: <tt>455 Scope Violation</tt> with reason <tt>scope-exceeds-parent</tt>
when <tt>scopes</tt> exceeds the initiator's Authority-Scope; <tt>422</tt> when the
requested <tt>model</tt> is unsupported by the responder; <tt>503</tt> when the
responder's governance platform cannot be reached to record the
session. Implementations <strong>MUST NOT</strong> establish a session by side
effect of any other method invocation; the absence of a successful
ESTABLISH response means no session exists.</t>
        </section>
      </section>
      <section anchor="session-identifier">
        <name>Session Identifier</name>
        <t>The responder generates the session identifier as 256 bits from a
cryptographically secure random source, encoded as 64 lowercase
hexadecimal characters. It <strong>MUST NOT</strong> be derived from, or
correlate with, either participant's Agent-ID or any prior session
identifier. It is carried in the <tt>Session-ID</tt> header on every
subsequent invocation within the session, in both directions.
Base AGTP assigns <tt>Session-ID</tt> no semantics; this document assigns
it the binding below.</t>
      </section>
      <section anchor="session-token">
        <name>Session Token</name>
        <t>The session token is a compact JWS <xref target="RFC7515"/>, algorithm <tt>EdDSA</tt>,
<tt>kid</tt> equal to the responder's Agent-ID, signed with the responder's
<tt>agent_public_key</tt> as published in its Identity Document
(<xref target="AGTP-IDDOC"/>), over the <xref target="RFC8785"/> canonical form of:</t>
        <artwork><![CDATA[
{
  "sid":        "<session identifier>",
  "initiator":  "<initiator Agent-ID>",
  "responder":  "<responder Agent-ID>",
  "model":      "bounded" | "persistent",
  "iat":        <seconds since epoch>,
  "exp":        <seconds since epoch>,
  "resume":     <resume window, seconds>,
  "scopes":     [ ... ],
  "nonce":      "<initiator_nonce>"
}
]]></artwork>
        <t>The token is the binding between a session identifier and its two
participants. A responder's governance platform <strong>MAY</strong> countersign
the token (a second JWS over the same payload, carried in a
<tt>governance_token</tt> body field) where deployment policy requires a
platform record of the session; the protocol depends on the
responder's signature alone.</t>
        <t>The initiator retains the token and presents it on RESUME. The
responder <strong>MAY</strong> retain only the session identifier and verify the
presented token by signature, which lets a responder that restarted
recover the session's binding from the token itself.</t>
      </section>
      <section anchor="binding-to-the-live-sender">
        <name>Binding to the Live Sender</name>
        <t>A session identifier and token establish which two agents a session
belongs to. They never establish that the sender of a given request
is one of them. That proof is the <tt>Request-Signature</tt> of <xref target="AGTP"/>,
present on every invocation and verified under the sender's current
key. Within a session the responder <strong>MUST</strong> additionally check that
the request's <tt>Agent-ID</tt> is one of the two participants in the
token for that <tt>Session-ID</tt>, and <strong>MUST</strong> reject with <tt>401</tt> and
reason <tt>session-participant-mismatch</tt> otherwise. A session is
therefore bound to its participants by signature at establishment
and to the live sender by signature on every request, and to no
transport connection. A responder <strong>MAY</strong> also bind each live
connection to the session with a TLS exporter or QUIC connection
identifier as defense in depth; that binding is per connection,
re-established at every RESUME, and separate from the session's
identity.</t>
      </section>
      <section anchor="session-root">
        <name>Session Root</name>
        <t>Two participants in a long session need a compact way to stay in
agreement about what the session has carried without resending it.
Each response under a session carries an <tt>Audit-ID</tt> (<xref target="AGTP"/>), the
identifier of its Attribution-Record. Both participants fold the
sequence of Audit-IDs, in the order the responder emitted them, into
a session root:</t>
        <artwork><![CDATA[
root_0 = SHA-256( "agtp-session-root" || session_id )
root_n = SHA-256( root_{n-1} || audit_id_n )
]]></artwork>
        <t>where <tt>||</tt> is byte concatenation, <tt>session_id</tt> is the 32 raw bytes
of the session identifier, and <tt>audit_id_n</tt> is the 32 raw bytes of
the n-th response's Audit-ID. The root after n responses commits to
every response so far and is independent of how long the session
has run; it is 32 bytes on the wire however many exchanges precede
it.</t>
        <t>A participant that holds a root and the Audit-IDs since can verify
the other's root by refolding, and can fetch any response's full
record with <tt>INSPECT target=audit</tt> (<xref target="AGTP"/>) to verify against the
raw record later. The root is carried on RESUME, where it lets the
responder detect divergence beyond the single lost response that
<tt>last_response_id</tt> covers, and on TERMINATE, where the final
Attribution-Record commits to the whole session. Carriage elsewhere
(for example on every n-th response as a periodic checkpoint) is
permitted and is operator policy.</t>
        <t>The construction is the rolling-commitment pattern of <xref target="HCTP"/>,
restricted here to Audit-IDs so that it composes with the per-agent
audit chain of <xref target="AGTP-IDENTIFIERS"/>: the per-agent chain records
what one agent did; the session root records what two agents agree
the session carried. A deployment that needs the full acknowledged
history and unacknowledged-window machinery of <xref target="HCTP"/> <strong>MAY</strong>
carry HCTP payloads inside the session as EXECUTE content; the
session root is the minimum the session protocol itself needs.</t>
      </section>
      <section anchor="resumption">
        <name>Resumption After Transport Loss</name>
        <t>When the transport carrying a session is lost (connection reset,
network change, responder restart), the session persists in the
<tt>Suspended-by-transport</tt> state for <tt>resume_window</tt> seconds from the
last successful exchange. Within that window the initiator opens a
new transport, re-establishing identity at Level 2 or Level 3 as for
any new connection, and sends:</t>
        <artwork><![CDATA[
AGTP/1.0 RESUME /session
Agent-ID: <initiator Agent-ID>
Session-ID: <session identifier>
Request-Signature: <JWS per AGTP>
Content-Type: application/json
Content-Length: ...

{
  "session_token": "<compact JWS from ESTABLISH>",
  "last_response_id": "<Response-ID of last response seen, or null>",
  "session_root": "<64 lowercase hex, the initiator's root, or null>"
}
]]></artwork>
        <t>The responder <strong>MUST</strong> verify, in order: the <tt>Request-Signature</tt>;
that the token's signature verifies under its own key and its <tt>sid</tt>
equals the <tt>Session-ID</tt> header; that the request's <tt>Agent-ID</tt> equals
the token's <tt>initiator</tt>; that <tt>exp</tt> is in the future and the resume
window is still open; and that the session is in
<tt>Suspended-by-transport</tt>, short of terminated. On success the
responder returns <tt>200 OK</tt> with the <tt>Session-ID</tt> header and a body
carrying <tt>last_response_id</tt> and <tt>session_root</tt> as seen on its side,
so the initiator can detect a response lost in transit and
re-request it, and the session returns to <tt>Active</tt>. When the
initiator's <tt>session_root</tt> is present and differs from the
responder's, the responder <strong>MUST</strong> still return <tt>200 OK</tt> with its
own root and <tt>last_response_id</tt>, and <strong>MUST</strong> include
<tt>divergence: true</tt>; the initiator then reconciles by fetching
records with <tt>INSPECT target=audit</tt> from its last agreed point. A
divergent root is a signal to reconcile and an insufficient reason
to refuse resumption, since the usual cause is a response lost in transit. On failure the responder returns <tt>410 Gone</tt> with
reason <tt>session-expired</tt> (window or <tt>exp</tt> passed), <tt>session-terminated</tt>
(a TERMINATE was processed), or <tt>session-unknown</tt>; a token that fails
verification is <tt>401</tt> with reason <tt>session-token-invalid</tt>.</t>
        <t>If a RESUME arrives while an earlier connection for the same session
is still open, the responder <strong>MUST</strong> treat the newer connection as
authoritative, release the earlier connection's binding, and log the
event; two live connections never share a session.</t>
        <t>RESUME is an action method for the purposes of <xref target="AGTP-BINDINGS"/> and
<strong>MUST NOT</strong> be sent as QUIC early data.</t>
      </section>
      <section anchor="termination">
        <name>Termination</name>
        <t>Either participant ends a session with:</t>
        <artwork><![CDATA[
AGTP/1.0 TERMINATE /session
Session-ID: <session identifier>
Request-Signature: <JWS per AGTP>

{ "reason": "<token>", "session_root": "<64 lowercase hex>" }
]]></artwork>
        <t><tt>reason</tt> is one of <tt>completed</tt>, <tt>ttl-expired</tt>, <tt>scope-violation</tt>,
<tt>revoked</tt>, <tt>operator</tt>, or <tt>initiator-request</tt>. <tt>session_root</tt> is the
terminating party's root over the session (<xref target="session-root"/>). The
response is <tt>200 OK</tt>, carries the responder's own <tt>session_root</tt>, and
its Attribution-Record is the session's final record, signed by the
terminating party, naming the reason, and committing to the root so
that the session's whole history is verifiable from one record. A terminated
session identifier <strong>MUST NOT</strong> be reused and RESUME against it
returns <tt>410 Gone</tt> with reason <tt>session-terminated</tt>. Expiry of a
bounded session's <tt>session_ttl</tt> is enforced against the responder's
clock and produces the same final record with reason <tt>ttl-expired</tt>
without a TERMINATE invocation.</t>
      </section>
      <section anchor="method-registration">
        <name>Method Registration</name>
        <t>ESTABLISH, RESUME, and TERMINATE are registered in the AGTP Method
Registry by this document (<xref target="iana"/>). They are session-management
methods: none is safe, none is idempotent, and all three are action
methods under the properties defined in <xref target="AGTP"/> and its methods
companion.</t>
      </section>
    </section>
    <section anchor="inheritance-from-base-agtp">
      <name>Inheritance from Base AGTP</name>
      <t>AGTP-SESSION inherits all base AGTP properties:</t>
      <ul spacing="normal">
        <li>
          <t>Agent-only at the wire level. Sessions exist between agents;
general-purpose actors have no session.</t>
        </li>
        <li>
          <t>Agent-ID present on every method invocation, including invocations
within a session, with Owner-ID resolved from the agent identity
document the Agent-ID references.</t>
        </li>
        <li>
          <t>Authority-Scope enforced on every method invocation. Scopes stay
exactly as granted inside sessions.</t>
        </li>
        <li>
          <t>Attribution Records signed for every invocation, including those
within sessions, with the session identifier included in the
attribution metadata.</t>
        </li>
        <li>
          <t>Status codes, including 455 Scope Violation and 551 Authority Chain
Broken, apply within sessions exactly as outside them.</t>
        </li>
        <li>
          <t>Three-level verification model. Sessions leave verification
unchanged.</t>
        </li>
      </ul>
      <t>AGTP-SESSION adds session-specific semantics on top of these
properties and leaves every one of them as base AGTP defines it.</t>
    </section>
    <section anchor="transport-considerations">
      <name>Transport Considerations</name>
      <t>Base AGTP runs over TCP with TLS 1.3 or over QUIC, as specified in
<xref target="AGTP-BINDINGS"/>. AGTP-SESSION inherits these transport options.</t>
      <t>QUIC is a particularly natural fit for persistent sessions because of
its connection migration capability <xref target="RFC9000"/>, which allows a
logical connection to survive IP address changes and network path
changes without renegotiation. AGTP-SESSION over QUIC can leverage
QUIC's connection migration to maintain a persistent session across
network transitions transparently. Connection migration is an
optimization: when it succeeds no RESUME is needed, and when the QUIC
connection is lost outright the resumption procedure of
<xref target="resumption"/> applies as over TCP.</t>
    </section>
    <section anchor="relationship-to-moqt-and-real-time-media">
      <name>Relationship to MOQT and Real-Time Media</name>
      <t>The charter discussion that produced the IETF agentproto working
group anticipated a session protocol on WebTransport or MOQ as a
foundational building block for agent communication. That work and
AGTP-SESSION reflect inverse architectural commitments.</t>
      <t>The agentproto approach treats session and transport semantics as
the foundation, with agent-specific concerns (identity, authority,
attribution) layered on top by the protocols that compose on the
session. Under this model, the session protocol carries agent
traffic without knowing it; agent semantics are an application-layer
concern.</t>
      <t>AGTP-SESSION reflects the inverse: agent-specific concerns are the
foundation (in base AGTP), and session semantics layer on top of an
agent-aware substrate. Under this model, a session is, by definition,
an agent session. The protocol carries identity, authority, and
attribution at the wire level for every method invocation within the
session, because the substrate beneath the session already commits to
carrying agent traffic and nothing else.</t>
      <t>The two architectures can coexist in deployment. MOQT-style
relay-based pub/sub patterns and real-time media streaming address
use cases (particularly voice with sub-100ms barge-time interruption)
that sit outside AGTP-SESSION. <xref target="AGTP-COMMUNICATION"/> is the companion
that builds on ESTABLISH for real-time multi-modal communication
between agents; composition with MOQT-style transport for real-time
agent media, or MOQT-style sessions carrying AGTP semantic envelopes,
remains future work.</t>
      <t>The architectural choice between these two foundations is a question
for community discussion. Both deliver session semantics; they differ
on which layer commits to knowing the traffic is agent traffic.</t>
    </section>
    <section anchor="application-layering-voice-and-multi-modal-agents">
      <name>Application Layering: Voice and Multi-Modal Agents</name>
      <t>AGTP-SESSION focuses on session semantics for agent communication.
Protocols for real-time voice, video, or multi-modal data exchange
are specified in <xref target="AGTP-COMMUNICATION"/>.</t>
      <t>Voice agents, video agents, and multi-modal agents are application-
layer constructs that can compose on top of AGTP and AGTP-SESSION.
At the protocol layer they are the same kind of agent; they are
agents that produce or consume specific media types.</t>
      <t>This raises a related architectural question worth surfacing for
community discussion: AGTP may benefit from an agent type system,
analogous to HTTP Content-Type, that allows the protocol to identify
the kind of agent or kind of agent payload involved in a given
exchange. This sits outside AGTP-SESSION as currently scoped and is
flagged here as adjacent work that may warrant its own companion
specification.</t>
    </section>
    <section anchor="out-of-scope-for-v01">
      <name>Out of Scope for v01</name>
      <t>The following are out of scope for this version:</t>
      <ul spacing="normal">
        <li>
          <t>Real-time voice and barge-time interruption semantics
(<xref target="AGTP-COMMUNICATION"/>)</t>
        </li>
        <li>
          <t>Pub/sub and relay-based session patterns (MOQT-style multicast)</t>
        </li>
        <li>
          <t>Session migration across organizations or governance platforms</t>
        </li>
        <li>
          <t>Session state synchronization across multiple agents in a chain</t>
        </li>
        <li>
          <t>Multi-party sessions (more than two participants)</t>
        </li>
        <li>
          <t>Session encryption beyond what TLS 1.3 or QUIC already provides</t>
        </li>
      </ul>
      <t>These are flagged as future work or as open questions to be resolved
through community input.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Base AGTP security considerations apply to every method invocation
within a session, including invocations occurring under bounded or
persistent session models. This section identifies session-specific
risks and mitigations that supplement the base AGTP threat model.</t>
      <section anchor="session-identifier-theft-and-replay">
        <name>Session Identifier Theft and Replay</name>
        <t>Threat: An attacker who obtains a session identifier may attempt to
inject method invocations into an active session by replaying or
forging requests carrying the identifier.</t>
        <t>Mitigation: Session identifiers are bound at establishment to the
participating Agent-IDs by the session token (<xref target="session-token"/>),
and every invocation within a session is bound to its live sender by
<tt>Request-Signature</tt> (<xref target="AGTP"/>). A session identifier in isolation
<strong>MUST NOT</strong> be sufficient to authorize a method invocation: an
attacker holding the identifier and the token still lacks the
initiator's signing key, and an attacker holding a captured request
is stopped by the signature's timestamp and nonce. The receiving
party <strong>MUST</strong> reject invocations whose <tt>Agent-ID</tt> is outside the
token's two participants or whose signature fails. Transport channel
binding is permitted as an additional per-connection check and is
never what a session's continuity depends on, since the transport is
what resumption survives.</t>
      </section>
      <section anchor="persistent-session-compromise">
        <name>Persistent Session Compromise</name>
        <t>Threat: A persistent session that survives transport disconnection
and reconnection has a longer attack window than a bounded session.
An attacker who compromises a participant's signing key during the
session lifetime can impersonate the participant for the remainder
of the session.</t>
        <t>Mitigation: Persistent sessions <strong>SHOULD</strong> require periodic
Authority-Scope re-validation against the establishing governance
platform. Recommended re-validation interval is implementation-
defined but <strong>SHOULD NOT</strong> exceed the lifetime of the underlying
Authority-Scope grants. Persistent sessions <strong>MUST</strong> support
revocation propagation: if a participant's Agent Genesis or Agent
Certificate is revoked during the session, the session <strong>MUST</strong>
terminate with appropriate status code on the next invocation.
Implementations <strong>SHOULD</strong> subscribe to revocation notifications
via mechanisms defined in <xref target="AGTP-CERT"/> or <xref target="AGTP-LOG"/>.</t>
      </section>
      <section anchor="cross-session-correlation">
        <name>Cross-Session Correlation</name>
        <t>Threat: An adversary observing multiple sessions from the same agent
may be able to correlate sessions to construct a profile of agent
behavior across contexts, even if individual session contents are
encrypted.</t>
        <t>Mitigation: Session identifiers <strong>MUST NOT</strong> be derived from
participant Agent-IDs in a way that enables cross-session linkage.
Session identifiers <strong>SHOULD</strong> be cryptographically random and
unique per session. Implementations supporting privacy-sensitive
deployments <strong>SHOULD</strong> consider session identifier rotation policies
that limit linkability, with the trade-off that rotation complicates
revocation propagation.</t>
      </section>
      <section anchor="authority-constraint-violation-mid-session">
        <name>Authority Constraint Violation Mid-Session</name>
        <t>Threat: An agent participating in an established session may attempt
to invoke methods that exceed session-scoped Authority-Scope grants,
either through scope drift across multiple invocations or through
deliberate scope expansion attempts.</t>
        <t>Mitigation: Authority-Scope is enforced on every invocation
regardless of session context. A scope violation <strong>MUST</strong> trigger
455 Scope Violation per base AGTP. Receiving parties <strong>MAY</strong> elect
to terminate the session on first scope violation instead of
accepting further invocations. Termination on scope
violation is <strong>RECOMMENDED</strong> for bounded sessions where the violation
suggests the session boundary has been compromised.</t>
      </section>
      <section anchor="quic-0-rtt-resumption-considerations">
        <name>QUIC 0-RTT Resumption Considerations</name>
        <t>Threat: When AGTP-SESSION runs over QUIC, 0-RTT connection resumption
allows initial method invocations on a resumed connection to be
processed before full handshake completion. Replay of 0-RTT data is
a known QUIC consideration.</t>
        <t>Mitigation: Method invocations transmitted in 0-RTT data <strong>MUST NOT</strong>
be permitted to ESTABLISH, RESUME, or TERMINATE a session; all three
are action methods. Session establishment and resumption <strong>MUST</strong>
occur after the QUIC handshake has completed. Invocations
within an existing session <strong>MAY</strong> use 0-RTT only for methods on the
early-data eligibility list in the replay-safety profile of
<xref target="AGTP-BINDINGS"/>; action methods are excluded there and that
exclusion applies unchanged inside sessions. Implementations
<strong>SHOULD</strong> consult QUIC 0-RTT replay guidance (<xref target="RFC9001"/> Section
9.2) when configuring session resumption behavior.</t>
      </section>
      <section anchor="graceful-termination-and-revocation">
        <name>Graceful Termination and Revocation</name>
        <t>Threat: A session may need to be terminated mid-flow due to
revocation, scope violation, time expiry, or governance policy
changes. Improper termination handling can leave participants in
inconsistent state.</t>
        <t>Mitigation: TERMINATE (<xref target="establish"/> and following) produces a final
Attribution-Record signed by the terminating party identifying the
termination reason. Mid-session revocation of
either participant's Agent Genesis or Agent Certificate <strong>MUST</strong>
result in session termination. Time-based expiry of bounded sessions
<strong>MUST</strong> be enforced against the establishing governance platform's
authoritative time; participant-local clocks are advisory.</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document requests registration of three methods in the AGTP
Method Registry maintained per <xref target="AGTP"/>, with this document as the
reference:</t>
      <table>
        <name>Session Methods</name>
        <thead>
          <tr>
            <th align="left">Method</th>
            <th align="left">Group</th>
            <th align="left">Safe</th>
            <th align="left">Idempotent</th>
            <th align="left">Section</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">ESTABLISH</td>
            <td align="left">Mechanics</td>
            <td align="left">No</td>
            <td align="left">No</td>
            <td align="left">
              <xref target="establish"/></td>
          </tr>
          <tr>
            <td align="left">RESUME</td>
            <td align="left">Mechanics</td>
            <td align="left">No</td>
            <td align="left">No</td>
            <td align="left">
              <xref target="resumption"/></td>
          </tr>
          <tr>
            <td align="left">TERMINATE</td>
            <td align="left">Mechanics</td>
            <td align="left">No</td>
            <td align="left">No</td>
            <td align="left">
              <xref target="establish"/></td>
          </tr>
        </tbody>
      </table>
      <t>It also registers the reason tokens <tt>session-participant-mismatch</tt>,
<tt>session-token-invalid</tt>, <tt>session-expired</tt>, <tt>session-terminated</tt>, and
<tt>session-unknown</tt> in the AGTP reason vocabulary for status codes 401
and 410.</t>
      <t>This document establishes the AGTP ESTABLISH Body Extension
Registry (<xref target="body-extensions"/>), registration policy Specification
Required, with one initial entry:</t>
      <table>
        <name>ESTABLISH Body Extensions</name>
        <thead>
          <tr>
            <th align="left">Key</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">communication</td>
            <td align="left">
              <xref target="AGTP-COMMUNICATION"/></td>
          </tr>
        </tbody>
      </table>
    </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="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="AGTP">
          <front>
            <title>Agent Transfer Protocol (AGTP)</title>
            <author fullname="Chris Hood">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hood-independent-agtp-10"/>
        </reference>
        <reference anchor="RFC7515">
          <front>
            <title>JSON Web Signature (JWS)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC9001">
          <front>
            <title>Using TLS to Secure QUIC</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <author fullname="S. Turner" initials="S." role="editor" surname="Turner"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9001"/>
          <seriesInfo name="DOI" value="10.17487/RFC9001"/>
        </reference>
        <reference anchor="AGTP-IDENTIFIERS">
          <front>
            <title>AGTP Identifier Chain</title>
            <author fullname="Chris Hood">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hood-agtp-identifiers-03"/>
        </reference>
        <reference anchor="HCTP">
          <front>
            <title>The Hash-Chain Context Transfer Protocol</title>
            <author fullname="Cristian Xavier Ruvalcaba">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ruvalcaba-hctp-00"/>
        </reference>
        <reference anchor="AGTP-IDDOC">
          <front>
            <title>AGTP Agent Identity Document</title>
            <author fullname="Chris Hood">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hood-agtp-identity-document-00"/>
        </reference>
        <reference anchor="AGTP-CERT">
          <front>
            <title>AGTP Agent Certificate Extension</title>
            <author fullname="Chris Hood">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hood-agtp-agent-cert-04"/>
        </reference>
        <reference anchor="AGTP-LOG">
          <front>
            <title>AGTP Transparency Log Protocol</title>
            <author fullname="Chris Hood">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hood-agtp-log-03"/>
        </reference>
        <reference anchor="AGTP-BINDINGS">
          <front>
            <title>AGTP Transport Bindings: TCP/TLS and QUIC</title>
            <author fullname="Chris Hood">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hood-agtp-bindings-01"/>
        </reference>
        <reference anchor="AGTP-COMMUNICATION">
          <front>
            <title>AGTP Communication Protocol</title>
            <author fullname="Chris Hood">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hood-agtp-communication-01"/>
        </reference>
      </references>
    </references>
    <?line 773?>

<section anchor="open-questions">
      <name>Open Questions</name>
      <ul spacing="normal">
        <li>
          <t>Should the session root be carried as a periodic checkpoint on
responses within the session, and at what interval, beyond its
carriage on RESUME and TERMINATE?</t>
        </li>
        <li>
          <t>How are persistent sessions migrated across governance platform
changes (e.g., merchant changes governance providers mid-session)?</t>
        </li>
        <li>
          <t>Should AGTP define an agent type system (Agent Content-Type)
separately, or as part of session establishment?</t>
        </li>
        <li>
          <t>What is the right composition story with MOQT for real-time agent
media use cases?</t>
        </li>
        <li>
          <t>Should multi-party sessions (more than two participants) be in
scope for a later revision, or deferred to a separate companion?</t>
        </li>
        <li>
          <t>Should a responder be permitted to initiate RESUME toward an
initiator that has a reachable attachment, for responder-side
transport loss?</t>
        </li>
      </ul>
    </section>
    <section anchor="changes-from-v00">
      <name>Changes from v00</name>
      <t>This revision closes the three gaps conceded on the agentproto list
in August and refreshes references and terminology. Wire format
compatibility: session-00 specified no wire format, so nothing
shipped changes.</t>
      <ul spacing="normal">
        <li>
          <t>Session identifier specified: 256-bit random, 64 lowercase hex,
responder-assigned, uncorrelated with Agent-IDs</t>
        </li>
        <li>
          <t>ESTABLISH body extensions (<xref target="body-extensions"/>) and their
registry, so companions such as <xref target="AGTP-COMMUNICATION"/> negotiate
through the one ESTABLISH grammar with no headers of their own
(<xref target="session-identifier"/>).</t>
        </li>
        <li>
          <t>ESTABLISH wire format specified, with RESUME and TERMINATE added
and all three registered (<xref target="establish"/>, <xref target="resumption"/>, <xref target="iana"/>).</t>
        </li>
        <li>
          <t>Re-binding after transport loss specified: the session is bound to
its participants by a responder-signed session token and to the
live sender by the base per-request signature; transport channel
binding is demoted to an optional per-connection check, since
resumption survives the transport (<xref target="session-token"/>,
<xref target="resumption"/>).</t>
        </li>
        <li>
          <t>Session root specified (<xref target="session-root"/>): a 32-byte rolling
commitment over the session's Audit-IDs, carried on RESUME for
divergence detection and on TERMINATE so the final record commits
to the whole session. This answers the session-level attribution
question left open in v00 and follows the rolling-commitment
pattern of <xref target="HCTP"/>.</t>
        </li>
        <li>
          <t>Base reference moved to draft-hood-independent-agtp-10, which
supplies <tt>Request-Signature</tt> and <tt>agent_public_key</tt>.</t>
        </li>
        <li>
          <t>References updated: base AGTP to draft-hood-independent-agtp-09,
AGTP-CERT to -03, AGTP-LOG to -02. Informative references added
for <xref target="AGTP-BINDINGS"/> and <xref target="AGTP-COMMUNICATION"/>.</t>
        </li>
        <li>
          <t>Status code for scope violation at ESTABLISH corrected from 451 to
455, matching the base renumbering.</t>
        </li>
        <li>
          <t><tt>Principal-ID</tt> references replaced. Base AGTP records Owner-ID in
the agent identity document referenced by Agent-ID and never in
a request header; the ESTABLISH field list and the inheritance
section now say so.</t>
        </li>
        <li>
          <t>QUIC 0-RTT guidance defers to the replay-safety profile and
early-data eligibility list in <xref target="AGTP-BINDINGS"/> without
restating the rule.</t>
        </li>
        <li>
          <t>Real-time voice, video, and multi-modal exchange now points to
<xref target="AGTP-COMMUNICATION"/>, which builds on ESTABLISH.</t>
        </li>
        <li>
          <t>Working group reference updated from the acp charter proposal to
the agentproto working group.</t>
        </li>
        <li>
          <t>Editorial pass for house style. No normative change beyond the
status code correction.</t>
        </li>
      </ul>
    </section>
    <section anchor="contributors">
      <name>Contributors</name>
      <t>This draft is informed by the IETF agent2agent charter formation
discussion and by feedback on the architectural layering question
raised in that thread.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA719aXfbRpb29/oVdZQPkXxIRnLsdCKl06Mo6kQ93lpSJrOc
OSZIgCTaIMDBIpnj+P3t792q6hYAOpmlJ6fToUigUMtdnrtiOp2aNm+L7Nwe
Xf54/8beZU2TV6V9U1dttayKI5MsFnX2IL9P767v7m5evzoyabUsky3cl9bJ
qp1uqiqdJut2N214hOnpmVkmbbau6v25zctVZZpusc3px3a/y/DLNNtl8H9l
a/JdfW7bumvap6en35w+NUmdJfjQ3a7IYRy4qbFJmdrbLCmm9/k2OzKPVf1u
XVfdDq67CWPZO/+cI/Mu28Nl6bmxdmovb2yyhisa+ksmyn/Q93ZZbbddKc+j
74uqXE+L/CFL4ceyzJY0E2OaFibzNoGfYSH7rDG7HJ8Be8Z/WttUdVtnq8b/
vd+GP03StZuq5mmtuqLgvbza1Hljf4K9hB+srep1Uub/SbM5t6+qbdXmy4m9
KZcz+j3bJnlxbpd41z+U/PMsyem3rs7P7aZtd835F1+o30xZ1VsY8SHDh9/+
+erp2dk38vHrsz88w4940uc0iqcN2p77OimbVVZ76rDHeOnJEV0bloT/HFxU
k9V51iBBuEtvyjary6yd/oCkFFGUIhGmrrNTuikFyjq3T0+ffsUz/8Pzs+du
EX/4Gj4afEC80G9OT0/DxzO30OnND9ev7m/+fHN9e9dbNDLEDT47X+Ww6qtN
kpd/v7XS+nL/uGZ6+uVwrT9d9Y/mfpPZn5JmM6Xp2Svgruz9yFn9xsRh3m2e
lPafkwdc6233kBTLZJH8l9ZRu7ummyUs5nTksGTLf3h9NbLZTGa85e3e/lAt
uy18/j/Z83Y/TeV5hyd+dX17f3DeV1mNR4dSz16/b7OSRdDfde4kt6ZLePL0
9NmBSb94/ePInIlAdiBmy+XevqjWv5dQ/qczLqr1KGXTVL+/efXDzasfxxiR
5wtC1X4PUiEv1yBK76/efHH/4o4Uw19/vrn6O099IQ9G3XaAPl6/fPnzq5ur
y3tQkiOLuNIK5v9qxyOtNjJ3M52CAlw0bZ0sW2PuN/A4xwq22WVLlEeNbUHQ
jGIE1gIOGpxMbGLgkTtQXXBRW9kPH/D3jx9hhKS1abbKSxhO1C/8d5sA+y0b
CwKb9fC0rZiwDR6s/+ryzU2soWdWP9gmaVrDoDjVx8qmKNBKWJB70LZKswKI
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
3aXVgosAAA==

-->

</rfc>
