<?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.2 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bormann-cbor-cde-00" category="bcp" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.1 -->
  <front>
    <title abbrev="CBOR CDE">CBOR Common Deterministic Encoding (CDE)</title>
    <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-cde-00"/>
    <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="2023" month="November" day="05"/>
    <area>Applications and Real-Time</area>
    <workgroup>CBOR</workgroup>
    <abstract>
      <?line 57?>

<t>CBOR (STD 94, RFC 8949) defines "Deterministically Encoded CBOR" in
its Section 4.2, providing some flexibility for application specific
decisions.
To facilitate Deterministic Encoding to be offered as a selectable
feature of generic encoders, the present document defines a
CBOR Common Deterministic Encoding (CDE) Profile that can be shared by a
large set of applications with potentially diverging detailed
requirements.</t>
      <t>This document also introduces the concept of Application Profiles,
which are layered on top of the CBOR CDE Profile and can address
more application specific requirements.
To demonstrate how Application Profiles can be built on the CDE,
a companion document defines the application profile "dCBOR".</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-bormann-cbor-cde/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Concise Binary Object Representation Maintenance and Extensions (CBOR) Working Group mailing list (<eref target="mailto:cbor@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/cbor/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/cbor/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/cabo/det"/>.</t>
    </note>
  </front>
  <middle>
    <?line 77?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>CBOR (STD 94, RFC 8949) defines "Deterministically Encoded CBOR" in
its Section 4.2, providing some flexibility for application specific
decisions.
To facilitate Deterministic Encoding to be offered as a selectable
feature of generic encoders, the present document defines a
CBOR Common Deterministic Encoding (CDE) Profile that can be shared by a
large set of applications with potentially diverging detailed
requirements.</t>
      <t>This document also introduces the concept of Application Profiles,
which are layered on top of the CBOR CDE Profile and can address
more application specific requirements.
To demonstrate how Application Profiles can be built on the CDE,
a companion document defines the application profile "dCBOR".</t>
      <section anchor="conventions-and-definitions">
        <name>Conventions and Definitions</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>
    <section anchor="dep">
      <name>CBOR Common Deterministic Encoding Profile (CDE)</name>
      <t>This specification defines the <em>CBOR Common Deterministic Encoding
Profile</em> (CDE) based on the <em>Core Deterministic Encoding
Requirements</em> defined for CBOR in
<xref section="4.2.1" sectionFormat="of" target="STD94"/>.</t>
      <t>In many cases, CBOR provides more than one way to encode a data item,
but also provides a recommendation for a <em>Preferred Encoding</em>.
The <em>CoRE Deterministic Encoding Requirements</em> generally pick the
preferred encodings as mandatory; they also pick additional choices
such as definite-length encoding.
Finally, it defines a map ordering based on lexicographic ordering of
the (deterministically) encoded map keys.</t>
      <t>Note that this specific set of requirements is elective — in
principle, other variants of deterministic encoding can be defined
(and have been, now being phased out slowly, as detailed in <xref section="4.2.3" sectionFormat="of" target="STD94"/>).
In many applications of CBOR today, deterministic encoding is not used
at all, as its restriction of choices can create some additional
performance cost and code complexity.</t>
      <t><xref target="STD94"/>'s core requirements are designed to provide well-understood and
easy-to-implement rules while maximizing coverage, i.e., the subset of
CBOR data items that are fully specified by these rules, and also
placing minimal burden on implementations.</t>
      <t><xref section="4.2.2" sectionFormat="of" target="STD94"/> picks up on the interaction of extensibility
(CBOR tags) and deterministic encoding.
CBOR itself uses some tags to increase the range of its basic
generic data types, e.g., tags 2/3 extend the range of basic major
types 0/1 in a seamless way.
<xref section="4.2.2" sectionFormat="of" target="STD94"/> recommends handling this transition the same
way as with the transition between different integer representation
lengths in the basic generic data model, i.e., by mandating the
Preferred Encoding (<xref section="3.4.3" sectionFormat="of" target="STD94"/>).</t>
      <ol spacing="normal" type="1" group="1"><li>
          <t>The CBOR Common Deterministic Encoding Profile (CDE) turns this
recommendation into a mandate: Integers that can be represented by
basic major type 0 and 1 are encoded using the deterministic
encoding defined for them, and integers outside this range are
encoded using the preferred serialization (<xref section="3.4.3" sectionFormat="of" target="STD94"/>) of tag 2 and 3 (i.e., no leading zero bytes).</t>
        </li>
      </ol>
      <t>Most tags capture more specific application semantics and therefore
may be harder to define a deterministic encoding for.
While the deterministic encoding of their tag internals is often
covered by the <em>Core Deterministic Encoding Requirements</em>, the mapping
of diverging platform application data types on the tag contents may
be hard to do in a deterministic way; see <xref section="3.2" sectionFormat="of" target="I-D.bormann-cbor-det"/> for
more explanation as well as examples.
As the CDE would continually
need to address additional issues raised by the registration of new
tags, this specification RECOMMENDS that new tag registrations address
deterministic encoding in the context of this Profile.</t>
      <t>A particularly difficult field to obtain deterministic encoding for is
floating point numbers, partially because they themselves are often
obtained from processes that are not entirely deterministic between platforms.
See <xref section="3.2.2" sectionFormat="of" target="I-D.bormann-cbor-det"/> for more details.
<xref section="4.2.2" sectionFormat="of" target="STD94"/> presents a number of choices, which need to
be made to obtain a CBOR Common Deterministic Encoding Profile (CDE).
Specifically, CDE specifies (in the order of the bullet list at the end of <xref section="4.2.2" sectionFormat="of" target="STD94"/>):</t>
      <ol spacing="normal" type="1" group="1"><li>
          <t>Besides the mandated use of preferred encoding, there is no further
specific action for the two different zero values, e.g., an encoder
that is asked by an application to represent a negative floating
point zero will generate 0xf98000.</t>
        </li>
        <li>
          <t>There is no attempt to mix integers and floating point numbers,
i.e., all floating point values are encoded as the preferred
floating-point representation that accurately represents the value,
independent of whether the floating point value is, mathematically,
an integral value (choice 2 of the second bullet).</t>
        </li>
        <li>
          <t>There is no special handling of NaN values, except that the
preferred encoding rules also apply to NaNs with payloads, using
the canonical encoding of NaNs as defined in <xref target="IEEE754"/>.
Typically, most applications that employ NaNs in their storage and
communication interfaces will only use the NaN with payload 0,
which encodes as 0xf97e00.</t>
        </li>
        <li>
          <t>There is no special handling of subnormal values.</t>
        </li>
        <li>
          <t>The CBOR Common Deterministic Encoding Profile does not presume
equivalence of floating point values with other representation
(e.g., tag 4/5) with basic floating point values.</t>
        </li>
      </ol>
      <t>The main intent here is to preserve the basic generic data model, so
Application Profiles can make their own decisions within that data model.
E.g., an application profile can decide that it only ever allows a
single NaN value that would encoded as 0xf97e00, so a CDE
implementation focusing on this application profile would not need to
provide processing for other NaN values.
Basing the definition of both CDE and Application Profiles on the
generic data model of CBOR also means that there is no effect on CDDL
<xref target="RFC8610"/>, except where the data description documents encoding decision
for byte strings carrying embedded CBOR.</t>
    </section>
    <section anchor="application-profiles">
      <name>Application Profiles</name>
      <t>While the CBOR Common Deterministic Encoding Profile (CDE) provides
for commonality between different applications of CBOR, it is useful
to further constrain the set of data items handled in a group of
applications (<em>exclusions</em>) and to define further mappings
(<em>reductions</em>) that help the applications in such a group get by with
the exclusions.</t>
      <t>For example, the dCBOR Application Profile specifies the use of
Deterministic Encoding as defined in <xref section="4.2" sectionFormat="of" target="STD94"/> (see also
<xref target="I-D.bormann-cbor-det"/> for more information) together with some application-level rules.
See <xref target="I-D.bormann-cbor-dcbor"/> for a definition of the dCBOR Application Profile that
makes use of CDE.</t>
      <t>In general, the application-level rules specified by an Application Profile are
based on the same CBOR Common Deterministic Encoding Profile; they do
not "fork" CBOR.</t>
      <t>An Application Profile implementation produces well-formed,
deterministically encoded CBOR according to <xref target="STD94"/>, and existing
generic CBOR decoders will therefore be able to decode it, including
those that check for Deterministic Encoding.
Similarly, generic CBOR encoders will be able to produce valid CBOR
that can be processed by Application Profile implementations, if
handed Application Profile conforming data model level information
from an application.</t>
      <t>Please note that the separation between standard CBOR processing and
the processing required by the Application Profile is a conceptual
one: Both Application Profile processing and standard CBOR processing
can be combined into a encoder/decoder specifically designed for the
Application Profile.</t>
      <t>An Application Profile is intended to be used in conjunction with an
application, which typically will use a subset of the CBOR generic
data model, which in turn
influences which subset of the application profile is used.
As a result, an Application Profile itself places no direct
requirement on what minimum subset of CBOR is implemented.
For instance, an application profile might define rules for the
processing of floating point values, but there is no requirement that
implementations of that Application Profile support floating point
numbers (or any other kind of number, such as arbitrary precision
integers or 64-bit negative integers) when they are used with
applications that do not use them.</t>
    </section>
    <section anchor="cddl-support">
      <name>CDDL support</name>
      <t><xref target="RFC8610"/> defines control operators to indicate that the contents of a
byte string carries a CBOR-encoded data item (<tt>.cbor</tt>) or a sequence of
CBOR-encoded data items (<tt>.cborseq</tt>).</t>
      <t>CDDL specifications may want to specify that the data items should be
encoded in Common CBOR Deterministic Encoding.
This specification adds two CDDL control operators that can be used
for this.</t>
      <t>The control operators <tt>.cde</tt> and <tt>.cdeseq</tt> are exactly like <tt>.cbor</tt> and
<tt>.cborseq</tt> except that they also require the encoded data item(s) to be
in Common CBOR Deterministic Encoding.</t>
      <t>For example, a byte string of embedded CBOR that is to be encoded
according to CDE can be formalized as:</t>
      <artwork><![CDATA[
leaf = #6.24(bytes .cde any)
]]></artwork>
      <t>More importantly, if the encoded data item also needs to have a
specific structure, this can be expressed by the right hand side
(instead of using the most general CDDL type <tt>any</tt> here).</t>
      <t>(Note that the ...<tt>seq</tt> control operator does not enable specifying
different deterministic encoding requirements for the elements of the
sequence.  If a use case for such a feature becomes known, it could be
added.)</t>
      <t>Obviously, Application Profiles can define similar control operators
that also embody the processing required by the Application Profile,
and are encouraged to do so.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t><cref anchor="to-be-removed">RFC Editor: please replace RFCXXXX with the RFC
number of this RFC and remove this note.</cref></t>
      <t>This document requests IANA to register the contents of
<xref target="tbl-iana-reqs"/> into the registry
"<xref section="CDDL Control Operators" relative="#cddl-control-operators" sectionFormat="bare" target="IANA.cddl"/>" of <xref target="IANA.cddl"/>:</t>
      <table anchor="tbl-iana-reqs">
        <name>New control operators to be registered</name>
        <thead>
          <tr>
            <th align="left">Name</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">.cde</td>
            <td align="left">[RFCXXXX]</td>
          </tr>
          <tr>
            <td align="left">.cdeseq</td>
            <td align="left">[RFCXXXX]</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="STD94">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="IEEE754" target="https://ieeexplore.ieee.org/document/8766229">
          <front>
            <title>IEEE Standard for Floating-Point Arithmetic</title>
            <author>
              <organization>IEEE</organization>
            </author>
            <date/>
          </front>
          <seriesInfo name="IEEE Std" value="754-2019"/>
          <seriesInfo name="DOI" value="10.1109/IEEESTD.2019.8766229"/>
        </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"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <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.cddl" target="https://www.iana.org/assignments/cddl">
          <front>
            <title>Concise Data Definition Language (CDDL)</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </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 anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.bormann-cbor-det">
          <front>
            <title>CBOR: On Deterministic Encoding</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="9" month="August" year="2023"/>
            <abstract>
              <t>   CBOR (STD 94, RFC 8949) defines "Deterministically Encoded CBOR" in
   its Section 4.2.  The present document provides additional
   information about use cases, deployment considerations, and
   implementation choices for Deterministic Encoding.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-det-01"/>
        </reference>
        <reference anchor="I-D.bormann-cbor-dcbor">
          <front>
            <title>Common CBOR Deterministic Encoding and Application Profiles</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="22" month="August" year="2023"/>
            <abstract>
              <t>   CBOR (STD 94, RFC 8949) defines "Deterministically Encoded CBOR" in
   its Section 4.2, providing some flexibility for application specific
   decisions.  To facilitate Deterministic Encoding to be offered as a
   selectable feature of generic encoders, the present document
   discusses a Common CBOR Deterministic Encoding Profile that can be
   shared by a large set of applications with potentially diverging
   detailed requirements.  The concept of Application Profiles is
   layered on top of the Common CBOR Deterministic Encoding Profile and
   can address those more application specific requirements.  The
   document defines the application profile "Gordian dCBOR" as an
   example of an application profile built on the Common CBOR
   Deterministic Encoding Profile.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-dcbor-03"/>
        </reference>
        <reference anchor="I-D.mcnally-deterministic-cbor">
          <front>
            <title>Gordian dCBOR: A Deterministic CBOR Application Profile</title>
            <author fullname="Wolf McNally" initials="W." surname="McNally">
              <organization>Blockchain Commons</organization>
            </author>
            <author fullname="Christopher Allen" initials="C." surname="Allen">
              <organization>Blockchain Commons</organization>
            </author>
            <date day="8" month="August" year="2023"/>
            <abstract>
              <t>   CBOR (RFC 8949) defines "Deterministically Encoded CBOR" in its
   Section 4.2.  The present document provides the application profile
   "dCBOR" that can be used to help achieve interoperable deterministic
   encoding.

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/BlockchainCommons/WIPs-IETF-draft-deterministic-
   cbor.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mcnally-deterministic-cbor-05"/>
        </reference>
      </references>
    </references>
    <?line 313?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>An earlier version of this document was based on the work of Wolf
McNally and Christopher Allen as documented in <xref target="I-D.mcnally-deterministic-cbor"/>; the
parts directly based on this are
now separated out as the dCBOR Application Profile <xref target="I-D.bormann-cbor-dcbor"/>.
Nonetheless, we acknowledge that this work has contributed greatly to
shaping the concept of a CBOR Common Deterministic Encoding and
Application Profiles on top of that.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA5Va63YbR3L+30/RgX4EVIAhQdKyCFu7S5FUludIpCLJZ7Nx
vFJjpgGMOZiZnQtJiKZPHiIPkB95kuRN8iT5qqp7LiAoWz5nV+BM3+r21VfV
Mx6P1fVUHyhVxVVip/rk5eU7fZKtVlmqT21li1WcxmUVh/osDbMoThd6eHJ6
tqPMbFbYaz/h9ExFWZiaFZaICjOvxrOsWJk0HYf4MQ4jO05MZctKhfhnkRXr
qZ6FuSqrwprVVJ+ffXilVIR3UxVmaWnTsi6nuipqqwyGTPXgOM+TGLNjvNYm
jfQ7a5Lxh3hlB+omK64WRVbnch51Zdd4FE2VurZpjTW1dq8HJ1kaxqXVL+PU
FGt9OfvZhhXWyguLXSteX78xcVrZ1KSh5a3ObvFXyTsPaYOdAVZcmTjBgiTg
n2JbzYOsWNDzRVwt6xm9MbNsN7LVQClTV8usoHOM8T+t4xTSnQT6pWiJn4n2
TkxRYrPeGyw81T+k8bUtyrj63/+u9MvCrjDow7+d8wBSo62m+m1WVnMTLvXB
wd7h4R6/C+MKypYJ8iCLsM/peP/5wTdH7kmdVmSSf7a06Zof5sssxbh/Ojwa
H+5PxvuT5+NnB0f7E35pRXiS8E/V55hEVyqlI1c4Jcn5/sPp0eGUB48xEEri
3y+m+t2rk+dHh7Tz+dnZ2bffuFGVKRYkw7Kq8nK6uxtba2/zJCtsQD9pi134
WA0xqt3n3z57tr8vp3eeS4vp9xXMZYpIz7NCv0oyHCddjN9mMKc+LmCYlYUv
87TWJDihqJiW4L/ZEfXcJKUV/doitmWczjMZr/1u0VRDgPH+3uTIvTi9PJ/q
yV4wmewd7dIoKCKg90F7ZtLAs8ke1BJFCenh+OI4oN9wWEW7dPR4Pj4NerEE
h2rUit9bh9D/t4Oc8mnYCjGaJGtapA1tnuTGjbMihinH47E2M7iVCSulfvwb
fk/GP7W/ZHGO/SEE1EeHI5JKk2F3cKx5nNpSD3oIQhsLitiIpw4QBhINVanf
Iwwp9A6D/ZHOi+w6ZrAps5XV88TexrM4gSezYU0LBbrMbRjPnU0j/OYwDfjP
DxlsGNI82PMxOKsyPbM6m89tgXMZYAvMneA0ZpaI9efWVHVBY/TCpnCFUFsW
oyhHulpa7bBDe/dsFGBaNf0OTNVvi2weJxZrmgqxldLByqWhc83WbrGEwgQn
rOg4pouJN3BvnWcAjypmXUcEGAtaHuZGvNqIVyjs3+uY4aCCnkRRy7hsTw+3
z2CaqsiiOoQUJCJAObQ5b9oBYn/icsTL3CxjYA/Oi1OuWZ0YUmU5zaJFfK5o
BCVsJTlNFEGFJS+yQsRvtfDGwZ2BIwu1kqPCwsvsZuvpvC5ndZxUfCY6zOmZ
nNpAuFVuUprxwII0snuY3J18ELEHBxIqqxjBa5V6os+d2mhwN3DUkydwgfSa
jOMT2CntEfPfSn3ARkhbmvIWIufND+8/DEbyr7645N/vzv7lh/N3Z6f0+/2f
j1+/bn4oN+L9ny9/eH3a/mpnnly+eXN2cSqT8VT3HqnBm+O/4g2danD59sP5
5cXxawpPyN/zDJhG4oXyYwG/rzhmVGTLsIhn+ANzXp68/Z//mhzqu7t/ACbs
TyZH9/fuj+eTbw/xx83SprJblsJR5U+oeq2ga2sKWgUuDLvliN0EYYa4LGHe
VC/hV9D60x9JMz9N9fegEZPDP7gHJHDvoddZ7yHr7OGTB5NFiVsebdmm0Wbv
+Yam++c9/mvvb6/3zsPv/5jAC/V48vyPfyAf+j1Q4mNLIOXuSWTze3Iv2NFH
krhy18Wf/vbCyi381K08M6ULcMz/eEJR+8jEd524/ei2lQzNuyIJ3N114D+Y
EF5wUrq/h6nPU02kBM5QAmhkjiQIHJ7RAniZ4iRW35g1+aegMwIbedwgu9jV
SM1qB2zNVANAQeTjWJEohFOLfvq2sMgFhF5egqcBh+fTk+zd2WNq7wr5VPIE
g3Aeh1ekIpU3y1o3pySvXhFhqUCIv+MAcGekSQBFBgeDOFhmMZBYlTXhayk6
hFzjxKYLoL5fMVCvYk7wI0jdZiFsAgwukLDopI3hKKuG2aIwOXC7fZ/NFZl0
GG0m7x2n2IjXA1hR+rhAwpGEVXVdzGeoLmZrvOfMiryk/+8//pMsn2PLMM4T
O9IZdi30tSliQ4MxuXeCRkiP5s6R1JBwZGmw5swSjqTIAjNLA/OliArTl0l2
Q2ph5UkyJJDpO96Bah1vJ2gcr5dlMYI9sMoig/UeOSIkTbNK19heGXK8hLcm
ooNEV4FC8KZYzJmWhQpR6UCbzHla66vcFkwJqRoJwfAlbZKHU+IiK1ZrWOLu
zh39H7EahUVP9wTd8Pp4QbFXNWGgb2ySjOuUyEyVZRGtrawp1+MqG8e0OgN/
UVMaRX4HsKzMbbyKP7MlMjAMs4Dx4sAGQobKeia2V6ynJgRL8RI6x7ymyHCu
IuQGM1GU8TaSGCgOVJ6AvmEfUvAKcTCr4aQU6ro5mpiFxe+acr+DIRxOpa5z
j1acvExjAivVnRBMNRTzmkW5wwfZbuFApINBbTInO5diNppH6oVXw5il5f0K
ky6YPpL9EX5gq55IsnqqdU5i22BBOqQV9ncP5FhRfwGeDAv8DEbPs/Te7oSz
JQLOrKC9kkAw+JI2GtQrETVplDAJptgFiYIaeBIbEvWoIkQ1jlvSw86Yma1u
EHCgmcyd4SWk1wViuOhV00pAqhQ6YZ0MPQWs4MyJdyJ4g4CiHMyqh4Csh618
B8FhcKB7gavuplLvvxhMBvdqEugPDfv8itwJ0p+WrBrFtLmXLCBrxsiaSrF4
LrKXPfLeKIKdnFbpGJDNrvfYySYcFx5e69KJ3nc+mt8gTDeNYuRKoib2pwDm
lRTebFhxH+zQrNDbpM1MVOeaJP4sIm5RMi3g9cys3iz0Pu98oIdivjRDYjF8
xs+2AFlcV7Yko7wh6GLvBq3jgoqTd5MxepzfQrEQWYgyJQYLQa1awR2hV9RE
ACyKM1EDpfrtQIxZgfrLUqoq+9goqU/iguVhdADucr7K5ghCxTjXANUX2U6P
CHwUSES6zIkIUUprajJgW0Ww3pO7hQOPVXQiFF8VgzjEV058Fj6T0O9LhZD9
Dgq0ums+QQAMBABgV8Wqp/6KSWVnCnKkAvrX3hpCV4DqcelLJdQldRLxSeK0
JjagUiuZxBVvXb4Sl2Vtye/istVaYRcxF2oOdlN7o8gdRn3mIO8b0vxeAgqD
WRXdRcqmbnwsC6e+dq0ApmJl7OSiHC55rHNTYEqNqpoL5vmc/qg00lLCwmUz
kIX0C94FWdXcNZpQfVOjKa1XM+4N8OLMAmc2NLVkA1bGCmnj2kpWFheTjSig
i2xF2RmkoLSdpEl8gqrHwtJJe+fxSOxdCpZ7v2n/TQ+Q4BMuVH4xXzgIIx4p
knVoy8jV/M4XyDlXJrIdzZmvxl0c3rsCM1nyPs8VSqCMGJXpqm8szEAowDmS
mMhRxY8odeJtI5falGtnupkn9gP90pZcG0jUMrQTUnLufUjgR4JMwvbAagr6
kyCyxbSwqSw4mG+yTrpkeLw2Sd0mf6QN11qiZdj2MZUJV64FlPbQAlpuMgxZ
xy64bai9P9Ia4pK81U2M+JbKBCxz73Z+9Hxvby9QB5wfGzlMBbaWV7T6Kr5t
Uwoh8SOeThsJ+lPVvjFIJOwlOFP2Ew/N97PGMqvPIVwYhGFNZ0cANK9lJd5D
jgEqm8P4pBIY7WZpuaygQdvOBZlHsDSFpHFlDi9jUhEcRZwbOBSX1/ve6UoQ
AqhEfA9ee9hXI/sAZjccC9MuzEVr8FtuqLnSiVPzQw9zxJuLQrI8l7dYxXf7
zBoyRViNs7n4jCX2kaUkTC/D8TRfPPryx7XgqdCmfto691G34kKjW/nwSeEZ
SbaWtSQSkTVROVAVwLUDXyesVnXqnZTT6dxQjcMOyB0fh4WskK4keo+1L6Ai
3sJnJmf91pKzfvPbWkYFwlcRznJAt2dfzQCjzEoJR25Wr4Q5IbFjRUt1GLbZ
7uYsjZSyGzQYKwwbiq8Pd7/ZkcFCCbeuFkhfcEVAyjdSlfaycwmH1Ytr+xus
GnXUo03RlbmyzojUXGv653yy2IVdu1igzjxMbWuK0oq0ROQ6AnEl1rbgPIQM
2Q21xMlTE9vGgowVftEBCG9yEoCyyOmZ6hd9QNVQSGzm+pTbziTrkiV9jvKV
r8uxPo+LzdoIDdRL0+HhvlXLVRjGcloiSNyqWyFv6qE5mv4Bh/TKGh9Y3Uxi
kSFCblSfnJ6+5sI+ipL7+wY0bngwH4xWlu5rXnU72GW3VBCrKhKT6DjdF3L/
KTRFsaYhFjge+XuZgDqN28RSHSb91dWU77vxKUKeaPhG52Edua3hwh0tqAfI
Ma8TVTX5lugdMULHC1zfqdN2YGgQvDOS7qmQ6e0x/AjFJjW7/kcp+9vawu/j
WHyphh8B0dLip9FsvqVN8s3LAkZIadm5fRc4HNI4BRf32NpdofNX0Iuj3lI2
8BXDNkN06BCNE36iHrHCJuJ3eB4piu9pwfKGVDFw0wXutsESmyvJLIW42UJS
KoOX9KraI44TBHsiacuzULmPdAuajVj6sqCkW0UgVXoWBl+SnrBrsY42td49
Qb/HBHTatgfVxb1mNjU+vsK/XeM2yhShzABCXg18HB1v33IDyHJ/08bNONK1
jUbqQf+1QUcBkDAEB3Y3mDCr2FHaAPaWJoEQeACSVpyVS0vJw01RTQU13XWK
y3NfMa5G1MFKau7fV8us9JeSSxtesR236wQmj1cxV1Mj3dvc35jK5p0tnfCE
urGIprotFF8JsQV/W5egQvFcUcjbrdBMaEEKZlxsUVl8puPnisuwfp6DPd8m
3NRLO01vghwUeqbXEyv9dwj+tsJnGqJIQn2bR65N29TJW4Us+ZqS72BRfSv+
NOMlpaFto/v7PXoY5VQMMJ45fOCeljPVrvOXtjLnS2XfQ3Y1zTZu8QXHL4XH
RNI6mDF4MTBBuJ/rVKCJkcWkXYz2hWblGar4EYGCaVvObWZyvqe6REhWoDxR
Fyl9Z4E0n4bS18aL/irbuISkn4j7InR7VNZJNXoMVlxrmFrYTCWR3wpAr+p0
5QlwbsiLuL9drzpHkO5y2Xo3bUsZIk7JnKF9lISt4sXS3/04FPSm6vjFY/x1
pOmirEtGuudlON4IOFEYhNiaqOo8z4pqYy/l6kY9pISQrh33uoqlZpe3I+1v
u0wxi5HgizUxXkdl2kZnoZ8djjGgLX/9ux2+WHbXaoVzNc69D+uaKPMXNtye
CeS2FezLi6BaGtZcrFFjqcjA6XIqqbPCdf4jWrqDD037jr7YUB0Cxvwr5hs6
svfY43tDXvTwU0C589OO5tRZwhau/FDbZ5R+CoZ+oq6ryNDtrXEbUd+YlEt8
ebVuT9tZqlwyeZ5Z5fdB8LicyA76WBLYcttsoqjk/gcfaIvmOpjP12bitLGv
gR7OgJyR/cQIxz9JYuky3JqwAkIkMYobp0AG3lYzm9W3u3d1vu4aSBuqHZY7
glnqd2qhz+hMl3rztVOXcze9HkFFt7nqJXmqOJyGOE8l8WculaZK/frrrwqp
aa5f6CfPgv3DIXfdNamFAmyHB6g3TOZW5M6wPt8Sz7fLKuqgiolPxLerqNya
y92qAP+tC+t6t+5U9pZK0m7Ll7FoyUkI3F8NCb2s4Shv7x+41eDonLgH34x8
wsE/cb1Lfjy86OXcIAg+sSE3/aKt3G3KFMM5OOW7tsJ4pJ/buzH1TTubuAeS
GZQPwkDrcwQ0YwZ9m8ATHN33n4zN6NII57lKUV5zCRP6kDJk+2AHQHM5u46z
uiR7PFqoOzwvhV09jAbhTGw1+FUWrfXXs4yR4otX16erqaXjrxnKTBARxUNd
UNF2AhyBRV0jHiF6eXrZvFU8lr5qfDDux79V2Xhmx1Bydm2jnx4+4Q9E9VkU
V/RRYi6Eq7CcR+nVv+K/9j4SD+Tj2aYzzQ5JS5Awsqg8I9IWuC9hmi+aSC22
hHH5tNxQpQsG1zHsIDfgv5ol49ikBkf9e4k0wHSpc7OxVoO7O0oRY2eecQtW
Q/brE2e2S/985/vm28/7+4E0rDtPENm/6AsqR/i/X/Q7yw4MTfyCNxze7s2/
/+h081PzCo768NXdVD/pCSLfz74YXNib7QltZhul2Ghwr+STt5kJr7hPEJJv
o75ecJBgfTGFjV4M+ANamgE2aFETxPR9B33D7Eu/riVuTNn/pog+6qZhf8mS
uXoTXjDrI6OeLAucJsuJMxwnieXLK7+OL3PH7ees9/ffCf0xBUwpNIzuZNrN
Ym5PK/pyxJF599mIa1Q/XqC21W2gLsDKMZou4UE2AZiNarpfyLBYS+PYQwy6
hb0W9OUHd3dVuTS5R8bOV5e/6x6Fktyj/Sj/HaapAvX/I1343/gvAAA=

-->

</rfc>
