<?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-rfc2629 version  -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-hurst-quic-http-data-offset-frame-02" category="exp" tocInclude="true" sortRefs="true" symRefs="true" obsoletes="" updates="" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.2 -->
  <front>
    <title abbrev="HTTP/3 DATA_WITH_OFFSET frame">An Offset Extension Frame For HTTP/3 Data</title>
    <seriesInfo name="Internet-Draft" value="draft-hurst-quic-http-data-offset-frame-02"/>
    <author initials="S." surname="Hurst" fullname="Sam Hurst">
      <organization>BBC Research &amp; Development</organization>
      <address>
        <email>sam.hurst@bbc.co.uk</email>
      </address>
    </author>
    <date/>
    <area>General</area>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document specifies an optional extension frame type for HTTP/3 that extends the functionality
of the <tt>DATA</tt> frame type to include an offset for the HTTP message payload. This is useful in
situations where the HTTP/3 exchange is taking place over an unreliable transport mechanism.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>HTTP/3 <xref target="RFC9114" format="default"/> supports the transfer of HTTP semantics over the QUIC transport protocol
<xref target="RFC9000" format="default"/>. In a conventional HTTP/3 message exchange, messages consist of a header field
section sent as a single <tt>HEADERS</tt> frame, an optional HTTP message payload sent as a series of
<tt>DATA</tt> frames, followed optionally by a trailer field section sent as a single <tt>HEADERS</tt> frame. Each
<tt>DATA</tt> frame does not describe its position within the HTTP message payload; rather this is
calculated from the position within the QUIC stream minus the overhead from HTTP/3 frame headers
and the contents of the header field section.</t>
      <t>In the case where the message exchange is taking place across a partially reliable or unreliable
profile of <xref target="RFC9000" format="default"/>, packet loss could result in a lack of synchronisation in the receiver
between the perceived HTTP/3 <tt>DATA</tt> frame offset and the QUIC <tt>STREAM</tt> frame offset, potentially
resulting in a corrupt HTTP representation at the receiver.</t>
      <t>In addition, there are other use cases, such as HTTP multipart range requests, where the HTTP/3
payload offset has no direct mapping to the value calculated by the method described above.</t>
      <t>This document introduces an extension frame type <tt>DATA_WITH_OFFSET</tt> which can be used to explicitly
signal the offset in the original representation of the data being conveyed within the frame.</t>
    </section>
    <section anchor="conventions-and-terminology" numbered="true" toc="default">
      <name>Conventions and Terminology</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" format="default"/> <xref target="RFC8174" format="default"/>
when, and only when, they appear in all capitals, as shown here.</t>
      <t>This document uses the variable-length integer encoding from <xref target="RFC9000" format="default"/>. The packet and
frame diagrams in this document use the bespoke format specified in <xref target="RFC9000" format="default"/>.</t>
    </section>
    <section anchor="http3-data-offset-frame" numbered="true" toc="default">
      <name>DATA_WITH_OFFSET Extension Frame</name>
      <t>Based on the <tt>DATA</tt> frame defined in <xref target="RFC9114" format="default"/>, the <tt>DATA_WITH_OFFSET</tt> frame conveys
arbitrary, variable-length sequences of bytes at a defined offset of an HTTP representation. By
carrying an explicit payload offset in the HTTP/3 frame header, the HTTP message payload offset
is decoupled from the QUIC <tt>STREAM</tt> frame header offset value. The additional payload offset
field takes the form of a variable-length integer, as shown in <xref target="fig-data-with-offset" format="default"/> below.</t>
      <figure anchor="fig-data-with-offset">
        <name>DATA_WITH_OFFSET Frame</name>
        <sourcecode type="drawing"><![CDATA[
DATA_WITH_OFFSET Frame {
  Type (i) = 0xd00,
  Length (i),
  Offset (i),
  Data (..),
}
]]></sourcecode>
      </figure>
      <t>If its peer has indicated support for the <tt>DATA_WITH_OFFSET</tt> extension frame type (as described in
<xref target="data-with-offset-settings" format="default"/> below) a sender MAY choose to use either <tt>DATA</tt> frames or
<tt>DATA_WITH_OFFSET</tt> frames to transmit an HTTP representation. Senders MUST NOT mix the use of
<tt>DATA</tt> and <tt>DATA_WITH_OFFSET</tt> frames on the same QUIC stream (i.e. in the same HTTP message).</t>
      <ul empty="true">
        <li>
          <t><strong>Author's Note:</strong> The author welcomes comments about relaxation of the requirement to not mix the
usage of <tt>DATA</tt> and <tt>DATA_WITH_OFFSET</tt> frames in the same HTTP message.</t>
        </li>
      </ul>
      <t><xref target="RFC9114" format="default"/> defines three stream types: control stream, request stream and push stream. The
<tt>DATA_WITH_OFFSET</tt> frame is only permitted to appear on request streams and push streams. A
<tt>DATA_WITH_OFFSET</tt> frame MUST NOT appear on control streams. If a <tt>DATA_WITH_OFFSET</tt> frame is
received on a control stream, the recipient MUST respond with a connection error of type
<tt>H3_FRAME_UNEXPECTED</tt>, as described in <xref target="RFC9114" format="default"/>.</t>
      <t>The purpose of the <tt>DATA_WITH_OFFSET</tt> frame is only to assist in locating a particular slice of data
carried as part of an HTTP message payload, and not as a means to send data out of order. Senders
MUST send data in order, i.e. with increasing values in the Offset field. In cases where the
underlying transport does not guarantee in-order delivery of HTTP/3 frames, the receiver MUST be
prepared to deal with out-of-order reception of <tt>DATA_WITH_OFFSET</tt> frames.</t>
    </section>
    <section anchor="realising-http-multipart-range-responses-with-http3-binary-framing" numbered="true" toc="default">
      <name>Realising HTTP Multipart Range Responses With HTTP/3 Binary Framing</name>
      <t>HTTP Range Requests, described in <xref target="RFC9110" format="default"/>, is an optional feature of HTTP that allows a
client to request transfer of one or more subranges of a given representation. Despite the move to
binary framing for HTTP in <xref target="RFC7540" format="default"/> and subsequently <xref target="RFC9114" format="default"/>, multiple part HTTP Range
Requests still rely on textual encoding - including boundary strings - which is inefficient. These
boundary strings then preface additional HTTP headers for each body part, which always carry a
<tt>Content-Range</tt> field, and may additionally carry a <tt>Content-Type</tt> field which is likely to be
repeated across every body part. It is not possible to compress these headers using <xref target="RFC9204" format="default"/>.</t>
      <t>By using the <tt>DATA_WITH_OFFSET</tt> frame described in <xref target="http3-data-offset-frame" format="default"/>, the network
efficiency of multiple part range requests is improved by no longer needing to encode a boundary
string into the representation response. Instead, the offset of each part of a representation is
simply encoded in the header of a fresh HTTP <tt>DATA_WITH_OFFSET</tt> frame.</t>
      <section anchor="response-headers" numbered="true" toc="default">
        <name>Response Headers</name>
        <t><xref target="RFC9110" format="default"/> specifies how a server may respond to an HTTP multipart range request using the
206 (Partial Content) status code. The response message carries a <tt>Content-Type</tt> response header
indicating the <tt>multipart/byteranges</tt> media type with its required boundary parameter. This boundary
parameter allows each body part to carry its own header area containing a <tt>Content-Range</tt> header to
describe what range of the selected representation this body part conveys, as well as a
<tt>Content-Type</tt> header (if applicable) which describes the actual media type of the selected
representation.</t>
        <t>(Note that section 14.2 of <xref target="RFC9110" format="default"/> describes several reasons why a server may choose to
deliver a different selection of parts than what the client originally requested.)</t>
        <t>Because a selected representation may only contain a single <tt>Content-Type</tt> header field with a
single value, repeating this header field in every body part is highly inefficient. Moreover,
the unbounded length of the boundary parameter further reduces transmission efficiency.</t>
        <t>This specification modifies the syntax of the <tt>Content-Range</tt> header and explicitly defines it as a
list-based field as per section 5.6.1 of <xref target="RFC9110" format="default"/> that is carried in the first <tt>HEADERS</tt>
block sent as part of an HTTP/3 response. In addition, when used on the same QUIC stream as
<tt>DATA_WITH_OFFSET</tt> frames, this specification permits the <tt>Content-Range</tt> and <tt>Content-Type</tt>
HTTP headers to appear in the <tt>HEADERS</tt> frame of a 206 (Partial Content) response, enabling it to
indicate the MIME media type of the whole representation without needing to duplicate it for each
body part.</t>
        <figure anchor="fig-content-range-ext-abnf">
          <name>ABNF for extended Content-Range</name>
          <sourcecode type="ABNF"><![CDATA[
Content-Range       = 1#range-item
range-item          = range-unit SP
                      ( range-resp / unsatisfied-range )

range-resp          = incl-range "/" ( complete-length / "*" )
incl-range          = first-pos "-" last-pos
unsatisfied-range   = "*/" complete-length

complete-length     = 1*DIGIT
]]></sourcecode>
        </figure>
        <figure anchor="fig-range-response-example">
          <name>Range-Response header example</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
:status = 206
content-type = video/mp4
content-range = bytes 10000-17999/18879543, bytes 24000-41999/18879543
]]></artwork>
        </figure>
        <t>Implementations advertising support for the <tt>DATA_WITH_OFFSET</tt> frame as described in
<xref target="data-with-offset-settings" format="default"/> MUST be able to consume this overloaded form of the <tt>Content-Range</tt>
HTTP response header.</t>
        <t>A server MAY continue to use the method described in <xref target="RFC9110" format="default"/> even if a client has
expressed support for the <tt>DATA_WITH_OFFSET</tt> frame.</t>
        <ul empty="true">
          <li>
            <t><strong>Author's Note:</strong> Is it possibly worth splitting this out into its own HTTP setting value?</t>
          </li>
        </ul>
      </section>
      <section anchor="usage-of-datawithoffset-frame-with-http-range-responses" numbered="true" toc="default">
        <name>Usage of DATA_WITH_OFFSET frame with HTTP Range Responses</name>
        <t>The <tt>DATA_WITH_OFFSET</tt> frame may be used in conjunction with HTTP Range Requests, as described in
<xref target="RFC9110" format="default"/>. When carrying data for a byte range response, the Offset field in the frame
header MUST reflect the starting byte position of the frame's payload in the HTTP representation and
not the offset within the HTTP/3 exchange. For example, for an HTTP/3 range request made with a
request header of <tt>range: bytes=1000-1999</tt>, the first <tt>DATA_WITH_OFFSET</tt> frame in the response
MUST carry the value 1000 in the Offset field of the frame header.</t>
        <t>For HTTP response messages carrying a set of byte ranges, a <tt>DATA_WITH_OFFSET</tt> frame MUST NOT carry
data for more than one contiguous byte range within that set. An individual byte range MAY be
carried over multiple instances of the <tt>DATA_WITH_OFFSET</tt> frame.</t>
      </section>
    </section>
    <section anchor="data-with-offset-settings" numbered="true" toc="default">
      <name>Negotiating Support For The DATA_WITH_OFFSET Frame</name>
      <t>The <tt>DATA_WITH_OFFSET</tt> frame described in <xref target="http3-data-offset-frame" format="default"/> is an optional extension to
the regular HTTP/3 protocol specification and, as such, usage of the frame type must be negotiated
as described in section 9 of <xref target="RFC9114" format="default"/>. For a conventional HTTP/3 connection, this is done using
HTTP/3 <tt>SETTINGS</tt> frames carried on the control streams.</t>
      <t>This specification defines the following setting:</t>
      <dl>
        <dt>
SETTINGS_ENABLE_DATA_WITH_OFFSET_FRAME (0xd00):  </dt>
        <dd>
          <t>A boolean value with a default value of 0 (false). Any non-zero value is true.</t>
        </dd>
      </dl>
      <ul empty="true">
        <li>
          <t><strong>Author's Note:</strong> It is intended that the value of the H3 <tt>SETTINGS</tt> frame should mirror the
value of the frame to indicate which version of the <tt>DATA_WITH_OFFSET</tt> frame it understands, should
subsequent revisions of this draft change the frame type.</t>
        </li>
      </ul>
      <t>An endpoint that implements this specification SHOULD send a
<tt>SETTINGS_ENABLE_DATA_WITH_OFFSET_FRAME</tt> setting at the beginning of the connection to indicate that
it is able to process <tt>DATA_WITH_OFFSET</tt> frames from its peer.</t>
      <t>An endpoint MUST NOT send a <tt>DATA_WITH_OFFSET</tt> frame unless it has received a positive (i.e.
non-zero) <tt>SETTINGS_ENABLE_DATA_WITH_OFFSET_FRAME</tt> setting from its peer.</t>
    </section>
    <section anchor="security-considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>This document introduces no new security considerations beyond those discussed in <xref target="RFC9114" format="default"/>.</t>
    </section>
    <section anchor="iana-considerations" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This specification registers a new frame type in the "HTTP/3 Frame Type" registry (<xref target="RFC9114" format="default"/>).</t>
      <table anchor="http-3-frame-type-registry-table" align="center">
        <name>Registered HTTP/3 Frame Type</name>
        <thead>
          <tr>
            <th align="left">Frame Type</th>
            <th align="left">Value</th>
            <th align="left">Specification</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">DATA_WITH_OFFSET</td>
            <td align="left">0xd00</td>
            <td align="left">
              <xref target="http3-data-offset-frame" format="default"/></td>
          </tr>
        </tbody>
      </table>
      <ul empty="true">
        <li>
          <t><strong>Author's Note:</strong> The final, intended value of the frame type is 0xd0f, but in order to allow for
this extension to naturally evolve and allow for the frame format to change, it starts at 0xd00 and
subsequent revisions of this extension can take incrementally higher frame type values between 0xd00
and 0xd0e.</t>
        </li>
      </ul>
      <t>This specification registers a new setting in the "HTTP/3 Settings" registry (<xref target="RFC9114" format="default"/>).</t>
      <table anchor="http-3-settings-registry-table" align="center">
        <name>Registered HTTP/3 Settings</name>
        <thead>
          <tr>
            <th align="left">Setting</th>
            <th align="left">Value</th>
            <th align="left">Specification</th>
            <th align="left">Default</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">SETTINGS_ENABLE_DATA_WITH_OFFSET_FRAME</td>
            <td align="left">0xd00</td>
            <td align="left">
              <xref target="data-with-offset-settings" format="default"/></td>
            <td align="left">0</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC9114" target="https://www.rfc-editor.org/info/rfc9114">
          <front>
            <title>HTTP/3</title>
            <author fullname="M. Bishop" initials="M." role="editor" surname="Bishop">
              <organization/>
            </author>
            <date month="June" year="2022"/>
            <abstract>
              <t>The QUIC transport protocol has several features that are desirable in a transport for HTTP, such as stream multiplexing, per-stream flow control, and low-latency connection establishment.  This document describes a mapping of HTTP semantics over QUIC.  This document also identifies HTTP/2 features that are subsumed by QUIC and describes how HTTP/2 extensions can be ported to HTTP/3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9114"/>
          <seriesInfo name="DOI" value="10.17487/RFC9114"/>
        </reference>
        <reference anchor="RFC9000" target="https://www.rfc-editor.org/info/rfc9000">
          <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="RFC2119" target="https://www.rfc-editor.org/info/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" target="https://www.rfc-editor.org/info/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>
        <reference anchor="RFC9110" target="https://www.rfc-editor.org/info/rfc9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding">
              <organization/>
            </author>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham">
              <organization/>
            </author>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke">
              <organization/>
            </author>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes. </t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC7540" target="https://www.rfc-editor.org/info/rfc7540">
          <front>
            <title>Hypertext Transfer Protocol Version 2 (HTTP/2)</title>
            <author fullname="M. Belshe" initials="M." surname="Belshe">
              <organization/>
            </author>
            <author fullname="R. Peon" initials="R." surname="Peon">
              <organization/>
            </author>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson">
              <organization/>
            </author>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification describes an optimized expression of the semantics of the Hypertext Transfer Protocol (HTTP), referred to as HTTP version 2 (HTTP/2).  HTTP/2 enables a more efficient use of network resources and a reduced perception of latency by introducing header field compression and allowing multiple concurrent exchanges on the same connection.  It also introduces unsolicited push of representations from servers to clients.</t>
              <t>This specification is an alternative to, but does not obsolete, the HTTP/1.1 message syntax.  HTTP's existing semantics remain unchanged.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7540"/>
          <seriesInfo name="DOI" value="10.17487/RFC7540"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC9204" target="https://www.rfc-editor.org/info/rfc9204">
          <front>
            <title>QPACK: Field Compression for HTTP/3</title>
            <author fullname="C. Krasic" initials="C." surname="Krasic">
              <organization/>
            </author>
            <author fullname="M. Bishop" initials="M." surname="Bishop">
              <organization/>
            </author>
            <author fullname="A. Frindell" initials="A." role="editor" surname="Frindell">
              <organization/>
            </author>
            <date month="June" year="2022"/>
            <abstract>
              <t>This specification defines QPACK: a compression format for efficiently representing HTTP fields that is to be used in HTTP/3. This is a variation of HPACK compression that seeks to reduce head-of-line blocking.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9204"/>
          <seriesInfo name="DOI" value="10.17487/RFC9204"/>
        </reference>
      </references>
    </references>
    <section anchor="acknowledgements" numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>The author would like to thank the following for their contributions to the design described in the
present document: Lucas Pardue, Richard Bradbury and David Waring.</t>
      <t>I am also grateful for Chris Poole's helpful review comments.</t>
    </section>
    <section anchor="changelog" numbered="true" toc="default">
      <name>Changelog</name>
      <ul empty="true">
        <li>
          <t><strong>RFC Editor's Note:</strong> Please remove this section prior to publication of a
final version of this document.</t>
        </li>
      </ul>
      <section anchor="changes-since-draft-hurst-quic-http-data-offset-frame-01" numbered="true" toc="default">
        <name>Changes since draft-hurst-quic-http-data-offset-frame-01</name>
        <ul spacing="normal">
          <li>Update HTTP/3 reference to the published <xref target="RFC9114" format="default"/></li>
          <li>Update QPACK reference to the published <xref target="RFC9204" format="default"/></li>
          <li>Update httpbis-semantics reference to the published <xref target="RFC9110" format="default"/></li>
        </ul>
      </section>
      <section anchor="changes-since-draft-hurst-quic-http-data-offset-frame-00" numbered="true" toc="default">
        <name>Changes since draft-hurst-quic-http-data-offset-frame-00</name>
        <ul spacing="normal">
          <li>Update reference to QUIC transport I-D to <xref target="RFC9000" format="default"/>.</li>
          <li>Update reference to draft-ietf-httpbis-semantics I-D.</li>
        </ul>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAOugwmIAA6Vb63IbOXb+j6dAqKqM5CJpyfbsjJlyNtTFY1UsWSvJmaRS
KQvsBklEze7eRrdkrsdb+w55wzxJvnMA9I2kVlNh2WWyG9dz+c53DuDRaCRK
UyZ6Iqep/DSfW13Ks6+lTq3JUvm+UCst32eF/HB7e/XytTxVpRJqNiv0w6R+
Nr2dfvn1/PbDl0/v39+c3co59RJxFqX4dyLjQs3L0bIqbDn6c2Wi0bIs81GM
kUYZTzjiDqPDVyJSpV5kxXoi9ddcoAm6f8P4Z9+FMHkxkWVR2fLV4eFbNFaF
VhP5i051oRJxr9ePWRFP5Hla6iLFqKc0rxC2VGn8RSVZisHW2orcTOR/llk0
lDYrykLPLb6tV/Tlv4RQVbnMiomQIyHxMamdyMHNWH6g9Q/4mdvW4Eat2k+z
YqFS8xdVQnB4e3x8Iq+11aqIlvIf5al+0EmWr3Tqm+uVMslEWrUas2j+ZTaL
xlE2ru6FGI1GUs1sWagIG7hdGishzYo6S5vryMyNtlKlMstpNpVAXEFlLEtZ
rnMt543eyqUqXaPY4gfeVWnk+ppyLbI5P7wjVd61hygzSCBKqljzdM4+aFxq
TmPLlbZWLbTM1TrJVDyWvFz8qayeVwm6C2vKisVi5eNSF7rujIXpr9FSpeiP
HqW6N+lC5omKtMwedEFzVmmhE6NmCboVKrU5dIZJqZexq7ET1srEcaKF2CPt
F1lc8d6E8JN8+/YP1+9P3h4dvfn+XdoqpzGcGHjIOWaCBHg7FnpJSxNZtwBq
86fP5yetufMig/FkifCjHh4efv8+xsRSyShLH6AkpxM/eRBQ2OkwPLHU3Bpb
0uRKLrWKMSNUm8TCat4BlgOVK+haWogGMrj7cDY9Pbu+8Voadqxgm0LaQ+iC
7Cabi7aiYf3zLEmyRx3XIyVrOVujB3ZtkrAo+dxFjeWZipadSWC/mDnNShlr
GxVmBoVDBXkG26AhH025NOlOq/onWSi8I32wcQEokqhKgA8xxs9W3HHbYKw7
OJKGr65MWjmtk2pJ3K6v15Nbp9OCFcAMbgoVwWlKkhr/bmspCARGeO6mi5TV
LRvvq37DyFVUZJYEmauiNCz32trhZI3tC1jd3NDTuWzb3RA9o3v4ZELjRFmF
VRXaVkkJx8O4mOWe+th1Gi2LDC7Djii9eAodaQNhiJkuH7V2D3Nd8NM4SKaj
SI8BQT4s4Lub2+uz6UW3CZaWkeh4W8ItinZunKMURZWXTtmFzvEaTd3agFTt
tTnpqjhm5Q7pHcQL8JcZmwRwhuVOKF4Ba2GYzoRoPpIrbIdkX+g/V9qWaNYH
IRFcxe9tqchUZWywBGCNynNaN6CQujyopKIJa/uDozhdI27EtXnHAHCY2bgP
38bjk8PvrbB91w+od1ixwc4i9IDjYMMxrQYhMjERgvcaCLsg/2fbdnvwCs4K
szD0qidjb80UhDEkbY+ha42RW97jvJlg9aQGNsuqv9UF3ClLssWadqglwq+k
+Gvl4OLzze1g6P6Vl5/4+/UZDOX67JS+33yYfvxYfwktbj58+vwR74X/1vQ8
+XRxcXZ56jrjqew9upj+x2DIqxp8uro9/3Q5/Thw+wdQ1IIng4HQCHiIIEAa
pDxoutEY+hyfXMmjN97FXh0dvUXAcD9+PvoJ0UPAdlI3WZbCW91PyApomecI
9mzeSQJd5aZUCawNU9hl9phKsroNe4Ayrbergj19lOh0US55lQuYt06jLCYF
MVZ1Yw4J3vs/ViQ80hq1wBcbRNCZi6eaaUSye+YHK9UwChZAZwLS/Aa767PD
b3vE515vEjpwtmNFtpqlm+wi1nOTdqbk6DxsWnY9wPVyRgp0LmYGsalYDzfk
ZsnN04jjHHyzJEeDeOoJvX9QyE23wc9YHq8RXopiTUJnH3VuJnso0QpXvegx
3BnHfF9BWtFA6zxpB7BtWOrjjZ+TwcfpPQAifLs3uItNiDPeskjNjmLssLGW
jbI65mbhtElQ4FUKP5iBwD7CJv5af4jaP0JMYsNIvGmA6d4SpO2bA/lOHn6N
Dw+HePbRTY+n9MtnHf4XZRhyfzzGj++tqcS3idzbtjDJ6cu7wfYlDGCE53PH
NTTkSNBu0thEDN2eCtaEdovdbUXo/R5sgAr2lzXCXwp3NgjugAlYSsoEYMlo
mWWWEYm8UhsOZR1aBuwWuxzBcjQiSroy5U5DvuHprAxADAb0lfdJUzYskMBs
90TeeS1tvs2m9s0Ylmhab9sGfwA7+Wf54sWUs6kfrLwEF5i8eOFMlx/KR51E
2Ypp8GrFHAshsyqJAamvnTBFoRvBmEEMGyca6bciKnYvtHvWZnYtF6vt5AgO
LMh9Cq3Djkn1SAaJERZZ4p8OA68IrWgBeWWX/jc76049EiHkOJJTPC1LF9h9
JMH+u2Pb/uB2LKe7x67V3ozXXTu6nxMsPLE64VkYg7ja2LvnaSY3pBqesKDg
kjoa4XqkPm3QRZFxokWCFHcfXn95fz29OPvy+fLs36/OTm7PTu+GGwG5rZax
oxp5VeQZW/DTwSLIliRqOc/CeEkG12dkd5ybWFwhLRCeByQ3ZvQ3jhwwf2zF
ih6eOyZA9sjp0ErDI2k+cnRHrsig0R/MCEw2eKRgSTWNsC5uMJTsVCw6pN2Q
MSVYDvVr4/VwySjPaSeT34bUiormSDh8NVlrnX8tKoWHpSYeNOJZIfCEiPY6
JMEhnNlhh4g7/c4oF9GQi7PVWCMA8YKxU2CfH5L65MGFd/ojE4xrjGB4nyzh
i5q2XzNtv2Z7oh3+SrP49R2D1GLBhPEUfzjRrzsEnr/dkDhrMt3yyVyrsip0
XQXgcomipBjtRJQYjzzBH9tlgyzlXG2Vob+tZpxsWBdvFxBbugHLp9iRKX2G
iBwBA4uZ28/c7aeu3DQL/+nHN1g4mxsmcSQHzL9HnlzOk2hnt41QRBAKPNck
lA2gKyE7wltF5aNAMv/3b//jCz70C3CcxrQu+DvFMn7tchFKw1M9n4MZYSGM
claLjQ7YYyqx/Tlnuw1l4aX5XJt3qxUGnWXxmpc+9LOo5FGtESCIjkERdycu
Gx/xpu6cDzgfXKl1a3zszveRdR8iIr5Ls4fE3GsHEbBrKEozL/BpuWanqBcF
ZyupD3kRAMgarkllFL5IwbxZW1cQEGRJhN++/ZH08+rQ4dfx2j9/Erl6hruL
X3u2nCJ3z4p7EbQRsSN3TaGbArP2sOjsweWvSHaTLKVsI9U69sku2wSUVluB
cEol1ph5YOjklIX3VAIlW2pCx1ZCiiWxjmtE7XdHsLFYFLThZo4D4NUUGH3m
6OFAYKf0CFT2atiQH3xBR7QBoFVFBe11pTFCOLKiEMAobKRPlhIaVYpXh3+Q
+1euiCO9xR3ACwArxG9iT9qDiOo44kKN3bTTuqXbvfCktTadekkvKcdxoHOH
YZH9OY7qggh07clT3HgzukFOJQUkTkZrBdcvAvZ1vZKNnd2KxnUpLauGKvHM
DZRJXWzte6pvCKSr63+PhLFOnj6SW52AKui4bxmlW2RYhU8CmSuAQyYce0VP
fn7CfTMn+oPwTnnPgXf8sAaXH6mIMbAlu956RA/BhdgnOuuiRCiKHr0Zv2pV
55yZNRNZAhOuwyjrCuHrrtnVCYHw4ZhyVjNHkOGqPy/Fx1OSAi0d5slC5Mqj
i1Gh3sOFRDZSHY8PgDs6UsT61U4h0xqYLnk9tqq7WyXrgZRZnvAtmagQIyYc
daYKzXU6YOAerBIYLc1iiak7EeUCAZUKtUPBKUvKVop1+9zV62jTqOW8Kjib
gs1znc3nSZazuAYkQynGQ0HkxYA4yLjABrCGKL7WRHO7TVP0aUpxdepgHCcU
4DblaMZ1ECcBYpXoFuzmx/EfxkcbhsOmZawMVDQU5EwB2KnL7WIGOntf1+N7
ZBU0qQ3JrRIqVa1cGXFXdqfs7txz6NTalZtLYOxWQXFO1jEi0Yn/Tcrjt9k7
T3DQvx1iww6HiBpwcY5PBFQBMB3Nuji/ONvi4I/LLNkIY2TSxNpboTCuGEFK
OrSo2YpoiEGnJjI9vnwvOhKQ7vNOHu0x3o3A/lai+SrrzzsHiKMqxUQ3V0Ju
/ez7VrR3+RKuQUV9SxW8kcNTOHyrRWt0ona+zeDlAAMRd0ngNaEi9FIOXgzQ
v9Ww1Z3NbwTuIwejgUyU+yE2F0CNBy8wQ298IfoTesG8OD3/5fx2W73HH8C4
gUfgqyM1S+eh6kPCdhrhs01YdEfyVP5pjTnxAfkdGZMII7NFvJMPJtbZy1X+
RnSmxBtXRTw6xGd09NPbt29fHv38809vf3zzeujfvXpD794ctd9t20yjFbJZ
7EaRNMJmeMmj627kl74RV7LoyypYKtAlBj6WLnl6Ri3LOdPvq135nE+qmuym
tqI6GEEAwTOlwYRtvsi4xf+FL051tgWfmYbwx/UwdDFpVVfEth6p9NI4iiTg
jQQOPvwtgVvAYmLjzyvvBca4tVZ1zijuqT4fb1B9GVBQNsGNkIIJcaBE/hTZ
NeGA+EcmpJ9DoWr7dQkXSTtprM97XdFjpzopbodDIcMVnv/2R/tbhgyZ8aYN
NFIdy18pPNQlcK5QkAgVG3tNgQPu9msSsn14JLwR+9LQnLiHizglITnlmDRm
fXTrLYj7/mDrynb7aLh/WpjGgjKyVqrRO0xu3TIY810W71FDt6smWHa4/Qrr
DvQmPGsykTtuPHHu/+6IkQHOfzdsh+mdhalw+OpE6KpBjlg3J4w05raST0dE
jTOFOzobKYZtNEnkrwzHIm67ZAu7F1pXEHkIUVsC1zqYf1Lxg113UWUA1paB
1Epgjgw+N0258g6YJbbdaknuj+w7UB2+d1Fnryal+zv+OOfvOPGevNSLDPyA
DevGez9Jhjxo1xnF3m74+zuu99w0vV9tas4UwFOcJSy4DOkNMdww6VEsWLo7
qami5VDWhe/GGDiQrSqY3oyqAk4USF/6NdVAPd92aCcVKFhY26+xNIXcYbiF
IWNSPyfB4abNHcRze375y01dcq/Vmtb3KdoV6K0kvCm/a383hSOcU8tEgBaF
ab6cXU6PP5596avIlZblPh85HUzQYyKnSBbA96AJ52G+Qo3JFN2XcA8hkUO5
P1eJ1Qdks1QcSUd/0UXmG9AVjqLaHTNKVxrzbKQM+Vk9OqPSpqDo/I0ub6wM
V8mpptDp4jWc1adXPpWFs9gWcO7GnFJyXZhvw9FVCZ5ONLVEGOGDsUwreCxS
L12gk/7qStfMKHwjmUrjPDNUGuV0JbATuy1B8Kf6XPRGtv48Bd7VkdSLcaaR
3nKNwW+4db7QFg4tSBjWRWAu8KqIqnS7T4f4IDYcFfZ2WEOh28BuQVdpQrMY
d42kPj5RPsY9aHdyJoJZHcjfLYv+OvfkjY6qwpRrYr8WPLZwBPGJyydpBoR4
JChwHaNOR8h5zTWwJdUkYmOjytqtBzJ78nx6Od0+b9cAAHJIhSnfUzx1C7N8
mBt4EHHATIniwPdCZNxvT0zHi7+12oUU5Tf5b+w0/sdNZwG9z2/it8lo49N5
tq1B+zXWsBFVMK076PZreCouYA2UGfB92Nf+FiwJZBR2PSqd9fr8wEuwuZnV
ktT3Jw5c51QSGjaotA1ZWA+Wlz5HWsO01p1KcX5OIEyxX7BrtyOYTOnshEtO
+iFLHjTn+3WH1hz+vgllEf4mpCkdEeQ7Gk5qxOeeRKVmbroPRdcc3FkZ50W0
CiomURmo2Zc/QAuX3HgivuFH3/T2GNQ31+B8PVu98VzhaUv1rban822b/B32
Sw1Ofezabss7rPZ3WHi7AVn7M8Pupg88lWKiwWHtky1/CE2e7Q21Lr67W8Ez
Fd0TQk2j+zR7THS8cOHJ0bpwC4HDLp0DuRt+Kr3v8Q5vxKZw5MXAN9gg/SkI
qJVZpF2GReHbZyk1+k7kxypCSLhSRUxV0muEb3yVx4WKZxWdVcEgTxX4sfxV
0UELXXyUVItLbCYXgFa+T02rOVkWsNcrYjM/UH01yekNuQoMNdymQHe6uMee
lmQLBw+wS3kWm7IDEVcgRZZYqDuNZF/wMTUvTMYAkFezJBgileMwGqNKl4C0
go07hnHTWyolR/r5/xPgCAqUn3P6DwBNKZNL4ZEOcucV2SUE3va3pt+frqYn
//p0t+ZorulGS5oZO2ougj9nZuTN/5/9Hrb225mud/f8fHRKT7uX9Lb3dHMb
Xc5Hm1vCOGPxf0hEI3z8MQAA

-->

</rfc>
