<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-nottingham-problem-header-00" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="Problem-Details Header">The Problem-Details HTTP Header Field</title>
    <seriesInfo name="Internet-Draft" value="draft-nottingham-problem-header-00"/>
    <author initials="M." surname="Nottingham" fullname="Mark Nottingham">
      <organization>Cloudflare</organization>
      <address>
        <postal>
          <postalLine>Melbourne</postalLine>
          <postalLine>Australia</postalLine>
        </postal>
        <email>mnot@mnot.net</email>
        <uri>https://mnot.net/</uri>
      </address>
    </author>
    <date year="2026" month="October" day="30"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 39?>

<t>This specification defines the Problem-Details HTTP header field, which carries a problem details object (RFC 9457) as a Structured Field. Because the Structured Fields data model is more constrained than JSON's, it also defines a profile that problem types can opt into so that they can be serialised as a header.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-nottingham-problem-header/"/>.
      </t>
      <t>
         information can be found at <eref target="https://projects.mnot.net/I-D/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/mnot/I-D/labels/problem-header"/>.</t>
    </note>
  </front>
  <middle>
    <?line 44?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Problem details <xref target="PROBLEM"/> give HTTP APIs a common way to describe an error, but only in a message's content, as JSON <xref target="JSON"/> or XML. That is not always available. A response to a HEAD request has no content; a response whose content is a representation of the resource cannot also carry problem details; and an intermediary that generates or annotates an error might not be able to alter the content it forwards.</t>
      <t>This specification defines the "Problem-Details" response header field (<xref target="field"/>) to carry problem details as a Structured Field <xref target="STRUCTURED-FIELDS"/>.</t>
      <t>Structured Fields cannot represent the entire JSON data model, so not every problem details object can be carried in the field. <xref target="profile"/> defines a profile of problem details -- <em>header-compatible problem types</em> -- to enable problem types to opt into being carried as HTTP header fields. Problem types that do not opt in to that profile can still be conveyed using the field, but the header field will only carry the members defined in <xref target="PROBLEM"/>.</t>
      <section anchor="notational-conventions">
        <name>Notational Conventions</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

<t>This document uses the following terminology from <xref section="3" sectionFormat="of" target="STRUCTURED-FIELDS"/> to specify syntax and parsing: Dictionary, Inner List, Integer, Decimal, String, Token, Boolean, Parameters, Byte Sequence, Date, and Display String.</t>
        <t>It uses "problem details object", "problem type" and "extension member" as defined in <xref target="PROBLEM"/>.</t>
      </section>
    </section>
    <section anchor="field">
      <name>The Problem-Details Header Field</name>
      <t>The "Problem-Details" response header field conveys a problem details object <xref target="PROBLEM"/>. Its value is a Dictionary.</t>
      <t>Each member of the Dictionary corresponds to the member of the problem details object with the same name, and has the Structured Type shown in <xref target="_table-members"/>.</t>
      <table anchor="_table-members">
        <name>Problem Details Members in the Problem-Details Field</name>
        <thead>
          <tr>
            <th align="left">Member</th>
            <th align="left">Structured Type</th>
            <th align="left">JSON type</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">type</td>
            <td align="left">String</td>
            <td align="left">string (a URI reference)</td>
          </tr>
          <tr>
            <td align="left">status</td>
            <td align="left">Integer</td>
            <td align="left">number</td>
          </tr>
          <tr>
            <td align="left">title</td>
            <td align="left">Display String</td>
            <td align="left">string</td>
          </tr>
          <tr>
            <td align="left">detail</td>
            <td align="left">Display String</td>
            <td align="left">string</td>
          </tr>
          <tr>
            <td align="left">instance</td>
            <td align="left">String</td>
            <td align="left">string (a URI reference)</td>
          </tr>
        </tbody>
      </table>
      <t>The semantics of the members are as defined in <xref section="3.1" sectionFormat="of" target="PROBLEM"/>. A member whose value is not of the type shown in <xref target="_table-members"/> is ignored, as in <xref section="3.1" sectionFormat="of" target="PROBLEM"/>.</t>
      <t>A sender <bcp14>MAY</bcp14> omit any member, including <tt>type</tt>, which then has its default value of "about:blank". However, a sender <bcp14>MUST NOT</bcp14> include extension members unless it includes <tt>type</tt>.</t>
      <t>HTTP responses already carry a status code, so <tt>status</tt> is redundant in the field; senders <bcp14>SHOULD</bcp14> omit it.</t>
      <t>Any problem type can be conveyed with the field, using the members in <xref target="_table-members"/>. Extension members are carried only if the problem type is header-compatible (<xref target="profile"/>) and identifies them as carried in the field; a sender <bcp14>MUST NOT</bcp14> include any others.</t>
      <t>Recipients <bcp14>MUST</bcp14> ignore members they do not recognise, and any Parameters on members.</t>
      <t>For example, this response carries the out-of-credit problem from <xref section="3" sectionFormat="of" target="PROBLEM"/>, which we assume is header-compatible, with <tt>balance</tt> an Integer and <tt>accounts</tt> an Inner List of Strings:</t>
      <sourcecode type="http-message"><![CDATA[
HTTP/1.1 403 Forbidden
Problem-Details: type="https://example.com/probs/out-of-credit",
   title=%"You do not have enough credit.",
   detail=%"Your current balance is 30, but that costs 50.",
   instance="/account/12345/msgs/abc", balance=30,
   accounts=("/account/12345" "/account/67890")

]]></sourcecode>
      <t>It is equivalent to this problem details object:</t>
      <sourcecode type="json"><![CDATA[
{
  "type": "https://example.com/probs/out-of-credit",
  "title": "You do not have enough credit.",
  "detail": "Your current balance is 30, but that costs 50.",
  "instance": "/account/12345/msgs/abc",
  "balance": 30,
  "accounts": ["/account/12345", "/account/67890"]
}
]]></sourcecode>
      <t>A response can carry the field with or without problem details content. When it carries both, the field is a subset of the content. A recipient that finds a member with different values uses the content's value.</t>
    </section>
    <section anchor="profile">
      <name>Header-Compatible Problem Types</name>
      <t>A problem type is header-compatible if its definition says so and identifies which of its extension members are carried in the field. Only the party that defines a problem type can make it header-compatible; a recipient does not infer it from the members a response carries.</t>
      <t>Each of those members conforms to the following:</t>
      <ul spacing="normal">
        <li>
          <t>Its name begins with a lower-case letter, followed by lower-case letters, digits, "_", "-" or ".". This is a subset of the keys that <xref section="4.1.1.3" sectionFormat="of" target="STRUCTURED-FIELDS"/> allows for a Dictionary member, chosen so that the name is also valid in the XML format (<xref section="3.2" sectionFormat="of" target="PROBLEM"/>).</t>
        </li>
        <li>
          <t>Its value is a boolean, number or string, or an array of them. It is not null or an object, and an array does not contain arrays.</t>
        </li>
        <li>
          <t>The definition specifies the Structured Type of the member, as in <xref target="_table-types"/>. Where the value is an array, it specifies the type of the array's items.</t>
        </li>
      </ul>
      <table anchor="_table-types">
        <name>Mapping Between Structured Types and JSON</name>
        <thead>
          <tr>
            <th align="left">Structured Type</th>
            <th align="left">JSON type</th>
            <th align="left">Constraints</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Integer</td>
            <td align="left">number</td>
            <td align="left">an integer; see <xref section="3.3.1" sectionFormat="of" target="STRUCTURED-FIELDS"/></td>
          </tr>
          <tr>
            <td align="left">Decimal</td>
            <td align="left">number</td>
            <td align="left">at most 12 integer digits and 3 fractional digits</td>
          </tr>
          <tr>
            <td align="left">String</td>
            <td align="left">string</td>
            <td align="left">ASCII characters only</td>
          </tr>
          <tr>
            <td align="left">Token</td>
            <td align="left">string</td>
            <td align="left">conforms to the syntax of a Token</td>
          </tr>
          <tr>
            <td align="left">Display String</td>
            <td align="left">string</td>
            <td align="left">any Unicode scalar value</td>
          </tr>
          <tr>
            <td align="left">Boolean</td>
            <td align="left">boolean</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">Inner List</td>
            <td align="left">array</td>
            <td align="left">items are of the types above</td>
          </tr>
        </tbody>
      </table>
      <t>Members of other Structured Types (Byte Sequence and Date) are ignored.</t>
      <t>A sender <bcp14>MUST</bcp14> use the Structured Type that the problem type specifies for each member. A recipient converts a String, Token or Display String to a JSON string, and an Integer or Decimal to a JSON number, without checking which the problem type specifies. A member of any other type, such as a Byte Sequence or Date, is ignored.</t>
      <t>The language of Display Strings is indicated by the Content-Language header field (<xref section="8.5" sectionFormat="of" target="HTTP"/>), when present.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is asked to update the "Hypertext Transfer Protocol (HTTP) Field Name Registry" as follows:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Field Name</th>
            <th align="left">Status</th>
            <th align="left">Structured Type</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Problem-Details</td>
            <td align="left">permanent</td>
            <td align="left">Dictionary</td>
            <td align="left">
              <xref target="field"/></td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The considerations in <xref section="5" sectionFormat="of" target="PROBLEM"/> apply to problem details using the field in the same way that they do to problem details in content: it is easy to leak implementation details through error messages. Because a header field is visible to, and often logged by, every intermediary on the path, senders should consider not only the impact of individual disclosures, but also what information might be gathered over time by observing many responses.</t>
      <t>Display Strings can contain any Unicode scalar value, including control characters. Recipients that display <tt>title</tt>, <tt>detail</tt> or a Display String extension member need to treat it as untrusted text, and filter or escape it first (<xref section="6" sectionFormat="of" target="STRUCTURED-FIELDS"/>).</t>
      <t>Recipients <bcp14>SHOULD NOT</bcp14> automatically dereference the <tt>type</tt> or <tt>instance</tt> URIs (<xref section="3.1" sectionFormat="of" target="PROBLEM"/>).</t>
      <t>Header fields are subject to size limits that content generally is not, and some implementations impose them on the whole header section. Senders that need to convey more than a small amount of information should use content or selectively omit members from the field.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="HTTP">
        <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="STRUCTURED-FIELDS">
        <front>
          <title>Structured Field Values for HTTP</title>
          <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
          <author fullname="P-H. Kamp" surname="P-H. Kamp"/>
          <date month="September" year="2024"/>
          <abstract>
            <t>This document describes a set of data types and associated algorithms that are intended to make it easier and safer to define and handle HTTP header and trailer fields, known as "Structured Fields", "Structured Headers", or "Structured Trailers". It is intended for use by specifications of new HTTP fields.</t>
            <t>This document obsoletes RFC 8941.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9651"/>
        <seriesInfo name="DOI" value="10.17487/RFC9651"/>
      </reference>
      <reference anchor="PROBLEM">
        <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="JSON">
        <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="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>
    <?line 184?>



  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA61abXPbNhL+zl+BU+amdkaSLeelidr0zrGdsW/s2Gc703Z6
nRoiIYk1SagEaFe1099yv+V+2T27AChSkp20d/kQk+ACWOzrswv1er3IpjZT
Q3E5VeKs1KNM5b19ZWWaGXF4eXkmDpVMVCnepSpLIjkalepmuErJRFGi40Lm
WC0p5dj2Cm1tWkymMu/N/IQpE/a2t6NEWhDubO+87A22e8+2oxgDE13Oh8LY
JIrSWTkUtqyM3dnefr29E12r+a0uk6E4KqwqC2V7+7RLFBkri+QnmekCC86V
iUwuS/vTL5W2ygxFoaNZOhQ/WB13Bf5Li0QVtiuMLm2pxgZP89w/2DKN8SnW
+Uz6hxzE+JQWWVqoH6PoRhWVGkZCTDWdtDO1dmaGW1s44c8qtqaf49h9sLd1
1Nvf6oCwVDPdIJykdlqN+lh6i0iZLJMjlZmttpQ6UeRoe6kxleox0VC0iaJI
VnaqS3DUw14CjOLMJ33xvhY+Dzu9nMjyevmLLieySH+TNtXFUOxlukrGmSwV
f5xpSDcb8rMQPXGispGuIH0eiXVVWNLYLtRUyiyVPKxyGMVQ0On+HqTBH6oS
ighyqOUURYUuc+x/w3IlqxuK83d7rweDbbxfXJ5/2Lv8cH6w33t3dHC8f+E+
vnwxwMez89O3xwcnbuj5iy8x9I+L0/f8/mrnxesoinq9npAj4i+GsVxOUyPM
TMXpOI35zCJRY6jWCPuQCzhJizG5QFfcTtN4KmJZlikmyaAPLOOm6BHZgdgA
B4JY2hSSyC5gy7GtSpU4X+qLtyqWlVG87/JXI+AfUuQ6UZkAx7kuFcRd0DHA
bIJJsuCjfkHGaYXMjK5PwkyN04zWlrbm0M5n+Bhjop5ZGIrVcAJHAh7m/GWk
hFFlCl0a7MKcu+P3vSjzNEkyhZcn5IilTsA3pBhFZ0tyuLvzyvn4UUygWyfL
3bMjWpMcC6K/lXO4JKaYuEyxNRhQZanLrhhVVugim4NNkOfKGDlRXxiSgWX3
BWt0fGxDf7CHLsV3J8d9RDKcByKDeUEq2AH73YAjCe76YhfuaGYQpKKNpTg8
2N3H0C+VMlZMJU0Le3yFzzXx7VQbFb7Q8vRths94dWakx6xJDMFBYkXSdCxA
xmQt82VLwfpFQkdOKaDlKkkliFgdE1WoEvHQ0Kl4HX4J4oESJlPLJyShjTJ3
mAzLMA81m1aMdXkry8T0P2n6nSXb7ywO33QAsXF3xw8fP27SrmuPtt7koasV
Z/74EZytWr8XXi1i5hB/U7gBq33hHhTJWRTqRq3hxLujt23ntglZFa04dp54
d+f9BWa06kNQ7PKi8IOnPpVxrrAp6aDlZ0+JCPJRhVz5RuO1C44UgnHNmFwT
c0w/xKUwnWwkcad269CKwdeZaTqvsWmW8al1caPmWL0ytFd9cudm9NrS8C1N
Y+dzyiWCXOUjVRovHhZgw8GhwydPKLGwWclM7NGOBb0YMjwlkL0FpW8jOicf
Li47XfdXvD/l5/ODf344glXQ88Xh7vFx/RB5iovD0w/H+4unxcy905OTg/f7
bjJGRWso6pzsfo8v5Gud07PLo9P3u8cdZwDwB0CWilK8QMYTrA3njrA7y+qI
QnDiM7/dO/vPvwfPcfa/IL7vDAavYTLu5dXgy+d4uZ2qwu3GEnSvFF4jOZsp
WXJAg3xjOUuRWg1HMjPVtwWUUCpI8ukPJJkfh+LrUTwbPP/GD9CBW4NBZq1B
ltnqyMpkJ8Q1Q2u2qaXZGl+SdJvf3e9b70HujcGv/0aASvQGr/72TeSDU60M
pEUXlMY6y/QtGy1CZFroTE/mYlzqnIKJ4tQjnpGLrokspE8X7+bAeIjTv7Je
ZrIkNxiK/ZTnI+p2kcsQccVxamyXAeZEIQntY24uEWEQoDCjKy71NanzrdaZ
kng4kyVwFViDGt/OLfI4ZZIiVpiLiO3sYD81swyJzi0CBR/5A3bWxyoy42a4
6DjbVb8iphs6r/PFDhnOg+6I9LwW0jfQvLh74gK589DPjf8umDyCfJqMiCNr
xI3MKuVy5kLk4PFAAki5w4TsufiOfUrHQGJcdFNLtA9sfwvMzN8NVMO416mB
kvsS1LqEdL3vsQAtheqeD3UsxnsgXt5TiPuVmfcuFZGOxPp/99F9r/7XeHxw
ZIUCHNTr33sTaqzPJQtGNqT4cH4EjY0RQ2B/mw0OQCNtZZjcm3ZjgaLy53v4
CIJrREfeNuYGB48u4FT0PyyAqgZVXqz+pAzuhuJJS7nuSG+CzYvgHyf+s8cH
y+7DftPxDmNQ5yDFxSYYZFibUsmyb9axqj8g8oaH7AazdhCzdhZO7m5h+7id
EnU6QRGlEs4mj28YRbtgvSCHRpgWOqfqoZh7LqjSjbMqIYFe0b5XoeIBIwU7
UWr5bLLKrOcW63ck6kI7HGWyuO70xaG+JTgGduq9fArz6wPNLcUzI6oiA84n
1OppjGcBPDMoCgEJIs5KxKQAUGQw8RiAkPHglRu4ItFALFWRyMK2UN9XnjEj
fN5jQaSW5FPMW3itBo8BRtUhxqOoBazKF/azGk7EwcqRyVQC9HPlTju28fY4
wyrY3GiA1k0OcCn1NYDtXerMyRLWwd2vHtEJ2YEGZUn1wjmy3yyl9ocjdCZW
s84lowehpYr1pEDJ2PU1zbyRGsXivFj1HcoX9avMZ5nqOghWp5lQUxOrMKae
HvdiKC9dVLDrEn9t2cFQb8n7DIDEWsF1nfauRjKjgHJFRVWIisT7lYy5rWH8
lwALGGNwoDHDKPr999+5kdHzlSnb59YAvvZ8+5nAGUcok1URLQWQISv0Td0L
8oLgZhCd0Wy1zg30ivDlQtVfO9/rKsh7Km+oHNLVZCocad/RukDriEsRV0ih
sHt/VpLHs+0A+lEsxNpAuS+2/eQQZN90trwQtgY7z56/2MrNxGzJUQxk4pd6
g3VoShDWm42lOR2xGHj55avX251NlhqjH/ABnJQieHBpp50drM/nXtg/G11E
d9iyw5Co0U/7HBl2WIY06zOE2HEMeOo/KsVOkCLNf1COROjXA50TZicIEyM/
LIuzuyLPH6OPTqC7TQ8qGjVbqOZg7nA6+gvJrIjZNwv64lsK8Kmt3XCESNBt
LMQAzlQjo+rEVM8lHny0cEJB6ksMd25cbiMmknTMqdmnDbOA+X6dLzxWdPjV
YdXe3iLmhWx9yVXw3ZMQAEkGn46YCK0+daVFyvHDUHMI2WIperowoh35appq
xux2H+GUIjiHb1la38pp9RPaKSWX14oEvsKq6zwFeSZaOTSQFhAfN3UoDLYQ
x0oQDfCaFUW4IpBC1GNd5jWmrissONpThusEmZHuJjBkpzcpQEEMSqyTKWsp
sbt5EMFovvoZ5VCSTlJqnHf+9RMZb69DNtjpd6hBR3hl1ZiuqapgmS0i/PM+
Ymr/wQJPEg+Gmlyt2qLGMjEdvWh2Od3paHfqy8Ha0lqJ350c00o5CDea+Gmn
lWU2+15MjapmFOpBD6bBjvEVI/fvYDIlIK87Z05FUQB4RUWtFqZx4S4kUD+l
1j15iEz9sCEeCII2bdk19tT6IqeFUBcg0SEUbioRPvmWOhBMuDic35KbzO09
bGNhpvmCsJvKDddNjxVL99Qfcq1sax4G/mtLgUeLqE8XVI/UWY/VRvehTwsC
Qo6qhbA9xl5nobSwbyM8tLAVOTKIGOyEDbzvsCU8g7PL2HfV/HhdFT1YCvHz
7sXe0RFcQNICDochPH2OjF2foznWWng5hPjeCiQgV2YuLfxY9XfPuPFDkRKK
FyZGeiy9IX6aY9+SaXA8qkfuP33ohxduIEC/sPNM98z2zhmhUaphYKRvHuO6
WZH6lq6rR0/kbEbieKvsrYIgl7zI2QQ5EhWhoVjF1gzaV6k3Wk0p142SFpUx
cexLxlZBSDh/zZ0Ue3AdQluJbBETKAqrRUunDQq4diqtvxZYNNMo+C0ZBd/L
cLAIQdSHxOCgNMW71ILWuVS3hjnxVMXXtFxdvT7Ad6MCJwsOFRBToZasMJlv
M9qiJB64w7eovfuuLQBQN6lQEtBq7ZNx1gMuotsXlziJqz2HfXrHYd7ybUuI
M6/6L2hNqjSQhrrcWhb+fsQhpqPd97scWgFmSum77zxIkdxc072hFtWM7t7d
nc8hDllaYBxxWcrCEL4AyLI61pnYoJ02fa/wPaXNc4AC6GTOrUcHAKgY+qMx
uT1CTtbYwzvWRehZre27nYcej/gzOWF1/+U+z72AWHJZkOXeN4GF566+Avu/
7E+qg5KrMgVoXFbfpYPHjbF2f+dFC50IxI+M71SXYf7S1U8APdwk5WvY+hoY
5dGa+aD3KH3IHRogY2l4J0TZa5FSDZbXl6Fhlp2WXF/5a0tXLJvF3bdsWztW
vUlN6i40/S3KGHsCYU4m7DJdf83XujPVhUfdVLCEto5BGHDtapad66cFgJ7y
DzwY48Mfb9Kk4vRq4kwbGJpx5R1jxFu+Ty4cMuQ6gC9fR0pMJAUK6tzcULxI
CTaDGWDa8oaEnVMwqXtWcNHlcMDlWgB2D+S+ZkOOaEt45iKn90WjS+PqDb/H
FWeUq664crq4Eh4kt2LtcnUjCuWChC2V5AtkSX05/h0OfQC9UwvqLutCsQK3
M65jxmlpWtj55QOoaLPdXVpcPAlZWU1ihgCgKaitdnTSmusG0qZXocq+op6v
aQP2wTJgjw6bt6mc/FB68G0BXRGlvyFqp3kaRBiuz90tPDHi0Lo7udG5WjJ3
Q+/apc08WOPtFPgjmLdxzPXh5846eaMgbNdYdD/y4B92oDTK6ZJQ5lTwOzNd
GKC37KrxgwSqOFRGm9wo8Mu9zFDx1dWiq1LdzzhGMr6Oov8C2glk9AEmAAA=

-->

</rfc>
