<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.19 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-thomson-ppm-dap-dp-ext-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <front>
    <title abbrev="DAP DP Extensions">Distributed Aggregation Protocol (DAP) Extensions for Improved Application of Differential Privacy</title>
    <seriesInfo name="Internet-Draft" value="draft-thomson-ppm-dap-dp-ext-00"/>
    <author fullname="Martin Thomson">
      <organization>Mozilla</organization>
      <address>
        <email>mt@lowentropy.net</email>
      </address>
    </author>
    <date year="2024" month="October" day="18"/>
    <area>Security</area>
    <workgroup>Privacy Preserving Measurement</workgroup>
    <keyword>decibels</keyword>
    <keyword>replay</keyword>
    <abstract>
      <?line 43?>

<t>The Distributed Aggregation Protocol (DAP) can be a key component
of a system that provides differentially-private guarantees
for participants.
Extensions to DAP are defined to support these guarantees.
This includes bindings of reports to specific options,
so that the aggregation service can better implement privacy budgeting
and replay protections.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://martinthomson.github.io/dap-dp-ext/draft-thomson-ppm-dap-dp-ext.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-thomson-ppm-dap-dp-ext/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Privacy Preserving Measurement Working Group mailing list (<eref target="mailto:ppm@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ppm/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ppm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/martinthomson/dap-dp-ext"/>.</t>
    </note>
  </front>
  <middle>
    <?line 53?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Distributed Aggregation Protocol (DAP) <xref target="DAP"/>
can be used as part of a differentially-private system.</t>
      <t>Differential privacy depends on being able to limit the contributions
from participants.
The basic mechanism that DAP uses to cap contributions is anti-replay.
Aggregators are responsible for ensuring that
the same report cannot be aggregated more than once.
An honest participant will contribute a limited number of reports
and can rely on at least one aggregator
preventing that report from being used multiple times.
(The threat model does not seek to protect the privacy of a dishonest participant.)</t>
      <t>This basic anti-replay mechanism allows DAP
to provide caps on contributions.
The resulting system is somewhat inflexible,
which can limit the applicability of the protocol
outside of the narrowly-defined usage modes in the basic specification.</t>
      <t>This document defines several report extensions to DAP
that either enable greater flexibility
or help constrain the flexibility allowed by other options.</t>
      <aside>
        <t>TODO: It would make sense for the corresponding extensions to be added
to <xref target="TASKPROV"/>.
However, that protocol does not include any provision for extensions.</t>
      </aside>
    </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="late-bind">
      <name>Late Task Binding</name>
      <t>DAP presently requires that a client be aware of the task that it is contributing to.
The identity of the task is bound to each report
through the inclusion of the task ID in the call to the sharding function
of the VDAF (<xref section="5.1" sectionFormat="of" target="VDAF"/>).</t>
      <t>The late_binding report extension
(codepoint 0xTBD)
signals to aggregators that a report was not bound to a specific task
when it was created.</t>
      <t>Late task binding might be useful
when reports are collected by an intermediary.
The client that generates the report in this case
might be unaware
of how the report will ultimately be aggregated.
This allows the intermediary to defer the creation of a task
until it has determined the necessary parameters for the task.</t>
      <t>When sharding and protecting reports,
the task ID is replaced with a the fixed, 32-byte sequence of
b13e8440f1cdb4da51eed3967e0a2652d27f5005bc35f751daf188b4b746708b
(in hex).</t>
      <aside>
        <t>This is the output from SHA-256 <xref target="SHA2"/>
when passed an ASCII-encoded <xref target="ASCII"/> input of
'no task_id'.</t>
      </aside>
      <t>Enforcing anti-replay for a report
that is not bound to a specific task
is challenging.
An aggregator cannot constrain its search for duplicate reports
to those that were submitted to the task.
This could greatly increase the cost of meeting anti-replay requirements.
The intent with this extension is that additional constraints,
such as one or more of the scoping extensions (see <xref target="scoping"/>),
will be used to make it more feasible
for an aggregator to comply with anti-replay requirements.</t>
    </section>
    <section anchor="scoping">
      <name>Scoping Extensions</name>
      <t>The DAP report extensions in this section might be used to either
constrain the use of reports
for tasks that are configured with matching values
or group reports for the purposes of detecting duplicates.</t>
      <t>Including additional scoping information can also
ensure that reports do not get reused
outside of their intended scope.</t>
      <t>This section defines report extensions that carry
requester identity (<xref target="requester"/>)
and report partition (<xref target="partition"/>).</t>
      <section anchor="requester">
        <name>Requester (Website) Identity</name>
        <t>Reports might be requested by
an entity that operates at lower trust level than
the entity that assembles the report.
The entity at the lower trust level
might not have access to the information necessary
to generate the report.</t>
        <t>The requester_identity report extension
(codepoint 0xTBD)
contains an encoding of the entity
that requested the report be created.</t>
        <t>For example, an application could ask the operating system
to generate a report
using information that would normally be withheld from it.
Similarly, a website could ask a web browser to generate a report
based on otherwise secret information.
In either case,
the release of information for report
is conditional on it only being used
by a specific aggregation service
under terms that have been previously established
with the aggregators.
Binding the report to the identity of the requester
ensures that any use of the system can be accounted for
as coming from that requester.</t>
        <t>The specific encoding used in this extension
will depend on the application.
However, the use of a globally-unique identifier,
such as an origin (<xref target="ORIGIN"/>)
or serialized site (<xref target="SITE"/>),
reduces the likelihood of name collisions.
A name collision might either allow two requesters
that share an aggregator
to share and reuse each others reports
(or perhaps to marginally increase the odds
of having reports spuriously detected duplicates).</t>
      </section>
      <section anchor="partition">
        <name>Report Partition</name>
        <t>This extension allows a client to bind a report
to an application-defined label.
This allows applications to partition reports
and have each partition managed separately.</t>
        <t>The report_partition report extension
(codepoint 0xTBD)
contains an application-defined sequence of bytes.</t>
        <t>The use of this report extension allows aggregators
to partition their state for tracking reports.
Duplicate reports only need to be tracked
across a matching partition,
for detecting duplicates within a task
or for detecting duplicates across tasks.</t>
        <t>The selection of partition values might need
to be coordinated with aggregators.
If partitions are used by aggregators,
the amount of state the aggregator tracks
is increased by the number of partitions.
This represents an increase in total storage,
in exchange for reducing the scope
over which that storage needs to be consistent.</t>
        <t>An aggregator could constrain the values
that are accepted for this extension,
rejecting reports that lack the extension
or have disallowed values.</t>
      </section>
    </section>
    <section anchor="budget">
      <name>Privacy Budget Consumption</name>
      <t>The gathering of reports can be modeled
as the expenditure of privacy budget by a client.
That is, clients treat the creation of a report
from private information
as a limited release of information.</t>
      <t>Total privacy loss in this case is determined
by the combination of two factors:</t>
      <ul spacing="normal">
        <li>
          <t>How the report is aggregated.</t>
        </li>
        <li>
          <t>How many reports are produced.</t>
        </li>
      </ul>
      <t>If aggregation includes the application of
an appropriate differential privacy mechanism
(that is, added noise;
see <xref target="DWORK"/>,
<xref target="DAP-DP"/>,
and <xref section="7.5" sectionFormat="of" target="DAP"/>),
the client might rely on an understanding of that mechanism
to model privacy loss.
However, such privacy loss might be based on
an assumption that the client contributes just one report.
A complete model needs to consider
the contributions of multiple reports.</t>
      <t>A privacy budgeting system
provides additional flexibility.
Privacy loss associated with any task
(or information release)
can be adjusted to control the amount of noise that is added.
A budget might be specified in terms of a metric
(like the epsilon parameter in (ε, δ)-differential privacy)
that is expended with each information release.</t>
      <t>In one version of that model,
a client is responsible for the management of any privacy budget.
Each report represents a logical information release,
contingent on being sent for aggregation
by aggregators that are trusted to apply
an appropriate differential privacy mechanism
with the appropriate level of noise.</t>
      <section anchor="privacy-budget-report-extension-format">
        <name>Privacy Budget Report Extension Format</name>
        <t>The privacy_budget report extension
(codepoint 0xTBD)
encodes the amount of privacy budget
that the client considers to be expended
as a result of producing a report.</t>
        <t>The value of the codepoint is
an encoding of the number of milli-epsilons
of budget that are expended,
using as many bytes as needed to encode the value
in network byte order.
Each unit is a one-thousandth of an epsilon (ε) as used in
(ε, δ)-differential privacy.</t>
        <aside>
          <t>Note(1): Where the delta (δ) value is non-zero,
and small epsilon increments can be expended,
clients might also need to limit the number of reports
to prevent the overall delta value from getting large.</t>
        </aside>
        <aside>
          <t>Note(2): A separate report extension could be defined
to change the scale of this value
or switch to a different unit, as necessary.</t>
        </aside>
      </section>
      <section anchor="privacy-budget-usage">
        <name>Privacy Budget Usage</name>
        <t>An aggregator that is configured to apply
a differential privacy mechanism can operate in one of two modes:
either one where the privacy budget value is validated
and reports that contain a small value are rejected;
or, where the minimum privacy budget value is used
to determine the parameters for the differential privacy mechanism.</t>
        <t>In the first mode,
aggregators each validate this parameter
as part of validating each report.
The value in the report is compared
with the value configured for the task.
A report that contains a value that is
lower than the value configured for the task
is the result of a client that expects that
the aggregators will add more noise
than the task configuration presently allows.
Aggregators <bcp14>MUST</bcp14> reject reports with a privacy budget value
that is smaller than their configured privacy budget.</t>
        <t>Alternatively,
aggregators could adjust the parameters
of the differential privacy mechanism they use
to match the smallest privacy budget that was
included in reports.
For long-running tasks that produce multiple outputs over time,
it is only necessary to ensure that each output
contain noise that is based on the minimum budget expenditure
of the reports that are included in that aggregate.</t>
        <t>This report extension can be used
to protect reports that are conveyed from client
by untrusted entities,
especially where those entities might be able to choose any task,
as enabled by the late_binding report extension (<xref target="late-bind"/>).
This parameter ensures that the entity cannot direct reports
to a task that has an inadequate differential privacy mechanism.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations relevant to each extension
is enumerated in the respective sections:
<xref target="late-bind"/>,
<xref target="requester"/>,
<xref target="partition"/>,
and <xref target="budget"/>.</t>
      <t>Use of DAP is subject to the security considerations
of DAP (<xref section="7" sectionFormat="of" target="DAP"/>)
and the VDAF that is in use (<xref section="9" sectionFormat="of" target="VDAF"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>Registrations for the defined report extensions need to be made,
but this depends on the resolution of the TODO
in <xref section="8.2.2" sectionFormat="of" target="DAP"/>.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="DAP">
          <front>
            <title>Distributed Aggregation Protocol for Privacy Preserving Measurement</title>
            <author fullname="Tim Geoghegan" initials="T." surname="Geoghegan">
              <organization>ISRG</organization>
            </author>
            <author fullname="Christopher Patton" initials="C." surname="Patton">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Brandon Pitman" initials="B." surname="Pitman">
              <organization>ISRG</organization>
            </author>
            <author fullname="Eric Rescorla" initials="E." surname="Rescorla">
              <organization>Independent</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
              <organization>Cloudflare</organization>
            </author>
            <date day="10" month="October" year="2024"/>
            <abstract>
              <t>   There are many situations in which it is desirable to take
   measurements of data which people consider sensitive.  In these
   cases, the entity taking the measurement is usually not interested in
   people's individual responses but rather in aggregated data.
   Conventional methods require collecting individual responses and then
   aggregating them, thus representing a threat to user privacy and
   rendering many such measurements difficult and impractical.  This
   document describes a multi-party distributed aggregation protocol
   (DAP) for privacy preserving measurement (PPM) which can be used to
   collect aggregate data without revealing any individual user's data.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ppm-dap-12"/>
        </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"/>
            <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="SITE" target="https://html.spec.whatwg.org/#site">
          <front>
            <title>HTML - Living Standard</title>
            <author>
              <organization>WHATWG</organization>
            </author>
            <date year="2021" month="January" day="26"/>
          </front>
        </reference>
        <reference anchor="TASKPROV">
          <front>
            <title>Task Binding and In-Band Provisioning for DAP</title>
            <author fullname="Shan Wang" initials="S." surname="Wang">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Christopher Patton" initials="C." surname="Patton">
              <organization>Cloudflare</organization>
            </author>
            <date day="9" month="October" year="2024"/>
            <abstract>
              <t>   An extension for the Distributed Aggregation Protocol (DAP) is
   specified that cryptographically binds the parameters of a task to
   the task's execution.  In particular, when a client includes this
   extension with its report, the servers will only aggregate the report
   if all parties agree on the task parameters.  This document also
   specifies an optional mechanism for in-band task provisioning that
   builds on the report extension.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ppm-dap-taskprov-00"/>
        </reference>
        <reference anchor="VDAF">
          <front>
            <title>Verifiable Distributed Aggregation Functions</title>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <author fullname="David Cook" initials="D." surname="Cook">
              <organization>ISRG</organization>
            </author>
            <author fullname="Christopher Patton" initials="C." surname="Patton">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Phillipp Schoppmann" initials="P." surname="Schoppmann">
              <organization>Google</organization>
            </author>
            <date day="4" month="October" year="2024"/>
            <abstract>
              <t>   This document describes Verifiable Distributed Aggregation Functions
   (VDAFs), a family of multi-party protocols for computing aggregate
   statistics over user measurements.  These protocols are designed to
   ensure that, as long as at least one aggregation server executes the
   protocol honestly, individual measurements are never seen by any
   server in the clear.  At the same time, VDAFs allow the servers to
   detect if a malicious or misconfigured client submitted an
   measurement that would result in an invalid aggregate result.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-vdaf-12"/>
        </reference>
        <reference anchor="SHA2">
          <front>
            <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="May" year="2011"/>
            <abstract>
              <t>Federal Information Processing Standard, FIPS</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6234"/>
          <seriesInfo name="DOI" value="10.17487/RFC6234"/>
        </reference>
        <reference anchor="ASCII">
          <front>
            <title>ASCII format for network interchange</title>
            <author fullname="V.G. Cerf" initials="V.G." surname="Cerf"/>
            <date month="October" year="1969"/>
          </front>
          <seriesInfo name="STD" value="80"/>
          <seriesInfo name="RFC" value="20"/>
          <seriesInfo name="DOI" value="10.17487/RFC0020"/>
        </reference>
        <reference anchor="ORIGIN">
          <front>
            <title>The Web Origin Concept</title>
            <author fullname="A. Barth" initials="A." surname="Barth"/>
            <date month="December" year="2011"/>
            <abstract>
              <t>This document defines the concept of an "origin", which is often used as the scope of authority or privilege by user agents. Typically, user agents isolate content retrieved from different origins to prevent malicious web site operators from interfering with the operation of benign web sites. In addition to outlining the principles that underlie the concept of origin, this document details how to determine the origin of a URI and how to serialize an origin into a string. It also defines an HTTP header field, named "Origin", that indicates which origins are associated with an HTTP request. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6454"/>
          <seriesInfo name="DOI" value="10.17487/RFC6454"/>
        </reference>
        <reference anchor="DWORK">
          <front>
            <title>The Algorithmic Foundations of Differential Privacy</title>
            <author fullname="Cynthia Dwork" initials="C." surname="Dwork">
              <organization/>
            </author>
            <author fullname="Aaron Roth" initials="A." surname="Roth">
              <organization/>
            </author>
            <date year="2013"/>
          </front>
          <seriesInfo name="Foundations and Trends® in Theoretical Computer Science" value="vol. 9, no. 3-4, pp. 211-407"/>
          <seriesInfo name="DOI" value="10.1561/0400000042"/>
          <refcontent>Now Publishers</refcontent>
        </reference>
        <reference anchor="DAP-DP">
          <front>
            <title>Differential Privacy Mechanisms for DAP</title>
            <author fullname="Junye Chen" initials="J." surname="Chen">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Audra McMillan" initials="A." surname="McMillan">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Christopher Patton" initials="C." surname="Patton">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Kunal Talwar" initials="K." surname="Talwar">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Shan Wang" initials="S." surname="Wang">
              <organization>Apple Inc.</organization>
            </author>
            <date day="23" month="October" year="2023"/>
            <abstract>
              <t>   Differential Privacy (DP) is a property of a secure aggregation
   mechanism that ensures that no single input measurement significantly
   impacts the distribution of the aggregate result.  This is a stronger
   property than what systems like the Distributed Aggregation Protocol
   (DAP) are designed to achieve.  This document describes a variety of
   DP mechansisms applicable to DAP, and, for a variety of common use
   cases, lifts DAP to a protocol that also achieves DP.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-wang-ppm-differential-privacy-00"/>
        </reference>
      </references>
    </references>
    <?line 379?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Roxana Geambesu noted that a binding to requester identity (<xref target="requester"/>)
was an important component of a robust differential privacy system design.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA5Va/3LcuJH+H0+Bk/+IlNKMJVmyvUrWzqxlr1WxLZ0lx5W6
utrCkJgZrDkkQ5CStSq9yz1E7gXuAfJM93U3QIIj7a6TqtRaHALon19/3eBk
MlGtawt7rLdOnG8bN+9am+vZctnYpWldVerzpmqrrCr09snsfEe//tra0uMH
rxdVo0/XdVNd0ZK6LlwmS6qFPnGLhW1s2TpTYAt3ZbKbLWXm88Ze0WGzc31y
nmy2pbDWLqvm5lj7Nlcqr7LSrCFY3phFO2lX1dpX5aSu15Pc1JO8ntiv7WRv
T/luvnaeNmlvarx/+vryjSq79dw2xyrHpscqwwE4p/PHum06qyDBE2UaayDJ
hc26xrUQ7rpqviybqqvxNEgMya23zZUrl/q9Nb5r7Bo6bakv9gav58dKT3Ru
Mze3had/N7YuzI26smWHc7X+1v20FuG3PkMI+vVHWkjP18YVeA69/+Jsu5hW
zZIemyZb4fGqbWt//PgxvUWP3JWdxtce04PH86a69vYx1j+mdUvXrro5Vq5N
07oymPXxYFJ6qYDVfDvaPnl5KntMXZUse/xbbpqu2nWxpZTp8HtDdpng/1ov
uqIQJ2+95xP0pazf4p+hgyndLxxTx/p99YsrCsO/2GCVdfuXorqGBZuqvpmW
FtKrsmrWWHIF+ytXLoa/tL44vXx9zBu0pllaaBgVJAGnvrbZ9Hpl2usl2++R
d62V1yVH3l6+fwcnv3PswIvWlLlpcn6DA00f7B3sT/b2JwdP+eGgL/1vEv7L
ih3rz29nl59/VEpNJhNt5kg+k7VKXa6s/sZUzEyp51YbjWjUWbWuqxKmUMg+
o/2Nb+1at9BGU4a63HqdJ0lZ3ExqCsrW6mVnGlO21npFKV2TKzJX45GfqiTf
20pT3iJxEPMLV0I6PPJdXVdNi6MQ2sleU6jivHZlVnR0+NyVOczmCR2QJljC
O5LR3cJluqpJR7+rfCViY0NtEu05cTIb1G5b22i3rgvOIF2HBJt3ORyLcxSc
E9KRDNDajLefir3XLs8Lq9QjfUrBk3f8679l/dvb/8B/vz+dnHDGxZC/u1PB
L53HBsazPTU75VfsL76CZCPQjBrltrZlDrPRphR3Zl5Yslzh1k6sBHwTiUlD
tWiq9YYTSa258bDy2mYrJJUPoUH+hJzsiczU45003If1biJmnKpojarxHAUA
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
wy3Lqfp/8h+UME4wAAA=

-->

</rfc>
