<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.39 (Ruby 3.1.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-huitema-quic-in-space-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.0 -->
  <front>
    <title abbrev="QUIC in Space">QUIC in Space</title>
    <seriesInfo name="Internet-Draft" value="draft-huitema-quic-in-space-00"/>
    <author fullname="Christian Huitema">
      <organization>Private Octopus Inc.</organization>
      <address>
        <email>huitema@huitema.net</email>
      </address>
    </author>
    <author fullname="Marc Blanchet">
      <organization>Viagenie</organization>
      <address>
        <email>marc.blanchet@viagenie.ca</email>
      </address>
    </author>
    <date year="2023" month="September" day="24"/>
    <area>Transport</area>
    <workgroup>QUIC</workgroup>
    <keyword>quic</keyword>
    <keyword>delay tolerant</keyword>
    <keyword>space communication</keyword>
    <abstract>
      <?line 45?>
<t>This document discusses the challenges of running the QUIC transport over deep space links,
where delays are in order of minutes and communications are based on scheduled time windows.
Using the experience of various testbeds, it provides guidance to implementations to support
this use case. This document may apply to other use cases that have similar characteristics,
such as IoT in disconnected and distant settings.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://huitema.github.io/quic-in-space/draft-huitema-quic-in-space.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-huitema-quic-in-space/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        QUIC Working Group mailing list (<eref target="mailto:quic@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/quic/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/quic/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/huitema/quic-in-space"/>.</t>
    </note>
  </front>
  <middle>
    <?line 52?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>QUIC is a new transport bringing very interesting features that could enable
its use in space, where TCP is not good, as assessed in <xref target="DTN-ARCH"/>.
However, QUIC was designed for
terrestrial Internet, which brings assumptions on typical delays and
connectivity. In (deep) space, delays are much larger, in order of minutes
(4-20 minutes to Mars), and long disruptions, such as because of orbital
dynamics, in order of minutes or hours or days.</t>
      <t>It may be possible to modify the base behavior of QUIC stacks to satisfy
these requirements. For example, several assumptions, such as initial RTT,
are just static constants in the code that could be externalized so they
could better start the QUIC machinery in the context of space.</t>
      <t>The purpose of this document is to provide guidance for supporting space
communications in QUIC implementations. It should be noted that it may also apply
to other use cases that have similar characteristics, such as IoT in disconnected
and far away settings, but these are not considered specifically in this document.</t>
      <t>Various other considerations such as how to store packets during disruptions or
network management considerations are out of scope of this document.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="timers">
      <name>Timer Constants in QUIC</name>
      <t>QUIC implementations typically use a number of time related variables,
with different characteristics. Some may be constants suggested by the
QUIC specification or chosen by the stack developers, some may
be negotiated between peers, and some may be discovered as part of running
the protocol. Preliminary tests showed that setting the constant values
appropriately seemed to make QUIC usable in those deep space scenarios. Therefore,
this document discusses them in the following sections.</t>
      <section anchor="probe-timeout-and-initial-rtt-initial-rtt">
        <name>Probe Timeout and Initial RTT (#initial-rtt)</name>
        <t>As defined in <xref target="QUIC-RECOVERY"/>, QUIC uses two mechanisms to detect packet losses.
The acknowledgement based method detect losses if a packet is not yet
acknowledged while packets sent later have already been. That method works
well even if the transmission delay is long, but cannot detect the loss
of the "last packet". For that, QUIC uses the probe timeout defined
in <xref section="6.2" sectionFormat="of" target="QUIC-RECOVERY"/>. If the last packet is not yet acknowledged
after the probe timeout, the endpoint sends a "probe" to trigger an acknwledgement.
The probe timer is initially set as a function of the measured RTT and RTTVAR. It
is then increased exponentially as the number of unacknowledged repetitions increases.</t>
        <t>The mechanism works well if the transmission delay is long after the RTT has
been evaluated at least once. But before that, the probe timeout is set as a function of
the Initial RTT, whose recommended value is 333 milliseconds per <xref section="6.2.2" sectionFormat="of" target="QUIC-RECOVERY"/>. Many implementations use smaller values
because waiting too long results in longer connection delays when losses occur. The
recommended initial value of 333ms results in a PTO of 1 second, but the shorter values
used by some implementations can result in a PTO of 200 or 250ms. On a long delay link,
we will probably see the following:</t>
        <ol spacing="normal" type="1"><li>Initial transmission</li>
          <li>First repeat after timer (e.g. 1 second)</li>
          <li>2nd repeat after timer (e.g., 1 second again), after which the timer is doubled</li>
          <li>3rd repeat after the increased (e.g., 2 seconds), after which the timer is doubled
again</li>
          <li>etc.</li>
        </ol>
        <t>If we let the process go long enough, a succession of doubling will probably match
the required value, probably after a dozen repeats if the delay is about 20 minutes. In
that case, one of the dozen repeats will most likely be successful, but of course
a lot of extra energy will have been expanded. But the connection establishment will fail
if the process is interrupted too soon, either because the maximum number of repeats has
been reached, or because the "idle timeout" has been exceeded.</t>
      </section>
      <section anchor="server-side-timeout-server-timeout">
        <name>Server Side Timeout (#server-timeout)</name>
        <t>The long delays also affect the server side of the handshake.
The server will only be able to assess the RTT of the initial path when it receives
the first acknowledgement from the client. The handshake will fail if the server
discards the connection state before receiving this first acknowledgement.
As on the client side, this could happen if the maximum number of repeats has
been reached, or if the "idle timeout" has been exceeded.</t>
      </section>
      <section anchor="idle-timeout">
        <name>Idle Timeout</name>
        <t>The idle timeout is defined in <xref section="10.1" sectionFormat="of" target="QUIC-TRANSPORT"/>. Each peer
proposes a "max_idle_timeout" value, and commits to close the connection
if no activity happens during that timeout. The "max_idle_timeout" value
is often set as a constant by either the stack or the application using it,
with typical values ranging from a few seconds to a few minutes.</t>
        <t>The specification anticipated the usage of long delay links somewhat, and states
that "To avoid excessively small idle timeout periods, endpoints <bcp14>MUST</bcp14> increase the idle
timeout period to be at least three times the current Probe Timeout (PTO)." This
will prevent interference between the idle timeout once the PTO has been properly
assessed. However, this proper assessment of the PTO requires properly assessing the
RTT, which is requires a full RTT.</t>
        <t>If the Initial Idle Timeout, Initial RTT and Initial PTO are set values too small, the
connection attempt will be interrupted by the Idle Timeout and will fail.</t>
        <t>Since the idle timeout is negotiated as the minimum of the values proposed by the
two endpoints, both peers should proposed values that allow for a successful handshake.</t>
      </section>
    </section>
    <section anchor="flow-control">
      <name>Flow Control</name>
      <t>Flow control in QUIC allow an endpoint to limit how many many bytes the peer
can send on the opened streams, how many bytes the peer can send on specific streams,
and how many streams the peer can open. Different stacks follow different strategies,
balancing two risks:</t>
      <ul spacing="normal">
        <li>if the flow control is too loose, the peer could send data faster than
the local application can process and create a form of local congestion.</li>
        <li>if the flow control is too restrictive, the peer will be blocked and
will have to wait for the next flow control update before sending data or
opening streams.</li>
      </ul>
      <t>The peer will not be blocked if three conditions are met:</t>
      <ul spacing="normal">
        <li>the "max streams" credits allow for a number of stream at least as large as
expected to be open in an RTT.</li>
        <li>the global flow control (MAX DATA) allows transmission of a full
bandwidth-delay product (BDP) worth of data,</li>
        <li>for each stream, the stream flow control allows transmission of either a full
BDP worth of data, or the full size of the data stream.</li>
      </ul>
      <t>Setting these three limits correctly requires anticipating the RTT and bandwidth
of the connection. Implementations relying on adaptive algorithms are at risk here,
especially if they use a low default value until RTT and bandwidth have been
measured.</t>
    </section>
    <section anchor="congestion-control-and-slow-start">
      <name>Congestion control and Slow Start</name>
      <t>QUIC implementation use congestion control to ensure that they are not sending
data faster than the network path can forward, which would cause network queues
and packet drops. Congestion control will typically set a congestion window size
(CWIN) to limit the amount of bytes in transit. Transmission will be slowed down
CWIN is lower than the BDP.</t>
      <t>The main congestion control issues for long delay space connections are observed
at the beginning of the connection. The congestion control algorithms typically
start with conservative values of CWIN, which they ramp up progressively, typically
not faster than one doubling per RTT. On a long delay space connection, this
ramping up will take a very long time, leading to very inefficient use of the
connection.</t>
      <t>Implementations have tried to palliate this issue in many ways:</t>
      <ul spacing="normal">
        <li>measure the transmission speed of short trains of packets to rapidly estimate
the bandwidth of the connection,</li>
        <li>remember the delays and bandwidths of past connections and set the initial
parameters of new connections accordingly,</li>
        <li>obtain estimates of delays and bandwidth through network management interfaces
and use them to set appropriate parameters.</li>
      </ul>
      <t>If initial parameters are set correctly, connections can still be unnecessarily
throttled if they fail to adapt to changing conditions. For example, after the
initial "slow start", the classic RENO algorithm moves to a "congestion avoidance"
phase in which the CWIN increases by at most one packet per RTT -- which would be
completely inadequate with RTTs of several minutes.</t>
      <section anchor="setting-the-initial-bdp">
        <name>Setting the initial BDP</name>
        <t>The congestion control issues are not specific to the very long delays of
space communications. They are visible on paths through geostationary
satellites. The recommended approach is to somehow remember path characteristics
from previous connections, then use the remembered values to speed up
the start-up phase of congestion control.</t>
        <t>The "careful resume" draft suggest a cautious approach of only using the remembered
BDP values after the RTT has been verified, see <xref target="I-D.tsvwg-careful-resume"/>.
This verification takes one RTT, which is a tradeoff between the desire to ramp up
transmission rate promptly and the risk of causing congestion on the transmission
path if the remembered value exceeds the current path characteristics.</t>
        <t>If the BDP is remembered and set, the value can also be used to set flow control
parameters as mentioned in <xref target="flow-control"/>.</t>
      </section>
    </section>
    <section anchor="packet-losses">
      <name>Packet losses</name>
      <t>Packet losses will likely occur in space communications like in other media. The
loss recovery mechanisms spedified in <xref target="QUIC-RECOVERY"/> correct losses after
at best one RTT, with repeated losses requiring further RTT sized delays. In space
communications, the long delays for packet loss recovery will affect the
responsiveness of the application. In some cases, the loss recovery delays may
extend the duration of the transfer past the time of availability of the
transmission links.</t>
      <section anchor="packet-losses-during-handshake">
        <name>Packet Losses During Handshake</name>
        <t>Packet losses during the initial handshake may prevent the endpoints from obtaining
a proper estimate of the RTT. The implementations in these situations can either
repeat the packets "too soon" if they underestimate the RTT, or "too late" if they
set a large value. Expereince show that of those too pitfalls, "too soon" is much
better, because it simply leads to repeating too many copies of the handshake
packets. This may look wasteful, but it does ensure that the handshake completes
rapidly even if some packets are actually lost.</t>
      </section>
      <section anchor="reordering-buffers">
        <name>Reordering Buffers</name>
        <t>If packets carrying stream data are lost, the other packets received on that stream
are supposed to be buffered until the packet loss is corrected. Receivers have to be
ready to buffer a full BDP worth of data. This means not only having large amount of
receive buffers, but also make sure that reordering of data is done efficiently,
risking otherwise some significant performance bottlenecks.</t>
        <t>Reordering will also interfere with per-stream and per-connection flow control. In
<xref target="flow-control"/>, we wrote that the amount of credits should be at least one full BDP.
But if we assume that a full BDP worth of buffers can be consumed by reordering
after losses, then the required credits are actually two BDPs, not just one.</t>
      </section>
      <section anchor="using-forward-error-correction">
        <name>Using Forward Error Correction</name>
        <t>The effect of packet losses could be alleviated by using some form of
Forward Error Correction. This is an active research issue, see for example
<xref target="I-D.michel-quic-fec"/></t>
      </section>
    </section>
    <section anchor="further-studies">
      <name>Further studies</name>
      <t>There are other considerations related to using QUIC in space, related
to naming, security, or the management of multiple paths.</t>
      <t>Most QUIC stack can set connections towards specified IP addresses, but
most existing QUIC applications rely on the DNS to find the IP addresses
associated to names of servers. Using DNS in space probably poses its own set
of challenges, which deserve their own study.</t>
      <t>Per <xref target="QUIC-TLS"/>, QUIC embeds TLS 1.3 and relies on it to negotiate security
keys. This document discusses the effects of long delays on the initial
handshake, which embeds the TLS 1.3 handshake. There are secondary effects
that ought to be discussed, such as the handling of certificate verification
and possibly certificate revocations, or the extra roundtrip required
for performing client authorization.</t>
      <t>It is probably possible to use multiple path to increase the throughput
or reliability of transmissions. Operating multiple path with long delays
ought to be discussed in a future version of this document.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The solutions envisaged here to alleviate the effect of long delays on QUIC
connections may well create some form of security issues. These ought to
be discussed in a future version of this document.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="I-D.tsvwg-careful-resume">
          <front>
            <title>*** BROKEN REFERENCE ***</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="DTN-ARCH">
          <front>
            <title>Delay-Tolerant Networking Architecture</title>
            <author fullname="V. Cerf" initials="V." surname="Cerf"/>
            <author fullname="S. Burleigh" initials="S." surname="Burleigh"/>
            <author fullname="A. Hooke" initials="A." surname="Hooke"/>
            <author fullname="L. Torgerson" initials="L." surname="Torgerson"/>
            <author fullname="R. Durst" initials="R." surname="Durst"/>
            <author fullname="K. Scott" initials="K." surname="Scott"/>
            <author fullname="K. Fall" initials="K." surname="Fall"/>
            <author fullname="H. Weiss" initials="H." surname="Weiss"/>
            <date month="April" year="2007"/>
            <abstract>
              <t>This document describes an architecture for delay-tolerant and disruption-tolerant networks, and is an evolution of the architecture originally designed for the Interplanetary Internet, a communication system envisioned to provide Internet-like services across interplanetary distances in support of deep space exploration. This document describes an architecture that addresses a variety of problems with internetworks having operational and performance characteristics that make conventional (Internet-like) networking approaches either unworkable or impractical. We define a message- oriented overlay that exists above the transport (or other) layers of the networks it interconnects. The document presents a motivation for the architecture, an architectural overview, review of state management required for its operation, and a discussion of application design issues. This document represents the consensus of the IRTF DTN research group and has been widely reviewed by that group. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4838"/>
          <seriesInfo name="DOI" value="10.17487/RFC4838"/>
        </reference>
        <reference anchor="QUIC-TRANSPORT">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="QUIC-TLS">
          <front>
            <title>Using TLS to Secure QUIC</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <author fullname="S. Turner" initials="S." role="editor" surname="Turner"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9001"/>
          <seriesInfo name="DOI" value="10.17487/RFC9001"/>
        </reference>
        <reference anchor="QUIC-RECOVERY">
          <front>
            <title>QUIC Loss Detection and Congestion Control</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="I. Swett" initials="I." role="editor" surname="Swett"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes loss detection and congestion control mechanisms for QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9002"/>
          <seriesInfo name="DOI" value="10.17487/RFC9002"/>
        </reference>
        <reference anchor="I-D.michel-quic-fec">
          <front>
            <title>Forward Erasure Correction for QUIC loss recovery</title>
            <author fullname="François Michel" initials="F." surname="Michel">
              <organization>UCLouvain</organization>
            </author>
            <author fullname="Olivier Bonaventure" initials="O." surname="Bonaventure">
              <organization>UCLouvain</organization>
            </author>
            <date day="21" month="October" year="2022"/>
            <abstract>
              <t>   This documents lays down the QUIC protocol design considerations
   needed for QUIC to apply Forward Erasure Correction on the data sent
   through the network.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-michel-quic-fec-00"/>
        </reference>
      </references>
    </references>
    <?line 320?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA51b65Ict3X+j6doD/+QrpnhTU5klmN7RVIRq0Qus7uSo0ql
XD3dmB2E3Y1xA72jlYrvkmfJk+X7zgH6srtSHP8hd3oawMG5fOc6m83GRBcb
+6pY/dt3714Xrisuj2VlV6bc7Xp7c/95VUZ77fvbV3i298bUvurKFhvUfbmP
m8Pgom3Lzd8GV21ctwlctXn2zIRh17oQnO/i7RGvv3t79bXphnZn+1emxqav
TOW7YLswhFdF7AdrcPpLU/a2BBVXfdmFo+/jypx8/+m698MxEbcyn+wtHtav
TLEpeDD/r21T3hbRNxYrI58IKUXl23boHK4BUsyN7QacXBTLDYtCiVz9BWe5
7rr4V37N523pGjznKX92Nu63vr/m87KvDnh+iPEYXj19ytf4yN3YbX7tKR88
3fX+FOxTbvCUC69dPAw7LlXOPV1wjm80YE6Is83Tm1tdunV+uebpr0hie4ht
szKmHOLB92QYDiiK/dA0KsXXh96F6Mqu+EbXy/egvuzcT8KzV8XH3t2ApuK8
iv44hOJdV23lNavcSSf/OdPZ2Xj/oPfgRvFVU3bVgV/fO+R7V17bztn5xi3W
bHdpzZ9v0hvbqjSm832LlTcQpqFiTp+4/s3Vh83ZxetvXhX9vvriy5dfylPK
enN1cfbh8uP5xZV89/tnUNXpu28v89Pn09OLt6/Pv3978UP+6oUxm82mKHch
9mUVzdXBhQJmMbS2i0XtQjWEYEMRD9C+Q9k0trvGR78v+qHrqF38RswsZi0v
/I3tocP2mNS2cd2nsDang+2t6naAzlkaJjQf72K71nUDVKUou3qp5vrqrgy2
LnxXBLCvHhp8iK61xcl1NXRya74LmRj749H2znY4GPvelL3zkDPVcGfrsC5c
LI69v3E1TrseXF3yzegL1x4by2unY/EoDEdeyERyZQhgAcjYFksmtTDV8nhs
aLCFBwX9+Cr5VsbiUN7YIriWZkUuktNWVLUCW8JQHYoSmuivyBHy3HedxSu1
cAMPIlCgCDZG3BF3FZG1rq4ba8wjqHDsfT1UAgpGIQ9cKzp7mgll12MxeQTh
3OIgUACW8MHelnHoM7GVH5q6sF25w+4u6r1Bl4hyXagQr15/5Bmdj8W19/Wa
9JdUFEoJL//8c9baz5+35ht/sjh1rXpywrvgvbvu8C6U3YASktK7suFdbA+b
40EOfBGqZe+hPapcoAQAOGhHM+pSV5vEM3fj4u0W2xSPqYBPMtkzrWvJb0ji
mhQ9oILm8RebF89GhYRQYe7hyVqE0XgwDBLpB6VmXWTx7WxVklXYyPc7F8vG
1LeAC8r4QU33fXHwQy9/1CAOcn2n2rSzxdHD3UACPL71tdvfim7TDPA1FMp5
2Uw4Cv2oPqnCQnfD/hYKa/Fib4Gfveh02BZfY4X9saSWg2oKBBycMXa6iutc
pDAurq7W9GHFfw0h8hQobEFHR33kawoLvrZz1dnRBCnFsnE/QcTB87Vbk7+N
+I6bQSdH7GhLuJtOFTNtCkX4MfKKiv0G0AS2DD04I0yOCyN0cv1k15NZQ72y
EVPTZStzB15wotrM0v6hRLjzIV8Jqk7M4TVdsvkGNxPDN/+Q4Re/YviGurbH
ovKEk7Llr4vdIEzDKRQLzY/iwJV7MvpoK7enYTSJjzMOgYHfJyhUUvPCxIVM
zMGfRJGixwFg1ycLSdcDzXCu91BaAzNlOANmdHBmIoY7m5JIP6gUK3+8L7ct
8eu17xDKpBW49xu7Fw3EZ5U6QqSCMVIoVu+/u7xarfX/4sO5/H3xFvK7ePuG
f19+c/btt+MfJr1x+c35d9++mf6aVr4+f//+7Yc3uhhPi8Ujs3p/9sNKLX91
/vHq3fmHs29X93gr9wTTdlZx9dhbAe9ggHNV73YKil+9/vg///38C4Djby6+
fv3i+fPff/6cPnz5/J+/wAeAa6en+Q4y1I9iPNAzC3XALpAuVOxIgAmCu9DR
U1cQlsHN3/4HOfOfr4o/7Krj8y/+mB7wwouHmWeLh8Kz+0/uLVYmPvDogWNG
bi6e3+H0kt6zHxafM99nD//wJ4QUttg8//JPfzRUoSvEAj0VaYImsemfHzFK
6MPn7Bfv+nh1JOA1LRcuU2J6UVNGF71l/FpLEEF/yCAGcSsMYb8Hv6nwS6Pe
Fpce6xKIT1AZhmuETdxqJ0Cu1IwGS2LoBqoDwK1L7yisw3Pd2Aa20xMx0uaG
gIRMBigte8IQLdYdrbxF/QkzMgRYbgQioC5HAu8Uv9FVEDejr3yzRXhsG+BV
VwKKGTKpemXkS0CUEVrjkpuyGeA1oaG9P/akqCFkgc21eK/yUwL5IZCHaj0E
8VmEGCoEHECnwOAKlAK37drEXw5G2+wo9r5p/EnA3VYK3FCIR7iIx9WpFwQg
suTd5NWKx4+Sj9v0MT4x5owhCVAnRy+LWPnz53W+AA8/4U4Wcu9caMXr1LD2
KiawRIRAGrcCXHjS+ROC1QSPGsW2Fvev8zJ9v3B7qF/aIkVWt8gtZjvUDIma
CZQDd6R+9upnygbZZk2J245shLzSSUTpYE4WyAFl6ngWWSexYcprU8qJkxnh
qKOpyo5kJDq5grQar6tXTRnypVcaXVBHFqxS1YIcYpJDYrIRJl+qwIp/2r7I
ocyM5/C/etDsnBln5ryFu9yTDffOW2tC0NVH7ySC7moGxit5aUXZIeqEZcLP
drLhJCsV4LRbz7OT0oh+R4l5kRR2eovEltaWYaCpUc2odvj/+7MLRhPGCUvA
/66CqKgKyFV8R98nm5bKsgmEhm4h/94ebXQ5atE9QoqMRpVUaRci7f9T0MXE
ONJ7gMui+kBNYNSCLdCixlICHvHUtvgKQtyJeSZp35exCw9yR4BmZoOM8L0E
qYzHIBnBWUAJN3j58iXi5KZxMGpPoQH/lhojOmPu6cz7sru9h/LE9tAyee0z
WuVo/VQ6RTTvlSHIRIZGPQg/a6DUpXNTFkG/nO3WV9XQC2qZ+U1yCK03gihx
I6DFbPey+Hh1zm+eF3rJMboj5PZxonUI6jcE0+/eDUaadl1s+uLZMzqUF797
1gJTz/mNpi4ifSbkcGVMn6ElFB+QWUB7iamvjHm+HYU2VyPzAibveugFlRJK
khRJLOWx3V5vx3s9MS+3xYuu/sU31+OrRXlduo6plryjKaBocLbA2g/wIbX5
Ylu87O9uebAz00pbv0hbh79nVzne/G5b2FgxHdvDjKD+MWt5hQQXCa+y0nZ+
uD5gV8bO/CahgGxGnVoyty1jdRAjSGlZUvf19IrSV2KHn2yX7hayEY92W+5o
ZVOGSgEZzb9w8TUM1WYwWm4k9LQeMmvcJzppGG0ifT80qn5YWDEptYYKI5+R
hvUlbmv761vdQ9yN4sSPx5L6rsCQwoJsLQgfcC0XDuL7ZOW+dI1JF8r8FFxl
DQCphYQMyD68R+BrnSQq2VQFXcsfXTu0M4jMlxuhC+JniWhN9Z8vXbm6GUFq
xffzFSpreQUJGy5tz+LVJbPIHDw8fhTk6SYtfqKIO9lTSLkggsLkKHVBwVwo
ywLoXIcDgiH1LOkN4YoE+xBGmRJ+raSMqJw2yJByLBGBCgQ5Wl9l3Q1AQuxW
DPJu0LHvfauiaRwdG7FqomaSS1Y0pcww3CqZc92RKssANvsAPV5DQsjxQQK2
jK58NyNB+LLWJVoVODC/GQOT/6eU06q/T8Dv+FKSrMpxvkzAYB4IZo/z/Nn2
+RikjGVXepy3IEQib8P419MnIMLAFf7Kjf860pOMPdc3WVmDqKvGJ/2cWEwD
6aAFqZqVmDNm4WLqaVsV5i+dxoDDA1O6ySGPUTv8SbKvKdXw+oE1jZyUDFJW
dTElPrnwpp6pgEOQkqKoGLy9PWW0FTWWBxmllNnLlAeEuModSy2tWGYI12Iw
d3xVEN93koBDshvqYFDQW13hpBvvahE0UPhG8g+6+6VoWRX2LADneDAUkhpn
l6FGxprqckXK7MdAKB56q7sm2xh6SQWXGcdjOOIn25XUik3yBAy+o4KdpI+V
HVO3eFcRvVSl8ZQOfdRlqpjtm1uTi63bYiyuijnpCwlBxPwTenCb5HjCuE16
L6V0JkVldI8uTG+X0vkgFKlPnAdyc3NaL1KsecrFw1kjoRom1RGYp5AkhDQz
gCljtO0xOYxcUknOIWXG81PloBHEQOGly6y7a9mzlDmF2lBOQZrEpERbMuQx
WWfKNyoN/KSPavEh1wfHBflyVMySQZRUIMuZm537AfOo+JrvvPas4DfGyKdK
P401DN0HYd6Yx0AhmaRHKda1jHjln91tzEkX4YiRITOejL0QOWEtRGh7i2uM
i5frivm6bK7jKilMjivT0+VanrMt3owlklSd1qByVjphxynaa8eqyq5kY0z0
ELzuXfgUEHv+NkP7fsGXkKJ1H+x6drRIQgivywidha0KupWd0dyVwDXHNhKb
gxCBZVwmsgrEDpyiEJdUTAMCV2x/nSJtYhC153RlNd5ht0/a0jFTFAVRMgUR
NZHcj0XvxebDsZ45XN5PSrG8ou8NmS3FD5VELpOPBzNbnh0u1BO+CNJuKtK2
Ngq/Y/Imeb8VmVLTV821efLL+tqEjTAr6ayw9sk+XKURHUnw4uCJ+Yoketh1
g9i3Wd748fuzfy/enF2dPdFTwzKB9fuESNCarj65Oh426iqO2gYrHn/15uMT
5sGwUwbk4NUa55F4hg2J6nXyfHKDBQG/cGryl+lwnHHniOw/BS2D+2kKwyks
PYj4NBXRxOlQHGLODIbgSqoIYJ7AN7vIXHfL2DpePhdkJghFRnAnS+zhE7kB
4bUuj1RR3PLa97hSqyoAGdLupJC8NlYsXzsJsn2ukIoN233JhFOT2wEUNvfJ
mrIEk2siudqfzGniN9ZdcuNLdoUeLNVqZ+X+0khk5uYpLCKhuTWSbMXchYNk
aNq8kGiaSADtOCHezQ7wJHCi6UN+92+DlUonyE31qBrAjwTsgTuJ9U3lZQnA
5hfQxrWoiXn8+i/vPjyZYF2CsNYP6r0VnlnupD46xnxzxcz4Ehqp02LTznA/
LfGc5neGyuZqEfLch9iJPem/aCmzECwPn2T9So2dnWQKyJqV4h2wXEcCHlDI
q8OD4pvp4Mgro71BiTdlqqa/kXGI7FyxO++3nhJ5mEvZHoGURIDrPgeB69me
1Ie5CjBJHhN1RkzEpHt1krsX1yDL8DSuw4EqZuZRpTbWZTVjjjUhsdbaUu65
2z18qWRAQ25izkMfhld3DFedRO8URo+4C+MXjfVEWFQM8cUn5KGC4cna7lf+
YNKcodhrfYnfuU7YmSvKOKEvj4iabpm7uxYncZpI+s7Zqu/JlsjKHrO4hLFQ
EZZgkI4JcalFDOVTdSVltzjvWIK/NjK8wiIOMSzWVABJshXyxcl+F6nKmVxZ
8hABxFmWa4oHmpYakEPSgbNQWJVKBq00Qmm4U2tjRp0Gw1NWPlKdI90RzdeL
G0h8FZPVDnwOhS17xz4yiIyxyY4aii2JOXMporYkjIeUc00e/E5rfyyGmUzb
itigLffVOuXhiPwR1l28/XA+GWHR+hubUrfVzFolvWI/fWWOh1LHQaYqmoJN
LkczZmbnwUvJOHcrsokVm80CX3fSjQfZ0jRyXVnD75HNYv1YIALNwwpTKimV
mqkXlS8KgFN8+2VoG51Djmyj19B/NN6kPn5vHhi60waV+pgbpyMaOIReJIw6
dm19UAMue8AZO2KNk0rd1WFZ8BbNKjXforIhy2VwPdqTeqdlj9FIts1sUrr5
M9Vaa3shV7zyLrO8xCcQGI4mpf193BA3RaxS/LvLuOQxVhWuzPyFxebWrnRk
Mjc26dvKIQpB4504CdNJazXLaaJIwqdE1b0ehOa6kAgExBoP69I///ybd5s3
2xhuTtebRMtGaeGIkYxk6YoU3ROUg6jgMq0tCXy19fv9IvnmRJJ28ZMvMQvs
7MX2wfgjozOChNyHARO5VuodZ9xLSdeiZi7STAnEXeGkMtWypPCQ+KccnCyU
PH3cKQHqekpmBW2kOkmwCepGCE7zgNfMwSsUrQ5j5BIY39ykN8lqxHAf561O
YxYf1SWmCrN0R8bpsbuDfXxJRqMkrm6RaJTaSeFOYidilbNuK7S3FqV4sE2b
ETdTIorF8GRnExqpKhBbtKJo6/yuBtxSzBp6oYfKGGSCSRFBpsoemiBap97o
hB2Mn2bt4OkqwpupTmygwEeOzNwgNQ8hO9dZkqqHsvEjY0X5qPme6UyOBXDu
KqlmPfTlvC8pirgXSAlx7H5IMnXDed+da1hrTDHJQvelApe66nqpb5Vnb7Qg
+U2uaNzVhLFgOSH0VHduJWHTklicdWmDVhPVsTN8L3NRKzv5fCUJ2aSCeydo
0tEANv1cHGZ9Mk3gTGoaSYaeIp9V7jqspnSnq3VCstWAKykPJCsvs/E+vmw0
vNfUV+xuW7zlGKqVWlSQoSrmJ0K5VHyxxdHFPQI6CHV+fJABRaNzcuuxheFY
NW85ZcqwUmM1uUfuXkoQWPmjs6Mejcw26Z5pdJWsb7z/xFHMaMfeD46oPVbf
SahmMsu+miFwihPTPIGoaOampJMVWM/MB7oQVXkurMxAkuCvBlaBgkBZXgVQ
72+nWoZmzdyKO6jiK1DkBan3kQpcZUwLZWJRhv7CWHzYyXl0fJKsTqJXW3Jj
6s2K6oXu24exRLOjpXK2gn/LVrkoeq8KkFlsYUASaIgL5MAmbpZqIzm1M+kG
ac803ydoLVMzkxj6iXXpHG1bAtLGnIIBMR2SvERGnRxNgILhsK14xk4iMZkw
l+qzRJsIH8S+Z/JRnCIhY7VaYROrN7nowzQYH2el27lTkbbkXe+xZkP1hCB3
pl5TpptrTdPU5Wz6wI4M3xo2G500Z2V+NW32kEgSZ8X800TW0Gpld+JpGh9R
1EpBVJw3asci2FyxWanEWVhAMcuILKjcGtF1HUf/WmsKxdu+9xxPExWTKW3C
llU/MCZgGTbHMVpOLNykEa8cRok8U4HS/NL+SQkZ7XTaR+JlguWPODQQ1qBq
P+UNENWfGGC1CJNsoz+8AHmfP0uVOrnEEIfaWZ3K7HUG9cFh0jw3B3NRqvPv
cNI0dvqec7OckObAUbCIFOCBxiraLEHj0PTQRHeU6SdE2mDyeyYY0/Rzqlov
88voT9LBTLE+CHr3EZlUzQqBVWszkqjYH52OwmvBfXK/WjnLwdybD5e80t4l
HzvfjR0ZX7l8bf5OJOUu7KYCeVUjuMUYDo2Nf20bUsM4yolrsKY3/dwiR6+I
Ubkbz3a9vgqB3IIbH2U8Jv/uYxxYY1yI++NR8Xz7UiyW830SFxPuSWjuiYwS
4C+Swt0fOSx/CaKaG5adurHJm1P50W9k+hM5fCeTNHVDikmntIfIEcR0kHb6
mFvFBOiZnnoao86uqkkoWdk+ajpgF5mB1u90vv528RaiET/GdEkNdfoBeV1X
x94dR0wwEuMplkror51t/W1S+iGQTvRrV24U9DjWT6++UGv5Ecq8GZnyySPU
FIdRcvMwbRaiccTnKNYHSpZ7CmrPhGQe5KLODu0H/g6EzApj5Lgc1jbMu1VN
ZNp2svnU3vXNoHZjO6THJafWRKysKWQ0m6nQAxpExTVzK2a0ItNsqT8zR8BR
aVN6L1rETDZd0vwjl3xUvDv7cPbA/eYGwTS18/pmOQ6e8oc5O8ARNzkbxyDk
Bxjm51faN7H1v6wQ9wW7ArZenb85nw9MbM3/AhPsKg3XOAAA

-->

</rfc>
