<?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.10 (Ruby 3.0.4) -->
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ma-quic-mpqoe-00" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.7 -->
  <front>
    <title abbrev="multipath-quic">An Advanced Scheduling Option for Multipath QUIC</title>
    <seriesInfo name="Internet-Draft" value="draft-ma-quic-mpqoe-00"/>
    <author initials="Y." surname="Ma" fullname="Yunfei Ma">
      <organization>Alibaba Inc.</organization>
      <address>
        <email>yunfei.ma@alibaba-inc.com</email>
      </address>
    </author>
    <author initials="Y." surname="Liu" fullname="Yanmei Liu">
      <organization>Alibaba Inc.</organization>
      <address>
        <email>miaoji.lym@alibaba-inc.com</email>
      </address>
    </author>
    <author initials="C." surname="Huitema" fullname="Christian Huitema">
      <organization>Private Octopus Inc.</organization>
      <address>
        <email>huitema@huitema.net</email>
      </address>
    </author>
    <author initials="X." surname="Yu" fullname="Xiaobo Yu">
      <organization>Alibaba Inc.</organization>
      <address>
        <email>shibo.yxb@alibaba-inc.com</email>
      </address>
    </author>
    <date/>
    <area>Transport</area>
    <workgroup>QUIC</workgroup>
    <abstract>
      <t>This document specifies an advanced scheduling option for multipath QUIC
protocol. The goal is to enable the use of multipath QUIC for applications that
have tight latency constraints. For general purpose multipath packet
scheduling, please refer to <xref target="I-D.bonaventure-iccrg-schedulers"/>.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
  <eref target="https://github.com/yfmascgy/draft-ma-quic-advance-scheduling"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Multi-path QUIC transport, which allows the simultaneous usage of multiple
paths for a single QUIC connection, has recently gained attention
<xref target="QUIC-MULTIPATH"/>. In practice, however, it turns out to be not
straightforward to apply multipath QUIC to applications that have tight latency
constraints (e.g., video streaming and gaming) with only basic scheduling
options <xref target="I-D.bonaventure-iccrg-schedulers"/>. In this draft, we introduce an
advanced scheduling option for the usage of multi-path QUIC in
latency-constraint applications.</t>
      <t>The proposed scheduling option in this draft includes two major components: (1)
parallel transmission of duplicate data on several paths, and (2) a feedback
mechanism to make the scheduling strategy adaptive based on the state of the
application or the state of the network.</t>
    </section>
    <section anchor="multipath-definition">
      <name>Conventions and Definitions</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" 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>
      <t>We assume that the reader is familiar with the terminology used in
<xref target="QUIC-TRANSPORT"/>.</t>
    </section>
    <section anchor="packet-scheduling">
      <name>Packet scheduling</name>
      <section anchor="general-purpose-packet-scheduling">
        <name>General-purpose Packet Scheduling</name>
        <t>Experience with multipath transport protocols shows that the packet scheduler
can have a huge impact on the transport performance. In general-purpose
multipath scheduling strategies <xref target="I-D.bonaventure-iccrg-schedulers"/>, whether
it is round-robin, strict priority, or lowest round-trip-time, we often face a
dilemma: On one hand, in order to aggregate bandwidth, we need to split traffic
across multiple paths, but in doing so, the overall latency is hurt by the
slower path as faster paths have to wait for packets scheduled on it to be
received. On the other hand, if we choose to pick only one path to use at a
time, then we lose not only the benefit of bandwidth aggregation, but also the
reliability of using multipath as the path condition of a wireless link can
vary quickly. A fundamental problem with multipath scheduling is the
head-of-line blocking when paths have large delay difference. Deployment
experience shows that multi-path HoL blocking has negative impact on the
quality of experience of applications that have tight latency constraints, such
as video streaming <xref target="XLINK"/>.</t>
      </section>
      <section anchor="head-of-line-blocking-issues-in-multi-path-scheduling">
        <name>Head-of-line blocking issues in multi-path scheduling</name>
        <t>The head-of-line blocking happens when a scheduler splits an application's
traffic across multiple paths, on one of which, the transmitted packets take
significantly longer time to deliver due to either large path delay or high
packet loss rate on that path.  As shown in <xref target="fig-hol-blocking"/>, at t=t1, a
sender transmits a media chunk that consists of three packets (pkt1, pkt2, and
pkt3) with two paths (path1 and path2), where path2 has much longer delay than
path1. Due to the limit of path1's congestion window, after sending pkt1 on
path1, the sender has to switch to path2 for transmitting pkt2. When the
congestion window of path1 becomes available later, the sender transmits pkt3
on it. At t=t2, pk1 and pkt3 on path1 are received by the receiver, but pkt2 on
path2 is still in flight even though it is sent before pkt3, causing
out-of-order delivery. The out-of-order packet, pkt3, is not eligible to be
submitted to the application and the client on the receiver-side has to wait
for pkt2 to process the entire media chunk. In other words, the data
transmission from the application's point of view is blocked by pkt2.</t>
        <figure anchor="fig-hol-blocking">
          <name>Head-of-line blocking in multipath</name>
          <artwork><![CDATA[
 +--------+                path1             +----------+
 |        |--------------------------------> |          |
 | Sender |  pkt3  pkt1                      | Receiver |
 |        |                                  |          |
 +--------+                                  +----------+
       |          pkt2                            |
       +----------------------------------------->
                           path2
                        time t=t1

 +--------+                path1             +----------+
 |        |--------------------------------> |          |
 | Sender |                       pkt3  pkt1 | Receiver |
 |        |                                  |          |
 +--------+                                  +----------+
       |                pkt2                      |
       +----------------------------------------->
                           path2
                        time t=t2

]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="proposed-advanced-scheduling-option">
      <name>Proposed advanced scheduling option</name>
      <t>To cope with HoL blocking, we propose an advanced scheduling option, which
includes two major components: (1) parallel transmission of duplicate data on
several paths, and (2) a feedback mechanism to make the scheduling strategy
adaptive based on the state of the application or the state of the network.</t>
      <section anchor="parallel-transmission-of-duplicate-data-on-several-paths">
        <name>Parallel transmission of duplicate data on several paths</name>
        <t>The main solution to overcome HoL blocking is to allow concurrent transmission
of packets that contain duplicate copies of data on multiple paths. In doing
so, we can avoid the excessive delay when a packet becomes stagnant on a path
that has large delay or high loss rate becuase a copy of it on another path
could arrive instead. Such a transmission mode can be put into two categories:
(1) full-redundancy mode and (2) re-injection mode.</t>
        <section anchor="full-redundancy-transmission">
          <name>Full-redundancy transmission</name>
          <t>In full-redundancy mode, a scheduler sends duplicate copies of data on every
path that has available congestion window. As shown in
<xref target="fig-full-redundancy-mode"/>, pkt1, pkt2, and pkt3 contain original copies of a
media chunk, while pkt1', pkt2', and pkt3' contain the corresponding duplicate
copies. In multipath QUIC <xref target="QUIC-MULTIPATH"/>, pktN and pktN' are either in
different packet number spaces or in the same packet number space but assigned
with different packet numbers. The media data carried in those packets should
be in the same QUIC stream so that only a single copy of data is delivered to
the receiver. The full redundancy mode takes the advantage of path diversity to
obtain lowest possible latency. However, it does not aggregate bandwidth of
multiple paths. When the required data rate is larger than the minimum
bandwidth of paths, such a full-redundancy mode is not recommended.</t>
          <figure anchor="fig-full-redundancy-mode">
            <name>Full-redundancy transmission mode</name>
            <artwork><![CDATA[
 +--------+                path1             +----------+
 |        |--------------------------------> |          |
 | Sender |  pkt3  pkt2  pkt1                | Receiver |
 |        |                                  |          |
 +--------+                                  +----------+
       |     pkt3' pkt2' pkt1'                   |
       +----------------------------------------->
                           path2


]]></artwork>
          </figure>
        </section>
        <section anchor="re-injection-mode">
          <name>Re-injection mode</name>
          <t>In re-injection mode, a scheduler sends duplicated content of unacknowledged
packets from one path into another one without waiting for the loss recovery on
the original path. For example, a scheduler decides to re-send the content of a
packet on another path if the ACK of it is not received after a certain time
threshold. In another example, when a sender finishes sending packets carrying
the content of a video chunk, it immediately starts re-sending those previously
sent copies on a different path before moving on to send the next video chunk.
Re-injection mode is illustrated in <xref target="fig-reinjection-mode"/>, where path2 has a
much larger delay than path1. After a certain time threshold, the sender
detects that the ACK of pkt2 is not received, to avoid excessive waiting by the
receiver, it re-injects pkt2' on the faster path even before the loss recovery
kicks in on the slower path. Similar to what is discussed above, in multipath
QUIC <xref target="QUIC-MULTIPATH"/>, pktN and the re-injected pktN' are either in different
packet number spaces or in the same packet number space but assigned with
different packet numbers. The media data carried in those packets should be in
the same QUIC stream so that only a single copy of data is eventually delivered
to the receiver. Re-injection mode strikes a balance between transmission
latency and aggregated bandwidth. It is also flexible to use as one can tune
the parameters such as the time threshold to optimize for various applications.</t>
          <figure anchor="fig-reinjection-mode">
            <name>Re-injection transmission mode</name>
            <artwork><![CDATA[
 +--------+                path1             +----------+
 |        |--------------------------------> |          |
 | Sender | pkt2'                 pkt3  pkt1 | Receiver |
 |        |                                  |          |
 +--------+                                  +----------+
       |                pkt2                      |
       +----------------------------------------->
                           path2

]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="qoe-feedback">
        <name>QoE Feedback</name>
        <t>The second major component is a QoE feedback mechanism that enables a sender to
adapt its scheduling strategy. On one hand, applications may have different QoE
requirements---the interactive applications are delay sensitive, while the
video streaming applications are more throughput sensitive. There is thus a
trend of cross-layer design that takes applications' demands into account when
managing paths or scheduling packets. On the other hand, the network conditions
(e.g., bandwidth, loss rate, and latency), as well as the application states
(e.g., video bitrate, video buffer level) are constantly changing, so it is
desired to have a scheduling strategy that is adaptive to those conditions.</t>
        <t>The QoE feedback is used to fully support adaptive multipath scheduling and is
carried in the QOE_CONTROL_SIGNALS frames <xref target="fig-qoe-control-signals-format"/>. A
sender can adjust its scheduling strategy based on the received QoE feedback.
The QOE_CONTROL_SIGNALS frames can include two types of information that is
needed by the scheduler: (1) application-level information and (2) the
network-level information.  The frequency of such feedback should be controlled
to limit the amount of extra packets. The QoE control signal allows a
synchronization of viewpoints between two endhosts.  The network-level
information can include interface types and interface priorities. For example,
a client on the cellphone can inform a server at this moment if a wifi
interface is more preferred than a 5G interface. The application-level
information can include video bitrate, video framerate, video buffer level,
etc., which can inform the server how likely a future rebuffering event might
happen. It is up to the application to determine the interpretation of QoE
control signals.</t>
      </section>
    </section>
    <section anchor="combination-of-the-two-components">
      <name>Combination of the two components.</name>
      <t>The two components can be used independently, but are recommended to work hand
in hand. Parrallel transmission of duplicate data enables quicker recovery from
out-of-order delivery. However, the downside of such a strategy is the
additional traffic cost when it is aggressively used. One example is to control
traffic redundancy when packet re-injection is implemented to improve
multi-path transport performance <xref target="XLINK"/>. As discussed above, the problem
with packet re-injection is that it MAY introduce a lot of redundant packets,
increasing traffic cost. Indeed, redundant packets are not always needed as the
video player MAY cache video chunks. Therefore, if the number of cached frames
is large in the video player, the play-time left until the next possible
re-buffering is long, and hence, the urgency of using re-injection is low. On
the contrary, if the number of cached frames is small in the video player, the
time left until the next possible re-buffering is short and, hence, the urgency
of using re-injection is high. Knowing that the client video player's buffer
occupancy level is an indicator of the user-perceived QoE, one can capture the
related information (such as number of cached frames and framerate) in client,
encapsulate the information in QoE_CONTROL_SIGNAL and send it back to the
server to decide when to turn on or turn off its re-injection usage.</t>
    </section>
    <section anchor="multipath-frames">
      <name>New frames</name>
      <t>All the new frames MUST be sent in 1-RTT packet, and MUST NOT use other
encryption levels.</t>
      <t>If an endpoint receives MP frames from packets of other encryption levels, it
MUST return MP_PROTOCOL_VIOLATION as a connection error and close the
connection.</t>
      <section anchor="qoe-frame">
        <name>QOE_CONTROL_SIGNALS frame</name>
        <t>QOE_CONTROL_SIGNALS frame is used to carry quality of experience (QoE)
information. A typical use of such information is to provide feedback to help
application-aware scheduling. Note that different applications may have very
different needs, the interpretation of the QoE control signal can be up to the
users.  QOE_CONTROL_SIGNALS frames are formatted as shown in
<xref target="fig-qoe-control-signals-format"/>.</t>
        <figure anchor="fig-qoe-control-signals-format">
          <name>QOE_CONTROL_SIGNALS Frame Format</name>
          <artwork><![CDATA[
  QOE_CONTROL_SIGNALS Frame {
    Type (i) = TBD-02 (experiments use 0xbaba02),
    Path Identifier (..),
    QoE Control Signals Length(8),
    QoE Control Signals (..)
  }
]]></artwork>
        </figure>
        <t>Path Identifier: An identifier of the path, which is defined in
<xref target="QUIC-MULTIPATH"/>.</t>
        <t>QOE_CONTROL_SIGNALS frames may be received out of order, peers SHOULD pass them
to the application as they arrive.  Although QOE_CONTROL_SIGNALS frames are not
retransmitted upon loss detection, they are ack-eliciting <xref target="QUIC-RECOVERY"/>.</t>
      </section>
    </section>
    <section anchor="implementation-considerations">
      <name>Implementation Considerations</name>
      <t>TBD.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TBD.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD.</t>
    </section>
    <section anchor="contributor">
      <name>Contributor</name>
      <t>This document is a collaboration of authors that combines works from several proposals. Further contributors that were also involved are:
* Dapeng Liu
* Juan Deng</t>
    </section>
    <section anchor="changelog">
      <name>Changelog</name>
    </section>
    <section anchor="appendixa-difference-from-past-proposals">
      <name>Appendix.A Difference from past proposals</name>
      <t>TBD.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="QUIC-MULTIPATH">
          <front>
            <title>Multipath Extension for QUIC</title>
            <author initials="Y." surname="Liu" fullname="Yanmei Liu">
              <organization>Alibaba</organization>
            </author>
            <author initials="Y." surname="Ma" fullname="Yunfei Ma">
              <organization>Alibaba</organization>
            </author>
            <author initials="Q." surname="Coninck" fullname="Quentin De Conick">
              <organization>UCLeuven</organization>
            </author>
            <author initials="Q." surname="Bonaventure" fullname="Olivier Bonaventure">
              <organization>UCLeuven</organization>
            </author>
            <author initials="C." surname="Huitema" fullname="Christian Huitema">
              <organization>Private Octopus Inc.</organization>
            </author>
            <author initials="M." surname="Kuehlewind" fullname="Mirja Kuehlewind">
              <organization>Ericsson</organization>
            </author>
            <date/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-multipath"/>
        </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">
              <organization/>
            </author>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="S. Turner" initials="S." role="editor" surname="Turner">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="I. Swett" initials="I." role="editor" surname="Swett">
              <organization/>
            </author>
            <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="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="I-D.bonaventure-iccrg-schedulers">
          <front>
            <title>Multipath schedulers</title>
            <author fullname="Olivier Bonaventure">
              <organization>UCLouvain</organization>
            </author>
            <author fullname="Maxime Piraux">
              <organization>UCLouvain</organization>
            </author>
            <author fullname="Quentin De Coninck">
              <organization>UCLouvain</organization>
            </author>
            <author fullname="Matthieu Baerts">
              <organization>Tessares</organization>
            </author>
            <author fullname="Christoph Paasch">
              <organization>Apple</organization>
            </author>
            <author fullname="Markus Amend">
              <organization>Deutsche Telekom</organization>
            </author>
            <date day="25" month="October" year="2021"/>
            <abstract>
              <t>   This document proposes a series of abstract packet schedulers for
   multipath transport protocols equipped with a congestion controller.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bonaventure-iccrg-schedulers-02"/>
        </reference>
        <reference anchor="XLINK" target="https://dl.acm.org/doi/10.1145/3452296.3472893">
          <front>
            <title>XLINK: QoE-driven multi-path QUIC transport in large-scale video services</title>
            <author initials="Z." surname="Zheng">
              <organization/>
            </author>
            <author initials="Y." surname="Ma">
              <organization/>
            </author>
            <author initials="Y." surname="Liu">
              <organization/>
            </author>
            <author initials="F." surname="Yang">
              <organization/>
            </author>
            <author initials="Z." surname="Li">
              <organization/>
            </author>
            <author initials="Y." surname="Zhang">
              <organization/>
            </author>
            <author initials="W." surname="Shi">
              <organization/>
            </author>
            <author initials="W." surname="Chen">
              <organization/>
            </author>
            <author initials="D." surname="Li">
              <organization/>
            </author>
            <author initials="Q." surname="An">
              <organization/>
            </author>
            <author initials="H." surname="Hong">
              <organization/>
            </author>
            <author initials="H." surname="Liu">
              <organization/>
            </author>
            <author initials="M." surname="Zhang">
              <organization/>
            </author>
            <date year="2021" month="August"/>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1b63Ict3L+j6dApB+SjrlrkbZzbFY5dWiSshSToizSx5dU
yoWdwe7CnBmsBzNc7ZHlymvk9fIk+bobmJm9UTq5VPwjrLK1Oxeg0Zevv25g
R6ORalxT2GP94KTSJ/mdqTKb6+tsbvO2cNVMXy0a5ys99bW+bIvGLUwz199+
9+L0gTKTSW3vjnWZro9+bV2mcp9VpsSQeW2mzag0fHlULn71dvT0qcpNg5tv
z05uzt+pDF9mvl4d69Dkyi3qY93UbWiOnj794umRMrU1x/qmNlVY+LpRS1/f
zmrfLo5ZBhVKUzc//9r6xoZjPTVFsKpZLfysNou5y34Oq3Lii+5WaEyV/2wK
X0GClQ1q4Y71vzQ+O9ABw9d2GvBpVcoHLKQ0iwW08K9KmbaZ+/pYaT3Cf1q7
CqP+ONaXhr/Kin9sq6l16ZqvZ8f6pHATMzH6RZWN+aotjSswOz86Ls1fjDwx
cngi8+XWDBeuHU5hqhJTpIv3zlE6439x42JV3j/J6Vg/b12DtwYTnc5rFxpn
qrV7PN+r2t3Bbvoqa/yiDVvzzuWFv8R/x5Vt1if8YQxVDeb6AYJOfLp275rC
3E38ePVmsrUkVfm6NI27s8cKb5B/jC6/u7h58erk5vkxj5F8vffk8zeNrULy
cPFrenLNSelCsLWzwVVTL0NpSNbYGksbnZGfJ3d3tplGh0+T8PO9/9DfKP67
beW9lt7UzN6RLs3mQGte+WHjfDvWp76Cam83Bvu2tVXjKn1m+YHBfR70u9ML
297Zau+oX/nK4H7T1nZj5KvC3Tlb73ziA8becOL3OXI36l5n3prhcqy/ae28
sEtX5RuTXLr6F7PrNs9xXrssBF91fnnz+uTl9aur1zfHup5mXzwFLHa3Lq7T
xcPu4uvz06u/nr/+Md05UkqRL3YOD3ccnY0nvepGLsvq2SgIkts6cFD8cPHi
5TfrsSCX9Lf+fJRDFbYSPB91QA9AjvALNejC1DOLYU1h9Z3LrafIuHOZDQ92
+blo7qex/mluq9n61aGvjnYEQrz2bEyhMNsa8cJtvfvTfOvB78f6eu62rp3O
ez+Si2fbI8JdTzaeeg4v85tzPN8h9eVQGkGTo6dHh6PPRfmkRWDGg3nTLMLx
xx/nxdhk5Rje8nHu3ceHT8eHh59+9vEnn352dPTFP44/+fTPR59/8ckDpUaj
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
zD/54v7XfwIhrFN73j4AAA==

-->

</rfc>
