<?xml version="1.0" encoding="UTF-8"?>
<!--
    This XML document is the output of clean-for-DTD.xslt; a tool that strips
    extensions to RFC2629(bis) from documents for processing with xml2rfc.
-->
<!--TARGET-GENERATOR: 201706-->
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?><!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.6 -->
<?rfc toc="yes"?>
<?rfc tocindent="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc strict="yes"?>
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc docmapping="yes"?>
<!DOCTYPE rfc
  PUBLIC "" "rfc2629.dtd">
<rfc ipr="trust200902" docName="draft-ietf-httpbis-replay-01" category="std" obsoletes="" updates="" submissionType="IETF"><front><title abbrev="HTTP Early Data">Using Early Data in HTTP</title><author initials="M." surname="Thomson" fullname="Martin Thomson"><organization>Mozilla</organization><address><email>martin.thomson@gmail.com</email></address></author><author initials="M." surname="Nottingham" fullname="Mark Nottingham"><organization>Fastly</organization><address><email>mnot@mnot.net</email></address></author><author initials="W." surname="Tarreau" fullname="Willy Tarreau"><organization>HAProxy Technologies</organization><address><email>willy@haproxy.org</email></address></author><date year="2017" month="October" day="20"/><area>Applications and Real-Time</area><workgroup>httpbis Working Group</workgroup><keyword>Internet-Draft</keyword><abstract><t>This document explains the risks of using early data for HTTP and describes
techniques for reducing them. In particular, it defines a mechanism that
enables clients to communicate with servers about early data, to assure correct
operation.</t></abstract></front><middle><section anchor="introduction" toc="default" title="Introduction"><t>TLS 1.3 <xref target="TLS13" format="default"/> introduces the concept of early data
(also known as zero round trip data or 0-RTT data). Early data allows a client to send data
to a server in the first round trip of a connection, without waiting for the
TLS handshake to complete if the client has spoken to the same server recently.</t><t>When used with HTTP <xref target="HTTP" format="default"/>, early data allows clients to send
requests immediately, avoiding the one or two round trip delay needed for the
TLS handshake. This is a significant performance enhancement; however, it has
significant limitations.</t><t>The primary risk of using early data is that an attacker might capture and
replay the request(s) it contains. TLS <xref target="TLS13" format="default"/> describes techniques that can
be used to reduce the likelihood that an attacker can successfully replay a
request, but these techniques can be difficult to deploy, and still leave some
possibility of a successful attack.</t><t>Note that this is different from automated or user-initiated retries; replays
are initiated by an attacker without the awareness of the client.</t><t>To help mitigate the risk of replays in HTTP, this document gives an overview
of techniques for controlling these risks in servers, and defines requirements
for clients when sending requests in early data.</t><t>The advice in this document also applies to use of 0-RTT in HTTP over QUIC
<xref target="HQ" format="default"/>.</t><section anchor="conventions-and-definitions" toc="default" title="Conventions and Definitions"><t>The words “MUST”, “MUST NOT”, “SHOULD”, and “MAY” are used in this document.
It’s not shouting; when they are capitalized, they have the special meaning
defined in <xref target="RFC2119" format="default"/>.</t></section></section><section anchor="early-data-in-http" toc="default" title="Early Data in HTTP"><t>Conceptually, early data is concatenated with other application to form a single
stream.  This can mean that requests are entirely contained within early data,
or only part of a request is early.  In a multiplexed protocol, like HTTP/2
<xref target="RFC7540" format="default"/> or HTTP/QUIC <xref target="HQ" format="default"/>, multiple requests might be partially
delivered in early data.</t><t>The model that this document assumes is that once the TLS handshake completes,
the early data received on that TLS connection is known to not be a replayed copy
of that data.  However, it is important to note that this does not mean that
early data will not be or has not been replayed on another connection.</t></section><section anchor="supporting-early-data-in-http-servers" toc="default" title="Supporting Early Data in HTTP Servers"><t>A server decides whether or not to offer a client the ability to send early
data on future connections when sending the TLS session ticket.</t><t>When a server enables early data, there are a number of techniques it can use
to mitigate the risks of replay:</t><t><list style="numbers"><t>TLS <xref target="TLS13" format="default"/> mandates the use of replay detection strategies that reduce
the ability of an attacker to successfully replay early data.  These
anti-replay techniques reduce but don’t completely eliminate the chance of
data being replayed and ensure a fixed upper limit to the number of replays.</t><t>The server can choose whether it will process early data before the TLS
handshake completes. By deferring processing, it can ensure that only a
successfully completed connection is used for the request(s) therein.
This provides the server with some assurance that the early data was not
replayed.</t><t>If the server receives multiple requests in early data, it can determine
whether to defer HTTP processing on a per-request basis. This may require
buffering the responses to preserve ordering in HTTP/1.1.</t><t>The server can cause a client to retry a request and not use early data by
responding with the 425 (Too Early) status code (<xref target="status" format="default"/>), in cases where
the risk of replay is judged too great.</t></list></t><t>For a given request, the level of tolerance to replay risk is specific to the
resource it operates upon (and therefore only known to the origin server). In
general, if processing a request does not have state-changing side effects, the
consequences of replay are not significant.</t><t>The request method’s safety (<xref target="RFC7231" format="default"/>, Section 4.2.1) is one way to
determine this. However, some resources do elect to associate side effects with
safe methods, so this cannot be universally relied upon.</t><t>It is RECOMMENDED that origin servers allow resources to explicitly configure
whether early data is appropriate in requests. Absent such explicit
information, they SHOULD mitigate against early data in requests that have
unsafe methods, using the techniques outlined above.</t><t>A request might be sent partially in early data with the remainder of the
request being sent after the handshake completes.  This does not necessarily
affect handling of that request; what matters is when the server starts acting
upon the contents of a request.  Any time a server might initiate processing
prior to completion of the handshake it needs to consider how a possible replay of
early data could affect that processing (see also <xref target="be-consistent" format="default"/>).</t><t>A server can partially process requests that are incomplete.  Parsing header
fields - without acting on the values - and determining request routing is
likely to be safe from side-effects, but other actions might not be.</t><t>Intermediary servers do not have sufficient information to make this
determination, so <xref target="status" format="default"/> describes a way for the origin to signal to them
that a particular request isn’t appropriate for early data. Intermediaries that
accept early data MUST implement that mechanism.</t><t>Note that a server cannot choose to selectively reject early data at the TLS
layer. TLS only permits a server to accept all early data, or none of it. Once
a server has decided to accept early data, it MUST process all requests in
early data, even if the server rejects the request by sending a 425 (Too Early)
response.</t><t>A server can limit the amount of early data with the <spanx style="verb" xml:space="preserve">max_early_data_size</spanx>
field of the <spanx style="verb" xml:space="preserve">early_data</spanx> TLS extension. This can be used to avoid committing
an arbitrary amount of memory for deferred requests. A server SHOULD ensure
that when it accepts early data, it can defer processing of requests until
after the TLS handshake completes.</t></section><section anchor="using-early-data-in-http-clients" toc="default" title="Using Early Data in HTTP Clients"><t>A client that wishes to use early data commences sending HTTP requests
immediately after sending the TLS ClientHello.</t><t>By their nature, clients have control over whether a given request is sent in
early data – thereby giving the client control over risk of replay. Absent
other information, clients MAY send requests with safe HTTP methods (see
<xref target="RFC7231" format="default"/>, Section 4.2.1) in early data when it is available, and SHOULD NOT
send unsafe methods (or methods whose safety is not known) in early data.</t><t>If the server rejects early data at the TLS layer, a client MUST start sending
again as though the connection was new. For HTTP/2, this means re-sending the
connection preface. Any requests sent in early data MUST be sent again, unless
the client decides to abandon those requests.</t><t>This automatic retry exposes the request to a potential replay attack.  An
attacker sends early data to one server instance that accepts and processes the
early data, but allows that connection to proceed no further.  The attacker then
forwards the same messages from the client to another server instance that will
reject early data.  The client then retries the request, resulting in the
request being processed twice.  Replays are also possible if there are multiple
server instances that will accept early data, or if the same server accepts
early data multiple times (though this would be in violation of requirements in
TLS).</t><t>Clients that use early data MUST retry requests upon receipt of a 425 (Too
Early) status code; see <xref target="status" format="default"/>.</t><t>An intermediary MUST NOT use early data when forwarding a request unless early
data was used on a previous hop, or it knows that the request can be retried
safely without consequences (typically, using out-of-band configuration).
Absent better information, that means that an intermediary can only use early
data if the request either arrived in early data or arrived with the
<spanx style="verb" xml:space="preserve">Early-Data</spanx> header field set to “1” (see <xref target="header" format="default"/>).</t></section><section anchor="extensions-for-early-data-in-http" toc="default" title="Extensions for Early Data in HTTP"><t>Because HTTP requests can span multiple “hops”, it is necessary to explicitly
communicate whether a request has been sent in early data on a previous
connection. Likewise, some means of explicitly triggering a retry when early
data is not desirable is necessary. Finally, it is necessary to know whether the
client will actually perform such a retry.</t><t>To meet these needs, two signalling mechanisms are defined:</t><t><list style="symbols"><t>The <spanx style="verb" xml:space="preserve">Early-Data</spanx> header field is included in requests that are received in
early data.</t><t>The 425 (Too Early) status code is defined for a server to indicate that a
request could not be processed due to the consequences of a possible replay
attack.</t></list></t><t>They are designed to enable better coordination of the use of early data
between the user agent and origin server, and also when a gateway (also
“reverse proxy”, “Content Delivery Network”, or “surrogate”) is present.</t><t>Gateways typically don’t have specific information about whether a given
request can be processed safely when it is sent in early data. In many cases,
only the origin server has the necessary information to decide whether the risk
of replay is acceptable. These extensions allow coordination between a gateway
and its origin server.</t><section anchor="header" toc="default" title="The Early-Data Header Field"><t>The <spanx style="verb" xml:space="preserve">Early-Data</spanx> request header field indicates that the request has been
conveyed in early data, and additionally indicates that a client understands
the 425 (Too Early) status code.</t><t>It has just one valid value: “1”. Its syntax is defined by the following ABNF
<xref target="ABNF" format="default"/>:</t><figure suppress-title="false" align="left" alt="" width="" height=""><artwork type="abnf" xml:space="preserve" name="" align="left" alt="" width="" height=""><![CDATA[
Early-Data = "1"
]]></artwork></figure><t>For example:</t><figure suppress-title="false" align="left" alt="" width="" height=""><artwork type="example" xml:space="preserve" name="" align="left" alt="" width="" height=""><![CDATA[
GET /resource HTTP/1.0
Host: example.com
Early-Data: 1

]]></artwork></figure><t>An intermediary that forwards a request prior to the completion of the TLS
handshake MUST send it with the <spanx style="verb" xml:space="preserve">Early-Data</spanx> header field set to “1” (i.e., it
adds it if not present in the request).  An intermediary MUST use the
<spanx style="verb" xml:space="preserve">Early-Data</spanx> header field if it might have forwarded the request prior to
handshake completion (see <xref target="be-consistent" format="default"/> for details).</t><t>An intermediary MUST NOT remove this header field if it is present in a request.</t><t>The <spanx style="verb" xml:space="preserve">Early-Data</spanx> header field is not intended for use by user agents (that is,
the original initiator of a request).  Sending a request in early data implies
that the client understands this specification and is willing to retry a request
in response to a 425 (Too Early) status code.  A user agent that sends a request
in early data does not need to include the <spanx style="verb" xml:space="preserve">Early-Data</spanx> header field.</t><t>A server cannot make a request that contains the Early-Data header field safe
for processing by waiting for the handshake to complete. A request that is
marked with Early-Data was sent in early data on a previous hop. Requests that
contain the Early-Data field and cannot be safely processed MUST be rejected
using the 425 (Too Early) status code.</t></section><section anchor="status" toc="default" title="The 425 (Too Early) Status Code"><t>A 425 (Too Early) status code indicates that the server is unwilling to risk
processing a request that might be replayed.</t><t>Clients (user-agents and intermediaries) that sent the request in early data
MUST automatically retry the request when receiving a 425 (Too Early)
response status code. Such retries MUST NOT be sent in early data.</t><t>Intermediaries that receive a 425 (Too Early) status code MAY automatically
retry requests after allowing the handshake to complete unless the original
request contained the <spanx style="verb" xml:space="preserve">Early-Data</spanx> header field when it was received.
Otherwise, an intermediary MUST forward the 425 (Too Early) status code.</t><t>The server cannot assume that a client is able to retry a request unless the
request is received in early data or the <spanx style="verb" xml:space="preserve">Early-Data</spanx> header field is set to
“1”.  A server SHOULD NOT emit the 425 status code unless one of these
conditions is met.</t><t>The 425 (Too Early) status code is not cacheable by default. Its payload is not
the representation of any identified resource.</t></section></section><section anchor="security-considerations" toc="default" title="Security Considerations"><t>Using early data exposes a client to the risk that their request is replayed.  A
retried or replayed request can produce different side effects on the server.
In addition to those side effects, replays and retries might be used for traffic
analysis to recover information about requests or the resources those requests
target.</t><section anchor="gateways-and-early-data" toc="default" title="Gateways and Early Data"><t>A gateway that forwards requests that were received in early data MUST only do
so if it knows that the origin server that receives those requests understands
the <spanx style="verb" xml:space="preserve">Early-Data</spanx> header field and will correctly generate a 425 (Too Early)
status code.  A gateway that isn’t certain about origin server support SHOULD
either delay forwarding the request until the TLS handshake with its client
completes, or send a 425 (Too Early) status code in response.  A gateway that is
uncertain about whether an origin server supports the <spanx style="verb" xml:space="preserve">Early-Data</spanx> header field
SHOULD disable early data.</t></section><section anchor="be-consistent" toc="default" title="Consistent Handling of Early Data"><t>Consistent treatment of a request that arrives in - or partially in - early data
is critical to avoiding inappropriate processing of replayed requests.  If a
request is not safe to process before the TLS handshake completes, then all
instances of the server (including gateways) need to agree and either reject the
request or delay processing.</t><t>A server MUST NOT act on early data before the handshake completes if it and any
other server instance could make a different decision about how to handle the
same data.</t></section><section anchor="denial-of-service" toc="default" title="Denial of Service"><t>Accepting early data exposes a server to potential denial of service through the
replay of requests that are expensive to handle.  A server that is under load
SHOULD prefer rejecting TLS early data as a whole rather than accepting early
data and selectively processing requests.  Generating a 503 (Service
Unavailable) or 425 (Too Early) status code often leads to clients retrying
requests, which could result in increased load.</t></section><section anchor="out-of-order-delivery" toc="default" title="Out of Order Delivery"><t>In protocols that deliver data out of order (such as QUIC <xref target="HQ" format="default"/>) early data
can arrive after the handshake completes.  This leads to potential ambiguity
about the status of requests and could lead to inconsistent treatment (see
<xref target="be-consistent" format="default"/>).  Implementations MUST either ensure that any early data that
is delivered late is either discarded or consistently identified and processed.</t></section></section><section anchor="iana-considerations" toc="default" title="IANA Considerations"><t>This document registers the <spanx style="verb" xml:space="preserve">Early-Data</spanx> header field in the “Message Headers”
registry <xref target="HEADERS" format="default"/>.</t><t><list style="hanging"><t hangText="Header field name:">
  Early-Data</t><t hangText="Applicable protocol:">
  http</t><t hangText="Status:">
  standard</t><t hangText="Author/Change controller:">
  IETF</t><t hangText="Specification document(s):">
  This document</t><t hangText="Related information:">
  (empty)</t></list></t><t>This document registers the 425 (Too Early) status code in the “Hypertext
Transfer Protocol (HTTP) Status Code” registry established in <xref target="RFC7231" format="default"/>.</t><t><list style="hanging"><t hangText="Value:">
  425</t><t hangText="Description:">
  Too Early</t><t hangText="Reference:">
  This document</t></list></t></section></middle><back><references title="Normative References"><reference anchor="TLS13"><front><title>The Transport Layer Security (TLS) Protocol Version 1.3</title><author initials="E" surname="Rescorla" fullname="Eric Rescorla"><organization/></author><date month="July" day="3" year="2017"/><abstract><t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol.  TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t></abstract></front><seriesInfo name="Internet-Draft" value="draft-ietf-tls-tls13-21"/><format type="TXT" target="http://www.ietf.org/internet-drafts/draft-ietf-tls-tls13-21.txt"/></reference><reference anchor="HTTP" target="https://www.rfc-editor.org/info/rfc7230"><front><title>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</title><author initials="R." surname="Fielding" fullname="R. Fielding" role="editor"><organization/></author><author initials="J." surname="Reschke" fullname="J. Reschke" role="editor"><organization/></author><date year="2014" month="June"/><abstract><t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems.  This document provides an overview of HTTP architecture and its associated terminology, defines the "http" and "https" Uniform Resource Identifier (URI) schemes, defines the HTTP/1.1 message syntax and parsing requirements, and describes related security concerns for implementations.</t></abstract></front><seriesInfo name="RFC" value="7230"/><seriesInfo name="DOI" value="10.17487/RFC7230"/></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 initials="S." surname="Bradner" fullname="S. Bradner"><organization/></author><date year="1997" month="March"/><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="RFC7231" target="https://www.rfc-editor.org/info/rfc7231"><front><title>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</title><author initials="R." surname="Fielding" fullname="R. Fielding" role="editor"><organization/></author><author initials="J." surname="Reschke" fullname="J. Reschke" role="editor"><organization/></author><date year="2014" month="June"/><abstract><t>The Hypertext Transfer Protocol (HTTP) is a stateless \%application- level protocol for distributed, collaborative, hypertext information systems.  This document defines the semantics of HTTP/1.1 messages, as expressed by request methods, request header fields, response status codes, and response header fields, along with the payload of messages (metadata and body content) and mechanisms for content negotiation.</t></abstract></front><seriesInfo name="RFC" value="7231"/><seriesInfo name="DOI" value="10.17487/RFC7231"/></reference><reference anchor="ABNF" target="https://www.rfc-editor.org/info/rfc5234"><front><title>Augmented BNF for Syntax Specifications: ABNF</title><author initials="D." surname="Crocker" fullname="D. Crocker" role="editor"><organization/></author><author initials="P." surname="Overell" fullname="P. Overell"><organization/></author><date year="2008" month="January"/><abstract><t>Internet technical specifications often need to define a formal syntax.  Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications.  The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power.  The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges.  This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications.  [STANDARDS-TRACK]</t></abstract></front><seriesInfo name="STD" value="68"/><seriesInfo name="RFC" value="5234"/><seriesInfo name="DOI" value="10.17487/RFC5234"/></reference><reference anchor="HEADERS" target="https://www.rfc-editor.org/info/rfc3864"><front><title>Registration Procedures for Message Header Fields</title><author initials="G." surname="Klyne" fullname="G. Klyne"><organization/></author><author initials="M." surname="Nottingham" fullname="M. Nottingham"><organization/></author><author initials="J." surname="Mogul" fullname="J. Mogul"><organization/></author><date year="2004" month="September"/><abstract><t>This specification defines registration procedures for the message header fields used by Internet mail, HTTP, Netnews and other applications.  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="90"/><seriesInfo name="RFC" value="3864"/><seriesInfo name="DOI" value="10.17487/RFC3864"/></reference></references><references title="Informative References"><reference anchor="HQ"><front><title>Hypertext Transfer Protocol (HTTP) over QUIC</title><author initials="M" surname="Bishop" fullname="Mike Bishop"><organization/></author><date month="October" day="14" year="2017"/><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 QUIC.</t></abstract></front><seriesInfo name="Internet-Draft" value="draft-ietf-quic-http-07"/><format type="TXT" target="http://www.ietf.org/internet-drafts/draft-ietf-quic-http-07.txt"/></reference><reference anchor="RFC7540" target="https://www.rfc-editor.org/info/rfc7540"><front><title>Hypertext Transfer Protocol Version 2 (HTTP/2)</title><author initials="M." surname="Belshe" fullname="M. Belshe"><organization/></author><author initials="R." surname="Peon" fullname="R. Peon"><organization/></author><author initials="M." surname="Thomson" fullname="M. Thomson" role="editor"><organization/></author><date year="2015" month="May"/><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><section anchor="acknowledgments" toc="default" numbered="false" title="Acknowledgments"><t>This document was not easy to produce.  The following people made substantial
contributions to the quality and completeness of the document: Subodh Iyengar,
Benjamin Kaduk, Ilari Liusavaara, Kazuho Oku, Kyle Rose, and Victor Vasiliev.</t></section></back><!-- ##markdown-source:
H4sIAIVh6VkAA41bbXMbN5L+jl+Bkz+sdEUylu3c3SqV2lUkO3JtbGdtOamt
q6sEnAFJRMMBdzAjmVYpv/366QZmMCStZKs2lsQZoNEvTz/dDU6nU9W6trJn
+mNw9VK/NE211ZemNdrV+ur6+kdl5vPG3p7xL9nnqvRFbdb0ZtmYRTt1tl1M
V227mbswbeymMttpZVobWlXQP0vfbM90aEul3KY5023ThfbZ06d/ffpMmcaa
M32+2VSOHnW+DtrUpX5vTTW9dmur7nxzs2x8tznTcQd1Y7f01/JMv65b29S2
nV5CDKVCS+/+Yipfk2hbG9TGnen/bX0x0fQfV5e2bic6+KZt7CLQT9t1/KFt
XEEfFX69MfGHNT1MH7m6crWdaDry2mw2pKj/U8p07co3Z0pPlab/uTqc6Tcz
fb3y6+Br/pvo541pWlJm/oFvlqZ2n/mw9ID/7KrK8Cd2bVx1ptf8zqyVd/6+
xF9nJNDubm99S88tV2Y93vBm95Pxjq9MaKvtaMPat3/Hf2aky9EuP9OZTEMm
6rItfiaBt6O/jze4Ov+x8Z/oCVusal/5pSNLZNvd4f2/r8wGT83oXUV+US98
s6YFbu2ZUtPpVJs5GYVsodT1ygWov4NFtP1E7kXC6XZldePCTdB+oTv2YMse
WsKDaTnxWnhTaUPRuDmJ0UIm9+/OBn6isWVX4E1abD0jf9IbKL/oKtOQ6Vt6
c0HWJ5/Ua3qTDhnW9Kxpla3NvKIPisrBT8i/2Ge6Gm5s6YztSgfb3NqGXp77
rs2EgzdqE0LXWHqJ1Ein9BvbsP5mSs6/dmVZWaWewMsbT3LiU9LGDx/06ey5
vr//G/14+vzb19PLGQdgWwX8//T5wwNZT96xoqfC14XdtNDUIIY6NlXw+qb2
dzWJoz/bxmuKNFIYhcNG9EhKejp9f33Nv53MIgjwR6aq/B1UIzrAoYKFtrE2
ThgVADSBEAvXhDbfgKQxEK22fLYJaw2qujMO/ssmojf5zKT8MqzMjY2q3lSW
9OwWcj6RYEWnCBt/Y2s8hA8CeWwSg/RMD1Vb0vDPK3qkC7YUQ7Gj3N//B/79
9v2ri/9+9vzpw8Mk96d42MzcOKtqLHyJ/uAIL0pHpq+2E21uvSujW2kCI2ix
vRsr1xJI6trakoQ4eE7ACTm+g4aDW9ZuQa5FhyRH4Vghi2pbr/AvAuMbvfJ3
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

--></rfc>