<?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.29 (Ruby 2.6.10) -->
<?rfc docmapping="yes"?>
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-nfsv4-uncacheable-directories-01" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Uncacheable Dirents">Adding an Uncacheable Directory-Entry Metadata Attribute to NFSv4.2</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-nfsv4-uncacheable-directories-01"/>
    <author initials="T." surname="Haynes" fullname="Thomas Haynes">
      <organization>Hammerspace</organization>
      <address>
        <email>loghyr@gmail.com</email>
      </address>
    </author>
    <date/>
    <area>General</area>
    <workgroup>Network File System Version 4</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 62?>

<t>Network File System version 4.2 (NFSv4.2) clients commonly cache
directory entries (dirents) to improve performance. While effective
in many cases, such caching can prevent servers from enforcing
per-user access controls on directory entries and up-to-date directory
entry attributes such as size and timestamps.  This document
introduces a new uncacheable directory attribute for NFSv4.2 that
allows servers to advise clients that caching of directory entry
metadata is unsuitable.  This enables servers to present directory
contents based on user-specific access permissions while remaining
compatible with existing NFSv4.2 clients.</t>
    </abstract>
    <note>
      <name>Note to Readers</name>
      <?line 75?>

<t>Discussion of this draft takes place
on the NFSv4 working group mailing list (nfsv4@ietf.org),
which is archived at
<eref target="https://mailarchive.ietf.org/arch/search/?email_list=nfsv4"/>. Source
code and issues list for this draft can be found at
<eref target="https://github.com/ietf-wg-nfsv4/uncacheable-directories"/>.</t>
      <t>Working Group information can be found at <eref target="https://github.com/ietf-wg-nfsv4"/>.</t>
    </note>
  </front>
  <middle>
    <?line 86?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Clients of remote filesystems commonly cache directory entries
(dirents) to improve performance. This caching is typically shared
across users on the client and assumes that directory contents and
access permissions are uniform across users.</t>
      <t>In this document, the term directory is used to describe the context
in which directory entries are retrieved. The uncacheable directory
attribute applies to the caching of directory entry (dirent) metadata,
including names and associated file object metadata such as size
and timestamps. It does not prohibit caching of the directory object
itself, nor does it affect caching of file data.</t>
      <t>Access Based Enumeration (ABE) <xref target="MS-ABE"/>, as implemented in the Server
Message Block (SMB) <xref target="MS-SMB2"/> and deployed in implementations such
as Samba <xref target="Samba"/>, restricts directory visibility based on the
access permissions of the requesting user.  Implementing similar
behavior in NFSv4.2 requires server involvement, as clients may not
have sufficient information to evaluate permissions based on identity
mappings, ACLs, or server-local policy.</t>
      <t>Even in the absence of ABE, caching of directory entry metadata can
result in incorrect size and timestamp information when files are
modified concurrently, reducing the effectiveness of uncacheable
file data semantics when directory entry metadata is stale.</t>
      <t>This document introduces the uncacheable directory attribute to
NFSv4.2 to implement ABE. As such, it is an <bcp14>OPTIONAL</bcp14> to implement
attribute for NFSv4.2. If both the client and the server support
this attribute, the client is advised to bypass caching of directory
entries for directories marked as uncacheable.</t>
      <t>The uncacheable directory entry attribute is read-write and per
directory object. The data type is bool.</t>
      <t>Allowing clients to set this attribute provides a portable mechanism
for establishing directory access semantics at creation time without
requiring out-of-band administrative configuration. The server
remains authoritative for the attribute value, and existing NFSv4
authorization mechanisms apply.</t>
      <t>A client can determine whether the uncacheable directory attribute
is supported for a given directory by issuing a GETATTR request and
examining the returned attribute list.</t>
      <t>The only way that the server can determine that the client supports
the attribute is if the client sends either a GETATTR or a SETATTR
with the uncacheable directory attribute.</t>
      <t>The uncacheable directory attribute governs caching behavior of
directory-entry metadata returned by READDIR and related operations,
not the directory object itself. The primary purpose of the uncacheable
directory attribute is to ensure correctness of directory-entry
metadata as determined by the server. Performance considerations
are secondary and <bcp14>MUST NOT</bcp14> override the requirement to present
accurate, up-to-date directory entry information.</t>
      <t>Suppressing caching of file data alone is insufficient to guarantee
correct behavior if directory-entry metadata such as size and
timestamps remains cached. The uncacheable directory attribute
complements the uncacheable file data attribute by ensuring metadata
correctness.</t>
      <t>Using the process detailed in <xref target="RFC8178"/>, the revisions in this document
become an extension of NFSv4.2 <xref target="RFC7862"/>. They are built on top of the
external data representation (XDR) <xref target="RFC4506"/> generated from
<xref target="RFC7863"/>.</t>
      <section anchor="definitions">
        <name>Definitions</name>
        <dl>
          <dt>Access Based Enumeration (ABE)</dt>
          <dd>
            <t>When servicing a READDIR or GETATTR operation, the server provides
results based on the access permissions of the user making the request.</t>
          </dd>
          <dt>dirent</dt>
          <dd>
            <t>A directory entry representing a file or subdirectory and its
associated attributes.</t>
          </dd>
          <dt>dirent caching</dt>
          <dd>
            <t>A client-side cache of directory entry names and associated file
object metadata, used to avoid repeated directory lookup and attribute
retrieval.</t>
          </dd>
        </dl>
        <t>This document assumes familiarity with NFSv4.2 operations, attributes,
and error handling as defined in <xref target="RFC8881"/> and <xref target="RFC7862"/>.</t>
      </section>
      <section anchor="requirements-language">
        <name>Requirements Language</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>
    <section anchor="caching-of-dirents">
      <name>Caching of Dirents</name>
      <t>With a remote filesystem, the client typically caches directory
entries (dirents) locally to improve performance. This cooperation
succeeds because both the server and client operate under POSIX
semantics (<xref target="POSIX.1"/>) and agree to interpretation of mode bits with
respect to the uid and gid in NFSv3 <xref target="RFC1813"/>. For NFSv4.2, these
would respectively be the mode, owner, and owner_group attributes
defined in <xref section="5" sectionFormat="of" target="RFC8881"/>.  Note that this cooperation
does not apply to Access Control List (ACLs) entries as NFSv4.2
does not implement a strict POSIX style ACL.</t>
      <t>NFSv4.2 does implement NFSv4.1 ACLs, which are enforced on the
server and not the client. As such, ACL enforcement requires the
client to bypass the dirent cache to have checks done when a new
user attempts to access the dirent.</t>
      <t>Another consideration is that not all server implementations natively
support SMB. Instead, they layer Samba on top of the NFSv4.2 service.
The attributes of hidden, system, and offline have already been
introduced in the NFSv4.2 protocol to support Samba.  The Samba
implementation can utilize these attributes to provide SMB semantics.
While private protocols can supply these features, it is better to
drive them into open standards.</t>
      <t>Another concept that can be adapted from SMB is that of ABE If a
a directory has ABE enabled, then the user can only see the
files and sub-directories for which they have permissions.</t>
      <t>Under the POSIX model, this can be done on the client and not the
server. However, that only works with uid, gid, and mode bits.  If
we consider identity mappings, ACLs, and server local policies,
then the determination of ABE and directory entry visibility is
best performed on the server.</t>
      <t>Since cached dirents are shared by all users on a client, and the
client cannot determine access permissions for individual dirents,
all users are presented with the same set of attributes. To address
this, this document introduces the new uncacheable directory
attribute. This attribute advises the client not to cache directory
entry metadata for a file or directory object. Consequently, each
time a client queries for these attributes, the server's response
can be tailored to the specific user making the request.</t>
      <t>This attribute does not define behavior for positive or negative name
caching or for caching of LOOKUP results outside the scope of
directory-entry metadata returned by READDIR and related operations.</t>
      <t>Directory delegations do not address per-user directory-entry metadata
visibility and therefore cannot replace the semantics defined by
the uncacheable directory attribute.</t>
      <section anchor="sec_dirents">
        <name>Uncacheable Dirents</name>
        <t>If a file object or directory has the uncacheable directory attribute
set, the client is advised not to cache directory entry metadata.
In such cases, the client retrieves directory entry attributes from
the server for each request, allowing the server to evaluate access
permissions based on the requesting user.  Clients are advised not
to share cached dirent attributes between different users.</t>
        <t>Servers <bcp14>MUST</bcp14> assume that clients which do not query or set this
attribute may cache directory-entry metadata, and therefore <bcp14>MUST
NOT</bcp14> rely on this attribute for correctness unless client support
is confirmed.</t>
      </section>
    </section>
    <section anchor="xdr-for-uncacheable-dirents-attribute">
      <name>XDR for Uncacheable Dirents Attribute</name>
      <sourcecode type="xdr"><![CDATA[
///
/// typedef bool            fattr4_uncacheable_directory;
///
/// const FATTR4_UNCACHEABLE_DIRECTORY   = 88;
///
]]></sourcecode>
    </section>
    <section anchor="extraction-of-xdr">
      <name>Extraction of XDR</name>
      <t>This document contains the external data representation (XDR)
<xref target="RFC4506"/> description of the uncacheable directory attribute.  The XDR
description is presented in a manner that facilitates easy extraction
into a ready-to-compile format. To extract the machine-readable XDR
description, use the following shell script:</t>
      <sourcecode type="shell"><![CDATA[
#!/bin/sh
grep '^ *///' $* | sed 's?^ */// ??' | sed 's?^ *///$??'
]]></sourcecode>
      <t>For example, if the script is named 'extract.sh' and this document is
named 'spec.txt', execute the following command:</t>
      <sourcecode type="shell"><![CDATA[
sh extract.sh < spec.txt > uncacheable_prot.x
]]></sourcecode>
      <t>This script removes leading blank spaces and the sentinel sequence '///'
from each line. XDR descriptions with the sentinel sequence are embedded
throughout the document.</t>
      <t>Note that the XDR code contained in this document depends on types from
the NFSv4.2 nfs4_prot.x file (generated from <xref target="RFC7863"/>).  This includes
both nfs types that end with a 4, such as offset4, length4, etc., as
well as more generic types such as uint32_t and uint64_t.</t>
      <t>While the XDR can be appended to that from <xref target="RFC7863"/>, the code snippets
should be placed in their appropriate sections within the existing XDR.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>For a given user A, a client <bcp14>MUST NOT</bcp14> make access decisions for
uncacheable dirents retrieved for another user B. These decisions
<bcp14>MUST</bcp14> be made by the server.  If the client is Labeled NFS aware
(<xref target="RFC7204"/>), then the client <bcp14>MUST</bcp14> locally enforce the MAC security
policies.</t>
      <t>The uncacheable directory attribute allows dirents to be annotated
such that attributes are presented to the user based on the server's
access control decisions.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="RFC4506">
          <front>
            <title>XDR: External Data Representation Standard</title>
            <author fullname="M. Eisler" initials="M." role="editor" surname="Eisler"/>
            <date month="May" year="2006"/>
            <abstract>
              <t>This document describes the External Data Representation Standard (XDR) protocol as it is currently deployed and accepted. This document obsoletes RFC 1832. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="67"/>
          <seriesInfo name="RFC" value="4506"/>
          <seriesInfo name="DOI" value="10.17487/RFC4506"/>
        </reference>
        <reference anchor="RFC4949">
          <front>
            <title>Internet Security Glossary, Version 2</title>
            <author fullname="R. Shirey" initials="R." surname="Shirey"/>
            <date month="August" year="2007"/>
            <abstract>
              <t>This Glossary provides definitions, abbreviations, and explanations of terminology for information system security. The 334 pages of entries offer recommendations to improve the comprehensibility of written material that is generated in the Internet Standards Process (RFC 2026). The recommendations follow the principles that such writing should (a) use the same term or definition whenever the same concept is mentioned; (b) use terms in their plainest, dictionary sense; (c) use terms that are already well-established in open publications; and (d) avoid terms that either favor a particular vendor or favor a particular technology or mechanism over other, competing techniques that already exist or could be developed. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="FYI" value="36"/>
          <seriesInfo name="RFC" value="4949"/>
          <seriesInfo name="DOI" value="10.17487/RFC4949"/>
        </reference>
        <reference anchor="RFC7204">
          <front>
            <title>Requirements for Labeled NFS</title>
            <author fullname="T. Haynes" initials="T." surname="Haynes"/>
            <date month="April" year="2014"/>
            <abstract>
              <t>This memo outlines high-level requirements for the integration of flexible Mandatory Access Control (MAC) functionality into the Network File System (NFS) version 4.2 (NFSv4.2). It describes the level of protections that should be provided over protocol components and the basic structure of the proposed system. The intent here is not to present the protocol changes but to describe the environment in which they reside.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7204"/>
          <seriesInfo name="DOI" value="10.17487/RFC7204"/>
        </reference>
        <reference anchor="RFC7862">
          <front>
            <title>Network File System (NFS) Version 4 Minor Version 2 Protocol</title>
            <author fullname="T. Haynes" initials="T." surname="Haynes"/>
            <date month="November" year="2016"/>
            <abstract>
              <t>This document describes NFS version 4 minor version 2; it describes the protocol extensions made from NFS version 4 minor version 1. Major extensions introduced in NFS version 4 minor version 2 include the following: Server-Side Copy, Application Input/Output (I/O) Advise, Space Reservations, Sparse Files, Application Data Blocks, and Labeled NFS.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7862"/>
          <seriesInfo name="DOI" value="10.17487/RFC7862"/>
        </reference>
        <reference anchor="RFC7863">
          <front>
            <title>Network File System (NFS) Version 4 Minor Version 2 External Data Representation Standard (XDR) Description</title>
            <author fullname="T. Haynes" initials="T." surname="Haynes"/>
            <date month="November" year="2016"/>
            <abstract>
              <t>This document provides the External Data Representation (XDR) description for NFS version 4 minor version 2.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7863"/>
          <seriesInfo name="DOI" value="10.17487/RFC7863"/>
        </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>
        <reference anchor="RFC8178">
          <front>
            <title>Rules for NFSv4 Extensions and Minor Versions</title>
            <author fullname="D. Noveck" initials="D." surname="Noveck"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>This document describes the rules relating to the extension of the NFSv4 family of protocols. It covers the creation of minor versions, the addition of optional features to existing minor versions, and the correction of flaws in features already published as Proposed Standards. The rules relating to the construction of minor versions and the interaction of minor version implementations that appear in this document supersede the minor versioning rules in RFC 5661 and other RFCs defining minor versions.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8178"/>
          <seriesInfo name="DOI" value="10.17487/RFC8178"/>
        </reference>
        <reference anchor="RFC8881">
          <front>
            <title>Network File System (NFS) Version 4 Minor Version 1 Protocol</title>
            <author fullname="D. Noveck" initials="D." role="editor" surname="Noveck"/>
            <author fullname="C. Lever" initials="C." surname="Lever"/>
            <date month="August" year="2020"/>
            <abstract>
              <t>This document describes the Network File System (NFS) version 4 minor version 1, including features retained from the base protocol (NFS version 4 minor version 0, which is specified in RFC 7530) and protocol extensions made subsequently. The later minor version has no dependencies on NFS version 4 minor version 0, and is considered a separate protocol.</t>
              <t>This document obsoletes RFC 5661. It substantially revises the treatment of features relating to multi-server namespace, superseding the description of those features appearing in RFC 5661.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8881"/>
          <seriesInfo name="DOI" value="10.17487/RFC8881"/>
        </reference>
        <reference anchor="RFC9754">
          <front>
            <title>Extensions for Opening and Delegating Files in NFSv4.2</title>
            <author fullname="T. Haynes" initials="T." surname="Haynes"/>
            <author fullname="T. Myklebust" initials="T." surname="Myklebust"/>
            <date month="March" year="2025"/>
            <abstract>
              <t>The Network File System v4 (NFSv4) allows a client to both open a file and be granted a delegation of that file. This delegation provides the client the right to authoritatively cache metadata on the file locally. This document presents several extensions for both opening the file and delegating it to the client. This document extends NFSv4.2 (see RFC 7863).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9754"/>
          <seriesInfo name="DOI" value="10.17487/RFC9754"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="MS-ABE" target="https://techcommunity.microsoft.com/blog/askds/access-based-enumeration-abe-concepts-part-1-of-2/400435">
          <front>
            <title>Access-Based Enumeration (ABE) Concepts</title>
            <author>
              <organization>Microsoft</organization>
            </author>
            <date year="2009" month="May"/>
          </front>
        </reference>
        <reference anchor="MS-SMB2" target="https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-smb2/">
          <front>
            <title>Server Message Block (SMB) Protocol Versions 2 and 3</title>
            <author>
              <organization>Microsoft Corporation</organization>
            </author>
            <date>n.d.</date>
          </front>
          <seriesInfo name="Microsoft" value="MS-SMB2"/>
        </reference>
        <reference anchor="POSIX.1">
          <front>
            <title>The Open Group Base Specifications Issue 7</title>
            <author>
              <organization>IEEE</organization>
            </author>
            <date year="2013"/>
          </front>
          <seriesInfo name="IEEE Std 1003.1, 2013 Edition" value=""/>
        </reference>
        <reference anchor="RFC1813">
          <front>
            <title>NFS Version 3 Protocol Specification</title>
            <author fullname="B. Callaghan" initials="B." surname="Callaghan"/>
            <author fullname="B. Pawlowski" initials="B." surname="Pawlowski"/>
            <author fullname="P. Staubach" initials="P." surname="Staubach"/>
            <date month="June" year="1995"/>
            <abstract>
              <t>This paper describes the NFS version 3 protocol. This paper is provided so that people can write compatible implementations. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1813"/>
          <seriesInfo name="DOI" value="10.17487/RFC1813"/>
        </reference>
        <reference anchor="Samba" target="https://www.samba.org/">
          <front>
            <title>Samba Project</title>
            <author>
              <organization>Samba Team</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 324?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Trond Myklebust, Mike Snitzer, Jon Flynn, Keith Mannthey, and Thomas
Haynes all worked on the prototype at Hammerspace.</t>
      <t>Rick Macklem, Chuck Lever, and Dave Noveck reviewed the document.</t>
      <t>Chris Inacio, Brian Pawlowski, and Gorry Fairhurst helped guide
this process.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAD1TaWkAA61a7XLbxpL9P08x17lVtlIk9WElUbhJfGlJjrVXsr2ivEkq
lVUNgSGJFQhgMYBoxus8yz7LPtme7p7BB0Ul/rGpSgKB89Hd0336dA+Gw6Gq
kiq1Yz2J4yRbaJPp91lkoqU1s9Tqs6S0UZWXm+F5VpUbfWUrE5vK6ElVlcms
rqyucv3m1fT+eHSkzGxW2vvxgxWyyqk4jzKzwkZxaebVMLHVfJjN3f3xsG5H
D2O/X2Ld8OBQRaayC+w+1q6KFTbG/I9nk5vzTyrKM2czV7uxrsraqqQo+clV
RwcH3x5AmNKasf7RZrY0qVrn5d2izOtirN/Yiv7SrxKIN924yq70v9vSJXmm
j9Wd3eDXeKwvssqWma2GZySwUq4yWXxr0jyDEBvrVJGM9a9VHg20y8uqtHOH
p81KHqDuyhQFTDrQUb5akQ1+U8rU1TIvx0oPlcY/SQbxb0b6tdlkWJFeiZFu
lvnKuO77vFyYLPndVBBzjB+wZOkKE1n+1a5Mko51mi+Wm/IfC/prhG2VyvJy
hTn3Fnvq61enR4eH3/rH468Ovg6P3x6Ht98cHRyHx5Ovj9rH5/7x5PCb4/bx
JDyenBz6x2+/+QoDVJLNu3tfTYeTl+djlja4XBRZ54YvjbOxPs9qaMTq6WcY
uadP8yyyRSXqN4bT3hhjfZVEZe5ynA2vacqFrcZ6WVWFG+/vVzZakuHrLKk2
o1UYS1bZn8FO+8bdxW7fiAwzkmFoWxmGZmaHkZdgWJiyGh4O8/nwaP/44OD4
+Ve8pzjkldlo8jlRcnr18qin5dSW97ZE5DhnFla/TPPoTj/DsD39rszhP3ka
3M/pIwRgrJ//pcowTlnkIioPcJZihmweJjRjx0GsnXZKrSmzLfvYbFi7/bxA
fBU2cvvrJIvztbstvLxuf+WGbjU72seS795OL34eHfZ0vlla/RbT9Y8UcppO
WE+xVDJPIpbZ6Qvnaqu/2RZeX5yfn+tpFevDg4Pno8MBTHv4XJ/HSaPqDrvQ
pM6J8BxxxsOTQ3bcqVnNTP9c6A0dwX8CcR5bWAbdWLPaabz1ej1yNGSE0ftK
DYdDbWauKg2WVLuA5j4AzehIP/O4uaejNCGAYKTIs3SjGRFVQMONxq9kIv0s
FjjdI9hNVjiQe6sLW3KowVlH+qcl7Wbnc8xE6CEMNX6hFZ0lgKqjJa9OYB8B
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

-->

</rfc>
