<?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.19 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-connolly-cfrg-hpke-mlkem-02" category="info" consensus="true" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <front>
    <title abbrev="hpke-mlkem">ML-KEM for HPKE</title>
    <seriesInfo name="Internet-Draft" value="draft-connolly-cfrg-hpke-mlkem-02"/>
    <author fullname="Deirdre Connolly">
      <organization>SandboxAQ</organization>
      <address>
        <email>durumcrustulum@gmail.com</email>
      </address>
    </author>
    <date year="2024" month="October" day="11"/>
    <area>IRTF</area>
    <workgroup>Crypto Forum</workgroup>
    <keyword>post quantum</keyword>
    <keyword>kem</keyword>
    <keyword>PQ</keyword>
    <keyword>hpke</keyword>
    <keyword>hybrid encryption</keyword>
    <abstract>
      <?line 65?>

<t>This memo defines ML-KEM-based ciphersuites for HPKE (<xref target="RFC9180"/>). ML-KEM is
believed to be secure even against adversaries who possess a
cryptographically-relevant quantum computer.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://dconnolly.github.io/draft-connolly-cfrg-hpke-mlkem/draft-connolly-cfrg-hpke-mlkem.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-connolly-cfrg-hpke-mlkem/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Crypto Forum Research Group mailing list (<eref target="mailto:cfrg@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/search/?email_list=cfrg"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/cfrg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/dconnolly/draft-connolly-cfrg-hpke-mlkem"/>.</t>
    </note>
  </front>
  <middle>
    <?line 71?>

<section anchor="intro">
      <name>Introduction</name>
      <section anchor="motivation">
        <name>Motivation</name>
        <t>The final draft for ML-KEM is expected in 2024. For parties that must move to
exclusively post-quantum algorithms, having a pure PQ choice for public-key
hybrid encryption is desireable. HPKE is the leading modern protocol for
public-key encryption, and ML-KEM as a post-quantum IND-CCA2-secure KEM fits
nicely into HPKE's design. Supporting multiple security levels for ML-KEM
allows a spectrum of use cases including settings where NIST PQ security
category 5 is required.</t>
      </section>
      <section anchor="S-notauth">
        <name>Not an authenticated KEM</name>
        <t>ML-KEM is a plain KEM that does not support the static-static key exchange
that allows HPKE based on Diffie-Hellman based KEMs its (optional)
authenticated modes.</t>
      </section>
    </section>
    <section anchor="conventions">
      <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 anchor="usage">
      <name>Usage</name>
      <t><xref target="FIPS203"/> supports two different key formats, but this document only
supports the 64-byte seed <tt>(d, z)</tt>. This format supports stronger binding
properties for ML-KEM than the expanded format that protect against
re-encapsulation attacks and bring the usage of ML-KEM in practice closer to
the generic DHKEM binding properties as defined in <xref target="RFC9180"/>.</t>
      <t>The encapsulation and decapsulation keys are computed, serialized, and
deserialized the same as in <xref target="FIPS203"/> where the decapsulation keys <bcp14>MUST</bcp14> be
in the 64-byte <tt>(d, z)</tt> format. The 'expanded' format where the decapsulation
key is expanded into a variable size based on the parameter set but includes
the hash of the encapsulation key <bcp14>MUST NOT</bcp14> be used.</t>
      <t>We use HKDF-SHA256 and HKDF-SHA512 as the HPKE KDFs and AES-128-GCM and
AES-256-GCM as the AEADs for ML-KEM-512, ML-KEM-768, and ML-KEM-1024.</t>
      <section anchor="S-auth">
        <name>AuthEncap and AuthDecap</name>
        <t>HPKE-ML-KEM is not an authenticated KEM and does not support AuthEncap() or
AuthDecap(), see <xref target="S-notauth"/>.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>HPKE's IND-CCA2 security relies upon the IND-CCA and IND-CCA2 security of the
underlying KEM and AEAD schemes, respectively. ML-KEM is believed to be
IND-CCA secure via multiple analyses.</t>
      <t>The HPKE key schedule is independent of the encapsulated KEM shared secret
ciphertext and public key of the ciphersuite KEM, and dependent on the shared
secret produced by the KEM. If HPKE had committed to the encapsulated shared
secret ciphertext and public key, we wouldn't have to worry about the binding
properties of the ciphersuite KEM's X-BIND-K-CT and X-BIND-K-PK
properties. These computational binding properties for KEMs were formalized
in <xref target="CDM23"/>. <xref target="CDM23"/> describes DHKEM as MAL-BIND-K-PK and MAL-BIND-K-CT
secure as result of the inclusion of the serialized DH public keys (the KEM's
PK and CT) in the DHKEM KDF. MAL-BIND-K-PK and MAL-BIND-K-CT security ensures
that the shared secret 'binds' or uniquely determines the encapsulation key
and the encapsulated shared secret ciphertext, where the adversary is able to
create or modify the key pairs any way they like or has access to
honestly-generated leaked key material.</t>
      <t>ML-KEM as specified in <xref target="FIPS203"/> with the seed key format provides
MAL-BIND-K-CT security and LEAK-BIND-K-PK security
<xref target="KEMMY24"/>. LEAK-BIND-K-PK security is resiliant where the involved key
pairs are output by the honest key generation algorithm of the KEM and then
leaked to the adversary. MAL-BIND-K-CT security strongly binds the shared
secret and the ciphertext even when an adversary can manipulate key material
like the decapsulation key.</t>
      <t>ML-KEM nearly matches the binding properties of HPKE's default KEM generic
construction DHKEM in being MAL-BIND-K-CT and LEAK-BIND-K-PK, only using the
seed key format, the ML-KEM ciphertext is strongly bound by the shared
secret. The encapsulation key is more weakly bound, and protocols integrating
HPKE using ML-KEM even with the seed key format should evaluate whether they
need to strongly bind to the PK elsewhere (outside of ML-KEM or HPKE) to be
resilient against a MAL adversary, or to achieve other tight binding to the
encapsulation key PK to achieve properties like implicit authentication or
session independence.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document requests/registers two new entries to the "HPKE KEM
Identifiers" registry.</t>
      <dl>
        <dt>Value:</dt>
        <dd>
          <t>0x0512 (please)</t>
        </dd>
        <dt>KEM:</dt>
        <dd>
          <t>ML-KEM-512</t>
        </dd>
        <dt>Nsecret:</dt>
        <dd>
          <t>32</t>
        </dd>
        <dt>Nenc:</dt>
        <dd>
          <t>768</t>
        </dd>
        <dt>Npk:</dt>
        <dd>
          <t>800</t>
        </dd>
        <dt>Nsk:</dt>
        <dd>
          <t>1632</t>
        </dd>
        <dt>Auth:</dt>
        <dd>
          <t>no</t>
        </dd>
        <dt>Reference:</dt>
        <dd>
          <t>This document</t>
        </dd>
        <dt>Value:</dt>
        <dd>
          <t>0x0768 (please)</t>
        </dd>
        <dt>KEM:</dt>
        <dd>
          <t>ML-KEM-768</t>
        </dd>
        <dt>Nsecret:</dt>
        <dd>
          <t>32</t>
        </dd>
        <dt>Nenc:</dt>
        <dd>
          <t>1088</t>
        </dd>
        <dt>Npk:</dt>
        <dd>
          <t>1184</t>
        </dd>
        <dt>Nsk:</dt>
        <dd>
          <t>2400</t>
        </dd>
        <dt>Auth:</dt>
        <dd>
          <t>no</t>
        </dd>
        <dt>Reference:</dt>
        <dd>
          <t>This document</t>
        </dd>
        <dt>Value:</dt>
        <dd>
          <t>0x1024 (please)</t>
        </dd>
        <dt>KEM:</dt>
        <dd>
          <t>ML-KEM-1024</t>
        </dd>
        <dt>Nsecret:</dt>
        <dd>
          <t>32</t>
        </dd>
        <dt>Nenc:</dt>
        <dd>
          <t>1568</t>
        </dd>
        <dt>Npk:</dt>
        <dd>
          <t>1568</t>
        </dd>
        <dt>Nsk:</dt>
        <dd>
          <t>3168</t>
        </dd>
        <dt>Auth:</dt>
        <dd>
          <t>no</t>
        </dd>
        <dt>Reference:</dt>
        <dd>
          <t>This document</t>
        </dd>
      </dl>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9180">
          <front>
            <title>Hybrid Public Key Encryption</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="K. Bhargavan" initials="K." surname="Bhargavan"/>
            <author fullname="B. Lipp" initials="B." surname="Lipp"/>
            <author fullname="C. Wood" initials="C." surname="Wood"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document describes a scheme for hybrid public key encryption (HPKE). This scheme provides a variant of public key encryption of arbitrary-sized plaintexts for a recipient public key. It also includes three authenticated variants, including one that authenticates possession of a pre-shared key and two optional ones that authenticate possession of a key encapsulation mechanism (KEM) private key. HPKE works for any combination of an asymmetric KEM, key derivation function (KDF), and authenticated encryption with additional data (AEAD) encryption function. Some authenticated variants may not be supported by all KEMs. We provide instantiations of the scheme using widely used and efficient primitives, such as Elliptic Curve Diffie-Hellman (ECDH) key agreement, HMAC-based key derivation function (HKDF), and SHA2.</t>
              <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9180"/>
          <seriesInfo name="DOI" value="10.17487/RFC9180"/>
        </reference>
        <reference anchor="FIPS203">
          <front>
            <title>Module-Lattice-Based Key-Encapsulation Mechanism Standard</title>
            <author>
              <organization/>
            </author>
            <date month="August" year="2024"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.fips.203"/>
          <refcontent>National Institute of Standards and Technology</refcontent>
        </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="CDM23" target="https://eprint.iacr.org/2023/1933.pdf">
          <front>
            <title>Keeping Up with the KEMs: Stronger Security Notions for KEMs and automated analysis of KEM-based protocols</title>
            <author initials="C." surname="Cremers" fullname="Cas Cremers">
              <organization>CISPA Helmholtz Center for Information Security</organization>
            </author>
            <author initials="A." surname="Dax" fullname="Alexander Dax">
              <organization>CISPA Helmholtz Center for Information Security</organization>
            </author>
            <author initials="N." surname="Medinger" fullname="Niklas Medinger">
              <organization>CISPA Helmholtz Center for Information Security</organization>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="KEMMY24" target="https://eprint.iacr.org/2024/523.pdf">
          <front>
            <title>Unbindable Kemmy Schmidt: ML-KEM is neither MAL-BIND-K-CT nor MAL-BIND-K-PK</title>
            <author initials="S." surname="Schmieg" fullname="Sophie Schmieg">
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 253?>

<section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank Cas Cremers for their input.</t>
    </section>
    <section anchor="change-log">
      <name>Change log</name>
      <ul empty="true">
        <li>
          <t><strong>RFC Editor's Note:</strong> Please remove this section prior to publication
of a final version of this document.</t>
        </li>
      </ul>
      <t>TODO</t>
      <section anchor="since-draft-connolly-cfrg-hpke-mlkem-00">
        <name>Since draft-connolly-cfrg-hpke-mlkem-00</name>
        <t>TODO</t>
      </section>
    </section>
    <section anchor="test-vectors">
      <name>Test Vectors</name>
      <t>This section contains test vectors formatted similary to that which are found
in <xref target="RFC9180"/>, with two changes.  First, we only provide vectors for the
non-authenticated modes of operation.  Secondly, as ML-KEM encapsulation does
not involve an ephemeral keypair, we omit the ikmE, skEm, pkEm entries and
provide an ier entry instead.  The value of ier is the randomness used to
encapsulate, so <tt>ier[0:32]</tt> is the seed that is fed to H in the first step of
ML-KEM encapsulation in <xref target="FIPS203"/>.</t>
      <section anchor="ml-kem-512-hkdf-sha256-aes-128-gcm">
        <name>ML-KEM-512, HKDF-SHA256, AES-128-GCM</name>
        <t>TODO</t>
      </section>
      <section anchor="ml-kem-768-hkdf-sha256-aes-128-gcm">
        <name>ML-KEM-768, HKDF-SHA256, AES-128-GCM</name>
        <t>TODO</t>
      </section>
      <section anchor="ml-kem-1024-hkdf-sha512-aes-256-gcm">
        <name>ML-KEM-1024, HKDF-SHA512, AES-256-GCM</name>
        <t>TODO</t>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA61Z23IbNxJ9x1dg6QdZLg0lUrKjqLJOGFKOVLralLNJpVJr
cAYkUZpbBjOUaJX+Jd+yX7anG5jhUBc7m1o/mIN7o/v06W4oCAJRmjLWB7Jz
dhqcHJ7JaVbIo8uTw45Qk0mhFwdynl/rIImvdSJCVepZViwPpEmnmRBRFqYq
weqoUNMyCLM0zeJ4GYTTYhas1gU7fWGrSWKsNVlaLnOsOP5w9U6kVTLRxYGI
sO+BwHKrU1vZA1kWlRY4e1eoQitIR9M74iYrrmdFVuXoGRbLvMzku6yoko64
1ksMRgdCBjLPbCn/qFRaVgm1SXL8XL6n/0kq/l1OChNJnYa0D8QSC51WkELK
p0+Q0gne+aCtVkU4lz/RPBpIlIkxQLf+wehy2s2KGfXTLPTPyzK3B9vbNI26
zEJ362nb1LHtNtz+XtOUf8fGlv+kzWiPmSnn1QS7RLV2t7+sbFoUQ5+2bB3d
LO66/bom+8o2Xxnuzssk7gihqnKeFaR2HCvltIpjh4iRNkVUaDn0G/AwLqxS
81mRvg/kWKXRJLsdvOcx7bQYVdB2WFS2rOIq+WFGvd0wS4RIsyLBygXb6MO7
4be9/R36fHd8Oe7v7OLIi+Nub6f7Zqe/v31+PL7q0kgXQ0IQXFurh6Oz/u4B
H1vD/0Tr3KQz+TGXN1CRLOdawh+AxXFZZOlMF3Ksw6ow5VKeZ3QBy75CcyQu
IqGJDCdofKUqXlpjZTal4WCiLHrzIiuzMIttx52ripmGiWoL6bwwadk1KiwY
F/2d/u5279vd3W4eTXkFO4mkfm42mud/gf+V8EzIPOzKYaETXdim35llqOyj
ERyHgePx5UAe6TiZZ3H5WQ51WuLOdMXjWnlZ2ujg6WMHXTlStw+OHMT6FgrC
Zu2x/9+h5115piNDJnpw8rm5jnHfR6N/82zY8uzX/t46bj6mE5NGahIDLjpJ
lnIczhMTwbKeUIGDVANR2PtscBr8eHw+Ck6C4ZUEnts9lyd/GRh726/7T+Bi
7+u4GHedfHr2QFXjLJ8b3QyKIAikmtiyUGEpxNUct0h0kslIT02qrb+ch3Zo
clzPVgas0wQQ+fLuznvp/f1md6UOMdGx0QusA7lOtLSkYS3Rk0o1U5CzlCpa
YENVGGx4M8+I0q22cDTBdJ3NCgV5Q0XMVOhYL0D2NeVLsEVewZZddw1YI4q1
EC9gV7hyVIVs2LsXhpr3GHghz+DRC+X7k6ZxT1fXEldWsYtxfL2VZfVtrkPy
eZOyBboULWSuipIkL+eqlAmoTCbZQuO6Qt+GcWXBQvGSw1RQy6xixFWgJLFb
cq4WxERK5qSXy/cynGcm1Hx0Xk1iEwYId+JRBCOBIm0NIibg2HVWMJapLNaK
nACCwBHThoxoT7Has7XZFpOavymcSK3LS5gdDgf9wFuPUwdTWpFCUlwOus1Y
gA0n0ywF8qo8z6AZEqOKS5PH3vjEqbChjm1LvQLGzW7oYEs6RlQgPq2sliFA
Z3ECVMl3srqkTQkpGqIQ9ZPW6q2brEW+Jm0U+o8KKoq6bHhQOS7KTgP/NyET
OF3m7sU4SLOSBoCClcWhhxgY5Tls3yiDMJgprbseq9uWwE8YuB/Jmr0N5wos
JHiRvxtbyPkQzDcy06nRASgpTiCT6+f4AsXKlxnbRcWbYl1aMqml21CsXVA/
xSay3oic1bj23YtwNepxTXJR1mSR/X0cX3W23K88v+DvD4fvPx5/OBzR9/ho
cHrafAg/Y3x08fF0tPparRxenJ0dno/cYvTKtS7RORv82nEQ61xcXh1fnA9O
O+REJTEN0soqgahIoLQnCUPknBea46sVuHFYmIlzvB+Hl//5s7cn7+7+AcLp
93rf3t/7xn7vmz00AAwP6CwFOF0TOlwKlefIvWgXmATIyk2pYvggEG/n2U0q
CVJQ7qvfSDO/H8jvJmHe23vrO+jCa521ztY6WWePex4tdkp8ouuJYxptrvU/
0PS6vINf19q13lud330fg91l0Nv//q0gRH20aqaBnYp+gZq7O59tQake7+CX
G8QFYBeags0IVC58Qo2TqnxgUjKAWC0FCt/sBZNlSVQAc356GW3Jz5ufupJj
jttodZStczEKuvB5ASLLtWPbFjPDx1LeG/xMqUdUb8TOR+QHRqmDjSh0AN5T
ua1iFwJUWarw2vkQOBYUQ3uxDoiDajIgGkV4JGoO48xCKjA8zZzpVBfw+9ER
zfOiypaoyvpAyvhtxcmuc8wH4kCMSLd7oGPLzuFDHXSG442KzWf6xgLykKbH
URLiPB3MB66s6DiTJjxxBEN8ooVJ1yxVG8lrlWyl5Uat641a2c9sTbWaj53O
NhwrlFwg3HMeZSHzihVpPQIqpKf0DFzPoHLsry3re67snAxTPlIdHVX7KdEI
wgcR/7/4Sx6djN4FcMX+6zes5Lr9utcnTdF2zNDodmAYHI6DXn8/+Gl4xkqm
Nha7tlswOByM2lgMsNlW/f3Nm/12XA16lDJwHBqA0g9JdHcOWiPSGYchH4NI
lKCVVD4XuRguD4NSs//LTaS/ojng5SZBBy5+twp39xxMmmoHUcUaZA2qDiR1
YKXisDXiRUTAr5ODVXQvKOWzssq9Qf0MlvXxbGdKUVHREC/Jd+p7kXalDeco
YMAuhebUgNOpVoIp1xNMUR/mU5WFUav8w9VqHD+vanMTaOiMqMIEQx4T6Vzj
P6KvhyjzSrdzuGNERyBGCZcQl/q2ZKldgsX7+vWtjJmWb3kfb05xWnKbCrcp
8QdyVxwyWdbVaVceT53McxURGSSmLN29H0m5vtmzEm7JG42koIqjdKOkVJQj
MLIE5E9qklUuv3mCfp++GdDwS6vmobN+WVU8rfVMIrZmNOVSnae4sym6b4hd
mGqY5AQTG1f2QPDqU9a5gvV8TBVhu+xyDtkuzYRHiqJsEfprzM6sQ29YdUeL
Y0dHLS0iXfMm2rDCHzG82pSeSJ0goJXu10RZOQW9jBVMeKpsocNDTm6QquwG
nFtWqfmjoiQ8IspMuF57khoFHfcMUOQjoGy1CL2uz5jImbQR+jAfG5AESEnN
1KGUQJ8rUxCBIvNS3It031zzzDmVFmFItR12mGeQtURNxxGUpUHhco0f2oZe
V0jd3SYfpywNDGCQNkePAlv9isN5xSorISwtDIWOZxRNSjk9HJy0zNKUEnd3
/hGAIPbMJFdkWBMbKkpXOjPpIosXThbhVYIhuBQAXzu10wCL63XAGUBdHda4
q/mQuF94FXmnb0zTfQ5JLokCPhgyTzBNDYsWSXB1Tnkzx5zG+iFaqFVMzthZ
s5JgEz+ZWKwMmCL5jnkN+Na2qUWuU0tTSk4V+SOt9VkWPxujPHRVvfMsQGGi
aZN1DTy27JYrCODTLskTD8DCVUIdWVrqMLalxaxKG1JeU6RLjB5nJPSYksH0
NzBcvYELAc0jIRc8MzI/WJYZ3snoRXHmeA7hqFzA35ik4orMArvx+xNXPKl2
WFlDQQ0ewBhVuHagfQloUnxv5bz+bWfTR1YHc67U6ocbUvkKIFu0grK7cE4R
WWZODjObl42h3dHisZogTGtpCw+MLJPkIFtTtjMgZuZC0FMRv4c0gTvUnNMc
D84Hj/MZ+Km6949cTZ1CzwTwRLtd6JmxgLSrc1J9A4OW/DDlddZxOeLhmTim
4E1kVNiOdOsKArv8GYagh+cDuXO7Q9nlS+QeSHA3MYaFPLJKF9F57gDEA7vc
gTtwCykkNfNrbu3v7PBs1+q94bmU3HE7zdD6oLkwC935a5cUD0XD5l8QzR/9
rGi9nf22bL3e/l5LuP4ey/q3haNc+QvC0fCXpXu9prm66aXb7XHzf5GO3hYn
qBMJWIPwOs1uYh3NaNC6ZNK9xFqXTTnQMmRUet1+h+eMBkAy9AyBUOCecvix
SMbZTIi38tUrVIjyMDJlVoAFz1G/Hrx6JS9ZGUCae14k+ax2PJgXxnmey0lc
4fWWPFn550zy0CaTad2MMuGL0QVXJWMkPPqrf9zbaVbIKwpeP0MG3Nt7VC0R
1pfEEZL+NIXTeY5nLE47TEJ/Hlt6HVHkNOGcQ+SUCFKsV8pbnv7gk+5hDRmk
fIegWnIGy7TuI337MKaaNEuDJ97QSBXEMaws7IYKKEujeMmvQTXxrrEUlVmC
yiwf2yk46pyqkwIaBodRmHfyIDN3WcB1coiS6/ow2ZI5/m/YhOrJWmBsAxLh
IXpKBf2oCAIRqIjTmZFpgn/cLbA2S1JKoqjA5YfmVUaH0zL5CdN/2znY7f/+
qV7FUYM1TQ8tLigc1RnqlDSJGKFznCWevPx6vuXK2HbN26qut9qVcwtf7bL4
r08nV99qF+tuvi/E/fz/Aohgm9TbHgAA

-->

</rfc>
