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


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

]>


<rfc ipr="trust200902" docName="draft-kavian-agent-enrollment-protocol-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="AEP">The Agent Enrollment Protocol</title>

    <author initials="N." surname="Kavian" fullname="N. Kavian">
      <organization>Jarwin, Inc. (InFlow)</organization>
      <address>
        <email>nas@inflowpay.ai</email>
      </address>
    </author>

    <date year="2026" month="August" day="24"/>

    
    
    

    <abstract>


<?line 56?>

<t>The Agent Enrollment Protocol (AEP) defines an HTTP-based mechanism for autonomous agents to discover service enrollment requirements, enroll an agent identity, obtain optional session credentials, revoke those credentials, and query enrollment status. AEP uses Decentralized Identifiers, client assertion JWTs, and HTTP Problem Details to provide a narrow machine-first enrollment and authentication substrate for agent-to-service interactions.</t>



    </abstract>



  </front>

  <middle>


<?line 60?>

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

<t>Autonomous agents increasingly interact with internet services without a human directly completing registration forms, email confirmations, password setup, or dashboard-based API-key provisioning. Existing HTTP authentication mechanisms can authenticate an already-provisioned client, but they do not define a machine-first enrollment flow by which an autonomous agent discovers a service's requirements, presents a cryptographic identity, and becomes recognized by that service.</t>

<t>The Agent Enrollment Protocol (AEP) defines that enrollment substrate. AEP lets an Agent discover what a Service requires, enroll a supported identity method, authenticate AEP commands with a per-request client assertion JWT, optionally obtain a session credential, revoke issued session credentials, and query enrollment status.</t>

<t>AEP is deliberately narrow. It does not define payment settlement, checkout semantics, action authorization, KYC execution, or legal policy. Those functions can compose above or beside AEP. This document defines only the minimum HTTP protocol needed for interoperable Agent enrollment and session-credential bootstrapping.</t>

<t>This document's scope is limited to the HTTP binding for Inspect, Enroll, Grant, Revoke, and Status. Update, Rotate, Decommission, non-HTTP transports, concrete session-credential formats, policy disclosures, KYA, ZK proofs, and other extensions are out of scope for this document.</t>

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

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

<?line -18?>

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

<dl>
  <dt>Agent:</dt>
  <dd>
    <t>Software acting autonomously. An Agent holds or controls a cryptographic key and initiates AEP requests.</t>
  </dd>
  <dt>Service:</dt>
  <dd>
    <t>The HTTP server that receives AEP requests and decides whether to enroll or recognize an Agent.</t>
  </dd>
  <dt>Owner:</dt>
  <dd>
    <t>The human or organization that owns or controls an Agent. Owner details are represented as claims when a Service requires them.</t>
  </dd>
  <dt>Platform:</dt>
  <dd>
    <t>An optional operator that hosts Agent identity material or signing infrastructure. A Platform is not required by AEP.</t>
  </dd>
  <dt>Verifier:</dt>
  <dd>
    <t>A party that verifies claims about an Agent or Owner and may issue attestations referenced by the Agent. This document does not define attestation formats.</t>
  </dd>
  <dt>Inspect document:</dt>
  <dd>
    <t>The JSON discovery document published by a Service at <spanx style="verb">/.well-known/aep</spanx>. It advertises AEP version, supported commands, accepted identity methods, requested claims, endpoint configuration, and extension support.</t>
  </dd>
  <dt>Client assertion:</dt>
  <dd>
    <t>A JWT signed by the Agent's private key and presented on an authenticated AEP command or protected Service resource. The assertion binds the Agent identity, Service identity, operation, issuance time, expiration time, replay identifier, and, for protected resources, the resource URI.</t>
  </dd>
  <dt>Session credential:</dt>
  <dd>
    <t>A stateful credential issued by the Grant command and presented on later requests according to a separate session-credential specification.</t>
  </dd>
  <dt>Grant type:</dt>
  <dd>
    <t>A string identifier for a concrete session-credential format supported by the Service, such as an OAuth Bearer, API-key, or Basic credential specification.</t>
  </dd>
  <dt>Authentication method:</dt>
  <dd>
    <t>A wire identifier advertised by a Service for authenticating protected resources. <spanx style="verb">aep-jwt</spanx> identifies an AEP client assertion; registered Grant Type identifiers identify session credentials.</t>
  </dd>
</dl>

</section>
<section anchor="protocol-overview"><name>Protocol Overview</name>

<t>The baseline AEP flow is:</t>

<t><list style="numbers" type="1">
  <t>The Agent fetches the Service's Inspect document.</t>
  <t>The Agent evaluates whether it can satisfy the Service's identity-method and claim requirements.</t>
  <t>The Agent constructs a client assertion JWT with <spanx style="verb">aud</spanx> equal to the Service DID and <spanx style="verb">op</spanx> equal to the command being invoked.</t>
  <t>The Agent invokes Enroll.</t>
  <t>The Agent calls Status when enrollment is pending or when it needs current state.</t>
  <t>The Agent may call Grant for a supported session-credential type.</t>
  <t>The Agent may call Revoke to invalidate issued session credentials.</t>
</list></t>

<t>Inspect is unauthenticated. Enroll, Grant, Revoke, and Status are authenticated with the baseline <spanx style="verb">Authorization: AEP &lt;jwt&gt;</spanx> form. Session credentials, once issued, <bcp14>MAY</bcp14> be used on commands that allow the selected credential type; Grant and Revoke themselves always use the baseline client assertion.</t>

</section>
<section anchor="http-binding"><name>HTTP Binding</name>

<t>This document defines an HTTP binding using HTTP semantics <xref target="RFC9110"/> over HTTP/1.1 <xref target="RFC9112"/>, HTTP/2 <xref target="RFC9113"/>, or HTTP/3 <xref target="RFC9114"/>. Network use of this binding requires TLS 1.3 or later <xref target="RFC9846"/>. Plaintext HTTP is out of scope.</t>

<t>The binding uses only <spanx style="verb">GET</spanx> and <spanx style="verb">POST</spanx>:</t>

<texttable>
      <ttcol align='left'>Command</ttcol>
      <ttcol align='left'>Method</ttcol>
      <ttcol align='left'>Endpoint</ttcol>
      <c>Inspect</c>
      <c><spanx style="verb">GET</spanx></c>
      <c><spanx style="verb">/.well-known/aep</spanx></c>
      <c>Enroll</c>
      <c><spanx style="verb">POST</spanx></c>
      <c><spanx style="verb">enroll</spanx> relative to <spanx style="verb">endpoint_base</spanx></c>
      <c>Status</c>
      <c><spanx style="verb">GET</spanx></c>
      <c><spanx style="verb">status</spanx> relative to <spanx style="verb">endpoint_base</spanx></c>
      <c>Grant</c>
      <c><spanx style="verb">POST</spanx></c>
      <c><spanx style="verb">grant</spanx> relative to <spanx style="verb">endpoint_base</spanx></c>
      <c>Revoke</c>
      <c><spanx style="verb">POST</spanx></c>
      <c><spanx style="verb">revoke</spanx> relative to <spanx style="verb">endpoint_base</spanx></c>
</texttable>

<t>The <spanx style="verb">endpoint_base</spanx> value is published in the Inspect document under <spanx style="verb">http.endpoint_base</spanx>. If omitted, Agents <bcp14>MUST</bcp14> use <spanx style="verb">/aep/</spanx>. Agents construct command URLs by appending the command's relative path to <spanx style="verb">endpoint_base</spanx> with exactly one <spanx style="verb">/</spanx> separator, regardless of whether <spanx style="verb">endpoint_base</spanx> includes a trailing slash. For example, both <spanx style="verb">/aep</spanx> and <spanx style="verb">/aep/</spanx> produce <spanx style="verb">/aep/enroll</spanx> for Enroll.</t>

<t>Requests and successful responses that carry AEP JSON payloads use <spanx style="verb">application/aep+json</spanx>, which uses the <spanx style="verb">+json</spanx> structured syntax suffix <xref target="RFC6839"/>. Error responses use <spanx style="verb">application/problem+json</spanx>.</t>

<t>Authenticated commands carry a baseline client assertion as:</t>

<figure><sourcecode type="http-message"><![CDATA[
Authorization: AEP <jwt>
]]></sourcecode></figure>

<t>When a session credential is used on a command that allows it, the credential presentation form is defined by the concrete session-credential document.</t>

</section>
<section anchor="discovery-and-inspect"><name>Discovery and Inspect</name>

<t>The Inspect document is available at the well-known URI path defined for AEP <xref target="RFC8615"/>:</t>

<figure><sourcecode type="http-message"><![CDATA[
GET /.well-known/aep HTTP/1.1
Host: example.com
Accept: application/aep+json
]]></sourcecode></figure>

<t>The response body is a JSON object <xref target="RFC8259"/>. AEP-owned numeric protocol values are represented as JSON strings. Field names use <spanx style="verb">lower_snake_case</spanx>.</t>

<t>Claim names use dotted lowercase tokens:</t>

<figure><sourcecode type="abnf"><![CDATA[
claim-name = claim-token *("." claim-token)
claim-token = LCALPHA *(LCALPHA / DIGIT / "_")
LCALPHA = %x61-7A
]]></sourcecode></figure>

<t>The <spanx style="verb">LCALPHA</spanx> rule is defined here. The <spanx style="verb">DIGIT</spanx> rule is defined by RFC 5234 <xref target="RFC5234"/>.</t>

<t>The Inspect document shown here contains only the fields required for the HTTP binding, Inspect, Enroll, Grant, Revoke, Status, and an example identity method:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "aep_version": "1.0",
  "authentication": {
    "methods": ["aep-jwt", "oauth-bearer"]
  },
  "bindings": {
    "supported": ["http"]
  },
  "claims": {
    "optional": [],
    "preferred": [],
    "required": ["contact.email"]
  },
  "commands": {
    "grant_types": ["oauth-bearer"],
    "supported": ["enroll", "grant", "inspect", "revoke", "status"]
  },
  "core": {
    "signing_algorithms": ["EdDSA", "ES256"]
  },
  "extensions": {
    "supported": []
  },
  "http": {
    "endpoint_base": "/aep/",
    "openapi": {
      "path_matching": {"trailing_slash": "strict"},
      "url": "/openapi.json"
    }
  },
  "identity": {
    "methods": ["did:web"]
  },
  "service": {
    "did": "did:web:api.example.com"
  }
}
]]></sourcecode></figure>

<t><spanx style="verb">commands.supported</spanx> lists commands the Service exposes. Agents <bcp14>MUST NOT</bcp14> invoke commands absent from this list.</t>

<t><spanx style="verb">commands.grant_types</spanx> lists concrete session-credential formats the Service can issue and revoke. If this array is empty or absent, the Service <bcp14>MUST NOT</bcp14> list <spanx style="verb">grant</spanx> or <spanx style="verb">revoke</spanx> in <spanx style="verb">commands.supported</spanx>.</t>

<t><spanx style="verb">authentication.methods</spanx> lists, in preference order, the authentication methods accepted by protected resources belonging to the Service. <spanx style="verb">aep-jwt</spanx> identifies an AEP client assertion with <spanx style="verb">op</spanx> equal to <spanx style="verb">authenticate</spanx>. Other values <bcp14>MUST</bcp14> be registered Grant Type wire identifiers and use that grant type's credential presentation rules. The field is <bcp14>OPTIONAL</bcp14>; if it is absent, the Service advertises no protected-resource authentication method. When present, it <bcp14>MUST</bcp14> be non-empty and contain no duplicates. An absent or empty <spanx style="verb">commands.grant_types</spanx> array does not imply support for <spanx style="verb">aep-jwt</spanx> or any other method. <spanx style="verb">authenticate</spanx> <bcp14>MUST NOT</bcp14> appear in <spanx style="verb">commands.supported</spanx> because it is an assertion operation, not a Service command endpoint.</t>

<t><spanx style="verb">identity.methods</spanx> lists identity method identifiers the Service accepts for authenticated AEP commands. The values are lower-case identifiers registered in the AEP Identity Methods registry. A Service that advertises Enroll, Grant, Revoke, or Status <bcp14>MUST</bcp14> advertise at least one identity method.</t>

<t><spanx style="verb">service.did</spanx> identifies the Service. Agents use this value as the <spanx style="verb">aud</spanx> claim in client assertion JWTs.</t>

<t>When <spanx style="verb">service.did</spanx> uses the <spanx style="verb">did:web</spanx> method <xref target="DID-WEB"/>, the HTTPS origin encoded by the DID <bcp14>MUST</bcp14> equal the origin of the final Inspect response URL. DID path components do not alter the encoded origin. Agents <bcp14>MUST</bcp14> reject a mismatch before provisioning an Agent identity, requesting a client assertion, or transmitting credentials. Agents <bcp14>SHOULD</bcp14> expose <spanx style="verb">service_identity_mismatch</spanx> as the local failure identifier; this is not an HTTP Problem Details response from the Service. This requirement applies regardless of whether the Service appears in a directory. Other Service DID methods <bcp14>MUST</bcp14> define an equivalent origin-control binding before Agents rely on them. An Agent that does not implement that binding <bcp14>MUST</bcp14> reject the Inspect document.</t>

<t>Services <bcp14>SHOULD</bcp14> send HTTP cache metadata, including <spanx style="verb">Cache-Control</spanx> and <spanx style="verb">ETag</spanx>, on Inspect responses. A default freshness lifetime of 300 seconds is <bcp14>RECOMMENDED</bcp14> when the Service does not need a shorter policy window.</t>

<t>Agents <bcp14>MUST</bcp14> honor usable HTTP caching metadata on Inspect, including <spanx style="verb">Cache-Control</spanx>, <spanx style="verb">ETag</spanx>, and <spanx style="verb">Last-Modified</spanx>, and <bcp14>MUST</bcp14> process successful conditional revalidation through <spanx style="verb">304 Not Modified</spanx>. <spanx style="verb">no-cache</spanx> requires revalidation before reuse. <spanx style="verb">no-store</spanx> prohibits persistent or transient reuse beyond the current fetch. When no shorter usable freshness policy is supplied, Agents <bcp14>SHOULD</bcp14> use 300 seconds. The cache key is the requested advertised URL and <bcp14>MUST</bcp14> be updated to the final URL after an accepted redirect so revalidation targets the representation that produced the cached document.</t>

<t>Agents <bcp14>MUST</bcp14> require the media-type essence of a successful Inspect response to be <spanx style="verb">application/aep+json</spanx>. Comparison is case-insensitive and ignores valid media-type parameters. A missing, malformed, or different media type <bcp14>MUST</bcp14> be rejected.</t>

<t>An Agent following an Inspect redirect <bcp14>MUST</bcp14> require each redirect target to have the same scheme, host, and effective port as the preceding request URL. Cross-origin redirects and scheme downgrades <bcp14>MUST</bcp14> be rejected. This restriction applies to the unauthenticated Inspect command and does not prevent a future extension from defining a signed Inspect response.</t>

<t>Agents <bcp14>MAY</bcp14> enforce documented bounds on the decoded response size and total completion time. An Agent that enforces such bounds <bcp14>MUST</bcp14> fail closed when a bound is exceeded and <bcp14>MUST NOT</bcp14> process a partial Inspect document.</t>

<section anchor="openapi-advertisement"><name>OpenAPI Advertisement</name>

<t><spanx style="verb">http.openapi</spanx>, when present, advertises an OpenAPI 3.1 document for protected Service resources. It contains required <spanx style="verb">url</spanx> and <spanx style="verb">path_matching.trailing_slash</spanx> fields. <spanx style="verb">url</spanx> is a URI-reference. A relative reference resolves against the final Inspect response URL. An absolute HTTPS URL <bcp14>MAY</bcp14> be cross-origin. Plaintext HTTP is prohibited except when the URL host is syntactically exactly <spanx style="verb">localhost</spanx>, <spanx style="verb">127.0.0.1</spanx>, or <spanx style="verb">[::1]</spanx> for development; resolving another name to a loopback address does not qualify. User-information components and HTTPS-to-HTTP downgrade are prohibited.</t>

<t><spanx style="verb">path_matching.trailing_slash</spanx> is <spanx style="verb">strict</spanx> or <spanx style="verb">equivalent</spanx>. Under <spanx style="verb">strict</spanx>, paths that differ by a terminal slash are distinct. Under <spanx style="verb">equivalent</spanx>, exactly one terminal slash is ignored except for <spanx style="verb">/</spanx>. The canonical behavior when processing older compatible cached data that lacks this member is <spanx style="verb">strict</spanx>; new documents using <spanx style="verb">http.openapi</spanx> <bcp14>MUST</bcp14> include it.</t>

<t>OpenAPI retrieval is anonymous. An Agent <bcp14>MUST NOT</bcp14> send resource credentials, AEP assertions, Platform credentials, cookies, caller authorization headers, or other headers copied from the triggering request. Agents <bcp14>MUST</bcp14> enforce documented redirect-count, decoded-byte, and total-completion-time bounds. Redirects <bcp14>MUST NOT</bcp14> downgrade transport or introduce user information. A cross-origin HTTPS redirect remains anonymous and is permitted within the bound.</t>

<t>Agents <bcp14>MUST</bcp14> accept OpenAPI 3.1 JSON represented as <spanx style="verb">application/vnd.oai.openapi+json</spanx> with a <spanx style="verb">version=3.1</spanx> parameter or as <spanx style="verb">application/json</spanx>. Media-type comparison is case-insensitive and permits unrelated valid parameters. Agents <bcp14>MUST</bcp14> reject missing, malformed, or other media types, non-JSON bodies, documents whose <spanx style="verb">openapi</spanx> version is not <spanx style="verb">3.1.x</spanx>, and partial or over-bound documents.</t>

</section>
<section anchor="openapi-security-mapping"><name>OpenAPI Security Mapping</name>

<t>Agents use standard OpenAPI root and operation <spanx style="verb">security</spanx> inheritance and <spanx style="verb">components.securitySchemes</spanx>. An operation-level <spanx style="verb">security</spanx> replaces the root value. An empty security array makes the operation public. An empty requirement object permits anonymous access as one alternative. Multiple requirement objects are alternatives; multiple schemes within one requirement are a compound requirement and all must be satisfied.</t>

<t>The <spanx style="verb">x-aep-authentication-method</spanx> Security Scheme Object extension binds an arbitrary OpenAPI security-scheme name to <spanx style="verb">aep-jwt</spanx> or a registered AEP Grant Type wire identifier. Its value is one registered authentication method identifier. A referenced scheme without this extension is not an AEP method. An Agent <bcp14>MUST</bcp14> treat a compound requirement as unsupported when it cannot satisfy every member and <bcp14>MAY</bcp14> select another complete alternative. It <bcp14>MUST NOT</bcp14> silently reduce a compound requirement to one scheme.</t>

<t>To select an operation, Agents uppercase the concrete HTTP method and match the request path using OpenAPI path-template rules. Literal path segments take precedence over templated segments. Query parameters never select an operation. Under <spanx style="verb">strict</spanx>, terminal slash variants differ. Under <spanx style="verb">equivalent</spanx>, one terminal slash is ignored except for <spanx style="verb">/</spanx>. Multiple equally applicable templates, structurally equivalent templates with different variable names, or another ambiguous match are contradictions.</t>

<t>A fresh, definitive operation match <bcp14>MAY</bcp14> be used to plan authentication without first probing the protected resource. An undocumented operation, unsupported or ambiguous mapping, stale document, or contradiction between OpenAPI and a live response requires fallback to anonymous live challenge discovery and document revalidation. OpenAPI never authorizes a request and never permits credentials to bypass the redirect-safety rules.</t>

</section>
</section>
<section anchor="identity-methods"><name>Identity Methods</name>

<t>Authenticated AEP commands require an Agent identity method that can bind a stable Agent identifier to verification material for the client assertion signature.</t>

<t>This document defines the identity-method substrate but does not define a concrete identity method. Concrete identity method documents define:</t>

<t><list style="numbers" type="1">
  <t>The identity method identifier used in <spanx style="verb">identity.methods</spanx>.</t>
  <t>The Agent identifier syntax.</t>
  <t>How a Service resolves or otherwise obtains verification material for the Agent identifier.</t>
  <t>How the JWT <spanx style="verb">kid</spanx> header identifies the verification method.</t>
  <t>Any caching, rotation, revocation, or trust-anchor requirements.</t>
  <t>Security and privacy considerations specific to that identity method.</t>
</list></t>

<t>A Service enables the identity methods it accepts and advertises only those identifiers in <spanx style="verb">identity.methods</spanx>. A Service that advertises no identity methods <bcp14>MUST NOT</bcp14> advertise authenticated commands.</t>

<t>For example, a Service that enables the separately specified <spanx style="verb">did:web</spanx> identity method advertises:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "identity": {
    "methods": ["did:web"]
  }
}
]]></sourcecode></figure>

<t>If the Agent presents an identity method not listed in the Service's <spanx style="verb">identity.methods</spanx> array, the Service <bcp14>MUST</bcp14> reject the request as <spanx style="verb">not_recognized</spanx>.</t>

</section>
<section anchor="aep-http-authentication-scheme"><name>AEP HTTP Authentication Scheme</name>

<t>The AEP HTTP authentication scheme uses the <spanx style="verb">AEP</spanx> auth-scheme value. The rules <spanx style="verb">ALPHA</spanx>, <spanx style="verb">DIGIT</spanx>, <spanx style="verb">DQUOTE</spanx>, and <spanx style="verb">SP</spanx> are defined by RFC 5234 <xref target="RFC5234"/>. The rules <spanx style="verb">auth-param</spanx>, <spanx style="verb">BWS</spanx>, and <spanx style="verb">OWS</spanx> are defined by HTTP semantics <xref target="RFC9110"/>.</t>

<figure><sourcecode type="abnf"><![CDATA[
AEP-credentials = "AEP" 1*SP compact-jws
compact-jws     = base64url "." base64url "." base64url
base64url       = 1*( ALPHA / DIGIT / "-" / "_" )

AEP-challenge        = "AEP" [ 1*SP AEP-challenge-param
                       *( OWS "," OWS AEP-challenge-param ) ]
AEP-challenge-param  = reason-param / service-param /
                       inspect-param / auth-param
reason-param         = "reason" BWS "=" BWS DQUOTE error-code DQUOTE
service-param        = "service_did" BWS "=" BWS
                       DQUOTE did-value DQUOTE
inspect-param        = "inspect" BWS "=" BWS
                       DQUOTE absolute-uri DQUOTE
did-value            = 1*(%x21 / %x23-5B / %x5D-7E)
absolute-uri         = 1*(%x21 / %x23-5B / %x5D-7E)
error-code           = lc-token *( "_" lc-token )
lc-token             = LCALPHA *( LCALPHA / DIGIT )
]]></sourcecode></figure>

<t>The <spanx style="verb">AEP-credentials</spanx> form is used in the <spanx style="verb">Authorization</spanx> field on command endpoints and in either <spanx style="verb">Authorization</spanx> or <spanx style="verb">AEP-Authorization</spanx> on protected resources. The <spanx style="verb">AEP-challenge</spanx> form is used in the <spanx style="verb">WWW-Authenticate</spanx> field. Parameter and field names are case-insensitive and each parameter <bcp14>MUST</bcp14> occur at most once. The <spanx style="verb">reason</spanx> parameter carries an AEP error code. A protected resource advertising AEP support <bcp14>MUST</bcp14> include <spanx style="verb">service_did</spanx> and <spanx style="verb">inspect</spanx>; <spanx style="verb">service_did</spanx> identifies the Service and <spanx style="verb">inspect</spanx> is the absolute HTTPS URI of that Service's Inspect document. Agents <bcp14>MUST</bcp14> require the challenged Service DID to match the fetched Inspect document. Challenges without the <spanx style="verb">AEP</spanx> scheme, or without both discovery parameters, do not initiate AEP discovery.</t>

</section>
<section anchor="client-assertion-jwt"><name>Client Assertion JWT</name>

<t>Enroll, Grant, Revoke, Status, and protected-resource authentication use a signed client assertion JWT. Inspect is unauthenticated and does not use a client assertion.</t>

<t>The client assertion JWT is carried as:</t>

<figure><sourcecode type="http-message"><![CDATA[
Authorization: AEP <jwt>
]]></sourcecode></figure>

<t>The JWT is a JWS compact serialization <xref target="RFC7515"/> consisting of a JOSE header, JWT claims set <xref target="RFC7519"/>, and signature.</t>

<t>The JOSE header <bcp14>MUST</bcp14> contain:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "alg": "EdDSA",
  "typ": "JWT",
  "kid": "did:web:agent.example.com:agents:123#key-1"
}
]]></sourcecode></figure>

<t><spanx style="verb">alg</spanx> identifies the signing algorithm. Services supporting this document <bcp14>MUST</bcp14> support <spanx style="verb">EdDSA</spanx> <xref target="RFC8037"/> and <spanx style="verb">ES256</spanx> <xref target="RFC7518"/> and advertise accepted algorithms in <spanx style="verb">core.signing_algorithms</spanx>. Agents <bcp14>MUST</bcp14> select an algorithm advertised by the Service. The <spanx style="verb">none</spanx> algorithm and symmetric JOSE algorithms <bcp14>MUST NOT</bcp14> be used for Agent identity assertions.</t>

<t><spanx style="verb">typ</spanx> <bcp14>MUST</bcp14> be <spanx style="verb">JWT</spanx>.</t>

<t><spanx style="verb">kid</spanx> identifies the Agent's DID and <bcp14>MAY</bcp14> include a fragment selecting a verification method in the resolved DID document. The DID portion of <spanx style="verb">kid</spanx> <bcp14>MUST</bcp14> equal the Agent DID carried in <spanx style="verb">iss</spanx> and <spanx style="verb">sub</spanx>.</t>

<t>The JWT claims set <bcp14>MUST</bcp14> contain:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "iss": "did:web:agent.example.com:agents:123",
  "sub": "did:web:agent.example.com:agents:123",
  "aud": "did:web:api.example.com",
  "op": "enroll",
  "iat": 1748428800,
  "exp": 1748428860,
  "jti": "9f8a4d2e-1c3b-4f5e-8b7a-000000000000"
}
]]></sourcecode></figure>

<t><spanx style="verb">iss</spanx> and <spanx style="verb">sub</spanx> <bcp14>MUST</bcp14> both equal the Agent DID.</t>

<t><spanx style="verb">aud</spanx> <bcp14>MUST</bcp14> equal the Service DID advertised as <spanx style="verb">service.did</spanx> in the Inspect document.</t>

<t><spanx style="verb">op</spanx> <bcp14>MUST</bcp14> equal the operation being invoked. The values defined by this document are <spanx style="verb">enroll</spanx>, <spanx style="verb">grant</spanx>, <spanx style="verb">revoke</spanx>, <spanx style="verb">status</spanx>, and <spanx style="verb">authenticate</spanx>. The four command operations are valid only at their corresponding AEP command endpoint. <spanx style="verb">authenticate</spanx> is valid only at a protected resource and is never valid at an AEP command endpoint.</t>

<t>An assertion with <spanx style="verb">op</spanx> equal to <spanx style="verb">authenticate</spanx> <bcp14>MUST</bcp14> also contain <spanx style="verb">resource</spanx>, an absolute HTTPS URI identifying the protected resource target. The value <bcp14>MUST</bcp14> equal the request target URI after URI normalization that does not change resource identity; fragments are prohibited. A protected resource <bcp14>MUST</bcp14> reject an assertion whose <spanx style="verb">resource</spanx> does not identify that target. Redirect targets require a newly issued assertion when the normalized resource URI changes.</t>

<t><spanx style="verb">iat</spanx> and <spanx style="verb">exp</spanx> are NumericDate values as defined by JWT <xref target="RFC7519"/>: seconds since the Unix epoch represented as JSON numbers. These claims are an exception to AEP-owned JSON payload numeric-string encoding. Services <bcp14>MUST</bcp14> reject assertions where <spanx style="verb">exp - iat</spanx> is greater than 300 seconds. Services <bcp14>SHOULD</bcp14> allow no more than 30 seconds of local clock skew.</t>

<t><spanx style="verb">jti</spanx> <bcp14>MUST</bcp14> be freshly generated for each assertion. Services <bcp14>MUST</bcp14> maintain a replay cache keyed by at least <spanx style="verb">(sub, jti)</spanx> for the assertion lifetime plus the accepted clock-skew window.</t>

<t>To verify a client assertion, the Service <bcp14>MUST</bcp14>:</t>

<t><list style="numbers" type="1">
  <t>Parse the JWT header, claims set, and signature.</t>
  <t>Reject the assertion if <spanx style="verb">alg</spanx> is not advertised by the Service or is prohibited by this document.</t>
  <t>Resolve the DID identified by <spanx style="verb">kid</spanx>.</t>
  <t>Select the referenced verification method.</t>
  <t>Verify the JWS signature.</t>
  <t>Verify <spanx style="verb">iss</spanx>, <spanx style="verb">sub</spanx>, <spanx style="verb">aud</spanx>, <spanx style="verb">op</spanx>, <spanx style="verb">resource</spanx> when required, <spanx style="verb">iat</spanx>, <spanx style="verb">exp</spanx>, and <spanx style="verb">jti</spanx> according to this section.</t>
</list></t>

<t>Any verification failure <bcp14>MUST</bcp14> use the common <spanx style="verb">not_recognized</spanx> error defined in this document's error handling section.</t>

</section>
<section anchor="the-inspect-command"><name>The Inspect Command</name>

<t>Inspect is the unauthenticated discovery command. An Agent invokes Inspect by fetching the Service's well-known AEP document:</t>

<figure><sourcecode type="http-message"><![CDATA[
GET /.well-known/aep HTTP/1.1
Host: example.com
Accept: application/aep+json
]]></sourcecode></figure>

<t>The Service returns <spanx style="verb">200 OK</spanx> with an <spanx style="verb">application/aep+json</spanx> body containing the Inspect document described in this document. Inspect has no request body and no client assertion.</t>

<t>Agents <bcp14>SHOULD</bcp14> cache Inspect documents according to the Service's HTTP cache metadata. Agents <bcp14>MUST</bcp14> re-fetch the Inspect document before invoking a command if the cached document has expired.</t>

</section>
<section anchor="the-enroll-command"><name>The Enroll Command</name>

<t>Enroll registers an Agent DID with a Service. The request uses the baseline client assertion with <spanx style="verb">op</spanx> equal to <spanx style="verb">enroll</spanx>.</t>

<t>Endpoint:</t>

<figure><sourcecode type="http-message"><![CDATA[
POST /aep/enroll HTTP/1.1
Host: example.com
Content-Type: application/aep+json
Authorization: AEP <jwt>
Idempotency-Key: <opaque>
]]></sourcecode></figure>

<t>Request body:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "agent_did": "did:web:agent.example.com:agents:123",
  "claims": {
    "contact.email": "ops@example.com"
  },
  "idempotency_key": "9f8a4d2e-1c3b-4f5e-8b7a-000000000000"
}
]]></sourcecode></figure>

<t><spanx style="verb">agent_did</spanx> <bcp14>MUST</bcp14> equal the Agent DID in the client assertion <spanx style="verb">iss</spanx>, <spanx style="verb">sub</spanx>, and <spanx style="verb">kid</spanx> values, ignoring any <spanx style="verb">kid</spanx> fragment. The DID method <bcp14>MUST</bcp14> be accepted by the Service's <spanx style="verb">identity.methods</spanx> advertisement.</t>

<t><spanx style="verb">claims</spanx> carries claim values requested by the Service's Inspect document. Claim names are strings and claim values are JSON values. Interoperable names and value shapes for common person and contact claims are defined by <xref target="AEP-CLAIMS"/>. Services <bcp14>MUST</bcp14> ignore unknown claims unless local policy requires rejection.</t>

<t><spanx style="verb">idempotency_key</spanx> is an opaque retry key. When both the HTTP <spanx style="verb">Idempotency-Key</spanx> header and body field are present, they <bcp14>MUST</bcp14> contain the same value.</t>

<t>When the authenticated Agent DID already has an enrollment record, the Service
<bcp14>MUST</bcp14> return the current enrollment lifecycle representation. It <bcp14>MUST NOT</bcp14> treat
the request as renewal or replacement, rerun enrollment policy, reset lifecycle
timestamps, or replace the existing record. This requirement applies when the
request uses a new idempotency key and is distinct from replaying a request with
the same idempotency key.</t>

<t>Successful Enroll responses use <spanx style="verb">200 OK</spanx>. A synchronous enrollment returns:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "status": "active"
}
]]></sourcecode></figure>

<t>If enrollment requires asynchronous verification, the Service returns:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "owner_action_required": "true",
  "status": "pending",
  "verification_pending": ["contact.email"]
}
]]></sourcecode></figure>

<t>The Agent polls Status to learn whether a pending enrollment has become <spanx style="verb">active</spanx> or <spanx style="verb">rejected</spanx>.</t>

<t>Enroll and Status lifecycle responses have two distinct optional dimensions. <spanx style="verb">verification_pending</spanx> lists submitted claim names whose asynchronous verification has not completed. <spanx style="verb">requirements_pending</spanx> lists requirement names the Agent still needs to satisfy. Either field can appear on either response, and the fields <bcp14>MUST NOT</bcp14> be treated as aliases. Empty arrays <bcp14>MUST</bcp14> be omitted; absence means that the corresponding set is empty. Claim values <bcp14>MUST NOT</bcp14> appear in either array.</t>

<t><spanx style="verb">owner_action_required</spanx> is independent of both pending dimensions and can accompany either, both, or neither. Canonical serialization <bcp14>MUST</bcp14> omit <spanx style="verb">owner_action_required</spanx> unless its value is <spanx style="verb">"true"</spanx>. Consumers <bcp14>MUST</bcp14> accept an explicit <spanx style="verb">"false"</spanx> for compatibility.</t>

</section>
<section anchor="the-status-command"><name>The Status Command</name>

<t>Status returns the Service's current state for the authenticated Agent identity. The request uses the baseline client assertion with <spanx style="verb">op</spanx> equal to <spanx style="verb">status</spanx>, or a session credential when a concrete session-credential document allows it.</t>

<t>Endpoint:</t>

<figure><sourcecode type="http-message"><![CDATA[
GET /aep/status HTTP/1.1
Host: example.com
Authorization: AEP <jwt>
]]></sourcecode></figure>

<t>Status has no request body.</t>

<t>Successful Status responses use <spanx style="verb">200 OK</spanx>:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "since": "2026-05-28T12:00:00Z",
  "status": "active"
}
]]></sourcecode></figure>

<t><spanx style="verb">status</spanx> describes the Agent identity's state at the Service:</t>

<texttable>
      <ttcol align='left'>Value</ttcol>
      <ttcol align='left'>Meaning</ttcol>
      <c><spanx style="verb">active</spanx></c>
      <c>The identity is enrolled and operational.</c>
      <c><spanx style="verb">pending</spanx></c>
      <c>Enrollment is awaiting asynchronous verification.</c>
      <c><spanx style="verb">unavailable</spanx></c>
      <c>The identity is temporarily unavailable for Service-defined non-punitive reasons.</c>
      <c><spanx style="verb">suspended</spanx></c>
      <c>The identity is temporarily disabled by Service action.</c>
      <c><spanx style="verb">terminated</spanx></c>
      <c>The identity is permanently de-registered.</c>
      <c><spanx style="verb">rejected</spanx></c>
      <c>Asynchronous verification failed.</c>
</texttable>

<t><spanx style="verb">since</spanx> is the RFC 3339 <xref target="RFC3339"/> timestamp of the last state transition.</t>

<t>The lifecycle fields defined for Enroll apply identically to Status. <spanx style="verb">owner_action_required</spanx> equal to <spanx style="verb">"true"</spanx> indicates that the Agent's Owner must complete an out-of-band action before the identity can become or remain active.</t>

</section>
<section anchor="the-grant-command"><name>The Grant Command</name>

<t>Grant exchanges a baseline client assertion for a session credential. The request uses the baseline client assertion with <spanx style="verb">op</spanx> equal to <spanx style="verb">grant</spanx>. A session credential <bcp14>MUST NOT</bcp14> be used to authenticate Grant.</t>

<t>Grant requires an existing enrollment recognized by the Service. When current enrollment is not already authoritative, an Agent <bcp14>SHOULD</bcp14> call Status before beginning an approval, signing, or credential-issuance workflow. The Service remains authoritative and <bcp14>MUST</bcp14> reject Grant for an unrecognized Agent with <spanx style="verb">not_recognized</spanx>; it <bcp14>MUST NOT</bcp14> implicitly enroll the Agent.</t>

<t>Endpoint:</t>

<figure><sourcecode type="http-message"><![CDATA[
POST /aep/grant HTTP/1.1
Host: example.com
Content-Type: application/aep+json
Authorization: AEP <jwt>
Idempotency-Key: <opaque>
]]></sourcecode></figure>

<t>Request body:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "grant_type": "oauth-bearer"
}
]]></sourcecode></figure>

<t><spanx style="verb">grant_type</spanx> <bcp14>MUST</bcp14> be one of the values advertised in <spanx style="verb">commands.grant_types</spanx>. Concrete session-credential documents <bcp14>MAY</bcp14> define additional request fields.</t>

<t>The successful response body is defined by the concrete session-credential document. This core document requires only that the response be a JSON object and that the selected document define credential presentation, expiry semantics, and revocation behavior.</t>

</section>
<section anchor="the-revoke-command"><name>The Revoke Command</name>

<t>Revoke invalidates session credentials previously issued by Grant. The request uses the baseline client assertion with <spanx style="verb">op</spanx> equal to <spanx style="verb">revoke</spanx>. A session credential <bcp14>MUST NOT</bcp14> be used to authenticate Revoke.</t>

<t>Endpoint:</t>

<figure><sourcecode type="http-message"><![CDATA[
POST /aep/revoke HTTP/1.1
Host: example.com
Content-Type: application/aep+json
Authorization: AEP <jwt>
Idempotency-Key: <opaque>
]]></sourcecode></figure>

<t>Request body:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "grant_type": "oauth-bearer"
}
]]></sourcecode></figure>

<t><spanx style="verb">grant_type</spanx> <bcp14>MUST</bcp14> be one of the values advertised in <spanx style="verb">commands.grant_types</spanx>. By default, Revoke targets all credentials of that grant type issued to the authenticated Agent. Concrete session-credential documents <bcp14>MAY</bcp14> define additional fields for narrower credential targeting.</t>

<t>To revoke all session credentials of every grant type issued to the authenticated Agent, the request body is:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "all_grant_types": "true"
}
]]></sourcecode></figure>

<t><spanx style="verb">all_grant_types</spanx> is a string boolean. When <spanx style="verb">all_grant_types</spanx> is <spanx style="verb">"true"</spanx>, the request <bcp14>MUST NOT</bcp14> contain <spanx style="verb">grant_type</spanx> or <spanx style="verb">credential_id</spanx>. A Service that supports Revoke <bcp14>MUST</bcp14> support <spanx style="verb">all_grant_types</spanx> so an Agent can invalidate all issued session credentials without discovering or iterating over every concrete grant type. A malformed Revoke request, including a request with mutually exclusive fields, fails with <spanx style="verb">invalid_request</spanx>.</t>

<t>Successful Revoke responses use <spanx style="verb">200 OK</spanx> and an empty JSON object:</t>

<figure><sourcecode type="json"><![CDATA[
{}
]]></sourcecode></figure>

<t>The Service <bcp14>MUST</bcp14> return success regardless of whether any matching credentials existed.</t>

</section>
<section anchor="protected-resource-authentication"><name>Protected-Resource Authentication</name>

<t><spanx style="verb">authenticate</spanx> authenticates an Agent to an arbitrary protected Service resource; it does not identify a Service command and defines no new command endpoint. An Agent using <spanx style="verb">aep-jwt</spanx> sends an <spanx style="verb">AEP &lt;jwt&gt;</spanx> field value with <spanx style="verb">op</spanx> equal to <spanx style="verb">authenticate</spanx>, <spanx style="verb">aud</spanx> equal to the Service DID, and <spanx style="verb">resource</spanx> equal to the protected request target. A protected resource <bcp14>MUST</bcp14> reject assertions carrying <spanx style="verb">enroll</spanx>, <spanx style="verb">grant</spanx>, <spanx style="verb">revoke</spanx>, or <spanx style="verb">status</spanx>. Each AEP command endpoint likewise <bcp14>MUST</bcp14> reject <spanx style="verb">authenticate</spanx> and every non-matching command operation.</t>

<t>Protected resources accept AEP credentials in either the standard <spanx style="verb">Authorization</spanx> field or the dedicated <spanx style="verb">AEP-Authorization</spanx> field. Generic Agents default to <spanx style="verb">Authorization</spanx> for compatibility. A caller <bcp14>MAY</bcp14> explicitly select <spanx style="verb">AEP-Authorization</spanx>; Agents composing AEP with MPP or x402 <bcp14>SHOULD</bcp14> select it before the first authenticated retry and preserve that selection for the operation, including newly issued assertions after safe redirects.</t>

<t>The dedicated field preserves the complete normal field value, including its authentication scheme:</t>

<figure><sourcecode type="http-message"><![CDATA[
AEP-Authorization: AEP <client-assertion>
AEP-Authorization: Bearer <token>
AEP-Authorization: Basic <credentials>
]]></sourcecode></figure>

<t>Services <bcp14>MUST</bcp14> accept both carriers for <spanx style="verb">aep-jwt</spanx> and every registered Grant Type whose normal presentation uses <spanx style="verb">Authorization</spanx>. Registered Grant Type specifications define that mapping. API-key credentials continue to use exactly the Service-selected <spanx style="verb">header</spanx> returned in the Grant response and have no second generic representation.</t>

<t>An Agent <bcp14>MUST</bcp14> use at most one AEP carrier per request. A Service inspects <spanx style="verb">AEP-Authorization</spanx> first and falls back to <spanx style="verb">Authorization</spanx> only when the dedicated field is absent. If both fields contain an AEP-recognized credential, the Service <bcp14>MUST</bcp14> reject the request as <spanx style="verb">not_recognized</spanx>; it <bcp14>MUST NOT</bcp14> choose one. An invalid dedicated credential fails closed without fallback to a second AEP credential in <spanx style="verb">Authorization</spanx>.</t>

<t><spanx style="verb">AEP-Authorization</spanx> together with <spanx style="verb">Authorization: Payment &lt;credentials&gt;</spanx> or <spanx style="verb">PAYMENT-SIGNATURE</spanx> is valid and non-ambiguous. After dedicated AEP authentication succeeds, the AEP layer <bcp14>MUST NOT</bcp14> consume, rewrite, log, or forward an unrelated <spanx style="verb">Authorization</spanx> credential. Payment processing occurs only after AEP authentication succeeds; the anonymous response remains the <spanx style="verb">401</spanx> AEP challenge.</t>

<t>Field-name comparison is case-insensitive. A request <bcp14>MUST NOT</bcp14> contain multiple <spanx style="verb">AEP-Authorization</spanx> field lines or a combined value encoding more than one AEP credential. Services <bcp14>MUST</bcp14> treat such ambiguity as credential smuggling and return the non-disclosing <spanx style="verb">not_recognized</spanx> Problem Details error.</t>

<t>Both authorization fields are sensitive. Agents, Services, intermediaries, caches, and telemetry <bcp14>MUST</bcp14> redact them and <bcp14>MUST NOT</bcp14> log raw values. Neither field participates in cache keys or idempotency fingerprints. <spanx style="verb">AEP-Authorization</spanx> <bcp14>MUST NOT</bcp14> be copied into assertion claims or signatures, Platform context, Inspect, OpenAPI, or another protocol document.</t>

<t>A protected resource that requires authentication returns <spanx style="verb">401 Unauthorized</spanx> with an AEP challenge:</t>

<figure><sourcecode type="http-message"><![CDATA[
WWW-Authenticate: AEP service_did="did:web:x",inspect="https://x/a"
]]></sourcecode></figure>

<t>An Agent <bcp14>MAY</bcp14> first send the exact requested method, URL, headers, and body without AEP credentials. It begins AEP discovery only when a <spanx style="verb">401</spanx> response contains a valid <spanx style="verb">AEP</spanx> challenge with <spanx style="verb">service_did</spanx> and <spanx style="verb">inspect</spanx>. Unrelated <spanx style="verb">401</spanx> responses <bcp14>MUST NOT</bcp14> trigger AEP authentication.</t>

<t>Before beginning discovery, approval, Grant, or authenticated retry, an Agent <bcp14>MUST</bcp14> determine whether the request body can be replayed. If it cannot reproduce the identical body, it <bcp14>MUST</bcp14> fail without starting an authentication flow. Implementations <bcp14>MAY</bcp14> apply documented cancellation, total-time, and response-size bounds and <bcp14>MUST</bcp14> fail closed rather than process partial authentication metadata.</t>

<t>An Agent <bcp14>MUST NOT</bcp14> forward an AEP assertion or session credential across an origin change. It <bcp14>MAY</bcp14> follow a same-origin redirect with the credential only when the redirected request remains authorized by the credential and, for <spanx style="verb">aep-jwt</spanx>, uses a newly issued assertion bound to the redirect target's <spanx style="verb">resource</spanx> in the same selected AEP carrier. For a cross-origin redirect, the Agent <bcp14>MUST</bcp14> remove <spanx style="verb">Authorization</spanx>, <spanx style="verb">AEP-Authorization</spanx>, <spanx style="verb">PAYMENT-SIGNATURE</spanx>, every AEP assertion, every AEP-issued session credential, and every payment credential, then restart at the target with an anonymous request. It <bcp14>MUST</bcp14> require a new valid AEP challenge before authenticating to the new origin. Redirect handling <bcp14>MUST NOT</bcp14> copy a Service-selected API-key header to another origin.</t>

<t>Successful authentication establishes an Agent principal and credential metadata, including the authentication method and granted scopes when applicable. It does not authorize the requested application action. The protected application separately evaluates resource policy and scopes. A valid credential with inadequate permission fails with <spanx style="verb">insufficient_scope</spanx> and <spanx style="verb">403 Forbidden</spanx>, without being treated as an authentication failure.</t>

<t>Missing credentials use <spanx style="verb">authentication_required</spanx>. A method not listed in <spanx style="verb">authentication.methods</spanx> uses <spanx style="verb">unsupported_authentication_method</spanx>. Malformed or expired credentials, wrong operation, wrong audience, wrong resource, and replayed assertions use the non-disclosing <spanx style="verb">not_recognized</spanx> error. Protected resources <bcp14>MUST</bcp14> consume <spanx style="verb">jti</spanx> atomically before accepting an <spanx style="verb">authenticate</spanx> assertion so concurrent replays cannot both succeed.</t>

</section>
<section anchor="idempotency"><name>Idempotency</name>

<t>POST commands are state-mutating and <bcp14>MUST</bcp14> support safe retry with the <spanx style="verb">Idempotency-Key</spanx> HTTP header. This requirement applies to Enroll, Grant, and Revoke in this document.</t>

<t>Services <bcp14>MUST</bcp14> cache the response associated with <spanx style="verb">(agent_did, Idempotency-Key)</spanx> for at least 1 hour. If a request repeats the same key with the same authenticated Agent and the same request body, the Service <bcp14>MUST</bcp14> return the cached response or an equivalent successful response.</t>

<t>If the same authenticated Agent reuses an idempotency key with a different request body, the Service <bcp14>MUST</bcp14> return <spanx style="verb">409 Conflict</spanx> with <spanx style="verb">code</spanx> equal to <spanx style="verb">idempotency_conflict</spanx>.</t>

<t>The Enroll request body <bcp14>MAY</bcp14> also contain <spanx style="verb">idempotency_key</spanx> for bindings or application frameworks that persist idempotency metadata with the body. When both forms are present, they <bcp14>MUST</bcp14> match.</t>

</section>
<section anchor="error-handling"><name>Error Handling</name>

<t>The HTTP binding uses RFC 9457 Problem Details <xref target="RFC9457"/> with an AEP <spanx style="verb">code</spanx> field.</t>

<figure><sourcecode type="http-message"><![CDATA[
HTTP/1.1 401 Unauthorized
Content-Type: application/problem+json
WWW-Authenticate: AEP reason="not_recognized"
]]></sourcecode></figure>

<figure><sourcecode type="json"><![CDATA[
{
  "code": "not_recognized",
  "status": 401,
  "title": "Not recognized",
  "type": "urn:aep:error:not_recognized"
}
]]></sourcecode></figure>

<t>The <spanx style="verb">code</spanx> field is the canonical machine-readable AEP error code. <spanx style="verb">type</spanx> identifies the AEP error class using the form <spanx style="verb">urn:aep:error:&lt;code&gt;</spanx>. <spanx style="verb">title</spanx> <bcp14>MAY</bcp14> be omitted from production responses.</t>

<t>After an identity has been recognized, a <spanx style="verb">verification_pending</spanx> Problem Details response <bcp14>MAY</bcp14> include a non-empty <spanx style="verb">verification_pending</spanx> array, and a <spanx style="verb">requirements_unmet</spanx> response <bcp14>MAY</bcp14> include a non-empty <spanx style="verb">requirements_pending</spanx> array. Either response <bcp14>MAY</bcp14> include <spanx style="verb">owner_action_required</spanx> only when its value is <spanx style="verb">"true"</spanx>. These fields contain names only and <bcp14>MUST NOT</bcp14> contain claim values. They describe why the attempted operation is blocked; pending Enroll and Status state continues to use successful lifecycle responses. A <spanx style="verb">not_recognized</spanx> response <bcp14>MUST NOT</bcp14> include any of these fields.</t>

<t>This document defines the following HTTP error codes:</t>

<texttable>
      <ttcol align='left'>AEP code</ttcol>
      <ttcol align='right'>HTTP status</ttcol>
      <ttcol align='left'>Meaning</ttcol>
      <c><spanx style="verb">enrollment_failed</spanx></c>
      <c>400</c>
      <c>Generic enrollment failure where the Service suppresses precise detail.</c>
      <c><spanx style="verb">invalid_request</spanx></c>
      <c>400</c>
      <c>The request body, parameters, or field combination is malformed or invalid.</c>
      <c><spanx style="verb">not_recognized</spanx></c>
      <c>401</c>
      <c>Umbrella anti-enumeration error for failed identity, signature, audience, operation, replay, time-window, archived-identity, or unsupported-method checks.</c>
      <c><spanx style="verb">identity_suspended</spanx></c>
      <c>403</c>
      <c>The recognized identity is temporarily disabled by Service action.</c>
      <c><spanx style="verb">identity_terminated</spanx></c>
      <c>403</c>
      <c>The recognized identity is permanently de-registered.</c>
      <c><spanx style="verb">identity_unavailable</spanx></c>
      <c>403</c>
      <c>The recognized identity is temporarily unavailable for Service-defined reasons.</c>
      <c><spanx style="verb">requirements_unmet</spanx></c>
      <c>422</c>
      <c>Required claims are missing or invalid.</c>
      <c><spanx style="verb">verification_pending</spanx></c>
      <c>403</c>
      <c>Enrollment or required verification has not completed.</c>
      <c><spanx style="verb">verification_timeout</spanx></c>
      <c>422</c>
      <c>Required asynchronous verification did not complete in the Service's policy window.</c>
      <c><spanx style="verb">rate_limited</spanx></c>
      <c>429</c>
      <c>The Agent exceeded a Service rate limit.</c>
      <c><spanx style="verb">unsupported_grant_type</spanx></c>
      <c>400</c>
      <c>Grant or Revoke requested a <spanx style="verb">grant_type</spanx> not advertised by the Service.</c>
      <c><spanx style="verb">idempotency_conflict</spanx></c>
      <c>409</c>
      <c>An idempotency key was reused with a different request body.</c>
      <c><spanx style="verb">authentication_required</spanx></c>
      <c>401</c>
      <c>The protected resource requires an advertised authentication method.</c>
      <c><spanx style="verb">unsupported_authentication_method</spanx></c>
      <c>401</c>
      <c>The presented authentication method is not accepted by the protected resource.</c>
      <c><spanx style="verb">insufficient_scope</spanx></c>
      <c>403</c>
      <c>Authentication succeeded but the principal lacks required authorization scope.</c>
</texttable>

<t>Services <bcp14>MUST</bcp14> use <spanx style="verb">not_recognized</spanx> for bad signatures, unknown Agent identities, wrong <spanx style="verb">aud</spanx>, wrong <spanx style="verb">op</spanx>, replayed <spanx style="verb">jti</spanx>, time-window violations, archived identities, unsupported identity methods during authenticated contact, and unknown or revoked session credentials. Services <bcp14>MUST NOT</bcp14> reveal which of these checks failed.</t>

<t>Services <bcp14>MUST</bcp14> use <spanx style="verb">invalid_request</spanx> for malformed JSON, missing required fields, invalid field types, unsupported field combinations, and syntactically invalid requests when returning the error would not reveal identity-recognition state.</t>

<t>Services <bcp14>MUST</bcp14> implement constant-time-shaped response behavior for <spanx style="verb">not_recognized</spanx> paths so that observable latency does not distinguish a known Agent from an unknown Agent or a validly formatted assertion from a bad signature.</t>

<t>When a request fails for multiple reasons, the Service <bcp14>MUST</bcp14> choose the least revealing error. For example, a request with both a bad signature and missing claims returns <spanx style="verb">not_recognized</spanx>, not <spanx style="verb">requirements_unmet</spanx>.</t>

</section>
<section anchor="extensibility"><name>Extensibility</name>

<t>This document defines the extension points needed by the core protocol:</t>

<t><list style="symbols">
  <t><spanx style="verb">extensions.supported</spanx> advertises extension identifiers implemented by the Service.</t>
  <t><spanx style="verb">identity.methods</spanx> advertises concrete identity methods accepted for authenticated AEP commands.</t>
  <t><spanx style="verb">commands.grant_types</spanx> advertises concrete session-credential formats available through Grant and Revoke.</t>
  <t><spanx style="verb">commands.grant_types_config</spanx> <bcp14>MAY</bcp14> carry per-grant-type configuration defined by a concrete session-credential document.</t>
  <t><spanx style="verb">claims.required</spanx>, <spanx style="verb">claims.preferred</spanx>, and <spanx style="verb">claims.optional</spanx> <bcp14>MAY</bcp14> contain claim names from the AEP Claim Names registry or claim names defined by other documents.</t>
  <t>Additional top-level Inspect fields <bcp14>MAY</bcp14> be added by future documents.</t>
</list></t>

<t>Agents <bcp14>MUST</bcp14> ignore extension identifiers and additive fields they do not understand, unless local policy requires the Agent to refuse enrollment when a required capability is absent.</t>

<t>Services <bcp14>MUST NOT</bcp14> redefine the semantics of commands, fields, status values, or error codes defined by this document. Extensions are additive.</t>

<t>Concrete session-credential documents <bcp14>MUST</bcp14> define:</t>

<t><list style="numbers" type="1">
  <t>The <spanx style="verb">grant_type</spanx> string.</t>
  <t>Grant request fields beyond <spanx style="verb">grant_type</spanx>, if any.</t>
  <t>Grant response shape.</t>
  <t>Credential presentation on HTTP requests.</t>
  <t>Expiry semantics.</t>
  <t>Revoke request fields beyond <spanx style="verb">grant_type</spanx> and <spanx style="verb">all_grant_types</spanx>, if any.</t>
  <t>Error behavior beyond the core errors, if any.</t>
</list></t>

</section>
<section anchor="wire-identifier-syntax"><name>Wire Identifier Syntax</name>

<t>Command identifiers, binding identifiers, and grant type identifiers use lowercase hyphenated tokens:</t>

<figure><sourcecode type="abnf"><![CDATA[
wire-identifier = lc-token *( "-" lc-token )
]]></sourcecode></figure>

<t>Error codes use lowercase underscore-separated tokens:</t>

<figure><sourcecode type="abnf"><![CDATA[
error-code = lc-token *( "_" lc-token )
]]></sourcecode></figure>

<t>Identity method identifiers use either an existing DID method identifier, such as <spanx style="verb">did:web</spanx>, or a lowercase hyphenated token registered for AEP-specific non-DID identity methods.</t>

<t>Extension identifiers <bcp14>MUST</bcp14> be absolute URIs. AEP-owned extension identifiers <bcp14>SHOULD</bcp14> use the URN form <spanx style="verb">urn:aep:ext:&lt;authority&gt;:&lt;name&gt;#v=&lt;version&gt;</spanx>.</t>

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

<t>This section requests registrations and registry creation following RFC 8126 <xref target="RFC8126"/>.</t>

<section anchor="http-authentication-scheme"><name>HTTP Authentication Scheme</name>

<t>IANA is requested to register the following HTTP authentication scheme in the "HTTP Authentication Schemes" registry:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Value</ttcol>
      <c>Authentication Scheme Name</c>
      <c><spanx style="verb">AEP</spanx></c>
      <c>Reference</c>
      <c>This document</c>
      <c>Notes</c>
      <c>Agent Enrollment Protocol client assertion authentication</c>
</texttable>

</section>
<section anchor="http-field-name"><name>HTTP Field Name</name>

<t>IANA is requested to register the following permanent field name in the "Hypertext Transfer Protocol (HTTP) Field Name Registry":</t>

<texttable>
      <ttcol align='left'>Field Name</ttcol>
      <ttcol align='left'>Status</ttcol>
      <ttcol align='left'>Structured Type</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">AEP-Authorization</spanx></c>
      <c>permanent</c>
      <c>N/A</c>
      <c>This document</c>
</texttable>

<t><spanx style="verb">AEP-Authorization</spanx> carries one AEP-recognized protected-resource credential while preserving its registered authentication scheme and credential syntax. It is a request field and is unsafe for logging, forwarding across disallowed redirects, or cache-key construction.</t>

</section>
<section anchor="well-known-uri"><name>Well-Known URI</name>

<t>IANA is requested to register the following URI suffix in the "Well-Known URIs" registry:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Value</ttcol>
      <c>URI Suffix</c>
      <c><spanx style="verb">aep</spanx></c>
      <c>Change Controller</c>
      <c>IETF</c>
      <c>Reference</c>
      <c>This document</c>
      <c>Related Information</c>
      <c>Agent Enrollment Protocol Inspect document</c>
</texttable>

</section>
<section anchor="media-type"><name>Media Type</name>

<t>IANA is requested to register the following media type in the "Media Types" registry:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Value</ttcol>
      <c>Type name</c>
      <c><spanx style="verb">application</spanx></c>
      <c>Subtype name</c>
      <c><spanx style="verb">aep+json</spanx></c>
      <c>Required parameters</c>
      <c>None</c>
      <c>Optional parameters</c>
      <c>None</c>
      <c>Encoding considerations</c>
      <c>Same as JSON <xref target="RFC8259"/></c>
      <c>Security considerations</c>
      <c>AEP payloads can contain Agent identifiers, claims, session credentials, and other security-sensitive protocol data. Implementations need to apply the authentication, confidentiality, anti-replay, anti-enumeration, logging, and privacy requirements described in the Security Considerations and Privacy Considerations sections of this document.</c>
      <c>Interoperability considerations</c>
      <c>None</c>
      <c>Published specification</c>
      <c>This document</c>
      <c>Applications that use this media type</c>
      <c>Services and Agents implementing AEP</c>
      <c>Fragment identifier considerations</c>
      <c>Same as JSON <xref target="RFC8259"/></c>
      <c>Additional information</c>
      <c>None</c>
      <c>Person and email address to contact for further information</c>
      <c>IETF <eref target="mailto:iesg@ietf.org">iesg@ietf.org</eref></c>
      <c>Intended usage</c>
      <c>COMMON</c>
      <c>Restrictions on usage</c>
      <c>None</c>
      <c>Author</c>
      <c>IETF</c>
      <c>Change controller</c>
      <c>IETF</c>
</texttable>

</section>
<section anchor="aep-command-registry"><name>AEP Command Registry</name>

<t>IANA is requested to create an "AEP Commands" registry. The registration policy is Specification Required as defined by RFC 8126. Designated experts are requested to verify that new command registrations define command semantics, authentication requirements, request and response shapes, idempotency behavior for state-mutating commands, and error behavior.</t>

<t>Each entry contains:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>Command</c>
      <c>Lowercase wire identifier.</c>
      <c>Description</c>
      <c>Short command description.</c>
      <c>Reference</c>
      <c>Stable specification reference.</c>
</texttable>

<t>Initial entries are:</t>

<texttable>
      <ttcol align='left'>Command</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">inspect</spanx></c>
      <c>Discover Service AEP capabilities.</c>
      <c>This document</c>
      <c><spanx style="verb">enroll</spanx></c>
      <c>Register an Agent identity with a Service.</c>
      <c>This document</c>
      <c><spanx style="verb">status</spanx></c>
      <c>Query the Agent identity's current state.</c>
      <c>This document</c>
      <c><spanx style="verb">grant</spanx></c>
      <c>Issue a session credential.</c>
      <c>This document</c>
      <c><spanx style="verb">revoke</spanx></c>
      <c>Revoke session credentials.</c>
      <c>This document</c>
</texttable>

<t><spanx style="verb">authenticate</spanx> is not registered as a command because it does not identify a command endpoint.</t>

</section>
<section anchor="aep-operation-registry"><name>AEP Operation Registry</name>

<t>IANA is requested to create an "AEP Operations" registry. The registration policy is Specification Required. Each registration <bcp14>MUST</bcp14> define its valid target class, assertion binding, and replay behavior.</t>

<texttable>
      <ttcol align='left'>Operation</ttcol>
      <ttcol align='left'>Valid target</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">enroll</spanx></c>
      <c>Enroll command endpoint</c>
      <c>This document</c>
      <c><spanx style="verb">grant</spanx></c>
      <c>Grant command endpoint</c>
      <c>This document</c>
      <c><spanx style="verb">revoke</spanx></c>
      <c>Revoke command endpoint</c>
      <c>This document</c>
      <c><spanx style="verb">status</spanx></c>
      <c>Status command endpoint</c>
      <c>This document</c>
      <c><spanx style="verb">authenticate</spanx></c>
      <c>Protected Service resource, not AEP command</c>
      <c>This document</c>
</texttable>

</section>
<section anchor="aep-authentication-method-registry"><name>AEP Authentication Method Registry</name>

<t>IANA is requested to create an "AEP Authentication Methods" registry. The registration policy is Specification Required. Each registration <bcp14>MUST</bcp14> define credential presentation, expiry and replay behavior, redirect handling, and authentication failure behavior. Registered AEP Grant Type identifiers are also valid authentication method identifiers when the corresponding grant specification defines protected-resource presentation.</t>

<texttable>
      <ttcol align='left'>Authentication Method</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">aep-jwt</spanx></c>
      <c>Resource-bound AEP client assertion JWT.</c>
      <c>This document</c>
</texttable>

<t>The initial registered Grant Type method identifiers are <spanx style="verb">oauth-bearer</spanx>, <spanx style="verb">api-key</spanx>, and <spanx style="verb">basic</spanx>, as defined by their respective documents.</t>

</section>
<section anchor="aep-binding-identifier-registry"><name>AEP Binding Identifier Registry</name>

<t>IANA is requested to create an "AEP Binding Identifiers" registry. The registration policy is Specification Required as defined by RFC 8126. Designated experts are requested to verify that new binding registrations define transport semantics, endpoint discovery, authentication carriage, payload encoding, error mapping, and security considerations.</t>

<t>Each entry contains:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>Binding Identifier</c>
      <c>Lowercase wire identifier.</c>
      <c>Description</c>
      <c>Short binding description.</c>
      <c>Reference</c>
      <c>Stable specification reference.</c>
</texttable>

<t>Initial entries are:</t>

<texttable>
      <ttcol align='left'>Binding Identifier</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">http</spanx></c>
      <c>HTTP binding for AEP commands.</c>
      <c>This document</c>
</texttable>

</section>
<section anchor="aep-extension-identifier-registry"><name>AEP Extension Identifier Registry</name>

<t>IANA is requested to create an "AEP Extension Identifiers" registry. The registration policy is Specification Required as defined by RFC 8126. Designated experts are requested to verify that new extension registrations define the extension identifier, discovery behavior, protocol fields or commands added by the extension, error behavior, and security and privacy considerations.</t>

<t>Each entry contains:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>Extension Identifier</c>
      <c>Absolute URI identifying the extension.</c>
      <c>Description</c>
      <c>Short extension description.</c>
      <c>Reference</c>
      <c>Stable specification reference.</c>
</texttable>

<t>This document creates the registry but does not register concrete extensions.</t>

</section>
<section anchor="openapi-specification-extension"><name>OpenAPI Specification Extension</name>

<t>This document registers the following OpenAPI Specification Extension for Security Scheme Objects:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Value</ttcol>
      <c>Name</c>
      <c><spanx style="verb">x-aep-authentication-method</spanx></c>
      <c>Type</c>
      <c>String</c>
      <c>Description</c>
      <c>Registered AEP authentication method identifier</c>
      <c>Reference</c>
      <c>This document</c>
</texttable>

</section>
<section anchor="aep-error-code-registry"><name>AEP Error Code Registry</name>

<t>IANA is requested to create an "AEP Error Codes" registry. The registration policy is Specification Required as defined by RFC 8126. Designated experts are requested to verify that new error codes are binding-independent, use <spanx style="verb">lower_snake_case</spanx>, avoid exposing identity-enumeration detail, and define default HTTP status mapping and remediation behavior.</t>

<t>Each entry contains:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>Code</c>
      <c>Lowercase <spanx style="verb">lower_snake_case</spanx> error code.</c>
      <c>HTTP Status</c>
      <c>Default HTTP status code.</c>
      <c>Description</c>
      <c>Short error description.</c>
      <c>Reference</c>
      <c>Stable specification reference.</c>
</texttable>

<t>Initial entries are:</t>

<texttable>
      <ttcol align='left'>Code</ttcol>
      <ttcol align='right'>HTTP Status</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">enrollment_failed</spanx></c>
      <c>400</c>
      <c>Generic enrollment failure.</c>
      <c>This document</c>
      <c><spanx style="verb">invalid_request</spanx></c>
      <c>400</c>
      <c>Malformed or invalid request.</c>
      <c>This document</c>
      <c><spanx style="verb">not_recognized</spanx></c>
      <c>401</c>
      <c>Anti-enumeration recognition failure.</c>
      <c>This document</c>
      <c><spanx style="verb">identity_suspended</spanx></c>
      <c>403</c>
      <c>Recognized identity is suspended.</c>
      <c>This document</c>
      <c><spanx style="verb">identity_terminated</spanx></c>
      <c>403</c>
      <c>Recognized identity is terminated.</c>
      <c>This document</c>
      <c><spanx style="verb">identity_unavailable</spanx></c>
      <c>403</c>
      <c>Recognized identity is temporarily unavailable.</c>
      <c>This document</c>
      <c><spanx style="verb">requirements_unmet</spanx></c>
      <c>422</c>
      <c>Required claims are missing or invalid.</c>
      <c>This document</c>
      <c><spanx style="verb">verification_pending</spanx></c>
      <c>403</c>
      <c>Verification has not completed.</c>
      <c>This document</c>
      <c><spanx style="verb">verification_timeout</spanx></c>
      <c>422</c>
      <c>Verification did not complete in time.</c>
      <c>This document</c>
      <c><spanx style="verb">rate_limited</spanx></c>
      <c>429</c>
      <c>Rate limit exceeded.</c>
      <c>This document</c>
      <c><spanx style="verb">unsupported_grant_type</spanx></c>
      <c>400</c>
      <c>Unsupported Grant or Revoke grant type.</c>
      <c>This document</c>
      <c><spanx style="verb">idempotency_conflict</spanx></c>
      <c>409</c>
      <c>Idempotency key reused with a different request body.</c>
      <c>This document</c>
      <c><spanx style="verb">authentication_required</spanx></c>
      <c>401</c>
      <c>Protected-resource authentication is required.</c>
      <c>This document</c>
      <c><spanx style="verb">unsupported_authentication_method</spanx></c>
      <c>401</c>
      <c>Authentication method is not accepted.</c>
      <c>This document</c>
      <c><spanx style="verb">insufficient_scope</spanx></c>
      <c>403</c>
      <c>Authenticated principal lacks sufficient scope.</c>
      <c>This document</c>
</texttable>

</section>
<section anchor="aep-grant-type-registry"><name>AEP Grant Type Registry</name>

<t>IANA is requested to create an "AEP Grant Types" registry. The registration policy is Specification Required as defined by RFC 8126. Designated experts are requested to verify that new grant type registrations define the Grant request fields, Grant response shape, credential presentation syntax, expiry semantics, Revoke behavior, and security considerations for credential storage and leakage.</t>

<t>Each entry contains:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>Grant Type</c>
      <c>Lowercase wire identifier.</c>
      <c>Description</c>
      <c>Short credential description.</c>
      <c>Reference</c>
      <c>Stable specification reference.</c>
</texttable>

<t>This document creates the registry but does not register concrete grant types. OAuth Bearer, API-key, and Basic session credentials are defined by separate documents.</t>

</section>
<section anchor="aep-identity-method-registry"><name>AEP Identity Method Registry</name>

<t>IANA is requested to create an "AEP Identity Methods" registry. The registration policy is Specification Required as defined by RFC 8126. Designated experts are requested to verify that new identity method registrations define identifier syntax, verification-material resolution, JWT <spanx style="verb">kid</spanx> handling, trust anchors, caching behavior, key rotation behavior, and security and privacy considerations.</t>

<t>Each entry contains:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>Identity Method</c>
      <c>Lowercase identity method name.</c>
      <c>Description</c>
      <c>Short method description.</c>
      <c>Reference</c>
      <c>Stable specification reference.</c>
</texttable>

<t>This document creates the registry but does not register concrete identity methods. The <spanx style="verb">did:web</spanx> identity method is defined by a separate document.</t>

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

<t>Network use of the HTTP binding defined by this document requires TLS 1.3 or later. Plaintext HTTP is out of scope.</t>

<t>Client assertions are replay resistant only when Services validate the full chain: <spanx style="verb">aud</spanx>, <spanx style="verb">op</spanx>, <spanx style="verb">resource</spanx> when required, <spanx style="verb">jti</spanx>, <spanx style="verb">iat</spanx>, and <spanx style="verb">exp</spanx>. <spanx style="verb">aud</spanx> binds the assertion to the Service DID. <spanx style="verb">op</spanx> binds the assertion to one registered operation. <spanx style="verb">resource</spanx> binds <spanx style="verb">authenticate</spanx> to a protected request target. <spanx style="verb">jti</spanx> prevents in-window duplicate use. <spanx style="verb">iat</spanx> and <spanx style="verb">exp</spanx> bound the usable time window. Services that skip any of these checks weaken the authentication model.</t>

<t>Services <bcp14>SHOULD</bcp14> keep assertion lifetimes short. This document sets a maximum validity interval of 300 seconds. Services <bcp14>MAY</bcp14> enforce a shorter maximum.</t>

<t>Identity methods define how Services obtain verification material for Agent identities. Services <bcp14>MUST</bcp14> apply the resolution, trust-anchor, caching, and key-rotation requirements of each enabled identity method. A Service <bcp14>MUST NOT</bcp14> accept an Agent identity method that was not advertised in <spanx style="verb">identity.methods</spanx>.</t>

<t>Resolving a Service DID proves that the DID document exists; it does not prove that the origin serving an Inspect document controls that DID. An attacker that publishes another Service's DID could otherwise induce an Agent to create or disclose an assertion whose audience names the victim Service. Agents <bcp14>MUST</bcp14> enforce the Service-origin binding defined for the Service DID method before provisioning identity material, requesting an assertion, or transmitting credentials. Directory membership and directory ownership metadata <bcp14>MUST NOT</bcp14> substitute for this check.</t>

<t>The <spanx style="verb">core.signing_algorithms</spanx> advertisement is security relevant. Services <bcp14>MUST NOT</bcp14> advertise algorithms they do not intend to accept, and <bcp14>MUST NOT</bcp14> accept algorithms that were not advertised. Agents <bcp14>MUST NOT</bcp14> use <spanx style="verb">none</spanx> or symmetric JOSE algorithms for Agent identity assertions. Implementations <bcp14>SHOULD</bcp14> follow JWT best current practices <xref target="RFC8725"/>.</t>

<t>Authentication failures are an enumeration risk. Services <bcp14>MUST</bcp14> collapse recognition failures to <spanx style="verb">not_recognized</spanx> and <bcp14>MUST</bcp14> shape timing so attackers cannot distinguish an unknown Agent, a bad signature, a wrong audience, a wrong operation, a replay, an expired assertion, or an archived identity.</t>

<t>Grant issues session credentials that may be bearer credentials depending on the concrete session-credential document. Services and Agents <bcp14>MUST</bcp14> treat returned credentials as secrets. Concrete session-credential documents <bcp14>MUST</bcp14> define credential lifetime, presentation, storage guidance, and revocation semantics. Revoke <bcp14>MUST</bcp14> be available for every advertised grant type.</t>

<t>If a session credential is stolen, an attacker may impersonate the Agent until the credential expires or is revoked. Agents that suspect compromise can authenticate with the baseline client assertion and invoke Revoke for the affected grant type.</t>

<t>Services <bcp14>SHOULD</bcp14> rate-limit Inspect, Enroll, Grant, Revoke, and Status to reduce probing and credential-issuance abuse. Rate limits <bcp14>MUST NOT</bcp14> create distinguishable recognition errors that defeat the anti-enumeration rules above.</t>

</section>
<section anchor="privacy-considerations"><name>Privacy Considerations</name>

<t>AEP exposes Agent identity and claims to Services. Agents and Services should minimize disclosure by using the Inspect document as the negotiation surface: Services list required, preferred, and optional claims; Agents provide the minimum set needed for the intended interaction.</t>

<t>Services <bcp14>SHOULD</bcp14> keep <spanx style="verb">claims.required</spanx> limited to data required for enrollment or legal operation. Over-declaring required claims increases privacy risk and reduces interoperability.</t>

<t>Agents <bcp14>SHOULD</bcp14> avoid sending claims absent from <spanx style="verb">claims.required</spanx>, <spanx style="verb">claims.preferred</spanx>, or <spanx style="verb">claims.optional</spanx>. Services <bcp14>MUST</bcp14> ignore unknown claims unless local policy requires rejection.</t>

<t>Agent identities can become correlatable if the same identifier is reused across Services. Platforms or Agent operators that require unlinkability <bcp14>SHOULD</bcp14> use a distinct Agent identifier and signing key per Service enrollment when the selected identity method allows it.</t>

<t>Services <bcp14>SHOULD</bcp14> maintain a Service-local pairwise identifier for enrolled Agents rather than using the Agent DID as the primary internal record key across all contexts. Such identifiers <bcp14>SHOULD</bcp14> be opaque and <bcp14>MUST NOT</bcp14> be disclosed as cross-Service correlators.</t>

<t>Platform-hosted Agent identities introduce Platform-level visibility: the Platform can observe or reconstruct which Services an Agent enrolls with. This document does not prevent that visibility. Agents with stronger privacy requirements should account for the Platform trust relationship before using a Platform-hosted identity.</t>

<t>Session credentials can become correlation handles when reused outside the issuing Service or logged by intermediaries. Concrete session-credential documents <bcp14>MUST</bcp14> define presentation rules that avoid unnecessary disclosure and <bcp14>MUST</bcp14> prohibit logging raw credential values.</t>

<t>Inspect documents may disclose Service policy and capability information to unauthenticated readers. Services <bcp14>SHOULD</bcp14> avoid publishing sensitive operational details in Inspect beyond what Agents need for interoperability.</t>

</section>


  </middle>

  <back>


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

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

<reference anchor="DID-WEB" target="https://w3c-ccg.github.io/did-method-web/">
  <front>
    <title>The did:web Method Specification</title>
    <author >
      <organization>W3C Credentials Community Group</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


<reference anchor="RFC3339">
  <front>
    <title>Date and Time on the Internet: Timestamps</title>
    <author fullname="G. Klyne" initials="G." surname="Klyne"/>
    <author fullname="C. Newman" initials="C." surname="Newman"/>
    <date month="July" year="2002"/>
    <abstract>
      <t>This document defines a date and time format for use in Internet protocols that is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3339"/>
  <seriesInfo name="DOI" value="10.17487/RFC3339"/>
</reference>
<reference anchor="RFC5234">
  <front>
    <title>Augmented BNF for Syntax Specifications: ABNF</title>
    <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
    <author fullname="P. Overell" initials="P." surname="Overell"/>
    <date month="January" year="2008"/>
    <abstract>
      <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="68"/>
  <seriesInfo name="RFC" value="5234"/>
  <seriesInfo name="DOI" value="10.17487/RFC5234"/>
</reference>
<reference anchor="RFC6839">
  <front>
    <title>Additional Media Type Structured Syntax Suffixes</title>
    <author fullname="T. Hansen" initials="T." surname="Hansen"/>
    <author fullname="A. Melnikov" initials="A." surname="Melnikov"/>
    <date month="January" year="2013"/>
    <abstract>
      <t>A content media type name sometimes includes partitioned meta- information distinguished by a structured syntax to permit noting an attribute of the media as a suffix to the name. This document defines several structured syntax suffixes for use with media type registrations. In particular, it defines and registers the "+json", "+ber", "+der", "+fastinfoset", "+wbxml" and "+zip" structured syntax suffixes, and provides a media type structured syntax suffix registration form for the "+xml" structured syntax suffix. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6839"/>
  <seriesInfo name="DOI" value="10.17487/RFC6839"/>
</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="RFC7518">
  <front>
    <title>JSON Web Algorithms (JWA)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>This specification registers cryptographic algorithms and identifiers to be used with the JSON Web Signature (JWS), JSON Web Encryption (JWE), and JSON Web Key (JWK) specifications. It defines several IANA registries for these identifiers.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7518"/>
  <seriesInfo name="DOI" value="10.17487/RFC7518"/>
</reference>
<reference anchor="RFC7519">
  <front>
    <title>JSON Web Token (JWT)</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 Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7519"/>
  <seriesInfo name="DOI" value="10.17487/RFC7519"/>
</reference>
<reference anchor="RFC8259">
  <front>
    <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
    <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
    <date month="December" year="2017"/>
    <abstract>
      <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
      <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="90"/>
  <seriesInfo name="RFC" value="8259"/>
  <seriesInfo name="DOI" value="10.17487/RFC8259"/>
</reference>
<reference anchor="RFC8037">
  <front>
    <title>CFRG Elliptic Curve Diffie-Hellman (ECDH) and Signatures in JSON Object Signing and Encryption (JOSE)</title>
    <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
    <date month="January" year="2017"/>
    <abstract>
      <t>This document defines how to use the Diffie-Hellman algorithms "X25519" and "X448" as well as the signature algorithms "Ed25519" and "Ed448" from the IRTF CFRG elliptic curves work in JSON Object Signing and Encryption (JOSE).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8037"/>
  <seriesInfo name="DOI" value="10.17487/RFC8037"/>
</reference>
<reference anchor="RFC9846">
  <front>
    <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
    <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
    <date month="July" year="2026"/>
    <abstract>
      <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
      <t>This document obsoletes RFC 8446, which specified TLS 1.3. This document obsoletes RFC 5246 (specifying TLS 1.2) and RFCs 5077, 6961, 7627, and 8422, all of which pertain to TLS 1.2 or earlier, and updates RFCs 5705 and 6066. This document also specifies new requirements for TLS 1.2 implementations.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9846"/>
  <seriesInfo name="DOI" value="10.17487/RFC9846"/>
</reference>
<reference anchor="RFC8615">
  <front>
    <title>Well-Known Uniform Resource Identifiers (URIs)</title>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <date month="May" year="2019"/>
    <abstract>
      <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
      <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8615"/>
  <seriesInfo name="DOI" value="10.17487/RFC8615"/>
</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="RFC9112">
  <front>
    <title>HTTP/1.1</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 specifies the HTTP/1.1 message syntax, message parsing, connection management, and related security concerns.</t>
      <t>This document obsoletes portions of RFC 7230.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="99"/>
  <seriesInfo name="RFC" value="9112"/>
  <seriesInfo name="DOI" value="10.17487/RFC9112"/>
</reference>
<reference anchor="RFC9113">
  <front>
    <title>HTTP/2</title>
    <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
    <author fullname="C. Benfield" initials="C." role="editor" surname="Benfield"/>
    <date month="June" year="2022"/>
    <abstract>
      <t>This specification describes an optimized expression of the semantics of the Hypertext Transfer Protocol (HTTP), referred to as HTTP version 2 (HTTP/2). HTTP/2 enables a more efficient use of network resources and a reduced latency by introducing field compression and allowing multiple concurrent exchanges on the same connection.</t>
      <t>This document obsoletes RFCs 7540 and 8740.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9113"/>
  <seriesInfo name="DOI" value="10.17487/RFC9113"/>
</reference>
<reference anchor="RFC9114">
  <front>
    <title>HTTP/3</title>
    <author fullname="M. Bishop" initials="M." role="editor" surname="Bishop"/>
    <date month="June" year="2022"/>
    <abstract>
      <t>The QUIC transport protocol has several features that are desirable in a transport for HTTP, such as stream multiplexing, per-stream flow control, and low-latency connection establishment. This document describes a mapping of HTTP semantics over QUIC. This document also identifies HTTP/2 features that are subsumed by QUIC and describes how HTTP/2 extensions can be ported to HTTP/3.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9114"/>
  <seriesInfo name="DOI" value="10.17487/RFC9114"/>
</reference>
<reference anchor="RFC9457">
  <front>
    <title>Problem Details for HTTP APIs</title>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <author fullname="E. Wilde" initials="E." surname="Wilde"/>
    <author fullname="S. Dalal" initials="S." surname="Dalal"/>
    <date month="July" year="2023"/>
    <abstract>
      <t>This document defines a "problem detail" to carry machine-readable details of errors in HTTP response content to avoid the need to define new error response formats for HTTP APIs.</t>
      <t>This document obsoletes RFC 7807.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9457"/>
  <seriesInfo name="DOI" value="10.17487/RFC9457"/>
</reference>
<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>



    </references>

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

<reference anchor="AEP-CLAIMS" target="https://datatracker.ietf.org/doc/draft-kavian-aep-claims/">
  <front>
    <title>AEP Claim Values</title>
    <author initials="N." surname="Kavian" fullname="N. Kavian">
      <organization></organization>
    </author>
    <date year="2026" month="August" day="24"/>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-kavian-aep-claims-01"/>
</reference>


<reference anchor="RFC8126">
  <front>
    <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
    <author fullname="M. Cotton" initials="M." surname="Cotton"/>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <author fullname="T. Narten" initials="T." surname="Narten"/>
    <date month="June" year="2017"/>
    <abstract>
      <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
      <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
      <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="26"/>
  <seriesInfo name="RFC" value="8126"/>
  <seriesInfo name="DOI" value="10.17487/RFC8126"/>
</reference>
<reference anchor="RFC8725">
  <front>
    <title>JSON Web Token Best Current Practices</title>
    <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
    <author fullname="D. Hardt" initials="D." surname="Hardt"/>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <date month="February" year="2020"/>
    <abstract>
      <t>JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security tokens that contain a set of claims that can be signed and/or encrypted. JWTs are being widely used and deployed as a simple security token format in numerous protocols and applications, both in the area of digital identity and in other application areas. This Best Current Practices document updates RFC 7519 to provide actionable guidance leading to secure implementation and deployment of JWTs.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="225"/>
  <seriesInfo name="RFC" value="8725"/>
  <seriesInfo name="DOI" value="10.17487/RFC8725"/>
</reference>



    </references>

</references>



  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA+19a3fbRpbgd/4KrHLmbNJL0pZsJ46cZEaxlY4Sv9qSOyfT
p48JkqCEGATYACiZk3h+y/yW/WV7n1W3CqAejj2d3bW6cyyRQD1u3brvx2g0
GrR5W2T7yc7JWZYcnGZlmxyWdVUUS/z1eV211awqdgbpdFpn5/DcweHzncG8
mpXpEl6b1+miHb1Oz/O0HKX4+ihzr49W8vro9p3BPG3h+b3be5+Pbt8f7d0d
zOCD06re7CdNOx/kq3o/aet10+7dvv3l7b1Bs54u86bJq7LdrODNo8OT7wZN
m5bzV2lRlRk9nQ1W+f4gSWCW/WSTNfBrU9VtnS0a9/dm6f9M1+1ZVeMbI/gv
SfISvng6Tn6kDdBHvK/ws6o+Tcv8P9IWVrOf/JDWF3k5TI7K2Tj59Kj8rqgu
PqPnsmWaF/swRPNvebmAj1fpZpzmg0FZ1Ut4+zzDqR8dPRr9dPjtPr1iwT/P
5/sX2TR5ksEq58nxKpvli3xG0+7w02l9mrX7yVnbrpr9W7cu7sxGs9np+DRv
z9bTcV7dgjFGS3p/BEPdorf8rvFnhNvZT3668zB5WGdzOKc8LZrkYbVcrsu8
3SR/rqv1Ch5+8d3DO3fufLnPv97bu3NXfv38vvv0i3u79/yv9/2v+sD9vXvu
19t3vpBfv7x/93P99HM3wpe7u7f9r3v+1zv+V13Dl3fvwWAAZQtZwM3Rw8cH
R0+OQ+DC58nDIs2XyV/TYp01/cAEDE3bOp29zupxnrWLMcDpFmD6rRDJs9Vo
hmM1DNwOXuOHTVbnWYOrU6gflW1Wl1k7eoSDxRfHjTm6vdt7ZD2I2o+sCNHd
PQfcL/YAuOPxeDAYjUZJOm1wg+1gcOltTz4FgH2WzLNFXmZNkpbJ9ycnz0fT
tMnmyTKbncFlaJYJgB7XWZXVslrDYzhcA1cR8LiZVedZjWA4z2dZ4klCUmf/
WOd1hr83Q/kCZ6C3k5zQsd0Mk2rapnmZVCtE/rSAoYgWJDOPskMY7Lx6nSUA
qiYLvwEykfxjndUbOzdQj3bdjBFNkjUMmDzKZvB5nRb5f8DOjuj1RZ7VMMCs
yPGVtIE94BKSH346kXERGAiraZEtYQhYZ0HbBmp3DhtIUjiWuq4ukmU6OwMI
jhZ53bR2ITgKnjDOx9c7AXKHZ9NmDFaipG01UgjmiD5wcvBoI4e5zOfzIhsM
PkHcqqv5mr4dDA46R5KXAJsU0PG02LiRkgugGfwXoKUeVUMfV2tYY3K2XsLB
zOG0Zi28OKuWqyJrYRSA+2lOq8WV4w3Eo0TaBw+VsNslfQMfrgB+F1U9h+Hb
9QpOtYb70pxNq7SeCz4dPD8avc42DD08YphgnBy+gQlwKgJ2BCuHgk0yQ9Tx
32aESgXsdr4ZuRFhFj7OYTKFncHTm2ReJWXVCo7DZreeFZLxZLpJLs7y2VnC
0wXwdegOfysY/2cTIfqqzho6ixTwdLNqq9M6XcGIBuMRKaYZQDnDl2fVaUlY
CVO3Z6k7oPHN7i69aq+AohnfAjhPut8HwUZgrykiwLEgn2zF3FcYZ7UCRgvr
0w0kzHWG4XHgJLAlQKQ5oxa8u8rqEQ6ZAaD7rtnQ3XrAOqEDaQ8BcPcfxIR1
Nu8nEZcRArgrsLy8AWgV+TRDsMCMfHnHyREApAIQGjQBds7vZy0wliVh1Ows
m73GC9PADcBt46R0FYWIi9wwTH78+WGSvclma/4T7kKRnQJpW1VFPtuMkxMi
Y4t1ydeccBsvHX6aTuFg8JUpsJU5wRVfwLVXszUtSo+8KgtEmQwIRJkv10u+
QiqKJWUG0JkTlaHLX8FxpEDKBAciKiUwHXmYJtOqahGHViu8qYiOZhWA+IBD
KzyTpMiXOWIIkEZcDi1jmpdzvNY4/VHZgIQDIGQ0HoLgkSJEX9Cp8tEdC8l+
uUI+C99VLf37CC+KyIdDOKJyRMPDsmBQQEyk4BWSPcDBnj2w1ID3kmBPmF9U
zZqQ/MefD4bJv/+IIKsWgkIV7KCG02uzsqHDSWs4Djj1aiEbxh21FhRjJM0v
DBVIHqfl6RpoBl9hJHpIG5tk58nL45OdIf+bPH1Gv784/MvLoxeHj/D34+8P
Hj92vwzkiePvn718/Mj/5t98+OzJk8Onj/hl+DQJPhrsPDn4eYf3tfPs+cnR
s6cHj3cAG8L10xbh7KbCfVYITOBbzWCeNbMaLswc3/n24fP//V+7d5Nff/0f
IHDs7e5++fat/HF/94u78McFkAOBIqIm/4lEeAA4lKWIh0CzgXekq7zlSwtY
dFZdlAkAHSnen/6GkPn7fvLVdLbavfuNfIAbDj5UmAUfEsy6n3ReZiD2fNQz
jYNm8HkE6XC9Bz8HfyvczYdf/WuBRGa0e/9fvxkg8pxkNdzhqqhON0Cq8Hru
D/aT42rRXuDZIJWBq+T5UQFE5ECJ+VlVAGoBUsI9APGg6LIeREA8FSATcCla
IB1IDoUyI3UU+o+TnugFRjaU1cxXgEtlIHmH79GQc9Bc5ihMnGV0cQCNhHXA
ghxzc5wH5np2UWa1zsSSBzxqFS+eE7Ai2pWOkdAQMDULZAihOhO+S3ibsIhN
CNjD3RAll7CS50XaIn3AxRwYCZQIZVvJ3oFWw14PAqkVhAi4J0hf4KkmP0VR
BqC7qFOglyCeAXmBA0p0AqSRyFxkAcTqka4PBn+FUVAOpSUA16lbEQLO+Qu3
FWALKKrpmcO0DAQ8g2W6Yc6YpC0cbssyGcy2gEtVzlS0yBR8ETeJWJ8ZQ6kn
LFRIuHtND/CH42dPnTix8aOu1tMib854bn8EsLPJrfFFVhSj1yWc8C1QiCbE
gdP5OQoGjSAZSllE8b38odIFct1ZtuoRSUhRIOQkQRABh5LMfFUBXWOJ9XRd
C5NGyDkyr9PATh9GggofDUgrdNARMIELrur8HAUgvWQeEVEwCIXWuRWT8BCR
WQNY4QuPpE21rkH8I/B6cQn5aeMnNuKkvmlUKkJg2iXiRQo4ABryErhp9maV
izTPH8DFKRB9nEZEgBkSk/OL00U1RM7dn8nLF0dEPWJxjGGGWJQt1oX5QiU4
gSHJAQ4eHegVeMsMvZnNgIviVQMqg3Ii3Je0n+031qICS+SJyL4kS6vpyrpt
szJ2DVHCIKRsQuCPqIp6AxGqZ6CbnSXfAs9DiIrmQ5Lgt6CezZJLlnoQq0CI
2bzqCyAeds3uzkS3TPR1NwzstOcsx8kEzRG/XLQTPyiTWUTS6Bo8EF0wQ/rF
4DzZrOxyGv190yegk5DkdJdn57jU7IIFJNQPiSPixKSG5c3+YLDLd4DxfZG1
IIA3FuJw+WKyNB7s2Zey87RYE8NT/pS3JG03AJVmsYlG0xskdjVCSCIjgY43
HtyxcwDKMNEnvtuj5bA2NEnX80kCw8CRi5ysx/Xo6BFNNalW0RN6M6YZMxgU
l+fjwV07P3/aiGw9HtwLFgfiViOyNbNDI/YDF1hlLKVXNX8L4EG1AdjOuq5V
gQLB7HM7KPIbHFjQgG+OvxY9Vwcv3njwRe8gL8S0U+FO0iJH8f8SRc/wIlj/
ugzI6/hqDYPEhZAm0/m0Fg8nB1ah2ye8/AouyjcTogLjpEvygDRWSGd55cME
xEAUqNcNkzKnGhN3h30DkuOUMCFfywhaDwS4uHCFEEgt8DiKYWlxkW4aHDxc
d4x+dOlImvuW1bFIiYstf05rWzfOJOO0XZD1xXQLoj5ZD/D7W7vjXffN3tu3
Q/50z312Bz+r5OE77mPQF8bJ06wFxeg1bQT0K9JKdAlOWjt5fJzsju+QGk0M
gYe4f/dzHAJkLFRa3rS8WhjAKmtiRPHbUrV58ufDkwnfuufPjk8mQG5+I8s4
fvSbGuZ/A3wS6eGyn9/g3RH/JPqb++XyH3pXEfo3WRb+0pGStszLCE+v0Ebw
F77jEwBhQRZzvFwTlYNeIbZM6F25EcG8bDG5+l1Gz3DeU/zs8lfpXUHo4F22
8Fw1L51m/DESebJDeKGTVNyswx6AXswBgSboCBiHo4AQukiqZQ7SL9zeA7an
ku6JyDnBI7gFD8kXjug7Ev3yxeOGuPBKaaoh4GQllH2tUqQ23c0RFcrepGSC
rZAI3ZqojFPVKKmdpvW8AMKD2K38LB4lL2fFGhWyFE0keYELaYq0ORsn31Vo
10jRtjtMphXyJEYsugW8QZQT5uuZblgRCUm88pfBC6v/gcwDokSDUh7c1RWA
RW2Rs7SuSc1hHWGVbooqnTPRmgCUCpFwcKL/9UtTlZOhmF7XjfD5CX+eOKUK
5tuUbfoGpl0s8jdMCdBJhZTgsK5J59RVdCZasSWfBw0lLaNeyMLT7VQVfgNy
8Z//+Z/kUAJhoWnQ1rONZ+CTg8FPrIt2ORqxMeESqUMnzyZALGlZ7DbviJjs
tTQ2biIxd3LpZbJsYLp65NQ3nFnuDF+1zgWCadJzwCsyJKZkYk88oUKFgBFc
14KYg5Cgk0IP4Nu3fbAD8pPEFM+xl8H3oILvK+6OAUSDA9IA95M+PGJ4n7Ce
QrgA2D7f0NIZF6vpL7gpXtPePcIe9CjCxLDkEnZag4zuDKlEX3rtDDQa6xIg
Tn+XZ8WcPHWCfHB6Wf2qKdPX2asZERlUL1Ge9A/NK6Q4CT2KzwBpeA06qQAp
nZaLAYmgI3wl+Zrl0RE9lPzp053xjv3ks4H9+uvk8cODx8+/P4AH9bdbIG3+
+QiAney82vlsoB9/nfzLm893R18ceOBN5Dsgyesis/hFtjoS5SY0WPcJwEAA
bYKeZIYy/gZQ3oJU3gRI1h5g6Ma4vUCoNt52wubX0Mo8vNLEzKyOBUEQdgSX
YgOCQJ2w6NdBkuwATr0SU8TOfrKzO769M6TPAyUNvvqVPLU7YoeAD/62I8oV
WmYrfH40JXVw5+/w6FsaRVbf+PedFE0j4BUxj7NFwz+sBit89u9D/mxFVp+a
B9APFXY0KEF41o7JjWdHF/rnxyd2/gqlUd5QuIth34qZYeCW6WX8JeeTwV+Z
x+NvLGUEs9eZAQOb1F6lxSlQ1PZsyQs4nD86PsDXD4/37n1u3vbm+i2g9I8S
TN1DAffEEya2tzNUAGdlusrd4whfIG6vlmmLPsRT/GJH2ewrYrM4BhIE2PDb
ob60rgsaW8YbI35xZMJbty7FxH5ckoARs2XxEvrH4RGcRJ7cx3kMxcTp3g7e
8vWe6FmPHZAmCUhOJNg4PcUrqNkbdE0140AsQhs4657+pXTakK5eV0sW5nHQ
sZ3Q4JSf8kr3TbAa1N/F3FnOxTNI0hvNCMybzKFJtlzBvUbdlBY1DMZwO8Al
OMEVHnZyKEiQfWDCzYSXfyznJNsZ4psrZ3uFMedoAsLJO85tes9bM6ebPjMN
aJFFVZ6K2cts4mb2G7FCBCYGuxOUgJ+RSCnsjkA0zbaYfSJTFAuDrI+CVHDq
zG0g+W4TW5BpNMxHiMbjoamz5EGSL9AYkTe9x2eMxWXlgTZyhsleUI8TEsJk
EUMcXzeJfkVGGLL5MBPCsedrFjAI+0tFcJSk6ektiM1I6CzrOdzCjVpIiIH5
k0MELTfidtR1hgfjsdW70Xqv8DSbpXgGArjSnL4xCeOKvK1QBU6lhIjgSosi
1I65ZXD+wfEQRjexHTI0f8vRG+GKZKARCUF2ZIOAotbhKEe6lidyjSRUBT1j
biEsRXtk2SIcwDJFFSZIuxdQwC2yFCgE6mPR7hFQGqoBRDe4g8EtFaLJlwPO
hdXVVFQcMguykRF21xuMNBbtIZzOa0lC8id6LL/+KoGHaHlRUekYdpkDFYGD
nlVzryWg8ZF2LVThLNMHySCDdxN9YiqzOZEa9N0xvUziPkUvlLRPibdJizZj
QU0n5GFDJlJnJImnyTJviKsCDgPWZEGQkHd7eReHOAXo2w7U6EQpQgD1eXzG
GhB1AeLzZebmgPtK53ilS5roWRXVDFkSsPt1QPwe8LmKk09NaXHcmIOccEeD
IWSTMyZmVmsoOqhP5w+uGlGEhjzrEsFV4R1gUm4tzMpuCO7q6yvx2HPASKZq
eEAjcbg6o5mciECtzsg8wT5U74SmmxYQPN4Jfa4j2SPvM894T7Q7HSC3Eoc3
S2cY6gLQxPDNoVg6cNjJQ/xq9JDXLfaMw5P0dII22Q7qIgYgANJ1gaJK1pyV
COAiX2ToE0NI37l9G2YGQMzpWI2rn83k9gTcptFwjhr+GVLjWgNOLmDv1cVY
3PoC/rOqBAxdN6RFu93hXnR/ZuGXbHXo9kl7fgykavSkmiNWzuVDmg9uE1pp
rLUGN5eLw7vOxPDOzve6Wp+CqHDn9t3kKezLDQh8qaxGdA4Tb54NXhZcqTOg
Tvx4A/iYkV3pLJ/mLbocQJ0Ces5slG4p3V56BwbYVGT+yJwLgjw/wruBIyt8
BXr+AAXgeUOcFu6Pt+MJMuEE5miZATFeofc2b8S7qS5k418DcufBiXZ9ClNy
IU9MJOmhRUtueS/WAemhe5k0VQRpCkvWSQPZiK6N2OIEGrjMub0qIR2l0+Bo
MJgvHaEkkgBYWAhdkIfGHX6HmnP0T79Zbox28VVa5/AHwggZ9Ai0OtS4yKJJ
oSWngNEZMbd8bpeA9ktAajh0vHYUyIX6+jItULbHM8JQ0XxB8nLLb5LkaATQ
X0i6wy0ruVlUaBoT3uB3I4AOQJIB4PxXDHPc71l6zvBq0LDSAHTRH47RHhIb
AEuascUWpTbhASsMhXH+CQxsJEb4sK6aZiSMUycTCymNDAd3UYKMOA8ka9mY
MgBWHMnCKAxA0Ctyc7kdW8+5o0OwxHNiIslijUZTE+VArIdoPzNOiWiI0cEg
18HPwL/hpIjQMeqh7FCtkTQyG8AYIGLwDpsaDvnB29GmhYsnlqCDmGvI+A37
z2VogtGCAo2LCi+gxPLQ16TevZlxfKO7lSggK6FLKZYmN4KLtXh+kjwDTfzg
+VFyoDccvwKBjhwDoqaTPdrqC0aQRBe/DHFnvOstWYtLYzoainRxJi5n0pqs
a2VbgX1hHNoWJmILG8sLZNB8+eJo5LRNvGLO0eB1UJyf/YanOHF7pVzHmk5V
rFsVHpG0iUtzZnC9z/+mpD6b0yGtWs8zcRS8YUSkN2SHymcU/auOjwkJWfgM
MrfdvS/Gt+F/uxMiE5O/7e/v/p3dEXNA8qJaIdQfyAaZHLAmRdZSChMpqmo1
TWev4fjmNeKGuygo8OYLEJZeguw3chkmVWnFWc0DOMYgfdqiu8mktPjdokJw
+fHBrid8x9nW4GUvILIv2TUl3w9JrhZXCpNHjvFoKVQQ40ZwTFrCnCLoZ60b
w4w7DFxK0csotBLddidFuin6uZgzglqM5wOnDtQy1yABuWQUN1DghAguAByy
Y2VTKMLQ2gsAfcMC8jJbTjEEw0PhAQhNF+72NOJ2Dm8hX27xa4FqiyGEcvXq
DIZBjsrqblVuMDjS0BdHF0iMdNaBwGuPyqTTHOBvF7QXPDWrqtc5xj8humZ1
GPGdnGWADphMgpGMhH/yCby3ytForTI/LPj0NKsNAwkVoh5iq+wEBPM1kiEh
t6PpppXIBiKzI09mRyTHMiUdg5ar7MiBw6Owi6NOOExc3H8gKeGf7kYgYbH3
XqiCY6s1WpNLcwgsFJC0xz5Vsj+J/k4riyQYFpcCqkrelcjjEogo5zBKleaK
KuItlOSDidjtv4ahJl4MIYNLNI6IOU+81DK7WuLhnWEIClFcWB7LPoHA01V1
t0hAav9R6afhWHcCwRQEcPzA35MLSiCYuCsiW1UVdAJbHr8RBUAZIU4Cz42Y
g7qxQn54nIHUTVYVjvp3Z4SiM+Vkgj7qnq6riiNUnHUJ1WgeAS2osKW8pehD
4m2eqo71qWMSjprJmANwZZRRgcTdjkVhijMxeNC0ZEWh19gSp8+K7W2Zvpan
/dooPGBm3rEqt/gE9VQNIs9YomiIgpJZoyQGCwgDGmSObqTuQBJn5J9uHiRL
fZxFwkavBI4baP/4JvOgNZEt8xUKe0UBQwETnWYSx5YT8yGH3BtKMQzNnxLO
NvGny2BPnvGevXzIQaaovNTA0uq03rizVviORJ5VBhtaMq2xDgnrdosxikKN
D91gGLh3e+23wdsHNr5Z1qQZbcRt/K68YQaXpDbWkEm0dUaZUP1Qx1vuA9w0
Ug74I46rsYQZudCFyZFUCvISx3c5sURodIRHR5ZT5ci3C0ROosRblgSQR5Dx
xvHwKz+VNfbq9V2t1L1sIwNInjHBjmyCM0owW/eYLSsm4EejFm4QUj214j/O
Mdmw4Oeb7JTpVAu3UFQm1kMpo0BenbvnxslfKHHLk06QCzittLOlrqAUCTXn
QLdTMkSS1NQvFN1MGHL3nGykxUbDDlDg0d0AfdYwFRZovV3NPcKsySu7tFQc
hMIBhuwLYERJl9P8dI30h88kFd84MO3cJYcesPVjKCodsSZP7vhFG4eIqatF
GJKuniG8NpwRiVEyGr7UdUfRvQFk9OKJQTZ7SapwD8RNEEQAEsd8hi6/Q3cF
S20vssxrV0TwkoL1GVFRnOlpAZAm0R4FfUew6eHZGcpp5WlmkhNSw/cCS8zY
Tcdop8IdhVHpTcC3+WvlEUZAJAPKBpNg5faIyNakiwwZDV0SyuCN3BZxFFKQ
RqkmjI79W++sBFox4UZ9vjUJfiZQHFbHCSUzhxqcvqLBFB2/A1oGUspj2RYy
iq/FAdM+txnTbzuZJZ7wxL6U5OGWb4zQw6P4uPDt3ijGdvSSdTxZUYC4eYcj
yyi4+/vqIkgbEu1ZxbQLdA1xumpzBVzjWSh2+3uJ/cXY8Mlr9OWwthB7kMKh
xel0D2/gRu3FQxCGWrl96Lmepcb/ATLCCKSvs6qO4tc/H3tRgJMugFTNNhTV
CGuoJYFIMxPYCpV20I8okIsRKBH1QrRwPgdgluoTpAvtDSkS5lNFPr/+s7vE
s1dW3Vm929Q79HpD/mAjQXBkGk5jt6ZJJ+jPZfCg/cZ54GKc9CvshBbdIOBD
4zaOFgapfKJ52ZkWLx26bL3L1Cc59Hh3SWTuCZAwrhpHBRu06revfN76hOga
0i2SJqL0FZY0JZVdn4krIrD05h2a8OCEHlJhU4R9iulDUgqPUGjaUCPQ8Je/
vHx2cqiukGMcAW0jV0Sk2TFpRpJBcLxvfzrWwZ7Br/Fo22PjxyZ0D6MKLZv4
msvqJLt/On7OSiYwiV8umoH5nWKGvqbw08/vrusiwSC/LX8N/OeJvLf7p0+T
TqzfaIcj/pLPBrwmxx7de7ywv/HSgmcYJq4USfQD0wF8kp3hDv3b82byWfL3
Qd/nMCuWqwANhf++pbUP9O9tc0pMmXvNn9wgGNDsjj/fSb7FtX7N/zLKJBkG
Do/QqCKfDMJl+EHUR4yxVnakbeuUCbBUD2s6Mn64fj++xsrdYGy1046AnOvw
fj7zQ5jxL2/2dgFe8M+d0b1v6bd7j0ZfHH42CMa55jsGcHaeYubiUwnn3N+f
Ddyv4cp8nGoSB6p+ZiJSo9s0cZHPyu+ZeljTnNjMTQqOi3QRG1WZZDmH0kcv
ovSPM8Yfl/3JdH6FiuVb1vfTTz+NDoL4HlriOHnubFS4sIWJJibpv88IRc4t
b9siql3NgLVj6MqyosgVzSWd8BWwtjAMdTcxY3SeCZ4nstruLh07Q/0AX9CQ
psBEOzG3RLwagteTB9GX/SEz4Tvqlu04JI44QgU2ekk+YLLNS+pOaR5ESYCo
45Vgzjmc94z6UN9ujNFBOZf6EtFeLl9SuoXXRLyiO9R4Gc3NJ7i6J4m3Skby
gQ0KGgyuEeh8dWAcmvWcG7Av+GjsNt/NtgvdjjxUTwbaSZ9+gbJv3ggCzt8p
o+JERGiO6weCKTyUanJhpSfeInFmrF729i0LuBw1RC7xH54dH4rwPaSxJNu+
yVr33pcYRUWO3EAlyuzLjF7i2OsGkRcYKazRy/hJu8EY5B2Ykf9+HcXuUp6+
id7lT5r93b07n7zONqPdHRfKC4N37pFWJHDh0+PExdXIlWUN3+p1tAW90BNa
7ERSJG7f+QKAx2E1GHk9ccC5L58bCVvDHnzstsQrAuC6cd2T8IZ6g497JMpy
jgKnMhRHS6Ch5nk8q81yic6hGZ+SWYtTCtQoQhkqoXbt3UHo04PDmjif/QTO
jIKAX/fQLy0JoAm9aHtRqpgmizo9laJCuEn2wPfoeMooRO+c03Ce9JxI0B6d
YkVheryYKIqP94RP6iUjpapphCaDrj4Z+1tkMP9SZIYBrouqjNswz81eSNeX
BrLTMxXdH802oHWlLXy0+8Xd+3f37t+/fVvyAlbmw8/5w19ajOjf+XJxP707
38tGu7M709Hdxb1sdH/6RTq6bX78NQvhJuiARL0H4Bwj3j2RIN/bIzWqVGEg
aX/yIg5brTqjeoNfmCVuo2uDzLC48o+miw41Dn7oouCHLh9UNKEoYJxit4Gx
+JIWK2c9wKHZI0Y6PueK5fhozZa8uUoRnRDkOP45b6KR0l7hhD2ObKPj51Nn
9e8Jcz4obxIdL17KoqlcePhEpybo9AkoWhBhuz1VApLMacXnq5q3RC7hsBxj
hr9RudEiqJvjGDKWzjs1xTqUvD1wlKiJIxj6pb4gUjcAGrshHRhMAKhWgqAl
6R5fhFFYxsCJcQDFRtP+7QwSOaIbtetCAPAmiU4DBZArCtee9fWnnMr3COUq
DTQPbgNSPsPo913UJ4i4MxYUX5b5myRbVRRF1s3+K9fo72H5H2tTSrkettqy
I4GOpjIZhjYhVtMNR1KShKKlqTKiY9kB/B1rQtjQ7X2zwrKhKUvKp+jH4rJN
ZRjrGEfWcg2CEuTdikRiet7tH7gKhzvP4J/XSfM6wxjWCdBOzwvJ+QCnBnSP
SuoxLyWVxMt/0TYwTEDq/EnpGRd/KVVMNOR+8ilQ2mECM342cfZUjxkuXHdV
rEVBUMmDljzCJfvo2xOxgG96w8VjyxcbmUEfE4cZoomKiZ5RdsTCPURxZzLz
a82BRbOcJp7IbRINBWEEEVQxxSb79AuWDFz8vhND6HmSBsjQfMzSFFMR5yzd
Zlb+K8OH93ts9/W5+5L44JCZ4JCTF4ZENoeWDNCt1eg2+AaRc8jXUvgI4VFQ
z4d22WQzrYJTbsKFati9S8lvJb0egw4ii6QosnrP43p3IKHxA4Dzc86Qd/N+
QoRYWa8UhAhKjvTFY3rNTviMcS9rfRYdAk6I9ErlCV55NXnUpAS6Ulv/XfnS
3uMB5w4UZrIHBOTZjxpSU24JEOb0auGKuq1Okm9QSzDEaffwWUqWfGV5NC75
3ao+xTIM7mY6Ek/bxFhmAd6TVxAbDEZ0Vv07kmB3OmBJRBEpI1/0xWzT9qgC
F8VrMKpJ/Q6HafK3xkKYoq140yW2KVCAFFrOfr69cEGflCPS3xinZtmoD+Gw
TkdiakJchmyYnQDzjk6onHsvym3V7I/m2XIFEkg524x+zDb7yVfVKoX9ic7/
wmBGV89GML2K82Cv1DfitOowQXoflY3m3+JUWs3Z1cW+AgZ2c63CrfgS7U20
gc5ZhqSYqCqpgSznDDmYgUNihSc4uc8rkaJxKke3qahXe41s7DQl+RIgJ86q
yFltInf5rIrO2D3mNVMkAUUpKbFgCnKZtEGSpvjvMVdfd5VuZYRyLqJ1c5au
Ms5LFNaB2ShUp0+yPjGo3otwRlL89Vdfcx79RqFYw5EjwBeYfMsQ65JSt1iQ
kvQUkzfzi+M6kwiTJpK/ybhPca4bFJEkC4YUz1ZrIEyiO+PcyVQ5DEkom5JZ
1s9cNu0mUPR9KgQ72yTnsD2LnaYeM6X8NpG1NKgshry4ngdy1UAIKnKWIL3H
vIYy3WwzK+J0mDBCikK1BpFTEobKLlKpOkqxghxgUmf1OlgaHwN+gaYON+MA
ZUnQdZcrjsORQTiBUUuU87YuyddTdWUQ0GTSbhJzxL4ga+OCtzlEmGViZiY6
BhLtgTudaBhMmfN5PY55BDVwhIujdtdsytlZXZUYJxOcFzH8DkWVMg1A11JK
hdkxnuhuqX9Ursz4VnwLRext06F2VL/imtqvTNGKHWwAItYktyIps8Qf27le
6Td91S7eemlH3OiVqZAH/BCUj7p0qZapq5Bntov4zvXbQSAiuGjpAM7nYV4q
/Q5c3TmL3Ho8nIN0UXkscEVo54CPXNJiTKHMne1pUja1T2ldxVOheayabz0P
kbRaF5CISec2SCSexWI7z+C5FCy9KKRuIEBQ4iHHySH71Zj6UP1+Tl+vnMtN
ISFh7Geu2ou10tJ9Z407LfKUEjgPOVcf4xZ8PpVU73rAWfozFOrSUlIoWFuw
lie8/lomQjmOLX0Q5tvLgmlGMsT1oSqRbdA4MwQeQga0aKLVikT+UJnjcJog
ui2AR/MUXJqLaFDJn8DiXCJG6Npgdx/sOtm2HuFAuQ21nfB1ory+skHrQxiC
T3YLlNlw3J1FWjTwsPJMyvPICxQEVIIV/HYSrPytSkTI64O6kl6t7+EwTuB4
H0Kus2JyrcpuES5JL7tOzSxflusKmZmUNBSZefZL9bNLPV0C0R7tKCT/DvJ9
5L9L3NHEhZSUW9rcG+3dP9nd2799G/7/7zG1jei/KxOoWl1faWJsEUDHLPfP
VRkf/MbteVwEABZcTEl1fH8/pijjjSoy3uiHZnFMQPYSBCfmymjFX+os5Gkx
vtFeJo4i8yyHQSHX9CLN2aW0jeRfPRvNsi5dfbdJz14wlrmq0zovNol5lG6y
nO9IpWZMYFmtJS6Zgw+AdNMszbohGjmf9ELMzgKsEWcgIdwXGLlqRzSLRHhT
bZSeWTCON8V8FJwlG/n0g2sfDM3i2D6fy8FWnosmrBsMbmaB+4aX1cVCYCgb
duxi2zX+9vZt4iRYrdxRoBmVbyCn2RuHvJdGhOPagn0qvKywbA1DjLM0gZRq
n45tHMfTXGEzyBC5go7nxOoo5Rr2lMziMyNKrOA6qhajKXmWNS58UUnkhjtC
CnxmOYwk9iXZlekuOubECSiON/Gf2RtxG1xa5XGxhVe8F4bEnjYSybvMqOOj
xvh222yHtuHKmnvxu/S6SqSN2R5DxoFOOl6PJqaGatHwJCC+pXyVoTdJOdNb
4ZiPHNQULlOpxVsAkerqHPv4SAAAB/67DY9clXqsBowFwBnGXl+Q7EK7DJ/4
La4RU426pKw8t2teLB9DZCp+4KpAUT2zJcs9hTYR8th6bfsY1776A5rHfIUq
MmrZYn6OrftnvJsHc2WEoqjVxfsvglJUtgaWCem/RJbiCgOaHzA3FUl4I5Lw
zjSrp9asq+z5LrVPWY/HwBSbFiJ3SQLTU3Wf6HxZVETUFWslDV2reUfZEttq
oElDhk3QUkqK2s3Uqc+p146iSfFkR9Lkb188vekrm05VIXJqHWN6MDAdeR/0
TAIG3pWg8SaufcekHdjHS5Z8u9FSRhoC6Jzr1GnJYIBGS/rifIoJ4hjp0cJ+
3y0W0QJJMvday+qgzj0tVHqLUW0cXD4uuw+BYfmcYXmT9Wu/EuNPyrt2J5jy
VVjslGUXE2QXPCClN8RjP62qArQXYaa9z6osFC7H3QoXUGIxAy1Kfv+v0Kcb
579ItF6jJx+G8HUW0lSec1MRTd9vAYG+veeCC2NVP6e0jKCcT46mxJibTDyg
gjD+nKjyj6a762IFCra6VWjzBLmwXUtxEHiiQZ7PGDUkUVrSKSeyjVfy7iTU
id1sfTqxKwdM5iRD1gMUedv1kFpjtrClpL9YG1p2tCBIAFOS1MQR+NwF6r7Q
4JYwjyasOppNAlw3PkJKhDTZ29tr0ZDg043X6RaG5C5fnPNXVmTK7gZsOW+3
VPBwSeFYeIPWN7E9NMgiyAapKwOvhle0ThHfl48+CB604Uw2juo6oU4+1IZK
wtPGLouVq2pnaBonhxgG0xd5BqrX64xSCO1k8fHiC3SdUIn2+BOH2WEXs56S
sWLJo+kNynk7JgkrWs5hS8YEPwU6uhDUvmQIyVz4M0YA5TP1nWtxPTzL+IWO
GREri3BNFSo29cZJ4BIL3DPtA9+GAZtmahwhodKT589x6W/u3t7zNQRpoLy1
WiQnO4csg/1srg1Vfa50lgN2RScMgi4t+eqPYWskXA9TgV1isIq0HroMdJ23
0fAW1ok5+s3eGzsv1avoS6nrjamPoSmSD0t5I7fsb/qe5IZWyVeUw9P/BLW3
+spgndowA3+pICgZx9ldXDdRYVx/BbZUICYPh0AmKJ5HImyEeBg01TdK0H1L
1Qg+dUlaH7vGxfYqIcvOyzWVwECOolWWDHEaOW1gwg7ZiXAMnwuk+rsoF7hl
cglhmUMKxOPYOoBo5BA1pfBcQJTP+JFuvAxXNHOZWkO+XRx73Zst97qWlPcF
dZDSLPtOjpT2+YxohSvozAWTqTw3HbaIhCrxcHTuyOjqtutvHJZ3zYTUUKef
nVWIKAAVYlMiLZi12nLjJFZoxTkti2CrDOi5hKSVJPQI4YBl9wC2rU5ZLmC+
F92e59J2OLg/LAo+P/j5yeHTk9Hx0Z+fHpy8fHFowqI5RKocuYILsFOiOX6T
VOUqbkQ+wxJ60tOPmkSnG81lEbEU3UPoK7+ocyw2VVRsuoGbeoGcQwwthfCH
cKvWYqYbs6XDME1N9GymkJes8QEL+K7Gg6kFwaYh/Hpy9/buhE9G07Mwsxsx
jrtnXF7ViWvKbBHNXe2erVwwKbgpM7cRhJMoM5VxNKbXhNq6S2qAFJJIrkjD
PQXpXDkzJWgduFyfnhZsZJvb2ApEBul0TFJLHB8Z1yamcEiA1bd4RcPSZnJh
KQrHQIr4r+s9SVXv0dqO9atqqZOG7frEsZthNWDkrXKL5ynf4mVYvRHQK6nT
CxfM8zSzHmQqZDXLVyTxYq1sDRwmoNu4CKDhp9jGOKfaMn0nZg0SUqINHq6M
kUNCeKS/KwXCBsXhKip6aBqPSAmRoIqLayFjy7b2ZgFwl12144aXwIVjAn4n
L0tXnWTuAzMDpO9j+3HSKXN9k4z5tYuYe7MzFN7wNXXLaPZv3XpzK91hPu75
DkhrzCaouB4HyqSz1kR6aaP4ly8eD32NPBeWpAQ2ElMp2ofsx02YDGm4TSqX
3dEBV1QzFZrIqZg+z53p7fbUVKwT5ChZMLaJB5DqfT2UCi9PbPl2Cx8aC7ik
a3Yq45PsaUzrUqabXVhZUPs7MGewE0QCh9C7dLQwtalQbOCKft5zQgUd4VXf
AIHqrOppgFrA6YHdQkFsmT/S4t4iMyEisKvIVAWaoTm/KDT4hwoUcsdZJlUM
2hFVipWSr44U2LKvIGWfaTqDFnfVinbdImEcwhsLR3hyhmMFBR/pgncNlikV
OyRfFNc7ZIcRB6Ih4lP9YRQHgK/EdX99Q0kzYigp6aNGL42cHMZbY9elvXmd
nDw0MWZ9GTRc7k+04agMMsZ1er3ZxgA60dUIktxBLg3rQOqIQ+P/FyK/BNyP
hYJhHzUe9kk3QxH+g9MyH462mquGRnVYidwRSZW4bsJzDU2Q5Colp1bQEMH5
KCorzUF9TGsC6qtKZtSAV04AX9LSuS4dyuUhGLFjZWwxXpNQVUQiPLnuFd0Q
GTSwfUUXJKPyUNgg0ViMkEsiU+VYNYNqfZX2IyuryVnFl8kiQtX4qpUGQ/pK
aQRCZ3ByWG4pGiKut9Q7L/9JYMexT5hqPL7Vr2OqEnHLRbhxSSjh8YnZyB88
87wEeP4D3+fqXoxToZWReg7OUEt+RcMJA7l7+w5ejGk+hxGxZrSm/FM2pg1e
69JTzmmBQ3vCVUEDFZP7FwZveD87mVT7iv1s7U7EWrEp0fYqGluqRI6TJ85U
S0WRKF8hrIZ7UVcowXsjCH+QApZg4J3+rSehRJ9ZlDWNaCLPVQIrC6hJn61L
g5hRVdHEorZaSsSCXkayNwhXi21tvugZ5XaqO5zX2ygrJfVV9BEt5aYS54B9
U74PFsWsw+ij5bpNW5XQA/u82INQKnb8ohvKTRHefNsviTsGOhCVg0h93+BO
uk1sjGFBOnBzAkyqWe67I08+dakKwyRapKTnucS93QTwvyZBJDXcbZVpIy/i
MEjF3L7pk74gQA0LpQes3NNrHPCx5Zx447bDMQGmJGOPK3ns6mttXQ21qNCC
W0Ewt+Tl+NKO11srEI8v0cO2KKgmOIMa669Ya7jNDZjps2I/dAHfRiIkeSzI
U+5kF+B5afNBAo6hqQssTYJxGBKvI/06gi27LiW+dTYGI5rsBCQgzbaUA7Jn
0x3inq3fC//jPUWNqAHgGO705d17X3T0Vq66Bd+8fRuoQgJDtk73aEOucXWs
UV3iN7bdY7eoUxzj9vVOSL1EcQpdjrhA9DNGj4ZRl7A6LheStwU9/bSy0Tyu
lgh9B/i0D0LhPpHK/XgJxodlgaMBZb7U+5IKC2I0HJwwFZOMCgNN2D0Zl77w
TxVYBZP9QGRoR3V5Eq7uKxzqG2woQ1ubaJVSieDmXAjWXEQD1tY9INtrgxUX
B8bx+CTU6YaHUgC8J2p+a1+msFqH7wi3ZRwpmscFSsPY+XUJF2RyjZH7I+45
yFzD53tH2RZ957WMLSHfJ5SlHllhOaCfLXHWHqPf25QrGmLj4n5hMlZS0haD
NoOCsDjzFHOxMSZfQ+C7iREcoagG9UYt6oZE96ROoPzTkRI8qHyDSoE6ttgj
6u52f2lhU99fhqiRx/+GopfZrxeUPetGbUqJQN7kh4hwfm8/nVDpbcHO5qn9
DxFO/d5+ODLXBzS+4tjbSXfrQGRvm7/Uk2liITXznOstWFaOohy2FMkovGqG
Pt05UZWbx/he85Q6wQ59z0VbstFdLI7Y8mOVS9Ahm7W7uEurBMis731btKX4
Fm/Z0q756+VyWqN1KcGguVFGJTREx6WbivINn7hpGejsuEOjqBgdhuX9IcVR
j7hwBDxZAzs8z+YjPw52bvNalJY+BoFz9lrD210PwSDOvbOlO51Tcm6w9xsN
//t+wi0FQfXvuqXfH3r/PrcU5Dy865ZukhnhkiHe95b6xJD4ueTu3p7564V2
oTJ5z9Kk5ENe/ev80Jb6pa/wueiUTGqMr309vzIB8p+zJSQ31To+p62ntD2l
E3TzYEfd0s9hS8r3uiW0wr0q8mXeQxfMlr40f504g7Hv5ebD1FAmpPH+GZgn
mVDeVGYDM+1zsfRA8RyAc2GMI+0sCO68tArQB5Qe+kwJ0XMJ2iT8Xwc9xg7K
t19rjMRWu8eHPjnOvdtiII22ZKWH0J7szMU2jcaW5+tvJf4Bt3S1jXbLllxt
sv7uOWJ5j2p89PX4eO9b6rOex89FRPygNxIE1y3Fdr3ngnvMOTofBjDQbO97
S5EFlUz1sRxLRrZ0HsQPaIGQIFGW4iXYYi4VteQPqqvlzOZk2w7E0+Q8r9jF
2nhJNRjVdmTp9EeYr7k+TNQTgQomsGFDl0tclMpK9oWHx5ErqHhjD1JKq85n
Z17zZiFZEyF7odhRcBCMXhnBGO2hk0/ckWtcuEZ3sUojjdQsEDq6jgQkhN0o
dRhZRKMVzdBoq3Yt1jQuqnXBbFd27FqiCCowDqKJo7Nf3yUb3RctcAdykY+o
So2xXrvui+T4jdGM+0Q20qKjmmKIAwmeGMuAJNu3YeHUwHWOfSMTi4hkb6Ng
LvspeXsJEAASbgXYBr5lfi1Eci0c403/7EWjY/T90kj+7TGMS7Qefs7eBAYr
ZTSyDyjq1BFkDJDpOVoQN7ZS/xrLuC6iJgLmkNvn9UjRbK3mlmIcuHyZ+cj3
HpNK86WQLs1O47KbFBu0Pxj8CWvjtVruwyHrxDY4Me3MbJ8URaGuEIGjXlK0
qdnajKfxLGLRCVOx/Yloit68pN5pehKIGKlgQqctafdxlqS8F2vrXCTH5Kds
QqY4fVQuR/SE9nLEB9ZiIDCJgtcr98AzE96MnXQxdB+tqLJi7fqt6+dayEUW
FlhS2d7qeoIiTLn+yFP6grVhjHeqgxfM0tnnb5o4/ik58HlXbbWSFopaWkvL
qrCZPZ0LMkqDaNsM0pa/k6pW/ajHZb/nnN0v45OLRwrar7HtGuUYDC8vhOUD
R1pMAltQOLXX4C48NWE1NV2lfANNfHFMWpkFuWjuzHRqAWakeDR0fEOstFo7
DUmMN/luLZ88Voqg9Y4VHrCea+bNcZRX2Ngq0BQ4yYxqi/psb58aC8e5wXhk
+84Q6w+m5YZqhUYh5sRbqDjow/6UVKzOQ4Zr5X1UG/QwSlOlmqChknPJgqR2
dJSP5pf5xVgcgY7TySCOWNJpNP4NIMY/YRTOke/fdUz9uxDwUoPR4+rQuROD
D13MiiQTGuRGHCwwX5F6Jp5tVoCERP8o80EzCKnFD/a1HJk+YlH/k1HQ/4Sc
cIcGtcKJ+M7gjkca2tI3pem7cmm3FS7VtbVNGs+ulY1M7QBTGdA/PZRY5Ma3
u5JyOtsBZVM3qM7+4fOR6yqGfjBfvdazH8wC7qU4rkqhFtp++eIIHUGurnI/
oZIsIA01efniaeyTfNPuf6W1BTbf7H+F5PabT86//kr66n7D7P/o4OkB1Uzy
PdJECJD6sV5eFBKupdAp+kWI+gwjgjiXSH1M6N++v7v3ubRbgN+oi9Qnn1za
UouWk9vKikQ/GeB9Xqz+tltiJdrZPlWz41ZP3i+KqN+iGUWFfW6mVV3mUfo9
7iYaundrxHFhaI4WftdVv9Diyn0ACaXEmw79tMKQtv6vhWsaa+dzjTfv5OxH
Z/+bxy4+TYTDzVDKmfBNpyKPTEBQawyQT06w8gx2r3dr+xSn/czMK6lZ9WbH
oBd9YfYqzmL5nRutwvooiSs+gS2YZFGoi07xJ2y46Mkd+M1sHQ7o1sGlB/5b
fx6Q1kiVPBCbAdXTtScoVAa6s+YJavbf9s7Jcsmj2E7pdYkRmbntcSqFQrky
JajNGKKGdLuoTk+pbIuEUZPZgEOk0SGFKJH5RvUsQFEMFufNoXZbr12JbeDd
WLj6R1I1gYbfDO+w6j8Zk944bAuHuw65uhGdugY6XY8E4dKPeelmJRjKPbn+
Sh5yWwcMVKKyYjUNcnR48t31xthKsW5EqngQTpc4KlmPI8JyCVHqFNBmKvSE
mt7jRb4ZIlCykYhuggh+qBvwrKsB9juY2sefy36uGXiy/VL9gUNQ/q/+oZMh
3loGfPj6Jxv0Cpi8b8T5//gHT+Z4PW3f9XCY4Ujnho8/7/GHeaKYqXyM1fXf
B2m//MhmPsAPnswzraz98WT+QD94MoeaHh/1n7/W+8kxZWtINy42oOzdw3qo
H39+1w/xmWy2rqnU6rucDPo1pMsZZVE5L4j1fostlr0mwz73Mhtq2ePRyIJG
vg2yz7Gn9j1xdjJ63ihPkjKUuwmMQ/YPyWQU4ElBpRoNGkeYDr0yzIWC8vPU
ezPYqh+1Oso8HEPrIY3wXEaIvhKTopTtC5wOeDKmzwn7Qm5wQh+p2Yf6wZN5
vuYc23lYW+h67/8Oa+HHn8t+yALsFRLJbWOfAEa7e1vClvd9jAteWvGSOve7
liD7+HPjHzyZ77Q1svGjXZegfZQAPtQP3RkfVZAbM9/13v/IZz7QD/EZ37mM
mhth8AEmI6Gwo63MKA9mXZPolAdWWrIXf5Vnzem/5Vm7GFf16Tf/7F39v/Cj
shnm/AB7SU9viP+/JQ+fPXkCdOzjz3v+YesMhtOoYF3e6IA+UrMP9aPe+ap+
x/dv4v36+HODH+NvnFl/47Xf/3gyH+iHXacUOSrxbhpEscWJSmFH1F1nx7xl
3KTaBsIHLmmkJgx1HKiyJhnNxkZqGNM4eZRx+DXFZGEkCIdHBgs613bjoIfZ
ouJh6JT2z5AvbZ+MuEiiN8AMfXVYU2xOur8Og3ymILY+Ktnjw0RJyAoiFDFI
DSt8w3S1633ddFzNvyEoZnW+2io1Ry7Qq12afCkFHjzHYxeAh8GIRoka+zns
OkBlOsMSRArVuf/OvGFjBCj+BuOzQ5uG6yqPRqnBEWY7gKKAMMm5OS8BxC/2
anBYyFwW1XPD4Iu+0B6t/IirkkqNLheBy95JoHGemUzdbnyPKzQw4TVLsEIa
Zfm4IkEuy693KG2sB9/+ZY0l7Hx4tOmrF7RRHG9ZFVeopzUfYbG8Ld2sOmDv
GUpq3PMGKeq3Nw/oyqHiNgaSk2bjlxrTR32azVK00WxpVdDpQ+CI4jNXg+Rm
ZNG99/sIo5T/D94xod5anCWfa+FBKpoztGUbOWDZVk6ztOc3s0MB9V/teL/n
at38fm25YO5WyJxS+qXTEKF/hZchtDzCse3XGu8KtHZQIdx+9xW62yuPSNTi
uw8YXpffTAW8uKEH5y7ZjhM910+uRxQL+4RjvW92VXrH+LDX5qouWj13Zehr
nmqVTanZ1FuK0d8x2y8At2t6BgRZMJj1gcXWpBJ7f+atecGVgA27EXMeQshd
NaOsJyA0agbQiW6WE70Bv71mDO2NKEM/WXAdHuLpeW8jrlhLiBxHMf/w00kf
26SyZrlIH/3dInpOAo9uYjt0UauZVY4xq5rMNcV2FvhH3GEu58JcGXWbDBKo
5Ip9KxknJkPlZverO8AfSFjXfJpeYZ2ajXKNSy+uO9Jnq2KHSEsx0elpNlSv
sSucPxTpW1pySMpuv3P6mpK5w7sbCujXvgX0Yg8W3Fxc99yEpHaF/dVSu2VD
7yq89+7gCphdj5ZcCcJ+8oGFHGPaEZSMlEQjn6Z6CSP0iUbvfE/7hvgD3VSf
E9V/V8/68zuHpuy+56Uu1kJy/biZk9S8nZsMZzfkMNKbo6trQyh+zzW+iWq5
jbNdn7Fx1FIf6gAjNslpTldxNQP0nfG2S+6vuT+V7kW/9Lpf58L7IaIsdkbu
RqoBS8oaVtxw+peLxnfJ0yZ3nS6WdMKIsNvBK55SB4wrL14xjBTWEkSSdK5n
1L2vzw5z0xD+G9tlepHEZjEB7XozQuEnZHsjrenSv4YTE5NAmU83qiHZtfxE
Yu1VAmuPJeimISqG2hIpeIh5qzekse7FPxJlNWm8+LDwnxH8k1HRPyx6TDVN
KEH2VVOmr7NXyPdRoDyvcpqLC567qiG2liHXkhyaDoyus54tLSpCkWg/FMnC
JoT3baoMsOrd7oYYL+cGpb001IVTUHgYX6V9H2tJ1Uc90OBnr7wGQmNp+G30
1b16M0uoRfztJtHLi8cyaOLdXtt0GoxyTb0uPqj3Uev1MrvQeyrLelllp16L
yjtUUH3SUwtVacP2+Xtnf4dipwdxjVNbWWgrFPr3fvO6pC/6q126Afr3f/ns
1y8humV2P0Dv9JfPfv1qn1tn7630Ob5s9v+2wpy9s79DDc2/vlOxzKtnv165
y79eWdgShrmm6+LmlSlfuOKTrjTlNQrI9c7+DkUkX5pyZXFBSdtT+xqzv0O9
x6Oo2OP1Cj1eZbvOr1ma8XnX1BlJqL4Dij+TKyF/zSqKB9epm3g9rPt9BQ+p
CkBY3dAPF1Y03G7bMNbPm0nb/sU/kLRtCvVsNWT0FUga9lZAGm7zJUhpBOdS
MBZMuYJbLBlRuDL1uTYFF1pgGKdch6HI0tcptSb9Z0YQGOz4PREEpqhVKEW/
UwTB77dFeDRpxskzvFLStHqovdP43LhPdY8TmzDRYK3WYeqz8bvSSu/kQIve
/gPdtagiU/+FMzYCvTOW0WPTeviTHDJkESNj4A8/nSST19h803vj2npNkTqz
MyrxNUu5172/Z8SGqjbUaj+EIfGdnAHXvG8xrtg7F8Mb07r7LYR67+TBHs21
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

-->

</rfc>

