<?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 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-rats-eat-measured-component-07" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="EAT Measured Component">EAT Measured Component</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-measured-component-07"/>
    <author initials="S." surname="Frost" fullname="Simon Frost">
      <organization>Arm</organization>
      <address>
        <email>Simon.Frost@arm.com</email>
      </address>
    </author>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>Linaro</organization>
      <address>
        <email>Thomas.Fossati@linaro.org</email>
      </address>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization abbrev="H-BRS">University of Applied Sciences Bonn-Rhein-Sieg</organization>
      <address>
        <email>Hannes.Tschofenig@gmx.net</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization>Fraunhofer SIT</organization>
      <address>
        <email>henk.birkholz@ietf.contact</email>
      </address>
    </author>
    <date year="2025" month="November" day="14"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>EAT</keyword>
    <keyword>measurements</keyword>
    <keyword>claim</keyword>
    <keyword>measured</keyword>
    <keyword>component</keyword>
    <abstract>
      <?line 67?>

<t>The term "measured component" refers to an object within the attester's target environment whose state can be inspected and, typically, digested.
A digest is computed through a cryptographic hash function.
Examples of measured components include firmware stored in flash memory, software loaded into memory at start time, data stored in a file system, or values in a CPU register.
This document provides the information model for the "measured component" and two associated data models.
This separation is intentional: the JSON and CBOR serializations, coupled with the media types and associated CoAP Content-Formats, enable the immediate use of the semantics within the EAT framework.
Meanwhile, the information model can be reused in future specifications to provide additional serializations, for example using ASN.1.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Remote ATtestation ProcedureS Working Group mailing list (rats@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/rats/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/thomas-fossati/draft-fft-rats-eat-measured-component"/>.</t>
    </note>
  </front>
  <middle>
    <?line 76?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref section="4.2.16" sectionFormat="of" target="RFC9711"/> defines a <tt>Measurements</tt> claim that:</t>
      <ul empty="true">
        <li>
          <t>"[c]ontains descriptions, lists, evidence or measurements of the software that exists on the entity or any other measurable subsystem of the entity."</t>
        </li>
      </ul>
      <t>This claim allows for different measurement formats, each identified by a different CoAP Content-Format (<xref section="12.3" sectionFormat="of" target="RFC7252"/>).
Currently, the only specified format is CoSWID of type "evidence", as per <xref section="2.9.4" sectionFormat="of" target="RFC9393"/>.
However, CoSWID is not suitable for measurements that cannot be anchored to a file system, such as those in early boot environments.
To address this gap, this document introduces a "measured component" format that can be used with the EAT <tt>Measurements</tt> claim alongside or instead of CoSWID.</t>
      <t>The term "measured component" refers to any measurable object on a target environment, that is, an object whose state can be sampled and, possibly, digested.
This includes, for example: the invariant part of a firmware component that is loaded in memory at startup time, a run-time integrity check (RTIC), a file system object, or a CPU register.</t>
      <t>This document provides the information model for the "measured component" and two associated data models <xref target="RFC3444"/>.
This separation is intentional: the JSON and CBOR serializations, coupled with the media types and associated CoAP Content-Formats, enable the immediate use of the semantics within the EAT framework.
Meanwhile, the information model can be reused in future specifications to provide additional serializations, for example using ASN.1.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>In this document, CDDL <xref target="RFC8610"/> <xref target="RFC9165"/> <xref target="RFC9741"/> is used to describe the data formats.</t>
    </section>
    <section anchor="measured-component">
      <name>Information Model</name>
      <t>This section presents the information model of a "measured component".</t>
      <t>A "measured component" information element includes the component's sampled state (in digested or raw form) along with metadata that helps in identifying the component.
Optionally, any entities responsible for signing the installed component can also be specified.</t>
      <t>The information model of a "measured component" is described in <xref target="tab-mc-info-elems"/>.</t>
      <table anchor="tab-mc-info-elems">
        <name>Measured Component Information Elements</name>
        <thead>
          <tr>
            <th align="left">IE</th>
            <th align="left">Description</th>
            <th align="left">Requirement Level</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Component Name</td>
            <td align="left">The name given to the measured component. It is important that this name remains consistent across different releases to allow for better tracking of the same measured item across updates. When combined with a consistent versioning scheme, it enables better signaling from the appraisal procedure to the relying parties.</td>
            <td align="left">
              <bcp14>REQUIRED</bcp14></td>
          </tr>
          <tr>
            <td align="left">Component Version</td>
            <td align="left">A value representing the specific release or development version of the measured component.  Using <eref target="https://semver.org/spec/v2.0.0.html">Semantic Versioning</eref> is <bcp14>RECOMMENDED</bcp14>.</td>
            <td align="left">
              <bcp14>OPTIONAL</bcp14></td>
          </tr>
          <tr>
            <td align="left">Digested or Raw Value</td>
            <td align="left">Either the raw value or the digested value of the measured component.</td>
            <td align="left">
              <bcp14>REQUIRED</bcp14></td>
          </tr>
          <tr>
            <td align="left">Digest Algorithm</td>
            <td align="left">Hash algorithm used to compute the Digest Value.</td>
            <td align="left">
              <bcp14>REQUIRED</bcp14> only if the value is in the digested form</td>
          </tr>
          <tr>
            <td align="left">Signers</td>
            <td align="left">One or more unique identifiers of entities signing the component that is measured.</td>
            <td align="left">
              <bcp14>OPTIONAL</bcp14></td>
          </tr>
        </tbody>
      </table>
      <t>The format <bcp14>SHOULD</bcp14> also allow a limited amount of extensibility to accommodate profile-specific semantics.</t>
    </section>
    <section anchor="data-model">
      <name>Data Model</name>
      <t>This section presents a JSON and CBOR data model that implements the information model outlined in <xref target="measured-component"/>.</t>
      <t>The data model is inspired by the "PSA software component" claim (<xref section="4.4.1" sectionFormat="of" target="RFC9783"/>), which has been refactored to take into account the recommendations about the design of new EAT claims described in <xref section="E" sectionFormat="of" target="RFC9711"/>.</t>
      <t>CDDL is used to express rules and constraints of the data model for both JSON and CBOR.
These rules must be strictly followed when creating or validating "measured component" data items.
When there is variation between CBOR and JSON, the <tt>JC&lt;&gt;</tt> CDDL generic defined in <xref section="D" sectionFormat="of" target="RFC9711"/> is used.</t>
      <section anchor="common-types">
        <name> Common Types</name>
        <t>The following three basic types are used at various places within the measured component data model:</t>
        <sourcecode type="cddl"><![CDATA[
bytes-b64u = text .b64u bytes
bytes8 = bytes .size 8
bytes8-b64u = text .b64u bytes8
]]></sourcecode>
      </section>
      <section anchor="digest">
        <name>The <tt>digest</tt> Type</name>
        <t>A digest represents the result of a hashing operation together with the hash algorithm used.
The type of the digest algorithm identifier can be either <tt>int</tt> or <tt>text</tt> and is interpreted according to the <xref target="IANA.named-information"/> registry.
Specifically, <tt>int</tt> values are matched against "ID" entries and <tt>text</tt> values are matched against "Hash Name String" entries.
Whenever possible, using the <tt>int</tt> encoding is <bcp14>RECOMMENDED</bcp14>.</t>
        <sourcecode type="cddl"><![CDATA[
digest = [
  alg: (int / text)
  val: digest-value-type
]

digest-value-type = eat.JC<bytes-b64u, bytes>
]]></sourcecode>
      </section>
      <section anchor="the-measured-component-data-item">
        <name>The <tt>measured-component</tt> Data Item</name>
        <t>The <tt>measured-component</tt> data item is as follows:</t>
        <sourcecode type="cddl"><![CDATA[
;# import eat.JC from rfc9711 as eat

measured-component = {
  id-label => component-id
  measurement
  ? signers-label => [ + signer-id-type ]
  ? flags-label => flags-type
}

measurement //= ( digested-measurement-label => digest )
measurement //= ( raw-measurement-label => bytes )

signer-id-type = eat.JC<bytes-b64u, bytes>
flags-type = eat.JC<bytes8-b64u, bytes8>

id-label = eat.JC<"id", 1>
digested-measurement-label = eat.JC<"digested-measurement", 2>
raw-measurement-label = eat.JC<"raw-measurement", 5>
signers-label = eat.JC<"signers", 3>
flags-label = eat.JC<"flags", 4>
]]></sourcecode>
        <t>The members of the <tt>measured-component</tt> CBOR map / JSON object are:</t>
        <dl newline="true">
          <dt><tt>"id"</tt> (index 1):</dt>
          <dd>
            <t>The measured component identifier encoded according to the format described in <xref target="component-id"/>.</t>
          </dd>
          <dt><tt>"measurement"</tt>:</dt>
          <dd>
            <t>Either a digest value and algorithm (index 2), encoded using the digest format (<xref target="digest"/>), or the "raw" measurement (index 5), encoded as a byte string.
Note that, while the size of the digested form is constrained by the digest function, the size of the raw form can vary greatly depending on what is being measured (it could be a CPU register or an entire configuration blob, for example).
Therefore, a decoder implementation may decide to limit the amount of memory it allocates to this specific field.</t>
          </dd>
          <dt><tt>"signers"</tt> (index 3):</dt>
          <dd>
            <t>One or more signing entities, see <xref target="signer"/>.</t>
          </dd>
          <dt><tt>"flags"</tt> (index 4):</dt>
          <dd>
            <t>a 64-bit field with profile-defined semantics, see <xref target="profile-flags"/>.</t>
          </dd>
        </dl>
        <section anchor="component-id">
          <name>Component Identifier</name>
          <t>The <tt>component-id</tt> data item is as follows:</t>
          <sourcecode type="cddl"><![CDATA[
component-id = [
  name:      text
  ? version: version
]

;# import coswid.$version-scheme from rfc9393 as coswid

version = [
  val:      text
  ? scheme: coswid.$version-scheme
]
]]></sourcecode>
          <dl>
            <dt><tt>name</tt></dt>
            <dd>
              <t>A string that provides a human readable identifier for the component in question.  Format and adopted conventions depend on the component type.</t>
            </dd>
            <dt><tt>version</tt></dt>
            <dd>
              <t>A compound <tt>version</tt> data item that reuses encoding and semantics of <xref target="RFC9711"/> <tt>sw-version-type</tt>.</t>
            </dd>
          </dl>
        </section>
        <section anchor="signer">
          <name>Signer</name>
          <t>A signer is an entity that digitally signed the component that is measured.
Typically, the signature is verified during installation or when the measured component is executed by the boot ROM, operating system, or application launcher.
For example, as in UEFI Secure Boot <xref target="UEFI2"/> and Arm Trusted Board Boot <xref target="TBBR-CLIENT"/>.
Another example may be the controlling entity in an app store.
It is important to note that a signer is different from the identity of the manufacturer of the component, such as would be found in a manifest like a payload CoSWID.</t>
          <t>A signer is identified using a public key.
It could be an X.509 certificate, a raw public key, a public key thumbprint, or some other identifier that can be uniquely associated with the signing entity.
In some cases, multiple parties may need to sign a component to indicate their endorsement or approval.
This could include roles such as a firmware update system, fleet owner, or third-party auditor.
The specific purpose of each signature may depend on the deployment, and the order of signers within the array could indicate meaning.</t>
          <t>If an EAT profile (<xref section="6" sectionFormat="of" target="RFC9711"/>) uses measured components, it <bcp14>MUST</bcp14> specify whether the <tt>signers</tt> field is used.
If it is used, the profile <bcp14>MUST</bcp14> also specify what each of the entries in the <tt>signers</tt> array represents, and how to interpret the corresponding <tt>signer-id-type</tt>.</t>
          <t>The <tt>signer-id-type</tt> is defined as follows:</t>
          <sourcecode type="cddl"><![CDATA[
signer-id-type = eat.JC<bytes-b64u, bytes>
]]></sourcecode>
        </section>
        <section anchor="profile-flags">
          <name>Profile-specific Flags</name>
          <t>This optional field contains at most 64 bits of profile-defined semantics.
It can be used to carry information in fixed-size chunks, such as a bit mask or a single value within a predetermined set of codepoints.
Regardless of its internal structure, the size of this field is exactly 8 bytes.</t>
          <t>The <tt>flags-type</tt> is defined as follows:</t>
          <sourcecode type="cddl"><![CDATA[
flags-type = eat.JC<bytes8-b64u, bytes8>
]]></sourcecode>
          <t>If an EAT profile (<xref section="6" sectionFormat="of" target="RFC9711"/>) uses measured components, it <bcp14>MUST</bcp14> specify whether the <tt>flags</tt> field is used.
If it is used, the profile <bcp14>MUST</bcp14> also specify how to interpret the 64 bits.</t>
        </section>
      </section>
      <section anchor="eat-measurements-format-extensions">
        <name>EAT <tt>measurements-format</tt> Extensions</name>
        <t>The CDDL in <xref target="fig-eat-plug"/> extends the <tt>$measurements-body-cbor</tt> and <tt>$measurements-body-json</tt> EAT sockets to add support for <tt>measured-component</tt>s to the <tt>Measurements</tt> claim.</t>
        <figure anchor="fig-eat-plug">
          <name>EAT measurements-format Extensions</name>
          <sourcecode type="cddl"><![CDATA[
mc-cbor = bytes .cbor measured-component
mc-json = text .json measured-component

; EAT CBOR (`.feature "cbor"`)
$measurements-body-cbor /= mc-cbor ; native
$measurements-body-cbor /= mc-json ; tunnel

; EAT JSON (`.feature "json"`)
$measurements-body-json /= mc-json            ; native
$measurements-body-json /= text .b64u mc-cbor ; tunnel
]]></sourcecode>
        </figure>
        <t>Each socket is extended with two new types: a "native" representation that is used when <tt>measured-component</tt> and the EAT have the same serialization (e.g., they are both CBOR), and a "tunnel" representation that is used when the serializations differ.</t>
      </section>
      <section anchor="measurements-format-for-cbor-eat">
        <name><tt>measurements-format</tt> for CBOR EAT</name>
        <t>The entries in <xref target="tab-mf-cbor"/> are the allowed <tt>content-type</tt> / <tt>content-format</tt> pairs when the <tt>measured-component</tt> is carried in a CBOR EAT.</t>
        <t>Note the use of the "native" and "tunnel" formats from <xref target="fig-eat-plug"/>, and how the associated CoAP Content-Format is used to describe the original serialization.</t>
        <table anchor="tab-mf-cbor">
          <name>measurement-format for EAT CWT</name>
          <thead>
            <tr>
              <th align="left">content-type (CoAP C-F equivalent)</th>
              <th align="left">content-format</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>application/measured-component+cbor</tt></td>
              <td align="left">
                <tt>mc-cbor</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>application/measured-component+json</tt></td>
              <td align="left">
                <tt>mc-json</tt></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="measurements-format-for-json-eat">
        <name><tt>measurements-format</tt> for JSON EAT</name>
        <t><xref target="tab-mf-json"/> is the equivalent of <xref target="tab-mf-cbor"/> for JSON-serialized EAT.</t>
        <table anchor="tab-mf-json">
          <name>measurement-format for EAT JWT</name>
          <thead>
            <tr>
              <th align="left">content-type (CoAP C-F equivalent)</th>
              <th align="left">content-format</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>application/measured-component+json</tt></td>
              <td align="left">
                <tt>mc-json</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>application/measured-component+cbor</tt></td>
              <td align="left">
                <tt>tstr .b64u mc-cbor</tt></td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="eat-profiles-and-measured-components">
      <name>EAT Profiles and Measured Components</name>
      <t>The semantics of the signers and profile flags fields are defined by the applicable EAT profile, i.e., the profile of the wrapping EAT.</t>
      <t>If the profile of the EAT is not known to the consumer and one or more Measured Components within that EAT include signers and/or profile flags, the consumer <bcp14>MUST</bcp14> reject the EAT.</t>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>The example in <xref target="ex-1"/> is a digested measured component with all the fields populated.</t>
      <figure anchor="ex-1">
        <name>Complete Measured Component</name>
        <sourcecode type="cbor-edn"><![CDATA[
{
  / id / 1: [
    / name / "boot loader X",
    / version / [
      "1.2.3rc2",
      16384 / semver /
    ]
  ],
  / measurement / 2: [
    / alg / "sha-256",
    / val / h'3996003d486fb91ffb056f7d03f2b2992b215b31dbe7af4b37
              3431fc7d319da3'
  ],
  / signers / 3: [
    h'492e9b676c21f6012b1ceeb9032feb4141a880797355f6675015ec59c5
      1ca1ec',
    h'4277bb97ba7b51577a0d38151d3e08b40bdf946753f5b5bdeb814d6ff5
      7a8a5e'
  ],
  / flags / 4: h'0000000000000101'
}
]]></sourcecode>
      </figure>
      <t>The example in <xref target="ex-eat-1"/> is the same measured component as above but used as the format of a <tt>measurements</tt> claim in a EAT claims-set.</t>
      <t>This example uses TBD1 as the <tt>content-type</tt> value of the <tt>measurements-format</tt> entry.
(This will change to the value assigned by IANA to the <tt>mc+cbor</tt> Content-Format.)</t>
      <t>Note that the array contains only one measured component, but additional entries could be added if the measured TCB is made of multiple, individually measured components.</t>
      <figure anchor="ex-eat-1">
        <name>EAT Measurements Claim using a Measured Component (CBOR)</name>
        <sourcecode type="cbor-edn"><![CDATA[
{
  273: [
    [
      TBD1, / mc+cbor /
      <<
        {
          / id / 1: [
            / name / "boot loader X",
            / version / [
              "1.2.3rc2",
              16384 / semver /
            ]
          ],
          / measurement / 2: [
            / alg / "sha-256",
            / val / h'3996003d486fb91ffb056f7d03f2b2992b215b31db
                      e7af4b373431fc7d319da3'
          ],
          / signers / 3: [
            h'492e9b676c21f6012b1ceeb9032feb4141a880797355f66750
              15ec59c51ca1ec',
            h'4277bb97ba7b51577a0d38151d3e08b40bdf946753f5b5bdeb
              814d6ff57a8a5e'
          ]
        }
      >>
    ]
  ]
}
]]></sourcecode>
      </figure>
      <t>The example in <xref target="ex-eat-2"/> illustrates the inclusion of a JSON measured component inside a JSON EAT.</t>
      <t>This example uses TBD2 as the <tt>content-type</tt> value of the <tt>measurements-format</tt> entry.
(This will change to the value assigned by IANA to the <tt>mc+json</tt> Content-Format.)</t>
      <figure anchor="ex-eat-2">
        <name>EAT Measurements Claim using a Measured Component (JSON)</name>
        <sourcecode type="cbor-edn"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "measurements": [
    [
      TBD2, / mc+json /
      "{ \"id\": [ \"boot loader X\", [ \"1.2.3rc2\", 16384 ] ], \"\
digested-measurement\": [ \"sha-256\", \"\
OZYAPUhvuR_7BW99A_KymSshWzHb569LNzQx_H0xnaM\" ], \"signers\": [ \"\
SS6bZ2wh9gErHO65Ay_rQUGogHlzVfZnUBXsWcUcoew\", \"\
                   Qne7l7p7UVd6DTgVHT4ItAvflGdT9bW964FNb_V6il4\" ] }"
    ]
  ]
}
]]></sourcecode>
      </figure>
      <t>The example in <xref target="ex-2"/> is a measured component representing a boot loader identified by its path name:</t>
      <figure anchor="ex-2">
        <name>Digested Measured Component using File Path as Identifier</name>
        <sourcecode type="cbor-edn"><![CDATA[
{
  / id / 1: [
    / name / "/boot/loader.bin"
  ],
  / measurement / 2: [
    / alg / "sha-384",
    / val / h'66ec2fb4e02d8c8b3eee320e750d9389d66c52c51db11cc6
              9cc5e410816283ed60ba573795f5fcc85e513af57b3f6def'
  ],
  / flags / 4: h'0000000000000101'
}
]]></sourcecode>
      </figure>
      <t>The example in <xref target="ex-3"/> is a raw measured component.</t>
      <figure anchor="ex-3">
        <name>Raw Measured Component</name>
        <sourcecode type="cbor-edn"><![CDATA[
{
  / id / 1: [
    / name / "hardware-config"
  ],
  / measurement / 5: h'4f6d616861'
}
]]></sourcecode>
      </figure>
    </section>
    <section anchor="seccons">
      <name>Security Considerations</name>
      <t>Please review Sections <xref target="RFC9711" section="9.1" sectionFormat="bare">Claim Trustworthiness</xref>, <xref target="RFC9711" section="9.4" sectionFormat="bare">Multiple EAT Consumers</xref> and <xref target="RFC9711" section="9.5" sectionFormat="bare">Detached EAT Bundle Digest Security Considerations</xref> of <xref target="RFC9711"/>; these considerations apply to this document as well.
Note that similar security considerations may apply when the Measured Component information model is serialized using different data models than the ones specified in this document.</t>
      <t>The Component Name and Component Version can give an attacker detailed information about the software running on a device and its configuration settings.
This information could offer an attacker valuable insights.</t>
      <t>Any textual fields (e.g., Component Name and Version) that are stored in a file, inserted into a database, or displayed to humans must be properly sanitized to prevent attacks and undesirable behavior.
Further discussion and references on this topic can be found in <xref section="7" sectionFormat="of" target="RFC9839"/>.</t>
      <t>If the component measurement is digested, the digest must be computed using a strong cryptographic hash function.</t>
    </section>
    <section anchor="privcons">
      <name>Privacy Considerations</name>
      <t>Please review Section <xref target="RFC9711" section="9.1" sectionFormat="bare">Multiple EAT Consumers</xref> of <xref target="RFC9711"/>; the differential encryption considerations discussed there also apply to this document.</t>
      <t>The Component Name and Component Version could reveal private information about a device and its owner.</t>
      <t>Additionally, the stability requirement of the Component Name could potentially enabling tracking.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t><cref anchor="rfced">RFC Editor:</cref> replace "RFCthis" with the RFC number assigned to this document.</t>
      <section anchor="media-types-registrations">
        <name>Media Types Registrations</name>
        <t>IANA is requested to add the following media types to the "Media Types" registry <xref target="IANA.media-types"/>.</t>
        <table anchor="tab-mc-regs">
          <name>Measured Component Media Types</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Template</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>mc+cbor</tt></td>
              <td align="left">
                <tt>application/measured-component+cbor</tt></td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">
                <tt>mc+json</tt></td>
              <td align="left">
                <tt>application/measured-component+json</tt></td>
              <td align="left">RFCthis</td>
            </tr>
          </tbody>
        </table>
        <section anchor="applicationmeasured-componentcbor">
          <name><tt>application/measured-component+cbor</tt></name>
          <dl spacing="compact">
            <dt>Type name:</dt>
            <dd>
              <t>application</t>
            </dd>
            <dt>Subtype name:</dt>
            <dd>
              <t>measured-component+cbor</t>
            </dd>
            <dt>Required parameters:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Optional parameters:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Encoding considerations:</dt>
            <dd>
              <t>binary (CBOR)</t>
            </dd>
            <dt>Security considerations:</dt>
            <dd>
              <t><xref target="seccons"/> of RFCthis</t>
            </dd>
            <dt>Interoperability considerations:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Published specification:</dt>
            <dd>
              <t>RFCthis</t>
            </dd>
            <dt>Applications that use this media type:</dt>
            <dd>
              <t>Attesters, Verifiers and Relying Parties</t>
            </dd>
            <dt>Fragment identifier considerations:</dt>
            <dd>
              <t>The syntax and semantics of fragment identifiers are as specified for "application/cbor". (No fragment identification syntax is currently defined for "application/cbor".)</t>
            </dd>
            <dt>Person &amp; email address to contact for further information:</dt>
            <dd>
              <t>RATS WG mailing list (rats@ietf.org)</t>
            </dd>
            <dt>Intended usage:</dt>
            <dd>
              <t>COMMON</t>
            </dd>
            <dt>Restrictions on usage:</dt>
            <dd>
              <t>none</t>
            </dd>
            <dt>Author/Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Provisional registration:</dt>
            <dd>
              <t>no</t>
            </dd>
          </dl>
        </section>
        <section anchor="applicationmeasured-componentjson">
          <name><tt>application/measured-component+json</tt></name>
          <dl spacing="compact">
            <dt>Type name:</dt>
            <dd>
              <t>application</t>
            </dd>
            <dt>Subtype name:</dt>
            <dd>
              <t>measured-component+json</t>
            </dd>
            <dt>Required parameters:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Optional parameters:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Encoding considerations:</dt>
            <dd>
              <t>binary (JSON is UTF-8-encoded text)</t>
            </dd>
            <dt>Security considerations:</dt>
            <dd>
              <t><xref target="seccons"/> of RFCthis</t>
            </dd>
            <dt>Interoperability considerations:</dt>
            <dd>
              <t>n/a</t>
            </dd>
            <dt>Published specification:</dt>
            <dd>
              <t>RFCthis</t>
            </dd>
            <dt>Applications that use this media type:</dt>
            <dd>
              <t>Attesters, Verifiers and Relying Parties</t>
            </dd>
            <dt>Fragment identifier considerations:</dt>
            <dd>
              <t>The syntax and semantics of fragment identifiers are as specified for "application/json". (No fragment identification syntax is currently defined for "application/json".)</t>
            </dd>
            <dt>Person &amp; email address to contact for further information:</dt>
            <dd>
              <t>RATS WG mailing list (rats@ietf.org)</t>
            </dd>
            <dt>Intended usage:</dt>
            <dd>
              <t>COMMON</t>
            </dd>
            <dt>Restrictions on usage:</dt>
            <dd>
              <t>none</t>
            </dd>
            <dt>Author/Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Provisional registration:</dt>
            <dd>
              <t>no</t>
            </dd>
          </dl>
        </section>
      </section>
      <section anchor="measured-component-content-format-registrations">
        <name>Measured Component Content-Format Registrations</name>
        <t>IANA is requested to register two Content-Format numbers in the "CoAP Content-Formats" sub-registry, within the "Constrained RESTful Environments (CoRE) Parameters" Registry <xref target="IANA.core-parameters"/>, as follows:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Content-Type</th>
              <th align="left">Content Coding</th>
              <th align="left">ID</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">application/measured-component+cbor</td>
              <td align="left">-</td>
              <td align="left">TBD1</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">application/measured-component+json</td>
              <td align="left">-</td>
              <td align="left">TBD2</td>
              <td align="left">RFCthis</td>
            </tr>
          </tbody>
        </table>
        <t>If possible, TBD1 and TBD2 should be assigned in the 256..9999 range.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC9165">
          <front>
            <title>Additional Control Operators for the Concise Data Definition Language (CDDL)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>The Concise Data Definition Language (CDDL), standardized in RFC 8610, provides "control operators" as its main language extension point.</t>
              <t>The present document defines a number of control operators that were not yet ready at the time RFC 8610 was completed:.plus,.cat, and.det for the construction of constants;.abnf/.abnfb for including ABNF (RFC 5234 and RFC 7405) in CDDL specifications; and.feature for indicating the use of a non-basic feature in an instance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9165"/>
          <seriesInfo name="DOI" value="10.17487/RFC9165"/>
        </reference>
        <reference anchor="RFC9741">
          <front>
            <title>Concise Data Definition Language (CDDL): Additional Control Operators for the Conversion and Processing of Text</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="March" year="2025"/>
            <abstract>
              <t>The Concise Data Definition Language (CDDL), standardized in RFC 8610, provides "control operators" as its main language extension point. RFCs have added to this extension point in both an application-specific and a more general way.</t>
              <t>The present document defines a number of additional generally applicable control operators for text conversion (bytes, integers, printf-style formatting, and JSON) and for an operation on text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9741"/>
          <seriesInfo name="DOI" value="10.17487/RFC9741"/>
        </reference>
        <reference anchor="RFC9711">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="L. Lundblade" initials="L." surname="Lundblade"/>
            <author fullname="G. Mandyam" initials="G." surname="Mandyam"/>
            <author fullname="J. O'Donoghue" initials="J." surname="O'Donoghue"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>An Entity Attestation Token (EAT) provides an attested claims set that describes the state and characteristics of an entity, a device such as a smartphone, an Internet of Things (IoT) device, network equipment, or such. This claims set is used by a relying party, server, or service to determine the type and degree of trust placed in the entity.</t>
              <t>An EAT is either a CBOR Web Token (CWT) or a JSON Web Token (JWT) with attestation-oriented claims.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9711"/>
          <seriesInfo name="DOI" value="10.17487/RFC9711"/>
        </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>
        <reference anchor="IANA.named-information" target="https://www.iana.org/assignments/named-information">
          <front>
            <title>Named Information</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.media-types" target="https://www.iana.org/assignments/media-types">
          <front>
            <title>Media Types</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.core-parameters" target="https://www.iana.org/assignments/core-parameters">
          <front>
            <title>Constrained RESTful Environments (CoRE) Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC3444">
          <front>
            <title>On the Difference between Information Models and Data Models</title>
            <author fullname="A. Pras" initials="A." surname="Pras"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <date month="January" year="2003"/>
            <abstract>
              <t>There has been ongoing confusion about the differences between Information Models and Data Models for defining managed objects in network management. This document explains the differences between these terms by analyzing how existing network management model specifications (from the IETF and other bodies such as the International Telecommunication Union (ITU) or the Distributed Management Task Force (DMTF)) fit into the universe of Information Models and Data Models. This memo documents the main results of the 8th workshop of the Network Management Research Group (NMRG) of the Internet Research Task Force (IRTF) hosted by the University of Texas at Austin. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3444"/>
          <seriesInfo name="DOI" value="10.17487/RFC3444"/>
        </reference>
        <reference anchor="RFC9783">
          <front>
            <title>Arm's Platform Security Architecture (PSA) Attestation Token</title>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="S. Frost" initials="S." surname="Frost"/>
            <author fullname="M. Brossard" initials="M." surname="Brossard"/>
            <author fullname="A. Shaw" initials="A." surname="Shaw"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <date month="June" year="2025"/>
            <abstract>
              <t>Arm's Platform Security Architecture (PSA) is a family of hardware and firmware security specifications, along with open-source reference implementations, aimed at helping device makers and chip manufacturers integrate best-practice security into their products. Devices that comply with PSA can generate attestation tokens as described in this document, which serve as the foundation for various protocols, including secure provisioning and network access control. This document specifies the structure and semantics of the PSA attestation token.</t>
              <t>The PSA attestation token is a profile of the Entity Attestation Token (EAT). This specification describes the claims used in an attestation token generated by PSA-compliant systems, how these claims are serialized for transmission, and how they are cryptographically protected.</t>
              <t>This Informational document is published as an Independent Submission to improve interoperability with Arm's architecture. It is not a standard nor a product of the IETF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9783"/>
          <seriesInfo name="DOI" value="10.17487/RFC9783"/>
        </reference>
        <reference anchor="RFC9393">
          <front>
            <title>Concise Software Identification Tags</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="J. Fitzgerald-McKay" initials="J." surname="Fitzgerald-McKay"/>
            <author fullname="C. Schmidt" initials="C." surname="Schmidt"/>
            <author fullname="D. Waltermire" initials="D." surname="Waltermire"/>
            <date month="June" year="2023"/>
            <abstract>
              <t>ISO/IEC 19770-2:2015 Software Identification (SWID) tags provide an extensible XML-based structure to identify and describe individual software components, patches, and installation bundles. SWID tag representations can be too large for devices with network and storage constraints. This document defines a concise representation of SWID tags: Concise SWID (CoSWID) tags. CoSWID supports a set of semantics and features that are similar to those for SWID tags, as well as new semantics that allow CoSWIDs to describe additional types of information, all in a more memory-efficient format.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9393"/>
          <seriesInfo name="DOI" value="10.17487/RFC9393"/>
        </reference>
        <reference anchor="RFC9839">
          <front>
            <title>Unicode Character Repertoire Subsets</title>
            <author fullname="T. Bray" initials="T." surname="Bray"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="August" year="2025"/>
            <abstract>
              <t>This document discusses subsets of the Unicode character repertoire for use in protocols and data formats and specifies three subsets recommended for use in IETF specifications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9839"/>
          <seriesInfo name="DOI" value="10.17487/RFC9839"/>
        </reference>
        <reference anchor="UEFI2" target="https://uefi.org/sites/default/files/resources/UEFI_Spec_2_10_Aug29.pdf">
          <front>
            <title>Unified Extensible Firmware Interface (UEFI) Specification</title>
            <author>
              <organization>UEFI Forum, Inc.</organization>
            </author>
            <date year="2022" month="August"/>
          </front>
        </reference>
        <reference anchor="TBBR-CLIENT" target="https://developer.arm.com/documentation/den0006">
          <front>
            <title>Trusted Board Boot Requirements Client (TBBR-CLIENT) Armv8-A</title>
            <author>
              <organization>Arm Ltd</organization>
            </author>
            <date year="2018" month="September"/>
          </front>
          <seriesInfo name="ARM" value="DEN0006D"/>
        </reference>
      </references>
    </references>
    <?line 593?>

<section anchor="open-issues">
      <name>Open Issues</name>
      <t>The list of currently open issues for this documents can be found at <eref target="https://github.com/ietf-rats-wg/draft-ietf-rats-eat-measured-component/issues"/>.</t>
      <t><cref>Note to RFC Editor: please remove before publication.</cref></t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank
Carl Wallace,
Carsten Bormann,
Dionna Glaze,
Giridhar Mandyam,
Houda Labiod,
<contact fullname="Ionuț Mihalcea"/>,
Jun Zhang,
Laurence Lundblade,
Michael Richardson
and
Muhammad Usama Sardar
for providing comments, reviews and suggestions that greatly improved this document.</t>
      <t>The authors would also like to thank Ken Takayama for providing an implementation of this specification in the veraison/eat package.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1c2XrbyJW+x1PUUPliaUJS3EWybadpLW11vLUkt5N2e6wC
UCQRgQCCRTItKy8yN3mWXM1jzVmqsJCQ2056Mhcz6u9zk2Atp06d85+lTqHV
alnXU9G3rNRLfTUVx7ML8VzJJIuVKw7DVRQGKkgtaduxgoaN+t8blhs6gVzB
AG4s52nLU+m8Fcs0aSmZtla6Q8sxHVqdA8uRqVqE8XoqktS1nDBIVJBkyVSk
caasJLNXXpJ4YXCxjmDc0+OLE8vyoph+T9JepzPp9CwZKwlknSsni7103bBu
wvhqEYdZBE/P1CpMlZhdpCpJZQpjiVdx6CgXiDlvWFdqDa3dqXiLy24KTeYK
6EuawvGlt8ofuvDAEC/eWRaMF7jvpQ8PpmKtEitZyTh9/5cMJoQlBKEVeTBw
GjpNkYRxGqs5jJmsV/gB+sssXYbx1BItwXw791ZA3kkcJqklhAjjhQy8j0T0
VMziFT5UK+n5ummbmn4r41UbCCvGuViGK5mIkzBJoPP2UM+8QMZhaTTu0NYd
vvXp9zZ0KsZ8KoNAJeIicZbhXAXeQg87Fa8D71rFCXBehHMxiyLfA7k4dzwV
ONDjSRgErbOl8oLWuaeom5Gkp60nZ+clMniOdjHHt4vVh3ag0hIZKrgST7z4
ahn6H3MSTmKZBdgnFuenF6URl9C8bevm36JEAqeCVDqpZQVhvILVXivYAXF2
cnjQG/amsMMy4u/jUbcD313X5++T7mjI3yM/S/Szg0GXnzmpnz/rwjMj+CCv
wXxjpv5gMJiKVeiqos+4PxVRIltpeKUC/bA/6SNByY3n6ifj/mQqssBzoG8L
1CNRKY7w+vjktIeDC6F1uAG7Msd9OP6Qgkp5tq/EiRevbkBZxGmQqnguHSV2
seeeOI+UA80dko8GjZMLJ/0RlxvYGKQqzkAnTgOnzS1d0GEQz2whepOm6HV6
PXpMMoHSdqZ80B8leu1uh35hdpihXx2dwD6laZRM9/czNfdQ7vZBnFSy76q5
zPx0f+758C1WSZjFIFP7SMh7JPp973238x7m7k3akTuHIS+ePDlrHT47PX5x
UWXIBSIGMORJKGP8N0yBsr9knlZ2cQhiC3q9WxpgD5Xuetya3c8SaCCepW6Z
E+cqAi4gJ7pjpkDGC5UWi3TVtfLDSMVtrbn7gJwZUkH8h9+DTqczor6Jij2V
oAiZeWdnz6fi6PgFNjmyLOgFmoc/nh8/O0HAOzlMl17SsKxWqwWqlqQxifvF
UgnY9pVoGDgr0KwhAJJgv0QaChmI0P6zclJx48FAgUiho0wRPlX8INGrESq4
9uIwQKrFzTKE/UV4VcKB/rYSXpDA9iC/ASObIl1HIF2+v24K11vgUG7bmunP
wkuIlAybp0sA7sVSSOHE6ygNF7GMlp4jljJZinkWOMiitnX8Qa4iEAqEnO31
JDC/42euEnMj80kaYhNYz9zHoVZgF+I1AvM8pQZ+KF1qADzgH2HVuKg4BRla
qSZuryyNIwWKJeA5rAYUIozFtfQzlfBvh69eA1MXHnKtDcyHNZpdFlEcXnsu
tETW5vAA0E+QgPpBv9RuFLBTpDewTUkSOp5ElhFdjCZ6pkRFMuYhPaQnRSkJ
AwmIiAN/f/7yBQ10+OTlGYmY9LVxQKMHhtOHYXH7qflKuZ7ELQSKsVdp6sNw
9gr+oQlaJ7QOGEEFEvGGVrei3iAYGYgIbBY+TACdgSAnKYsYehXzGEAerXfb
AgcjuFkCg5v3cEkLWqxgYN7XLM1wo8tYRhKt2S2k63rMhq01I8sVixQQ6gUL
MTt/0e62WYlWHgC8sqwdRM44dDMSQsu6vQWfg0gatAHdRri+3OO5uxMAXx4a
TSkun5f8ikv2K2BdiILWY9F467xDqwRKA30SJ/YiTZcP8oMMRfrBmqKQlT2U
nKFGiHFIWAj2EiHzlQECe8oA/gePzBi0SWhESILNWNwesJ1FiUkF1Q1vEmKT
680BKlCMS5RoTEdSpbMUSG3K9scGNSr1qREYsVvwsdtr94mLaIbv7vba1mEW
Y0dEDqQuDPy12WIYnadFIT8Mz9+cHtEiQFBFw7Cs0QR5FQC2opil1560B3oa
NK53d23raXgDsBw3zUAwZAAmIsm8lPg032Q9sRqEEFuBHMoAnBbUVYTQKjIk
GbBEYg+ESZBUJWNYhY0mqASjqLwhCinYOWwMFCxk1ORPOXZ4WgJJrGoRQvPE
0IfEkYrk+oyaViuQ6MouElQVWCwIY6qki2xilrS/xoasyzKm7UmIuLhtPppM
qgfCU7I92yYlIfXUBiUCVxWcmoo9IXnVwF/V6anGkGsJao8AjKAOC5OFfSg8
e01NYRA2zUEWaYMgRZwFLfxMGLvA6EM4S+Vcid2zi9PDvWZVFPTiyFZsWoh/
mYkAPWjxJxT7/zcXv6652MHlXTP/ePlHaARooIQVCEJOgTFnIhrPX59fAEDR
/8WLl/T57PiH16dnx0f4+fzp7Nmz/IOlW5w/ffn62VHxqeh5+PL58+MXR9wZ
norKI6vxfPYnxEOgqvHy1cXpyxezZw1BDC3LHhmSkL04kM0oVuTHJRbbJpv5
9+Tw1d//1h2AOP0buJy9bncCFo+/jLsHA/hyA9EXz0aozV9hd9aWjCLAQHKU
fNyaCEDWTwipk2V4E0DcFivg5r+/Rc68m4qHthN1B4/1A1xw5aHhWeUh8Wz7
yVZnZmLNo5ppcm5Wnm9wukrv7E+V74bvpYcPfw8BtxKt7vj3jy3LOt3YDzBJ
R0fPUG0xziQmt0wUWnzD+BO+QT8ScNg/s1ukEAQA2ki32ZMpNOQ5acjtznaO
5s4yCMGWE2Qh0davTskIUuswCaac1YNVeRAIFLWNYwynWfK2EHsYE8B2YRfk
x6A/Qmosb2iJe2zIGJFWKpW0eIL1pfIjctC1h7JG3a3M0rZeRqz1aFzQkJFD
BEEYYEcCbTiWRgRIvEVg+qO1hC7ltRHkgFiTJuUui7aiX8E73NOK5t3egkvS
WjktHKSFTCMotz6J02PxCQAn9yDhWynGFc8w8BSfrE/g1Lbon/yv+k0/gxHz
9J54AVgL4yHxmIoRCw9gDuWMMX+T7LY4JSvqwfc4lcaukmRT/xhTNAFGfsDS
JCXgcWIw6yVvMebUAfsU6IIS320F0SjYP4hrr5D/xkzgqDkhHtpbPWAWYWSe
tMUbgCAk0QZ90xZLlgnQOQscNAE7jjbeS7V9Ssy8uO1gDKDNPA5XHB5HUSy9
BCxFZHKLhjOwBBIydDk8pAG2RKOVqDL4R54cGsw4koS+Wt+MlBljZRiDUq+z
CasS/YYjdbsiXpO9enuujaqZFh6+2zUZCrC4MBQnYmDK/eteuwP/LdOVv4eb
WgI7XJDBNFrQUUkjz0Ajf6SlfBLHHoUexBN4zCvUbkyuxfrp/eRvcI8nEzN/
EYLztVzB708xupf5A4OGOsFAA+teRFllSLJTHs/OpJA/VKURFZcmPwdBQIcX
GBBwaAYBAGbn/oIdTQgUU5SWg0gZNLZ9TrPkDa7eTsXOls5zZutRYzsVXwH3
YwbVpHHHyKPDA23iCJ9YtSREmyuPTP0qzAJykJXOHno+uraohQ4QDYCF+Auy
js5tK5fK3FEjC3OEqEum5T4jIjdcy8JL1QxBtF99zt5kqU+qTKhYY77uNNyW
RqYdTSIv5uCUvOhX57Mihi4hL4dFu+U4f9DuUuSY52ohSm2Cb+NBjLeUCBIA
MRAJSSc14WAqrxTnlZB7GW03KjdyUgWu9jylDathSVMoJDhLoG7I0SU6tqzA
DLyowPU+iOONxAMsmlyGkjOgPkQUVsaZr91yhD2AUK+URihxiXA2BHys7BDG
C7B3epRVllDoC8N44H6soRMKEiIr4WwMxBA+U2bMc/lbrYmjmRGyQXQIpBEr
SPsoZCPeA/zeIHNJVJAiJI3d/cvvDx8+vmQ/aaFAKUEYOfmyyaqjzRyN5hFK
7M7f/3aIwh0IPG5KjLrgmlhjY6WELRMYXEc3sQ6tQVaRzjBLRORLjM1Lkcr2
ekuMnlrWX//6Vz5lsNdgpFr2aJCJRxBmf0hFm77Qc/51DL/QB9FOvI9KjPXj
+3qNcXRcGtntS8awS1of+Hv89c4qMrG5xUm0jCaZryNlTMDSbkZKx4ppCJE8
Ynoe+i23sbfNSQOc0EgZT1U0K6DSRGmKbcUlCOclis8lruuSNl0HqHlUAhoV
u7Q9bG8hAjmdvZi10cdwWyXIgL3maDtet638wIO8PJ5HZ29xU6EHmH8YfYEu
Sioap0cNhHDMxRMVmqDPdSE7RE7TOfQLFvkALOGYbDJZDHAzOIokWSZiVOCE
tKwNa1sSF83HR+KtJZCbU3SIU7FPQrAHz64xgOdWLaK0hdtgvbOsrYcwCqhD
G9SoEMImi9Djqghtg+wlI/0paC+rTG2bXMNxRTLRepWU5f+bHe0talrYv4rn
Dp6oYR86TtseHIi/heV6bsuXNmDXo8eFqrXo6KyUuINvvycjDIa5aP9W/E4/
hA7MkXfUcu7LRakdfyU23uWkkOu1v/9I7OZOQqv0U9Fb79heTUdwier7sLbv
WdYGeZ/bsILKjWbjcrsxBJsFz0y7huc2mqL72PrcUvLGdY2ge++xdc+C8p4b
v0On4WNrY1/yxvo5NOqb1W02oafQYKDl9YKQd2Vr/yu9Ty7JmqxkBHpDpk7n
H0GlQTRvp9dJBHh+Z10iXy5Rw1z1QXT3ptZUXNSDewnOSIvrUEo7YRsGvSy1
ZMUvG2UWXeKk2o2WRpjYTaU8Ww6omsreXjOnoMAX3W+e5961FUA3xmQVYXMa
lfS+HnFYGlGi/4aCRPY/WLStF2HKJxDkD+mMHpmpCvIbF9pLCh+k8MUMefqk
r7k1iInyyVaA1V2LBToa4H64iow82qgAKGCP2lb4IN+mXYjnwAfzXcrZV3Kw
fERCnjp5gcHcW2Ta1Nl+aFfSfntk18DPAycPs7yuQq7Ehcuq3VSJZDmYToSd
J/+aA8bcw9a5ZS8lLxzrYRIWEnSYjWMNwuS7JA9GE3JR7JMolgMQE2GYkKMJ
jjfaRe6q5YrVJR9lQKNIMRq0bCCF5mOzbpx8407lPr4Z1jSgEWn0nZ2dcixS
qMPtTkXCtbUoP/siO1HuoM0fF4fQH1o/gu68AEF/QMNXmBg++Wn/Rv/Y4ni/
MDn9SR+n19UXlomseTqyrNXZuP/0nnFhbkSlAk+sSyT5Epg+0/rDIU+e9weH
KwNOg3RKl9LjJVgx2f8S5gQCgs6EzsaF0OdqBApuGKUET0VWmvXEnA+WglAw
GCgcmnQmjn7O0OUxj0tbRCRTSj0pPBactkjZg4jf3pYd7svkpmWYgzNeaonh
aBpkRMspeqX8kSQhMAeZNCegBKaM8SwQm7i/FE5bF0UBAgPKIpCU/8cQA+IF
Ok10M9oInctjDQZW3+iApBbsYeEflEOlCxrB6Fzv7OXzpnGVMZtUFAlILJDi
4wbhS4C5JR7/nBTQQmlw2FCqtqGiNsXlKre3VOcDPEQWY+VJTU3L7W2pgAXV
cRbwma85r0BI0klhLIWKQb9ytFhTSj5AGrnQoW1tZfFCPBfVJ82ytENF1i5P
i7HIcl0Y8U8GGQbGsKLYPMtZWZyT3hh8npPgUTkFdPXmaBh87wqBO5JrPJ8r
jibLwlI6fma7B+0zG7iOZy+0pMIEBOKP7WFnIhwVp3wOxAd7YGWKPs3KCEB3
trIjkBU+yktCAA5mcklJK+evlBMCaS2dheVBUwWvkbyAR3Qw89mEKNtPPdw4
nUGkDQwUh/WUKJBlyQ+BXy4tAwf30AdxwzhhM87iBxAjfX30x4ww1TIgDJii
0vtQOh3lDGouxnNfKRjtJsADcwIjL3ZbSCAsMXM9EB2O+3ILFmVxFPKRHlUI
FArIJrKMSPDND9d89EFnmXjuH7ssM9oAVoqT4hjGMCvRiwddDcgrsU7nuMuY
RtGmqpzQ2azZ2BMEZjUlRZQKptMnXhQdaOUpzUtN16W2nXlaAWb3UvOVwceQ
QYNRAq4YEcs3kD9FMQbFnHqlxSy85iJcZ04twxuWAB0gaw2L+eSC0PmyGkdc
6gTZ5mM+dGCTX2+FvyIe0QHkDlbeVjOGJ+g0AOZXnQidLwz1QYxmqWNKZIBH
qxCgYDQQ4KyQibnXS2FtL1VBYCoYmLeuZBPxONj7AIEBOZrOMguukmZJD9An
Wsnkig/uEVJ8kyDWcigxq+kqLI7QBJB3h05hFHpU3HGmFoDSPmbhQhQKncig
8+U0zggWN91d4EIuTwDglGUbM1vNxhXB3hds2hdHhrRl/xrNIZr+Ob2plXst
HuRecM1LuX6nxbt/aQpk8+N5zpxiOAb+P5WuR362AKNLuXCXE2OXv6mMZYfu
uuXYYcw5qrpf/5yg64RkgAW4UimfabkgKVlEDik6dXURamJixrqSnXI+aOUQ
CUWGkL5tj4gNkZo8XUhfatpZ3xC9FCHvXrbnigG7geM2Lvese3gg9h8JQ8s3
4Jlj4fMvtCUKvhFpFgR4WsDzUjhenhdb3TMvDVAaq/T3ORJMt1LatKBcU8N+
u9gpS4M5ekEya4SqJFN46nJMBo92nfUY5Sj3AG5CSvNTRhlDsAaT2yjAXWdb
tU/LtVzoktbmM4zBRNKW8loVR6OVIhaxq9qLNpdjUP6Skv241XtsSoAQZsAX
EMJFOuUSGe0Nsu7V6x3KO4kWUMqaVzJ2+oh7TnuBDm/MC5H6gOHS0UVEjHv7
xQMzfCQ99BIMebW8Qv8HbIFn6nkNOUC2zmVU6pDynaECGsMdXVTBXu8maJTM
MlL/2Uqoe2s3whiina0yJDrw3+DDLg/bOhF46g8GCn7aE5+2uUM1AJ/4iP+y
FJHsb7Ppd4xr0E6rBvX+xV6Md9xLfy6OMXlfjRaV04RagVA4CHveXKAGfVaI
CCdIiHKpwQn5bIecqJwXHI1WRcsM0TLcxUsTJAP/GvbWMeorNiUF36EKXRuc
Joz7ZU5/rzlNX7Sfxmcd2+fL2lJWgnwTyaBvjr2MsSbrzsadD0qMg6KjZb1O
zHCUHA1wGdqqXTX7epKbGLqgJ8ubdDqva4RD6QreqwALyrQNxYRjtsL8KYUb
RdKsZpFFiIGIjgPqKKm0zH3oX1lpszoNuSqxopSypovOxs31BQ18OjQn4FMf
Wl2WXVkkTGsyD1y94vucT2b+RmGU+ZKKYdkvAHFoKTew8HxkH6JT+Kc7pRQW
fqc6nH3RoIwFlbvG4o+Npv7VpLz2dXshGt12r92PnZ5uI0R31B8PoAUXjIh9
eownJ++aNGPloEP0iqmlv8CZk6Vs9YajYk5AuX2xfNCfTEadTt8djEdze9Kd
z+3OcDQ/cDv9ec/uTSbwT3do97uurQ7kfGD3DyxR+esP+t25c+D2uxNX9h8U
FJnN2xd9Q83ywWDSUxN7dDByet35qNPt2V1HKXvS6ffmyh50B105HncOJgf9
4XA+Gh0MO92hcoYTZ2j44Miuch40zXi9gwPbnhzY8sAedocHB7Lj9sfdYdft
q87YHnRsdz4ZwDj9+dAe2q6yx92BO5rPzXgHciyHqkQ2q9G+GExh+E75r9vp
PrDucjcFxceoO8qyDzFJ3W3Nu3rRQ9PVLaCzWlNVCJ+kegXwLuws1UfgSflg
g06MK5BtaszJ0BY1DYC6qSl+Lipq8aLhk6OuGXQDhitFQvV2AV2JddvapXFv
PCwyXcpgkVdl6VOTRGcPAYvw0Dj3tFeOBtiqhW7vWcUhRyX1oCNTqh9CWNlm
WZNYVaopNt5OkYpyqdx8o/bp4vAJZTKlS0s22aAmZTquPTejLGhN1FUHAb2D
XOiNTiOfm6ipvGStwkI8fJhr1G1JtzZBpHj+OTApWm2DivnbBhfzVwsy5u9d
6du7ZoXSe8CnaFALQiVavxqMNgg3fwajtkHpHsprQMr8/SNgtclPjV0V0CqN
/9XgtTG+wbICxLY3605/evy4MBlVFCMkKgda5fBXHBKYmOxuTQncLsUyn4M5
TKQDMmR4ApnmNy3AxJsSSl2eVpf1D+iWjMx9z/sgrPe/CWHsTW5DWAUWHlX/
sOb9eCoe/PxAUFF67m3hDaqzk0MxPpj0xEanRxahS9m9TBo1QNPTQMNht3Eq
bsXPDc/9GTvApwp8/Nxo0kMDDfid0eAdqAz88HNtmYIZSys29sKmL3/60+zV
6+V1dvb+4MmbyWT2/g/r1XmyfPPxqT0cTZ69+PjDh/dPOx8C+fznBo+vFdEM
+LN1fj6yf+rdLCeL4/jpy9Fwtn4f//D6u3Dx1P/44/yn4PWTPyZvnNdOqG7M
tDWA8EOgDvyD6OD1j+7o6GLx49OLwWk6u57737kXE/vNZDQ4eWG//3Hk+QOk
RNw1PqclvX9CS1CA79WSnvFDa1SgUpssRXnbqrf/MNEZSfBV6Yz2q/zSfRx1
n0dt2x7dTP8KxxLkZMuxHI2U05vbA9XpuWNnbPeVUv1eRwFKupP+eOKORs6w
B9jo2t2u44w2dm/iOEM16HbG3VFv3FfuqGPL4UH/YDKcD+eOMx6qYbcvAfrs
/nwEkc4/6MHlO5oXU9fsHW/rCYYer5C/gDTFWft9W9o3W4oHXDUF1l+1P0sZ
u3g81OJiiXu3Z4hLHgBDRt3ReLS52L5ZLFaL13uqO8K83APhDLE31nmm251E
ORhuQatXXBMfq2tP3RTXPRMxaXfBHpAu0InpTRhjZKeSZK8p8Cro7nNzyEZJ
Bx29JXsUJk7aQ7F7pFJJ9X3Y4EkWuH5eRn4PaXsb+fFvEJcTjg1LC8D4d51X
fBR3sADzle+XimrAKVh5voyxjJrn2xgJD9J4tDzrVSM120XUVJmdpz5YqorD
3PLNQSCDxw3xVnNxC3fzBpk+mti4O0JFxFu3HfBsBq+S0LFzCky+UninAfxp
n0YuqC0KpPNS7TgLAl3vgyU4157D0yDmVAt4IMxApEryW6LFuOyAh7jgChFo
YLnyAti8WJJHPQvWlCzOzKlUYhKpNYvVS9zTZ+WVlxDwvVD04oH3qXnvgCR2
2yDFdKzqeknkyzWnBKkcpCi6jmKsLsACCIm3Cz9yI8DkaxIfWgRnYkBYVeLx
TVxbLeW1h6ezJ1lMRzAwh5PRO3aoMd3h5Re3hHpX0zDyHHOGlh/JFwdBByTo
Gy8loUKg040j/gosUMkAo1uzXPllFpi/EcKYL/DT8FbXZ18LYeEZo3ctnRqg
iOCHzyMFA8V9WFCjzoWeeBTREW0sU5XJNZO5TiVW+tZFreZ/le6Q5OKW080j
WHeqalRmSzXo4B6lOY9G87oYkD6+6xGX7o1pP3WDJp49ClNevr/mi1JUyqSv
ZvFNQ3RLq7thWW//I547yn2HfgRWzIMbePtbfIPJ3V2jKI1AhzPIsIizcHRr
GLazA0iHl46pbl+ccZm3mYrm9xJaERtTffKWVsr7y9eWtRPdKI3ayKvH8xJz
6kEOvbl/Z+7IKbC5uBd4/U7rk7l294u37rZ/oXxwnpL48txwzlFhRshzzV+Y
ky6PULqDBJz43O2jMtfu+OD/i0jGelt8JJ30zqIrCuwyTss1U5Z1ntlp+cd7
hrMsffXRxcoZaJuC1mD7YF9a+SXPut+OTSVbVYvxdxvfjLXWwSWQUm+KseXt
rXFM7vjUQXMS7/fCbFQaplVtuzOR8QoLjhL0OSp31HnwfLRZwRr9Tgo8sSIN
KSQa+8z0K3ySJuKHvpmGiHCmbyi+4voiyzqJ5WK1Ucm8TSOdAKyDVH7Yrvib
b4/AyX+ZVF/eIRplwaCD5bbYfRFuj6Ar5vSMeHJnXgySnyjcMx7s0yuYHzr/
ll8LVrxjIxT6bWDUd65NYglBcaFns4tz8eY7gV2RT/hOFrGLloBfKBbGiz3e
1YArreWCGI6XNl6+QDHkC1K0Q0BF3iAAYYUNpLdK7R9ycG9K8lSMLfiFd6+w
JjRhcY1L2MZjfJmCkUb/egqGw/2PKhglVmCXX1+ctMYtU3PON1v+X+1+XbWj
uopfUe14vP8DalcXX22c6X+JL5JfQMBakI3+7P3kBYCNujeoNPAlTi3jnjTL
pZGNw9INi7Pj84t55ovj0juH8Ez77HgPpVBracPQXDg6DkQtrUKPqayhXF72
KaeIQCX/Cv8nNf8kTo82fSHxBR4B9GmhO4VHQZvuzBfgXdG9t9EdI5Pi7h0f
NYEyUctkmR/IGJdTM7M3HLXbE/gTMQqNfjmYDa4uurkvIwi6T5MkM6e6JLBY
A5hrTIhNPGqia/hLfmxSDbFg798WF/IXsKWZTe8KLF6rerPY/7I3re7znHtA
8UMHIrzHnFQIyb8+pnLdqYhMTLSicz262aKLnrne5OE+9cW1zhw8VYcAncAi
AbPCcqrcR405BDfKpJ/4lYmmpJtqt8m3lsGVdShjX7zBQntHNfEbvoNBPEGZ
DoKmdQRzBlJ858uP8PN3Xuy5SxmL57BRa7lqWk/DzJXiGaB56Dat29vb0zDI
/us/xXNvKX1HyTsQU+v7LBA/oYo3rWcyY+F7Buy1fenCqM89ZymVL87w/7GL
Rg2Gt55nS7laSVe8TuRKinP4ScbWnM/6rz1tulb6JbEcRTKoJ9liwdcwtFUw
d5O8FXalAHA72KtyiYLDCqvEH4AxF/JKrpGcKh0gMxt3jkzhaMV8GRm+Vvii
CtAZhZdNQHQlCbIJx6ZlkbD+GxcXyKUaWAAA

-->

</rfc>
