<?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.35 (Ruby 2.5.9) -->
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-pquip-pqc-engineers-14" category="info" consensus="true" submissionType="IETF" xml:lang="en" number="9958" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <link href="https://datatracker.ietf.org/doc/draft-ietf-pquip-pqc-engineers-14" rel="prev"/>
  <front>
    <title abbrev="PQC for Engineers">Post-Quantum Cryptography for Engineers</title>
    <seriesInfo name="RFC" value="9958"/>
    <author fullname="Aritra Banerjee">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>London</city>
          <country>United Kingdom</country>
        </postal>
        <email>aritra.banerjee@nokia.com</email>
      </address>
    </author>
    <author fullname="Tirumaleswar Reddy.K">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <country>India</country>
        </postal>
        <email>k.tirumaleswar_reddy@nokia.com</email>
      </address>
    </author>
    <author fullname="Dimitrios Schoinianakis">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Athens</city>
          <country>Greece</country>
        </postal>
        <email>dimitrios.schoinianakis@nokia-bell-labs.com</email>
      </address>
    </author>
    <author fullname="Timothy Hollebeek">
      <organization>DigiCert</organization>
      <address>
        <postal>
          <city>Pittsburgh</city>
          <region>PA</region>
          <country>United States of America</country>
        </postal>
        <email>tim.hollebeek@digicert.com</email>
      </address>
    </author>
    <author initials="M." surname="Ounsworth" fullname="Mike Ounsworth">
      <organization abbrev="Entrust">Entrust Limited</organization>
      <address>
        <postal>
          <street>2500 Solandt Road, Suite 100</street>
          <city>Ottawa, Ontario</city>
          <code>K2K 3G5</code>
          <country>Canada</country>
        </postal>
        <email>mike@ounsworth.ca</email>
      </address>
    </author>
    <date year="2026" month="May"/>
    <area>SEC</area>
    <workgroup>pquip</workgroup>
    <keyword>PQC</keyword>
    <abstract>
      <?line 638?>

<!-- Status of I-Ds in references section:

[I-D.bonnell-lamps-chameleon-certs]
draft-bonnell-lamps-chameleon-certs-07
IESG State: I-D Exists as of 11/26/25

[I-D.connolly-cfrg-xwing-kem]
draft-connolly-cfrg-xwing-kem-09
IESG State: I-D Exists as of 11/26/25

[I-D.hale-mls-combiner]
draft-hale-mls-combiner-01
Replaced by draft-ietf-mls-combiner

[I-D.ietf-hpke-pq]
draft-ietf-hpke-pq-03
IESG State: I-D Exists as of 11/26/25

[I-D.ietf-lamps-pq-composite-sigs]
draft-ietf-lamps-pq-composite-sigs-13
IESG state: Publication Requested as of 11/26/25

[I-D.ietf-pquip-hybrid-signature-spectrums]
draft-ietf-pquip-hybrid-signature-spectrums-07
IESG state: RFC Ed Queue as of 11/26/25

[I-D.ietf-pquip-pqc-hsm-constrained]
draft-ietf-pquip-pqc-hsm-constrained-02
IESG State: I-D Exists as of 11/26/25

[I-D.ietf-sshm-ntruprime-ssh]
draft-ietf-sshm-ntruprime-ssh-06
Published as RFC 9941

[I-D.ietf-tls-hybrid-design]
draft-ietf-tls-hybrid-design-16
IESG state: RFC Ed Queue as of 11/26/25

[I-D.irtf-cfrg-bbs-signatures]
draft-irtf-cfrg-bbs-signatures-09
IESG State: I-D Exists as of 11/26/25

[I-D.irtf-cfrg-hybrid-kems]
draft-irtf-cfrg-hybrid-kems-07
IESG State: I-D Exists as of 11/26/25

[I-D.ounsworth-cfrg-kem-combiners]
draft-ounsworth-cfrg-kem-combiners-05
IESG State: Expired as of 11/26/25
-->

<!-- [rfced] FYI - We will do the following when we convert the file to RFCXML:

a) Correct author names in reference entry for draft-ietf-pquip-pqc-hsm-constrained.

Current:
   [I-D.ietf-pquip-pqc-hsm-constrained]
              Reddy.K, T., Wing, D., S, B., and K. Kwiatkowski,
              "Adapting Constrained Devices for Post-Quantum
              Cryptography", Work in Progress, Internet-Draft, draft-
              ietf-pquip-pqc-hsm-constrained-02, 18 October 2025,
              <https://datatracker.ietf.org/doc/html/draft-ietf-pquip-
              pqc-hsm-constrained-02>.

b) Update the document to include <sup> elements (per A48 mail).

c) Update draft-hale-mls-combiner-01 to draft-ietf-mls-combiner-02 since -01 was replaced (note title change).
-->

<!-- XML for reference update (draft-ietf-pquip-pqc-hsm-constrained):

<reference anchor="I-D.ietf-pquip-pqc-hsm-constrained" target="https://datatracker.ietf.org/doc/html/draft-ietf-pquip-pqc-hsm-constrained-02">
   <front>
      <title>Adapting Constrained Devices for Post-Quantum Cryptography</title>
      <author initials="T." surname="Reddy" fullname="Tirumaleswar Reddy.K">
         <organization>Nokia</organization>
      </author>
      <author initials="D." surname="Wing" fullname="Dan Wing">
         <organization>Citrix</organization>
      </author>
      <author initials="B." surname="Salter" fullname="Ben Salter">
         <organization>UK National Cyber Security Centre</organization>
      </author>
      <author initials="K." surname="Kwiatkowski" fullname="Kris Kwiatkowski">
         <organization>PQShield</organization>
      </author>
      <date month="October" day="18" year="2025" />
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-pquip-pqc-hsm-constrained-02" />
</reference>
-
-->

<t>The advent of a cryptographically relevant quantum computer (CRQC) would render state-of-the-art, traditional public key algorithms deployed today obsolete, as the mathematical assumptions underpinning their security would no longer hold. To address this, protocols and infrastructure must transition to post-quantum algorithms, which are designed to resist both traditional and quantum attacks. This document explains why engineers need to be aware of and understand post-quantum cryptography (PQC), and it details the impact of CRQCs on existing systems and the challenges involved in transitioning to post-quantum algorithms. Unlike previous cryptographic updates, this shift may require significant protocol redesign due to the unique properties of post-quantum algorithms.</t>
    </abstract>
  </front>
  <middle>
    <?line 738?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Quantum computing is no longer just a theoretical concept in computational science and physics; it is now an active area of research with practical implications. Considerable research efforts and enormous corporate and government funding for the development of practical quantum computing systems are currently being invested. At the time this document is published, cryptographically relevant quantum computers (CRQCs) that can break widely used asymmetric algorithms (also known as public key algorithms) are not yet available. However, there is ongoing research and development in the field of quantum computing, with the goal of building more powerful and scalable quantum computers.</t>
      <t>One common myth is that quantum computers are faster than conventional CPUs and GPUs in all areas. This is not the case; much as GPUs outperform general-purpose CPUs only on specific types of problems, quantum computers also have a niche set of problems on which they excel. Unfortunately for cryptographers, integer factorization and discrete logarithms, the mathematical problems underpinning much of classical public key cryptography, happen to fall within the niche in which quantum computers are expected to excel. As quantum technology advances, there is the potential for future quantum computers to have a significant impact on current cryptographic systems. Predicting the date of emergence of a CRQC is a challenging task, and there is ongoing uncertainty regarding when they will become practically feasible <xref target="CRQCThreat"/>.</t>
      <t>Extensive research has produced several post-quantum cryptographic algorithms that offer the potential to ensure cryptography's survival in the quantum computing era. However, transitioning to a post-quantum infrastructure is not a straightforward task, and there are numerous challenges to overcome. It requires a combination of engineering efforts, proactive assessment and evaluation of available technologies, and a careful approach to product development and deployment.</t>
      <t>PQC is sometimes referred to as "quantum-proof", "quantum-safe", or "quantum-resistant". It is the development of cryptographic algorithms designed to secure communication and data in a world where quantum computers are powerful enough to break traditional cryptographic systems, such as RSA (Rivest-Shamir-Adleman) and ECC (Elliptic Curve Cryptography). PQC algorithms are intended to be resistant to attacks by quantum computers, which use quantum-mechanical phenomena to solve mathematical problems that are infeasible for classical computers.</t>
      <t>As the threat of CRQCs draws nearer, engineers responsible for designing, maintaining, and securing cryptographic systems must prepare for the significant changes that the existence of CRQCs will bring. Engineers need to understand how to implement post-quantum algorithms in applications, how to evaluate the trade-offs between security and performance, and how to ensure backward compatibility with current systems where needed. This is not merely a one-for-one replacement of algorithms; in many cases, the shift to PQC will involve redesigning protocols and infrastructure to accommodate the significant differences in resource utilization and key sizes between traditional and PQC algorithms. Due to the wide-ranging nature of these impacts, discussions of protocol changes are integrated throughout this document rather than being confined to a single section.</t>
      <t>This document aims to provide general guidance to engineers working on cryptographic libraries, network security, and infrastructure development, where long-term security planning is crucial. The document covers topics such as selecting appropriate PQC algorithms and understanding the differences between PQC Key Encapsulation Mechanisms (KEMs) and traditional Diffie-Hellman (DH) and RSA-style key exchanges, and it provides insights into expected differences in keys, ciphertext, signature sizes, and processing times between PQC and traditional algorithms. Additionally, it discusses the potential threat to symmetric cryptography and hash functions from CRQCs.</t>
      <t>It is important to remember that asymmetric algorithms (also known as public key algorithms) are largely used for secure communications between organizations or endpoints that may not have previously interacted, so a significant amount of coordination between organizations, and within and between ecosystems, needs to be taken into account. Such transitions are some of the most complicated in the tech industry and will require staged migrations in which upgraded agents need to coexist and communicate with non-upgraded agents at a scale never before undertaken.</t>
      <t>The National Security Agency (NSA) of the United States released an article on future PQC algorithm requirements for US national security systems <xref target="CNSA2-0"/> based on the need to protect against deployments of CRQCs in the future. The German Federal Office for Information Security (BSI) has also released a PQC migration and recommendations document <xref target="BSI-PQC"/> that largely aligns with United States National Institute of Standards and Technology (NIST) and NSA guidance but differs in aspects such as specific PQC algorithm profiles.</t>
      <t>CRQCs pose a threat to both symmetric and asymmetric cryptographic schemes. However, the threat to asymmetric cryptography is significantly greater due to Shor's algorithm <xref target="Shors"/>, which can break widely used public key schemes like RSA and ECC. Symmetric cryptography and hash functions face a lower risk from Grover's algorithm <xref target="Grovers"/>, although the impact is less severe and can typically be mitigated by doubling key and digest lengths where the risk applies. It is crucial for the reader to understand that when "PQC" is mentioned in the document, it means asymmetric cryptography (or public key cryptography) and not any symmetric algorithms based on stream ciphers, block ciphers, hash functions, Message Authentication Codes (MACs), etc., which are less vulnerable to quantum computers. This document does not cover topics such as when traditional algorithms might become vulnerable (for that, see documents such as <xref target="QC-DNS"/> and others).</t>
      <t>This document does not cover unrelated technologies like quantum key distribution (QKD) or quantum key generation, which use quantum hardware to exploit quantum effects to protect communications and generate keys, respectively. PQC is based on conventional math (not on quantum mechanics) and software, and it can be run on any general-purpose computer.</t>
      <t>This document does not go into the deep mathematics or technical specification of the PQC algorithms but rather provides an overview to engineers on the current threat landscape and the relevant algorithms designed to help prevent those threats. Also, the cryptographic and algorithmic guidance given in this document should be taken as non-authoritative if it conflicts with emerging and evolving guidance from the IRTF's Crypto Forum Research Group (CFRG).</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <dl>
        <dt>Quantum computer:</dt>
        <dd>
          <t>A computer that performs computations using quantum-mechanical phenomena such as superposition and entanglement.</t>
        </dd>
        <dt>Physical qubit:</dt>
        <dd>
          <t>The basic physical unit in a quantum computer, which is prone to noise and errors.</t>
        </dd>
        <dt>Logical qubit:</dt>
        <dd>
          <t>A fault-tolerant qubit constructed from multiple physical qubits using quantum error correction; it is the effective unit for reliable quantum computation.</t>
        </dd>
        <dt>Post-Quantum Cryptography (PQC):</dt>
        <dd>
          <t>Cryptographic algorithms designed to be secure against quantum and classical attacks.</t>
        </dd>
        <dt>Cryptographically Relevant Quantum Computer (CRQC):</dt>
        <dd>
          <t>A quantum computer with sufficient logical qubits to break traditional asymmetric cryptographic algorithms (e.g., RSA or ECC) within a practical timeframe.</t>
        </dd>
        <dt>Public Key Cryptography (also called Asymmetric Cryptography):</dt>
        <dd>
          <t>A class of cryptographic algorithms in which separate keys are used for encryption and decryption or for signing and verification. Throughout this document, the terms Public Key Cryptography and Asymmetric Cryptography are used interchangeably.</t>
        </dd>
      </dl>
      <t>There is ongoing discussion about whether to use the term "post-quantum", "quantum ready", "quantum resistant", or "quantum secure" to describe algorithms that resist CRQCs, and a consensus has not yet been reached. NIST has coined the term "post-quantum" to refer to the algorithms that participated in its competition-like selection process; in this context, the term can be interpreted to mean "the set of algorithms that are designed to  still be relevant after quantum computers exist" and not a statement about their security. "Quantum resistant" or "quantum secure" is obviously the goal of these algorithms; however, some people have raised concerns that labeling a class of algorithms as "quantum resistant" or "quantum secure" could lead to confusion if one or more of those algorithms are later found to be insecure or to not resist quantum computers as much as theory predicted. "Quantum ready" is often used to refer to a solution -- device, appliance, or software stack -- that has reached maturity with regard to integration of these new cryptographic algorithms. That said, the authors recognize that there is great variability in how these terms are used. This document uses these terms interchangeably to refer to such algorithms.</t>
      <t>In this document, the terms "current", "state-of-the-art", and "ongoing" refer to work, research, investigations, deployments, or developments that are applicable at the time of publication.</t>
    </section>
    <section anchor="threat-of-crqcs-on-cryptography">
      <name>Threat of CRQCs on Cryptography</name>
      <t>When considering the security risks associated with the ability of a quantum computer to attack traditional cryptography, it is important to distinguish between the impact on symmetric algorithms and public key ones. Dr. Peter Shor and Dr. Lov Grover developed two algorithms that changed the way the world thinks of security under the presence of a CRQC.</t>
      <t>Quantum computers are, by their nature, hybrids of classical and quantum computational units. For example, Shor's algorithm consists of a combination of quantum and classical computational steps. Thus, the term "quantum adversary" should be thought of as "quantum-enhanced adversary", meaning they have access to both classical and quantum computational techniques.</t>
      <t>Although large-scale quantum computers do not yet exist to experiment on, the theoretical properties of quantum computation are very well understood.  This allows engineers and researchers to reason about the upper limits of quantum-enhanced computation and to design cryptographic algorithms that are resistant to any conceivable form of quantum cryptanalysis.</t>
      <section anchor="symmetric">
        <name>Symmetric Cryptography</name>
        <t>For unstructured data such as symmetric encrypted data or cryptographic hashes, although CRQCs can search for specific solutions across all possible input combinations (e.g., Grover's algorithm), no quantum algorithm is known to break the underlying security properties of these classes of algorithms. Symmetric-key cryptography, which includes keyed primitives such as block ciphers (e.g., AES) and message authentication mechanisms (e.g., HMAC-SHA256), relies on secret keys shared between the sender and receiver and remains secure even in a post-quantum world. Symmetric cryptography also includes hash functions (e.g., SHA-256) that are used for secure message digesting without any shared key material. Hashed Message Authentication Code (HMAC) is a specific construction that utilizes a cryptographic hash function and a secret key shared between the sender and receiver to produce a message authentication code.</t>
        <t>Grover's algorithm is a quantum search algorithm that provides a theoretical quadratic speedup for searching an unstructured database, compared to traditional search algorithms.
This has led to the common misconception that symmetric key lengths need to be doubled for quantum security. When you consider the mapping of hash values to their corresponding hash inputs (also known as pre-image) or of ciphertext blocks to the corresponding plaintext blocks as an unstructured database, then Grover's algorithm theoretically requires doubling the key sizes of the symmetric algorithms that are currently deployed at the time of publication to counter the quadratic speedup and maintain the current security level. This is because Grover's algorithm reduces the amount of operations to break 128-bit symmetric cryptography to 2^{64} quantum operations, which might sound computationally feasible. However, quantum operations are fundamentally different from classical ones, as 2^{64} classical operations can be efficiently parallelized but 2^{64} quantum operations must be performed serially, making them infeasible on practical quantum computers.</t>
        <t>Grover's algorithm is highly non-parallelizable and even if one deploys 2^c computational units in parallel to brute-force a key using Grover's algorithm, it will complete in time proportional to 2^{(128-c)/2}, or, put simply, using 256 quantum computers will only reduce runtime by a factor of 16, 1024 quantum computers will only reduce runtime by a factor of 32, and so forth (see <xref target="NIST"/> and <xref target="Cloudflare"/>). Due to this inherent limitation, the general expert consensus is that AES-128 remains secure in practice and key sizes do not necessarily need to be doubled.</t>
        <t>It would be natural to ask whether future research will develop a superior algorithm that could outperform Grover's algorithm in the general case. However, Christof Zalka has shown that Grover's algorithm achieves the best possible complexity for this type of search, meaning no significantly faster quantum approach is expected <xref target="Grover-Search"/>.</t>
        <t>Finally, in their evaluation criteria for PQC, NIST is assessing the security levels of proposed post-quantum algorithms by comparing them against the equivalent traditional and quantum security of AES-128, AES-192, and AES-256. This indicates that NIST is confident in the stable security properties of AES, even in the presence of both traditional and quantum attacks. As a result, 128-bit algorithms can be considered quantum-safe for the foreseeable future. However, for compliance purposes, some organizations, such as the French National Agency for the Security of Information Systems (ANSSI) <xref target="ANSSI"/> and the National Security Agency (NSA) (CNSA 2.0) <xref target="CNSA2-0"/>, recommend the use of AES-256.</t>
      </section>
      <section anchor="asymmetric-cryptography">
        <name>Asymmetric Cryptography</name>
        <t>"Shor's algorithm" efficiently solves the integer factorization problem (and the related discrete logarithm problem), which underpin the foundations of the vast majority of public key cryptography that the world uses today. This implies that, if a CRQC is developed, today's public key algorithms (e.g., RSA, Diffie-Hellman, and ECC, as well as less commonly used variants such as ElGamal <xref target="RFC6090"/> and Schnorr signatures <xref target="RFC8235"/>) and protocols would need to be replaced by algorithms and protocols that can offer cryptanalytic resistance against CRQCs. Note that Shor's algorithm cannot run solely on a classical computer; it requires a CRQC.</t>
        <t>For example, studies show that, if a CRQC existed, it could break RSA-2048 in hours or even seconds depending on assumptions about error correction <xref target="RSAShor"/> <xref target="RSA8HRS"/> <xref target="RSA10SC"/>. While such machines are purely theoretical at the time of writing, this illustrates the eventual vulnerability of RSA to CRQCs.</t>
        <t>For structured data such as public keys and signatures, CRQCs can fully solve the underlying hard problems used in traditional cryptography (see Shor's algorithm). Because an increase in the size of the key pair would not provide a secure solution (short of RSA keys that are many gigabytes in size <xref target="PQRSA"/>), a complete replacement of the algorithm is needed. Therefore, post-quantum public key cryptography must rely on problems that are different from the ones used in traditional public key cryptography (i.e., the integer factorization problem, the finite-field discrete logarithm problem, and the elliptic-curve discrete logarithm problem).</t>
      </section>
      <section anchor="quantum-side-channel-attacks">
        <name>Quantum Side-Channel Attacks</name>
        <t>Cryptographic side-channel attacks exploit physical implementations (such as timing, power consumption, or electromagnetic leakage) to recover secret keys.</t>
        <t>The field of cryptographic side-channel attacks potentially stands to gain a boost in attacker power once cryptanalytic techniques can be enhanced with quantum computation techniques <xref target="QuantSide"/>. While a full discussion of quantum side-channel techniques is beyond the scope of this document, implementers of cryptographic hardware should be aware that current best practices for side-channel resistance may not be sufficient against quantum adversaries.</t>
      </section>
    </section>
    <section anchor="traditional-cryptographic-primitives-that-could-be-replaced-by-pqc">
      <name>Traditional Cryptographic Primitives That Could Be Replaced by PQC</name>
      <t>Any asymmetric cryptographic algorithm based on integer factorization, finite field discrete logarithms, or elliptic-curve discrete logarithms will be vulnerable to attacks using Shor's algorithm on a CRQC. This document focuses on the principal functions of asymmetric cryptography:</t>
      <dl>
        <dt>Key agreement and key transport:</dt>
        <dd>
          <t>Key agreement schemes, typically referred to as Diffie-Hellman (DH) or Elliptic Curve Diffie-Hellman (ECDH), as well as key transport, typically using RSA encryption, are used to establish a shared cryptographic key for secure communication. They are one of the mechanisms that can be replaced by PQC, as they are based on existing public key cryptography and are therefore vulnerable to Shor's algorithm. A CRQC can employ Shor's algorithm to efficiently find the prime factors of a large public key (in the case of RSA), which, in turn, can be exploited to derive the private key. In the case of DH, a CRQC has the potential to calculate the discrete logarithm of the (short- or long-term) DH public key. This, in turn, would reveal the secret required to derive the symmetric encryption key.</t>
        </dd>
        <dt>Digital signatures:</dt>
        <dd>
          <t>Digital signature schemes are used to authenticate the identity of a sender, detect unauthorized modifications to data, and underpin trust in a system. Similar to key agreement, signatures also depend on a public-private key pair based on the same mathematics as for key agreement and key transport. Because of this, a break in existing public key cryptography will also affect traditional digital signatures, hence the importance of developing post-quantum digital signatures.</t>
        </dd>
        <dt>Boneh-Boyen-Shacham (BBS) signatures:</dt>
        <dd>
          <t>BBS signatures are a privacy-preserving signature scheme that offers zero-knowledge proof-like properties by allowing selective disclosure of specific signed attributes without revealing the entire set of signed data. The security of BBS signatures relies on the hardness of the discrete logarithm problem, making them vulnerable to Shor's algorithm. A CRQC can break the data authenticity security property of BBS but not the data confidentiality (<xref section="6.9" sectionFormat="of" target="I-D.irtf-cfrg-bbs-signatures"/>).</t>
        </dd>
        <dt>Content encryption:</dt>
        <dd>
          <t>Content encryption typically refers to the encryption of the data using symmetric key algorithms, such as AES, to ensure confidentiality. The threat to symmetric cryptography is discussed in <xref target="symmetric"/>.</t>
        </dd>
      </dl>
    </section>
    <section anchor="nist-pqc-algorithms">
      <name>NIST PQC Algorithms</name>
      <t>At the time of writing, NIST has standardized three PQC algorithms, with more expected to be standardized in the future (see <xref target="NISTFINAL"/>). These algorithms are not necessarily drop-in replacements for traditional asymmetric cryptographic algorithms. For instance, RSA <xref target="RSA"/> and ECC <xref target="RFC6090"/> can be used as both a KEM and a signature scheme, whereas there is currently no post-quantum algorithm that can perform both functions. When upgrading protocols, it is important to replace the existing use of traditional algorithms with either a PQC KEM or a PQC signature method, depending on how the traditional algorithm was previously being used. Additionally, KEMs, as described in <xref target="KEMs"/>, present a different API than either key agreement or key transport primitives. As a result, they may require protocol-level or application-level changes in order to be incorporated.</t>
      <section anchor="nist-candidates-selected-for-standardization">
        <name>NIST Candidates Selected for Standardization</name>
        <!-- [rfced] In Sections 5.1.1, 5.1.2, and 6.1, may we update the lists to
better indicate the term being defined? We suggest placing the term rather
than the citation before the colon. See the suggested text in a), b), and c)
below.

We also have some additional questions regarding Section 5.1.2:

- How should "FN" in "FN-DSA" be expanded? Perhaps as "Fast-Fourier Transform
over NTRU-Lattice-Based Digital Signature Algorithm"?
- The FN-DSA entry includes pointers to Sections 8.1 and 10.2, but ML-DSA and
SLH-DSA are also mentioned in those setions. Should the pointers to Sections
8.1 and 10.2 apply to all entries?
- We do not see "FN-DSA" mentioned in the URL listed for [FN-DSA]. Please
review. Also, should this reference be to FIPS 206, or should the relationship
between FIPS 206 and Fast Fourier/Falcon be explained for the reader? It seems
that FIPS 206 is still in draft form.

a) Section 5.1.1

Original
   *  [ML-KEM]: Module-Lattice-based Key-Encapsulation Mechanism
      Standard (FIPS-203).

   *  [HQC]: Hamming Quasi-Cyclic coding algorithm which is based on the
      hardness of the syndrome decoding problem for quasi-cyclic
      concatenated Reed-Muller and Reed-Solomon (RMRS) codes in the
      Hamming metric.  Reed-Muller (RM) codes are a class of block
      error-correcting codes commonly used in wireless and deep-space
      communications, while Reed-Solomon (RS) codes are widely used to
      detect and correct multiple-bit errors.  HQC has been selected as
      part of the NIST post-quantum cryptography project but has not yet
      been standardized.

Perhaps:
   ML-KEM:  Module-Lattice-Based Key Encapsulation Mechanism. See
      FIPS 203 [ML-DSA].

   HQC:  Hamming Quasi-Cyclic. See [HQC]. The coding algorithm based on the
      hardness of the syndrome decoding problem for quasi-cyclic
      concatenated Reed-Muller and Reed-Solomon (RMRS) codes in the
      Hamming metric.  Reed-Muller (RM) codes are a class of block
      error-correcting codes commonly used in wireless and deep-space
      communications, while Reed-Solomon (RS) codes are widely used to
      detect and correct multiple-bit errors.  HQC has been selected as
      part of the NIST post-quantum cryptography project but has not yet
      been standardized.


b) Section 5.1.2

Original:
    *  [ML-DSA]: Module-Lattice-Based Digital Signature Standard (FIPS-
       204).

    *  [SLH-DSA]: Stateless Hash-Based Digital Signature (FIPS-205).

    *  [FN-DSA]: FN-DSA is a lattice signature scheme (FIPS-206)
       (Section 8.1 and Section 10.2).

Perhaps:
   ML-DSA:  Module-Lattice-Based Digital Signature Algorithm. See FIPS
      204 [ML-DSA].

   SLH-DSA: Stateless Hash-Based Digital Signature Algorithm. See FIPS
      205 [SLH-DSA].

   FN-DSA:  Fast-Fourier Transform over NTRU-Lattice-Based Digital
      Signature Algorithm. See FIPS 206 [FN-DSA].

   For more information about these, see Sections 8.1 and 10.2.


c) Section 6.1

Original:
   *  [FrodoKEM]: Key Encapsulation mechanism based on the hardness of
      learning with errors in algebraically unstructured lattices.

   *  [ClassicMcEliece]: Based on the hardness of syndrome decoding of
      Goppa codes.  Goppa codes are a class of error-correcting codes
      that can correct a certain number of errors in a transmitted
      message.  The decoding problem involves recovering the original
      message from the received noisy codeword.

   *  [NTRU]: Key encapsulation mechanism based on the "N-th degree
      Truncated polynomial Ring Units" (NTRU) lattices.  Variants
      include Streamlined NTRU Prime (sntrup761), which is leveraged for
      use in SSH [I-D.ietf-sshm-ntruprime-ssh].

Perhaps:
   FrodoKEM:  KEM based on the hardness of learning with errors in
      algebraically unstructured lattices. See [FrodoKEM].

   Classic McEliece:  KEM based on the hardness of syndrome decoding of
      Goppa codes.  Goppa codes are a class of error-correcting codes
      that can correct a certain number of errors in a transmitted
      message.  The decoding problem involves recovering the original
      message from the received noisy codeword. See [ClassicMcEliece].

   NTRU:  KEM based on the "N-th degree Truncated polynomial Ring
      Units" (NTRU) lattices.  Variants include Streamlined NTRU Prime
      (sntrup761), which is leveraged for use in SSH [RFC9941]. See [NTRU].
-->

<section anchor="pqc-key-encapsulation-mechanisms-kems">
          <name>PQC Key Encapsulation Mechanisms (KEMs)</name>
          <dl>
            <dt>ML-KEM:</dt>
            <dd>
              <t>Module-Lattice-Based Key-Encapsulation Mechanism. See FIPS 203 <xref target="ML-KEM"/>.</t>
            </dd>
            <dt>HQC:</dt>
            <dd>
              <t>Hamming Quasi-Cyclic. See <xref target="HQC"/>. The coding algorithm based on the hardness of the syndrome decoding problem for quasi-cyclic concatenated Reed-Muller and Reed-Solomon (RMRS) codes in the Hamming metric. Reed-Muller (RM) codes are a class of block error-correcting codes commonly used in wireless and deep-space communications, while Reed-Solomon (RS) codes are widely used to detect and correct multiple-bit errors. HQC has been selected as part of the NIST post-quantum cryptography project but has not yet been standardized.</t>
            </dd>
          </dl>
        </section>
        <section anchor="pqc-signatures">
          <name>PQC Signatures</name>
          <dl>
            <dt>ML-DSA:</dt>
            <dd>
              <t>Module-Lattice-Based Digital Signature Algorithm. See FIPS 204 <xref target="ML-DSA"/>.</t>
            </dd>
            <dt>SLH-DSA:</dt>
            <dd>
              <t>Stateless Hash-Based Digital Signature Algorithm. See FIPS 205 <xref target="SLH-DSA"/>.</t>
            </dd>
            <dt>FN-DSA:</dt>
            <dd>
              <t>Fast-Fourier Transform over NTRU-Lattice-Based Digital Signature Algorithm. See <xref target="FN-DSA"/>; note that, at the time of publication, FIPS 206 has not been published.</t>
            </dd>
          </dl>
          <t>For more information about these, see Sections <xref target="lattice-based" format="counter"/>, <xref target="hash-based" format="counter"/>, and <xref target="sig-scheme" format="counter"/>.</t>
        </section>
      </section>
    </section>
    <section anchor="iso-candidates-selected-for-standardization">
      <name>ISO Candidates Selected for Standardization</name>
      <t>At the time of writing, ISO has selected three PQC KEM algorithms as candidates for standardization; these are mentioned in the following subsection.</t>
      <section anchor="pqc-key-encapsulation-mechanisms-kems-1">
        <name>PQC Key Encapsulation Mechanisms (KEMs)</name>
        <dl>
          <dt>FrodoKEM:</dt>
          <dd>
            <t>KEM based on the hardness of learning with errors in algebraically unstructured lattices. See <xref target="FrodoKEM"/>.</t>
          </dd>
          <dt>ClassicMcEliece:</dt>
          <dd>
            <t>KEM based on the hardness of syndrome decoding of Goppa codes. Goppa codes are a class of error-correcting codes that can correct a certain number of errors in a transmitted message. The decoding problem involves recovering the original message from the received noisy codeword. See <xref target="ClassicMcEliece"/>.</t>
          </dd>
          <dt>NTRU:</dt>
          <dd>
            <t>KEM based on the "N-th degree Truncated polynomial Ring Units" (NTRU) lattices. Variants include Streamlined NTRU Prime (sntrup761), which is leveraged for use in SSH <xref target="RFC9941"/>. See <xref target="NTRU"/>.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="timeline">
      <name>Timeline for Transition</name>
      <t>The timeline and driving motivation for transition differ slightly between data confidentiality (e.g., encryption) and data authentication (e.g., signature) use cases.</t>
      <t>For data confidentiality, one is concerned with the so-called "harvest now, decrypt later" (HNDL) attack where a malicious actor with adequate resources can launch an attack to store sensitive encrypted data today that they hope to decrypt once a CRQC is available. This implies that, every day, sensitive encrypted data is susceptible to the attack by not implementing quantum-safe strategies, as it corresponds to data possibly being deciphered in the future.</t>
      <t>For authentication, it is often the case that signatures have a very short lifetime between signing and verifying (such as during a TLS handshake), but some authentication use cases do require long lifetimes, such as signing firmware or software that will be active for decades, signing legal documents, or signing certificates that will be embedded into hardware devices such as smart cards. Even for short-lived signature use cases, the infrastructure often relies on long-lived root keys, which can be difficult to update or replace on in-field devices.</t>
      <figure anchor="Mosca">
        <name>Mosca Model</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="160" width="448" viewBox="0 0 448 160" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,128" fill="none" stroke="black"/>
              <path d="M 208,32 L 208,80" fill="none" stroke="black"/>
              <path d="M 296,80 L 296,128" fill="none" stroke="black"/>
              <path d="M 440,32 L 440,80" fill="none" stroke="black"/>
              <path d="M 8,32 L 440,32" fill="none" stroke="black"/>
              <path d="M 8,80 L 440,80" fill="none" stroke="black"/>
              <path d="M 312,96 L 440,96" fill="none" stroke="black"/>
              <path d="M 8,128 L 296,128" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="448,96 436,90.4 436,101.6" fill="black" transform="rotate(0,440,96)"/>
              <polygon class="arrowhead" points="320,96 308,90.4 308,101.6" fill="black" transform="rotate(180,312,96)"/>
              <g class="text">
                <text x="104" y="68">y</text>
                <text x="320" y="68">x</text>
                <text x="136" y="116">z</text>
                <text x="356" y="116">Security</text>
                <text x="408" y="116">gap</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
+------------------------+----------------------------+
|                        |                            |
|           y            |             x              |
+------------------------+----------+-----------------+
|                                   | <--------------->
|               z                   |   Security gap
+-----------------------------------+

]]></artwork>
        </artset>
      </figure>
      <t>These challenges are illustrated nicely by the so-called Mosca model discussed in <xref target="Threat-Report"/>. In <xref target="Mosca"/>, "x" denotes the time that systems and data need to remain secure, "y" the number of years to fully migrate to a PQC infrastructure, and "z" the time until a CRQC that can break current cryptography is available. The model assumes either that encrypted data can be intercepted and stored before the migration is completed in "y" years, or that signatures will still be relied upon for "x" years after their creation. This data remains vulnerable for the complete "x" years of their lifetime; thus, the sum "x+y" gives us an estimate of the full timeframe that data remains insecure. The model essentially asks how one is preparing IT systems during those "y" years (in other words, how one can minimize those "y" years) to minimize the transition phase to a PQC infrastructure and hence minimize the risks of data being exposed in the future.</t>
      <t>Finally, other factors that could accelerate the introduction of a CRQC should not be underestimated, for example, faster-than-expected advances in quantum computing and more efficient versions of Shor's algorithm requiring fewer qubits. Innovation often comes in waves, so it is to the industry's benefit to remain vigilant and prepare as early as possible. Also, bear in mind that while the industry tracks advances from public research institutions such as universities and companies that publish their results, there is also a great deal of large-budget quantum research being conducted privately by various national interests. Therefore, the true state of quantum computer advancement is likely several years ahead of the publicly available research at the date this document is published.</t>
      <t>Organizations should also carefully and honestly consider what their migration timeline "y" actually is. If you only think of the time between receiving a patch from your technology vendor and rolling that patch out, then "y" might seem as short as a few weeks. However, this represents the minority of migration cases; more often, a PQC migration will involve at least some amount of hardware replacement. For example, performance-sensitive applications will need CPUs with PQC hardware acceleration. Security-sensitive applications will need PQC TPMs, Trusted Execution Environments (TEEs), secure enclaves, and other cryptographic co-processors. Smart card applications will require replacement of the cards and readers. The readers can come in many form factors: tap-for-entry door and turnstile readers, PIN pad machines, laptops with built-in smart card readers, and many others.</t>
      <t>Included in "y" is not only the deployment time but also the preparation time: integration, testing, auditing, and recertification of cryptographic environments. Also consider upstream effects that contribute to "y", including lead times for vendors to produce PQC-ready products, which may itself include auditing and certification delays, time for regulating bodies to adopt PQC policies, time for auditors to become familiar with the new requirements, etc. If you measure the full migration time "y" from when your vendors begin implementing PQC functionality to when you switch off your last non-PQC-capable device, then "y" can be quite long, likely measured in years for even most moderately sized organizations. This long tail should not discourage early action.</t>
      <t>Organizations responsible for protecting long-lived sensitive data or operating critical infrastructure will need to begin transitioning immediately, particularly in scenarios where data is vulnerable to HNDL attacks. Post-quantum and traditional (PQ/T) <xref target="PQT"/> or PQ key exchange is relatively self-contained, typically requiring changes only to the cryptographic library (e.g., OpenSSL). In contrast, migrating to post-quantum or PQ/T digital signatures involves broader ecosystem changes, including updates to certificates, certificate authorities (CAs), Certificate Management Protocols, HSMs, and trust anchors.
Starting early with hybrid key exchange deployments allows organizations to gain operational experience, while prototyping and planning for PQ/T or PQ digital signature integration helps identify ecosystem-wide impacts early. This phased approach reduces long-term migration risks and ensures readiness for more complex updates.</t>
    </section>
    <section anchor="pqc-categories">
      <name>PQC Categories</name>
      <t>The post-quantum cryptographic schemes standardized by NIST can be categorized into three main groups: lattice-based, hash-based, and code-based. Other approaches, such as isogeny-based, multivariate-based, and MPC-in-the-Head-based cryptography, are also being explored in research and standardization efforts. In addition, NIST issued a call for additional digital signature proposals to expand the set of post-quantum signatures under evaluation <xref target="AddSig"/>.</t>
      <section anchor="lattice-based">
        <name>Lattice-Based Public Key Cryptography</name>
        <t>Lattice-based public key cryptography leverages the simple construction of lattices (i.e., a regular collection of points in a Euclidean space that are evenly spaced) to create "trapdoor" problems. These problems are efficient to compute if you possess the secret information but challenging to compute otherwise. Examples of such problems include the shortest vector, closest vector, short integer solution, learning with errors, module learning with errors, and learning with rounding problems. All of these problems feature strong proofs for worst-to-average case reduction, effectively relating the hardness of the average case to the worst case.</t>
        <t>Lattice-based public keys and signatures are larger than those of classical schemes such as RSA or ECC, but typically by less than an order of magnitude for public keys (about 6-10x) and by roughly one to two orders of magnitude for signatures (about 10-100x) rather than by several orders of magnitude, making them the best available candidates for general-purpose use, such as replacing the use of RSA in PKIX certificates.</t>
        <t>Examples of this class of algorithms include ML-KEM, FN-DSA, ML-DSA, and FrodoKEM.</t>
        <t>It is noteworthy that lattice-based encryption schemes require a rounding step during decryption, which has a non-zero probability of "rounding the wrong way" and leading to a decryption failure, meaning that valid encryptions are decrypted incorrectly. However, the parameters of NIST PQC candidates are carefully chosen so that the probability of such a failure is cryptographically negligible, far lower than the probability of random transmission errors and implementation bugs. In practical terms, these rare decryption failures can be treated the same way as any fatal transport error: Both sides simply perform a fresh KEM operation, generating a new ciphertext and shared secret.</t>
        <t>In cryptanalysis, an oracle refers to a system that an attacker can query to learn whether decryption succeeded or failed. If such an oracle exists, an attacker could significantly reduce the security of lattice-based schemes that have a relatively high failure rate. However, for most of the NIST PQC proposals, the number of required oracle queries to force a decryption failure is above practical limits, as shown in <xref target="LattFail1"/>. More recent works have improved upon the results in <xref target="LattFail1"/>, showing that the cost of searching for additional failing ciphertexts after one or more have already been found can be sped up dramatically <xref target="LattFail2"/>. Nevertheless, at the time this document is published, the PQC candidates by NIST are considered secure under these attacks, and constant monitoring as cryptanalysis research is ongoing.</t>
      </section>
      <section anchor="hash-based">
        <name>Hash-Based Public Key Cryptography</name>
        <t>Hash-based Public Key Cryptography (PKC) has been around since the 1970s, when it was developed by Lamport and Merkle. It is used to create digital signature algorithms, and its security is based on the security of the underlying cryptographic hash function. Many variants of hash-based signatures (HBSs) have been developed since the 1970s, including the recent XMSS <xref target="RFC8391"/>, HSS/LMS <xref target="RFC8554"/>, or BPQS <xref target="BPQS"/> schemes. Unlike many other digital signature techniques, most hash-based signature schemes are stateful, which means that signing necessitates the update and careful tracking of the state of the secret key. Producing multiple signatures using the same secret key state results in loss of security and may ultimately enable signature forgery attacks against that key.</t>
        <t>Stateful hash-based signatures with long service lifetimes require additional operational complexity compared to other signature types. For example, consider a 20-year root key; there is an expectation that 20 years is longer than the expected lifetime of the hardware that key is stored on, so the key will need to be migrated to new hardware at some point. Disaster-recovery scenarios where the primary node fails without warning can be similarly tricky. This requires careful operational and compliance consideration to ensure that no private key state can be reused across the migration or disaster recovery event. One approach for avoiding these issues is to only use stateful HBSs for short-term use cases that do not require horizontal scaling, for example, signing a batch of firmware images and then retiring the signing key.</t>
        <t>The SLH-DSA algorithm, which was standardized by NIST, leverages the HORST (Hash to Obtain Random Subset with Trees) technique and remains the only standardized hash based signature scheme that is stateless, thus avoiding the complexities associated with state management. SLH-DSA is an advancement on SPHINCS that reduces the signature sizes in SPHINCS and makes it more compact.</t>
      </section>
      <section anchor="code-based">
        <name>Code-Based Public Key Cryptography</name>
        <t>This area of cryptography started in the 1970s and 1980s and was based on the seminal work of McEliece and Niederreiter, which focuses on the study of cryptosystems based on error-correcting codes. Some popular error-correcting codes include Goppa codes (used in McEliece cryptosystems), encoding and decoding syndrome codes used in HQC, or quasi-cyclic moderate density parity check (QC-MDPC) codes.</t>
        <t>Examples include all the unbroken NIST Round 4 finalists: Classic McEliece, HQC (selected by NIST for standardization), and Bit Flipping Key Encapsulation (BIKE) <xref target="BIKE"/>.</t>
      </section>
    </section>
    <section anchor="KEMs">
      <name>KEMs</name>
      <t>A Key Encapsulation Mechanism (KEM) is a cryptographic technique used for securely exchanging symmetric key material between two parties over an insecure channel. It is commonly used in hybrid encryption schemes where a combination of asymmetric (public key) and symmetric encryption is employed. The encapsulation operation of a KEM results in a fixed-length symmetric key that can be used with a symmetric algorithm, typically a block cipher, in one of two different ways:</t>
      <ul spacing="normal">
        <li>
          <t>To derive a data encryption key (DEK) to encrypt the data</t>
        </li>
        <li>
          <t>To derive a key encryption key (KEK) used to wrap a DEK</t>
        </li>
      </ul>
      <t>These techniques are often referred to as the Hybrid Public Key Encryption (HPKE) <xref target="RFC9180"/> mechanism.</t>
      <t>The term "encapsulation" is chosen intentionally to indicate that KEM algorithms behave differently at the API level from the key agreement or key encipherment and key transport mechanisms that are in use today. Key agreement schemes imply that both parties contribute a public-private key pair to the exchange, while key encipherment and key transport schemes imply that the symmetric key material is chosen by one party and "encrypted" or "wrapped" for the other party. KEMs, on the other hand, behave according to the following API primitives <xref target="PQCAPI"/>:</t>
      <ul spacing="normal">
        <li>
          <t>def kemKeyGen() -&gt; (pk, sk)</t>
        </li>
        <li>
          <t>def kemEncaps(pk) -&gt; (ss, ct)</t>
        </li>
        <li>
          <t>def kemDecaps(ct, sk) -&gt; ss</t>
        </li>
      </ul>
      <t>where <tt>pk</tt> is the public key, <tt>sk</tt> is the secret key, <tt>ct</tt> is the ciphertext representing an encapsulated key, and <tt>ss</tt> is the shared secret. The following figure illustrates a sample flow of a KEM-based key exchange:</t>
      <figure anchor="tab-kem-ke">
        <name>KEM-Based Key Exchange</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="336" width="536" viewBox="0 0 536 336" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,272 L 8,304" fill="none" stroke="black"/>
              <path d="M 24,80 L 24,112" fill="none" stroke="black"/>
              <path d="M 184,32 L 184,64" fill="none" stroke="black"/>
              <path d="M 208,80 L 208,112" fill="none" stroke="black"/>
              <path d="M 208,272 L 208,304" fill="none" stroke="black"/>
              <path d="M 224,72 L 224,320" fill="none" stroke="black"/>
              <path d="M 264,32 L 264,64" fill="none" stroke="black"/>
              <path d="M 280,32 L 280,64" fill="none" stroke="black"/>
              <path d="M 320,72 L 320,320" fill="none" stroke="black"/>
              <path d="M 336,176 L 336,208" fill="none" stroke="black"/>
              <path d="M 360,32 L 360,64" fill="none" stroke="black"/>
              <path d="M 528,176 L 528,208" fill="none" stroke="black"/>
              <path d="M 184,32 L 264,32" fill="none" stroke="black"/>
              <path d="M 280,32 L 360,32" fill="none" stroke="black"/>
              <path d="M 184,64 L 264,64" fill="none" stroke="black"/>
              <path d="M 280,64 L 360,64" fill="none" stroke="black"/>
              <path d="M 24,80 L 208,80" fill="none" stroke="black"/>
              <path d="M 24,112 L 208,112" fill="none" stroke="black"/>
              <path d="M 232,160 L 312,160" fill="none" stroke="black"/>
              <path d="M 336,176 L 528,176" fill="none" stroke="black"/>
              <path d="M 336,208 L 528,208" fill="none" stroke="black"/>
              <path d="M 232,256 L 312,256" fill="none" stroke="black"/>
              <path d="M 8,272 L 208,272" fill="none" stroke="black"/>
              <path d="M 8,304 L 208,304" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="320,160 308,154.4 308,165.6" fill="black" transform="rotate(0,312,160)"/>
              <polygon class="arrowhead" points="240,256 228,250.4 228,261.6" fill="black" transform="rotate(180,232,256)"/>
              <g class="text">
                <text x="220" y="52">Client</text>
                <text x="316" y="52">Server</text>
                <text x="48" y="100">pk,</text>
                <text x="76" y="100">sk</text>
                <text x="96" y="100">=</text>
                <text x="152" y="100">kemKeyGen()</text>
                <text x="216" y="100">-</text>
                <text x="244" y="148">pk</text>
                <text x="328" y="196">-</text>
                <text x="360" y="196">ss,</text>
                <text x="388" y="196">ct</text>
                <text x="408" y="196">=</text>
                <text x="472" y="196">kemEncaps(pk)</text>
                <text x="292" y="244">ct</text>
                <text x="28" y="292">ss</text>
                <text x="48" y="292">=</text>
                <text x="112" y="292">kemDecaps(ct,</text>
                <text x="184" y="292">sk)</text>
                <text x="216" y="292">-</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                      +---------+ +---------+
                      | Client  | | Server  |
                      +---------+ +---------+
  +----------------------+ |           |
  | pk, sk = kemKeyGen() |-|           |
  +----------------------+ |           |
                           |           |
                           | pk        |
                           |---------->|
                           |           | +-----------------------+
                           |           |-| ss, ct = kemEncaps(pk)|
                           |           | +-----------------------+
                           |           |
                           |       ct  |
                           |<----------|
+------------------------+ |           |
| ss = kemDecaps(ct, sk) |-|           |
+------------------------+ |           |
                           |           |
]]></artwork>
        </artset>
      </figure>
      <section anchor="authenticated-key-exchange">
        <name>Authenticated Key Exchange</name>
        <t>Authenticated Key Exchange (AKE) with KEMs where both parties contribute a KEM public key to the overall session key is interactive as described in <xref section="9.4" sectionFormat="of" target="RFC9528"/>. However, a single-sided KEM, such as when one peer has a KEM key in a certificate and the other peer wants to encrypt for it (as in S/MIME or OpenPGP email), can be achieved using non-interactive HPKE <xref target="RFC9180"/>. The following figure illustrates the DH Key exchange:</t>
        <figure anchor="tab-dh-ake">
          <name>DH-Based AKE</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="480" width="552" viewBox="0 0 552 480" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,320 L 8,368" fill="none" stroke="black"/>
                <path d="M 24,80 L 24,128" fill="none" stroke="black"/>
                <path d="M 136,336 L 136,344" fill="none" stroke="black"/>
                <path d="M 184,32 L 184,64" fill="none" stroke="black"/>
                <path d="M 216,80 L 216,128" fill="none" stroke="black"/>
                <path d="M 216,320 L 216,368" fill="none" stroke="black"/>
                <path d="M 232,72 L 232,464" fill="none" stroke="black"/>
                <path d="M 264,32 L 264,64" fill="none" stroke="black"/>
                <path d="M 280,32 L 280,64" fill="none" stroke="black"/>
                <path d="M 328,72 L 328,464" fill="none" stroke="black"/>
                <path d="M 344,192 L 344,256" fill="none" stroke="black"/>
                <path d="M 344,432 L 344,464" fill="none" stroke="black"/>
                <path d="M 360,32 L 360,64" fill="none" stroke="black"/>
                <path d="M 544,192 L 544,256" fill="none" stroke="black"/>
                <path d="M 544,432 L 544,464" fill="none" stroke="black"/>
                <path d="M 184,32 L 264,32" fill="none" stroke="black"/>
                <path d="M 280,32 L 360,32" fill="none" stroke="black"/>
                <path d="M 184,64 L 264,64" fill="none" stroke="black"/>
                <path d="M 280,64 L 360,64" fill="none" stroke="black"/>
                <path d="M 24,80 L 216,80" fill="none" stroke="black"/>
                <path d="M 24,128 L 216,128" fill="none" stroke="black"/>
                <path d="M 240,176 L 320,176" fill="none" stroke="black"/>
                <path d="M 344,192 L 544,192" fill="none" stroke="black"/>
                <path d="M 344,256 L 544,256" fill="none" stroke="black"/>
                <path d="M 240,304 L 320,304" fill="none" stroke="black"/>
                <path d="M 8,320 L 216,320" fill="none" stroke="black"/>
                <path d="M 8,368 L 216,368" fill="none" stroke="black"/>
                <path d="M 240,416 L 320,416" fill="none" stroke="black"/>
                <path d="M 344,432 L 544,432" fill="none" stroke="black"/>
                <path d="M 344,464 L 544,464" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="328,416 316,410.4 316,421.6" fill="black" transform="rotate(0,320,416)"/>
                <polygon class="arrowhead" points="328,176 316,170.4 316,181.6" fill="black" transform="rotate(0,320,176)"/>
                <polygon class="arrowhead" points="248,304 236,298.4 236,309.6" fill="black" transform="rotate(180,240,304)"/>
                <g class="text">
                  <text x="220" y="52">Client</text>
                  <text x="316" y="52">Server</text>
                  <text x="72" y="100">Long-term</text>
                  <text x="140" y="100">client</text>
                  <text x="188" y="100">key:</text>
                  <text x="116" y="116">sk1,</text>
                  <text x="152" y="116">pk1</text>
                  <text x="224" y="116">-</text>
                  <text x="256" y="164">pk1</text>
                  <text x="336" y="212">-</text>
                  <text x="392" y="212">Long-term</text>
                  <text x="460" y="212">server</text>
                  <text x="508" y="212">key:</text>
                  <text x="436" y="228">sk2,</text>
                  <text x="472" y="228">pk2</text>
                  <text x="364" y="244">ss</text>
                  <text x="384" y="244">=</text>
                  <text x="436" y="244">KeyEx(pk1,</text>
                  <text x="500" y="244">sk2)</text>
                  <text x="312" y="292">pk2</text>
                  <text x="28" y="340">ss</text>
                  <text x="48" y="340">=</text>
                  <text x="96" y="340">KeyEx(pk2</text>
                  <text x="164" y="340">sk1)</text>
                  <text x="92" y="356">encryptContent(ss)</text>
                  <text x="224" y="356">-</text>
                  <text x="280" y="388">encrypted</text>
                  <text x="288" y="404">content</text>
                  <text x="428" y="452">decryptContent(ss)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                      +---------+ +---------+
                      | Client  | | Server  |
                      +---------+ +---------+
  +-----------------------+ |           |
  | Long-term client key: | |           |
  |         sk1, pk1      |-|           |
  +-----------------------+ |           |
                            |           |
                            | pk1       |
                            |---------->|
                            |           | +------------------------+
                            |           |-| Long-term server key:  |
                            |           | |         sk2, pk2       |
                            |           | | ss = KeyEx(pk1, sk2)   |
                            |           | +------------------------+
                            |           |
                            |        pk2|
                            |<----------|
+-------------------------+ |           |
| ss = KeyEx(pk2, sk1)    | |           |
| encryptContent(ss)      |-|           |
+-------------------------+ |           |
                            | encrypted |
                            |   content |
                            |---------->|
                            |           | +------------------------+
                            |           | | decryptContent(ss)     |
                            |           | +------------------------+
]]></artwork>
          </artset>
        </figure>
        <t>In the sample flow above, it is important to note that the shared secret <tt>ss</tt> is derived using key material from both the client and the server, which classifies it as an AKE. There is another property of a key exchange, called Non-Interactive Key Exchange (NIKE), that  refers to whether the sender can compute the shared secret <tt>ss</tt> and encrypt content without requiring active interaction (an exchange of network messages) with the recipient. <xref target="tab-dh-ake"/> shows a DH key exchange, which is an AKE since both parties are using long-term keys that can have established trust (for example, via certificates), but it is not a NIKE since the client needs to wait for the network interaction to receive the receiver's public key <tt>pk2</tt> before it can compute the shared secret <tt>ss</tt> and begin content encryption. However, a DH key exchange can be an AKE and a NIKE at the same time if the receiver's public key is known to the sender in advance (see <xref target="tab-dh-ake-nike"/>), and many Internet protocols rely on this property of DH-based key exchanges.</t>
        <figure anchor="tab-dh-ake-nike">
          <name>Simultaneous DH-Based AKE and NIKE</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="400" width="536" viewBox="0 0 536 400" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,80 L 8,192" fill="none" stroke="black"/>
                <path d="M 136,160 L 136,168" fill="none" stroke="black"/>
                <path d="M 168,32 L 168,64" fill="none" stroke="black"/>
                <path d="M 200,80 L 200,192" fill="none" stroke="black"/>
                <path d="M 216,72 L 216,368" fill="none" stroke="black"/>
                <path d="M 248,32 L 248,64" fill="none" stroke="black"/>
                <path d="M 264,32 L 264,64" fill="none" stroke="black"/>
                <path d="M 312,72 L 312,368" fill="none" stroke="black"/>
                <path d="M 328,288 L 328,368" fill="none" stroke="black"/>
                <path d="M 344,32 L 344,64" fill="none" stroke="black"/>
                <path d="M 456,336 L 456,344" fill="none" stroke="black"/>
                <path d="M 528,288 L 528,368" fill="none" stroke="black"/>
                <path d="M 168,32 L 248,32" fill="none" stroke="black"/>
                <path d="M 264,32 L 344,32" fill="none" stroke="black"/>
                <path d="M 168,64 L 248,64" fill="none" stroke="black"/>
                <path d="M 264,64 L 344,64" fill="none" stroke="black"/>
                <path d="M 8,80 L 200,80" fill="none" stroke="black"/>
                <path d="M 8,192 L 200,192" fill="none" stroke="black"/>
                <path d="M 224,272 L 304,272" fill="none" stroke="black"/>
                <path d="M 328,288 L 528,288" fill="none" stroke="black"/>
                <path d="M 328,368 L 528,368" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="312,272 300,266.4 300,277.6" fill="black" transform="rotate(0,304,272)"/>
                <g class="text">
                  <text x="204" y="52">Client</text>
                  <text x="300" y="52">Server</text>
                  <text x="56" y="100">Long-term</text>
                  <text x="124" y="100">client</text>
                  <text x="172" y="100">key:</text>
                  <text x="100" y="116">sk1,</text>
                  <text x="136" y="116">pk1</text>
                  <text x="208" y="116">-</text>
                  <text x="56" y="132">Long-term</text>
                  <text x="124" y="132">server</text>
                  <text x="172" y="132">key:</text>
                  <text x="96" y="148">pk2</text>
                  <text x="28" y="164">ss</text>
                  <text x="48" y="164">=</text>
                  <text x="96" y="164">KeyEx(pk2</text>
                  <text x="164" y="164">sk1)</text>
                  <text x="92" y="180">encryptContent(ss)</text>
                  <text x="208" y="180">-</text>
                  <text x="244" y="228">pk1,</text>
                  <text x="264" y="244">encrypted</text>
                  <text x="272" y="260">content</text>
                  <text x="320" y="308">-</text>
                  <text x="376" y="308">Long-term</text>
                  <text x="444" y="308">server</text>
                  <text x="492" y="308">key:</text>
                  <text x="420" y="324">sk2,</text>
                  <text x="456" y="324">pk2</text>
                  <text x="348" y="340">ss</text>
                  <text x="368" y="340">=</text>
                  <text x="416" y="340">KeyEx(pk1</text>
                  <text x="484" y="340">sk2)</text>
                  <text x="412" y="356">decryptContent(ss)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                      +---------+ +---------+
                      | Client  | | Server  |
                      +---------+ +---------+
  +-----------------------+ |           |
  | Long-term client key: | |           |
  |         sk1, pk1      |-|           |
  | Long-term server key: | |           |
  |         pk2           | |           |
  | ss = KeyEx(pk2, sk1)  | |           |
  | encryptContent(ss)    |-|           |
  +-----------------------+ |           |
                            |           |
                            | pk1,      |
                            | encrypted |
                            |   content |
                            |---------->|
                            |           | +------------------------+
                            |           |-| Long-term server key:  |
                            |           | |         sk2, pk2       |
                            |           | | ss = KeyEx(pk1, sk2)   |
                            |           | | decryptContent(ss)     |
                            |           | +------------------------+
]]></artwork>
          </artset>
        </figure>
        <t>The complication with KEMs is that a KEM <tt>Encaps()</tt> is non-deterministic; it involves randomness chosen by the sender of that message. Therefore, in order to perform an AKE, the client must wait for the server to generate the needed randomness and perform <tt>Encaps()</tt> against the client key, which necessarily requires a network round-trip. Therefore, a KEM-based protocol can either be an AKE or a NIKE, but it cannot be both at the same time. Consequently, certain Internet protocols will necessitate a redesign to accommodate this distinction, either by introducing extra network round trips or by making trade-offs in security properties.</t>
        <figure anchor="tab-kem-ake">
          <name>KEM-Based AKE</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="480" width="576" viewBox="0 0 576 480" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,288 L 8,352" fill="none" stroke="black"/>
                <path d="M 24,80 L 24,112" fill="none" stroke="black"/>
                <path d="M 200,32 L 200,64" fill="none" stroke="black"/>
                <path d="M 224,80 L 224,112" fill="none" stroke="black"/>
                <path d="M 224,288 L 224,352" fill="none" stroke="black"/>
                <path d="M 240,72 L 240,464" fill="none" stroke="black"/>
                <path d="M 280,32 L 280,64" fill="none" stroke="black"/>
                <path d="M 296,32 L 296,64" fill="none" stroke="black"/>
                <path d="M 336,72 L 336,464" fill="none" stroke="black"/>
                <path d="M 352,176 L 352,224" fill="none" stroke="black"/>
                <path d="M 352,416 L 352,464" fill="none" stroke="black"/>
                <path d="M 376,32 L 376,64" fill="none" stroke="black"/>
                <path d="M 568,176 L 568,224" fill="none" stroke="black"/>
                <path d="M 568,416 L 568,464" fill="none" stroke="black"/>
                <path d="M 200,32 L 280,32" fill="none" stroke="black"/>
                <path d="M 296,32 L 376,32" fill="none" stroke="black"/>
                <path d="M 200,64 L 280,64" fill="none" stroke="black"/>
                <path d="M 296,64 L 376,64" fill="none" stroke="black"/>
                <path d="M 24,80 L 224,80" fill="none" stroke="black"/>
                <path d="M 24,112 L 224,112" fill="none" stroke="black"/>
                <path d="M 248,160 L 328,160" fill="none" stroke="black"/>
                <path d="M 352,176 L 568,176" fill="none" stroke="black"/>
                <path d="M 352,224 L 568,224" fill="none" stroke="black"/>
                <path d="M 248,272 L 328,272" fill="none" stroke="black"/>
                <path d="M 8,288 L 224,288" fill="none" stroke="black"/>
                <path d="M 8,352 L 224,352" fill="none" stroke="black"/>
                <path d="M 248,400 L 328,400" fill="none" stroke="black"/>
                <path d="M 352,416 L 568,416" fill="none" stroke="black"/>
                <path d="M 352,464 L 568,464" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="336,400 324,394.4 324,405.6" fill="black" transform="rotate(0,328,400)"/>
                <polygon class="arrowhead" points="336,160 324,154.4 324,165.6" fill="black" transform="rotate(0,328,160)"/>
                <polygon class="arrowhead" points="256,272 244,266.4 244,277.6" fill="black" transform="rotate(180,248,272)"/>
                <g class="text">
                  <text x="236" y="52">Client</text>
                  <text x="332" y="52">Server</text>
                  <text x="52" y="100">pk1,</text>
                  <text x="88" y="100">sk1</text>
                  <text x="112" y="100">=</text>
                  <text x="168" y="100">kemKeyGen()</text>
                  <text x="232" y="100">-</text>
                  <text x="256" y="148">pk1</text>
                  <text x="344" y="196">-</text>
                  <text x="380" y="196">ss1,</text>
                  <text x="416" y="196">ct1</text>
                  <text x="440" y="196">=</text>
                  <text x="508" y="196">kemEncaps(pk1)</text>
                  <text x="380" y="212">pk2,</text>
                  <text x="416" y="212">sk2</text>
                  <text x="440" y="212">=</text>
                  <text x="496" y="212">kemKeyGen()</text>
                  <text x="304" y="260">ct1,pk2</text>
                  <text x="32" y="308">ss1</text>
                  <text x="56" y="308">=</text>
                  <text x="124" y="308">kemDecaps(ct1,</text>
                  <text x="204" y="308">sk1)</text>
                  <text x="36" y="324">ss2,</text>
                  <text x="72" y="324">ct2</text>
                  <text x="96" y="324">=</text>
                  <text x="164" y="324">kemEncaps(pk2)</text>
                  <text x="232" y="324">-</text>
                  <text x="28" y="340">ss</text>
                  <text x="48" y="340">=</text>
                  <text x="112" y="340">Combiner(ss1,</text>
                  <text x="188" y="340">ss2)</text>
                  <text x="256" y="388">ct2</text>
                  <text x="344" y="436">-</text>
                  <text x="376" y="436">ss2</text>
                  <text x="400" y="436">=</text>
                  <text x="468" y="436">kemDecaps(ct2,</text>
                  <text x="548" y="436">sk2)</text>
                  <text x="372" y="452">ss</text>
                  <text x="392" y="452">=</text>
                  <text x="456" y="452">Combiner(ss1,</text>
                  <text x="532" y="452">ss2)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                        +---------+ +---------+
                        | Client  | | Server  |
                        +---------+ +---------+
  +------------------------+ |           |
  | pk1, sk1 = kemKeyGen() |-|           |
  +------------------------+ |           |
                             |           |
                             |pk1        |
                             |---------->|
                             |           | +--------------------------+
                             |           |-| ss1, ct1 = kemEncaps(pk1)|
                             |           | | pk2, sk2 = kemKeyGen()   |
                             |           | +--------------------------+
                             |           |
                             |    ct1,pk2|
                             |<----------|
+--------------------------+ |           |
| ss1 = kemDecaps(ct1, sk1)| |           |
| ss2, ct2 = kemEncaps(pk2)|-|           |
| ss = Combiner(ss1, ss2)  | |           |
+--------------------------+ |           |
                             |           |
                             |ct2        |
                             |---------->|
                             |           | +--------------------------+
                             |           |-| ss2 = kemDecaps(ct2, sk2)|
                             |           | | ss = Combiner(ss1, ss2)  |
                             |           | +--------------------------+
]]></artwork>
          </artset>
        </figure>
        <t>In the figure above, <tt>Combiner(ss1, ss2)</tt>, often referred to as a KEM combiner, is a cryptographic construction that takes in two shared secrets and returns a single combined shared secret. The simplest combiner is concatenation <tt>ss1 || ss2</tt>, but combiners can vary in complexity depending on the cryptographic properties required. For example, if the combination should preserve IND-CCA2 (see <xref target="INDCCA2"/>) of either input, even if the other is chosen maliciously, then a more complex construct is required. Another consideration for combiner design is the so-called "binding properties" introduced in <xref target="KEEPINGUP"/>, which may require the ciphertexts and recipient public keys to be included in the combiner. KEM combiner security analysis becomes more complicated in hybrid settings where the two KEMs represent different algorithms, for example, where one is ML-KEM and the other is ECDH. For a more thorough discussion of KEM combiners, see <xref target="KEEPINGUP"/>, <xref target="I-D.ounsworth-cfrg-kem-combiners"/>, and <xref target="I-D.irtf-cfrg-hybrid-kems"/>.</t>
      </section>
      <section anchor="security-properties-of-kems">
        <name>Security Properties of KEMs</name>
        <t>The security properties described in this section (IND-CCA2 and binding) are not an exhaustive list of all possible KEM security considerations. They were selected because they are fundamental to evaluating KEM suitability in protocol design and are commonly discussed in current PQC work.</t>
        <section anchor="INDCCA2">
          <name>IND-CCA2</name>
          <t>IND-CCA2 (INDistinguishability under adaptive Chosen-Ciphertext Attack) is an advanced security notion for encryption schemes. It ensures the confidentiality of the plaintext and resistance against chosen-ciphertext attacks. An appropriate definition of IND-CCA2 security for KEMs can be found in <xref target="CS01"/> and <xref target="BHK09"/>. ML-KEM <xref target="ML-KEM"/> and Classic McEliece provide IND-CCA2 security.</t>
          <t>Understanding IND-CCA2 security is essential for individuals involved in designing or implementing cryptographic systems and protocols in order to evaluate the strength of the algorithm, assess its suitability for specific use cases, and ensure that data confidentiality and security requirements are met. Understanding IND-CCA2 security is generally not necessary for developers migrating to using an IETF-vetted KEM within a given protocol or flow. IND-CCA2 is a widely accepted security notion for public key encryption mechanisms, making it suitable for a broad range of applications. When an IETF specification defines a new KEM, its security considerations should fully describe the relevant cryptographic properties, including IND-CCA2.</t>
        </section>
        <section anchor="binding">
          <name>Binding</name>
          <t>KEMs also have an orthogonal set of properties to consider when designing protocols around them: binding <xref target="KEEPINGUP"/>. This can be "ciphertext binding", "public key binding", "context binding", or any other property that is important to not be substituted between KEM invocations. In general, a KEM is considered to bind a certain value if substitution of that value by an attacker will necessarily result in a different shared secret being derived. As an example, if an attacker can construct two different ciphertexts that will decapsulate to the same shared secret, can construct a ciphertext that will decapsulate to the same shared secret under two different public keys, or can substitute whole KEM exchanges from one session into another, then the construction is not ciphertext binding, public key binding, or context binding, respectively. Similarly, protocol designers may wish to bind protocol state information such as a transaction ID or nonce so that attempts to replay ciphertexts from one session inside a different session will be blocked at the cryptographic level because the server derives a different shared secret and is thus is unable to decrypt the content.</t>
          <t>The solution to binding is generally achieved at the protocol design level: It is recommended to avoid using the KEM output shared secret directly without integrating it into an appropriate protocol. While KEM algorithms provide key secrecy, they do not inherently ensure source authenticity, protect against replay attacks, or guarantee freshness. These security properties should be addressed by incorporating the KEM into a protocol that has been analyzed for such protections. Even though modern KEMs such as ML-KEM produce full-entropy shared secrets, it is still advisable for binding reasons to pass the shared secret through a key derivation function (KDF) and also include all values that you wish to bind; finally, you will have a shared secret that is safe to use at the protocol level.</t>
        </section>
      </section>
      <section anchor="hpke">
        <name>HPKE</name>
        <t>Modern cryptography has long used the notion of "hybrid encryption" where an asymmetric algorithm is used to establish a key and then a symmetric algorithm is used for bulk content encryption. The previous sections explained important security properties of KEMs, such as IND-CCA2 security and binding, and emphasized that these properties must be supported by proper protocol design. One widely deployed scheme that achieves this is Hybrid Public Key Encryption (HPKE) <xref target="RFC9180"/>.</t>
        <t>HPKE <xref target="RFC9180"/> works with a combination of KEMs, KDFs, and Authenticated Encryption with Associated Data (AEAD) schemes. HPKE includes three authenticated variants, including one that authenticates possession of a pre-shared key and two optional ones that authenticate possession of a KEM private key. HPKE can be extended to support hybrid post-quantum KEM <xref target="I-D.ietf-hpke-pq"/>. ML-KEM does not support the static-ephemeral key exchange that allows HPKE that is based on DH-based KEMs and its optional authenticated modes as discussed in <xref section="1.5" sectionFormat="of" target="I-D.connolly-cfrg-xwing-kem"/>.</t>
      </section>
    </section>
    <section anchor="pqc-signatures-1">
      <name>PQC Signatures</name>
      <t>Any digital signature scheme that provides a construction defining security under a post-quantum setting falls under this category of PQC signatures.</t>
      <section anchor="security-properties-of-pqc-signatures">
        <name>Security Properties of PQC Signatures</name>
        <section anchor="euf-cma-and-suf-cma">
          <name>EUF-CMA and SUF-CMA</name>
          <t>EUF-CMA (existential unforgeability under chosen message attack) <xref target="GMR88"/> is a security notion for digital signature schemes. It guarantees that an adversary, even with access to a signing oracle, cannot forge a valid signature for an arbitrary message. EUF-CMA provides strong protection against forgery attacks, ensuring the integrity and authenticity of digital signatures by preventing unauthorized modifications or fraudulent signatures. ML-DSA, FN-DSA, and SLH-DSA provide EUF-CMA security.</t>
          <t>SUF-CMA (strong unforgeability under chosen message attack) builds upon EUF-CMA by requiring that an adversary cannot produce a different valid signature for a message that has already been signed by the signing oracle. Like EUF-CMA, SUF-CMA provides robust assurances for digital signature schemes, further enhancing their security posture. ML-DSA, FN-DSA, and SLH-DSA also achieve SUF-CMA security.</t>
          <t>Understanding EUF-CMA and SUF-CMA security is essential for designing or implementing cryptographic systems in order to ensure the security, reliability, and robustness of digital signature schemes. These notions allow for informed decision making, vulnerability analysis, compliance with standards, and designing systems that provide strong protection against forgery attacks. For developers migrating to an IETF-vetted PQC signature scheme within a given protocol or flow, a deep understanding of EUF-CMA and SUF-CMA security may not be necessary, as the schemes vetted by IETF adhere to these stringent security standards.</t>
          <t>EUF-CMA and SUF-CMA are considered strong security benchmarks for public key signature algorithms, making them suitable for most applications. Authors of IETF specifications should include all security concerns in the "Security Considerations" section of the relevant RFC and should not assume that implementers are experts in cryptographic theory.</t>
        </section>
      </section>
      <section anchor="sig-scheme">
        <name>Details of FN-DSA, ML-DSA, and SLH-DSA</name>
        <t>ML-DSA <xref target="ML-DSA"/> is a digital signature algorithm based on the hardness of lattice problems over module lattices (i.e., the Module Learning with Errors (MLWE) problem). The design of the algorithm is based on the "Fiat-Shamir with Aborts" <xref target="Lyu09"/> framework introduced by Lyubashevsky that leverages rejection sampling to render lattice-based Fiat-Shamir (FS) schemes compact and secure. ML-DSA uses uniformly distributed random number sampling over small integers to compute coefficients in error vectors, which makes the scheme easier to implement compared to FN-DSA <xref target="FN-DSA"/>, which  uses Gaussian-distributed numbers, necessitating the need to use floating-point arithmetic during signature generation.</t>
        <t>ML-DSA offers both deterministic and randomized signing and is instantiated with three parameter sets providing different security levels. Security properties of ML-DSA are discussed in <xref section="9" sectionFormat="of" target="RFC9881"/>.</t>
        <t>FN-DSA <xref target="FN-DSA"/> is based on the GPV hash-and-sign lattice-based signature framework introduced by Gentry, Peikert, and Vaikuntanathan, which is a framework that requires a certain class of lattices and a trapdoor sampler technique.</t>
        <t>The main design principle of FN-DSA is compactness, i.e., it was designed in a way that achieves minimal total memory bandwidth requirement (the sum of the signature size plus the public key size). This is possible due to the compactness of NTRU lattices. FN-DSA also offers very efficient signing and verification procedures. The main potential downsides of FN-DSA refer to the non-triviality of its algorithms and the need for floating-point arithmetic support in order to support Gaussian-distributed random number sampling where the other lattice schemes use the less efficient but easier to support uniformly distributed random number sampling.</t>
        <t>Implementers of FN-DSA need to be aware that FN-DSA signing is highly susceptible to side-channel attacks unless constant-time 64-bit floating-point operations are used. This requirement is extremely platform-dependent, as noted in NIST's report <xref target="NIST"/>.</t>
        <t>The performance characteristics of ML-DSA and FN-DSA may differ based on the specific implementation and hardware platform. Generally, ML-DSA is known for its relatively fast signature generation, while FN-DSA can provide more efficient signature verification. The choice may depend on whether the application requires more frequent signature generation or signature verification (see <xref target="LIBOQS"/>). For further clarity on the sizes and security levels, please refer to the tables in Sections <xref target="RecSecurity" format="counter"/> and <xref target="Comparisons" format="counter"/>.</t>
        <t>SLH-DSA <xref target="SLH-DSA"/> utilizes the concept of stateless hash-based signatures, where each signature is unique and unrelated to any previous signature (as discussed in <xref target="hash-based"/>). This property eliminates the need for maintaining state information during the signing process. SLH-DSA was designed to sign up to 2^64 messages under a given key pair, and it offers three security levels. The parameters for each of the security levels were chosen to provide 128 bits of security, 192 bits of security, and 256 bits of security. SLH-DSA offers smaller public key sizes, larger signature sizes, slower signature generation, and slower verification when compared to ML-DSA and FN-DSA. SLH-DSA does not introduce a new hardness assumption beyond those inherent to the underlying hash functions. It builds upon established foundations in cryptography, making it a reliable and robust digital signature scheme for a post-quantum world.</t>
        <t>All of these algorithms (ML-DSA, FN-DSA, and SLH-DSA) include two signature modes: pure mode, where the entire content is signed directly, and pre-hash mode, where a digest of the content is signed.</t>
      </section>
      <section anchor="details-of-xmss-and-lms">
        <name>Details of XMSS and LMS</name>
        <t>The eXtended Merkle Signature Scheme (XMSS) <xref target="RFC8391"/> and Hierarchical Signature Scheme (HSS) / Leighton-Micali Signature (LMS) <xref target="RFC8554"/> are stateful hash-based signature schemes, where the secret key state changes over time. In both schemes, reusing a secret key state compromises cryptographic security guarantees.</t>
        <t>XMSS and LMS can be used for signing a potentially large but fixed number of messages, and the number of signing operations depends upon the size of the tree. XMSS and LMS provide cryptographic digital signatures without relying on the conjectured hardness of mathematical problems, instead leveraging the properties of cryptographic hash functions. Multi-tree XMSS and LMS (i.e., XMSS-MT and HSS, respectively) use a hyper-tree-based hierarchical approach with a Merkle tree at each level of the hierarchy. <xref target="RFC8391"/> describes both single-tree and multi-tree variants of XMSS, while <xref target="RFC8554"/> describes the Leighton-Micali One-Time Signature (LM-OTS) system as well as the LMS and HSS N-time signature systems. Comparison of XMSS and LMS is discussed in <xref section="10" sectionFormat="of" target="RFC8554"/>.</t>
        <t>The number of tree layers in multi-tree XMSS and HSS provides a trade-off between signature size on the one side and key generation and signing speed on the other side. Increasing the number of layers reduces key generation time exponentially and signing time linearly at the cost of increasing the signature size linearly. HSS allows for customization of each subtree, whereas XMSS-MT does not, electing instead to use the same structure for each subtree.</t>
        <t>Due to the complexities described above, XMSS and LMS are not suitable replacements for traditional signature schemes like RSA or ECDSA. Applications that expect a long lifetime of a signature, like firmware update or secure boot, are typical use cases where those schemes can be successfully applied.</t>
        <section anchor="lms-key-and-signature-sizes">
          <name>LMS Key and Signature Sizes</name>
          <t>The LMS scheme is characterized by four distinct parameter sets: the underlying hash function (SHA2-256 or SHAKE-256), the length of the digest (24 or 32 bytes), the LMS tree height parameter that controls a maximal number of signatures that the private key can produce, and the width of the Winternitz coefficients (see <xref section="4.1" sectionFormat="comma" target="RFC8554"/>) that can be used to trade-off signing time for signature size. Parameters can be mixed, providing 80 possible parameterizations of the scheme.</t>
          <t>The public (PK) and private (SK) key size depends on the length of the digest (M). The signature size depends on the digest, the Winternitz parameter (W), the LMS tree height (H), and the length of the digest. The table below provides key and signature sizes for parameterization with the digest size M=32 of the scheme.</t>
          <table>
            <thead>
              <tr>
                <th align="left">PK</th>
                <th align="left">SK</th>
                <th align="left">W</th>
                <th align="left">H=5</th>
                <th align="left">H=10</th>
                <th align="left">H=15</th>
                <th align="left">H=20</th>
                <th align="left">H=25</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">56</td>
                <td align="left">52</td>
                <td align="left">1</td>
                <td align="left">8684</td>
                <td align="left">8844</td>
                <td align="left">9004</td>
                <td align="left">9164</td>
                <td align="left">9324</td>
              </tr>
              <tr>
                <td align="left">56</td>
                <td align="left">52</td>
                <td align="left">2</td>
                <td align="left">4460</td>
                <td align="left">4620</td>
                <td align="left">4780</td>
                <td align="left">4940</td>
                <td align="left">5100</td>
              </tr>
              <tr>
                <td align="left">56</td>
                <td align="left">52</td>
                <td align="left">4</td>
                <td align="left">2348</td>
                <td align="left">2508</td>
                <td align="left">2668</td>
                <td align="left">2828</td>
                <td align="left">2988</td>
              </tr>
              <tr>
                <td align="left">56</td>
                <td align="left">52</td>
                <td align="left">8</td>
                <td align="left">1292</td>
                <td align="left">1452</td>
                <td align="left">1612</td>
                <td align="left">1772</td>
                <td align="left">1932</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="hash-then-sign">
        <name>Hash-then-Sign</name>
        <t>Within the hash-then-sign paradigm, the message is hashed before signing it. By pre-hashing, the onus of resistance to existential forgeries becomes heavily reliant on the collision-resistance of the hash function in use. The hash-then-sign paradigm has the ability to improve application performance by reducing the size of signed messages that need to be transmitted between application and cryptographic module and making the signature size predictable and manageable. As a corollary, hashing remains mandatory even for short messages and assigns a further computational requirement onto the verifier. This makes the performance of hash-then-sign schemes more consistent, but not necessarily more efficient.</t>
        <t>Using a hash function to produce a fixed-size digest of a message ensures that the signature is compatible with a wide range of systems and protocols, regardless of the specific message size or format. Crucially for hardware security modules, hash-then-sign also significantly reduces the amount of data that needs to be transmitted and processed by a Hardware Security Module (HSM). Consider scenarios such as a networked HSM located in a different data center from the calling application or a smart card connected over a USB interface. In these cases, streaming a message that is megabytes or gigabytes long can result in notable network latency, on-device signing delays, or even depletion of available on-device memory.</t>
        <t>Note that the vast majority of Internet protocols that sign large messages already perform some form of content hashing at the protocol level, so this tends to be more of a concern with proprietary cryptographic protocols and protocols from non-IETF standards bodies. Protocols like TLS 1.3 and DNSSEC use the hash-then-sign paradigm. In TLS 1.3 <xref target="RFC8446"/> CertificateVerify messages, the content that is covered under the signature includes the transcript hash output (<xref section="4.4.1" sectionFormat="of" target="RFC8446"/>) while DNSSEC <xref target="RFC4034"/> uses it to provide origin authentication and integrity assurance services for DNS data. Similarly, the Cryptographic Message Syntax (CMS) <xref target="RFC5652"/> includes a mandatory message digest step before invoking the signature algorithm.</t>
        <t>In the case of ML-DSA, it internally incorporates the necessary hash operations as part of its signing algorithm. ML-DSA directly takes the original message, applies a hash function internally, and then uses the resulting hash value for the signature generation process. In the case of SLH-DSA, it internally performs randomized message compression using a keyed hash function that can process arbitrary length messages. In the case of FN-DSA, the SHAKE-256 hash function is used as part of the signature process to derive a digest of the message being signed.</t>
        <t>Therefore, ML-DSA, FN-DSA, and SLH-DSA offer enhanced security over the traditional hash-then-sign paradigm because, by incorporating dynamic key material into the message digest, a pre-computed hash collision on the message to be signed no longer yields a signature forgery. Applications requiring the performance and bandwidth benefits of hash-then-sign may still pre-hash at the protocol level prior to invoking ML-DSA, FN-DSA, or SLH-DSA, but protocol designers should be aware that doing so reintroduces the weakness that hash collisions directly yield signature forgeries. Signing the full un-digested message is recommended where applications can tolerate it.</t>
      </section>
    </section>
    <section anchor="RecSecurity">
      <name>NIST Recommendations for Security and Performance Trade-offs</name>
      <t>This information is a reprint of information provided in the NIST PQC project <xref target="NIST"/> as of the time this document is published. <xref target="security-levels-table"/> denotes the five security levels provided by NIST for PQC algorithms. Neither NIST nor the IETF makes any specific recommendations about which security level to use. In general, protocols will include algorithm choices at multiple levels so that users can choose the level appropriate to their policies and data classification, similar to how organizations today choose which size of RSA key to use. The security levels are defined as requiring computational resources comparable to or greater than an attack on AES (128, 192, and 256) and SHA2/SHA3 algorithms, i.e., exhaustive key recovery for AES and optimal collision search for SHA2/SHA3.</t>
      <table anchor="security-levels-table">
        <thead>
          <tr>
            <th align="left">PQ Security Level</th>
            <th align="left">AES/SHA(2/3) hardness</th>
            <th align="left">PQC Algorithm</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">1</td>
            <td align="left">AES-128 (exhaustive key recovery)</td>
            <td align="left">ML-KEM-512, FN-DSA-512, SLH-DSA-SHA2/SHAKE-128f/s</td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">SHA-256/SHA3-256 (collision search)</td>
            <td align="left">ML-DSA-44</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">AES-192 (exhaustive key recovery)</td>
            <td align="left">ML-KEM-768, ML-DSA-65, SLH-DSA-SHA2/SHAKE-192f/s</td>
          </tr>
          <tr>
            <td align="left">4</td>
            <td align="left">SHA-384/SHA3-384 (collision search)</td>
            <td align="left">No algorithm tested at this level</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">AES-256 (exhaustive key recovery)</td>
            <td align="left">ML-KEM-1024, FN-DSA-1024, ML-DSA-87, SLH-DSA-SHA2/SHAKE-256f/s</td>
          </tr>
        </tbody>
      </table>
      <t>The SLH-DSA-x-yf/s "f/s" in the above table denotes whether SLH-DSA is using SHAKE or SHA-2 as an underlying hash function "x" and whether it is the fast (f) or small (s) version for "y" bit AES security level. Refer to <xref target="RFC9814"/> for further details on SLH-DSA algorithms.</t>
      <t>The following table compares the signature sizes for different SLH-DSA algorithm categories at equivalent security levels using the "simple" version. The categories include "f" for fast signature generation and "s" for smaller signature size and faster verification, although with slower signature generation. Both SHA-256 and SHAKE-256 parameterizations produce the same signature sizes and are therefore included together in the table.</t>
      <table>
        <thead>
          <tr>
            <th align="left">PQ Security Level</th>
            <th align="left">Algorithm</th>
            <th align="left">Public key size (in bytes)</th>
            <th align="left">Private key size (in bytes)</th>
            <th align="left">Signature size (in bytes)</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">1</td>
            <td align="left">SLH-DSA-{SHA2,SHAKE}-128f</td>
            <td align="left">32</td>
            <td align="left">64</td>
            <td align="left">17088</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">SLH-DSA-{SHA2,SHAKE}-128s</td>
            <td align="left">32</td>
            <td align="left">64</td>
            <td align="left">7856</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">SLH-DSA-{SHA2,SHAKE}-192f</td>
            <td align="left">48</td>
            <td align="left">96</td>
            <td align="left">35664</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">SLH-DSA-{SHA2,SHAKE}-192s</td>
            <td align="left">48</td>
            <td align="left">96</td>
            <td align="left">16224</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">SLH-DSA-{SHA2,SHAKE}-256f</td>
            <td align="left">64</td>
            <td align="left">128</td>
            <td align="left">49856</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">SLH-DSA-{SHA2,SHAKE}-256s</td>
            <td align="left">64</td>
            <td align="left">128</td>
            <td align="left">29792</td>
          </tr>
        </tbody>
      </table>
      <t>The following table illustrates the impact of performance on different security levels in terms of private key sizes, public key sizes, and ciphertext/signature sizes.</t>
      <table>
        <thead>
          <tr>
            <th align="left">PQ Security Level</th>
            <th align="left">Algorithm</th>
            <th align="left">Public key size (in bytes)</th>
            <th align="left">Private key size (in bytes)</th>
            <th align="left">Ciphertext/signature size (in bytes)</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">1</td>
            <td align="left">ML-KEM-512</td>
            <td align="left">800</td>
            <td align="left">1632</td>
            <td align="left">768</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">FN-DSA-512</td>
            <td align="left">897</td>
            <td align="left">1281</td>
            <td align="left">666</td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">ML-DSA-44</td>
            <td align="left">1312</td>
            <td align="left">2560</td>
            <td align="left">2420</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">ML-KEM-768</td>
            <td align="left">1184</td>
            <td align="left">2400</td>
            <td align="left">1088</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">ML-DSA-65</td>
            <td align="left">1952</td>
            <td align="left">4032</td>
            <td align="left">3309</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">FN-DSA-1024</td>
            <td align="left">1793</td>
            <td align="left">2305</td>
            <td align="left">1280</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">ML-KEM-1024</td>
            <td align="left">1568</td>
            <td align="left">3168</td>
            <td align="left">1588</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">ML-DSA-87</td>
            <td align="left">2592</td>
            <td align="left">4896</td>
            <td align="left">4627</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="Comparisons">
      <name>Comparing PQC KEMs/Signatures and Traditional KEMs/Signatures</name>
      <t>This section provides two tables for comparison of different KEMs and signatures, respectively, in the traditional and post-quantum scenarios. These tables focus on the secret key sizes, public key sizes, and ciphertext/signature sizes for the PQC algorithms and their traditional counterparts of similar security levels.</t>
      <t>The first table compares traditional and PQC KEMs in terms of security, public and private key sizes, and ciphertext sizes.</t>
      <table>
        <thead>
          <tr>
            <th align="left">PQ Security Level</th>
            <th align="left">Algorithm</th>
            <th align="left">Public key size (in bytes)</th>
            <th align="left">Private key size (in bytes)</th>
            <th align="left">Ciphertext size (in bytes)</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Traditional</td>
            <td align="left">P256_HKDF_SHA-256</td>
            <td align="left">65</td>
            <td align="left">32</td>
            <td align="left">65</td>
          </tr>
          <tr>
            <td align="left">Traditional</td>
            <td align="left">P521_HKDF_SHA-512</td>
            <td align="left">133</td>
            <td align="left">66</td>
            <td align="left">133</td>
          </tr>
          <tr>
            <td align="left">Traditional</td>
            <td align="left">X25519_HKDF_SHA-256</td>
            <td align="left">32</td>
            <td align="left">32</td>
            <td align="left">32</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">ML-KEM-512</td>
            <td align="left">800</td>
            <td align="left">1632</td>
            <td align="left">768</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">ML-KEM-768</td>
            <td align="left">1184</td>
            <td align="left">2400</td>
            <td align="left">1088</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">ML-KEM-1024</td>
            <td align="left">1568</td>
            <td align="left">3168</td>
            <td align="left">1568</td>
          </tr>
        </tbody>
      </table>
      <t>The next table compares traditional and PQC signature schemes in terms of security, public, private key sizes, and signature sizes.</t>
      <table>
        <thead>
          <tr>
            <th align="left">PQ Security Level</th>
            <th align="left">Algorithm</th>
            <th align="left">Public key size (in bytes)</th>
            <th align="left">Private key size (in bytes)</th>
            <th align="left">Signature size (in bytes)</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Traditional</td>
            <td align="left">RSA2048</td>
            <td align="left">256</td>
            <td align="left">256</td>
            <td align="left">256</td>
          </tr>
          <tr>
            <td align="left">Traditional</td>
            <td align="left">ECDSA-P256</td>
            <td align="left">64</td>
            <td align="left">32</td>
            <td align="left">64</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">FN-DSA-512</td>
            <td align="left">897</td>
            <td align="left">1281</td>
            <td align="left">666</td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">ML-DSA-44</td>
            <td align="left">1312</td>
            <td align="left">2560</td>
            <td align="left">2420</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">ML-DSA-65</td>
            <td align="left">1952</td>
            <td align="left">4032</td>
            <td align="left">3309</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">FN-DSA-1024</td>
            <td align="left">1793</td>
            <td align="left">2305</td>
            <td align="left">1280</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">ML-DSA-87</td>
            <td align="left">2592</td>
            <td align="left">4896</td>
            <td align="left">4627</td>
          </tr>
        </tbody>
      </table>
      <t>As is clear from the above table, PQC KEMs and signature schemes typically have significantly larger keys and ciphertexts/signatures than their traditional counterparts. These increased key and signatures sizes could introduce problems in protocols. As an example, the Internet Key Exchange Protocol Version 2 (IKEv2) uses UDP as the transport protocol for its messages. One challenge with integrating a PQC KEM into IKEv2 is that IKE fragmentation cannot be utilized in the initial IKE_SA_INIT exchange. To address this issue, <xref target="RFC9242"/> introduces a solution by defining a new exchange called the "Intermediate Exchange", which can be fragmented using the IKE fragmentation mechanism. <xref target="RFC9370"/> then uses this Intermediate Exchange to carry out the PQC key exchange after the initial IKEv2 exchange and before the IKE_AUTH exchange. Another example from Section 6.3.3 of <xref target="SP-1800-38C"/> shows that increased key and signature sizes cause protocol key exchange messages to span more network packets, which results in a higher total loss probability per packet. In lossy network conditions, this may increase the latency of the key exchange.</t>
    </section>
    <section anchor="PQT">
      <name>Post-Quantum and Traditional (PQ/T) Hybrid Schemes</name>
      <t>The migration to PQC is unique in the history of modern digital cryptography in that neither the traditional algorithms nor the post-quantum algorithms are fully trusted to protect data for the required lifetimes. The traditional algorithms, such as RSA and ECDH, will fall to quantum cryptanalysis, while the post-quantum algorithms face uncertainty about the underlying mathematics, compliance issues, unknown vulnerabilities, and hardware and software implementations that have not had sufficient maturing time to rule out traditional cryptanalytic attacks and implementation bugs.</t>
      <t>During the transition from traditional to post-quantum algorithms, there may be a desire or a requirement for protocols that use both algorithm types. <xref target="RFC9794"/> defines the terminology for PQ/T hybrid schemes.</t>
      <section anchor="pqt-hybrid-confidentiality">
        <name>PQ/T Hybrid Confidentiality</name>
        <t>The PQ/T Hybrid Confidentiality property can be used to mitigate both "harvest now, decrypt now" and HNDL attacks described in <xref target="timeline"/>. If the PQ portion were to have a flaw, the traditional (T) algorithm, which is secure against today's attackers, prevents immediate decryption ("harvest now, decrypt now"). If the T algorithm is broken in the future by CRQCs, the PQ portion, assuming it remains secure, prevents later decryption (i.e., HNDL). A hybrid construction therefore provides confidentiality as long as at least one component remains secure. Two types of hybrid key agreement schemes are discussed below.</t>
        <dl>
          <dt>Concatenated hybrid key agreement scheme:</dt>
          <dd>
            <t>The final shared secret that will be used as an input of the key derivation function is the result of the concatenation of the secrets established with each key agreement scheme. For example, in <xref target="I-D.ietf-tls-hybrid-design"/>, the client uses the TLS supported groups extension to advertise support for a PQ/T hybrid scheme, and the server can select this group if it supports the scheme. The hybrid-aware client and server establish a hybrid secret by concatenating the two shared secrets, which is used as the shared secret in the existing TLS 1.3 key schedule.</t>
          </dd>
          <dt>Cascaded hybrid key agreement scheme:</dt>
          <dd>
            <t>The final shared secret is computed by applying as many iterations of the key derivation function as the number of key agreement schemes composing the hybrid key agreement scheme. For example, <xref target="RFC9370"/> extends IKEv2 to allow one or more PQC algorithms in addition to the traditional algorithm to derive the final IKE Security Association (SA) keys using the cascade method as explained in <xref section="2.2.2" sectionFormat="of" target="RFC9370"/>.</t>
          </dd>
        </dl>
        <t>Various instantiations of these two types of hybrid key agreement schemes have been explored. One must be careful when selecting which hybrid scheme to use. The chosen scheme for protocols like TLS 1.3 <xref target="I-D.ietf-tls-hybrid-design"/> has IND-CCA2 robustness. That is, IND-CCA2 security is guaranteed for the scheme as long as at least one of the component algorithms is IND-CCA2 secure.</t>
      </section>
      <section anchor="pqt-hybrid-authentication">
        <name>PQ/T Hybrid Authentication</name>
        <t>The PQ/T hybrid authentication property provides resilience against catastrophic breaks or unforeseen vulnerabilities in PQC algorithms, allowing systems additional time to stabilize before migrating fully to pure PQ deployments.</t>
        <t>This property ensures authentication using a PQ/T hybrid scheme as long as at least one component algorithm remains secure. For example, a PQ/T hybrid certificate <xref target="I-D.ietf-lamps-pq-composite-sigs"/> can be employed to facilitate a PQ/T hybrid authentication protocol. However, a PQ/T hybrid authentication protocol does not need to use a PQ/T hybrid certificate; separate certificates could be used for individual component algorithms <xref target="RFC9763"/>. When separate certificates are used, it may be possible for attackers to take them apart or put them together in unexpected ways, including enabling cross-protocol attacks. The exact risks this presents are highly dependent on the protocol and use case, so a full security analysis is needed. Best practices for ensuring that pairs of certificates are only used as intended are discussed in more detail in Sections <xref target="COMPOSITE" format="counter"/> and <xref target="REUSE" format="counter"/> of this document.</t>
        <t>The frequency and duration of system upgrades and the time when CRQCs will become widely available need to be weighed to determine whether and when to support the PQ/T Hybrid Authentication property.</t>
      </section>
      <section anchor="hybrid-cryptographic-algorithm-combinations-considerations-and-approaches">
        <name>Hybrid Cryptographic Algorithm Combinations: Considerations and Approaches</name>
        <section anchor="hybrid-cryptographic-combinations">
          <name>Hybrid Cryptographic Combinations</name>
          <t>It is also possible to use more than two algorithms together in a hybrid scheme, with various methods for combining them. For post-quantum transition purposes, the combination of a post-quantum algorithm with a traditional algorithm is the most straightforward and recommended. The use of multiple post-quantum algorithms with different mathematical bases has also been considered. Combining algorithms in a way that requires both to be used together ensures stronger security, while combinations that do not require both will sacrifice security but offer other benefits like backwards compatibility and crypto agility. Including a traditional key alongside a post-quantum key often has minimal bandwidth impact.</t>
        </section>
        <section anchor="COMPOSITE">
          <name>Composite Keys in Hybrid Schemes</name>
          <t>When combining keys in an "and" mode, it may make more sense to consider them to be a single composite key instead of two keys. This generally requires fewer changes to various components of PKI ecosystems, many of which are not prepared to deal with two keys or dual signatures. To those protocol- or application-layer parsers, a "composite" algorithm composed of two "component" algorithms is simply a new algorithm, and support for adding new algorithms generally already exists. Treating multiple "component" keys as a single "composite" key also has security advantages, such as preventing cross-protocol reuse of the individual component keys and guarantees about revoking or retiring all component keys together at the same time, especially if the composite is treated as a single object all the way down into the cryptographic module.</t>
          <t>All that needs to be done is to standardize the formats of how the two keys from the two algorithms are combined into a single data structure and how the two resulting signatures or KEMs are combined into a single signature or KEM. The answer can be as simple as concatenation if the lengths are fixed or easily determined. At the time this document is published, security research is ongoing as to the security properties of concatenation-based composite signatures and KEMs versus more sophisticated signature and KEM combiners and protocol contexts in which those simpler combiners are sufficient.</t>
          <t>One last consideration is the specific pairs of algorithms that can be combined. A recent trend in protocols is to only allow a small number of "known good" configurations that make sense, often referred to in cryptography as a "ciphersuite", instead of allowing arbitrary combinations of individual configuration choices that may interact in dangerous ways. The current consensus is that the same approach should be followed for combining cryptographic algorithms and that "known good" pairs should be explicitly listed ("explicit composite") instead of just allowing arbitrary combinations of any two cryptographic algorithms ("generic composite").</t>
          <t>The same considerations apply when using multiple certificates to transport a pair of related keys for the same subject. Exactly how two certificates should be managed in order to avoid some of the pitfalls mentioned above is still an active area of investigation. Using two certificates keeps the certificate tooling simple and straightforward, but in the end, this simply moves problems (i.e., problems with the requirement that both certificates be used as a pair, that two signatures that must be carried separately, and that both validate) to the certificate management layer, where addressing these concerns in a robust way can be difficult.</t>
          <t>At least one scheme has been proposed that allows the pair of certificates to exist as a single certificate when being issued and managed but dynamically split into individual certificates when needed (see <xref target="I-D.bonnell-lamps-chameleon-certs"/>).</t>
        </section>
        <section anchor="REUSE">
          <name>Key Reuse in Hybrid Schemes</name>
          <t>An important security note, particularly when using hybrid signature keys, but also to a lesser extent hybrid KEM keys, is key reuse. In traditional cryptography, problems can occur with so-called "cross-protocol attacks" when the same key can be used for multiple protocols; for example, signing TLS handshakes and signing S/MIME emails. While it is not best practice to reuse keys within the same protocol, e.g., using the same key for multiple S/MIME certificates for the same user, it is not generally catastrophic for security. However, key reuse becomes a large security problem within hybrid schemes.</t>
          <t>Consider an {RSA, ML-DSA} hybrid key where the RSA key also appears within a single-algorithm certificate. In this case, an attacker could perform a "stripping attack" where they take some piece of data signed with the {RSA, ML-DSA} key, remove the ML-DSA signature, and present the data as if it was intended for the RSA only certificate. This leads to a set of security definitions called "non-separability properties", which refers to how well the signature scheme resists various complexities of downgrade/stripping attacks <xref target="I-D.ietf-pquip-hybrid-signature-spectrums"/>. Therefore, it is recommended that implementers either reuse the entire hybrid key as a whole or perform fresh key generation of all component keys per usage, and must not take an existing key and reuse it as a component of a hybrid key.</t>
        </section>
        <section anchor="future-directions-and-ongoing-research">
          <name>Future Directions and Ongoing Research</name>
          <t>Many aspects of hybrid cryptography are still under investigation. The LAMPS Working Group at IETF is actively exploring the security properties of these combinations, and future standards will reflect the evolving consensus on these issues.</t>
        </section>
      </section>
    </section>
    <section anchor="impact-on-constrained-devices-and-networks">
      <name>Impact on Constrained Devices and Networks</name>
      <t>PQC algorithms generally have larger keys, ciphertext, and signature sizes than traditional public key algorithms. This has particular impact on constrained devices that operate with limited data rates. In the IoT space, these constraints have historically driven significant optimization efforts in the IETF (e.g., in the LAKE and CoRE Working Groups) to adapt security protocols to resource-constrained environments.</t>
      <t>As the transition to PQC progresses, these environments will face similar challenges. Larger message sizes can increase handshake latency, raise energy consumption, and require fragmentation logic. Work is ongoing in the IETF to study how PQC can be deployed in constrained devices (see <xref target="I-D.ietf-pquip-pqc-hsm-constrained"/>).</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="cryptanalysis">
        <name>Cryptanalysis</name>
        <t>Traditional cryptanalysis exploits weaknesses in algorithm design, mathematical vulnerabilities, or implementation flaws that are exploitable with classical (i.e., non-quantum) hardware, whereas quantum cryptanalysis harnesses the power of CRQCs to solve specific mathematical problems more efficiently. Quantum side-channel attacks are another form of quantum cryptanalysis. In such attacks, a device under threat is directly connected to a quantum computer, which then injects entangled or superimposed data streams to exploit hardware that lacks protection against quantum side channels. Both pose threats to the security of cryptographic algorithms, including those used in PQC. It is crucial to develop and adopt new cryptographic algorithms resilient against these threats to ensure long-term security in the face of advancing cryptanalysis techniques.</t>
        <t>Recent attacks on the side-channel implementations using deep learning-based power analysis have also shown that one needs to be cautious while implementing the required PQC algorithms in hardware. Two of the most recent works include one attack on ML-KEM <xref target="KyberSide"/> and one attack on Saber <xref target="SaberSide"/>. An evolving threat landscape points to the fact that lattice-based cryptography is indeed more vulnerable to side-channel attacks as in <xref target="SideCh"/> and <xref target="LatticeSide"/>. Consequently, some mitigation techniques for side-channel attacks have been proposed; see <xref target="Mitigate1"/>, <xref target="Mitigate2"/>, and <xref target="Mitigate3"/>.</t>
      </section>
      <section anchor="cryptographic-agility">
        <name>Cryptographic Agility</name>
        <t>Cryptographic agility is recommended for both traditional and quantum cryptanalysis as it enables organizations to adapt to emerging threats, adopt stronger algorithms, comply with standards, and plan for long-term security in the face of evolving cryptanalytic techniques and the advent of CRQCs.</t>
        <t>Several PQC schemes are available that need to be tested; cryptography experts around the world are pushing for the best possible solutions, and the first standards that will ease the introduction of PQC are being prepared. This is of paramount importance and is a call for imminent action for organizations, bodies, and enterprises to start evaluating their cryptographic agility, assess the complexity of implementing PQC into their products, processes, and systems, and develop a migration plan that achieves their security goals to the best possible extent.</t>
        <t>An important and often overlooked step in achieving cryptographic agility is maintaining a cryptographic inventory. Modern software stacks incorporate cryptography in numerous places, making it challenging to identify all instances. Therefore, cryptographic agility and inventory management take two major forms. First, application developers responsible for software maintenance should actively search for instances of hard-coded cryptographic algorithms within applications. When possible, they should design the choice of algorithm to be dynamic, based on application configuration. Second, administrators, policy officers, and compliance teams should take note of any instances where an application exposes cryptographic configurations. These instances should be managed through either organization-wide written cryptographic policies or automated cryptographic policy systems.</t>
        <t>Numerous commercial solutions are available for detecting hard-coded cryptographic algorithms in source code and compiled binaries, as well as providing cryptographic policy management control planes for enterprise and production environments.</t>
      </section>
      <section anchor="jurisdictional-fragmentation">
        <name>Jurisdictional Fragmentation</name>
        <t>Another potential application of hybrid schemes bears mentioning, even though it is not directly related to PQC: using hybrids to navigate inter-jurisdictional cryptographic connections. Traditional cryptography is already fragmented by jurisdiction. Consider that while most jurisdictions support ECDH, those in the United States will prefer the NIST curves while those in Germany will prefer the Brainpool curves. China, Russia, and other jurisdictions have their own national cryptography standards. This situation of fragmented global cryptography standards is unlikely to improve with PQC. If "and" mode hybrid schemes become standardized for the reasons mentioned above, then one could imagine leveraging them to create ciphersuites in which a single cryptographic operation simultaneously satisfies the cryptographic requirements of both endpoints.</t>
      </section>
      <section anchor="hybrid-key-exchange-and-signatures-bridging-the-gap-between-pqt-cryptography">
        <name>Hybrid Key Exchange and Signatures: Bridging the Gap Between PQ/T Cryptography</name>
        <t>Post-quantum algorithms selected for standardization are relatively new and have not been subject to the same depth of study as traditional algorithms. PQC implementations will also be new and therefore more likely to contain implementation bugs than the battle-tested crypto implementations that are relied on today. In addition, certain deployments may need to retain traditional algorithms due to regulatory constraints, e.g., FIPS <xref target="SP-800-56C"/> or Payment Card Industry (PCI) compliance <xref target="PCI"/>. Hybrid key exchange is recommended to enhance security against the HNDL attack. Additionally, hybrid signatures provide for time to react in the case of the announcement of a devastating attack against any one algorithm, while not fully abandoning traditional cryptosystems.</t>
        <t>Hybrid key exchange performs both a classical and a post-quantum key exchange in parallel. It provides security redundancy against potential weaknesses in PQC algorithms, allows for a gradual transition of trust in PQC algorithms, and, in backward-compatible designs, enables gradual adoption without breaking compatibility with existing systems. For instance, in TLS 1.3, a hybrid key exchange can combine a widely supported classical algorithm, such as X25519, with a post-quantum algorithm like ML-KEM. This allows legacy clients to continue using the classical algorithm while enabling upgraded clients to proceed with hybrid key exchange. In contrast, overhead-spreading hybrid designs focus on reducing the PQ overhead. For example, approaches like those described in <xref target="I-D.hale-mls-combiner"/> amortize PQ costs by selectively applying PQ updates in key exchange processes, allowing systems to balance security and efficiency. This strategy ensures a post-quantum secure channel while keeping the overhead manageable, making it particularly suitable for constrained environments.</t>
        <t>While some hybrid key exchange options introduce additional computational and bandwidth overhead, the impact of traditional key exchange algorithms (e.g., key size) is typically small, helping to keep the overall increase in resource usage manageable for most systems. In highly constrained environments, however, those hybrid key exchange protocols may be impractical due to their higher resource requirements compared to pure post-quantum or traditional key exchange approaches. However, some hybrid key exchange designs distribute the PQC overhead, making them more suitable for constrained environments. The choice of hybrid key exchange design depends on the specific system requirements and use case, so the appropriate approach may vary.</t>
      </section>
      <section anchor="caution-ciphertext-commitment-in-kem-vs-dh">
        <name>Caution: Ciphertext Commitment in KEM vs. DH</name>
        <t>The ciphertext generated by a KEM is not necessarily directly linked to the shared secret it produces. KEMs allow for multiple ciphertexts to encapsulate the same shared secret, which enables flexibility in key management without enforcing a strict one-to-one correspondence between ciphertexts and shared secrets. This allows for secret reuse across different recipients, sessions, or operational contexts without the need for new secrets for each use, simplifying key distribution and reducing computational overhead. In contrast, cryptographic schemes like Diffie-Hellman inherently link the public key to the derived shared secret, meaning any change in the public key results in a different shared secret.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
    <section anchor="further-reading-and-resources">
      <name>Further Reading and Resources</name>
      <t>A good book on modern cryptography is "Serious Cryptography, 2nd Edition" by Jean-Philippe Aumasson <xref target="Serious-Crypt"/>.</t>
      <t>The Open Quantum Safe (OQS) Project <xref target="OQS"/> is an open-source project that aims to support the transition to quantum-resistant cryptography.</t>
      <t>The IETF's PQUIP Working Group <xref target="PQUIP-WG"/> maintains a list of PQC-related protocol work within the IETF.</t>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.bonnell-lamps-chameleon-certs" to="ENC-PAIR-CERTS"/>
    <displayreference target="I-D.connolly-cfrg-xwing-kem" to="X-WING"/>
    <displayreference target="I-D.hale-mls-combiner" to="PQ-MLS"/>
    <displayreference target="I-D.ietf-hpke-pq" to="PQ-HPKE"/>
    <displayreference target="I-D.ietf-lamps-pq-composite-sigs" to="ML-DSA-X.509"/>
    <displayreference target="I-D.ietf-pquip-hybrid-signature-spectrums" to="HYBRID-SIG-SPECT"/>
    <displayreference target="I-D.ietf-pquip-pqc-hsm-constrained" to="CONSTRAIN-DEV-PCQ"/>
    <displayreference target="I-D.ietf-tls-hybrid-design" to="TLS-HYB-KEY-EXCH"/>
    <displayreference target="I-D.irtf-cfrg-bbs-signatures" to="BBS-SIG-SCHEME"/>
    <displayreference target="I-D.irtf-cfrg-hybrid-kems" to="PQ-KEM"/>
    <displayreference target="I-D.ounsworth-cfrg-kem-combiners" to="KEM-COMBINER"/>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="ML-KEM" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf">
          <front>
            <title>Module-Lattice-Based Key-Encapsulation Mechanism Standard</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="NIST FIPS" value="203"/>
          <seriesInfo name="DOI" value="10.6028/nist.fips.203"/>
        </reference>
        <reference anchor="ML-DSA" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf">
          <front>
            <title>Module-Lattice-Based Digital Signature Standard</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="NIST FIPS" value="204"/>
          <seriesInfo name="DOI" value="10.6028/NIST.FIPS.204"/>
        </reference>
        <reference anchor="SLH-DSA" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.205.pdf">
          <front>
            <title>Stateless Hash-Based Digital Signature Standard</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="NIST FIPS" value="205"/>
          <seriesInfo name="DOI" value="10.6028/NIST.FIPS.205"/>
        </reference>
        <reference anchor="Shors" target="https://arxiv.org/pdf/quant-ph/9508027">
          <front>
            <title>Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer</title>
            <author initials="P." surname="Shor" fullname="Peter W. Shor">
              <organization/>
            </author>
            <date year="1996" month="January" day="25"/>
          </front>
          <refcontent>arXiv:quant-ph/9508027v2</refcontent>
        </reference>
        <reference anchor="Grovers" target="https://dl.acm.org/doi/10.1145/237814.237866">
          <front>
            <title>A fast quantum mechanical algorithm for database search</title>
            <author fullname="Lok K. Grover">
              <organization/>
            </author>
            <date year="1996" month="July" day="01"/>
          </front>
          <seriesInfo name="DOI" value="10.1145/237814.237866"/>
          <refcontent>STOC '96: Proceedings of the twenty-eighth annual ACM symposium on Theory of Computing, pp. 212-219</refcontent>
        </reference>
        <reference anchor="RSA" target="https://dl.acm.org/doi/pdf/10.1145/359340.359342">
          <front>
            <title>A Method for Obtaining Digital Signatures and Public-Key Cryptosystems</title>
            <author fullname="Ronald L. Rivest">
              <organization/>
            </author>
            <author initials="A." surname="Shamir">
              <organization/>
            </author>
            <author initials="L." surname="Adleman">
              <organization/>
            </author>
            <date year="1978" month="February"/>
          </front>
          <seriesInfo name="DOI" value="10.1145/359340.359342"/>
          <refcontent>Communications of the ACM, vol. 21, no. 2, pp. 120-126</refcontent>
        </reference>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6090.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8391.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8554.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4034.xml"/>
        <reference anchor="NTRU" target="https://ntru.org/index.shtml">
          <front>
            <title>NTRU</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="FrodoKEM" target="https://frodokem.org/">
          <front>
            <title>FrodoKEM</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="ClassicMcEliece" target="https://classic.mceliece.org/">
          <front>
            <title>Classic McEliece</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="FN-DSA" target="https://falcon-sign.info/">
          <front>
            <title>FALCON: Fast Fourier lattice-based compact signatures over NTRU</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8235.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9180.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9881.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9242.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9370.xml"/>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="Serious-Crypt">
          <front>
            <title>Serious Cryptography, 2nd Edition</title>
            <author fullname="Jean-Philippe Aumasson">
              <organization/>
            </author>
            <date year="2024" month="August"/>
          </front>
          <refcontent>ISBN 9781718503847</refcontent>
        </reference>
        <reference anchor="Grover-Search" target="https://link.aps.org/doi/10.1103/PhysRevA.60.2746">
          <front>
            <title>Grover's quantum searching algorithm is optimal</title>
            <author fullname="Christof Zalka">
              <organization/>
            </author>
            <date year="1999" month="October"/>
          </front>
          <seriesInfo name="DOI" value="10.1103/PhysRevA.60.2746"/>
          <refcontent>Physical Review A, vol. 60, no. 4, pp. 2746-2751</refcontent>
        </reference>
        <reference anchor="Threat-Report" target="https://globalriskinstitute.org/publications/quantum-threat-timeline-report-2020/">
          <front>
            <title>Quantum Threat Timeline Report 2020</title>
            <author fullname="Michele Mosca">
              <organization/>
            </author>
            <author fullname="Marco Piani">
              <organization/>
            </author>
            <date year="2021" month="January" day="27"/>
          </front>
          <refcontent>Global Risk Institute</refcontent>
        </reference>
        <reference anchor="QC-DNS" target="https://www.icann.org/octo-031-en.pdf">
          <front>
            <title>Quantum Computing and the DNS</title>
            <author fullname="Paul Hoffman">
              <organization/>
            </author>
            <date year="2024" month="April" day="22"/>
          </front>
          <refcontent>ICANN Office of the Chief Technology Officer, OCTO-031v2</refcontent>
        </reference>
        <reference anchor="NIST" target="https://csrc.nist.gov/projects/post-quantum-cryptography/post-quantum-cryptography-standardization">
          <front>
            <title>Post-Quantum Cryptography Standardization</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="Cloudflare" target="https://blog.cloudflare.com/nist-post-quantum-surprise/">
          <front>
            <title>NIST's pleasant post-quantum surprise</title>
            <author fullname="Bas Westerbaan">
              <organization/>
            </author>
            <date year="2022" month="July" day="08"/>
          </front>
          <refcontent>Cloudflare Blog</refcontent>
        </reference>
        <reference anchor="CS01" target="https://eprint.iacr.org/2001/108">
          <front>
            <title>Design and Analysis of Practical Public-Key Encryption Schemes Secure against Adaptive Chosen Ciphertext Attack</title>
            <author fullname="Ronald Cramer">
              <organization/>
            </author>
            <author fullname="Victor Shoup">
              <organization/>
            </author>
            <date year="2001"/>
          </front>
          <refcontent>Cryptology ePrint Archive, Paper 2001/108</refcontent>
        </reference>
        <reference anchor="BHK09" target="https://eprint.iacr.org/2009/418">
          <front>
            <title>Subtleties in the Definition of IND-CCA: When and How Should Challenge-Decryption be Disallowed?</title>
            <author fullname="Mihir Bellare">
              <organization/>
            </author>
            <author fullname="Dennis Hofheinz">
              <organization/>
            </author>
            <author fullname="Eike Kiltz">
              <organization/>
            </author>
            <date year="2009"/>
          </front>
          <refcontent>Cryptology ePrint Archive, Paper 2009/418</refcontent>
        </reference>
        <reference anchor="GMR88" target="https://people.csail.mit.edu/silvio/Selected%20Scientific%20Papers/Digital%20Signatures/A_Digital_Signature_Scheme_Secure_Against_Adaptive_Chosen-Message_Attack.pdf">
          <front>
            <title>A digital signature scheme secure against adaptive chosen-message attacks</title>
            <author fullname="Shafi Goldwasser">
              <organization/>
            </author>
            <author fullname="Silvio Micali">
              <organization/>
            </author>
            <author fullname="Ronald L. Rivest">
              <organization/>
            </author>
            <date year="1988" month="April"/>
          </front>
          <seriesInfo name="DOI" value="10.1137/0217017"/>
          <refcontent>SIAM Journal on Computing, vol. 17, no. 2, pp. 281-308</refcontent>
        </reference>
        <reference anchor="PQCAPI" target="https://csrc.nist.gov/CSRC/media/Projects/Post-Quantum-Cryptography/documents/example-files/api-notes.pdf">
          <front>
            <title>PQC - API notes</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="RSA8HRS" target="https://arxiv.org/abs/1905.09749">
          <front>
            <title>How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits</title>
            <author fullname="Craig Gidney">
              <organization/>
            </author>
            <author fullname="Martin Ekera">
              <organization/>
            </author>
            <date year="2021" month="April" day="13"/>
          </front>
          <refcontent>arXiv:1905.09749v3</refcontent>
        </reference>
        <reference anchor="RSA10SC" target="https://www.quintessencelabs.com/blog/breaking-rsa-encryption-update-state-art">
          <front>
            <title>Breaking RSA Encryption - an Update on the State-of-the-Art</title>
            <author>
              <organization>QuintessenceLabs</organization>
            </author>
            <date year="2019" month="June" day="13"/>
          </front>
        </reference>
        <reference anchor="RSAShor" target="https://arxiv.org/pdf/quant-ph/0205095.pdf">
          <front>
            <title>Circuit for Shor's algorithm using 2n+3 qubits</title>
            <author fullname="Stephane Beauregard">
              <organization/>
            </author>
            <date year="2003" month="February" day="21"/>
          </front>
          <refcontent>arXiv:quant-ph/0205095v3</refcontent>
        </reference>
        <reference anchor="LIBOQS" target="https://github.com/open-quantum-safe/liboqs">
          <front>
            <title>LibOQS - Open Quantum Safe</title>
            <author>
              <organization/>
            </author>
            <date year="2025" month="November"/>
          </front>
          <refcontent>commit 97f6b86</refcontent>
        </reference>
        <reference anchor="KyberSide" target="https://eprint.iacr.org/2022/1452">
          <front>
            <title>A Side-Channel Attack on a Hardware Implementation of CRYSTALS-Kyber</title>
            <author fullname="Yanning Ji">
              <organization/>
            </author>
            <author fullname="Ruize Wang">
              <organization/>
            </author>
            <author fullname="Kalle Ngo">
              <organization/>
            </author>
            <author fullname="Elena Dubrova">
              <organization/>
            </author>
            <author fullname="Linus Backlund">
              <organization/>
            </author>
            <date year="2022"/>
          </front>
          <refcontent>Cryptology ePrint Archive, Paper 2022/1452</refcontent>
        </reference>
        <reference anchor="SaberSide" target="https://link.springer.com/article/10.1007/s13389-023-00315-3">
          <front>
            <title>A side-channel attack on a masked and shuffled software implementation of Saber</title>
            <author fullname="Kalle Ngo">
              <organization/>
            </author>
            <author fullname="Elena Dubrova">
              <organization/>
            </author>
            <author fullname="Thomas Johansson">
              <organization/>
            </author>
            <date year="2023" month="April" day="25"/>
          </front>
          <seriesInfo name="DOI" value="10.1007/s13389-023-00315-3"/>
          <refcontent>Journal of Cryptographic Engineering, vol. 13, pp. 443-460</refcontent>
        </reference>
        <reference anchor="SideCh" target="https://eprint.iacr.org/2022/919">
          <front>
            <title>Side-Channel Attacks on Lattice-Based KEMs Are Not Prevented by Higher-Order Masking</title>
            <author fullname="Kalle Ngo">
              <organization/>
            </author>
            <author fullname="Ruize Wang">
              <organization/>
            </author>
            <author fullname="Elena Dubrova">
              <organization/>
            </author>
            <author fullname="Nils Paulsrud">
              <organization/>
            </author>
            <date year="2022"/>
          </front>
          <refcontent>Cryptology ePrint Archive, Paper 2022/919</refcontent>
        </reference>
        <reference anchor="LatticeSide" target="https://eprint.iacr.org/2019/948">
          <front>
            <title>Generic Side-channel attacks on CCA-secure lattice-based PKE and KEM schemes</title>
            <author fullname="Prasanna Ravi">
              <organization/>
            </author>
            <author fullname="Sujoy Sinha Roy">
              <organization/>
            </author>
            <author fullname="Anupam Chattopadhyay">
              <organization/>
            </author>
            <author fullname="Shivam Bhasin">
              <organization/>
            </author>
            <date year="2019"/>
          </front>
          <refcontent>Cryptology ePrint Archive, Paper 2019/948</refcontent>
        </reference>
        <reference anchor="Mitigate1" target="https://eprint.iacr.org/2022/873">
          <front>
            <title>POLKA: Towards Leakage-Resistant Post-Quantum CCA-Secure Public Key Encryption</title>
            <author fullname="Clément Hoffmann">
              <organization/>
            </author>
            <author fullname="Benoît Libert">
              <organization/>
            </author>
            <author fullname="Charles Momin">
              <organization/>
            </author>
            <author fullname="Thomas Peters">
              <organization/>
            </author>
            <author fullname="François-Xavier Standaert">
              <organization/>
            </author>
            <date year="2022"/>
          </front>
          <refcontent>Cryptology ePrint Archive, Paper 2022/873</refcontent>
        </reference>
        <reference anchor="Mitigate2" target="https://ieeexplore.ieee.org/document/9855226">
          <front>
            <title>Leakage-Resilient Certificate-Based Authenticated Key Exchange Protocol</title>
            <author initials="T." surname="Tsai">
              <organization/>
            </author>
            <author initials="S." surname="Huang">
              <organization/>
            </author>
            <author initials="Y." surname="Tseng">
              <organization/>
            </author>
            <author initials="Y." surname="Chuang">
              <organization/>
            </author>
            <author initials="Y." surname="Hung">
              <organization/>
            </author>
            <date year="2022"/>
          </front>
          <seriesInfo name="DOI" value="10.1109/OJCS.2022.3198073"/>
          <refcontent>IEEE Open Journal of the Computer Society, vol. 3, pp. 137-148</refcontent>
        </reference>
        <reference anchor="Mitigate3" target="https://eprint.iacr.org/2022/916">
          <front>
            <title>Post-Quantum Authenticated Encryption against Chosen-Ciphertext Side-Channel Attacks</title>
            <author fullname="Melissa Azouaoui">
              <organization/>
            </author>
            <author fullname="Yulia Kuzovkova">
              <organization/>
            </author>
            <author fullname="Tobias Schneider">
              <organization/>
            </author>
            <author fullname="Christine van Vredendaal">
              <organization/>
            </author>
            <date year="2022"/>
          </front>
          <refcontent>Cryptology ePrint Archive, Paper 2022/916</refcontent>
        </reference>
        <reference anchor="CNSA2-0" target="https://media.defense.gov/2025/May/30/2003728741/-1/-1/0/CSA_CNSA_2.0_ALGORITHMS.PDF">
          <front>
            <title>Announcing the Commercial National Security Algorithm Suite 2.0</title>
            <author>
              <organization>NSA</organization>
            </author>
            <date year="2022" month="September"/>
          </front>
        </reference>
        <reference anchor="LattFail1" target="https://link.springer.com/chapter/10.1007/978-3-030-17259-6_19">
          <front>
            <title>Decryption Failure Attacks on IND-CCA Secure Lattice-Based Schemes</title>
            <author fullname="Jan-Pieter D'Anvers">
              <organization/>
            </author>
            <author fullname="Qian Guo">
              <organization/>
            </author>
            <author fullname="Thomas Johansson">
              <organization/>
            </author>
            <author fullname="Alexander Nilsson">
              <organization/>
            </author>
            <author fullname="Frederik Vercauteren">
              <organization/>
            </author>
            <author fullname="Ingrid Verbauwhede">
              <organization/>
            </author>
            <date year="2019" month="April" day="06"/>
          </front>
          <seriesInfo name="DOI" value="10.1007/978-3-030-17259-6_19"/>
          <refcontent>Public-Key Cryptography - PKC 2019, Lecture Notes in Computer Science, vol. 11443, pp. 565-598</refcontent>
        </reference>
        <reference anchor="LattFail2" target="https://link.springer.com/chapter/10.1007/978-3-030-45727-3_1">
          <front>
            <title>(One) Failure Is Not an Option: Bootstrapping the Search for Failures in Lattice-Based Encryption Schemes</title>
            <author fullname="Jan-Pieter D'Anvers">
              <organization/>
            </author>
            <author fullname="Mélissa Rossi">
              <organization/>
            </author>
            <author fullname="Fernando Virdia">
              <organization/>
            </author>
            <date year="2020" month="May" day="01"/>
          </front>
          <seriesInfo name="DOI" value="10.1007/978-3-030-45727-3_1"/>
          <refcontent>Advances in Cryptology - EUROCRYPT 2020, Lecture Notes in Computer Science, vol. 12107, pp. 3-33</refcontent>
        </reference>
        <reference anchor="BSI-PQC" target="https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Publications/Brochure/quantum-safe-cryptography.html?nn=916626">
          <front>
            <title>Quantum-safe cryptography - fundamentals, current developments and recommendations</title>
            <author>
              <organization>BSI</organization>
            </author>
            <date year="2022" month="May" day="18"/>
          </front>
        </reference>
        <reference anchor="PQRSA" target="https://cr.yp.to/papers/pqrsa-20170419.pdf">
          <front>
            <title>Post-quantum RSA</title>
            <author fullname="Daniel J. Bernstein">
              <organization/>
            </author>
            <author fullname="Nadia Heninger">
              <organization/>
            </author>
            <author fullname="Paul Lou">
              <organization/>
            </author>
            <author fullname="Luke Valenta">
              <organization/>
            </author>
            <date year="2017" month="April" day="19"/>
          </front>
        </reference>
        <reference anchor="SP-800-56C" target="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Cr2.pdf">
          <front>
            <title>Recommendation for Key-Derivation Methods in Key-Establishment Schemes</title>
            <author fullname="Elaine Barker">
              <organization/>
            </author>
            <author fullname="Lily Chen">
              <organization/>
            </author>
            <author fullname="Richard Davis">
              <organization/>
            </author>
            <date year="2020" month="August"/>
          </front>
          <seriesInfo name="NIST SP" value="800-56Cr2"/>
          <seriesInfo name="DOI" value="10.6028/NIST.SP.800-56Cr2"/>
        </reference>
        <reference anchor="Lyu09" target="https://www.iacr.org/archive/asiacrypt2009/59120596/59120596.pdf">
          <front>
            <title>Fiat-Shamir With Aborts: Applications to Lattice and Factoring-Based Signatures</title>
            <author fullname="Vadim Lyubashevsky">
              <organization/>
            </author>
            <date/>
          </front>
          <refcontent>ASIACRYPT 2009</refcontent>
        </reference>
        <reference anchor="SP-1800-38C" target="https://www.nccoe.nist.gov/sites/default/files/2023-12/pqc-migration-nist-sp-1800-38c-preliminary-draft.pdf">
          <front>
            <title>Migration to Post-Quantum Cryptography Quantum Readiness: Testing Draft Standards, Volume C: Quantum-Resistant Cryptography Technology Interoperability and Performance Report</title>
            <author fullname="William Newhouse">
              <organization/>
            </author>
            <author fullname="Murugiah Souppaya">
              <organization/>
            </author>
            <author fullname="William Barke">
              <organization/>
            </author>
            <author fullname="Chris Brown">
              <organization/>
            </author>
            <author fullname="Panos Kampanakis">
              <organization/>
            </author>
            <author fullname="Jim Goodman">
              <organization/>
            </author>
            <author fullname="Julien Prat">
              <organization/>
            </author>
            <author fullname="Robin Larrieu">
              <organization/>
            </author>
            <author fullname="John Gray">
              <organization/>
            </author>
            <author fullname="Mike Ounsworth">
              <organization/>
            </author>
            <author fullname="Cleandro Viana">
              <organization/>
            </author>
            <author fullname="Hubert Le Van Gong">
              <organization/>
            </author>
            <author fullname="Kris Kwiatkowsk">
              <organization/>
            </author>
            <author fullname="Anthony Hu">
              <organization/>
            </author>
            <author fullname="Robert Burns">
              <organization/>
            </author>
            <author fullname="Christian Paquin">
              <organization/>
            </author>
            <author fullname="Jane Gilbert">
              <organization/>
            </author>
            <author fullname="Gina Scinta">
              <organization/>
            </author>
            <author fullname="Eunkyung Kim">
              <organization/>
            </author>
            <author fullname="Volker Krumme">
              <organization/>
            </author>
            <date year="2023" month="December"/>
          </front>
          <seriesInfo name="NIST SP" value="1800-38C"/>
          <refcontent>Preliminary Draft</refcontent>
        </reference>
        <reference anchor="KEEPINGUP" target="https://eprint.iacr.org/2023/1933">
          <front>
            <title>Keeping Up with the KEMs: Stronger Security Notions for KEMs and automated analysis of KEM-based protocols</title>
            <author fullname="Cas Cremers">
              <organization/>
            </author>
            <author fullname="Alexander Dax">
              <organization/>
            </author>
            <author fullname="Niklas Medinger">
              <organization/>
            </author>
            <date year="2023"/>
          </front>
          <refcontent>Cryptology ePrint Archive, Paper 2023/1933</refcontent>
        </reference>
        <reference anchor="NISTFINAL" target="https://www.nist.gov/news-events/news/2024/08/nist-releases-first-3-finalized-post-quantum-encryption-standards">
          <front>
            <title>NIST Releases First 3 Finalized Post-Quantum Encryption Standards</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date year="2024" month="August" day="13"/>
          </front>
        </reference>
        <reference anchor="ANSSI" target="https://cyber.gouv.fr/sites/default/files/document/follow_up_position_paper_on_post_quantum_cryptography.pdf">
          <front>
            <title>ANSSI views on the Post-Quantum Cryptography transition (2023 follow up)</title>
            <author>
              <organization>ANSSI</organization>
            </author>
            <date year="2023" month="December" day="21"/>
          </front>
        </reference>
        <reference anchor="HQC" target="http://pqc-hqc.org/">
          <front>
            <title>HQC</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="BIKE" target="https://bikesuite.org/">
          <front>
            <title>BIKE</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="PQUIP-WG" target="https://datatracker.ietf.org/group/pquip/documents/">
          <front>
            <title>Post-Quantum Use In Protocols (pquip)</title>
            <author>
              <organization>IETF</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="OQS" target="https://openquantumsafe.org/">
          <front>
            <title>Open Quantum Safe Project</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="CRQCThreat" target="https://sam-jaques.appspot.com/quantum_landscape_2024">
          <front>
            <title>Landscape of Quantum Computing</title>
            <author fullname="Sam Jaques">
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="QuantSide" target="https://arxiv.org/pdf/2304.03315">
          <front>
            <title>Exploration of Quantum Computer Power Side-Channels</title>
            <author fullname="Chuanqi Xu">
              <organization/>
            </author>
            <author fullname="Ferhat Erata">
              <organization/>
            </author>
            <author fullname="Jakub Szefer">
              <organization/>
            </author>
            <date year="2023" month="May" day="09"/>
          </front>
          <refcontent>arXiv:2304.03315v2</refcontent>
        </reference>
        <reference anchor="AddSig" target="https://csrc.nist.gov/Projects/pqc-dig-sig/standardization">
          <front>
            <title>Post-Quantum Cryptography: Additional Digital Signature Schemes</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="BPQS" target="https://eprint.iacr.org/2018/658">
          <front>
            <title>Blockchained Post-Quantum Signatures</title>
            <author fullname="Konstantinos Chalkias">
              <organization/>
            </author>
            <author fullname="James Brown">
              <organization/>
            </author>
            <author fullname="Mike Hearn">
              <organization/>
            </author>
            <author fullname="Tommy Lillehagen">
              <organization/>
            </author>
            <author fullname="Igor Nitto">
              <organization/>
            </author>
            <author fullname="Thomas Schroeter">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
          <refcontent>Cryptology ePrint Archive, Paper 2018/658</refcontent>
        </reference>
        <reference anchor="PCI" target="https://docs-prv.pcisecuritystandards.org/PCI%20DSS/Standard/PCI-DSS-v4_0_1.pdf">
          <front>
            <title>Payment Card Industry Data Security Standard</title>
            <author>
              <organization>PCI Security Standards Council</organization>
            </author>
            <date/>
          </front>
          <refcontent>PCI DSS: v4.0.1</refcontent>
        </reference>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.bonnell-lamps-chameleon-certs.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.connolly-cfrg-xwing-kem.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.hale-mls-combiner.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-hpke-pq.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lamps-pq-composite-sigs.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-pquip-hybrid-signature-spectrums.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-pquip-pqc-hsm-constrained.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-tls-hybrid-design.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.irtf-cfrg-bbs-signatures.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.irtf-cfrg-hybrid-kems.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ounsworth-cfrg-kem-combiners.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9941.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9528.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5652.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9814.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9794.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9763.xml"/>
      </references>
    </references>
    <?line 1459?>

<!-- [rfced] References
a) Update -01 version to -02.
 
Perhaps:
   [PQ-MLS]
              Tian, X., Hale, B., Mularczyk, M., and J. Alwen, "Amortized
              PQ MLS Combiner", Work in Progress, Internet-Draft,
              draft-ietf-mls-combiner-02, 20 October 2025,
              <https://datatracker.ietf.org/doc/html/draft-ietf-mls-combiner-02>.
-->

<section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>This document leverages text from an earlier Internet-Draft by <contact fullname="Paul Hoffman"/>. Thanks to <contact fullname="Dan Wing"/>, <contact fullname="Florence D"/>, <contact fullname="Thom Wiggers"/>, <contact fullname="Sophia Grundner-Culemann"/>, <contact fullname="Panos Kampanakis"/>, <contact fullname="Ben S"/>, <contact fullname="Sofia Celi"/>, <contact fullname="Melchior Aelmans"/>, <contact fullname="Falko Strenzke"/>, <contact fullname="Deirdre Connolly"/>, <contact fullname="Hani Ezzadeen"/>, <contact fullname="Britta Hale"/>, <contact fullname="Scott Rose"/>, <contact fullname="Hilarie Orman"/>, <contact fullname="Thomas Fossati"/>, <contact fullname="Roman Danyliw"/>, <contact fullname="Mike Bishop"/>, <contact fullname="Mališa Vučinić"/>, <contact fullname="Éric Vyncke"/>, <contact fullname="Deb Cooley"/>, <contact fullname="Dirk Von Hugo"/>, and <contact fullname="Daniel Van Geest"/> for the discussion, review and comments.</t>
      <t>In particular, the authors would like to acknowledge the contributions to this document by <contact fullname="Kris Kwiatkowski"/>.</t>
      <!-- [rfced] Would you like to make use of <sup> for superscript in this
document? In the HTML and PDF, it appears as superscript. In the text output,
<sup> generates a^b, which was used in the original document. (Note that if
you would like to use <sup>, we will make the update once the file is
converted to RFCXML.)

Instances in document:
 2^{64}
 2^c
 2^{(128−c)/2}
 2^64
-->

<!-- [rfced] Please review the "Inclusive Language" portion of the online
Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language>
and let us know if any changes are needed.  Updates of this nature typically
result in more precise language, which is helpful for readers. For example,
please consider whether "tradition" should be updated for clarity. While the
NIST website
<https://web.archive.org/web/20250214092458/https://www.nist.gov/nist-research-library/nist-technical-series-publications-author-instructions#table1>
indicates that this term is potentially biased, it is also ambiguous.
"Tradition" is a subjective term, as it is not the same for everyone.  -->

</section>
  </back>
  <!-- ##markdown-source:
H4sIAGVh+mkAA+y96VojWZYg+F9PYU18/SV0yQQSiwMZkVm4wB3SHRxHREbm
1JftaZKukCUmM4Ut4ArS+3Xm6z/zEvVic7a7mUwCInN6anrKqzIAyewu5557
9iUMw1YZl4k6Djaus6IMP1dRWlazoJ8v5mV2l0fz6SKYZHlwlt7FqVJ5sdGK
hsNcPeAbn/v170ZRqe6yfHEcxOkka8Xz/Dgo86ooezs7Rzu9VmucjdJoBvON
82hShrEqJ+H85yqew39HodIjhd29VlENZ3FRxFlaLubwxsXZ7btWWs2GCgY9
Oto/bI1htuOgt9M7CHf2W6MsLVRaVAVNqVqwxN1WEqV3x4FKW/P4OPi3Mhu1
g2Ixy9WkgF+yvMTf/tKKchUdB4Ozfusxy+/v8qyaHwe0rNa9WsBn4+NWEAaw
4VarVZRROv4SJVkKky9U4Q4tI7qTlHk8KtvBKJvNVFrCJwCCWTSfx+ndX1qt
qCqnWY6jtwL4N6mShOFzksdlHgVvo1Tlf1OKvs3yuyiNf4lKgMlxcJXdxxF9
PopLgPjHLB1nKX+QVWmJp/BjGpdqHHyAycbZjL5TsyhO4PQimqAzlAn+NcXh
OrDMjeXF3MZ5NYsSVTxGeXCjxuNF58MLVgSLvwM45bz6XN3RUx+iPI3K6D7y
l3qRjuVlvcL7TunM+yXHedcu8zSewZ7irAgGo2kWp3GURvdx8YKVnpRTQB1/
Qe9zpUbKW9FYT9Ap3Al4UeFQJUmYRMNiJRRnWQn36TxLEjVU6r5hYafxXdxX
eems7Touy2JY5XdTD4zXJ41HPSjhUhRBNglOZgpQzwdpGc86Uz39v45hshFM
5q03TuECXXaCT1VaAOaXPCvv4DK+V7UvYPnHQAHokgcfET5qTF9oMiHf0Wdw
GZQq4cru7+wEgwwu57gMbrJo3A4GFbwZdHd2nJ1/KsvoMWoHn9ISsDXz99sH
2I81Do1hcR96H4Ld9/vufmew3n/N9Ho7AIxWK83yGQD7QcGlCy4/hh/OLo/p
HU0IL7NxlajwY1SWAJ3wbVTgDVKL8CwdRfOiSuiogks1msLBFTMEeTqO8vEG
DxPld7jHaVnOi+Pt7fQhmVeAE/Bo2bnLHrbxF/xk+93F9WD76mJw28HfOr2d
3c58PGFAwdGpAmkorw3/4ZMBPokkb9d8fPrp4hjg1jnY6R3S2J1JPC86+hFD
YOhfaF6jc8Mh6RNDSffCnUOGy+ngRN5aCxhE2DJKgkF8B7e6ylUNHP8IPPYM
PJYW2AwjD0R7+lMPQt74/IQPIgdGHpAGH88bYELXDQhUEZxHxfR/AUz2/yGY
7D8Lk/1XwQSeKfzbc50lizSbxVESAr1TwUkC8kBcTmcFyQrXOX74LhqV8CkT
vQBAAyArRrkCCvAxu4vkefwqMBJJNptXpcqbL1mUf40fOrC0bYDO9s/4Tjif
bh/t7xzu9N6svQiWPl/D/HnwU4e2Zb4nenjtfAh8HUSNEpj5cfA7eSzK/xQ/
HNfnfeg5l6t7dARiSjfsIYTf59mDqoPuJJhEQER/lh3PmMCMAJEiDUSCIYwX
DQHR4LSjfDRthsg46USjGYFknMXbcNTd7t7+dm/3zWF3r4M/Dg5eCJeP2X3w
oSNrXtrRG9jUSrgMbj/1g98cHQAE82yk1BgEEWJOwG+D8hGeXYQqvpuWU8CC
tIKtnvQvUXiaZ0UMMAAUuJ0qECjxHUYBGKEdzOedoNfthb3u0Qp6qRG8cdc3
S/f4BOg5wGFMAP40LCNg7und8k0uCFuvq2ESj0JgCiIpF4uiVLNixfWunQWi
qF7Z7v7R7t5Oh370nrt69khusjRKxsHHTnADnEy4q/8w4e0J4m00i/NVD8AI
J+ME2GXq0pR3aphXEUC9e/RGKEvT6eKJzCpEUbzH5lzhCNvBQ5bgEbWDNIOf
fGLd3k7Y7R2sJFXemfmQwUN71z8AJeKYfz3cPerqX/f39/Sve3sH8uvezi58
Cr9f3d786F80/GQFswZZhc4pTsfqa6eYlrPEwfhJlBQoEb7Ls3G2JDjoT5uH
nuC394rRoGHMfhKBsjO6HJ0lMcid/tDyZaC/bZ5ixE91ZiNFT62a6t1VAyd7
d/Kx/+kKzh5p0LusgtPJg0R4/ZD4GoiJc6DcQWFvA5KEwMJzeddRAmgT4hsd
POttF814PctH29vdh5Nr4fOOrDYAhMmqIqQbV2fD/J2nt7aDHlzVs3GMyLnx
8rv1BxWl4fU0TuL5HJAZFJCiyLzrcVLdobSLnHf5clwM3l4FcG26b7qH+zu7
h3tvDL0PB0Swa2vn735TGMLPZB3Jj6X7MYB6DtJ7lKwAdBKn9x0QT32Kv7O7
fT1dFDfq4QRYfaf3Zu/g5YDoT3MQQ+BS/x9RItqaAOATsG9Qw5EDHC1DAGck
tgXTxuoxOBFqcLDD1GBP6DcsJuy92e++gB407+N2Cnp7Gd6oOYj3NahquYGf
Qd0L7kSqAn4Yz25nBSTvkmwYJbD1e6CQMBxIHSxZENFnUrctZxWWvIRShg9z
Gj7E4bdfDunLeDQFKTK4zApR2FY+CaiRgUoIgsEy4N/TyoElFPegTsvaa7Ji
l2QQxMnP/fD0arACbIbXEr9Dqg7PrgDY4+NjBwCTpgSmDHAj3Nnthiq1oupL
gHAdVQnoxpNJjRmxgLsX9noNl61/cnUVfJpMgEhp9tOfxmoS3IL0lGZJdreQ
r3PQI/u3n3BpJJehCFvb/GoTmJbfRWRdAYhRkY+sDD/Ps7+pUVlsz3FYjTAj
Z9jV34SFP+FrhPJgmbNk1XiSRLmq7RdfALozT1RUwBoCdzlBUeVzuARqxV6H
ANrOyIyMJgTSWkJvT3qQV9wFUKGCn0CkUfkwWkKEHsmbDSKJ3WPwFlaGux7s
dGv7PVXIhwijT0B+AipFMst1DkyNCJYj14Gyj+eB+skALucMeN1AjVCXi+4i
JAwgN0Vz5E2AcFmh0qAfz6cqL9VX+Koso9H9CsgpgEhaduJolNOF6e3sdIFa
H75a+uvn8FeTZGef/GOMihbqLtXcB6UI7T4QCQPpzqhrXGRwgozoQbXhcs6B
3jtLfXv+YeeozoWrIfxSAhkH4ZKJhpqAIE1QBEBfXJ2G/f7JcfDTVPExnGeP
tDjczTRKEpXeqfBUGdAPFWqG8EX2qMa/fzlAj7b3uq8A6GU8jfPgrUoQgdY+
eapSwHIkU1MVp7+sffYMrWUf4qT8pQb6Bp75EtDrTb2/vDk8XNJfxqKqGOEs
KAhvgbF6aBtptB0R2oaA2UV0B98Tzq5SYeYqAzLRGRVRnHRmcdlR42q7iJOH
ONseAOsalWr8X3s7g1EM24mB3sIftPBiW3Qo/NbIjdsnX+TjL+bDL3zPvvA1
+3LC6/2ir9kXvmbhJa/3C9+x17EY0IUmcfA+S8aPINQ9c3cGtDvkzVES/wpt
TGRFQM4EBKXDBqI1uDi5DP4Aoja8jqquo+CSwNR946lPvcNuuLvG0mPFpd03
28Dp3+x0kc9ff+6fXF/UWd3nfhAG8DlMUKpVp+4ztP7gpr89Ax0+2r7WvM1l
maHLMkEGHVXk8dhWX6MZIE84iRM4+WgehzTnS45uLV8DLf7w/KYuwSBJKTN4
iChfb2fvMBjGJT4MRKlUd4CSSJ0OAyA78GtVoJDT2wlmcZIgyUmzuFiALA4v
rQKLtTZFw2K7e7Sz39k5erN39ArROo/iu+B9PE7V4jl5DxAiOLtXeeRTEZTk
9sLu7jJasTHKLuthl4HV3Rn0a8B6C9LrPQIAweOwvBCoc/DjHOdCxERSTpbO
MJuAyKvCk7xcIwz+XCGk4YKloIiKP4QEhu2hzBfmRQQCop4vrGgqlHrgv5G4
P+qQJGT47Iz9Ecb2gdI9CncOGCiwo4F92yjScT6qAB0mzBVR7bJKluBC+i+7
Lz1/z9oIMv/+ztH+K0lSqebTCBSTtyoCsncHMl+NW+yGO2joWnXO9enptD9e
vP30uX4zPsZD+BDO9tMc2K+WcwfRZJWMBwR6Wg3p9DJ4xUp18AoonMPsZw/8
V6DHoncWkXN/ebnoAQXIH72ZHAwPUX37sICHB/G4LpaeBPhhCAJBmqpEhCm2
Bp8DeB5RyLtAioLkJdLCRf/mz4Pbk4+DkIZ9sajQ62139/ZfYXr7M6wK0eQP
z/CEKv5FBT9F6d3axz6g0BNc3WXrJQkQjKLgtBrm2cN6/fBjnFYFyNCj+6RK
a5jUpEC9QO6wEBpEqw6swAMbyYFFzoHNouJejUnWK6bVZJLAH0U2KekQ46VD
pBnWWTgKPECg4YSUSBtHiSJTx87Om+2iu7t7CBSgB1cG1Lz9cPflx/rPPojb
aQZ7B+4OQKnbj3q0wr2w6ZYYcWDiaqDxyERZOOLBLssFe3u74d7BzvNywUoY
4Zn263aphktIPpmaY/TssgCcAdBlJWhS6gF2AR8PF8F5fAf6UPgpHwMaXUZo
Trl7zbU86r6Cob7s+F54KV9+yldxUpDhosirf9pt440LmBuu23uVomefqaR/
6eiAQMUKRej37bfXH87oJsKZiXKwisMtH0j3aPto7xUqFSjVBawsCm6ih/WU
clD9LVvAZtIpPJytF4dO0moezVBXLMtsHo2ni2j9CwOALrzwdhrBnajLCr/q
gAwgLkGvvYOx6laG608fP4COe5sBjRsXwUeQeEBfCW/gVqJVB26JZ2aCwxLD
AlsfAt/68Jobc/jmFQSvn/z7/0Taq01u6dqn36o0+/f/CyM8hjo6ZeXA0ygH
QT+4zGbx+kGFRpLftVj75Ls8Sv/9/wTJPPwToBOcAxvkzFL+8UvHsNNn2quL
Ts4hJqjiBhikg3ouCqxMCU8qDCIq6aMxn+JXvJ2gW4O6VGajbJXtPlZKfZ1j
oFQHfxUTPqtP20eH+/u93rNme/Lm3XaCEP53C1r6qkcG8Aj877xqJoL0zJ/h
mUscRq1/5rwDh/3cQOc4mX5k3TldnJ2dsWjq8EAy6IrrPxhko1iVC2F/wv1A
2Q27ey/RineOtj/9oY9BDr1eZxdU8h3vzHfXWYP9w3U0JW1WEeuEYwRs4p+v
43+v8NVcqiQuiig4+SWroqxaT3H/XCVxFHyofske7p+VY7JhHFFAXapgQ+tN
JuwxQjfLA+iPf8zVWMEtjZJ/HmdEkPSvBie9cKcuhKZpVqUjFM0FaWYqH8WA
RlckXqIXH+lsXC5sUIqEnfU6q5xBZO7ojNVEpYUiKwgqN9uX0WJ7dwctjbtv
eodv9rrbIf3/znZ/cPIFF/gFxvxy8vH9p5uL2/PLQef69N1zp8nGjsGJC62B
mpdGqeqJWPAuipNl27ZBSfwa+Ykjs4nlVZuwfRFusFYUWBa7gajBonIjdh+9
OQxBmtzdCbtvevtH4cGX10huf0Bva0yhN6e/OUkfnmMFn2NArffVekGvWfpe
JVQk6itwE3Rkgzj33NPvEKvz+D74I6BXhHRJrX/hIr3L4zE+Poyqxym8XZdD
UBfYOVi+FEthJuKNCkGS69ObbRAvRmTsvUKTGhq2LLVEW+xIaWWhC2oCU8z9
g/1w/+gFFHPN4Wo0rDPKzU+p2jIYeFGQWgAH9mnO8a1vs6wsypzjn9muRN5u
MsjIa7QNH0WXvTH/BGzd23/TexPufunWyNNOuLOvg5r+H0Hhy3//n0ytb7Ki
WE+q3ynghOk4C/4Y5zo+2sORkzGQ2pEcvSWiYXD2482n/s2fr29pS69AlF53
5w0jym64u/taLHGB+nZwEV5/rtscPztWpGDk4/WkAn5BFoGkaAdAq3KUtcag
VSbZnKzJpMDkisPpx+yNX2OKHBZxZwiDAgnfHoBgqsan2ajYPs0e0ySLxsX2
2dU2LHP72nXuv82z0RRgte0avDz/bAcDg36fpj8ARzp4Xjgjyg7T1PkgIhq5
dK4/L4ekXbveWPh6lY0+7yzmnTLbnrO7Zf4z2laBOLzZ2esevc4YeRqlMQgr
f+iAvJ+DVKOeEeCvIsDJ4FyldN3W64Po3f+YVWsf+ljdq+CPUYIIUCOSb8ja
jaRncB0e7uyE+wd1xLrxsIIoCoZtnwLuPuiYbYzxI+yngG7Qx+DYiynpQesJ
y+oQ3cFcoZjhYRBF1A6uO7LQvPe6czhLIhSi3kb5/TNg/RgnwBymz7Cgmxio
YD6G832IPZOtjWRabT6iAOLB9XFgNlMnATaI2N0ycolFZZzENtAsjsqQoxKD
n0AIC06GWV5isOJ8biCILhxhAXTjJWI4vdMyi3Elbujhm6JStEAdsTC5HRX4
EdxjcqfuH3V7O/tHB+YXe0r1Y3Lh6vrX4QLMcJvDqJiqh+JeWyN8TxX+84j2
4OJE0+YdwekuAm73sF8H12UMJIewF0CyOkJFf3ijYEmpKlAbVAVF8JxiqpUJ
YQG6+scsAd0y6B/rtxzjhDeoE0RzAUvPM6Aw0RA0YJChKQ5W5RSiB9xDAqvW
nUY6GmXKXqACJO9iG0RroAzlNjsHyTLa7W1jMthMbzykuJJirkE0Cuc5qDuz
OI3yRUiJZK8+uJ/Q2xfNgiv1OM0qc0irHr+s8uoujqagglbzebSIXjg83eBn
niWlKQCe85g+8+R1lGZF8CGazZ3EptWP/wFQ832WjU081eonKzRqoM2ufObJ
G1AHUTjLgUxUz42aTUFSz62FbhVwl7OK1kArUYB5OQpEAIRnHj6v0FoFog9c
VFhKZi0VK174gEfx4REo1H32WNw/8/RJCqiWLmCa56GG63hb5elzhyYqNCz3
OkI/6nMwRtfh+zhxrXIrHn0P9wVlPcNbVz55VqX3iwoox4d49hwBzBJgUQC3
CjivR/tAITWKq85WWpnWhOxFE8AGenlt7ztTM3jmw9nZ9cXV+x+v/UjpD0qR
avHjPHhE5oIqBvoo0NOaZyimWDMAiMLEa0hSQD8G0jSgH6A7luS0sjFi8LUY
0ediyyuaY7AbTDm7292j3fXZWM75RxjFDIKI0SGanrIq62n0dc1zV/F9AgNe
UuKFl7xhTuW1VhizGzy4dxdXJx9rwfV4njcKYwpBz3gX5yBf7MJPAGb8Czoh
XBbm6nWaPzXDlRiIkb3UYxGSq6mg3xHKe9s7nP8W5jJ5OMHJQS+Z6Mn94EQn
/kCHWxZrT2lNzhzHHJxcDQYXtaQe/CjAOOhCR1KsZuKgGKcFh8ttIqgBMzH0
LajmWysi/tHXDSCpHjqTvJGjGjsyD/Wlmn/B3Bqc4wtpDF/wF1jRFwHLF0/P
0Xx1LUhojzXcCrsStHCuFUAToPO5v7wZDDEDnj/9ebQqaeHtxYczfyD8pBks
Q+AoBVr2Vg12/fnHi+vwp/f13DXnYH4sFAg9xnRfBJuUEC4HsRYelKnetC7M
3IIzHgHJ7GDqOy2P0s23aXAnaKph0SaiQ693KY4jkLisZqhgDIccMiq0KxNR
bj73OWren+0jXJFiBCiD9HApTrx5yiKahX8DPqaKTjSfF/OMco21Xv0l0UN+
MbkUz1PIAchVf6AxGxZP67I+U732M3KvmDCDelIhXMlHZAyOxX4FGfJDf3q7
O3udnd3d7v5LqTu6S36Ogz9Vax56p/JpVAZnsN5ozWN/iO6rYTD4RU2WCDsZ
sI6WyDsHDNlFUxz8yXgMytSai+BSKLQ3cUJNlDSluboq9PpgQhNBiNd+HN9h
itB2U9T7a4ixoRXX9avyNslG96AEg2pUY0F1TfIFrvDD7YP9wxee+AcQMFCx
ilF0xxjn+zhax9n/EGGouasNND1FIvO5ivJ1D91ms9kCLQSJmkZ3at2jF3cZ
Wr/LMls3HhvV4ZDzDI2dv0Z8MLC77tcY5XW0IDNMHw0VF+m4KkqU9uAOWIHN
T6Neixkw/vJ7cALkI0qaqXM2KkC1fOjMR3EhrxrBgM4eBv2vvZ3TwWBbj4gf
hfBB+LD3ZedL1/DLuv7flD6JS4RXj4MHuI8d5JUwVGeYIfnBQhKzeYHhHTMQ
Z0BEwUINkjA8jot5EsFlPLvqh9cnFzdh/+zmdiADwDygsyeLcDTJ78Kvj2g0
uVez2qt/Cn8C6VleAbRU4SyB6bIZ6Hcqrz18/Tm8/KjHp5ot0/m9Cuc/Lz93
fv3hzH2QtzH/GYcmwUPhTa9vhOsNhH/q7BPZMm9zaZjpYpjH49BEtofFHEgH
qBz1Yc7//Pbm4jQcXLwPB9dn/dvloUjIKGYhFosBTozkoDZG/9PV4Pbm5OIq
PD37Y3jd/+wOUgKMZDVjSiapvXz7cRDCIsIPZ38Oz/7UP9fv5vAuHcdwWNh9
1Jf/9u2A194/P7s8W3pXJoazrL8IcAcFRV4w9S74LXjcHGv9PdRq+p8u315c
nd20WmEYBtEQwTIqW/Dv+/8CH2DYb0UqEIxNltMcGY4inwPcEnLrtFr/9izq
/qXFJX/WPhTuvGldnA3ec7TxMc4ZnH0FngG6GS2i293uHWz39mXGFbiu51rx
NfLG18yydD30+EtfoNvoRgFwRxwD51Q5ch+Tcd2bpId0Pwt3dl+1znUXzht/
xTOoxNB8Bc/nmLRBo0OJi9TilVM/d1u9NTz3sEEFWczNu35wNgbRTVXq2TU0
XPOGyRueCnd6rwd5UUxnIaaOz7G6Bf7pTbb8NXp7CbjFlAGKmzs62uu6oy7R
Gm/QpW/D7sFr4bWCKpl5Vnz/2uvTSMGWJ3G+fC0ZWEfy9ETrnsHyYe58oC7E
+TKqh+HvhCr+Wz6BG/6X4N2fL4Iw+EkFjyBlBeOM9HvWtNEI9Yh5bo8qAAR7
QAMgfQtqOZry4Xz+dPkRSGe0BVJJngPai0RDxZZ8UhsoLHrE1T9egMWdVqvP
vlMi+C+6HYH3T4p8tYPbTjv4iWKOT+G3QTt4Cz8oiLTjGErjdu39DU7bAhj0
7STBqXqIkW9QJRhHCK+97GocGzB9lt8jNEBluAP0K9rsjEhVGZIxsC0wqY3y
7EVvB91Dk8qOYT31TXy/Vm8HcXEb3cDbSydSG6Z59t/BIQ23dJINYoZW/hE7
4nSUVGMVfF9U898FisPk0QYBSz3ZOwywvtUWjDAyI6zmSDjeCkYE6wiKGBEM
n3sEfM8199rEJC2WzgMOY4T57A0A3KVjtCjKOTzB5ksQdAvw/nv7apSOAO9/
2HgeTzdEav9h41eeTfNhbJBM/v0kBxldi+ff095/9ypE9lD3+20eQY8nt5sS
YkEx+GHjtrOBadZ43X/YoBu3YdQt+Lah6N7G7yxufe9WjvsdVbT7ftv7TE+8
zTOvXsipuxC87e46TqOUKMDquftYFO/rr538rTv5IEqwyJMz/VsgofLpygX8
+MEG+fXRJGpVvz5STvVr1/bBXZtD7twF1nxG8eplXn8eTGOVjF+4GrpOM8DI
6Q8bQqY2QLFc/LDRPdwIFqD9/7CBZGsj2Gb03bb4+z27Wi7SSRbwMn2auRE8
REkFH7/0guAc32+bK/u7VsjEoHULlCsaoy0eeWXkRvRg5myyCNAe/4C+ZR3M
MtJmt020NW4Fj5QADuOiQ6Nw8wyjHKg7rMLYnLgIR3CvFjZvrwjGQLSyBdzL
MgP4BNmwyBJVqjYycKSsswj+i5VkqJhWUVSzOXt+KpxyHnNGFzwT54HW/GVV
aRYk7DaaZsm4E9xmsNsxsiF4PgZeZPxBxBXjdJJHALeKg61mGF3hWPWBEntF
Fuwe2iAsxKNpgHlRLNDRdgAq6JkPhhn6shxA4GRmFA70hMXBiiwbwZhyDE6G
kReBKa0awH9p5CGcG6Vh4bHBaAQLsnf4a/RCtDav4cBYAIgxMKuMMAMGYRxz
bSDKxPvcJ2eH+hpzBIKUxzK1REY61x+lnIcseVBjqhhgAEXHsRJWneDHNEEL
2DwHOox1fzykE04EIMUTCoppPCkBBRARAcMxMR6gS7H7WPNCji/AsE4qDzGu
SD7DdVZpDFoPPjPHcH+uq7lqUaxAz+LxOFGt1ncopOTZuCINudX67OE+7g+W
ZpHrb4goEU6a5YrxFC7gSM1LBAy/pClcwfF6BM051dopfounQQM+YrQl1rN4
UIhLEa4YcIiDLMkjOjflLjD/TgfcdIi/YYR3NASOb15RkwlG59BkCmtnEriz
fI7mdF7DHdYvSgnlMH4P94Z8kUQaG7lHoDNT/7wEDoMjcEAS+Ae0Y6gIVOkD
6Z6d4ISFaKy3w6drsB1+n2uVqv0aKlQwGSq2YMCoDAArAkpTBmiNFbxYFaQJ
LGYzhbV8XbqzCUwiC+4B6imSmkbitEU7AmEKKDYc8QNcGIRwB2tfAHRyxFKF
yZB4Ze4y3K4BPkLXBaFU1ZggE0F4LkGxbZ3edxlnUAyrOKEzmQFmAfI+qhx4
F2dkAmTotJdAAsj8KVWUsgv3eLaAMeOC4bMMPtwfVi5UeOZRytpOqtnx9Y+M
PO/xF9gAHAYhpiZXhLV8qqOoUL8Fmok7L/iFrCrnHGQU3GHaW5SE8wqQr1A8
cpbCCcES0WyAVzrAWtF8TfMMtoaEtWHFeGzTCK9IkGLtJaD6pfsSDsn0GNYF
xPPrSCVIdfAuVCmW/GRlzEEzGLetKwxI9QG3wOVYF7hMTIHL9jJvMvN7jIkg
AquT+m4+G3TJcxs2NUenIBVAAEAjNgjS8D5jva/mYwSWQaU8cADZ9IktTFba
cLBIwo4d7MVJ5hmauDHpAqEzqYgJLk9VGui7pFhzkNQE/vpkXShEB8NBxvGo
1BHkXKVgEmDQxB1RRhJE8FLjuiLDbuiFqLhva0bkX7sqRRskcMwSqQVm4hsd
nrCAdPwhBpkqS8kQEQCZY7xGT0/Wd/rtG9yhs68AjgJJsbnSU6QTxBcwExoJ
AB7nCn7rUxu6ftlkovIarPGw0gJB7SLDbwoUXR/iB6T0jAPLVBemdylRnQFH
/tJq0o1c3SggQfFuWsKhY9LjEpCJAgKZzol5WOYPMyDvQIh2gotSM2g6M9JQ
jcdW2exnzZJI9NKcrihAIiMaSYwKhVvzrqG5FoFjxFyK9gGiA0ItEsQ5DTcl
uYMZt0d7mRajnIl/wuFeM3oVsHhkRwWrwjlfHjjlDR1nAqNlk422/QC97/A3
3BDzUa4DMDcIEHKdauxzJWa4AqNk/o7c0py8eHSlIQEGyTYH/vFIR9NMBwyb
AJZf3RFMmCe6Imjj7WwD0jH9xpIim1wQR8J9Qyk1ukXrOev3g82zJIlBFh8F
fUBV5anPWx0sXeNuk2oGoBNtbCRYAzcCuiQ8DRfL29LyNXBz/WXoVNgF+p3C
QaYRgRAl0hWEmS4hL8Tce+IEhja7TPSEz5GrBFrZGJSuRxTEYRy4dVY0h93M
UQrTg/K5El+fIV3iqrSMuaynwHVoPAbWPEA+nhN3FnHMpbZs05EN4ZckrWvy
yetkioezdGyXB6NAOArDlIvumIIOq4Rkwj8nzLut35Qby4YwRDJUASdwlKp8
VECAjVZGQq8NO2ZY6EGYCA4BCYgMUb3SMpaAZZKMNGfRYOJLgDtC6dIVSIBa
IZcHATpVIUwXwk9tHdMX0m7st7gzWNGChBhh7ax5YNg24DHBUrQdo2zg+a1V
IBGrRySGGTOhe4jjeGKccWQvLrIqR1tcCXt2pA8UFIr4F2UBWtcl/avWCU6t
FoRycAicgfinRHpwam6h1T5sawECTkXtOrT4xXqVxjN9eTGoG/FnmiNlAfmu
JsfneO1EkmTpH+TJSSzUDSWG9C5R2vXYQQOE+3oUzwoh4Q+wbi01BndVPKY4
dcITjcrY7gOnQJnDu0ZJPMyjnNhEChBDC7RGwXbTOTmUui1IhZpdCHRgZpEX
kIcluhhV1grTRhDpHNPviOqCwyLnoNUZUlpQhTWqxolcap7HiAx16ujp8EY4
cjBEnz2+KFUGmhoagF6D0bBMpV08OYWxYhWeqyQBVA82T8/5GaD0YVEu4FTu
WVjmIzdmAjkLRNECxQT8hQRMETZrWAyDYPKXyaRuuzXtEIl54DlWFC+oZBPz
X3d79aW7qG1DmBI4TDRjMOqqugwrZBs5gtH+PGsI0Z6omKLeO5JY4jybMfUE
1GRODlcE5BXhURjaS2HRzEj+QbUyQWO41lGRyjdxfwsZ1+xYoPwBrHQOsm8p
bACNJEj7SDjXxhUYHu8tCryoWRdZTWyPZtiSg+STLEOZOZLSjQ1z8smJVoK/
6qdAqjYCBFLjQvh7Gd3Dt4QuSAdhok4wwFthRVUmLSiG6YIBM2A+RPwTydcX
8RfFP/hdQot4JUlizUJldAcPm7yTwmpL1fwOeRLIi3fkh9EscJQR16SxLMwV
85qUCpv5L0YkLoOYgEwHa2cP1QT1crq4tNkOm1QbktZRt1kEm1eDky29U7/p
iwQ+j8kExLWRkLKJGuaRC71pdish5vw4CFJjYdJzajYJmg0n3X/7FnAYvMQy
a0AguScPppRDsJJyYcUJbb6g9TDhe6+QjwfvMKcaJpZKvrieC139G2PD9Xo2
3w4utkiHoitiN0y7MyfXlCRqaezTkySmwmYI7fUtihJA64IPz4esOQ1TVpmq
VZmwMpzPSZbaxLhEpo0ANst7hpVm2SwJUbCDQ+a1EcM/KoAtxXKjV5fgSOaP
yCFPZB12SEnqGaxqAiLHaPr2J2es5hcXpOrYWw/QusM3AIPFXrpUTe/pidqD
fPumRe9my5pD3WRpAdl2UX0QNQGu/Mvpb4SW0SChgF4s4s0U2RRZd9cnXThw
hVFSTlnTsaZs2DF1diEtnU2duIVyMRfFH+jTTIqHcLRPhnsBfkSkmow+wAYB
v0DgKKda2MQZaGEkCONJMJsQgcAI6wAp9If4gjbhK5kksITnBr43Y1ubJXMa
0Ym3zVSEFHLFoW7CXCtsSYy+pN+ni6CRTxlKgH2dopmwbKDgQ4y2tX/6R9QO
pISrW1QlpvKnKCNsXp70iy3QispRx3WK0FE8VEkqFmqAy7LZsuYBGWeKhXkS
q+pSFVt2GoUEJCXTUht7nFk3+XQiFEqUBbUd9OmJ66oDbUH4ZSjMFqDKtuqC
am1tVQrEjCVjx0jBV0HvE48IZBU4BiAklCTy+cPpFvJx9wmWePH7Bp03mOoK
iiyAJVlsTboKKBPSI4ee1wQJMvfz+ErkNNRZFVlhkgVr7LGDGZ4tGDVqiivA
b+ptbkTe1MUBjfBIVANuQ5VSRcF0sWQI1se/pAsYEN9lLEKwTUXNHd2exCAC
OSnvmgQb4xEl7PiCNlJx0VKMZAuLxGOkfgeehiF8UuudQmdN4oNxiRn3xAqz
zlQlcxLJeBTcN4+FAi3wQibjNQsR8gE9HPxt+NAdnFbK5MKFV8GVuI3YFRUk
w7BbOi6pE0cQT+hUQCcDqlEKtyTTq+4WoFDHxT/MfESCcX0XN7fvfqPbdATv
spwylsU0+h4TYYLN/rub9xja8h1w1HwWM0utO9AwRPk4OLGuZCKMYhgoXIeZ
LvG71uhjOHAFQ+j8KPF5Ad29Y6sG3WLT3YJKxB4HrWMSZADjAcJz/SXcmZKN
bXUipS9lTHbglC4i1hxmVFB5npHlqPURCIA/DfaHqpIyLLME8J88WUM+CtZD
UQVAQM/goXgOxGruLbUGCJ4KXXk5q9Lah0i2IKIEeNy0EQ70SeIGZ1EkWnhr
dVYb+YxpB/2XGDCHSyXLjR0JObCxs2mvN0hFS86+G32bljJ9OORA4LkUkEDI
XFQohVKVt8Q9hKLZDLpS0nI1OtW5A26GMg02TO1j0IMoQY5TFNXYCRb1R+uy
LQboA5MEX9wllpyzU3uWU9kewWqt4dgoOAUaCjVRJ35rVErlFDsjG7j5E108
qHOKIQu/BRpoyCdy42Yjj8icCq/qqo1Sl4bm/dn1kWLK5gbAzQVe0Nu6W8ca
poJoiEsBvs8mpow4o15KsOEaLR17PUliC/8Dba33rPiCtxsUcKeKEfBpteTA
kYAOkuSND0K3riXVRvuKh6gYw9wgFY87nCeNX48yNoY1L5ttDBPeHj5Tn39O
mmE814ox4jXivyoJoUOSOMTgBCATK8tvDbegNJavzhFqDk1nMUcfJ11jFDyD
jdL6VusLqUe6gBTJDjaHF07wUi67KEjp3rACKgcNsf1vyNjmhvJ0bF8be3KN
B4doM9RWD9eLzsZO19471eoTWR64PwIbTvIo5m5Z6E9MC61jDhXpBpG9lq7x
rmjCrsY1johJg+IrFoh0UhFyA2NGdgKvkKefFp15ixaTEcJ0klWpprZAY5ne
ZjkzI4OkDc6hwvjnS27MN2dnLKKoA2W8MARNOMGU76qLmBH6WFiGDUM0nsZk
ykeFiK36SFZ0meiCyknDcwTIKQWp0qVAMU5itZBus8+Wo2fZzmxluAJNFY8r
CSGSKhi7iOIxIzbLPAUZEYC6/aKMn4SJCym/wUOUx7oeCtwPckPQXEzaNJmq
qyWVmBrNgzUy5oGKRRM3zOgiXU1NN0TQRGpVj6TbYHKzIYRxw86B9u228VG3
Jd4GFVtW2BxrDh2NV5DLXGZx7KCMEDlhOugMsIkkKCp8p7tyucFiLoFvtahD
zEgikrQt25ilUH1GXCyyUUx0zES96NOgCIAl9m58hKv8mGwPrttsxxzGVsWg
xhr/iRPyljarx2Sktso1XE70q+QdaTSK1hHufQoffcwexEahgYs35jFbopqM
JUz+HyMmUuzPRXHinuiKgRMZDtiojYfrhUZ0lkVqwtg2WjKYfrLNHfR3yswo
/BAUNwDRj09DkRF2+g5lB2790V62DtHZFmwdXPL2Nwt8tSi4Us3p3laFw4sM
tcSQ1LyIciBDjlpDNh7mRo6DXqVTpDpj56U28S9BvIVEq4xGFPYp9raXgIIV
S8p/b7VOtI2J7I0hW4GXSew4MxIAG5fFVYLJQ2hnT7XFzoYK+gGKDUuh+wl7
A0qpkkQblLIMSBPTJmqxVDh6K1tQmSBIyA4GbRkhisIj55iOgJVZSndiC09v
BcxvJMhyfZALrtb37KNjFflp/BCJc3zmbRWH0/VaUHf8zjEZeqLj03fmrn4D
UoRIWqXGjydREkYdNGOIEKwf8EO/4Hs0cZFjSp8x0zUUjQpb4NIYeDX3AziP
8qwg+KNZl13/cQpQc++EUSCWzZhb2CLIXhi3YSQ7kKzOMhU3Q7KgeEvjlPSQ
h9kS4baqCSmOGTZcjjwTrZbzVgqkeFQsB5EDY0AMTD3boN7XydmAzT+mG5Vv
Gpw5vkl+4/zypB8Ozk96+wdbbVJOFbER2BbcClZjCir46JHsgoPMxT8A6GT+
mFGotEhCSuwjtfgnIrSrrdGomRkA1OzSsmxYcYhLtnhed91pCLDtmCLQ4pJU
KLLD8pYQ/FikKCcPMrYehw/XmFWDTYTXFofDGSw0lgMKTccFcdwAB2At4bfZ
jWgtFtQvhbQJrUIT/YqjHsFy4QY3GOxp8X6TVOdbVm6MPc6jj/DSGMXBEe5d
jau5ANz0WU2XiQCaMNscQiIxXa7MUJ8eiA7RUZROE3l8agNoQQXlaG4DaUta
EH7aQ+DE5pMzQVDDUwFIoSH5aJFVRkaSWFKuqwvXlg6McjwKWUwsxh4MMaLw
AHqEaM2yyzlXYTyD0yHrMvJ9W9ecLnBhd+gOSQkH7lNRsQa4eO5Nnhnn6BIT
tV9Y9wrOayNaxEjbKIKZW2Yjyk2uyGoZlfWqKi0FrMvoQ6RKIrI8+66hqglK
cTaiaKhGERobGnYLMKlGEntgfelUatGUwmQK3u0dhmjxW+HMged6//3pYO+b
wRc7iKbP7NcoSPvzRBUnjtVxDS4PxNHetkwvQlTCN0o2P1q5CCVeysGRZTnf
2PHEeqC0zQ0GRFNUkiiuF4bW9pXb4jC3odKWX4qpRaKIkR0zbm2Gln43Wo+M
Gs15CBy010x6pgC5ZEEGcbs+VnbI5q2MBs4YhrseNUnGyFf0CHy2MDFGmBFV
RLxmO+3yMkg5oZAFCm7AaHJEv3jGKSqgsIjUSYiwiegy2trufUOdrR2gTFFg
hB6ARjqd7R80yJ80AcXVM2ai64XmGGI0nPTVw7Tog3bQ3ent/QND7PYkljFD
MofOIXSqPT2hrUscaE9PtrXrt29bTmAaXqx0yohHMqj4vMhsI1FfJDeXjn1N
ZzGAwBECfOp8Pza4oWpxcyKVpwp1AFD7ERWWiDWH/DxqdYP0Jz6PqLg3dkeJ
x3CycjB3nLU+ZKvog4hRN/R5G9t9nISIJjxNve1jLKJzm/2G3sSrQDd6FI7U
MFwE7FE9CG0aoivbyKiMgV+R1LFLFCG74OJg2oygVSgQUP3QAckWMVKrDr2O
CxsUpt3z0jSd4umpiiAFbaXC0ZxI7xGsGe8+J+V+7rfZZBoXEh2+ZEUgEq2D
FdGTOF4ZtjpciCRgCIr2TZC3BBjUA1WtXpmiZyaF2QT32vzLkdwB/AMupGYZ
wE9HFHpCZ6N3QqGQYycViCpYq1XCPIzZNrJs3QzwspTCE5Sl4K0qKduGATmQ
EfKtxRBlhuD67jqYAYOc4G6z8ibxPwYvKX6awrXIWyh+3UJMq7UAssKaH7EX
Qwp/megcCZHSkw4coHvhRBLVtEmFC7cA1egXoTjl89FXmxgNhV1DttzIqLYN
OWJlq1D6uPFgSStd4dFotTbqFpINjyVSSLokWjbmGEmAOghy1qEccXBlPfFI
P7tl4gMk2UhOqjIhUyJaPcB1BW76t0wDc0XIiLGRikWK7ZyYkquxekYRLxJA
EbtZOsbq1eY3frMi7tFxpbVrAaltHS9EMgcZOiIJ4WE5XIcckdnWDdo4S95H
Mzjtp6ebd/2DnaMdQQXsegPyrY0/LfiRw97uPjAjHYYq4duSMGy5Qu5UAqrb
Bc1bJumQM3usJQPlTW0EGVlnKMeWUhsHfnfZtBalZMOvUkQbxQlyUUOGAnl8
nZwbMQt6hruirMZ4ZAUbt/1z45SBcZsjAojrkaCKAcHUeZeM4thmF4d84Dh+
UBUoY1uxyoBrczKy2bpU900j2LmfK5wM/Y6df/Xv2NgW+AMoRVhbhQ51hqwr
lbBzICiK/TlGI6wJ/48AOcqsYLEiSTBEVMgvWwPKCt7SgUDGxowOXThrHe+L
kFtlS7LYzBhgcartGIuwrIDc9rrBhir42wTBwuRMNxqyWZSq48YWdnZgTSRC
pjBCm54yzAT9HHLn8dbNI+CwOg3eKNes+VMwtvbhbAJ25KUGCG3RaF6UFHEX
30XDhTQeoWmenqjnBdyiNtt/WZ6tJVh4DkzKzDCZGsBrkKm0fZ69ijKRnpDL
XVhO5qmpMDgtKi+NUF41xWbcUZ328ySaH5lgkQnsiY2pvKtptMmiC5RkSoUj
ypRaQ9aZ09j6lsttyGohE03tWwsTHWaiSPx2rUCJDSvG2tx3bc4aI1FArjM5
i8iVDFCN7lK8fOi5vCfLApmUOfrNsdpJ/LPJcR49v1ITsY9XB8MkSWdGegmo
NcwwGhx/pacxaIuWifaYGrW11nqjlWpLNjmYmgzrzjtPT6b6rKVGEV1pNwjB
MVt7u3FGIoPBIpOTL0bZXO6l5/Uz50FxZnVImUA/6/7gcg/McMRewUK9qDyF
hHM4i3IYkE4OwPgcGyGzFKMjLpSYXB7fBbfOzfGR7trahsn52qdlvqVOEoZt
ghzfap0ABXk+ysYGHTZev7ZcuWDVlSsEW5+5ZjorTtWCUTUysmq9xJSJBROD
rTmDJ/BLoUygIFabxeiMxLEdk7uq0eZz3Gph4Ex0lytlslSRMlF6BFoEMEzO
f0SirNtOIHMtc7UpzwfDlvxczfpTZ314zhO9vIW48zGMkFfY4KK2tYajw0u3
5kFuw8Zl/9hx7FUJL8QeOEqIIiIkK8T6EGyhB19II62RdQt+3aCUKWWyivqT
SZyju5kx1dCjjhCgWbEMhctQM7QYLSMNAsJRAgCBxxpJZkrQWzyo5FN0V7ep
LZMRqyEAbS3ws/5c5QBzTeeY1itx0eWxiB9zap1E0kAnuPAHPD1vazlwGi2l
TlGM2ghzy6S42TK/knNh4SFEDDMpc1swurMZvjPOsnXFoAdFaVpKMxARZuvb
WPLjIR3GcVstXcTaLcp6HCx9anITXCR1PBc8D6nmJvyAPSAYPUGh1FUqgbRo
1ZxlYxMnR9wKZcW2zeEjbSyvhHNJHk4HmPkshpPGF+7dS912VRQy5bOAzWSH
ARk6h8minZfJU0Qz5cVFR8wO7tfTFytQCoNCpGAtIH7BtSFaSguOKOTUk7TG
S2fTDqZkvpDoCwrRYGuG6I80lysQLo8Bh/4WyMI0fJstVIqp6ViENth8+3aw
VUMD+MgDLAa58J0YLUKypeQU6FxHk8CWaiiCX1SehehZSdT4jiy12SSU8kXG
WEMaolSNlOA74T5JVkjCrfUec8wccBzKBFCFcRHyjdCWLkTG3MTfyVuIaJx7
5dqkaju1/lQcB0UJbCmlb+w6cdU1ur+CAloXNSlN5mZRElrNuGUWjK4BXTuG
XjPmMSBBlC729DQQBfKgcyRFjFfWPUXzMkjGXKbboRSICcuf1tmn8Yg5j2h4
4dqY5/luP7f8lxamyWbnVPTwt8Qn92xiKgoYktRK+svTk416+EZyGVkUMbHB
9MIFreBkhVZsYk9tgX5O4Vb15AgpQEQRiG4xmaHy3/VSAV2zP3WUIUP/bS3k
0tRRcm3wY0CJkDLfjd7IZOuVEdocrhSnLOtypDbZFsQShMUqXOuQ8E2pDcW2
1AjraWvfeI0iSFI480kOIbQuyXRVpTMrqGibP01kJEPxA3OSqVdLoDGOTYDE
WKopsybdzXlQnN0Rk9+Ckyxxj5n+w25zRq0V275hRwIimwencqNOkjEn+3O8
pJ+ijdnoJJfpoGrBafwcza5s1cY4YKvHn1xfBFRDQBbvszHha4aLOYEqNZM3
iYJu8TgN4pDcBwQKW9BCPtQ1D2KMkZckPgq0NYXTxqyk08XqY7o+VawLBkT6
xes/qHXD8EsPX1BaLMsP+51up9umH+JNOMC/cdmPpjArHkRCIXdl1hqqEj0w
2s1gA+j4FMaKKi78HksbF9UdZTEi7mjOQo9yDlSLoEyCobjgdE4zhwckKI8P
lAhiPBZluX1l2QaE0qFUFBxtwbqACQJsflJOkS5yA0S28QhVIqeN2zJNms4T
DEAtCtG9oHXfjXdXGzgZ/MQ+Axsi8mIHLdjjNfZbmXMM9rsI7uG7DPgNQOcW
0QOvXYuMFFe3Nz+Gfl/i5RYohpxu/B7WgMSa55QKziY8iNLuhWuYczzsdAkQ
3R08R2Rv3BgBP2wNPp7z77nAppb4ibHewOqZLgx44yyUL8/UcmciBKbwAYxC
w3UC78fV/6S02xPpswHeUsLpjzcfCbMEb/+NH/xLJ7im9OwW3nH1qPPUCr20
uHCqBw9JRnh3cT0IejsHHABu90DODFz4NJ63dJSRflgahAKKysFtvwPVIzOK
DZfs9dNqf49Jt7Ar4HpEY81YmOZccqkWLppMsYYdKtPt4li31fqUw+mn3N3+
vwXBv8FZAUX6y3FwmY2rRBlUYTGbGs42F9yQgq/6vgebuJqwt7OL8ogMfv65
DyOfRzM0taFxr4jD/mKUUBgX3QCHsOoEM1fAl0nqslyxwG6KM4xakHG0J0kC
j2CeEc0jA2AgE1CMlJxLN0qNw8sqSSTSi/4ewJ3HqKfNm8sbEKlHGZf+cBah
t8FMuRN448Br+iUWuE2+BMUUyRDkIQi1h4CqxOAbvqMH05tizCYpCsldUvOw
mAMPNJtx01tJPU5UfRcDdzlu6rrpliMaHleB4FLuOgmP/KWS1UfN0EiOGnJN
IyH2piEQ5ubogyHWsLoQ65z7JxGRcJKGZCAe3xG4MKOMyRxVhGdUPQ7qqPpW
o+qq2jBEymUSuTO7hPl04QlbseFb0IipzAcIlVmOXcLc/0TY/0RYg7BYHt9j
65bkch8bIbqIektEdxV/rhFZXaq7t7MnxJZGFV77l2MuAELngVG2K4fVJHvf
HUX44LEWASiANZGu1ks2Az3EwZZe1KbevebW+m/k2lvLVxrmWHWl1wgqfCtx
8paBRe1KCzheDI11Y+9b6PLgDBxYeLPsFTwje2nmuW5y4uxGLOFZdZ5c7ASG
mNQGjE4l/2mTZIaoObKoeeDKAseaX7/Ls3HG4sAyOTWmaN8E55A62VWCLd50
DLjcSi6ie6eGeaTN6W54reBXYUWHPjv+L0dnSQyqM6zo7YpZG4irWcr7bD6P
mK50vL/qRK+Z0MkoRqHVZAde5KKrWCAU62LpEXifrKKBagZkR4aQuHHKXGng
AlJir9C+Ra2yZI60Zkex/l4JUh9TMv6CFv0IypsFI6KgnKZ6yWluXIVwZmOF
SqdMeptXKVekmmfJIs1maCq/oXbFGBm6EWziJFv2DIPgjxKrIiPoviADqriS
kGSL75A3DQ0p1GfozUF3y6kzkFCZ2TsWgmWgit3+g8F5sLaRUY3KaLQ+DsgQ
sAp9VyGuTP4S9GVZwVwjPgdB5UDj8nPL+E98XsJnhmudJjB4EZOaQOqi8mok
lpU8i8rPILEM8wJU9pD45l0fO2j9RTZIt1Ua1nz33XcvrXnYamnRuLVCpFij
x3kMZzd4euKxyOJKUnGrWYPj956ezj9TGNOzkvE/IBP/Y9Lwkhz8CjH4HxWA
/2HR98VC7yqZ958g7TbKuRo9bSdawkISilZh4YtkLpLkCAtP0ZANV7DVMqJc
6x+R5kiOe3qSwWRoLcjByL9OlFs959MTD/7t22+DVEc+ttek8LSt3KfBT6A3
LSIkWu8VIuDTU+IadL59ezoO+L0fNiRbaONbGx7DvKr1z3BiQ4Fdj0n2b36O
/DQXg08vNhCvct/gGFNTRtbz3JDHwitDMbKTUXyFP8dvGTQc2Ve3A9rGd0U1
tAV6X0N9rXzROv5VEsbLZQvAKZmMCHSNIz6/gCbZwpcqXi1U/EPihBUkfpUc
8UoJAvNyPIAREFmAaILcy0SIlcLDC2WH10oNT0+/F7kBaRjvC0cTJ+ktDIlT
0Gu3to3T03elfPONoxX1n8yz8viBG66UGHCBL4hHUr/PbqqgSDAbj1xfbNFu
dmJzwLt1K2/Zcv613Fl51JgWtmivVJFc6F3TDG2KkuLsEqxY49bTKLJQak1t
AO5jVRDsMdTWVaC4mgyc1/nV6cctXVyD61xGwQyGH1F/Js74olGjsfqZKr3r
YuUcbJlEVUodb0yFjgxoT0bhCwS2B1VPwudmXzrnYBFMMUyS+DyvjSI8nT4g
tvVOQzKCouoIMGB79YToG6gKSuOVmAaKT+b1Djk60gRlujXnKBWGI8ql9UTB
IfM6d9aEAOkEq4VxxHHmbd1lLsfpn792+nLRHROrxfnGNrhDWq/QhjlwO4kn
ivPzdLn9ekkvikA3Ab9j7jwQYb9rGA7WP43u1Ra7rNhb5yOmQUN0KGlPKkZ7
mamdCAg9+STOZ9ygzCkGxAVQJQJTun9wq4QRYFbRNm8n6g5DiHSBTvYoyXdI
Uzn8StNcPSLW5h6PubJYZmNox9Lv0SxxhqLgiBrDB2eY2DBhh1VehgnRTGve
M3vXseFe4Xg+KxtvQyFwPESeZaUU2XQK6HKwejwCyZUqmLFzlwr0sXefAmB1
YDmvG7Dlf8C/IIqKh7tW61/CFf9WfkFftv4erPi38gv60ntvsfq9r/X3XrLO
5WfWrNOb+vvae79beu+XxvcCmxR2F81XL9JbEsG/BVLed5dZMYq4r+oPG/wH
SPgq2WBWUnjd8ahpgslGGWMTJ9RouEKPQ5x5nBmOUw/84VJL4Y3COAfkchf4
Kb2AsRMbXzcAS1CmLqzwKBUKbNM+Ik06s4lzZiXyFkZYbNCbVkDB1pRE0Tib
hctyc5A0F4j1roBUpfplw86P2cKJJt21rmwNvaEWS+RdCSwoswh2JkEgNFSN
qLvV65C0o6qH6TnIe8ZuKIOtLh4XJmGFgIwQoD0TkamTWyItbm27GN6q5iIV
IPwZXlzsruRCDXhmEsmMsVy4UJ2q7ETVaZ+2SZ+xo7GaGueGwKLkrkslAVDg
0X+BZd9R/H1FVRowqGImvbSY0yROTUrel7cSXTjOhTgIkSYXI8IqXRgDJPIF
t6NBAnxxa9BLeAnHLxhIUvgyFU/GXMKxNIrBcfC8ZnEaz7gom/cW5ZQ4XypX
6JpPiRk2IyGXEqdIBO99rjSG8aW4cebJ6isnCy8xZJ2dzOvW4dlO8jZWkEq4
eLKkCZkOkU7PMol7kFwLCgfWRzPmZFmTnceJ1CGG4IQm3E73ZsMFLnf8otIV
FJ5ncjgwY0MnGizFoDO3Jn6sHilpe0jlvS7SNHvQFbtKqtYmXcsfQb6g5F1d
UDaT3XLjhd+gZSVVk7h0iMkDKCFJJAHGum0RMFo4VUIkk3iuo0iG8A313Ilt
VXTqrO7MFFBf6MIChFQbCUU26fexlPQnCGgGX6UxQYWCc6W7wxx0VS0viB1B
7hgHi7nN8DikWcoEjhUXkeS6X8NqfKdswoxZh2l2M+ZavhKuzeQeU1ZRkDYt
GoheAVoUXi4co3yluCDmcjEwtPMxMHTPTAxExrQp6UQnpGiK1SWFDDC88BRM
HzXboNIE365rx4ndJL3OI4LhUsqW+q8lUs0f0+5QJTJ1bR5FvgcwWwps9C28
+nDPKqI3MaLlhMrikEWRKuLpbXjyLau2LMPOoxLLcyFqwJu52+UQBLuxFOnL
s0TiqqmGKr6SVaXUsMFVSGUVhbUBCpGrsfoNXpsAJr33Wy5Q8JMELkqT4jg1
CdZ2pyQ5/laX9IR71l5qduF1lsJSowpjoVgMN/VkjCjrRMrWavQ5bbVCqwO5
7bp4KpIDqPsmKXTXZC6V0Q2FiznsjwWl54fDQW6vMczzFrMe4JOzr/Ay7e8s
fYjzLOXY3s3bszNsD6ALdaWjhMmNqbZfi/EdZaHUsCXj7sBI7g1L0ZpJQxbq
yPT54AAyvnf6D7HZzJRpA0b2TmEBx0EZzamHGAcBjjNBKkxmQcnAjNMOri+u
AL3GJoG5DVQDdjMXYGM31xIDnq0GYt/lqkQwOXcdoFKhZC0xUor0NpPboUvV
0D75fmCZMbyVJReLoKLQ+sIdu3VVAYe5PBlMW43F0KiLfWntSviafyDKOU6m
5vayV3NpJWFaETDzTCXTATnGBlZnZDMQ63lYCJcaQCFr5CurexhQ8RnArZAq
0uq+jrYaUrTA+scqmRi7kt4ME31vJyDeRKiMEaS4JPodmTLh6WFGWfIoXYyz
eUn4PM/Q/KHcN2h0WZ40l5hEsziJo9zaXLBQrdueh3thaMo2g9tdiUhKEppP
FemYiZg9SokwC5OhusOCz66FAtepw8nZ3ITlYHVxsQLWRK1nJzxQEpH9J8Xm
OaB6zIkZ6Oq9hhKKRA0bKFnJb2suI2sndGROM9GFAahnE4qQOfO8gtIEvNof
IgyT2QD7jruCEio9sEK0X4rIoK3PPuepd1iUPheESFbztuRKV3uUklPUbjGW
7tm+AGlpGZ3t3VI/83g2U+OYdteWKtyAPTm11wqKkUqRxesmMdre5KfQoJXN
lma59nIGag3PNq8/b99uUZo9llKikjhee7aAOFAScecO9A1MQrxoFC3rJ4dq
AVCHtTP5kPpvDW3zjM3y01ylg8HHLVI66RYDwNoaYxt6vNMyt28bsras/XqY
Z9QYx7QMC0y/OUsVpAU85SE6xp62+1egG1vgzd3snyBb6TtfX0Yp4BMRx2ub
V3E+uBRSy/l5wC6n1LJhUOKZon5Ah0rXmSvn+nB3W2NJ2VW/L5vOXTdlznQh
K2r7rh2flIeApyS0yvQWnGgg8pkvgdKrjo1tRQrJW5wsLExD9J3q5o68I7l+
pEaNbc0mXb7Otju0BEnqNFMbjUISyzBRBT0oE+19k0pS+sjI8I5kqY/W0gxj
0dnGvqZJsk7O9FKMQGomJ62uUCTD/aKNe+wEI+3jDjuPAJv2HHzct0j/zjrA
WL7rBJ84JUag4Jov4yK7U+lCv0guZqo4Uyp3sMvrPvBxqs19DkCRKHG/pqoJ
9TeKZ5IJ+fR6xNecdLpDMl07nTdhymEVleK+xwn3mnISK5ZxhStjRUkhVYh1
NQrdL909E+eycuFppzjX09PJeDyI79ix8l3g+39X9YB4+s53ubZafkz9qqxS
7e9hwZqK3im/2ilpY+xc0oU7IuHnWMEi0e0PaI8xO57gibNqlMDFwKq+c86k
kgIiyMOQiuKnYzJDkAkH2DHQvDkKfBum7IhObTNlSCJPG6fik6SsYaUdZMOo
+1LlaZvo7LqsUWjzWpzbAUgQfIyxCtwZi/nsukRUNdNr0YeGR70FvTwPCkVX
oJcJluKyf7Nioyss6Aow7UZ3bBsZepWoFV8iLvnf5Fh7ynFaknzo9F8wS54o
CZ0t84wfzyZMUh5haGyRE0aMAuwCISLFCzWtbYi1ifjWFFTjDaBb4eLoXFZv
NS7W6/vYTp3S1patVl41dUPBnObZ3CmGnSpO07kFl7SikSKdYIY6Y3SXxiUe
5MTr6obFXSmo4SDs7nxl5yEMQp1ZqB4O7+4x46GK5bGcrchQ3R0YCwfzuvVa
M0LDSH5qMAKTao9Yo0It8KDe5auigAwBDyto+uQqU+EAb+n1h4s/eUwfjspF
fu5i0tCDQ98DjtpqS2ByWyKrGV91yIBp7oqW80esXSmeSI9gubnA+oS1jhlZ
bMdS9toOatvraCWFul2S1I2Z5HQHnApUG2YUwk+6Do/RYkPfrrFQhMht3DMB
mJPl3Ra5p24WQNucJRfSokWbyyl9EaMSUBbwukeimjhTug6NSS12TpRq8BpL
zwgvAFYnM97b+rb4oPVCuT1ivclTqu4SYFhDNoTm0vPRpCPWRgRZfIyBDRww
waV4JJKCOs15xY3gzt0x+3S6M2GDjbZQotwBjQNRUzioJOovvBKt59irgYoh
Y/VL5LE295RWcRy8pSaeVL2ay7SapF+AAww95dRbLRS2TaM/smJRdxNbpJko
ENdNYY7BfUO8OvltJh/RiOwPOoVdF5sQ3ubUTcKt/Vyh1xgeI8JtSpo6kICT
G1GRLmoPBWBBaelCn6iZkPKPeQl2AlLn/FKhUkC2rNUr8K+ZvlvSIIbc245u
g6V7DSqhflmrPUm6pxvXR9q7lnzaNe+WqTEiO0GQiO6vi/guIwbZhIcZtVXW
CMWNE9qBKcNK/jrkKu/gJYpIucxyjsNJS2rSIs57QA+sjSpuJI7VIQv00hDE
sB/NFWdnEe/Wlj+vSYG4ZFL3DDpp55TbX4jBnLBhhWLruKeQXIBiTsvDHEqq
J0I31i6th7u7wiOAJSE/84P5VtuS+TRq1EWL+lHuVSIVG6HpglLoYI1Cy/Mp
d5iYgYaOlaLwJhX+JXH8BKalGIuwTszkavnViQVstc7NHyvf2Lz+0N+y0acR
UXfseS93oHv0ZofMV1jTtaQUetsvBsDwMaKEf9YwVH6PDhNmVDoKVuTSZVHf
LeLAvTcLe+VqyaTeXSQWbOsUrmkc0EGdemHrb0qden2LHTHj/O2g2GIcI0DY
TS7Bwir9OmgNTvRPl4OB1OrcPaJ7cD4YbH+81B/u7+99o7rYwdvrz/gh/vj2
zXZH/jGlEi3WnNoAMVuxrc00pGkzXuUgcssADzQGSOrOazzGVCyZqlvEpak+
KREehLDMQdmvJRGHdBql47a1tfQ6aLcA8knBaLoppKul2ZrIyKLcfg6lRGhp
opJkhd9aiG3NiwCHnbHJTqVci9jsHOjKHbILXRrN1kyOSim/NBCArMAD0grI
4EeldkbKxgtZQcpSLtdi4hSodps48Fk6Z7iYq3qzImOOjoLeToiGShOL81vH
xZdKhRMxvuKmejti1xQ7pSuPGP+sibaSA7MteQUunIROmj7yeTHH4xc1I6MO
raA/UQKwfhhxAJHy2glO44I9xRL8uVgyOLLEBEeZYxwbCv5ApW1hoUdR0zR1
5zpUaAbM49G9tg2ZWrIaUd0D0V5UqfKsgWw6LkjBGwICVkRxqlUxOpqCbVx1
hRvn+JEZGAgmWw3MVql8ayf4lCprtSKW95DFmm5gSChaRgpxWOuMBHNjA6RI
TpQXWbpsWBsHR+jmeYyYVOsLLaqo3lFVppr33kTZAW1lO7uNeaPuG4Wu/on2
njK2jdDkRb5DaBwzxSFsrwCmMI/1qj3CK9s1I8n5pxtgoJvIonD/n4YUdHzD
QvMAw7lLvo23uVIYaKFpn9c+hwKKU12GU09JPKCZLDLgCN8lF6FNcSre4di7
TN74Wts3Ro6ZMdZ2DDD4kroObyz+fX1+cdUfBNKM0/becJZGFf9j+ywTu3tF
UZvGaAlyHEsC2GHnWUnAGg+/SZ9qOOao5h4jwOWlDS4hHseZp0eH8hseaY0Z
zyiCGyVEHFCHZNPTVzEI46C2xU7v4VrNSazxvLAr0ZE5tvhhY7A6wJkpzJyM
Zisi2rVS7cbCb+pUH7NQb+ItCnaWBCjuOMt/mIh7HkaPco5VG+t5TtqVhMFt
BRUPi4hvAdaN7oPNz/3w8vS6L9lCroXAOAKTRCSbYZ5hN2ySMG9IHtvDUowR
FdM5XspJbFMC0aZJttDCaUM2hdS9eQtY9S6JuXfPcprE5tuLD2foysGfEpmO
6RKAVFQBqdU6WZdcQbkV0vrJl83sHa41oUqMu2K5ZpluO2WbPT1m7M5ChOJ+
WralqNSR1ULoUrKXOEga7CQ6iLzWGtCp5bVpbVzSO76pzCP2lJhxyx922fvJ
u4ZDcQAWqtiO2AOad/xVjUPuz1SDhFtFlPbD8e1NnYhcf1rktUCjopa6Sulj
5lSweowWxXGr9d+CW1PLMmK/oF/EMtg8PfuwxRyUA98lJCeqvXvPmcveqx/w
Va0aPAJewHMwnA5FdWoSR06wslctlrgHH6ND/c7sRJvn14y//wVzLbqHWD/N
5EwL/+Lmjd7RULSCWIpiqr4nBcG4w6spXAWHUMtiGipSHAwoEegMFawKxiW6
TJZLY2EwlfLpNNe8XColG3HrGOomze0OGkvuBmzWoVeokJu+Nk6Aw+pqnbq8
oPgRtR/wBcttmJ7IfvO9tlAfsnUYV8kC/4aJneXWxIgwc/xDB6KydE0vdKRs
m/AY/gZzBdr6fKIRcAttnyy9/DE8J6d3IHqx+/DZt290IcZqAkueAYzfq3Rz
Kwh/B7TgHuSp+y37LVND+Jy/R8FiVDrfnyr6flTSe/hMUbRaTHX+Or//K7cK
ckvqtoO/FvZzqy3B56PSfO4Y4UyAF3Myh/KoMb+IQP1rUdhBPZMdkSsLlEl8
V3nx4NTMj9hWMEkwPFYomOhRrtf52MsAaA6Jt5Hs/+L+vuLpvwPjI38V/Pb3
YADqGZxv8PdXj70ifv5fvOQAHPbvAZ9x8IN3+H8P6w++eMSV/17x4Pz+ZQ86
eQYvn3rVVlYeyvIQAB1GfQabvRX/S1fxkgdH5XMPOhkb65JDalMjAHjztStf
x5wXj/jiXZukjzIahrAA+J/O/MBr6lTbkmuKSSDUJsipLO0/AcLeyu+CzRNk
tCSGkIDI1Gw1q0G+6fjQhQxn5MPDHpfsJRGLBEUcS8bVci1OXQ3nqLOHdIjS
Kvd7h2jmNbZ2LIua3iUqRMV/HJCTTXv0yKJJ3EYRnyhkeTR5KnmwJnBHohCE
3eAbj2RQdIQgZEkgV29GrMltX15cniHTwpik6/fXAWqsyZapgC6tzsZiFEN3
m7thFGHYdMgCzAtoMy7w9Jzrxfx/lQo3kuGPJtJnxHPDGR3T/PUn9b/ivtsG
StmV715KsV9z8V71pFnKc0/apayn2i8kmOsp5hLhtoAu+GAJ0K+Bg3cGPTyD
nv7qVYMQBQVMPvsKrKOL5LO39cpB/hkwedmTsMlnnnwZI1nFSTQcegiH7hbP
XX9SyJDUDQfxc0u+eynTeSXy26y256E0kmLm/3GRH/5PfKh1AP6TVuJx5vE0
jCxnPj0XxgzMFPnxhemPYARt8uQ2ltg2xUmWxXkj6LNCrjmNp3uRVsqNGVGV
YPJqY+7yB2vD49ihScxGSe6zDCuWdCC2fQp/dMrmR55W0A4kf/QK2N2Fw+58
qeIK7U9t3pYTKaCd/7w2crJKGgTFnq0AAEeDMo/WiGjbF+hQY1mHYcFoRiCH
i6wJtpKqkgyeUrei2LIR9DlmzcdkC356sieM/r0pxttGyJh9QJhaEQxGcTN6
ohO3/jCh4kSYba8z3DqptaZ1jdIhwpue1f8h9oSZQtLmYx1OBKtDgDuOTsED
9Psw4KO4NCq3BoMLKu6spXT7E91/3e+pCEpu7686wTUuX3p2HNo+WuqH4Ml5
NfAaIYthyyXyaZP6olCCKfrE4smaJQOAuEW5SKqCdbEx8utOAvbMwzTGg99y
smMI0QFsThNG3RmO4g7c+wLEYFmZruXTN5Oi/z/KcatElnVjWpGE4bD8ZDPT
bXqymen+h5A32y978n8vNv6/mwz7/4JUQvRLiyaDGMM4olRhKrArp7Cn74IF
llvtMdWJa9YgoNufs279V7EGbf2VWU8aYom8HBPgizIeUXtYWzaKXMEUIG3N
ww4RpmCGqPSqUOm0ZLcPhglqJF7QdhkcNen0mJvgDGbEcLCjEp5HAYbOkigD
RkZ2tuV26bZETnN7t5GM0wZXc1SKvQrLPJ57m3FNrJqDcBc3LjJh+Ry1ScFT
MRxeWvMORbKoc78O9hkqYCXktGib2l8NHEsiQUysEEU8jhU6sckvMyJXm5OY
Te1edAy8rHRhShBwekmZ13aP4R1z6t47XJj47TwaqzCbTLiZ63Ln8Zdwx9fy
x9dyyF/DI1fYnIlUdH+t1fl1TOVVj1orxrOPvpgHvJRWPccGGozQXbRCd2tm
6O56O/QyARYJoFc7j9cB9p+1rxc8CltuP2uQeLFFotEk0a1Ztxlht5ZtEkXR
wzPo1c6gt1XHZmGWfXK9q3yTDg/ebhC7XrHW54H1wkdxCy989D8C4vdq58MI
/FrEX30i/7R9LbkroiZ/hW8WEcO3WET+urzAv7abwwZYBBnJ8+2m+BQvY4+N
KhyExUEnnoKqazNQSQXjadDj15MhuP8h5XxgPpcsQtdA5PrIOOlf8Xb9nQ7x
r8zE9bOc6fEQUU8nN9jUa4C2nCHt9HzUiQS16FPRgN24F0l0l46TKri4Og37
/ZOeVnfhb/wT1FyqD8rcPU7nFRc2TPWYbA+yDn5ToBGFDQozjPycXHMCQeyu
90QsS34MJwptBpQiimi/ti0jOYxNip8AYsNIIco0dju7vrh6/+M1xmjbUg06
sNJ3s+uTF5OPl/lm+q6ZKhgWtCrveCjoxjZL7D+XaCgcmIjXzUYuFapE974b
Rou4SdK28f87UT1ulL1nFuL3pVIWp6DV/FzwOfZYZnSRg8IEdkzkqzUYd/dV
cB3jGlQBacLTDsh4BWWvcT9MvPPmtW+mULHfNJM3js8WOpvXFMS7ttjNq5Dc
7QYp0XcgkowqJYODTYPfZHBihNky/R/JDjiNQFlAAxdG4XEiX2KKRNH+zZwe
lhbSHPpRUWlRHaMnPWxL3fh5AsJvROlg1MtYZzJjfB4OXYHMLallcWq1AEF6
3QvaRLt5Jfl0ATvMYUFJWyqAmz0/faevMxBZc9HhN27YWMVAymRuzmyJxtGc
QNGnWx32bQTKCUXeb/mRsGMLGgCnvrnLIXgUtKcT9/ne+JVpdYEo7LBmss6c
jvFa+2JqE7rpabqGxUnKMdlzyo/nvoOxDsczuzfrxYXS1RKDIqccEc3oD3a6
0qzz6ent+YedI0qg4otkS/HTA/WQTTzBByx4sDQjHM6PCGQK3KTKdUtrwgBD
XfSOvc7wJIxWYda8qM+0RsYO4gy5X4WlVs3AKbxoFT5XhxZ0FDttmXN0os5b
tkGHEeeNUyaPg7IU6KmbCTvlSW2hhsAW+6sfOgVa6r27ZWqkJniJuTPPQkyy
e5OF19F1IaVcOdcHeKxXKYRt73DwF2e378IHRUWv8XTRvkExAljN0LmOmICI
7STtEkjIkLYAWKqKLG1Nt8ExOjsXw8b9mWxmUOoZtFJQJuL6JGibYDeFW2VK
+rXKFswZ6PJC2HOzkFxOCo7wUrB8MqZlAk6o1bRUbOcJIIhfItOTPNycKQ0a
oUJvmdi2WnTLbAtOStwEZnNHqRy6+oMl5qVTxIlCOSyyWxSWbDZMAD/WZN3n
S5JHIrd7w6EY8vhGO9hwzsb5lKyh3oNUZEtnbxmjvk44qLvtKK2lGnItQGIJ
HN6MCIa32BwhCL6CvWILErFRZx2izBGTh0Obb/C2kmfDjB/r5tCcdg3fYgNw
JxXWMe9o+xQGJXMojJUmfB+NLhlN7kXuY5t6cmU9m9eKd37osStc2fLIY2XC
F40DhvLG3EW0awNHbkDkK8fSmZve2hzxjo4Yp7PnBsiXCf833hr2qqJkpSOa
qP6LuEdF8BX+ZvUNccYto2A7WEZAXomPgW0qNqVrTXSCgc6ZatcFBqJ02Ks3
5uQbQh/zDOe3uAU/dMyUlP8Xp9/FKS4iparnOrMeTlvN5hwYRTUTFt7ZNgAG
sdhHMflKV8im4HXMvyobtBuOrXakKW3BZaQs1iAvpZwWnPyD6aqpLnqly7nL
CaHdXYLGdfURDTOixy5vMUFdtsiAJ6jRco8lNwHzxWYzNGaziooJSE6KJCXf
V+W8qi98HHNNBOPFNvWVmD0Isnlyjl4IMoRY8NUJYNfiCOW+4SyjhXSilhSz
OJ3qyHZh2FxL39Zdp7r+Ut3MCGKCAiYJGstsVBHgUKkU1xhAY7quT9MktAvX
GVLaZa5IpiUzsu5s7YKLd26hLun5OrcZtaxfdN6JVKQple5sTlXVEaB3U07m
SVny08gvkp0u8od8kMorZvNFzTKgAzW4BjMIwXFh2LVGG2zNLrW35lHREIwN
n7CixREUhM+i9kpyc7D54fQdJ6IQ33QTiYjGCy3Fij7uTf8tJxMhXeCvkkTX
MKivQFLlsJsAyUNqCbEJozscRMoxi99N5/fYpuKSYeglm+FZUHYtZ4BMlRaB
sLDIUmrOhs7JSd0sHFsp2EkyNzEQAi6TxtiYHWPepBOpkvvG8IJbLklJ7eK1
qlg4DZ4tQ29CXFFHbcDpsljqKJsiC8+w2BmlMOqQHi5CpAclhxXJDXOcm+8C
f1+nNZx/KqInl4AzhSuEVjOxKlgXhv9/WVKNDUlttepRqlIzQvKSaplUDA7A
WZH8/bhiZyp6/cRmXZ6iWrB5cnZyumVVRZradDfn2mqRN6LO+nelTyo+RJt3
Hi10wSuTlQXHHspdMNiE9YrmOu871ZfLHWdpGKYXJq1GFi3CJjBEQ/vlPLWN
x6tyxuqkaZmItyuc/+zomuNMseigR9EZ+vEoVHMEF1ZI8sJjeOlcC5DWpK+6
ScE0cSgsl0t5BgMAH9Iz7jhU1FsBmPaxnX1Sr2EPcNHSDGgPm3a+YiwzWnYk
y7DelewkXTSUQXCRWDgX2XJdaYoVe8rjl9smtotaCTm2pgUTAEZhCneQRkDV
+8jmgKuyNQLWWqDqG0AV5+zHd2H/8oQb6vLvrZb+cJPq0ogyX6VUwcC3tmjT
qXRLisTC8vT0/vLm8BDuHOmYTTrlKsixocUwYo3JZK8B0RDUYrHi8j0ejaj8
F1XqMfYErETT1u5lWjV2eKGCTl49Bho2H8Yllek0vnq9fXN8trCacGQjQ9SK
OrRZANFsn2UfTU1daYSK6C+X9SSCSRn6VLYzlZqcvzAaG+2YfNCTPKqwnlzq
9lfomPpcul4XHaykgGtJSm/QsesM9JHLXl9z2liGeVxw+R099NAtlbp0hPps
tLziCsKN52TmNFKTV2yH9IaxicHwEKETfMSgEVlYW2O5Pd08G1Lp0gJOTirj
r8PPNsg4OWnRKgWCpeuuxY7JHG8xdYJYdxhcFJ/ZnFnUSktbwz1dY3R7rXHN
M6elpqKynqBNjToEF6SwNQFNVwhcc5lZeuaLLyVexS6IKpyihPaYuBLbkNqm
ym+cuO6HtlsuQ5c6oPRx4dh2z3pXLg1++R1mj8Iqs1vN4OZRX037n7HAtakm
lprzpTInDGBce8ioE4tlxlgI2zrlWCe1yrLgIpBNLRqzHyYTaQ2AAFMpVyo0
UOxYuu/OX68ixWA0rw9BKJ3OIhSsapbC5lpKbtlDz1RIJYN88+AJUT9CsGUL
odG+XM3CNQ9i8zbTqnXDsMS+ZzjcMG6WTIfairkQxEapG2fKanP/HBFH9KVC
DKGSpViTmPPka3UFpgpYNTPmU1VSIRmYrKmeoiYNT9853TB1+1Ondylz1TVF
q9Y0iuRScbZ4KBUp0JVJa0Vg8WVuuBp89EqTnnGpwM3Ljz+B2C1jbelei2RN
qNvfl4pmbbwDATocTKNZLOXeT4ZYp3cDC6MtKvRYBNRrRwd0a6coFvZaVDDW
VD0U97rSpKnfkqu/yZFSkoLc25zj8vxKee4KNt8NjACvC5pY876h5QGVCqnS
GKkXO7Mkg1BH4OnieGZ2gnAxi5JEV4ot3Kq0o8xUuyXsodIhUmHWqc1/r9yb
HoCGHjO9NpjoVXZi9HJaxeqReAPvI3SPRmnorp8XDnPaSDotyegqS6hlAw2j
L0IqpxREdLwKwKqrdlqE1EUZqfa8ADCbUMoEhfx5EZbMVwiGJPG4bfco45LK
0zm1blivMuU2UV7W1iIy/TpWO7n8ZBAobCuOmk4sK6Rqls3KwhE+RpUbDg+7
pBcsAXoJ0d9f/5ELesFGQra0+fUaraizAt3fU6eMdnCtQJLJSyYWf4zi+yrF
0nxYVMvN2XDGkbo+JppTG+FNxVdz5TkNQddnlgSf3Na8ECsjVQiXKw7aI5Za
SJSlZ7obGFyelMoXMSExxflEUCPu+Kj7VRpdn5pNkY+5pBasM9RxhrCyx3iM
BZGtfy3YpLuARfInRuaz9YqCeVLVCxbQF1u63aXtoQRYa6zuztKpdiu2UrVt
V2WLJLgJFnNJLVOteqlTpHZnUdOVMUvoBozzTOtW4+wx5WKnFpIUIaQXhuHI
JXZSNb7muCxcI6kOjqCLOmFJY8Ut1Zq4K/Tpzxrpwgq6ZmM82KmkWYsmotro
TQWaLYwwbshSLz3xaygqVm912a+FmVMMLrJF5ORLfThw9lgDFety+f1L8QRC
qdFjyvRVKa1fV8cMKS/nYI96pNdgbKrn6OwoLrJjg4V0/U6MLYY/sKgtAA33
HXKgFHxPIh0mztEtwVpJv6HYGQTS0xP+TWSH7H+2RRGWFsJ8J8A5JKUeNcNC
zQwBFCGl265fMku7v2t1f6kHlS6ip5faQXLELgUtvdhUJM4z93ppTKj/UgNL
0DVbZHFoedLCeq0lm33bvVR8k0AnRaSjrREMcVNuMp4jU1pKSBNMcg4ub1yd
7pC6PK+OM/t48fYTlsncYo1Ba4VAWrkWqMCWyqd5cQLMhdoAUcXl2J2LTgIx
J+nbVus3aqQ5VnNzdAn06JMAEKPtfmUTdSNj2n71QVWCrvWLjWvBS0H1LXUZ
uuaClDpMS2ENQaejBslHuhhelRIuiBspXThWa/PG5rJ1zm0br4m28VorLBac
mroChuYhVUX2xmXE647CcbVUMlB6YdkieR6XIpIAfK6a46+9/36wZ9IrjcGO
VTxdlkjXitXsgSWUJfGDLq+tEk4BR9HIxKzUnufoLLG9cCcnuiTd3mEwjEuv
Emk76B71Gj7FZfX2D5a+sTuXFZOcqvI636TOW1Szv1YYsB0UXGm8+YYT3vMD
3hWiqAhXXl0iVnZlxoRshCKJCjF6DSlmbJ4fqkVGrDCjvubsGNSXy6nL61Xi
ZZuja8Zy01YprErouq/dLdzAl0iMJIlyDCSrDcRs1vLsvSCxJdge0Ovy4PD4
zTXmpC3buOIxc2Yj6/cxHKf83nbYNgofuXEjkzONEV87cdsSdaVCApf7Pqmf
ylYKXxpkSeGlIsQ43sfLAfMv9SdxMnBtZmubDgYMo018Z8utXEwDnIPsQNW6
sW748kvn+M42aKzYgxDkpkt8LnYe3IQV6FGp9LFXjXht3WIXfEsVgk1HKMrS
ogymi5QVHfM61mvlKqfLr2dYyHwWo35WM9OZFsvGLA7gdQHqVd7TXSp4HiNl
Ai+mO0wSGFXyc+q4a8LWtpKk+c7YEq18w6y2sCXXSerWzSWB6HW88zY0y99X
gwXcJr/zPc1MMApq9dQuzTVnzLDjhpRUNzaNNumK2AlPrAKa7Pva3prS3GhH
x1rOIW7F34mYRvCz8PKW8XEw8MNbttgbHUwXc+xHC2MIPk1dzDXld8UjKbeA
psTOzPgVh5Do0sjy9qLjXQkd7iY6tVQV4mEwy9tuxC01jhvQEph7FexoOGX9
En1KVXiLErB3m8JPt2g84U4JWL5IYWiBjHA50EAKrlh6dm4VW2ox009LLnVS
EcSrPXc71OhEL12kYou3tOckWiBfw06UDSeKq3K8dCabzwS81fRKXb8Po4Qo
NkjKCzpyo253Q0LIXFkpWxfbHhNdwMrzJpzGrlmWq0vx1sYm8GHH5dS2lXam
o6+xEyw3/fM7HMT+lLWN6bc6BBLxvlIOA3AxNMgYTzlLe9UQASnkEI5a3wfN
rNsBRZMTb5TLKOYjG91mugUaAUiGhZM89ZVyU+/YxslLko2HKzoo3liWnd6l
vB23K+ByVXqqcm+6DZEUcuL2ReWW6VS6HLCFgkXc+uWRHZK7PNoK1lK33hSV
hbuKQIq46DrRA1s/W/MYlGGMSVJqjVfk8ZQewbg2YbXfEQA+SECAwxVRSuOb
gQ+I9EFZL1pjlELYE2xqqTNja2a147XyU7A5OD/phShgwgbh9w9n+MdWW/R/
NyBbxIbN3h4+uwvC6oLLfmhiQRd0SnTHWYRtfUqxs0D4v5KpyOdSwkScPjq2
bKjol3ivLJNjw5Is7SeqGpLG5S++UVb0PSE0ba2ZBXudLiYZLVW+Rbw1hMS7
m17/KLp4neDaKgIyyAx5c9uxZB7uWGuVAYnpkKi1BjpZbRpg8X3z+sOWyHAM
iM0BfKCFesPFhUA1H9Tllk4Q8whG7V1+ul2Hoz3AzZ9WnPHm+ZY9j6Yl8PR8
n4cK/YeGYuv4l3q1cnJF1QBlC+LIzmgblz8ACtYh+Pfg+gOmVeN/fsKcwfMf
9uHH+Q/AcegH/9Xjv3r7mCRKyar6P5JpufYHzAL3Bf7Tg/904X+HB4d7+ONw
D38c7ezQj+4B/diF++K/gv/b2zvANewd0FL23hzSj6M9/LHf3dmpvYIj9Xb3
DvHH/g79ODigH4c9+nF0eFh7BT/u9o5ojXu81IMu/Xjzhn7AyuAV0wIGQxxC
pD6t1k/sBmUPlP6KDccRUuG7GSOEdu3HbGagaHMqw2MMdoACbxdGDyEnMXPh
quAeRCbJhvoy2pgVdu0i39DJa1MVPXAEObqSSytfJgl5oUNnMNORwiV1XNmY
cXLFtig+gUxP4sNmLw02KfKsUa79bijNnSx7ZnlaNDJjd+CGENbMKR28SjdI
352D+kx4gq74+qSK/wpxAGA9jkel0Wa5oQD+yZH0ADDsAU8uaDkT0/Zghg7l
MpNeE7ZLhN0E+RoKnJK8FdpwRg4x3SDDNZlmqYgCbEPAXEUyCFmvmAtK3UfH
HozmoZK5mBaMIZzD6qbcIGb4tkcMxBCFzccDp6W2rovOdNGoxTZoxaaN6RoX
rrGMzCBshBZNgNrNmpyZxgwoVDjuQBFKnB6Nxoyr52UkysUOCFI2CFwsNeKh
GMuuDTEg1CjadfiRx6OpE5mg+QztixQHgsGQBkWLBhyVTYxMsHQEdEPWYbxy
4nMGTR6Zj/bYO11abMy/FOhQKMpfgkRmMlLdkCJO3SJvgS11jim4dLDObSGb
jNNMHgMCOSeSa/kHPw7ecm2xCUiVpN6zlUZyxrhfO6OLF7GEyArnRbIOBZrH
+g8SIpHx25wWwEi6eLr4CJpPUwx6p5o01PhHk0bdhV03DsdYWmUK+JtukvZF
dqoBVl95tfke0Eg/i/6W6TZWDUVWTGMmMSPY6yyhWLrkDPXaod9QyxbDkKYS
jTHa0tYHMx5IqJB+PlkuYrWEc/D94MQBVVIcWT2pSydXedmCdOboQuMwEh3x
In3qO7ahNQvttx8HQbezS4OcXg0GZ32juKyg+IQJ+jWWFIE1gzbtdND+I9Ku
hWNocc1mGkmoSQ9WQ9Rd2rxO1SaeWO4UaEJzhqxOxti02vFeB+RTrSDTarZE
3Zc90Tr3dnZR66eggLh0zcuACljbzgmm1fzECWvUMXO6IxWLXjAB3TkvzQdX
3feO61JuyGCRltHXYLPPZjmslrx/sN9DV7recuRwFX2xtBiH/UJ14b70IWtg
acaG2jGVGqiPrXGStSU1BXCMyKPN4DAuBp2TydB2PH0FlUTULlljdzNTatO2
yYwpDddiEJOrm7bUFo2uWOI2dm1GVk750DhoCUmHUcs4h85UjWpybhnHRw0c
Yk2uw0NuduGGZ+hjILOlBJZr2ybI5WpcZ5haTZK5nchbkfr11VhalbZ342dG
u6xDSLImnPPwd6+nLd0GIp4NW++IMweNGfvWVrtaF89JDhSJCXXzaNkazFfW
mB5WSY6SLNZeTiMaL1LgLPXuFFow8u9EW7IEJMRITsLIuFroNRwq4y5mJGmm
me7VtogV+kMco4YOlaxZRdxAX18UoyQSE78xBPybxE6nQwsAdN9yRpLxNjQy
ClRkMw570le9fiZogdBYjPJdQ3qhk7dlowTGGZ06hooZRxNfr0cV3afSZbqs
wbKw95rgtQQsYjADbQSYcm4W0PeQj8q5SLWsO/GzuIDG21NmCZd+i6nfljRi
0u/Jg3j3B24mz7VzKLe2ZNnTd65rWTpxuT5TCifCyh1xKkZE+50wClNIxG0W
i8Z6E66Ad1K7Btb3M0XDtr44IXs/Q5KFyDCNURF8IhO8vnU3qVmP22MK12Nd
aNhllevB0AOpkEgSC1iZQA+1kaPzGli53TcHWvmzi3HTz4eu1aezgao6JJJj
FwpEddORUjajc1ZhUDEMwcOZiajBKd0USiYDcR7MMyxiIzoWy71SGnkkLlnp
VoivTLFNSn4XpcaWRA179FSyUdFE0SwqfRGMAlw/Au4DPaEMtMglDHXdjhM0
RffJdXIrCsbUkFUaRZoMbaRYJ2eDYLPbOyQXt/Fos3kLzY/b8J9dL9aYPTVO
dRRcvmmEiNiBY+L7mDo0ozaZmkRKm9sJ2zN58E5ApqHP9mp9pINwi0rhkPjw
Zm97d8u6qtaUodL/EFNPDGqsq2EFi1iqVxU0fLb+3+vf8F5u2T107dJw+yEG
JmyuAPtWIyQ4WSzc7/Y0HeffhZCH+giA88Pgk+3CQkL/6zlDwpMoIdChkaiw
WT/YrYZFLP1jzhLu7a07DW8Ru3VIHPV+HSTeHBxqaSM82G8GxFHPAMJbxJ4z
JEJi93CPIQG//BpIXGUOySqZZxFzxraudAEaFrFfgwSdwoshIVDo7vT2DELw
HwKTwzeNMIFZECZ/p7ptzYzE6xAafg0X+MIG/GdD8zHuTM4quGY6OqDMaabJ
si7NK16PsCeV51f6STa+/t/VXdtyG8mRfcdX9GIeLEYApEhK1MXe2aAoaSRL
mqFIzsgRvkw0gQbZFoiG0QAZHFrPu/uwL/sH+y3r/ZH9ks2Tl6qs7gYpe8Jy
rOZhJADdXV2XrKzMk+f02d7Y7aQUm3e0nKnRNzhDxFjxe/UG4l21Fcz1r/uA
77DNSu3uJu3/CiGT09OTx9s41E0cKm1sQIxZWx211qRBFHCRl1d8TrcgqNRI
WYSldU+rUSxle8NGQMeSDjC2IxXoCwdd315bAX7xRraD9icisrYWWij6bLX8
yiBNjRAnfjIRcVwPTaKdZaqF9lJltB7etJk9Q8JdrY1tRHo6aedpLFwYE6CN
LjWmrKUdOCJXGx2adcbMIkxwc912FLeRP1vBdMj53CtnmnLDl15WuPXtcdph
/ruuLeizdpTbf/NzvnU/60lCxRb5DSzEgIfmE+8f9B2yFhmnVrYf3desx23X
1Mk1jx4jQ0KX7K69hKwzMi7InzxBNmX34d7egzuvqZNrtvd2LO2z7hpYvPAm
nMR58MQad9tFdXrRzpNHTziP02UHmjpOpRTHgPPIh91n6ysueNoWCCAwUVI6
6epBB9qQ8xaBnGWrsVTWzPyGJ9Zwpm5dC3csBhAur2vNz1wYP2tF/DVLwv5s
+502/IkuWPPLx/fvd3gF7tLtvd2dW77OMvJmOu7AP7uzXdEdbLXryaM72rXz
ePuWr7Nsb2/vM9rl3s1f3fIO7cvt3e1WdySX0vJr9WjSrp0HO11dnq1zNjvG
0XV5aNf24w5P1rfrQXukk3Ztw1L+je2K3myrXU8e3t5fD+7fMb92d+8/ubtd
D93H8a/Ou2y269ET9yodl+7s3n94y9c8AT9jHLvb5VzgZrsedi0nd+nudvsH
absefs44drcreuDNL3cePrljHB8/aa23pF0P9na6ljS3q/eVgQRpX8JZGdwf
W5HOgneMExdibX5/85Uvj9BYl1X/BkQJ0NNag6EMvg6XGPe3QDziqyE8BHQQ
PDXXJM5KJQwfltG0Ovnw6NEqCtI7oPDftl2GXEAaDbNMQpnC4rRaBFF0qRXQ
gFGzjEGdhXIBSYnGgaHx0jZeiR8QqxP0fTxQae273eoA/D33f/tzkDYl+dXf
EJv5stu/XyDxnQ5pR/rx1ZvnL3+0s4xbmXstG9dYt23j3NxmO++QZdmd7Xq4
sx3bpS5A3GY7rLN/cNfmnprBzjvc3a7f7Dx8uP2k2WH2bVd3/HX91X2HpF3c
/K6L//FuXNz/O9r1D3RLspbj4dr1d9pm13WYHrRmTAN6t+lsA5Vvs6ODdUb0
8w5RX8KGro8sZP9fbaj8OTre37n/4HHoLfmjFnX9XOn6QXoi6LyD9dYdzWIk
+/Aw3CNY9s7A9l9l2deGxu+2VK2T3Zc+12UtE8l/mue6L32s67afrePTlz49
dZvP1vHpSx+e1jSreUj5QmeUfWaWGE2L3AENXT5hED3hhkFWu661INNrIT1N
MZdagctaHqlTXEePv5bU6e1uvR03tCbIMUm6+8jRYaQkS1Z6G4iDnNRD3aLX
5qy6QQgT/VzD2mU/aG4Dcg5vXlzubAie6fvnh1Y6xhg3Jj4IGA7jF4hQIRCJ
0q2nwBApgNZTDufW44KV4ScF4T9ork4W+VlkPIiSdFoTH9ANrMRA3UjX/Hi8
/+Prb1+fBMpK6s7KKIAzJSytVwV0RZgrhhY+g9kCqiSPbM2n15EOUsqanU4s
i8RwaoQ786IYc7bfOrMf5I9VAELfpfBUze2XDMT9m9bA3UfgR/WgMnqHzkcy
c1G+APfkahnOlAl/Zz5ZKuLJ9Rn1evzBLED8tYE/7n9/8sp1p0nq6HyStWTA
xr3N3c1dOD43N8eHw23ya4e7jw+CnLFAKddPbJvXTModJlbyBhFtX2X1nPqW
kagGx52DMn4ZqJkEfFcL5hjEIpyJQ1nrtKo563NqdQDMhMtXM1AE31+H246q
maxVhoaWQoJu7yGwD8EBG5bGN1kIShFaeK+hhWY45N7h+62TDaPRPVZ7c/PV
4fsTzYkqz51g2zGqkcjByjjKeqm0o0pCbRW8CZFyOTMMuGBtWmGQGIEwBE4S
FfERikWhog4sHi1lD0bkzfAWC22YHlMoyFOehe4HR+bjI2UdgJjQQIA64FvF
c6w9/HKRh1BAtLe1GuBw6jolWwIE69RWi0sNx9rllNyQbQd9tJoJp4rnQyzN
lw/gfZ7b1WTJ/0j5WwJg7VKqIs9z+ukqsKpcYDmE0jRwpAF0zw3120Z4eabo
UlYchgGnZDGnq7OaCzcDEpDtt+jXyGboboth7O69geQ/efqfMkizqEFTwNh8
XxXCRV4pOh1LWrREI2Dheo6poInxR0+kxlnERbiRTEBWTauzawWMbZ0EOSsl
seTyJv5Cl89BKgMj6+eWH0Tqkkad4AX1xxnsK7e6T6N6CUDqDCyRRvVP/xDU
wKtvn78NI5AIRt3cYAxRwwvq5dcTNcwZNk8ufVMWSGVSn0zzq0FrWd4j8+Dk
cgKfmBasBvVYQMR+UQftDMQjhbMWMiK2X2jjuTh0/WtthMaeNJgCF9XHYmZ2
Z7Jiw01b5cHR+wOFzsfXGwgBiPJwWBmSNNs1bsrAMt8wAYihW6kh+zbqDaE9
y8WHEHFLA0iLOHJGOoDTZ8kF4ljSXKjdaBLZJQSZMS8ZCStP5X3qbFHI3DZ/
MKWi4+pHmo0HQZYP2N711z/Nek8zCdJyvXObQN90LAw6nc9EKc/vMV3s/qUH
njsOEKcWGMlsWJDQM6qwl8YF312tbioAzjzD+HJam+aa4HnBbMgPFz3cgIlH
NUZkoj9bVKt5LbTmtW5xzEa8LOvAWK+cLG0LEOtTVcCDZVa4wF22ar49NGXK
QHTu2Rq1WlCaLZBjba7wQvE9vUpAkNMTJZtr37VmXFuaj27J2nByE5JR1xXF
RZK4lRWtcMCGGovCK8ywvB7l458xu7SubaVstIAx86aXc30g+QjLUEFxx1TT
14iF3t0rhVdbcHpvaXZjeunGIB6w0N7X6rBijjBfMVYzU9QuWikUeH1jMaGB
wqvL43BlB8vQZXDNQ/TNNAWknn5/Q8550Y8fyZBAVOy84tF1ag+eFmNnk/5D
R8UXoxH9AXmmlafRdJ1fy3z6PJvEmwjTbqMBFWtg4hRm+g90PGAeHeZ4qgMN
hEzOZF0lWGIluHL0SPPusqzbrQEX3wY5i0hTjYdwjdVgjQabUeuMY+WMNGWd
fQ9Wz8y8nxZNSY1CZUi8k7CflFY5J0I7qVF6FXyIyFxO7ww74tUFyScGRzMX
WJ3S2eEj1xsynTsNc9FyJzF30jk9kFnvmbRtisNxU2exFgG9nwo7ykWabHXY
K2Gdon1aFD6YhGNTE6+Ry01rYxsva5VEbWP8GfttXHXNnTdZ+undR7FUz0+x
Kf24Hs7/NFQDsyxQsVLTRDOpjAuVL6EXJscf3SoK9LcPpSoevaquwFHUbMya
30cuNE/Iu/Y9fknvDRwiyKXipxbT8XRRUaWxez6b+7y3Cwfzg6zsrlsb8SVX
kKkLH7greH81t5HNJWsqgws8l6ItEM8t5RMPeVzNhHQFvgPXu0bRlALSWMJs
T48Zhp4KbO4nvN0BsLYo648a21ApWmmvsoEGCk5LvMd7gcdQq3y5VDWXKp62
Ri500mhkYBKfweOdg2Il1EU6cQgw0+elkJe2OpBlUm0PRzSLC4JatMS8Hwmw
t0EYefDdu8Pvjl+fvLiVLvLoxffH637Bxs2V6Vi2XygzRxJTGa8WwddT9qfV
/AzlRZGQlu0FbwXsu5vHCTaGoD0Z6pQdscEV2EHkX8YSXQTctGKoZ55Bdtk4
gu13W085zNkxLalHjcmugygOVD9tUMaLPJByd5mMSuf9/F16PdFV41L6sCB0
Aat4cS5K3m7Z+TWQN31S9qIvdVsXryCAVk5Lqze7EKOXHLbdwZxMNH0Vy5ET
UaR8zRndeAq6PR09GzChP2CjYHmhZl2hoD4XcWorcpPVuZIqz1ACtS6swk+N
GJyE++2UiZNEGKSuxD2JsgWbOhZJZW7doKEO5LB8FpdZqOd0HQXbq0QEwYlk
W1DI9V9tVYVsrk2sm2/NS6DORww6d0VUpyslDlWqsFAvye7PKZmzKy5bN8KI
MkjQSviNnAD+iOnF1Dymg8QOHTZPFTZMehpfijg9utG4uGP5psB+lWzqwHZD
RPe5J1uRxWiEer0PyvepY/BRr6EZ36f795VaUrcMVOLJmiAbXReJnKpuDRIZ
irL22ha8gtGNwYLRasKjlC4kSiGGoZ4UV6xrI8SNdF9bT2EXFOWkN68zmrXq
Dg3kCEOfi09rrGO0qQQ+03FBfSeMQ9oIbG68wXq1nhMcGSoXiB5ynCsWfQ6Z
EA7VBDWHWnJou+rr9n25BX9YhNfuhxfoN/xSLrK41lyDl0fGUdQfhMc8gZJf
JXKSyvrAR0m8Cir3OK5p69i3QZJWdRw0/xoyLVld10n8skD3UrgSLFrr1JEa
+z2INYNP3unOhLyZE5eSwCzdVGqJ6bXp8ColiwgCNy4OhsBoXFDFgQ1ukDH0
T7hVSncu4FkJg8hljeOkB6pTrpLlYDOqjMFgjXhvKOru4u1RetgWx8oYHnBZ
q2fO/BbwzfmsyZu7nOvoMGvBA36jkKRsbDwq2H6qp0vV1+Jmc9Q9cvdxMNrd
NnIRuFSiCZXfctuYn5Efy9ZA+9SVxltO2fOXEiH8LY02aacLk4DmDZjilKkF
65L9O3UjoAa8/Jxy5IHX9taK0BK4zLNKYxmm1tutJ5E0USlA47SoU+wqdxAq
n1ZKVFTjEFebjJ1js5AfW0cuUrYTE95l+yr2SYkES1F0cJfhISvHdIRT/BTH
qURd2zb0UBYdHFfvqTgSPBthxFRps2d+E+ivJCljnazs6kqUJdfCtxjp6UsC
5KyqaIvgsOvZauF3V94peJMY6NbFZOpqgxtkzbL4VEYbDJHIn7rdIpx6IzFF
sp9z+buzK645oZJbW3Ut5Bk4dEAuA7vLArsKDi8a7VgtRFya7gy3og5J6WBY
Aj9spCuQyhw9s8XtNDUULYAv3TTpSRm/eFeEcaBKB4hByUm2e337LM7X/obv
rD+yZNrdPYaNEmZhbRPv9XlLoQ/dk0zSGN3QUHrnSKI4/xIjCNtNcowSDkaF
D+T8ykIVJ1z0YvwszsPFeCs2x5vZC5wVAcCAUUPL/W1jpwkj2jhR0RCVZKY/
0o1oXi5FvZH116qZ8ZY6BV7yghgzjuWYyyRDsgRpIa4xFPqxVks+FsVcCftd
4GJZVVOxvWImZ+OmCy6kGBYGno012axewUUFHZaA8dAMSfh3oFD0eTieYOzY
Jg30WQUlx5f57fnJbcXE0OGi5CCyxBYi3Y09gtUB6ZuNwA7r3l7GhBvFblMg
Kxdohp6I6iKRB8uNqh0bsFowHDLKEU0sbLc+xqQhqCDbDHtfiVxwFC3lgdcJ
15yU7C0lboB/AZ7WQj/DWeCxI98b88ApDQw7GjUtUVXU9obJP5FvKBEJozFF
ZOsUvGbTqQa3yP29KKYFbVG4tobggjj5AO4csV/V5d9L+AA6qF1qw6ibHjAV
DzqSCYndorWjbNjURMEeb8iOIHsG4LZjEIgQiMkl2Pnkx2WtVeRGvNFKWweW
/jCBMb7ViJqoxb3VUEE2/e7wUV/DDGYljEjWx87iudX2tl9KtMfijMYJhQA2
nTTG9blSjUTm5uOtd6/fvcgQrQSaSnTQpTpc8EguliRyZhgVtmJXkWaTm2it
IJ9084wWb8wghDdIWq2PTqZNYhlBQTJwjYlHgCTYPKniedjFNcMQBQrOXPnj
vNOE0bE3aSXfAwEgdfzvbo6iat7vPvlMRWTmN6oSkdicz8lzq6MqoxKku7NT
fHWlnmKN3ZrzfiFgqVFTI7kjTwI6RfO5kNrhN/3YBGH5kq1gXhbCSimes9As
BUvafCFqNyqJLirNFCl7mCOWVk2GWmyvOuQIFE5MZyuEDG0cmdIanlbyqifC
4JCPTUC3WHo8ueLSjHpIlglY9MQ6G6YpeLz9iIiaaHwXeyiTwS9TBgGxokK1
Widn7kD0jf4il4WjiVvNnq59hH5OW9Hc0kDhIUOuxVqsLmpErE8ih5dMZM+0
1BZ0VOCSzFvZKFkqw+fFMJGvzqspH1hsVkzonc6brO3iWzYPkwCDrZT1jWn6
a+Ei5YnDWEpN0RqCTVpT6u4R78aButgytd0vBTPxnNmpQtzyOz26HOlxpvcO
DlrOfeUzf6nfzOoYJdNWjTkYmTgo8NTe7r87PM4+VAs+Rn/D6XAALEGshKin
VsVpxjAYpO5jk+3R0ZOULlIYSORv5EAajasm4mmYLqvppfANmVtdGUWnwKoY
KPdaC9hnHNqFf4Ql+by4DEp43woor+71GvneaPw4DeoguQOHx+2st9AIr9uk
XB2f56jidXmuRHaye4aa+5nCU6TJY20yz2AhJVQMLBSS4OiyceDS/cCq97o6
AapxJDBd8YbkjktN7grOT72M8YIljhwUWeiSjFa7mEwqFT5dGpfWPdl69KO3
oEhBhxxURy/SSVJvCBIjny+T2WCgripwRQ39exezy3JRzSyjuO/wwiEVr0xk
Z/D8NL5dF8mVhvZjPlWpcQxIYuqutzK2nkxXHIgAygybeaRopQbyU4rFGaM2
TJhIVZM1DJzicafVWTna5I7x4QXfoRzWWY3lVII3M0e10ORj2T0xnM/nbOX8
T6PheX3hu1SdvghHSJMenDQ58DhIOqF1ogTrUoAJFQLXxpwnaea440qyfpCG
8Fs4R69draCQaW4IX9XcxXPyQJ0sXGe4mZ5csF1pfHsjYCajakUnwhO/00YL
yPNKohGSv8JIkJHxbMtdGjQNGmkIaxgyt1NmUKCcEvc36tzO1vEylnCoac7n
OtyBNRbBRtFNUWrCyGPMG324sSB0FoMQKGLM3R95M0Cnw1HiEFq9IuNSaojZ
IoBFfqFnGh6GiEkVRV5+rw697T+5fsi0H2rl0pkLxR1eoB1ca2n2JGRvIeUh
4a6VJklpsbC6F1w6ob+W8DzLewvlzrgCHLG4Wh+kMKDFMqIgBTQTW6qy6Uiu
DBFndOASBTHm4gVyWHsUwjZh1gWlVVi0Iwmb2ewIIktu5jSxvuLns7D4VMWa
NeQoM9hNbwQbmNL7HEEh2TxmRRJPHuUoT0DISo4iXkM+gVu38VA2DQTnaNyq
yAZqMJB31kDmhCdHlj+pxyST9eb6tFgc0wur6Ff6s+McIcKbG/6//ApVA9EB
0EUwhYUe5XMsY97fdE5N8tHSpqnX4k1x7GjkGClpXsxmn24RC2XfG82iLw/O
P1mi/a08w9oJ0yrKk4hv8BlBccC8dYV5oHIhHc+JECwLQADqAUv/TgHF28BF
xn/u4J/SGPtol2FhZtZjElxyiHTqSheDfNx0ndFCSZc2yla7LWvOJNMM2eCs
QEo9qX4AFtMF7Z9xGGHjeJGGxKtf+XxsuNYDvfmGekyi8ec23r0so+uYAN7d
aBiiAbhRcbt5R4CmJsuMTaVW1yF3I7ChJdvANHq/TOebScjnCygOSlIIkoB8
r/lK+NPtSCchAQMSWDmR028TYoboLEe8bygosYokO6XwWl4YAbKlM6NkMsib
QGvGdP8W81GaX2aKhccoeKILJFpgweTm+CwZ7oGSr0t7+dg1X7D0nWSwFjRN
wGMdAK/lommeZUYy+FvqrpxUlEgke6PFBS2zyJMqL87gdVEjsCJpy/EywMW2
CVccw3Mq1a2WW0aVviqfBkuTjpPEsjYbQTO2b5y+AB/itKqgZ8C85vCa+Ckd
Yf64Ir3uad74GQ5rM1TtbEJWATU7oVqkFmPiyM5bdTyz1YVkLlhGq/Z6l+Yq
8/hUmSDiJ5zMUZDpSGtw7OTd3X5hlNdG+hCugMNoC2FdAvaKIMKNaT1IVBt0
lEQ3rZ7DcTW0WXhX7iIyPMxVL0H8cCh1XK+h4cJRvRiTjzwumhIqDUxKmUiu
1IqPszEfSDxIH6rS6cvzoFzs82iWzJUg7yCqNPvXTTJPrGVfIYyfjwHZYJ62
iosywASMdQCQycJ4VGKZ0ZLdN20W9zVCtpaziR2hIfS0DdCga+tUpim6WGRq
t2pnT8i+M9WiBly8iRiyCsrVArohs6bQg7EcA6ewWlYXnNTp+M11kBjs9b61
uczb14JdwWA3G/aa2S2LpUKXP2cilFhYOKhm+GHo7BIONOIYCzF2URwxynt1
ttstBJU9Y8sTkIRmMC35a2a8cTSm/f3XZJVqqPnI7vzSnz1hiOTQEcXoE0GU
SSMcS4OHYKqms1iKiYVHlDIzRonD2cPJP5MNfpokANhKzvJLqYHinOnwj2lz
WzNsVphEZ+sA6hw3Q6e4ktjT68zf2wnLyNbIji77qf5ndQDFSIWgKQvzEv5+
xkGW46UkW5S/fqI1j8wxTnvCZVGHokG9+JtiwRii5iXPcBqfV0jj83XUSDIv
+SA7WpE1yWURy4CljWSPUPYh+PSzvKtfgjOgW3pdLldhnF1PnU2r07XXSlko
IGnTRNmK/S85bU0cqqs9fxj66UAqMUyNMzleppEsHcjBVDDeXI1+AU3XoiHv
ytZzxECbzCX5HRAi5tySSRXUPBAGWk2pZQWZCWwM9Gk9KTUQkF7kMqC8WbAX
TE6xnDMSlGlS/56oM9ZPacTLcRCo/SafZ89UxYuxrM4JJ5f8cA0wUoosTPk3
9KxS4S4KWYOy2TGeiwtItSqUjxGa/Q5HbuR9xsVcpPgk8pTXa2ppN8W3ahxH
eWYrFjM8dBmq6fhEFScRTBzN/K6a0sz4DGg3XC6hbCsU1Ip57Cx51XcuVXwV
FYscN7E6hkGmtbm+NIFxG+ajLwr+ek3Z8nilWbiz1VREaVwM1RJvL18fHkuN
OkrUH+6hRB0Fpjk/LjsAHvb1bAxq1evs3uHB6w2/Pd/c0Cc4Lb6KOYdQoN5M
YFSmO+LQczFQ4QtH6ZQcajlw+mwmYoOMgixKqwwuFMqihUgB3wC6BBQ6X4RE
BDljOfSsY7ImNIVBkzMngGCwWUxDVTQF3LQS7HLLusetvKtPgkaNFAC7WCAH
edpY19ibIsBC3uyUQ0Whvsahv8bQgGfcu75M3C/TIGdnLU2tpYXIZiFH7yLV
rFOM3E/XtfDrwI2k0N+hk4oTRxKTTU/Tdm8+KZeqdwl0I1cBmQhDxA1LEaYl
mYIS80vnBfPDtexqkCSZPEmFAXsLVa6D4QyFl24U4qgbmlOI1AYGJ18DNmf0
s8SFdN/SPp0WZzmNiJRS1mZGytmq8GVz7QborAuVI1qzMPZ34lOh5Wk73pvN
CTtmOY4jOLedk8MxrOfwOxzEQccpUjomMo+H78OlzeKkUGEgHSCuQ6PqG3F9
OoYVw4tpPTRgH8JOF6iM/onvD/3nGs6PluLxLhDqMekHIk3MkzddUO5g3CwI
wzklnzYsDg7yGvAeXZuLwbzRZ67Oq8GAKcXlFuCSkQG2yXrIusdJUPpTaAIw
CbLPAo9bmy8SeAUH3rqmtKyf2pHeuPq3VMkkFTiytkoxRaTJbkLwIxOKw8HJ
pmHEaRuMBwxsQIyMJGtdTOd63kYfhQ6SM7dmpcpZSJpJgtl1nUA/uDLDFjzN
Yy2AWtdjA2SdBM0hs7Cr02LSTqu+4BcyYIVeehzUvMk/VY6U0MbEk1IevHEo
H0xmS0PAO+3LsGAc+mTtGNuyhN41LajVstD1eOBGMeqjXigk97MmmJWz6ul+
/eObIsohpaTFVEnPtIrQeP91GkABL4oBuMwXWup0wJH82VNPXHpArkO5FLzz
jCFVl9Ts568EdunIVhXFYFKdzKNUtyRTw1mPzOlHFcBuV54vTQGBHiVocIb9
JmAkR2klXs0on9fwsbxsgr+tpa5sF5wg/Kc7nBo0d5K2LbFAOexIwmUYf86s
k2dZDeWQsZA40phLa01W17eNI4VJ9X26NSkYCu8tsI2c8WWueol6rJyXsrxq
kc+TlGc4jeQOy20NRyfMrEYZXrXRK3BQAIPP6nGM5iwn1wYfCbO8VG2MsAml
5izuRcnulp587CTH29JzICWL4atiOr3g1Pg5v57OBUmgRpSDTgwphB83R/Ki
yCWEObvOomvWuEVCt+QEB/ytBOSx/+1+K4t9kmD9gbGYVfLLXKMKuPSliqYc
6VaOHjsyzapeb59x1ORnVpyLUiqkZgSif1wIrMmf4QbZDriGxIL1sah+TS89
PKQNqZzPi2x/dUHuSiXl/Hz5kC/nXA3W5ndkMEIm+TifFNm9794fb4BWTTXX
6J8gG2MuD5pLs6GaWVNlkwNSKZu4L55M4RNqcoMe9jJ5QW0NsAm/qMlqfv/6
sIH+ofMLPh1++IZaYwFqBv+VorhIpnZosaEAu2QmLIdoxAPoWeDfhBPc6/3q
n+ivv11MRsX49yJ7gzVa9/KN7Hv2Y7Lh/e2gm0PvMby/s9nLeoc0scmUPO1l
Wfbbw/fDd2+Pf99L+ftO6OA1yH4DRpgcTsYz+ts7eBajn64/0l83JfryazpC
Ta8K+ml/X92sceNO5FTR/bXmsFj0B4rtmGGYGJAyCOx4w+eLfLIcNO4wxodD
hmx4145ehmbQ/ey70bJCAnTn/s7D5qW/Ol8u6UW3tpCmpzEFdpHBH5vV4myL
5v7W+fJiurX+CV9vUn9/jXWwP0LZwLQYi/msezdPpTijGP9zf0KH+6L/qbmm
NCaDmAk2EC4wApqNHLSSWpy+NhbADc2UfDWlPXsyIRPySeB6+exjLYJGN8/p
8g80sT5JSvPmJTgnYJif2ycn5/SQD+XZGQ27fXYMVGpOk5EObnivg9W0oNvP
7PvDfFbV2Rvytml7+FiG657R+jqON5nQPQ6KaWmfvCumo3NIUO4XMHjhspf5
9GOVHaPO5aePhX36nPydMfkNZIZmFflx9vkrMnTZi59+olNHEVr0DKHunCdf
eP6oWi6zI/K5wpWAKZVkBxbSV+H9yZS9pB2GDJ19elTBIlPvXU/Lq9B+GO1n
ZX1ezcNH+bT8n//Ksx9Wf/mPclb+5V/ti//+d5Rl/HA9G/k3OqW3qaZFeJfn
JU3tH2ixvVqdVZ9inhnjVpJL/0OOcGdRkw37FCJ9WsfOoZhFcVlqfEhCGuyj
v545314capAiVEDychBQTkUVGe4wSTUHOAt7nWbh/PyUGfdmQZ+9uSK/6SNt
1x/RZ5sN4/KBn3JdrcKTuNpIqwx/RZbza9nmAY1RKeZSwMM9e9q/GObu1cm7
t0Ln/PwlQ1ANlZzX/gYBo8drRzSdBz15lrlidM0fTs3tAdrXkC58GDBF4VC3
n92LSt/lpIf3SfsPL8RPoHsWEra7UFoGPRpm1WxktDXAgtQ96mNwJ4mrd/Ty
4Dfv3m5uYMws04PImraATO7OH272HnzC/0f8D8g4/u+//edoY2uHP917IBYn
6f/DKZ9mdHbg6X0ua65RK/OWvIMVWZl+oDjTgFQ1Awta73h5TS39ZoVAVjCI
V1dXm3TzYUHbb7Vgc1jjd2f42RZm287WV6U948epPuPrHgZuWoBcKsNcA9I6
+iiSOjLWB92F6kCgoAjQcJTrRZ33C6EVI0ewBoJQnuZYnHDaA5HOhMtSyVYs
6jRI0JtLH4XqaONH6IdTUt8l3WQ0tXgMZgRA/Q/GZtjjdMVVcYoSrF7stOJ0
E+lR6hHuMfr3Frad+zvbD+4/2Xnw8PGW719kIDfPqsst/GVoVZPDaXmK8jD5
VDAV1BvDmvVxh+LeiY82lFU+LCMJW/0VH7q2v+6hzEVLac5NgpBRHajatIAc
+Z6nZW4cJMa5kNP+drYih2qz1z+JvcOwBY1+MzkT3W2gOBU96YSDB/vYECyk
QwKNNE/Z3v8B55XBSDbOAQA=

-->

</rfc>
