<?xml version="1.0" encoding="us-ascii"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.3.8 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC8402 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8402.xml">
<!ENTITY RFC8754 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8754.xml">
<!ENTITY RFC8986 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8986.xml">
<!ENTITY I-D.filsfilscheng-spring-srv6-srh-compression SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.filsfilscheng-spring-srv6-srh-compression.xml">
<!ENTITY RFC5095 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5095.xml">
<!ENTITY RFC4193 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4193.xml">
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-clad-spring-srv6-srh-compression-illus-02" category="info">

  <front>
    <title abbrev="Illustrations for Comp SRv6 SL">Illustrations for Compressed SRv6 Segment List Encoding in SRH</title>

    <author initials="F." surname="Clad" fullname="Francois Clad" role="editor">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street></street>
          <country>France</country>
        </postal>
        <email>fclad@cisco.com</email>
      </address>
    </author>
    <author initials="D." surname="Dukes" fullname="Darren Dukes" role="editor">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street></street>
          <country>Canada</country>
        </postal>
        <email>ddukes@cisco.com</email>
      </address>
    </author>

    <date year="2022" month="October" day="24"/>

    <area>General</area>
    <workgroup>SPRING</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document provides illustrations for compressed SRv6 Segment List Encoding in the Segment Routing Header (SRH).</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>This document provides illustrations for <xref target="I-D.filsfilscheng-spring-srv6-srh-compression"/> compressed SRv6 Segment List Encoding in the Segment Routing Header (SRH).</t>

</section>
<section anchor="terminology" title="Terminology">

<t>This document leverages the terminology introduced in <xref target="RFC8402"/>, <xref target="RFC8754"/>, and <xref target="RFC8986"/>. The definition of the most important terms is reproduced in this section for convenience.</t>

<section anchor="from-rfc-8402" title="From RFC 8402">

<t>Segment Routing domain (SR domain): the set of nodes participating in the source-based routing model.  These nodes may be connected to the same physical infrastructure (e.g., a Service Provider's network). They may as well be remotely connected to each other (e.g., an enterprise VPN or an overlay).  If multiple protocol instances are deployed, the SR domain most commonly includes all of the protocol instances in a network.  However, some deployments may wish to subdivide the network into multiple SR domains, each of which includes one or more protocol instances.  It is expected that all nodes in an SR domain are managed by the same administrative entity.</t>

</section>
<section anchor="from-rfc-8754" title="From RFC 8754">

<t>SR Source Node (section 3.1): A SR source node is any node that originates an IPv6 packet with a segment (i.e., SRv6 SID) in the destination address of the IPv6 header.</t>

<t>Transit Node (section 3.2): A transit node is any node forwarding an IPv6 packet where the destination address of that packet is not locally configured as a segment or a local interface. A transit node is not required to be capable of processing a segment or SRH.</t>

<t>SR Segment Endpoint Node (section 3.3): An SR segment endpoint node is any node receiving an IPv6 packet where the destination address of that packet is locally configured as a segment or local interface.</t>

</section>
<section anchor="from-rfc-8986" title="From RFC 8986">

<figure><artwork><![CDATA[
3.1 SID Format:
This document defines an SRv6 SID as consisting of LOC:FUNCT:ARG,
where a locator (LOC) is encoded in the L most significant bits of
the SID, followed by F bits of function (FUNCT) and A bits of
arguments (ARG). L, the locator length, is flexible, and an operator
is free to use the locator length of their choice. F and A may be
any value as long as L+F+A <= 128. When L+F+A is less than 128, then
the remaining bits of the SID MUST be zero.

A locator may be represented as B:N where B is the SRv6 SID block
(IPv6 prefix allocated for SRv6 SIDs by the operator) and N is the
identifier of the parent node instantiating the SID.
]]></artwork></figure>

</section>
</section>
<section anchor="intra-sr-domain-deployment-model" title="Intra-SR-Domain Deployment Model">
<t>(The content of this section is a partial reproduction of section 5 for <xref target="RFC8754"/>.)</t>

<t>The use of the SIDs exclusively within the SR domain and solely for packets of the SR domain is an important deployment model.</t>

<t>This enables the SR domain to act as a single routing system.</t>

<section anchor="securing-the-sr-domain" title="Securing the SR Domain">

<t>(The reader can easily understand that the dual measures provided can prevent SR packets from leaving the SR domain.)</t>

<t>Nodes outside the SR domain are not trusted: they cannot directly use the SIDs of the domain. This is enforced by two levels of access control lists:</t>

<t><list style="symbols">
  <t>Any packet entering the SR domain and destined to a SID within the SR domain is dropped. This may be realized with the following logic. Other methods with equivalent outcome are considered compliant:
  <list style="symbols">
      <t>Allocate all the SIDs from a block S/s</t>
      <t>Configure each external interface of each edge node of the domain with an inbound infrastructure access list (IACL) that drops any incoming packet with a destination address in S/s</t>
      <t>Failure to implement this method of ingress filtering exposes the SR domain to source-routing attacks, as described and referenced in <xref target="RFC5095"/></t>
    </list></t>
  <t>The distributed protection in #1 is complemented with per-node protection, dropping packets to SIDs from source addresses outside the SR domain. This may be realized with the following logic. Other methods with equivalent outcome are considered compliant:
  <list style="symbols">
      <t>Assign all interface addresses from prefix A/a</t>
      <t>At node k, all SIDs local to k are assigned from prefix Sk/sk</t>
      <t>Configure each internal interface of each SR node k in the SR domain with an inbound IACL that drops any incoming packet with a destination address in Sk/sk if the source address is not in A/a.</t>
    </list></t>
</list></t>

</section>
</section>
<section anchor="general-addressing" title="General Addressing">

<t>The illustrations in this document use the IPv6 documentation prefix 2001:db8::/32.</t>

<t>Loopback interface addresses are allocated from the prefix 2001:db8:a::/48.</t>

<t>SRv6 SIDs are allocated from the prefix 2001:db8:b::/48.</t>

<t>An operator deploying this solution could instead select any sub-prefix out of the prefix allocated by their Regional Internet Registry (RIR) to this operator or from the Unique Local Unicast (ULA) prefix. ULA provides the uniqueness and privacy characteristics defined in Section 1 of <xref target="RFC4193"/>.</t>

</section>
<section anchor="next-c-sid-flavor" title="NEXT-C-SID Flavor">

<figure title="Figure 1: Reference topology"><artwork><![CDATA[
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        N11           N13           N15           N17              |
|
 N10                                                            N19|
|
               N12           N14           N16           N18       |
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                             SR domain
]]></artwork></figure>

<t>N10 to N19 represent the potential SR source and SR segment endpoint nodes in the SR domain.</t>

<t>The SR domain may include any number of transit nodes (not shown) between the nodes that are represented in this figure.</t>

<section anchor="addressing-and-srv6-sid-allocation" title="Addressing and SRv6 SID allocation">

<t>Nodes N10 to N19 have a loopback interface configured with the address 2001:db8:a:NN00::, where NN is the node identifier.</t>

<t>Nodes N10 to N19 instantiate the SID 2001:db8:b:NN00::, where NN is the node identifier, with Locator-Block length (LBL) = 48, Locator-Node length (LNL)= 16, Function length (FL) = 0, Argument length (AL) = 64, and bound to the End behavior with the NEXT-C-SID and USD flavors.</t>

<t>The "Endpoint" (or "End") behavior is the most basic operation that can be performed by an SR segment endpoint node (i.e., a node that identifies the destination address of a received packet as matching a locally instantiated SID). It updates the destination address of the packet with the next SID in the segment list. The pseudocode of the End behavior with the NEXT-C-SID and USD flavors is specified in section 4.1.1 of <xref target="I-D.filsfilscheng-spring-srv6-srh-compression"/>.</t>

</section>
<section anchor="routing" title="Routing">

<t>Nodes N10 to N19 advertise the prefixes 2001:db8:a:NN00::/64 and 2001:db8:b:NN00::/64, where NN is the node identifier, in the IGP.</t>

</section>
<section anchor="case-1-intra-domain-traffic-engineering" title="Case 1: Intra-domain Traffic Engineering">

<t>Let us assume that a centralized controller programs N11 to classify the traffic from 2001:db8:a:1000:: to 2001:db8:a:1900:: into an SR Policy encoded through an IPv6 encapsulation with:</t>

<t><list style="symbols">
  <t>IPv6
  <list style="symbols">
      <t>Source address 2001:db8:a:1100::</t>
      <t>Destination address 2001:db8:b:1200:1300:1400:1500:1600</t>
      <t>Next Header = 43 (Routing header)</t>
    </list></t>
  <t>SRH
  <list style="symbols">
      <t>Segment List &lt; 2001:db8:b:1200:1300:1400:1500:1600, 2001:db8:b:1700:1800:: &gt;</t>
      <t>Segments Left = 1</t>
      <t>Next Header = 41 (IPv6)</t>
    </list></t>
</list></t>

<t>For illustration purposes, we use SID allocation that allows for a straightforward human reading of a compressed segment list. Indeed, &lt; 2001:db8:b:1200:1300:1400:1500:1600, 2001:db8:b:1700:1800:: &gt; means: within the domain 2001:db8:b::, go first through node N12 then N13, N14, N15, and N16, then retrieve the next segment list entry from the SRH and go through node N17 before decapsulating the packet at node N18.</t>

<t>This is compliant with the <xref target="RFC8986"/> because the SID meets the Locator:Function:Argument format definition (Section 3.1 of <xref target="RFC8986"/>). For example, the packet sent by node N11 has a destination address 2001:db8:b:1200:1300:1400:1500:1600 where 2001:db8:b:1200/64 is the Locator and 0x1300140015001600 is the Argument.</t>

<t>A packet in transit towards a given SID (e.g. 2001:db8:b:1200:1300:1400:1500:1600), is forwarded by transit nodes via a longest-match lookup on the destination address of the packet. This results in a match of the  SID locator (in this case, 2001:db8:b:1200::/64), the transit node then forwards the packet accordingly. The SID function and argument bits are opaque to transit nodes. The function is only identified at the SR segment endpoint node (represented by the SID locator in the destination address) which further processes the argument.</t>

<t>Also note the source N11 performs IPv6 header encapsulation with SRH, and the selected SID list containing function/arguments to be processed at some endpoints, because we are in a source routed domain within a secured SR domain.</t>

<t>The remainder of this section details the packet journey.</t>

<t>The packet Px transmitted by a node Nn is identified as "@Nn Px".</t>

<figure><artwork><![CDATA[
@N10 P1:(IPv6 2001:db8:a:1000::, 2001:db8:a:1900::)
]]></artwork></figure>

<t>N11 (as programmed by the centralized controller) encapsulates the packet P1 and submits the updated packet (P2) to the IPv6 module for transmission. It performs an IP lookup on the destination address, matching an entry for the prefix 2001:db8:b:1200::/64 advertised by N12. N11 forwards the packet on its shortest path toward to node N12.</t>

<figure><artwork><![CDATA[
@N11 P2:(IPv6 2001:db8:a:1100::, 2001:db8:b:1200:1300:1400:1500:1600)
        (SRH 2001:db8:b:1700:1800::, 
             2001:db8:b:1200:1300:1400:1500:1600;
             SL=1)
        (IPv6 2001:db8:a:1000::, 2001:db8:a:1900::)
]]></artwork></figure>

<t>The transit nodes between N11 and N12 forward P1 as per their route 2001:db8:b:1200::/64 to N12. Similarly, the transit nodes between each subsequent pair of consecutive SR segment endpoint nodes forwards the packet as per their IPv6 routes for the destination address. Those transit nodes are plain IPv6 routers with the plain IPv6 dataplane, they do not need to have any knowledge of SRv6.</t>

<t>The hop limit of packet P1 is decremented at every transit node and every SR segment endpoint node.</t>

<t>When the packet reaches the first SR segment endpoint node N12 (i.e., the first TE waypoint), this performs a longest-prefix-match lookup on the IPv6 destination address. This lookup returns a FIB entry that represents a locally instantiated SRv6 SID bound to the End behavior with the NEXT-C-SID flavor. N12 processes the packet accordingly, resulting in a new destination address. It then submits the updated packet to the IPv6 module for transmission. This triggers an IP lookup on the destination address, matching an entry for the prefix 2001:db8:b:1300::/64 advertised by N13. The packet is forwarded on the shortest path towards N13.</t>

<figure><artwork><![CDATA[
@N12 P2:(IPv6 2001:db8:a:1100::, 2001:db8:b:1300:1400:1500:1600:0000)
        (SRH 2001:db8:b:1700:1800::,
             2001:db8:b:1200:1300:1400:1500:1600;
             SL=1)
        (IPv6 2001:db8:a:1000::, 2001:db8:a:1900::)
]]></artwork></figure>

<t>The subsequent SR segment endpoint nodes N13 to N17 process the packet similarly.</t>

<figure><artwork><![CDATA[
@N13 P2:(IPv6 2001:db8:a:1100::, 2001:db8:b:1400:1500:1600:0000:0000)
        (SRH 2001:db8:b:1700:1800::,
             2001:db8:b:1200:1300:1400:1500:1600;
             SL=1)
        (IPv6 2001:db8:a:1000::, 2001:db8:a:1900::)
]]></artwork></figure>

<figure><artwork><![CDATA[
@N14 P2:(IPv6 2001:db8:a:1100::, 2001:db8:b:1500:1600:0000:0000:0000)
        (SRH 2001:db8:b:1700:1800::,
             2001:db8:b:1200:1300:1400:1500:1600;
             SL=1)
        (IPv6 2001:db8:a:1000::, 2001:db8:a:1900::)
]]></artwork></figure>

<figure><artwork><![CDATA[
@N15 P2:(IPv6 2001:db8:a:1100::, 2001:db8:b:1600:0000:0000:0000:0000)
        (SRH 2001:db8:b:1700:1800::,
             2001:db8:b:1200:1300:1400:1500:1600;
             SL=1)
        (IPv6 2001:db8:a:1000::, 2001:db8:a:1900::)
]]></artwork></figure>

<t>When the packet is processed by the SR segment endpoint node N16, the SID argument value is 0. As per the pseudocode of the End behavior with the NEXT-C-SID and USD flavors, N16 retrieves the next SID by decrementing the value of segments left in the SRH and copying the next entry from the SRH segment list into the destination address.</t>

<figure><artwork><![CDATA[
@N16 P2:(IPv6 2001:db8:a:1100::, 2001:db8:b:1700:1800::)
        (SRH 2001:db8:b:1700:1800::,
             2001:db8:b:1200:1300:1400:1500:1600;
             SL=0)
        (IPv6 2001:db8:a:1000::, 2001:db8:a:1900::)
]]></artwork></figure>

<figure><artwork><![CDATA[
@N17 P2:(IPv6 2001:db8:a:1100::, 2001:db8:b:1800:0000::)
        (SRH 2001:db8:b:1700:1800::,
             2001:db8:b:1200:1300:1400:1500:1600;
             SL=0)
        (IPv6 2001:db8:a:1000::, 2001:db8:a:1900::)
]]></artwork></figure>

<t>When the packet reaches the final SR segment endpoint node N18, both the SID argument value and the segments left value in the SRH are 0. As per the pseudocode of the End behavior with the NEXT-C-SID and USD flavors, N18 decapsulates the packet and sends the inner packet P1 towards its destination 2001:db8:a:1900::.</t>

<figure><artwork><![CDATA[
@N18 P1:(IPv6 2001:db8:a:1000::, 2001:db8:a:1900::)
]]></artwork></figure>

</section>
<section anchor="case-2-icmpv6-error-generation-at-a-transit-node" title="Case 2: ICMPv6 error generation at a transit node">

<t>Let us assume in the previous example that the hop limit expires on a transit node N141, located on the path between the SR segment endpoint nodes N14 and N15.</t>

<t>The packet sent by node N14 is as follows (reproduced from the previous section).</t>

<figure><artwork><![CDATA[
@N14 P2:(IPv6 2001:db8:a:1100::, 2001:db8:b:1500:1600:0000:0000:0000)
        (SRH 2001:db8:b:1700:1800::,
             2001:db8:b:1200:1300:1400:1500:1600;
             SL=1)
        (IPv6 2001:db8:a:1000::, 2001:db8:a:1900::)
]]></artwork></figure>

<t>Node N141 generates an ICMPv6 time exceeded error message as follows.</t>

<figure><artwork><![CDATA[
@N141 P3: (IPv6 <any address of node N141>, 2001:db8:a:1100::)
          (ICMPv6 time exceeded error
            (IPv6 2001:db8:a:1100::,
                  2001:db8:b:1500:1600:0000:0000:0000)
            (SRH 2001:db8:b:1700:1800::,
                 2001:db8:b:1200:1300:1400:1500:1600;
                 SL=1)
            (IPv6 2001:db8:a:1000::, 2001:db8:a:1900::))
]]></artwork></figure>

<t>Node N11 receives the ICMP error packet transmitted by N141. Section 5.4 of <xref target="RFC8754"/> indicates that a destination address of the invoking packet is determined by looking at Segment List[0].</t>

</section>
<section anchor="case-3-ping-a-sid" title="Case 3: Ping a SID">

<t>The operator wants to ping the End with NEXT-C-SID flavor SID 2001:db8:b:1200:: of N12 from the SR source node N10.</t>

<t>The ICMP echo request is sent by N10 as follows.</t>

<figure><artwork><![CDATA[
@N10 P1:(IPv6 2001:db8:a:1000::, 2001:db8:b:1200::)
        (ICMPv6 echo request)
]]></artwork></figure>

<t>This results in an ICMP echo reply from N12 to N10.</t>

<figure><artwork><![CDATA[
@N12 P2:(IPv6 2001:db8:b:1200::, 2001:db8:a:1000::)
        (ICMPv6 echo reply)
]]></artwork></figure>

</section>
</section>
<section anchor="replace-c-sid-flavor" title="REPLACE-C-SID Flavor">

<t>TBD</t>

</section>
<section anchor="security-considerations" title="Security Considerations">

<t>This document introduces no new security consideration.</t>

</section>
<section anchor="iana-considerations" title="IANA Considerations">

<t>This document introduces no new IANA considerations.</t>

</section>
<section anchor="acknowledgements" title="Acknowledgements">

<t>TBD</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC8402;
&RFC8754;
&RFC8986;
&I-D.filsfilscheng-spring-srv6-srh-compression;


    </references>

    <references title='Informative References'>

&RFC5095;
&RFC4193;


    </references>



  </back>

<!-- ##markdown-source:
H4sIAJnmVmMAA+Vba3Mjt7H9zl+B2v0QMSa5pF6r5bVzrZVWtqpkRiVpc29V
kg/gDEgiGg6YwQwlerP+7TndAObBhyx5nZu4ruxVkTMDoNGP06cbo26328p1
nqihuEySwuaZzLVJrZiYTJyZ+SJT1qpY3N4sj8Wtms5VmosrbXPxIY1MrNOp
0Cnuft+S43Gmlrum8RNctWITpXKO5eJMTvJulMi4axcZJurabHmMX7Nu5NfF
DF1N03X7+61Y5mrYivB7arLVEMtOTKulF9lQ5BlW3O/33+ExmSk5FN+pVGUy
aT2Y7H6amWIxFLfXN5ej71r3aoWLMeRMc5WlKu+ekyCtltvNUGA1aSOtWws9
FH/OTdQR1mR5piYWn1Zz+vDXVksW+cxkw5botgRksUNx0RNn2A2+ug1eZBIq
0jZcNdlUpvpHVsxQnGkbGXG7srmaY+LLNOrhmcyQJVSsc5Phq5pLnQzFhLT0
bUQjetANbkSmSHPSAi+ialKc98R5ca9sKca5zDKVlhd/uRRxTFNsF+NMpjKW
rVZqsjmmXsJSQtxcnJ0c9vfDx7dHh+Hju5Nj+njZPe9NdGLpXzRT5AK7PWEI
Y8Pk5fytbrcr5JhcLYL57mbQNJyrYA9dZGapY2WF3vDG6LlOnc9UefPGFDld
/l7JWGViDw7f7jkR5jqOE9VqvSaPykxcRLTWCwT69OlFevj8+Vfdwmtxp7K5
Tk1ipqt1qRO1RBhNITbNlFcPYnK3V4iAdT598rb+/Lnjv8Da9EWmsb8Am3/+
3BN3mChWE51q0oAwE556biC5ni8QaBLr0kpQlRWZWtSWyUk4q1jB3pbpUqVa
IQRoK68RDmZOHiZImFZrfe+xgSuntHf/sT3k5a3KSZLUkIUWMst1pBcyr2nR
miKLVHcsSemZn26O55OeoD1Z5UfP5UqMFUmWQlA8nBs3AYJRLGYrqyOZEHhl
Em4AZykyJfZUb9qDsmCsbKkjJa6du2S/swIQRSjWZtWteH5pxYNKElonU3OT
q2TVXFDJaCYMls3KqVOhCPDgVxD1T9cjAAFdNDBwIleYXVxOxLxIcr1IFLkr
kM+QoDYnhLECwArDLRKzUnHHeVbQojMfvHJu0oR8I0oK0oWEjN7AWybEOBl2
h+W/Nw/kbYS287ASGc+p9EHbGe3MFuNYk2p4Vj+avNFUwpdyAdGcJibiYabx
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
coXtFKRds5Jq7Ol64A4GivFce4x0XLSksXvX++1A4lnOuYmLhM9Pw86Z1jGP
LT2ECcjPh3mnRpHTkDdo4q0NmjJ8K4LIG0fS6rGDboteCjPsDGVkhr3TsSRl
DEY82lbIepVJBuJ6f4tJBmsmeQIRywKd3mnZkag7olnGP2Pe/2qOuL36ZlBb
6qU+dLeGf7YssUkFLt/vB42yn1gyr+9bcZxttw1zeBjkVs91IrNktYm11Vrc
/YT3WUVNKbKO5likTi5ilt9S2N1p2IrWdTFZKSyrLf1qixsSLBu7LiNhyyIh
HKmmyWxFOWr3EDESX1PHBVYAGW6jolxgJ3O9hHQl7lPzkPCZBfZIfQgPJjOz
ADYiBPmUvwxN6qeqKAt9eUAhvZHSTLBsKnd5l6KwCB/d1rSUkeI9FDgauDPj
kBv4srh6+u6DeJArfopzqba12C+TvQvhrTnfqW27KfiVAX4YRBOYS1NeXL73
+MCsu8yCdmdtXR4Vv6gN4areHu+6mSE32UDHMxL/Wha9PPSwfU+XuaMXT+Ds
syCWdQPuPZ2SJ/5rQPZgF8ge+JZC+V5HRfr84ttA1vLIEl33n42umwA4BKQ9
E13/A8C1hmq7EYx62QyYb4O3NYqJAKGV/g6erb9N1f129Oc3e/jszW7u8ze3
2aNnb3Zzn7+dza4nIm1rXD/UM7tT0XGnrHjKosu9tYSJ+j1xWmb/X6H12eFz
nNDssM2WK2Qtc3NoWjhJ+PUd33lKqPNUHoi4PkhkFqswgqfb0i9p9FO437eL
upT+c/xs/6m84f/MZfpfHh9vn72/kxAVv439Pc3NUn/ytiMgTlAOG+/JW6Ki
qsLrDukjpuaWoLr/iug5qXX21mgUVZ3YjLuo01RlNeIbqANxpbrTb6iwcv+T
X1RJl13//aG4PPuBe+ZZhg1O+a0HF2nU269T7vX2v1ckvXamTWFDX1CU76pV
9F49LnTG73uvzUm91kFHhBcETPAIqLl+9PkUkzj0VdtRs0Ox1pHk1qG0/jUb
6xpK/k8a6i9HuK34dki79/8sJ4+CSYIj+PfYnYvkmhpSjxHKO2jNOcwcYCyn
qqbams4G4vpg6KX4mgrBWpuztP4fOpsabdd2tbd79cbedxlny3sDLzLXy0z2
y8y2aboXmq9pv0E4lXUwQwr05gpVV7N3R2bolS+8HPUOq8Y/v32LUI915LGM
ceGJ3rVOl+a+9lYWV/Pub5bcalS5uff6Gmdff/lz/y9/rZ9IwnWu3SkyYNbF
dvk60IP0TdNFoBSE0wzPG1Xt+nsErmdD4nKrp+IfjT/tGA36HlCc+qKZ4T9R
oDqPG6YOXqiXuc33n9nhDNLUY9bjcW3BsrxaOw1IG7ItEs+m+DTL+B08UYCG
xTubIu6UB4uUOUTcfLi+Oj37sPYa1N37c7rpXnbOV/Q+IL+e6F6ZW//btvIv
2OgVPG4l2DAwqg/kv5G7PB2dvng+HtSYy/Jkp1HZl2KS4CT/J4ZlzimKOwAA

-->

</rfc>

