<?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.1 (Ruby 3.0.2) -->
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-cxx-ippm-ioamaggr-00" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.1 -->
  <front>
    <title abbrev="ioam-aggr">Aggregation Trace Option for In-situ Operations, Administration, and Maintenance (IOAM)</title>
    <seriesInfo name="Internet-Draft" value="draft-cxx-ippm-ioamaggr-00"/>
    <author initials="A." surname="Clemm" fullname="Alexander Clemm">
      <organization>Futurewei Technologies, Inc.</organization>
      <address>
        <email>ludwig@clemm.org</email>
      </address>
    </author>
    <author initials="L." surname="Metzger" fullname="Laurent Metzger">
      <organization>Ostschweizer Fachhochschule - OST</organization>
      <address>
        <email>laurent.metzger@ost.ch</email>
      </address>
    </author>
    <date year="2023" month="October" day="23"/>
    <workgroup>IPPM</workgroup>
    <abstract>
      <?line 37?>

<t>The purpose of this memo is to describe a new option type for In-Situ Operations, Administration, and Maintenance (IOAM).  This option type allows to aggregate IOAM data along a network path.  Aggregates include functions such as the sum, average, minimum, or maximum of a given data parameter.</t>
    </abstract>
  </front>
  <middle>
    <?line 41?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This memo proposes a new option type for In-Situ Operations, Administration, and Maintenance (IOAM) <xref target="RFC9197"/>.  The IOAM Aggregate option type allows to aggregate IOAM data along a network path.  Aggregates include functions such as the sum, average, minimum, or maximum of a given data parameter.</t>
      <t>Many applications interested in telemetry data across a path are not so much interested in each individual node's telemetry, but an aggregate to paint a more holistic picture.  An example of an aggregate could be a sum (for example, the sum of packet dwell times experienced across a path), an average (for example, the average dwell time experienced across a path), or a minimum or maximum (for example, of the dwell time experienced on any hop across the path, along with the node ID where the extreme was experienced).  Other applications include sustainable networking, where (for example) the carbon-intensity of a path as a whole needs to be determined as an input to applications that attempt to minimize pollution attributable to specific networking traffic.</t>
      <t>The aggregation option type proposed in this memo addresses the needs of those applications.  Rather than collecting individual IOAM data parameters at each node and exporting them for further processing, IOAM Aggregate allows to preprocess telemetry data into an aggregate as a packet traverses a path. Aggregating parameters along the path, instead of merely collecting them, offers the following advantages:</t>
      <ul spacing="normal">
        <li>
          <t>It keeps the packet size constant.  This avoids problems such as the possibility of packets exceeding their MTU and need for fragmentation and reassembly in case of longer data paths, or deteriorating packet delays as packets grow in size along a path.</t>
        </li>
        <li>
          <t>It reduces the volume of data to be exported.</t>
        </li>
        <li>
          <t>It obviates the need to correlate data exported from individual nodes as belonging to the same flow, when compared with processing of postcard telemetry data <xref target="RFC9326"/>.</t>
        </li>
        <li>
          <t>It significantly reduces the amount of processing that needs to be done by applications, simplifying their development and deployment.</t>
        </li>
        <li>
          <t>It enables greater network intelligence, such as taking actions on aggregates when certain thresholds are exceeded.</t>
        </li>
      </ul>
      <t>Aggregating parameters does require a small amount of processing (such as, an arithmetic operations to add to a sum, or a comparison operation to determine a minimum) at each hop, requiring some additional processing cycles.  This is a small tradeoff to be aware of when choosing this option.  We believe that this tradeoff will be acceptable in many implementations and deployment scenarios.</t>
    </section>
    <section anchor="background">
      <name>Background</name>
      <t><xref target="RFC9197"/> defines the scope of IOAM as well as the different IOAM nodes.  The following section reiterates those roles and explains how they are applied in the context of IOAM Aggregation.</t>
      <t>IOAM is focused on "limited domains", as defined in <xref target="RFC8799"/>. IOAM is not targeted for a deployment on the global Internet, which would incur additional considerations such as the crossing of Trust Boundaries, authentication of IOAM data, or the desire to obfuscate domain internals to outside parties.   The part of the network that employs IOAM is referred to as the "IOAM-Domain".</t>
      <t>An IOAM-Domain consists of "IOAM encapsulating nodes", "IOAM decapsulating nodes", and "IOAM transit nodes", as depicted in <xref target="FIG-ioam-roles"/>.</t>
      <figure anchor="FIG-ioam-roles">
        <name>Roles of IOAM nodes</name>
        <artwork><![CDATA[
                                                      Export of
                                                  IOAM data (opt.)
                                                          ^
                                                          |
User     +--------+     +--------+     +--------+     +---+----+
packets  |Encapsu-|     | Transit|     | Transit|     |Decapsu-|
-------->|lating  |====>| Node   |====>| Node   |====>|lating  |-->
         |Node    |     | A      |     | B      |     |Node    |
         +--------+     +--------+     +--------+     +--------+
]]></artwork>
      </figure>
      <t>The role of these nodes is as follows:</t>
      <ul spacing="normal">
        <li>
          <t>The Encapsulating Node originates the IOAM aggregation. It adds the IOAM Aggregation Option to the packet for which telemetry data is to be aggregated across the path and populates the fields with their initial values.</t>
        </li>
        <li>
          <t>The Transit Node is an IOAM-enabled node that aggregates the value of its own telemetry with the aggregate in the packet, updating the aggregation data as needed.</t>
        </li>
        <li>
          <t>The Decapsulating Node terminates the IOAM aggregation.  It aggregates the value of its own telemetry with the aggregate in the packet and updates the aggregation data as needed. It subsequently exports the aggregated data, specifically, including the value of the aggregate itself as well as auxiliary data as applicable (e.g. node ID for min, max, and in case of errors).</t>
        </li>
      </ul>
    </section>
    <section anchor="ioam-aggregation-option-type">
      <name>IOAM Aggregation Option-Type</name>
      <section anchor="overview">
        <name>Overview</name>
        <t>This section defines the data fields for the IOAM Aggregation Option Type format.  Like other IOAM Aggregation Option Types, these data fields can be mapped into a number of transport protocols <xref target="RFC9378"/>.  For example, a transport over IPv6 <xref target="RFC8200"/> has been defined in <xref target="RFC9486"/>.</t>
        <t>The format of the IOAM Aggregation Option Type data fields is depicted in <xref target="FIG-ioam-aggr-option-hdr"/>.</t>
        <figure anchor="FIG-ioam-aggr-option-hdr">
          <name>IOAM Aggregation Option Type Format</name>
          <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        Namespace-ID           | Flags |       Reserved        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               IOAM Data Param                 |  Aggregator   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Aggregate                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Auxil-data Node-ID                |   Hop Count    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The total length of the IOAM Aggregation Option Type data fields is fixed at 16 octets (word-aligned).  These 16 octets hold header information as well as aggregation data in the following fields:</t>
        <ul spacing="normal">
          <li>
            <t>Namespace-ID: 16-bit identifier of an IOAM-Namespace, as defined in <xref target="RFC9197"/>.  The Namespace-ID is populated by the encapsulating node and MUST NOT be changed by any of the intermediate nodes.  The Namespace-ID value of 0x0000 is defined as the "Default-Namespace-ID" and MUST be known to all the nodes implementing IOAM.  For any other Namespace-ID value that does not match any Namespace-ID the node is configured to operate on, the node MUST NOT change the contents of the IOAM-Data-Fields except for the Namespace Flag (see below).</t>
          </li>
          <li>
            <t>Flags: 4-bit field to indicate errors that were encountered when attempting to process the IOAM Aggregation Option along the path.  Once a flag is set, no further aggregation occurs along the path.  An intermediate node that encounters an error during processing of the IOAM Aggregation that prevents it from updating the aggregate as requested MUST set the corresponding flag to 1.  In order to facilitate troubleshooting, it also MUST set the value of the Auxil-data Node-ID field to its own Node-ID. The encapsulating node MUST set the value of Flags to zero upon transmission.  When an intermediate node encounters receives a packet in which any of the Flags are non-zero, the node MUST NOT perform further IOAM operations on that packet; instead, the IOAM data MUST be forwarded as-is unchanged.  The following flags are defined:
            </t>
            <ul spacing="normal">
              <li>
                <t>Flag 1: Aggregator not supported</t>
              </li>
              <li>
                <t>Flag 2: Unsupported IOAM data parameter</t>
              </li>
              <li>
                <t>Flag 3: Unsupported Namespace</t>
              </li>
              <li>
                <t>Flag 4: Any other error</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Reserved: An IOAM encapsulating node MUST set the value to zero upon transmission. IOAM transit nodes MUST ignore the received value.</t>
          </li>
          <li>
            <t>IOAM Data Param: This field identifies the data parameter that is to be aggregated across the nodes.  It MUST be set by the IOAM encapsulating node.  IOAM transit nodes MUST NOT change it.  Contrary to IOAM Trace-Type in the pre-allocated and incremental trace option types, only a single parameter is aggregated at a time.  Accordingly, the data parameter to be aggregated is not identified by a a particular bit, but by a value.</t>
          </li>
          <li>
            <t>Aggregator: This 8-bit field identifies the aggregation function that is to be applied.  Its value MUST be set by the IOAM encapsulating node.  IOAM transit nodes MUST not change it.  The following aggregators are defined:
            </t>
            <ul spacing="normal">
              <li>
                <t>Sum (value: 0b1)</t>
              </li>
              <li>
                <t>Min (value: 0b10)</t>
              </li>
              <li>
                <t>Max (value: 0b100)</t>
              </li>
              <li>
                <t>Average (value: 0b1000)</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Aggregate: This 32-bit field contains the aggregated value.  Its value is initialized by the encapsulating node,in general by simply recording the value of its data parameter that is to be aggregated.  The field is updated 
by each subsequent node pre the requested aggregation, including IOAM transit nodes as well as the IOAM decapsulating node (prior to performing decapsulation).</t>
          </li>
          <li>
            <t>Auxil-data Node-ID: This 24-bit field contains a Node-ID. It MUST be set by the encapsulating node to its own Node ID. 
Subsequent nodes (IOAM transit nodes, as well as the IOAM decapsulating node prior to performing decapsulation) MUST update the value to their own Node-ID IF AND ONLY IF one of the following conditions hold, otherwise they MUST NOT change its value:
            </t>
            <ul spacing="normal">
              <li>
                <t>When a flag is set by the node (i.e., the first time any type of error is encounted along the path)</t>
              </li>
              <li>
                <t>When the aggregator is one of Min or Max, and a new minimum respectively maximum is encountered.  The value of the Auxil-data Node-ID field is hence used to record where the minimum respectively maximum value was  first encountered.  (When a node matches an existing minimum or maximum but does not beat it, the Node-ID is not updated.)</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Hop Count.  This 8-bit fields contains a hop count to record the number of nodes along the path that successfully processed the IOAM Aggregation.  The encapsulating node MUST set the value to 1, and each subsequent node (transit nodes, as well as the decapsulating node prior to performing decapsulation) MUST increment its value by 1.  If the Hop Count at a node exceeds 255, that node MUST set the Hop Count to 0 and set Flag 4 ("any other error") to prevent further processing of the IOAM Aggregation.</t>
          </li>
        </ul>
      </section>
      <section anchor="discussion">
        <name>Discussion</name>
        <t>This section explains some of the design choices and points out items that may be subjected to further discussion.</t>
        <ul spacing="normal">
          <li>
            <t>Single versus multiple parameters.  The Aggregation Option Type allows to only aggregate one data parameter at a time.  This allows to keep the format of the data structure simple and of fixed size. This facilitates processing. It also limits the number of processing cycles that need to be spent for aggregation at each node. An application seeking to perform multiple types of aggregation at a time will need to apply different types of aggregation for different packets.</t>
          </li>
          <li>
            <t>IOAM data parameter identification.  Unlike other IOAM Option Types, data parameters are not represented by a bit position in a field but by a 24-bit identifier.  This allows to support a greater number of parameters.  In order to facilitate compatibility, initially only identifiers SHOULD be used that utilize bits 12 through 22, with other bits set to 0.  The assignment of IOAM data parameter identifiers is at this point up to the network operator, with IOAM data parameters being specific to an IOAM name space.  It is conceivable that a global namespace and a corresponding IANA registry for IOAM data parameters would be introduced at a later point in time.</t>
          </li>
          <li>
            <t>Average aggregator.  An average can be easily derived from dividing a sum obtained across all nodes by the hopcount.  Avoiding division operations along the path can save considerable processing cycles.  It is FFS if the average aggregator is really required.</t>
          </li>
          <li>
            <t>Simultaneous use with other IOAM Option Types.  There are use cases conceivable that would benefit from also adding a trace of which nodes were actually traversed on the path.  The possibility to do so is already provided with other IOAM Option Types and does not need to be added here.  In order to use multiple IOAM Option Types simultaneously, applications can use one of several alternatives.  In one alternative, multiple IOAM Option Types with their corresponding data structures are simultaneously used in the same packet.  In another alternative, different packets of the same flow are each send with a different IOAM Option Type, a form of sampling which however provides no absolute guarantees of path congruency (i.e., different packets traversing the exact same path).</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>A malicious node along the path could attempt to forge the aggregate, resulting in a wrong aggregate to be reported.  This might mislead applications.  Likewise, a malicious node along the path could set a flag to trick other nodes not to process the aggregate any further, or clear a flag to make an errored result appear legitimate.  To avoid this, network operators need to ensure that their network nodes can be trusted and are not compromised.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA requests are TBD.  Future versions of this document may request the establishment of a registry for Aggregators as well as for IOAM Data Parameters.</t>
    </section>
    <section anchor="contributors">
      <name>Contributors</name>
      <ul spacing="normal">
        <li>
          <t>Ramon Bister, OST</t>
        </li>
        <li>
          <t>Severin Dellsperger, OST</t>
        </li>
        <li>
          <t>Reto Furrer, OST</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9197">
          <front>
            <title>Data Fields for In Situ Operations, Administration, and Maintenance (IOAM)</title>
            <author fullname="F. Brockners" initials="F." role="editor" surname="Brockners"/>
            <author fullname="S. Bhandari" initials="S." role="editor" surname="Bhandari"/>
            <author fullname="T. Mizrahi" initials="T." role="editor" surname="Mizrahi"/>
            <date month="May" year="2022"/>
            <abstract>
              <t>In situ Operations, Administration, and Maintenance (IOAM) collects operational and telemetry information in the packet while the packet traverses a path between two points in the network. This document discusses the data fields and associated data types for IOAM. IOAM-Data-Fields can be encapsulated into a variety of protocols, such as Network Service Header (NSH), Segment Routing, Generic Network Virtualization Encapsulation (Geneve), or IPv6. IOAM can be used to complement OAM mechanisms based on, e.g., ICMP or other types of probe packets.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9197"/>
          <seriesInfo name="DOI" value="10.17487/RFC9197"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8200">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="86"/>
          <seriesInfo name="RFC" value="8200"/>
          <seriesInfo name="DOI" value="10.17487/RFC8200"/>
        </reference>
        <reference anchor="RFC8799">
          <front>
            <title>Limited Domains and Internet Protocols</title>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="B. Liu" initials="B." surname="Liu"/>
            <date month="July" year="2020"/>
            <abstract>
              <t>There is a noticeable trend towards network behaviors and semantics that are specific to a particular set of requirements applied within a limited region of the Internet. Policies, default parameters, the options supported, the style of network management, and security requirements may vary between such limited regions. This document reviews examples of such limited domains (also known as controlled environments), notes emerging solutions, and includes a related taxonomy. It then briefly discusses the standardization of protocols for limited domains. Finally, it shows the need for a precise definition of "limited domain membership" and for mechanisms to allow nodes to join a domain securely and to find other members, including boundary nodes.</t>
              <t>This document is the product of the research of the authors. It has been produced through discussions and consultation within the IETF but is not the product of IETF consensus.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8799"/>
          <seriesInfo name="DOI" value="10.17487/RFC8799"/>
        </reference>
        <reference anchor="RFC9326">
          <front>
            <title>In Situ Operations, Administration, and Maintenance (IOAM) Direct Exporting</title>
            <author fullname="H. Song" initials="H." surname="Song"/>
            <author fullname="B. Gafni" initials="B." surname="Gafni"/>
            <author fullname="F. Brockners" initials="F." surname="Brockners"/>
            <author fullname="S. Bhandari" initials="S." surname="Bhandari"/>
            <author fullname="T. Mizrahi" initials="T." surname="Mizrahi"/>
            <date month="November" year="2022"/>
            <abstract>
              <t>In situ Operations, Administration, and Maintenance (IOAM) is used for recording and collecting operational and telemetry information. Specifically, IOAM allows telemetry data to be pushed into data packets while they traverse the network. This document introduces a new IOAM option type (denoted IOAM-Option-Type) called the "IOAM Direct Export (DEX) Option-Type". This Option-Type is used as a trigger for IOAM data to be directly exported or locally aggregated without being pushed into in-flight data packets. The exporting method and format are outside the scope of this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9326"/>
          <seriesInfo name="DOI" value="10.17487/RFC9326"/>
        </reference>
        <reference anchor="RFC9378">
          <front>
            <title>In Situ Operations, Administration, and Maintenance (IOAM) Deployment</title>
            <author fullname="F. Brockners" initials="F." role="editor" surname="Brockners"/>
            <author fullname="S. Bhandari" initials="S." role="editor" surname="Bhandari"/>
            <author fullname="D. Bernier" initials="D." surname="Bernier"/>
            <author fullname="T. Mizrahi" initials="T." role="editor" surname="Mizrahi"/>
            <date month="April" year="2023"/>
            <abstract>
              <t>In situ Operations, Administration, and Maintenance (IOAM) collects operational and telemetry information in the packet while the packet traverses a path between two points in the network. This document provides a framework for IOAM deployment and provides IOAM deployment considerations and guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9378"/>
          <seriesInfo name="DOI" value="10.17487/RFC9378"/>
        </reference>
        <reference anchor="RFC9486">
          <front>
            <title>IPv6 Options for In Situ Operations, Administration, and Maintenance (IOAM)</title>
            <author fullname="S. Bhandari" initials="S." role="editor" surname="Bhandari"/>
            <author fullname="F. Brockners" initials="F." role="editor" surname="Brockners"/>
            <date month="September" year="2023"/>
            <abstract>
              <t>In situ Operations, Administration, and Maintenance (IOAM) records operational and telemetry information in the packet while the packet traverses a path between two points in the network. This document outlines how IOAM Data-Fields are encapsulated in IPv6.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9486"/>
          <seriesInfo name="DOI" value="10.17487/RFC9486"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9VbbXPbRpL+jl8xZX84qUyyZMWJbV3t1spWdOsqv6Rsubau
ru6uhsCQnDOAwWIAUUqU++37dPcMMCAprZP4PhxTSURgXnr69eme5nw+z3JX
2Hp9pvpuNX+RZZ3tSnOmztfr1qx1Z12trlqdG/Wh4S8r16o39dzbrscj0/IQ
P1PnRWVr6zt5MFO6LtQ7bevO1LrG9KM3H87fHWd6uWzN9ZmyTldzjU2ywuW1
rrBl0epVN89vbua2aao5jaAB85OTbAv63vz007vMNu2Z6tred6cnJy9PTrNc
d2bt2tsz5bsiy3yHff9bl67GgrfGZ409U//RuXymvGu71qxAqr+t5I/cVZWp
O/+fWab7buPas0ypOf7lj609+LBQr0tTVfGhkHpemhtsZNrpS9eCzsu+61uz
NVZdmXxTu9KtrcFmb+p8EQeaStvyTJV9sbXrv+S0xgKT93Z/u1DvTPfz2rTT
/d9qbFF3uy95/w++8/kG+/8M8i51vtm4fIMnfWnUXH34dLVLhKy1qGStvzjf
LfJNltWurSDLa0NM+Xj5+uXTl8/PsszWq50XLyCK+Ofzly/j8O9Ofxj+fP4i
/vnsBZ5m2Xw+V3pJ2pJ3WXa1Marp28Z5o9xKdRvrVWUqp/D/zqnC+Ly1S6O0
qs1WOVHE7rYxURs//T5tXCh1RXulK+qydFveVgcTMIoGq0J3WpFmrZmObuva
L6rR3QarRGsxHnLLIVZQ1tc5E6N8n2+UxpI4pe8rEHMNQtdmpojGip7gFJW+
ob/p/Fqtwd1admx0C5F3psU2wrfKFkVpsuwxTt61ruh5H+JiZFvTOuKl/+YM
U7/8EjTh11+ZeYE3w/n/H7Hyna5vlW6a0ubCBEWnbY3vTIE/VWdglqZrbwO5
ees8cZToVLo1qnYdnIqqiKbpVKP5UWGvbdHrEiML8y9+XHGmln0HFid8AZMa
Yjc2qBwW37gS0rC5amxO/oQ4g4VvdNWUbCST2bnry0KxhYAt6oikHMbOIrNo
UqPzL6ZTxdaUpepsBSabG2iBNZBxMT3j8Yz3EAYfWDK+GRd7cC1M11FKqZCm
C7P137smFIuEtnFNXJ4G0wazoE5bC+HQQ2K5enOhthvIhZ+YG7h/LLjVk0OT
E/iA9+2uLojueYQayEUvwfWgqYiWs7BuSvwx75LrdunqORsOYuStKKHoDHFj
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
FSFU4nZBpaGaPXeIp8ZOJx686f56PmEl5fSTXmMSJ80P8NWba07pdMm9Q4QX
o2uhJrnx6eyhHZMWgKnhTMOXOM4peeJ6QrmDuzDFfwsRuhamTQjZc/UxWA5N
nNKIyLDM1IH7erd9LTkBXbxyjCKO0FUs0S4qsXFbYlEUJQmJft3iyh6udt3D
+OH9JSSJucB4WsDA/DYmIfvkBpWKabO5gbLFsyPxCA3cj9Unk/ct6dbrSUdZ
lp0D4kCklmxFrkB2bJb1Pukox+FCnX/AJ9Tq6Emk3LZN7eutSwobJighQlzs
wJUfodj1BgjL+pK6oHe6wukinZI44ufXUEgBRA916661+ZdgJWKJ3Jw3rf4n
ZXGg0YDquDsOXki3yXKV/mKG2rwpwnGJZBpXwpvDD2MhOpmTPmsOR7O9+OMH
qzS179uhT5P0PY4VgoO75l+xhYJdxAoUluGAwB1xeY8lquyKNoQarm2IvVy9
uqCLIv7pGcNUqUSH31IVLu855BLoDfNEqzx1i1q/iQFZTyPYeVrBGpOTIbiN
ZdWIN4hmrlnSDxEwjUvBuoINvcKyJAX6BRpcORkMVOoCSyIwQ/OGVx8NmHjZ
w0WER/j8AxEoiYapOAAA

-->

</rfc>
