<?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.6.8 (Ruby 3.0.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-problem-details-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.5 -->
  <front>
    <title abbrev="CoRE Problem Details">Concise Problem Details For CoAP APIs</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-problem-details-03"/>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>arm</organization>
      <address>
        <email>thomas.fossati@arm.com</email>
      </address>
    </author>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <date year="2022" month="May" day="06"/>
    <area>ART</area>
    <workgroup>CoRE Working Group</workgroup>
    <keyword>CoAP, API, Problem Details</keyword>
    <abstract>
      <t>This document defines a "problem detail" as a way to carry
machine-readable details of errors in a REST response to avoid the
need to define new error response formats for REST APIs.
The format
is inspired by, but intended to be more concise than, the Problem
Details for HTTP APIs defined in RFC 7807.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
  CORE Working Group mailing list (core@ietf.org),
  which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/core/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
  <eref target="https://github.com/core-wg/core-problem-details"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>REST response status information such as CoAP response
codes (<xref section="5.9" sectionFormat="of" target="RFC7252"/>) is sometimes not sufficient to convey enough information about
an error to be helpful.  This specification defines a simple and extensible
framework to define CBOR <xref target="STD94"/> data items to suit this purpose.
It is designed to be reused by REST APIs, which can identify distinct
"problem types" specific to their needs.
Thus, API clients can be informed of both the high-level error class
(using the response code) and the finer-grained details of the problem
(using this vocabulary), as shown in <xref target="fig-problem-details"/>.</t>
      <figure anchor="fig-problem-details">
        <name>Problem Details: Example with CoAP</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="288" viewBox="0 0 288 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
              <path d="M 8,32 L 8,80" fill="none" stroke="black"/>
              <path d="M 48,80 L 48,240" fill="none" stroke="black"/>
              <path d="M 80,32 L 80,80" fill="none" stroke="black"/>
              <path d="M 168,32 L 168,80" fill="none" stroke="black"/>
              <path d="M 200,80 L 200,240" fill="none" stroke="black"/>
              <path d="M 240,32 L 240,80" fill="none" stroke="black"/>
              <path d="M 8,32 L 80,32" fill="none" stroke="black"/>
              <path d="M 168,32 L 240,32" fill="none" stroke="black"/>
              <path d="M 8,80 L 80,80" fill="none" stroke="black"/>
              <path d="M 168,80 L 240,80" fill="none" stroke="black"/>
              <path d="M 56,128 L 192,128" fill="none" stroke="black"/>
              <path d="M 56,160 L 192,160" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="200,128 188,122.4 188,133.6 " fill="black" transform="rotate(0,192,128)"/>
              <polygon class="arrowhead" points="64,160 52,154.4 52,165.6 " fill="black" transform="rotate(180,56,160)"/>
              <circle cx="48" cy="128" r="6" class="opendot" fill="white" stroke="black"/>
              <circle cx="200" cy="160" r="6" class="opendot" fill="white" stroke="black"/>
              <g class="text">
                <text x="44" y="52">CoAP</text>
                <text x="204" y="52">CoAP</text>
                <text x="44" y="68">Client</text>
                <text x="204" y="68">Server</text>
                <text x="88" y="116">Request</text>
                <text x="248" y="148">(failure)</text>
                <text x="96" y="180">Error</text>
                <text x="156" y="180">Response</text>
                <text x="116" y="196">with</text>
                <text x="144" y="196">a</text>
                <text x="172" y="196">CBOR</text>
                <text x="76" y="212">data</text>
                <text x="116" y="212">item</text>
                <text x="164" y="212">giving</text>
                <text x="96" y="228">Problem</text>
                <text x="160" y="228">Details</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
.--------.          .--------.
|  CoAP  |          |  CoAP  |
| Client |          | Server |
'----+---'          '---+----'
     |                  |
     | Request          |
     o----------------->|
     |                  | (failure)
     |<-----------------o
     |   Error Response |
     |      with a CBOR |
     | data item giving |
     |  Problem Details |
     |                  |
]]></artwork>
        </artset>
      </figure>
      <t>The framework presented is largely inspired by the Problem Details for HTTP APIs defined in <xref target="RFC7807"/>.
<xref target="comp7807"/> discusses applications where interworking with <xref target="RFC7807"/> is required.</t>
      <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>
      </section>
    </section>
    <section anchor="basic-problem-details">
      <name>Basic Problem Details</name>
      <t>A Concise Problem Details data item is a CBOR data item with the following
structure (notated in CDDL <xref target="RFC8610"/>):</t>
      <figure anchor="cddl">
        <name>Problem Detail Data Item</name>
        <sourcecode type="cddl"><![CDATA[
problem-details = non-empty<{
  ? &(title: -1) => oltext
  ? &(detail: -2) => oltext
  ? &(instance: -3) => ~uri
  ? &(response-code: -4) => uint .size 1
  standard-problem-detail-entries
  custom-problem-detail-entries
}>

standard-problem-detail-entries = (
  * nint => any
)

custom-problem-detail-entries = (
  * (uint/~uri) => { + any => any }
)

non-empty<M> = (M) .and ({ + any => any })

oltext = text / tag38 ; see Appendix A for tag38

]]></sourcecode>
      </figure>
      <t>A number of problem detail entries, the Standard Problem Detail
entries, are predefined (more predefined details can be registered,
see <xref target="new-spdk"/>):</t>
      <dl newline="true">
        <dt>The title (key -1):</dt>
        <dd>
          <t>A short, human-readable summary of the problem type.
It <bcp14>SHOULD NOT</bcp14> change from occurrence to occurrence of the problem.</t>
        </dd>
        <dt>The detail (key -2):</dt>
        <dd>
          <t>A human-readable explanation specific to this occurrence of the problem.</t>
        </dd>
        <dt>The instance (key -3):</dt>
        <dd>
          <t>A URI reference that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.</t>
        </dd>
        <dt>The response-code (key -4)</dt>
        <dd>
          <t>The CoAP response code (<xref section="5.9" sectionFormat="of" target="RFC7252"/>) generated by the origin
server for this occurrence of the problem.</t>
        </dd>
      </dl>
      <t>Note that, unlike <xref target="RFC7807"/>, Concise Problem Details data items have no
explicit type.</t>
      <t>Both "title" and "detail" can use either an unadorned CBOR text string
(<tt>text</tt>) or a language-tagged text string (<tt>tag38</tt>); see <xref target="tag38"/> for
the definition of the latter.</t>
      <t>The "title" string is advisory and included to give
consumers a shorthand for the category of the error encountered.</t>
      <t>The "detail" member, if present, ought to focus on helping the client correct the problem, rather than giving debugging information.  Consumers <bcp14>SHOULD NOT</bcp14> parse the "detail" member for information; extensions (see <xref target="sec-new-attributes"/>) are more suitable and less error-prone ways to obtain such information.</t>
      <t>Note that the "instance" URI reference may be relative; this means
that it must be resolved relative to the representation's base URI, as
per <xref section="5" sectionFormat="of" target="STD66"/>.</t>
      <t>Note that the "response code" value is a numeric representation of the
actual code, so it does not take the usual form that resembles an
HTTP status code -- <tt>4.04 Not found</tt> is represented by the number 132.</t>
    </section>
    <section anchor="sec-new-attributes">
      <name>Extending Concise Problem Details</name>
      <t>This specification defines a generic problem type container with only a
minimal set of attributes to make it usable.</t>
      <t>It is expected that applications will extend the base format by defining new
attributes.</t>
      <t>These new attributes fall into two categories: generic and application
specific.</t>
      <t>Generic attributes will be allocated in the <tt>standard-problem-detail-entries</tt>
slot according to the registration procedure defined in <xref target="new-spdk"/>.</t>
      <t>Application-specific attributes will be allocated in the
<tt>custom-problem-detail-entries</tt> slot according to the procedure described in
<xref target="new-cpdk"/>.</t>
      <section anchor="new-spdk">
        <name>Standard Problem Detail Entries</name>
        <t>Beyond the Standard Problem Detail keys defined in <xref target="cddl"/>, additional
Standard Problem Detail keys can be registered for use in the
<tt>standard-problem-detail-entries</tt> slot (see <xref target="iana-spdk"/>).</t>
        <t>Standard Problem Detail keys are negative integers, so they never can
conflict with Custom Problem Detail keys defined for a specific
application domain
(which are unsigned integers or URIs.)</t>
        <t>In summary, the keys for Standard Problem Detail entries are in a
global namespace that is not specific to a particular application domain.</t>
        <t>Consumers of a Concise Problem Details instance <bcp14>MUST</bcp14> ignore any Standard Problem
Detail entries that they do not recognize; this allows problem details to evolve.</t>
      </section>
      <section anchor="new-cpdk">
        <name>Custom Problem Detail Entries</name>
        <t>Applications may extend the Problem Details data item with
additional entries to convey additional, application-specific information.</t>
        <t>Such new entries are allocated in the <tt>custom-problem-detail-entries</tt> slot, and
carry a nested map specific to that application.  The map key can either be
an (absolute!) URI (controlled by the entity defining this extension),
or an unsigned integer.
Only the latter needs to be registered (<xref target="iana-cpdk"/>).</t>
        <t>Within the nested map any number of attributes can be given for a
single extension.
The semantics of each custom attribute <bcp14>MUST</bcp14> be described in the
documentation for the extension; for extension that are registered
(i.e., are identified by an unsigned int) that documentation goes
along with the registration.</t>
        <t>The unsigned integer form allows a more compact representation, in
exchange, authors are expected to comply with the required
registration and documentation process.
In comparison, the URI form is less space-efficient but requires no
registration.  It is therefore useful for experimenting during the development
cycle and for applications deployed in environments where producers and
consumers of Concise Problem Details are more tightly integrated.
(The URI form thus covers the potential need we might otherwise have for a "private use" range for the unsigned integers.)</t>
        <t>Note that the URI given for the extension is for identification
purposes only and, even if dereferenceable in principle, <bcp14>MUST NOT</bcp14> be
dereferenced in the normal course of handling problem details (i.e., outside
diagnostic/debugging procedures involving humans).</t>
        <t>An example of a custom extension using a URI as <tt>custom-problem-detail-entries</tt>
key is shown in <xref target="fig-example-custom-with-uri"/>.</t>
        <figure anchor="fig-example-custom-with-uri">
          <name>Example Extension with URI key</name>
          <artwork type="cbor-diag" align="center"><![CDATA[
{
  / title /         -1: "title of the error",
  / detail /        -2: "detailed information about the error",
  / instance /      -3: "coaps://pd.example/FA317434",
  / response-code / -4: 128, / 4.00 /

  "tag:3gpp.org,2022-03:TS29112": {
    / cause /  0: "machine readable error cause",
    / invalidParams / 1: [
      [
        / param / "first parameter name",
        / reason / "must be a positive integer"
      ],
      [
        / param / "second parameter name"
      ]
    ],
    / supportedFeatures / 2: "d34db33f"
  }
}
]]></artwork>
        </figure>
        <t>Obviously, an SDO like 3GPP can also easily register such a custom
problem detail entry to receive a more efficient unsigned integer key;
the same example but using a registered unsigned int as
<tt>custom-problem-detail-entries</tt> key is shown in
<xref target="fig-example-custom-with-uint"/>.</t>
        <figure anchor="fig-example-custom-with-uint">
          <name>Example Extension with unsigned int (registered) key</name>
          <artwork type="cbor-diag" align="center"><![CDATA[
{
  / title /         -1: "title of the error",
  / detail /        -2: "detailed information about the error",
  / instance /      -3: "coaps://pd.example/FA317434",
  / response-code / -4: 128, / 4.00 /

  /example value 4711 not actually registered like this:/
  4711: {
    / cause /  0: "machine readable error cause",
    / invalidParams / 1: [
      [
        / param / "first parameter name",
        / reason / "must be a positive integer"
      ],
      [
        / param / "second parameter name"
      ]
    ],
    / supportedFeatures / 2: "d34db33f"
  }
}
]]></artwork>
        </figure>
        <t>In summary, the keys for the maps used inside Custom Problem Detail
entries are defined specifically to the identifier of that Custom Problem Detail
entry, the documentation of which defines these internal entries,
typically chosen to address a given application domain.
Consumers of a Concise Problem Details instance <bcp14>MUST</bcp14> ignore any Custom
Problem Detail entries, or keys inside the Custom Problem Detail
entries, that they do not recognize; this allows Custom Problem Detail
entries to evolve and include additional information in the future.</t>
      </section>
    </section>
    <section anchor="seccons">
      <name>Security Considerations</name>
      <t>The security and privacy considerations outlined in Section 5 of <xref target="RFC7807"/> apply in full.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t><cref anchor="to-be-removed">RFC Editor: please replace RFC XXXX with this RFC number and remove this note.</cref></t>
      <section anchor="iana-spdk">
        <name>Standard Problem Detail Key registry</name>
        <!-- {{content-formats (CoAP Content-Formats)<IANA.core-parameters}} -->

<t>This specification defines a new sub-registry for Standard Problem
Detail Keys in the CoRE Parameters registry <xref target="IANA.core-parameters"/>,
with the policy "specification required" <xref target="RFC8126"/>.</t>
        <t>Each entry in the registry must include:</t>
        <dl newline="true">
          <dt>Key value:</dt>
          <dd>
            <t>a negative integer to be used as the value of the key</t>
          </dd>
          <dt>Name:</dt>
          <dd>
            <t>a name that could be used in implementations for the key</t>
          </dd>
          <dt>CDDL type:</dt>
          <dd>
            <t>type of the data associated with the key in CDDL notation</t>
          </dd>
          <dt>Brief description:</dt>
          <dd>
            <t>a brief description</t>
          </dd>
          <dt>reference:</dt>
          <dd>
            <t>a reference document</t>
          </dd>
        </dl>
        <t>Initial entries in this sub-registry are as follows:</t>
        <table anchor="spdk">
          <name>Initial Entries in Standard Problem Detail Key registry</name>
          <thead>
            <tr>
              <th align="left">Key value</th>
              <th align="left">Name</th>
              <th align="left">CDDL Type</th>
              <th align="left">Brief description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-1</td>
              <td align="left">title</td>
              <td align="left">text</td>
              <td align="left">short, human-readable summary of the problem type</td>
              <td align="left">RFCXXXX</td>
            </tr>
            <tr>
              <td align="left">-2</td>
              <td align="left">detail</td>
              <td align="left">text</td>
              <td align="left">human-readable explanation specific to this occurrence of the problem</td>
              <td align="left">RFCXXXX</td>
            </tr>
            <tr>
              <td align="left">-3</td>
              <td align="left">instance</td>
              <td align="left">~uri</td>
              <td align="left">URI reference identifying specific occurrence of the problem</td>
              <td align="left">RFCXXXX</td>
            </tr>
            <tr>
              <td align="left">-4</td>
              <td align="left">response-code</td>
              <td align="left">uint .size 1</td>
              <td align="left">CoAP response code</td>
              <td align="left">RFCXXXX</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="iana-cpdk">
        <name>Custom Problem Detail Key registry</name>
        <t>This specification defines a new sub-registry for Custom Problem
Detail Keys in the CoRE Parameters registry <xref target="IANA.core-parameters"/>,
with the policy "first come first served" <xref target="RFC8126"/>.</t>
        <t>Each entry in the registry must include:</t>
        <dl newline="true">
          <dt>Key value:</dt>
          <dd>
            <t>an unsigned integer to be used as the value of the key</t>
          </dd>
          <dt>Name:</dt>
          <dd>
            <t>a name that could be used in implementations for the key</t>
          </dd>
          <dt>Brief description:</dt>
          <dd>
            <t>a brief description</t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t>a reference document that provides a description of the map,
including a CDDL description, that describes all inside keys and
values</t>
          </dd>
        </dl>
        <t>Initial entries in this sub-registry are as follows:</t>
        <table anchor="cpdk">
          <name>Initial Entries in Custom Problem Detail Key registry</name>
          <thead>
            <tr>
              <th align="left">Key value</th>
              <th align="left">Name</th>
              <th align="left">Brief description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">7807</td>
              <td align="left">tunnel-7807</td>
              <td align="left">Carry RFC 7807 problem details in a Concise Problem Details data item</td>
              <td align="left">RFCXXXX</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="media-type">
        <name>Media Type</name>
        <t>IANA is requested to add the following Media-Type to the "Media Types"
registry <xref target="IANA.media-types"/>.</t>
        <table align="left" anchor="new-media-type">
          <name>New Media Type application/concise-problem-details+cbor</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Template</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">concise-problem-details+cbor</td>
              <td align="left">application/concise-problem-details+cbor</td>
              <td align="left">RFCXXXX, <xref target="media-type"/></td>
            </tr>
          </tbody>
        </table>
        <dl spacing="compact">
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>concise-problem-details+cbor</t>
          </dd>
          <dt>Required parameters:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Optional parameters:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary (CBOR data item)</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t><xref target="seccons"/> of RFC XXXX</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t><xref target="media-type"/> of RFC XXXX</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>Clients and servers in the Internet of Things</t>
          </dd>
          <dt>Fragment identifier considerations:</dt>
          <dd>
            <t>The syntax and semantics of fragment identifiers is as specified for
"application/cbor".  (At publication of RFC XXXX, there is no
fragment identification syntax defined for "application/cbor".)</t>
          </dd>
          <dt>Person &amp; email address to contact for further information:</dt>
          <dd>
            <t>CoRE WG mailing list (core@ietf.org),
or IETF Applications and Real-Time Area (art@ietf.org)</t>
          </dd>
          <dt>Intended usage:</dt>
          <dd>
            <t>COMMON</t>
          </dd>
          <dt>Restrictions on usage:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Author/Change controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Provisional registration:</dt>
          <dd>
            <t>no</t>
          </dd>
        </dl>
      </section>
      <section anchor="content-format">
        <name>Content-Format</name>
        <t>IANA is requested to register a Content-Format number in the
<xref section="&quot;CoAP Content-Formats&quot;" relative="#content-formats" sectionFormat="bare" target="IANA.core-parameters"/>
sub-registry, within the "Constrained RESTful Environments (CoRE)
Parameters" Registry <xref target="IANA.core-parameters"/>, as follows:</t>
        <table align="left">
          <name>New Content-Format</name>
          <thead>
            <tr>
              <th align="left">Content-Type</th>
              <th align="left">Content Coding</th>
              <th align="left">ID</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">application/concise-problem-details+cbor</td>
              <td align="left">-</td>
              <td align="left">TBD1</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
        <t>TBD1 is to be assigned from the space 256..999.</t>
        <t>In the registry as defined by <xref section="12.3" sectionFormat="of" target="RFC7252"/> at the time of
writing, the column "Content-Type" is called "Media type" and the
column "Content Coding" is called "Encoding". <cref anchor="remove">This paragraph to be removed by RFC editor.</cref></t>
      </section>
      <section anchor="iana-tag38">
        <name>CBOR Tag 38</name>
        <t>In the registry "<xref section="CBOR Tags" relative="#cbor-tags" sectionFormat="bare" target="IANA.cbor-tags"/>" <xref target="IANA.cbor-tags"/>,
IANA has registered CBOR Tag 38.
IANA is requested to replace the reference for this registration with
<xref target="tag38"/>, RFC XXXX.</t>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="STD94">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman">
              <organization/>
            </author>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049.  It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="STD66">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee">
              <organization/>
            </author>
            <author fullname="R. Fielding" initials="R." surname="Fielding">
              <organization/>
            </author>
            <author fullname="L. Masinter" initials="L." surname="Masinter">
              <organization/>
            </author>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource.  This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet.  The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier.  This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby">
              <organization/>
            </author>
            <author fullname="K. Hartke" initials="K." surname="Hartke">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks.  The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s.  The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types.  CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC7807">
          <front>
            <title>Problem Details for HTTP APIs</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham">
              <organization/>
            </author>
            <author fullname="E. Wilde" initials="E." surname="Wilde">
              <organization/>
            </author>
            <date month="March" year="2016"/>
            <abstract>
              <t>This document defines a "problem detail" as a way to carry machine- readable details of errors in a HTTP response to avoid the need to define new error response formats for HTTP APIs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7807"/>
          <seriesInfo name="DOI" value="10.17487/RFC7807"/>
        </reference>
        <reference anchor="IANA.cbor-tags" target="https://www.iana.org/assignments/cbor-tags">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="RFC5646">
          <front>
            <title>Tags for Identifying Languages</title>
            <author fullname="A. Phillips" initials="A." role="editor" surname="Phillips">
              <organization/>
            </author>
            <author fullname="M. Davis" initials="M." role="editor" surname="Davis">
              <organization/>
            </author>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the structure, content, construction, and semantics of language tags for use in cases where it is desirable to indicate the language used in an information object.  It also describes how to register values for use in language tags and the creation of user-defined extensions for private interchange.  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="47"/>
          <seriesInfo name="RFC" value="5646"/>
          <seriesInfo name="DOI" value="10.17487/RFC5646"/>
        </reference>
        <reference anchor="RFC4647">
          <front>
            <title>Matching of Language Tags</title>
            <author fullname="A. Phillips" initials="A." role="editor" surname="Phillips">
              <organization/>
            </author>
            <author fullname="M. Davis" initials="M." role="editor" surname="Davis">
              <organization/>
            </author>
            <date month="September" year="2006"/>
            <abstract>
              <t>This document describes a syntax, called a "language-range", for specifying items in a user's list of language preferences.  It also describes different mechanisms for comparing and matching these to language tags.  Two kinds of matching mechanisms, filtering and lookup, are defined.  Filtering produces a (potentially empty) set of language tags, whereas lookup produces a single language tag. Possible applications include language negotiation or content selection.  This document, in combination with RFC 4646, replaces RFC 3066, which replaced RFC 1766.  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="47"/>
          <seriesInfo name="RFC" value="4647"/>
          <seriesInfo name="DOI" value="10.17487/RFC4647"/>
        </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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz">
              <organization/>
            </author>
            <author fullname="C. Vigano" initials="C." surname="Vigano">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049).  Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="IANA.core-parameters" target="https://www.iana.org/assignments/core-parameters">
          <front>
            <title>Constrained RESTful Environments (CoRE) Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton">
              <organization/>
            </author>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <author fullname="T. Narten" initials="T." surname="Narten">
              <organization/>
            </author>
            <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="IANA.media-types" target="https://www.iana.org/assignments/media-types">
          <front>
            <title>Media Types</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson">
              <organization/>
            </author>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes.  It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="I-D.ietf-httpapi-rfc7807bis">
          <front>
            <title>Problem Details for HTTP APIs</title>
            <author fullname="Mark Nottingham">
	 </author>
            <author fullname="Erik Wilde">
	 </author>
            <author fullname="Sanjay Dalal">
	 </author>
            <date day="16" month="April" year="2022"/>
            <abstract>
              <t>   This document defines a "problem detail" to carry machine-readable
   details of errors in a HTTP response to avoid the need to define new
   error response formats for HTTP APIs.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Source for this draft and an issue tracker can be found at
   https://github.com/ietf-wg-httpapi/rfc7807bis.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-httpapi-rfc7807bis-02"/>
        </reference>
        <reference anchor="RDF" target="http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/">
          <front>
            <title>RDF 1.1 Concepts and Abstract Syntax</title>
            <author initials="R." surname="Cyganiak" fullname="Richard Cyganiak">
              <organization/>
            </author>
            <author initials="D." surname="Wood" fullname="David Wood">
              <organization/>
            </author>
            <author initials="M." surname="Lanthaler" fullname="Markus Lanthaler">
              <organization/>
            </author>
            <date year="2014" month="February" day="25"/>
          </front>
          <refcontent>W3C Recommendation</refcontent>
        </reference>
        <reference anchor="Unicode-14.0.0" target="https://www.unicode.org/versions/Unicode14.0.0/">
          <front>
            <title>The Unicode Standard, Version 14.0.0</title>
            <author>
              <organization>The Unicode Consortium</organization>
            </author>
            <date year="2021" month="September"/>
          </front>
          <seriesInfo name="ISBN" value="978-1-936213-29-0"/>
          <annotation>Note that while this document references a version that was recent at the time of writing, the statements made based on this version are expected to remain valid for future versions.</annotation>
          <refcontent>Mountain View: The Unicode Consortium</refcontent>
        </reference>
      </references>
    </references>
    <section anchor="tag38">
      <name>Language-Tagged Strings</name>
      <t>This appendix serves as the archival documentation for CBOR Tag 38, a
tag for serializing language-tagged text strings in CBOR.
The text of this appendix is adapted from the specification text
supplied for its initial registration.
It has been extended to allow supplementing the language tag by a
direction indication.</t>
      <section anchor="introduction-1">
        <name>Introduction</name>
        <t>In some cases it is useful to specify the natural language of a text
string.  This specification defines a tag that does just that.  One
technology that supports language-tagged strings is the Resource
Description Framework (RDF) <xref target="RDF"/>.</t>
      </section>
      <section anchor="detailed-semantics">
        <name>Detailed Semantics</name>
        <t>A language-tagged string in CBOR has the tag 38 and consists of an array
with a length of 2 or 3.</t>
        <t>The first element is a well-formed language tag under Best Current
Practice 47 (<xref target="RFC5646"/> and <xref target="RFC4647"/>), represented as a UTF-8 text
string (major type 3).</t>
        <t>The second element is an arbitrary UTF-8 text string (major type
3). Both the language tag and the arbitrary string can optionally be
annotated with CBOR tags; this is not shown in the CDDL below.</t>
        <t>The optional third element, if present, is a Boolean value that
indicates a direction: <tt>false</tt> for "ltr" direction, <tt>true</tt> for "rtl"
direction.  If the third element is absent, no indication is made
about the direction.</t>
        <t>In CDDL:</t>
        <sourcecode type="cddl"><![CDATA[
tag38 = #6.38([tag38-ltag, text, ?tag38-direction])
tag38-ltag = text  .abnf ("Language-Tag" .det RFC5646)
tag38-direction = &(ltr: false, rtl: true)

RFC5646 = '
 Language-Tag  = langtag             ; normal language tags
               / privateuse          ; private use tag
               / legacy              ; legacy tags

 langtag       = language
                 ["-" script]
                 ["-" region]
                 *("-" variant)
                 *("-" extension)
                 ["-" privateuse]

 language      = 2*3ALPHA            ; shortest ISO 639 code
                 ["-" extlang]       ; sometimes followed by
                                     ; extended language subtags
               / 4ALPHA              ; or reserved for future use
               / 5*8ALPHA            ; or registered language subtag

 extlang       = 3ALPHA              ; selected ISO 639 codes
                 *2("-" 3ALPHA)      ; permanently reserved

 script        = 4ALPHA              ; ISO 15924 code

 region        = 2ALPHA              ; ISO 3166-1 code
               / 3DIGIT              ; UN M.49 code

 variant       = 5*8alphanum         ; registered variants
               / (DIGIT 3alphanum)

 extension     = singleton 1*("-" (2*8alphanum))

                                     ; Single alphanumerics
                                     ; "x" reserved for private use
 singleton     = DIGIT               ; 0 - 9
               / %x41-57             ; A - W
               / %x59-5A             ; Y - Z
               / %x61-77             ; a - w
               / %x79-7A             ; y - z

 privateuse    = "x" 1*("-" (1*8alphanum))

 legacy        = irregular / regular ; different word in RFC

 irregular     = "en-GB-oed" / "i-ami" / "i-bnn" / "i-default" /
               "i-enochian" / "i-hak" / "i-klingon" / "i-lux" /
               "i-mingo" / "i-navajo" / "i-pwn" / "i-tao" / "i-tay" /
               "i-tsu" / "sgn-BE-FR" / "sgn-BE-NL" / "sgn-CH-DE"

 regular       = "art-lojban" / "cel-gaulish" / "no-bok" / "no-nyn" /
               "zh-guoyu" / "zh-hakka" / "zh-min" / "zh-min-nan" /
               "zh-xiang"

 alphanum      = (ALPHA / DIGIT)     ; letters and numbers

 ALPHA         =  %x41-5A / %x61-7A  ; A-Z / a-z
 DIGIT         =  %x30-39            ; 0-9
'
]]></sourcecode>
        <!-- RUBY_THREAD_VM_STACK_SIZE=5000000 cddl ... -->

<t>NOTE: Language tags of any combination of case are allowed. But
section 2.1.1 of <xref target="RFC5646"/>, part of Best Current Practice 47,
recommends a case combination for language tags, that encoders that
support tag 38 may wish to follow when generating language tags.</t>
        <t>Data items with tag 38 that do not meet the criteria above are invalid
(see <xref section="5.3.2" sectionFormat="of" target="STD94"/>).</t>
        <t>NOTE: The Unicode Standard <xref target="Unicode-14.0.0"/> includes a set of characters
designed for tagging text (including language tagging), in the range
U+E0000 to U+E007F. Although many applications, including RDF,
do not disallow these characters in text strings, the Unicode Consortium
has deprecated these characters and recommends annotating language via a
higher-level protocol instead. See the section "Deprecated Tag
Characters" in  Section 23.9 of <xref target="Unicode-14.0.0"/>.</t>
      </section>
      <section anchor="examples">
        <name>Examples</name>
        <t>Examples in this section are given in CBOR diagnostic mode, and then
as a pretty-printed hexadecimal representation of the encoded item.</t>
        <t>The following example shows how the English-language string "Hello" is
represented.</t>
        <sourcecode type="cbor-diag"><![CDATA[
38(["en", "Hello"])
]]></sourcecode>
        <sourcecode type="cbor-pretty"><![CDATA[
D8 26               # tag(38)
   82               # array(2)
      62            # text(2)
         656E       # "en"
      65            # text(5)
         48656C6C6F # "Hello"
]]></sourcecode>
        <t>The following example shows how the French-language string "Bonjour" is
represented.</t>
        <sourcecode type="cbor-diag"><![CDATA[
38(["fr", "Bonjour"])
]]></sourcecode>
        <sourcecode type="cbor-pretty"><![CDATA[
D8 26                   # tag(38)
   82                   # array(2)
      62                # text(2)
         6672           # "fr"
      67                # text(7)
         426F6E6A6F7572 # "Bonjour"
]]></sourcecode>
        <t>The following example shows how the Hebrew-language string
<u>שלום</u> is represented.
Note the <tt>rtl</tt> direction expressed by setting the third element in the array to "true".</t>
        <sourcecode type="cbor-diag"><![CDATA[
38(["he", "שלום", true])
]]></sourcecode>
        <sourcecode type="cbor-pretty"><![CDATA[
D8 26                     # tag(38)
   83                     # array(3)
      62                  # text(2)
         6865             # "he"
      68                  # text(8)
         D7A9D79CD795D79D # "שלום"
      F5                  # primitive(21)
]]></sourcecode>
      </section>
    </section>
    <section anchor="comp7807">
      <name>Interworking with RFC 7807</name>
      <t>On certain occasions, it will be necessary to carry ("tunnel")
<xref target="RFC7807"/> problem details in a Concise Problem Details item.</t>
      <t>This appendix defines a Custom Problem Details entry for that purpose.
This is assigned Custom Problem Detail key 7807 in <xref target="iana-cpdk"/>.
Its structure is:</t>
      <sourcecode type="cddl"><![CDATA[
tunnel-7807 = {
  ? &(type: 0) => ~uri
  ? &(status: 1) => 0..999
  * text => any
}
]]></sourcecode>
      <t>To carry an <xref target="RFC7807"/> problem details JSON object in a Concise Problem
Details item, first convert the JSON object to CBOR as per <xref section="6.2" sectionFormat="of" target="STD94"/>.  Create an empty Concise Problem Details data item.</t>
      <t>Move the values for "title", "detail", and "instance", if present,
from the <xref target="RFC7807"/> problem details to the equivalent Standard Problem
Detail entries.
Create a Custom Problem Detail entry with key 7807.
Move the values for "type" and "status", if present, to the equivalent
keys 0 and 1 of the Custom Problem Detail entry.
Move all remaining key/value pairs (additional members as per <xref section="3.2" sectionFormat="of" target="RFC7807"/>) in the converted <xref target="RFC7807"/> problem
details object to the Custom Problem Details map unchanged.</t>
      <t>The inverse direction, carrying Concise Problem Details in a Problem
Details JSON object requires the additional support provided by
<xref target="I-D.ietf-httpapi-rfc7807bis"/>, which is planned to create the HTTP Problem Types
Registry.  A Problem Type can then be registered that extracts
top-level items from the Concise Problem Details item in a similar way
to the conversion described above, and which carries the rest of the
Concise Problem Details item in an additional member via base64url
encoding without padding (<xref section="5" sectionFormat="of" target="RFC4648"/>).  Details can be defined
in a separate document when the work on <xref target="I-D.ietf-httpapi-rfc7807bis"/> is completed.</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t><contact fullname="Mark Nottingham"/> and <contact fullname="Erik Wilde"/>, authors of RFC 7807.
<contact fullname="Klaus Hartke"/> and <contact fullname="Jaime Jiménez"/>, co-authors of an earlier generation of
this specification.
<contact fullname="Christian Amsüss"/> and <contact fullname="Marco Tiloca"/> for review and comments on this document.</t>
      <t>For <xref target="tag38"/>, John Cowan and Doug Ewell are also to be acknowledged.
The content of an earlier version of this appendix was also discussed
in the "apps-discuss at ietf.org" and "ltru at ietf.org" mailing
lists.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="P." surname="Occil" fullname="Peter Occil">
        <organization/>
        <address>
          <email>poccil14 at gmail dot com</email>
          <uri>http://peteroupc.github.io/CBOR/</uri>
        </address>
      </contact>
      <t>Peter defined CBOR tag 38, basis of <xref target="tag38"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
4yyeMyjwA5DxTrkfsNDSV1jruiHeAzbHCGNV7A9knbXOJkvAhmUiEI3UVvTa
XA5a2KqCOpBWEPo54/ZJDrwf4IHyPogFqaIOnS0P1G6FY7e8ffGYCoG4UODi
9eH3P109uzjpH//0hxc/XV71j37/0+XZDycH21v0IddJNptNrgl4eX510su9
FHIH2LPHtOsU87ouk4jBU374AEwgOLwZeNTWIWo38SItqsUoOegNOjeCj8se
vSx59A2RuDu10O2kScoTo/KpuEV2LwmPfQ65rllx7An23cUpeFrjBhiFz3lS
YIkXQLgDvuWgmMbEiKk4fst7hjySDeXI8Z5qzW4pmKwU42ssrbvW9jgNFZ4J
e9SoOGHcabY5q0PX9WCswRi/WnF7F+LOXgKG13rwDiOdheVEM16ABohDfsrv
87FH7qkymdzZerERV14jNtho5HuZmN4Ur786IY4ALNHX3dOm7IfphG42wjv/
KqXsjdIWH8SbDWHRMgwMx+5cUFUASZOVcg22Vn/52rEJ5cQgPOEjLUvjcDlN
wSUcJlVWeI3UEHidkE7shUKzJE5jP6aNxlQr4NdLzZkex7O142JScM/FUT4l
XUyS1xi1O3xQvEwe3CLmurkitC4eFVuWdgjkES4dc6F1UVsup3QS1QaKkaCg
FS8+SeceVrkjeBP9HkIjn85prjzVagViSDzs4u58184VZGLsaOSEiSVPwIyD
lHiFQ8iRae0ZROcxZgZFKZheKlvFmAvMFV73wh0gvCJFlDfjRYjjPdneWdCr
j5Ap65098vH32ktvKa9Qb7sQYKe90Bn4qniLDbZ3TvK3CJXruL2i43apY3cP
uh7B/06xIy+El/FJODzFlOEKFB7G0c9xlnwaEkcJItF1+Rw0PozKT0DnOpTu
7LYrLRBON0DVzSoG2C2jtr1zunOy09853d2GoR4VS+QFfgp+n+lBom8W8Su+
zp7++qdf//nXf/r1X77ezJ4unLVuurMoWr6FyPxtkUjACiDcp+J0NejVPM+4
kKSIbNIm4Tv4ahjb11ZTb6KReg4c+I5tP5eIi2TsrGnDhOysJ+RqUu5V5QBp
Mcmrj3f21g6yVxrkeLe/f7y7fwT/tuHfMQ6Sr9o2O91eNRRosSmVTNfbLYuX
R7yFWrnUKq+UuH2U34wlxHkkfZ3QzQWxD/6BtUVpflA60ngwTCXFZYmyXuNi
jNqGKNeGflYFRq5Iy7nwItG7ssrC2JIh3kHA0hl3Dd+VzeDlO0ZrjwozCuik
T+lYIybOjSzuUQpMJRNWKj05kPntSHRp8tbiDUd8cUFP8qVJW7RRRZcG8R0/
fNPQnRVRh1FVubxsCZPfXp6/lPHgZ7w1YxVWRRmrDemqsKJrnbBPVR4AyEgm
Egxh5ToIsVNxpvCijURjVIqHUvEmo4eraYCgL7gs19Zece2UvaikkV/NYS8q
yy/CqCRQRb4Nch9KbHkMllvATKhUHjjj3BRuOWuYg3mLRMXxSXPNcvKdvxpT
u7qAZdgElWFtUZeWcynugcLOi3VcfAkqCjGMscnp5JkCAst6qUqcrzoxyzS1
DnKOxw2ney136OEqLIv8ysecZdZCbOj0bxbxyVR3S0yAoxtdzmUTp99zFQdz
9iJHlzk3P2NKxqNYvYtPbCUdpQ/Bm7TXKWOcxGcTcHcVTJ29qNNndiAziDeO
OHCo1Eq4jXgQg37lFe0soCe5cE6a46b3dBWtEWk8s44yRz05T9+nDxkDBrQ5
huo3ai4s4plYhvfC3MlnCo9Yktzdokni7odKMCC0N7I8OGUkl1iJXH68W2Sn
myV4XMEWJ6F44P7BDHvgLs3ibTLYByMxmU9jz3/bbXnBa9S4zZ2WSiEpgkTI
acstRn1YEJB20fFks2Yn75Hs+++i+CbUQyqzwWtcQEdTNkAPsbLr9hZvpsb7
YtAFmajpXb6fdXuSBO/kd0GIgcZdcZTalvOw3EOz34cqM/IZRNjvdKn3twpr
Br4Npn/+U6Q/0Ah+7JUGQXWpkhDrk1xETHGESJd2Nmmeo0mC98BCt/7U/Pnf
jSlNBovwY3kV4H0Ed3wzFJD2OsBbXGi3cMqVJPHCRY+AI/y/FCjtp38bTyA0
im8Un/4+hihUnuA+oU064N0bXHSRYxZRfcXcRyUN1bU5hlza0Mb7oWk8d+km
0ZwqYqCN8exjLMFwNUVWmYZgf6uPbQWTwAom0OD/BQqizFFQYQAA

-->

</rfc>
