<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.14 (Ruby 3.3.7) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-gallagher-openpgp-user-attributes-00" category="std" consensus="true" submissionType="IETF" updates="9580" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title>User Attributes in OpenPGP</title>

    <author fullname="Andrew Gallagher" role="editor">
      <organization>PGPKeys.EU</organization>
      <address>
        <email>andrewg@andrewg.com</email>
      </address>
    </author>

    <date year="2025" month="February" day="11"/>

    <area>int</area>
    <workgroup>openpgp</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 46?>

<t>This document updates the specification of User Attribute Packets and Subpackets in OpenPGP.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://andrewgdotcom.gitlab.io/openpgp-user-attributes"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-gallagher-openpgp-user-attributes/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        OpenPGP Working Group mailing list (<eref target="mailto:openpgp@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/openpgp/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/openpgp/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://gitlab.com/andrewgdotcom/openpgp-user-attributes"/>.</t>
    </note>


  </front>

  <middle>


<?line 50?>

<section anchor="introduction"><name>Introduction</name>

<t>User Attributes are a much-maligned and often-abused feature of OpenPGP.
Currently their only specified use is to contain images, however it is known that some implementations use the Private and Experimental User Attribute Subpacket range for various internal purposes.</t>

<t>In this document, we simplify the specification of User Attribute packets and subpackets, and use them to implement currently-missing functionality in OpenPGP.</t>

</section>
<section anchor="conventions-definitions"><name>Conventions and Definitions</name>

<t>The term "OpenPGP Certificate" is used in this document interchangeably with "OpenPGP Transferable Public Key", as defined in <xref section="10.1" sectionFormat="of" target="RFC9580"/>.</t>

<t>The term "Component key" is used in this document to mean either a primary key or subkey.</t>

<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="user-attribute-subpackets"><name>User Attribute Subpackets</name>

<t>User Attribute Packets are simple containers for one or more User Attribute Subpackets.
These subpackets are wire-format compatible with Signature Subpackets, but the only currently defined type is the Image Attribute Subpacket type.
As a result, a User Attribute Packet is currently only used to contain an Image Attribute Subpacket.</t>

<section anchor="user-attribute-subpacket-categories"><name>User Attribute Subpacket Categories</name>

<t>By analogy with the categorisation of Signature Subpacket Types in <xref section="7" sectionFormat="of" target="I-D.gallagher-openpgp-signatures"/>, we categorise User Attribute Subpacket Types into:</t>

<section anchor="general-subpackets"><name>General Subpackets</name>

<t>These may be included in any User Attribute packet, and define properties of the packet itself.
Unless otherwise specified, a User Attribute Packet <bcp14>SHOULD NOT</bcp14> contain more than one of each type of General subpacket.</t>

</section>
<section anchor="attribute-value-subpackets"><name>Attribute Value Subpackets</name>

<t>These carry the non-metadata content of the User Attribute.
Unless otherwise specified, a User Attribute Packet <bcp14>SHOULD NOT</bcp14> contain more than one Attribute Value subpacket.
A User Attribute Packet <bcp14>MUST NOT</bcp14> contain subpackets of more than one type of Attribute Value subpacket.</t>

</section>
</section>
<section anchor="image-attribute-subpacket"><name>Image Attribute Subpacket</name>

<t>The Image Attribute Subpacket (Type 1, Attribute Value category) has some unusual features, and is wildly over-specified:</t>

<t><list style="symbols">
  <t>The image header has a little-endian length field, uniquely for OpenPGP.</t>
  <t>It has a version octet that represents an entire registry but with only one version specified.</t>
  <t>It has an encoding format octet that represents an entire registry with only one value specified.</t>
  <t>The v1 image header has a further 12 octets of unused fields.</t>
</list></t>

<t>The Image Attribute Subpacket has been abused to store large amounts of data on the OpenPGP keyservers, and as a result most modern keyservers refuse to handle any User Attribute packets.
Further, we wish to minimise the quantity of human-readable information in the OpenPGP wire format.
If a key owner wishes to publish an image, this is more appropriately handled at the application layer.</t>

<t>The use of Image Attribute subpackets is therefore deprecated:</t>

<t><list style="symbols">
  <t>Code point 1 in the User Attribute Subpacket Registry should be updated to "Image Attribute Subpacket (deprecated)", with a category of "Attribute Value".</t>
  <t>No further Image Attribute versions or encoding formats will be supported; the values of both these fields are hereby fixed at 1.</t>
  <t>The OpenPGP Image Attribute Versions and OpenPGP Image Attribute Encoding Formats registries should be deleted.</t>
</list></t>

<t>A User Attribute packet <bcp14>MUST NOT</bcp14> contain more than one Image Attribute subpacket.</t>

</section>
<section anchor="attribute-creation-time-subpacket"><name>Attribute Creation Time Subpacket</name>

<t>We define an Attribute Creation Time subpacket (Type 2, General category) that identifies the time before which the User Attribute packet is not valid.
It contains a four-octet timestamp in seconds since midnight, 1st January 1970.
It is bitwise-identical to the Signature Creation Time Signature Subpacket (<xref section="5.2.3.11" sectionFormat="of" target="RFC9580"/>), and performs the same function as the "creation time" field in a Public Key or Public Subkey packet (<xref section="5.5.2" sectionFormat="of" target="RFC9580"/>).</t>

<t>A User Attribute packet <bcp14>MUST NOT</bcp14> contain more than one Attribute Creation Time subpacket.</t>

</section>
<section anchor="attribute-uri-subpacket"><name>Attribute URI Subpacket</name>

<t>We define an Attribute URI Subpacket (Type 8 (TBC), Attribute Value category) that identifies the resource being claimed by the key owner.
It performs a similar function to the User ID packet, but in a strictly machine-readable URI format.
For example, an email address would be represented as "mailto:user@example.com".</t>

<t>A certificate <bcp14>MAY</bcp14> include both a User ID containing an email address, and a User Attribute with an Attribute URI subpacket representing the same email address.
If a receiving implementation supports the Attribute URI subpacket, it <bcp14>SHOULD</bcp14> be used in preference to the User ID packet.</t>

<t>If an implementation intends to certify the email address component of an RFC822-ish User ID, but not the real name or comment components, it <bcp14>SHOULD</bcp14> instead certify a User Attribute with an Attribute URI subpacket containing the <spanx style="verb">mailto:</spanx> URI of the email address.</t>

<t><xref section="10.1" sectionFormat="of" target="RFC9580"/> indicates that a User ID packet is not necessary in a v4 or v6 certificate (this differs from previous versions of the OpenPGP specification).
However, since legacy implementations will not in general understand the Attribute URI subpacket, it is <bcp14>RECOMMENDED</bcp14> that a v4 certificate includes a User ID packet corresponding to each Attribute URI subpacket.</t>

<t>A User Attribute packet <bcp14>MUST NOT</bcp14> contain more than one Attribute URI subpacket.</t>

</section>
<section anchor="notation-data-subpacket"><name>Notation Data Subpacket</name>

<t>The Notation Data Subpacket (Type 20, General category) from the Signature Subpacket Types registry is duplicated into the User Attribute Subpacket registry, with the same wire format (<xref section="5.2.3.24" sectionFormat="of" target="RFC9580"/>).</t>

<t>A User Attribute Packet <bcp14>MAY</bcp14> contain one or more Notation Data subpackets.
Notation names share the same namespaces and semantics as signature notations.
Notation names in the user namespace <bcp14>MAY</bcp14> be present in User Attributes.
Notation names in the IANA namespace <bcp14>MUST NOT</bcp14> be present in User Attributes unless specified for that purpose.</t>

</section>
<section anchor="embedded-signature-subpacket"><name>Embedded Signature Subpacket</name>

<t>The Embedded Signature Subpacket (Type 32, Attribute Value category) from the Signature Subpacket Types registry is duplicated into the User Attribute Subpacket registry, with the same wire format (<xref section="5.2.3.34" sectionFormat="of" target="RFC9580"/>).</t>

<t>A User Attribute Packet <bcp14>MAY</bcp14> contain one or more Embedded Signature subpackets.
These can be used by an implementation that wishes to distribute signatures that would not otherwise be valid in a certificate.
Unless otherwise specified, all such embedded signature packets <bcp14>MUST</bcp14> be made by a component key of the current certificate.</t>

<t>We update the following signature types to be "embeddable" (see <xref section="5" sectionFormat="of" target="I-D.gallagher-openpgp-signatures"/>), and specify their use in User Attributes:</t>

<section anchor="certification-revocation-signature"><name>Certification Revocation Signature</name>

<t>An Embedded Signature Subpacket <bcp14>MAY</bcp14> contain a Certification Revocation signature (Type 0x30):</t>

<section anchor="certification-revocation-signature-over-a-third-party-certificate"><name>Certification Revocation Signature Over a Third-Party Certificate</name>

<t>The key holder might not trust that a third party will distribute certification revocations over their (possibly fraudulent) certificate <xref target="REVOC-16"></xref>.
The key holder <bcp14>MAY</bcp14> instead distribute the revocation signature in their own certificate using an Embedded Signature subpacket of a User Attribute packet.</t>

<t>(( TODO: can we identify the third party certificate in the revocation sig? ))</t>

</section>
<section anchor="certification-revocation-self-signature"><name>Certification Revocation Self-Signature</name>

<t>If the key holder wishes to delete a User ID or User Attribute from their own certificate using a redacting revocation signature <xref target="REVOC-2"></xref>, they cannot append the revocation signature to the redacted User ID or User Attribute packet, because the redacted packet is no longer part of the certificate packet sequence.
In order to distribute the revocation signature, it <bcp14>MAY</bcp14> be included in an Embedded Signature subpacket of a separate User Attribute packet.
The revocation signature can be validated by a receiving implementation that already has a copy of the redacted User ID or User Attribute.</t>

</section>
</section>
</section>
</section>
<section anchor="user-attribute-subpacket-grammar"><name>User Attribute Subpacket Grammar</name>

<t><list style="symbols">
  <t>A User Attribute packet <bcp14>SHOULD</bcp14> contain exactly one Attribute Creation Time subpacket.</t>
  <t>It <bcp14>SHOULD</bcp14> contain at most one subpacket of each other subpacket type in the General category.</t>
  <t>It <bcp14>MUST NOT</bcp14> contain subpackets of more than one type in the Attribute Value category.</t>
</list></t>

<t>A receiving implementation <bcp14>MUST</bcp14> disregard the entire User Attribute packet if a User Attribute packet contains an unknown subpacket, or if it contains subpackets of more than one type in the Attribute Value category.</t>

</section>
<section anchor="time-evolution-of-user-attributes"><name>Time Evolution of User Attributes</name>

<t>There has historically been no easy way to create a Certification signature at an arbitrary time that supersedes an earlier one but retains the same starting validity date.
Therefore, many implementations maintain a copy of all Certification signatures to ensure that historical signatures can be validated after a superseding certification is made.
Some implementations have also attempted to work around this by backdating signature creation timestamps, which has implications for signature ordering.</t>

<t>We are prevented from using the time evolution semantics described in <xref section="8.2" sectionFormat="of" target="I-D.gallagher-openpgp-signatures"/> for Certification signatures over User IDs, because User IDs have no intrinsic creation date.
It is instead <bcp14>RECOMMENDED</bcp14> that v6 (and higher) certificates use User Attributes that contain an Attribute Creation Time subpacket.</t>

<t>Certification signatures over a User Attribute with an Attribute Creation Time subpacket ({attribute-creation-time-subpacket}) can therefore have similar time evolution semantics as binding signatures, with the Attribute Creation Time subpacket performing the role of the (Sub)key Creation Time field.</t>

<t><list style="numbers" type="1">
  <t>Certification signatures <bcp14>SHOULD NOT</bcp14> contain Key Expiration Time subpackets, and any such subpackets <bcp14>MUST</bcp14> be ignored.</t>
  <t>The validity of a Certification signature over a User Attribute extends from the User Attribute Creation Time until the signature's expiration time.</t>
  <t>If the most recent Certification signature has no Signature Expiration Time subpacket, then the certification does not expire.</t>
  <t>A Certification signature is temporally valid if its creation time is no earlier than the creation times of all of the primary key that made it, and the primary key and User Attribute that it is made over.</t>
  <t>Unlike a Key Binding self-signature, a Certification self-signature is not valid if the primary key has been hard-revoked, even for historical purposes.</t>
  <t>The creation time of a Certification signature over a User Attribute is used only for ordering, not for calculation of User Attribute validity.</t>
</list></t>

<t>A third-party Certification signature over a User Attribute thereby retrospectively validates the User Attribute from the User Attribute Creation Time, if it exists.
If a user does not believe that such a User Attribute has always been valid, they should not certify it.</t>

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

<t>The use of an Attribute URI subpacket instead of a User ID packet should increase overall security, as it has a stricter format that simplifies parsing.</t>

<t>The deprecation of Image Attribute subpackets should increase both security and reliability, by removing a significant abuse vector.</t>

<t>Distribution of third-party revocations in the certificate of the signer should be more reliable than existing methods, thereby increasing overall trust in the certification process.</t>

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

<t>IANA is requested to perform the following tasks:</t>

<t><list style="symbols">
  <t>Delete the OpenPGP Image Attribute Versions and OpenPGP Image Attribute Encoding Format registries.</t>
  <t>Add a column to the OpenPGP User Attribute Subpacket Types Registry, called "Category".</t>
  <t>Update the contents of the OpenPGP User Attribute Subpacket Types Registry to read:</t>
</list></t>

<texttable title="OpenPGP User Attribute Subpacket Types" anchor="attribute-subpacket-types">
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Category</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>1</c>
      <c>Image Attribute (Deprecated)</c>
      <c>Attr Value</c>
      <c><xref target="image-attribute-subpacket"/></c>
      <c>2</c>
      <c>Attribute Creation Time</c>
      <c>General</c>
      <c><xref target="attribute-creation-time-subpacket"/></c>
      <c>8(TBC)</c>
      <c>Attribute URI</c>
      <c>Attr Value</c>
      <c><xref target="attribute-uri-subpacket"/></c>
      <c>20</c>
      <c>Notation Data</c>
      <c>General</c>
      <c><xref target="notation-data-subpacket"/></c>
      <c>32</c>
      <c>Embedded Signature</c>
      <c>Attr Value</c>
      <c><xref target="embedded-signature-subpacket"/></c>
</texttable>

<t><list style="symbols">
  <t>Update the following entry in the OpenPGP Signature Types Registry to read:</t>
</list></t>

<texttable title="OpenPGP Signature Types (update)" anchor="signature-types-update">
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Embeddable</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>0x30</c>
      <c>Certification Revocation Signature</c>
      <c>Yes</c>
      <c><xref target="RFC9580"></xref>, <xref target="certification-revocation-signature"/></c>
</texttable>

<section anchor="guidelines-for-management-of-the-user-attribute-subpacket-types-registry"><name>Guidelines for Management of the User Attribute Subpacket Types Registry</name>

<t>We have allocated code points in the User Attribute Subpacket Types registry that permit wire-format and semantics compatibility between User Attribute subpackets and Signature subpackets.
Code points 1 and 8 are reserved in the Signature Subpacket Types registry, and code points 2, 10 and 32 represent subpacket types that are compatible in wire format and semantics.
While not strictly required, it is <bcp14>RECOMMENDED</bcp14> that code points should be allocated so as to minimise semantics and wire format incompatibility between the two Subpacket Type registries.
Signature subpacket code points outside of the General or Attribute Value categories <bcp14>SHOULD NOT</bcp14> be shared with the User Attribute registry.</t>

</section>
</section>


  </middle>

  <back>


    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC9580">
  <front>
    <title>OpenPGP</title>
    <author fullname="P. Wouters" initials="P." role="editor" surname="Wouters"/>
    <author fullname="D. Huigens" initials="D." surname="Huigens"/>
    <author fullname="J. Winter" initials="J." surname="Winter"/>
    <author fullname="Y. Niibe" initials="Y." surname="Niibe"/>
    <date month="July" year="2024"/>
    <abstract>
      <t>This document specifies the message formats used in OpenPGP. OpenPGP provides encryption with public key or symmetric cryptographic algorithms, digital signatures, compression, and key management.</t>
      <t>This document is maintained in order to publish all necessary information needed to develop interoperable applications based on the OpenPGP format. It is not a step-by-step cookbook for writing an application. It describes only the format and methods needed to read, check, generate, and write conforming packets crossing any network. It does not deal with storage and implementation questions. It does, however, discuss implementation issues necessary to avoid security flaws.</t>
      <t>This document obsoletes RFCs 4880 ("OpenPGP Message Format"), 5581 ("The Camellia Cipher in OpenPGP"), and 6637 ("Elliptic Curve Cryptography (ECC) in OpenPGP").</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9580"/>
  <seriesInfo name="DOI" value="10.17487/RFC9580"/>
</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 title='Informative References' anchor="sec-informative-references">




<reference anchor="I-D.gallagher-openpgp-signatures">
   <front>
      <title>OpenPGP Signatures and Signed Messages</title>
      <author fullname="Andrew Gallagher" initials="A." surname="Gallagher">
         <organization>PGPKeys.EU</organization>
      </author>
      <date day="7" month="November" year="2024"/>
      <abstract>
	 <t>   This document specifies several updates and clarifications to the
   OpenPGP signature and message format specifications.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-gallagher-openpgp-signatures-00"/>
   
</reference>

<reference anchor="I-D.dkg-openpgp-revocation">
   <front>
      <title>Revocation in OpenPGP</title>
      <author fullname="Daniel Kahn Gillmor" initials="D. K." surname="Gillmor">
         <organization>ACLU</organization>
      </author>
      <date day="17" month="August" year="2023"/>
      <abstract>
	 <t>   Cryptographic revocation is a hard problem.  OpenPGP&#x27;s revocation
   mechanisms are imperfect, not fully understood, and not as widely
   implemented as they could be.  Additionally, some historical OpenPGP
   revocation mechanisms simply do not work in certain contexts.  This
   document provides clarifying guidance on how OpenPGP revocation
   works, documents outstanding problems, and introduces a new mechanism
   for delegated revocations that improves on previous mechanism.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-dkg-openpgp-revocation-01"/>
   
</reference>

<reference anchor="REVOC-2" target="https://gitlab.com/dkg/openpgp-revocation/-/issues/2">
  <front>
    <title>RTBF self-sovereignty via revocations</title>
    <author initials="A." surname="Gallagher" fullname="Andrew Gallagher">
      <organization></organization>
    </author>
    <date year="2024" month="March" day="05"/>
  </front>
</reference>
<reference anchor="REVOC-16" target="https://gitlab.com/dkg/openpgp-revocation/-/issues/16">
  <front>
    <title>Distribution of revocations</title>
    <author initials="A." surname="Gallagher" fullname="Andrew Gallagher">
      <organization></organization>
    </author>
    <date year="2024" month="April" day="14"/>
  </front>
</reference>


    </references>


<?line 257?>

<section anchor="acknowledgments"><name>Acknowledgments</name>

<t>The author would like to thank Heiko Schäfer for discussions.</t>

</section>


  </back>

<!-- ##markdown-source:
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
aGxH4M7Zs3vxoBlkMFi0iuLtVHn87OE05VtV4J7XYXv41NVDU/GOg/oORS3V
WTyA9HLxRTyr3Bgb8UQ1gOFhYa2e1NHYJufqZALshhZLOaWpBqMmPdTbfRii
c3n65rRNx7vNvcQQDzxHaPYgqFFlV3fzfutIF8upimkss8Pu1pvue8K51NPj
+xLzP51rPf37XWuHUtr+5QdAaZ2zppsd2YjN0bR/sd+LU42bOVy2xQFBXjMY
mipbAltIbmHXA0OkhIZZQCzl19D4tG8J2cemNLujUoLSVNTel/Ao7gahXd5U
1tm2j5+ZZUmSrQkpGzYlG90O/EdWDCqWRmLPKNWaWn75uKmlK6PtGv0OHG+5
bYWFm1Y2Wz/E5l2959mYEy6R3u/6bdeQwxSbVdtYOfr09GjfivEYOcTVird3
rhe6iMO3sig37Y2rZn9nkSU0pllSW2MrEzpq4ZNbSa/DvPQ6Z8+Wr0UdIVob
wDwqc+rcA2QYTRtgs0JWcZXA7vudhPmL36L+OO4LZQtTW/m0GNvaaYemLPDR
Nuo67fCojKtg74s/rtp251x4596euL46vzrh6Fwr3zHYOrCtpm4xsEPYb8X+
/oN2pCMCLae6nNWdh9NNK/y5x2/VGwCb3io8lA6rBjLGMuKifKdqnZWOP9p9
MdICOQttj7nKaedrDoctcah9WMS6N1KR9NvV9WvtolIkWTrHq6TtGlBaC3LP
GvVrRXX+mDans4JU1oXKIZm51HNJt7v58AjvMQpikRQDbnQ9pCiH+QzMnMMY
PQdbIBueCbWLGzdijbK8BtiH9T2+b/dOvCrkcikLmuQNVaGuMfFIhgYzKt1k
+BH9Pc+jeySkm8QSiY5auU7mnNS6bjfobHz1y1JH/7dvRTh6QzUJJ/xBmzA7
OBhqC1nYmHAT9IFx1CDctAZTKQoye7qj1YvAmnhZt577A1b2xBrpYpUl9ame
XhbkrEETTTgcerYyK2jClWzsXD6ljsYgT8gN98lke7WV4hqXJw+G1YupLgvq
EHmUZ8+wVDl6MsVdFFxLFolWdn+Y2udC2TXXRRu6t4KRi6OHZuwxVxTXfjp9
gIIk3W4H0e76NOyDh4qcAXkZa1VqqsJJ2Wig/dBWIMtZyZnYL4oHSh0WNKdH
wTQO3u86u7OQK+gqMRkUVqpl7sbidPYRyssqhl+aPMIMcAEw7RZNnREgzzXN
gRuVkh35kI5P3FTrN28yaoKYrc2o1aG+3A6YOKPY3FGPYVXtOk3r0zmI0VRo
z+008eEajUUatAgXGg7jTJM7/BWrO/glHd+Cy+io0YZ1ETu09TXGVne/+krs
UYm40CRgp26xh6r63RO/1drQf8yo8/7VPWLSMzhKv60Pd4Z+3SFZKqyfudtn
h232cVhjfo45aFXaitN2jtHI2+qlHpbNTU29/9AJT5+89pCH9qnS6b7Ls2uo
azIe9ocdG9o04L74lOtilxh+iAlw4NamBaO+lQFx6AWMwfd6oRqM4Xw/hG27
Tac+2Sli3dn27ncXXEHXiUU5T/dfDGjUayHzsFyuOuTsSekJrdWQYBTyCIim
gBnUDRd6aa+84sjJlB3usShWgtNBhrRLCNTKCk4UrvGk5GW6yOSKOw/2nL2Y
dwe+PEb7gx2tw2scetx4ancepP8EXetp3A7/Sw/BbDdeEDphfUPZi/znhfd1
PrjbFIpb9u/c7+w30Zr78tQ72gvUC3zo9oYabYJYhr1WgmnOWjo37Orud/ii
PyHI+/l8/Mqh/QELTVfAOKqSoRObPhC4KOIGKMx7beZj5Cjd9iiyepFRK05H
uL2n1Ad8B/qZewPowBVJ6hP06DcVeLhWe/BUwdlWddURLbbl4+I6QU3jbMVy
uSbI7bMSJT+Y1zxoRf8WVQWhxBnSKlrFQvqTpsbdCaPOnbvOrvs9g3yfq5pm
tZkwO3nQtUAPxmqcxzaOJx9b1P6kid18AgE377JKsId2aSMM1jQ2+5Nkfqvd
OcM95wL6UvCWkheBg7CA2uVUJywS236ZrWwbSu7CzkOnO+mgh1jBJTI6ldA/
ct72ufb0QfdBq84sRJyaiHp7nAtlK03iKmb2FpJlqcpFFpuD2kPdguieV6yd
lWwxJAHzIovsNsoTO4nd8gQtU7ntBfysptEm+lfjij2XLXuDsVKaG8PHLc7t
CKC9Q/JHHCponSkYcy8Yx1wrJ9Wy3tv0pB448veuHrhSx4BVjdyZxc2ISX9o
Jn/uoNvWns8jOZBg1BdDMbcn9vcK/zZ6HI2ReNJUTLVHhzx2vAt4DCc+CyHe
UNcx+PfZH8fc2G/v/JYj/cQAf5/Dh/4+3/Nt+C+YOPZ9q+6dN8dk7BN0z3WA
+HZ7y6eGwh1rv7sLjkXzzq4ypVm2b8Ptt9tHVJ93wXPen//cg7tdSu3L3FAH
sHQlPrJvdPdxdtHsS+z3ZkI6Qtah+fTYPrNjBPSAnH5c3hQGHcJd32+CGxFg
d03bIdAw/Q0+339pz07Z9+HtjUjs46G9cxcgpVgN3uvo/ZVf1BP53+P0Qy5/
z5sBDcU54B6eh7fk/BlK8J9/cds5Hw9gqg6Ct34F1ZiODEanlitgNh2Fty3z
ayD53P4qZefp3EGs4sbaNfhJZjevovroXJ3KHqBW74LZbTqFtqrsnIjv7kb6
8/Gcf5EFyzXVNT0e7fP16dB21VlL1Ak/95zHBLS7WKz8z08es4FnC/b20o8P
xOSIryL06kMjvQGgP31AY47m1D+4tvfxOqsfBz8tdMK7sM3pG8q1eCEe3OVv
C9ZUD43NaDhjOkc+W70y2LfFQRmx0wA8RllnPRV1UvCusXNbtKwqqZjwTujR
LWsbtjP3092emc420pZ23HTyPbfw9nK/l6OBExU4pxHNKJHW5xQEdk7ofgHo
tiC5m+KSQaY34nulb7DSaPF//zOzBSgNTqOKf6CLhf4/HbD21mw8AAA=

-->

</rfc>

