<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.3.17 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc rfcedstyle="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-rats-eat-09" category="std">

  <front>
    <title abbrev="EAT">The Entity Attestation Token (EAT)</title>

    <author initials="G." surname="Mandyam" fullname="Giridhar Mandyam">
      <organization>Qualcomm Technologies Inc.</organization>
      <address>
        <postal>
          <street>5775 Morehouse Drive</street>
          <city>San Diego</city>
          <region>California</region>
          <country>USA</country>
        </postal>
        <phone>+1 858 651 7200</phone>
        <email>mandyam@qti.qualcomm.com</email>
      </address>
    </author>
    <author initials="L." surname="Lundblade" fullname="Laurence Lundblade">
      <organization>Security Theory LLC</organization>
      <address>
        <email>lgl@island-resort.com</email>
      </address>
    </author>
    <author initials="M." surname="Ballesteros" fullname="Miguel Ballesteros">
      <organization>Qualcomm Technologies Inc.</organization>
      <address>
        <postal>
          <street>5775 Morehouse Drive</street>
          <city>San Diego</city>
          <region>California</region>
          <country>USA</country>
        </postal>
        <phone>+1 858 651 4299</phone>
        <email>mballest@qti.qualcomm.com</email>
      </address>
    </author>
    <author initials="J." surname="O'Donoghue" fullname="Jeremy O'Donoghue">
      <organization>Qualcomm Technologies Inc.</organization>
      <address>
        <postal>
          <street>279 Farnborough Road</street>
          <city>Farnborough</city>
          <code>GU14 7LS</code>
          <country>United Kingdom</country>
        </postal>
        <phone>+44 1252 363189</phone>
        <email>jodonogh@qti.qualcomm.com</email>
      </address>
    </author>

    <date year="2021" month="March" day="05"/>

    <area>Internet</area>
    <workgroup>RATS Working Group</workgroup>
    <keyword>signing attestation cbor</keyword>

    <abstract>


<t>An Entity Attestation Token (EAT) provides a signed (attested) set of
claims that describe state and characteristics of an entity, typically
a device like a phone or an IoT device.  These claims are used by a
relying party to determine how much it wishes to trust the entity.</t>

<t>An EAT is either a CWT or JWT with some attestation-oriented 
claims. To a large degree, all this document does is extend
CWT and JWT.</t>



    </abstract>


    <note title="Contributing">


<t>TBD</t>


    </note>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>Remote device attestation is a fundamental service that allows a remote
device such as a mobile phone, an Internet-of-Things (IoT) device, or
other endpoint to prove itself to a relying party, a server or a
service.  This allows the relying party to know some characteristics
about the device and decide whether it trusts the device.</t>

<t>Remote attestation is a fundamental service that can underlie other
protocols and services that need to know about the trustworthiness of
the device before proceeding. One good example is biometric
authentication where the biometric matching is done on the device. The
relying party needs to know that the device is one that is known to do
biometric matching correctly.  Another example is content protection
where the relying party wants to know the device will protect the
data.  This generalizes on to corporate enterprises that might want to
know that a device is trustworthy before allowing corporate data to be
accessed by it.</t>

<t>The notion of attestation here is large and may include, but is not
limited to the following:</t>

<t><list style="symbols">
  <t>Proof of the make and model of the device hardware (HW)</t>
  <t>Proof of the make and model of the device processor, particularly
for security-oriented chips</t>
  <t>Measurement of the software (SW) running on the device</t>
  <t>Configuration and state of the device</t>
  <t>Environmental characteristics of the device such as its GPS location</t>
</list></t>

<t>TODO: mention use for Attestation Evidence and Results.</t>

<section anchor="cwt-jwt-and-uccs" title="CWT, JWT and UCCS">

<t>For flexibility and ease of imlpementation in a wide variety of environments, EATs can be either CBOR <xref target="RFC8949"/> or JSON <xref target="ECMAScript"/> format.
This specification simultaneously describes both formats.</t>

<t>An EAT is either a CWT as defined in <xref target="RFC8392"/>, a UCCS as defined in <xref target="UCCS.Draft"/>, or a JWT as defined in <xref target="RFC7519"/>.
This specification extends those specifications with additional claims for attestation.</t>

<t>The identification of a protocol element as an EAT, whether CBOR or JSON format, follows the general conventions used by CWT, JWT and UCCS.
Largely this depends on the protocol carrying the EAT.
In some cases it may be by content type (e.g., MIME type).
In other cases it may be through use of CBOR tags.
There is no fixed mechanism across all use cases.</t>

</section>
<section anchor="cddl" title="CDDL">

<t>This specification uses CDDL, <xref target="RFC8610"/>, as the primary formalism to
define each claim.  The implementor then interprets the CDDL to come
to either the CBOR <xref target="RFC8949"/> or JSON <xref target="ECMAScript"/>
representation. In the case of JSON, Appendix E of <xref target="RFC8610"/> is
followed. Additional rules are given in <xref target="jsoninterop"/> of this
document where Appendix E is insufficient.  (Note that this is not to
define a general means to translate between CBOR and JSON, but only to
define enough such that the claims defined in this document can be
rendered unambiguously in JSON).</t>

<t>The CWT specification was authored before CDDL was available and did not use it.
This specification includes a CDDL definition of most of what is described in <xref target="RFC8392"/>.</t>

</section>
<section anchor="entity-overview" title="Entity Overview">

<t>An “entity” can be any device or device subassembly (“submodule”) that
can generate its own attestation in the form of an EAT.  The
attestation should be cryptographically verifiable by the EAT
consumer. An EAT at the device-level can be composed of several
submodule EAT’s.  It is assumed that any entity that can create an EAT
does so by means of a dedicated root-of-trust (RoT).</t>

<t>Modern devices such as a mobile phone have many different execution
environments operating with different security levels. For example, it
is common for a mobile phone to have an “apps” environment that runs
an operating system (OS) that hosts a plethora of downloadable
apps. It may also have a TEE (Trusted Execution Environment) that is
distinct, isolated, and hosts security-oriented functionality like
biometric authentication. Additionally, it may have an eSE (embedded
Secure Element) - a high security chip with defenses against HW
attacks that can serve as a RoT.  This device attestation format
allows the attested data to be tagged at a security level from which
it originates.  In general, any discrete execution environment that
has an identifiable security level can be considered an entity.</t>

</section>
<section anchor="eat-operating-models" title="EAT Operating Models">

<t>TODO: Rewrite (or eliminate) this section in light of the RATS architecture draft.</t>

<t>At least the following three participants exist in all EAT operating
models. Some operating models have additional participants.</t>

<t><list style="hanging">
  <t hangText="The Entity.">
  This is the phone, the IoT device, the sensor, the sub-assembly or
such that the attestation provides information about.</t>
  <t hangText="The Manufacturer.">
  The company that made the entity.  This may be a chip vendor, a
circuit board module vendor or a vendor of finished consumer products.</t>
  <t hangText="The Relying Party.">
  The server, service or company that makes use of the information in
the EAT about the entity.</t>
</list></t>

<t>In all operating models, the manufacturer provisions some secret
attestation key material (AKM) into the entity during manufacturing.
This might be during the manufacturer of a chip at a fabrication
facility (fab) or during final assembly of a consumer product or any
time in between. This attestation key material is used for signing
EATs.</t>

<t>In all operating models, hardware and/or software on the entity create
an EAT of the format described in this document. The EAT is always
signed by the attestation key material provisioned by the
manufacturer.</t>

<t>In all operating models, the relying party must end up knowing that
the signature on the EAT is valid and consistent with data from claims
in the EAT.  This can happen in many different ways. Here are some
examples.</t>

<t><list style="symbols">
  <t>The EAT is transmitted to the relying party. The relying party gets
corresponding key material (e.g. a root certificate) from the
manufacturer. The relying party performs the verification.</t>
  <t>The EAT is transmitted to the relying party. The relying party
transmits the EAT to a verification service offered by the
manufacturer. The server returns the validated claims.</t>
  <t>The EAT is transmitted directly to a verification service, perhaps
operated by the manufacturer or perhaps by another party. It
verifies the EAT and makes the validated claims available to the
relying party. It may even modify the claims in some way and re-sign
the EAT (with a different signing key).</t>
</list></t>

<t>All these operating models are supported and there is no preference
of one over the other. It is important to support this variety of
operating models to generally facilitate deployment and to allow for
some special scenarios. One special scenario has a validation service
that is monetized, most likely by the manufacturer.  In another, a
privacy proxy service processes the EAT before it is transmitted to
the relying party. In yet another, symmetric key material is used for
signing. In this case the manufacturer should perform the
verification, because any release of the key material would enable a
participant other than the entity to create valid signed EATs.</t>

</section>
<section anchor="what-is-not-standardized" title="What is Not Standardized">

<t>The following is not standardized for EAT, just the same they are not
standardized for CWT or JWT.</t>

<section anchor="transmission-protocol" title="Transmission Protocol">

<t>EATs may be transmitted by any protocol the same as CWTs and JWTs. For
example, they might be added in extension fields of other protocols,
bundled into an HTTP header, or just transmitted as files. This
flexibility is intentional to allow broader adoption. This flexibility
is possible because EAT’s are self-secured with signing (and possibly
additionally with encryption and anti-replay). The transmission
protocol is not required to fulfill any additional security
requirements.</t>

<t>For certain devices, a direct connection may not exist between the
EAT-producing device and the Relying Party. In such cases, the EAT
should be protected against malicious access. The use of COSE and JOSE
allows for signing and encryption of the EAT. Therefore, even if the
EAT is conveyed through intermediaries between the device and Relying
Party, such intermediaries cannot easily modify the EAT payload or
alter the signature.</t>

</section>
<section anchor="signing-scheme" title="Signing Scheme">

<t>The term “signing scheme” is used to refer to the system that includes
end-end process of establishing signing attestation key material in
the entity, signing the EAT, and verifying it. This might involve key
IDs and X.509 certificate chains or something similar but
different. The term “signing algorithm” refers just to the algorithm
ID in the COSE signing structure. No particular signing algorithm or
signing scheme is required by this standard.</t>

<t>There are three main implementation issues driving this. First, secure
non-volatile storage space in the entity for the attestation key
material may be highly limited, perhaps to only a few hundred bits, on
some small IoT chips. Second, the factory cost of provisioning key
material in each chip or device may be high, with even millisecond
delays adding to the cost of a chip. Third, privacy-preserving signing
schemes like ECDAA (Elliptic Curve Direct Anonymous Attestation) are
complex and not suitable for all use cases.</t>

<t>Over time to faciliate interoperability, some signing schemes may be
defined in EAT profiles or other documents either in the IETF or outside.</t>

</section>
</section>
</section>
<section anchor="terminology" title="Terminology">

<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”,
“SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, “MAY”, and
“OPTIONAL” 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>

<t>This document reuses terminology from JWT <xref target="RFC7519"/>, COSE
<xref target="RFC8152"/>, and CWT <xref target="RFC8392"/>.</t>

<t><list style="hanging">
  <t hangText="Claim Name.">
  The human-readable name used to identify a claim.</t>
  <t hangText="Claim Key.">
  The CBOR map key or JSON name used to identify a claim.</t>
  <t hangText="Claim Value.">
  The value portion of the claim. A claim value can be any CBOR data item or JSON value.</t>
  <t hangText="CWT Claims Set.">
  The CBOR map or JSON object that contains the claims conveyed by the CWT or JWT.</t>
  <t hangText="Attestation Key Material (AKM).">
  The key material used to sign the EAT token. If it is done
symmetrically with HMAC, then this is a simple symmetric key.
If it is done with ECC, such as an IEEE DevID <xref target="IDevID"/>, then this
is the private part of the EC key pair. If ECDAA 
is used, (e.g., as used by Enhanced Privacy ID, i.e. EPID) then it is the key material 
needed for ECDAA.</t>
</list></t>

</section>
<section anchor="the-claims" title="The Claims">

<t>This section describes new claims defined for attestation. It also
mentions several claims defined by CWT and JWT that are particularly
important for EAT.</t>

<t>Note also:
* Any claim defined for CWT or JWT may be used in an EAT including 
  those in the CWT <xref target="IANA.CWT.Claims"/> and JWT IANA <xref target="IANA.JWT.Claims"/>
  claims registries.</t>

<t><list style="symbols">
  <t>All claims are optional</t>
  <t>No claims are mandatory</t>
  <t>All claims that are not understood by implementations MUST be ignored</t>
</list></t>

<t>There are no default values or meanings assigned to absent claims
other than they are not reported. The reason for a claim’s absence may
be the implementation not supporting the claim, an inability to
determine its value, or a preference to report in a different way such
as a proprietary claim.</t>

<t>CDDL along with text descriptions is used to define each claim
indepdent of encoding.  Each claim is defined as a CDDL group (the
group is a general aggregation and type definition feature of
CDDL). In the encoding section <xref target="encoding"/>, the CDDL groups turn into
CBOR map entries and JSON name/value pairs.</t>

<t>TODO: add paragraph here about use for Attestation Evidence and for Results.</t>

<section anchor="token-id-claim-cti-and-jti" title="Token ID Claim (cti and jti)">

<t>CWT defines the “cti” claim. JWT defines the “jti” claim. These are
equivalent to each other in EAT and carry a unique token identifier as
they do in JWT and CWT.  They may be used to defend against re use of
the token but are distinct from the nonce that is used by the relying
party to guarantee freshness and defend against replay.</t>

</section>
<section anchor="timestamp-claim-iat" title="Timestamp claim (iat)">

<t>The “iat” claim defined in CWT and JWT is used to indicate the
date-of-creation of the token, the time at which the claims are
collected and the token is composed and signed.</t>

<t>The data for some claims may be held or cached for some period of
time before the token is created. This period may be long, even 
days. Examples are measurements taken at boot or a geographic
position fix taken the last time a satellite signal was received.
There are individual timestamps associated with these claims to
indicate their age is older than the “iat” timestamp.</t>

<t>CWT allows the use floating-point for this claim. EAT disallows
the use of floating-point. No token may contain an iat claim in
float-point format. Any recipient of a token with a floating-point
format iat claim may consider it an error.  A 64-bit integer 
representation of epoch time can represent a range of +/- 500 billion
years, so the only point of a floating-point timestamp is to 
have precession greater than one second. This is not needed for EAT.</t>

</section>
<section anchor="nonce-claim-nonce" title="Nonce Claim (nonce)">

<t>All EATs should have a nonce to prevent replay attacks. The nonce is
generated by the relying party, the end consumer of the token. It is
conveyed to the entity over whatever transport is in use before the
token is generated and then included in the token as the nonce claim.</t>

<t>This documents the nonce claim for registration in the IANA CWT 
claims registry. This is equivalent to the JWT nonce claim that is
already registered.</t>

<t>The nonce must be at least 8 bytes (64 bits) as fewer are unlikely
to be secure. A maximum of 64 bytes is set to limit the memory
a constrained implementation uses. This size range is not set
for the already-registered JWT nonce, but it should follow
this size recommendation when used in an EAT.</t>

<t>Multiple nonces are allowed to accommodate multistage verification
and consumption.</t>

<section anchor="nonce-cddl" title="nonce CDDL">

<figure><artwork type="CDDL"><![CDATA[
nonce-type = bstr .size (8..64)

nonce-claim = (
    nonce => nonce-type / [ 2* nonce-type ]
)
]]></artwork></figure>

</section>
</section>
<section anchor="universal-entity-id-claim-ueid" title="Universal Entity ID Claim (ueid)">

<t>UEID’s identify individual manufactured entities / devices such as a
mobile phone, a water meter, a Bluetooth speaker or a networked
security camera. It may identify the entire device or a submodule or
subsystem. It does not identify types, models or classes of
devices. It is akin to a serial number, though it does not have to be
sequential.</t>

<t>UEID’s must be universally and globally unique across manufacturers
and countries. UEIDs must also be unique across protocols and systems,
as tokens are intended to be embedded in many different protocols and
systems. No two products anywhere, even in completely different
industries made by two different manufacturers in two different
countries should have the same UEID (if they are not global and
universal in this way, then relying parties receiving them will have
to track other characteristics of the device to keep devices distinct
between manufacturers).</t>

<t>There are privacy considerations for UEID’s. See <xref target="ueidprivacyconsiderations"/>.</t>

<t>The UEID should be permanent. It should never change for a given
device / entity. In addition, it should not be reprogrammable.  UEID’s
are variable length. All implementations MUST be able to receive
UEID’s that are 33 bytes long (1 type byte and 256 bits).  The
recommended maximum sent is also 33 bytes.</t>

<t>When the entity constructs the UEID, the first byte is a type and the
following bytes the ID for that type. Several types are allowed to
accommodate different industries and different manufacturing processes
and to give options to avoid paying fees for certain types of
manufacturer registrations.</t>

<t>Creation of new types requires a Standards Action <xref target="RFC8126"/>.</t>

<texttable title="UEID Composition Types" anchor="ueid-types-table">
      <ttcol align='left'>Type Byte</ttcol>
      <ttcol align='left'>Type Name</ttcol>
      <ttcol align='left'>Specification</ttcol>
      <c>0x01</c>
      <c>RAND</c>
      <c>This is a 128, 192 or 256 bit random number generated once and stored in the device. This may be constructed by concatenating enough identifiers to make up an equivalent number of random bits and then feeding the concatenation through a cryptographic hash function. It may also be a cryptographic quality random number generated once at the beginning of the life of the device and stored. It may not be smaller than 128 bits.</c>
      <c>0x02</c>
      <c>IEEE EUI</c>
      <c>This makes use of the IEEE company identification registry. An EUI is either an EUI-48, EUI-60 or EUI-64 and made up of an OUI, OUI-36 or a CID, different registered company identifiers, and some unique per-device identifier. EUIs are often the same as or similar to MAC addresses. This type includes MAC-48, an obsolete name for EUI-48. (Note that while devices with multiple network interfaces may have multiple MAC addresses, there is only one UEID for a device) <xref target="IEEE.802-2001"/>, <xref target="OUI.Guide"/></c>
      <c>0x03</c>
      <c>IMEI</c>
      <c>This is a 14-digit identifier consisting of an 8-digit Type Allocation Code and a 6-digit serial number allocated by the manufacturer, which SHALL be encoded as byte string of length 14 with each byte as the digit’s value (not the ASCII encoding of the digit; the digit 3 encodes as 0x03, not 0x33). The IMEI value encoded SHALL NOT include Luhn checksum or SVN information. <xref target="ThreeGPP.IMEI"/></c>
</texttable>

<t>UEID’s are not designed for direct use by humans (e.g., printing on
the case of a device), so no textual representation is defined.</t>

<t>The consumer (the relying party) of a UEID MUST treat a UEID as a
completely opaque string of bytes and not make any use of its internal
structure. For example, they should not use the OUI part of a type
0x02 UEID to identify the manufacturer of the device. Instead they
should use the oemid claim that is defined elsewhere. The reasons for
this are:</t>

<t><list style="symbols">
  <t>UEIDs types may vary freely from one manufacturer to the next.</t>
  <t>New types of UEIDs may be created. For example, a type 0x07 UEID may
be created based on some other manufacturer registration scheme.</t>
  <t>Device manufacturers are allowed to change from one type of UEID to
another anytime they want. For example, they may find they can
optimize their manufacturing by switching from type 0x01 to type
0x02 or vice versa.  The main requirement on the manufacturer is
that UEIDs be universally unique.</t>
</list></t>

<section anchor="ueid-cddl" title="ueid CDDL">

<figure><artwork type="CDDL"><![CDATA[
ueid-type = bstr .size (7..33)

ueid-claim = (
     ueid => ueid-type
)
]]></artwork></figure>

</section>
</section>
<section anchor="origination-claim-origination" title="Origination Claim (origination)">

<t>TODO: this claim is likely to be dropped in favor of Endorsement identifier and locators.</t>

<t>This claim describes the parts of the device or entity that are
creating the EAT. Often it will be tied back to the device or chip
manufacturer. The following table gives some examples:</t>

<texttable>
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>Acme-TEE</c>
      <c>The EATs are generated in the TEE authored and configured by “Acme”</c>
      <c>Acme-TPM</c>
      <c>The EATs are generated in a TPM manufactured by “Acme”</c>
      <c>Acme-Linux-Kernel</c>
      <c>The EATs are generated in a Linux kernel configured and shipped by “Acme”</c>
      <c>Acme-TA</c>
      <c>The EATs are generated in a Trusted Application (TA) authored by “Acme”</c>
</texttable>

<t>TODO: consider a more structure approach where the name and the URI
and other are in separate fields.</t>

<t>TODO: This needs refinement. It is somewhat parallel to issuer claim
in CWT in that it describes the authority that created the token.</t>

<section anchor="origination-cddl" title="origination CDDL">

<figure><artwork type="CDDL"><![CDATA[
origination-claim = (
    origination => string-or-uri
)
]]></artwork></figure>

</section>
</section>
<section anchor="oemid" title="OEM Identification by IEEE (oemid)">

<t>The IEEE operates a global registry for MAC addresses and company IDs.
This claim uses that database to identify OEMs. The contents of the
claim may be either an IEEE MA-L, MA-M, MA-S or an IEEE CID
<xref target="IEEE.RA"/>.  An MA-L, formerly known as an OUI, is a 24-bit value
used as the first half of a MAC address. MA-M similarly is a 28-bit
value uses as the first part of a MAC address, and MA-S, formerly
known as OUI-36, a 36-bit value.  Many companies already have purchased
one of these. A CID is also a 24-bit value from the same space as an
MA-L, but not for use as a MAC address.  IEEE has published Guidelines
for Use of EUI, OUI, and CID <xref target="OUI.Guide"/> and provides a lookup
services <xref target="OUI.Lookup"/></t>

<t>Companies that have more than one of these IDs or MAC address blocks
should pick one and prefer that for all their devices.</t>

<t>Commonly, these are expressed in Hexadecimal Representation
<xref target="IEEE.802-2001"/> also called the Canonical format. When this claim is
encoded the order of bytes in the bstr are the same as the order in the
Hexadecimal Representation. For example, an MA-L like “AC-DE-48” would
be encoded in 3 bytes with values 0xAC, 0xDE, 0x48. For JSON encoded
tokens, this is further base64url encoded.</t>

<section anchor="oemid-cddl" title="oemid CDDL">

<figure><artwork type="CDDL"><![CDATA[
oemid-claim = (
    oemid => bstr
)
]]></artwork></figure>

</section>
</section>
<section anchor="hardware-version-claims-hardware-version-claims" title="Hardware Version Claims (hardware-version-claims)">

<t>The hardware version can be claimed at three different levels, the chip, the circuit board and the final device assembly.
An EAT can include any combination these claims.</t>

<t>The hardware version is a simple text string the format of which is set by each manufacturer.
The structure and sorting order of this text string can be specified using the version-scheme item from CoSWID <xref target="CoSWID"/>.</t>

<t>The hardware version can also be given by a 13-digit European Article Number <xref target="EAN-13"/>.
An EAN-13 is also known as an International Article Number or most commonly as a bar code.
This claim is the ASCII text representation of actual digits often printed with a bar code.
Use of this claim must comply with the EAN allocation and assignment rules.
For example, this requires the manufacturer to obtain a manufacture code from GS1.</t>

<t>Both the simple version string and EAN-13 versions may be included for the same hardware.</t>

<figure><artwork type="CDDL"><![CDATA[
chip-version-claim = (
    chip-version => tstr
)

chip-version-scheme-claim = (
    chip-version-scheme => $version-scheme
)

board-version-claim = (
    board-version => tstr
)

board-version-scheme-claim = (
    board-version-scheme => $version-scheme
)

device-version-claim = (
    device-version => tstr
)

device-version-scheme-claim = (
    device-version-scheme => $version-scheme
)


ean-type = text .regexp "[0-9]{13}"

ean-chip-version-claim = (
    ean-chip-version => ean-type
)

ean-board-version-claim = (
    ean-board-version => ean-type
)

ean-device-version-claim = (
    ean-device-version => ean-type
)

hardware-version-claims = (
    ? chip-version-claim,
    ? board-version-claim,
    ? device-version-claim,
    ? chip-version-scheme-claim,
    ? board-version-scheme-claim,
    ? device-version-scheme-claim,
    ? ean-chip-version-claim,
    ? ean-board-version-claim,
    ? ean-device-version-claim,
)

]]></artwork></figure>

</section>
<section anchor="software-description-and-version" title="Software Description and Version">

<t>TODO: Add claims that reference CoSWID.</t>

</section>
<section anchor="the-security-level-claim-security-level" title="The Security Level Claim (security-level)">

<t>This claim characterizes the device/entity 
ability to defend against attacks aimed at capturing the signing
key, forging claims and at forging EATs. This is done by
defining four security levels as described below. This is similar
to the key protection types defined by the Fast Identity Online (FIDO) Alliance <xref target="FIDO.Registry"/>.</t>

<t>These claims describe security environment and countermeasures
available on the end-entity / client device where the attestation key
reside and the claims originate.</t>

<t><list style="hanging">
  <t hangText="1 – Unrestricted">
  There is some expectation that implementor will
protect the attestation signing keys at this level. Otherwise
the EAT provides no meaningful security assurances.</t>
  <t hangText="2– Restricted">
  Entities at this level should not be general-purpose
operating environments that host features such as app download
systems, web browsers and complex productivity applications.
It is akin to the Secure Restricted level (see below) without the
security orientation. Examples include a Wi-Fi subsystem,
an IoT camera, or sensor device.</t>
  <t hangText="3 – Secure Restricted">
  Entities at this level must meet the criteria defined by FIDO Allowed
Restricted Operating Environments <xref target="FIDO.AROE"/>. Examples include TEE’s and 
schemes using virtualization-based security. Like the FIDO security goal,
security at this level is aimed at defending well against large-scale
network / remote attacks against the device.</t>
  <t hangText="4 – Hardware">
  Entities at this level must include substantial defense 
against physical or electrical attacks against the device itself.
It is assumed any potential attacker has captured the device and can 
disassemble it. Example include TPMs and Secure Elements.</t>
</list></t>

<t>The entity should claim the highest security level it achieves and no higher.
This set is not extensible so as to provide a common interoperable description of security level to the relying party.
If a particular implementation considers this claim to be inadequate, it can define its own proprietary claim.
It may consider including both this claim as a coarse indication of security and its own proprietary claim as a refined indication.</t>

<t>This claim is not intended as a replacement for a proper end-device
security certification schemes such as those based on FIPS 140 <xref target="FIPS-140"/> 
or those based on Common Criteria <xref target="Common.Criteria"/>. The 
claim made here is solely a self-claim made by the Entity Originator.</t>

<section anchor="security-level-cddl" title="security-level CDDL">

<figure><artwork type="CDDL"><![CDATA[
security-level-type = &(
    unrestricted: 1,
    restricted: 2,
    secure-restricted: 3,
    hardware: 4
)

security-level-claim = (
    security-level => security-level-type
)
]]></artwork></figure>

</section>
</section>
<section anchor="secure-boot-claim-secure-boot" title="Secure Boot Claim (secure-boot)">

<t>The value of true indicates secure boot is enabled. Secure boot is
considered enabled when base software, the firmware and operating
system, are under control of the entity manufacturer identified in the
oemid claimd described in <xref target="oemid"/>. This may because the software is
in ROM or because it is cryptographically authenticated or some
combination of the two or other.</t>

<section anchor="secure-boot-cddl" title="secure-boot CDDL">

<figure><artwork type="CDDL"><![CDATA[
secure-boot-claim = (
    secure-boot => bool
)
]]></artwork></figure>

</section>
</section>
<section anchor="debug-status-claim-debug-status" title="Debug Status Claim (debug-status)">

<t>This applies to system-wide or submodule-wide debug facilities of the
target device / submodule like JTAG and diagnostic hardware built into
chips. It applies to any software debug facilities related to root,
operating system or privileged software that allow system-wide memory
inspection, tracing or modification of non-system software like user
mode applications.</t>

<t>This characterization assumes that debug facilities can be enabled and
disabled in a dynamic way or be disabled in some permanent way such
that no enabling is possible. An example of dynamic enabling is one
where some authentication is required to enable debugging. An example
of permanent disabling is blowing a hardware fuse in a chip. The specific
type of the mechanism is not taken into account. For example, it does
not matter if authentication is by a global password or by per-device
public keys.</t>

<t>As with all claims, the absence of the debug level claim means
it is not reported. A conservative interpretation might assume
the Not Disabled state. It could however be that it is reported
in a proprietary claim.</t>

<t>This claim is not extensible so as to provide a common interoperable description of debug status to the relying party.
If a particular implementation considers this claim to be inadequate, it can define its own proprietary claim.
It may consider including both this claim as a coarse indication of debug status and its own proprietary claim as a refined indication.</t>

<t>The higher levels of debug disabling requires that all debug disabling
of the levels below it be in effect. Since the lowest level requires
that all of the target’s debug be currently disabled, all other levels
require that too.</t>

<t>There is no inheritance of claims from a submodule to a superior
module or vice versa. There is no assumption, requirement or guarantee
that the target of a superior module encompasses the targets of
submodules. Thus, every submodule must explicitly describe its own
debug state. The verifier or relying party receiving an EAT cannot
assume that debug is turned off in a submodule because there is a claim
indicating it is turned off in a superior module.</t>

<t>An individual target device / submodule may have multiple debug
facilities. The use of plural in the description of the states
refers to that, not to any aggregation or inheritance.</t>

<t>The architecture of some chips or devices may be such that a debug
facility operates for the whole chip or device. If the EAT for such
a chip includes submodules, then each submodule should independently
report the status of the whole-chip or whole-device debug facility.
This is the only way the relying party can know the debug status
of the submodules since there is no inheritance.</t>

<section anchor="enabled" title="Enabled">

<t>If any debug facility, even manufacturer hardware diagnostics, is
currently enabled, then this level must be indicated.</t>

</section>
<section anchor="disabled" title="Disabled">

<t>This level indicates all debug facilities are currently disabled. It
may be possible to enable them in the future, and it may also be
possible that they were enabled in the past after the
target device/sub-system booted/started, but they are currently disabled.</t>

</section>
<section anchor="disabled-since-boot" title="Disabled Since Boot">

<t>This level indicates all debug facilities are currently disabled and
have been so since the target device/sub-system booted/started.</t>

</section>
<section anchor="disabled-permanently" title="Disabled Permanently">

<t>This level indicates all non-manufacturer facilities are permanently
disabled such that no end user or developer cannot enable them. Only
the manufacturer indicated in the OEMID claim can enable them. This
also indicates that all debug facilities are currently disabled and
have been so since boot/start.</t>

</section>
<section anchor="disabled-fully-and-permanently" title="Disabled Fully and Permanently">

<t>This level indicates that all debug capabilities for the target
device/sub-module are permanently disabled.</t>

</section>
<section anchor="debug-status-cddl" title="debug-status CDDL">

<figure><artwork type="CDDL"><![CDATA[
debug-status-type = &(
    enabled: 0,
    disabled: 1,
    disabled-since-boot: 2,
    disabled-permanently: 3,
    disabled-fully-and-permanently: 4
)

debug-status-claim = (
    debug-status => debug-status-type
)
]]></artwork></figure>

</section>
</section>
<section anchor="including-keys" title="Including Keys">

<t>An EAT may include a cryptographic key such as a public key.
The signing of the EAT binds the key to all the other claims in the token.</t>

<t>The purpose for inclusion of the key may vary by use case.
For example, the key may be included as part of an IoT device onboarding protocol.
When the FIDO protocol includes a pubic key in its attestation message, the key represents the binding of a user, device and relying party.
This document describes how claims containing keys should be defined for the various use cases.
It does not define specific claims for specific use cases.</t>

<t>Keys in CBOR format tokens SHOULD be the COSE_Key format <xref target="RFC8152"/> and keys in JSON format tokens SHOULD be the JSON Web Key format <xref target="RFC7517"/>.
These two formats support many common key types.
Their use avoids the need to decode other serialization formats.
These two formats can be extended to support further key types through their IANA registries.</t>

<t>The general confirmation claim format <xref target="RFC8747"/>, <xref target="RFC7800"/> may also be used.
It provides key encryption. 
It also allows for inclusion by reference through a key ID.
The confirmation claim format may employed in the definition of some new claim for a a particular use case.</t>

<t>When the actual confirmation claim is included in an EAT, this document associates no use case semantics other than proof of posession.
Different EAT use cases may choose to associate further semantics.
The key in the confirmation claim MUST be protected the same as the key used to sign the EAT. 
That is, the same, equivalent or better hardware defenses, access controls, key generation and such must be used.</t>

</section>
<section anchor="the-location-claim-location" title="The Location Claim (location)">

<t>The location claim gives the location of the device entity from which the attestation originates.
It is derived from the W3C Geolocation API <xref target="W3C.GeoLoc"/>.
The latitude, longitude, altitude and accuracy must conform to <xref target="WGS84"/>.
The altitude is in meters above the <xref target="WGS84"/> ellipsoid.
The two accuracy values are positive numbers in meters.
The heading is in degrees relative to true north.
If the device is stationary, the heading is NaN (floating-point not-a-number).
The speed is the horizontal component of the device velocity in meters per second.</t>

<t>When encoding floating-point numbers half-precision should not be used.
It usually does not provide enough precision for a geographic location.
It is not a requirement that the receiver of an EAT implement half-precision, so the receiver may not be able to decode the location.</t>

<t>The location may have been cached for a period of time before token
creation. For example, it might have been minutes or hours or more
since the last contact with a GPS satellite. Either the timestamp or
age data item can be used to quantify the cached period.  The timestamp
data item is preferred as it a non-relative time.</t>

<t>The age data item can be used when the entity doesn’t know what time
it is either because it doesn’t have a clock or it isn’t set. The
entity must still have a “ticker” that can measure a time
interval. The age is the interval between acquisition of the location
data and token creation.</t>

<t>See location-related privacy considerations in <xref target="locationprivacyconsiderations"/> below.</t>

<section anchor="location-cddl" title="location CDDL">

<figure><artwork type="CDDL"><![CDATA[
location-type = {
    latitude => number,
    longitude => number,
    ? altitude => number,
    ? accuracy => number,
    ? altitude-accuracy => number,
    ? heading => number,
    ? speed => number,
    ? timestamp => ~time-int,
    ? age => uint
}

latitude = 1
longitude = 2
altitude = 3
accuracy = 4
altitude-accuracy = 5
heading = 6
speed = 7
timestamp = 8
age = 9

location-claim = (
    location => location-type
)
]]></artwork></figure>

</section>
</section>
<section anchor="the-uptime-claim-uptime" title="The Uptime Claim (uptime)">

<t>The “uptime” claim contains a value that represents the number of
seconds that have elapsed since the entity or submod was last booted.</t>

<section anchor="uptime-cddl" title="uptime CDDL">

<figure><artwork type="CDDL"><![CDATA[
uptime-claim = (
    uptime => uint
)
]]></artwork></figure>

</section>
<section anchor="the-boot-seed-claim-boot-seed" title="The Boot Seed Claim (boot-seed)">

<t>The Boot Seed claim is a random value created at system boot time that will allow differentiation of reports from different boot sessions.
This value is usually public and not protected.
It is not the same as a seed for a random number generator which must be kept secret.</t>

<figure><artwork type="CDDL"><![CDATA[
boot-seed-claim = (
    boot-seed => bytes
)
]]></artwork></figure>

</section>
</section>
<section anchor="the-intended-use-claim-intended-use" title="The Intended Use Claim (intended-use)">

<t>EAT’s may be used in the context of several different applications.  The intended-use
claim provides an indication to an EAT consumer about  the intended usage
of the token. This claim can be used as a way for an application using EAT to internally distinguish between different ways it uses EAT.</t>

<t><list style="hanging">
  <t hangText="1 – Generic">
  Generic attestation describes an application where the EAT consumer
requres the most up-to-date security assessment of the attesting entity. It
is expected that this is the most commonly-used application of EAT.</t>
  <t hangText="2– Registration">
  Entities that are registering for a new service may be expected to 
provide an attestation as part of the registration process.  This intended-use
setting indicates that the attestation is not intended for any use but registration.</t>
  <t hangText="3 – Provisioning">
  Entities may be provisioned with different values or settings by an EAT
consumer.  Examples include key material or device management trees.  The consumer
may require an EAT to assess device security state of the entity prior to provisioning.</t>
  <t hangText="4 – Certificate Issuance (Certificate Signing Request)">
  Certifying authorities (CA’s) may require attestations prior to
the issuance of certificates related to keypairs hosted at the entity.  An
EAT may be used as part of the certificate signing request (CSR).</t>
  <t hangText="5 – Proof-of-Possession">
  An EAT consumer may require an attestation as part of an accompanying 
proof-of-possession (PoP) appication. More precisely, a PoP transaction is intended
to provide to the recipient cryptographically-verifiable proof that the sender has posession
of a key.  This kind of attestation may be neceesary to verify the
security state of the entity storing the private key used in a PoP application.</t>
</list></t>

<section anchor="intended-use-cddl" title="intended-use CDDL">

<figure><artwork type="CDDL"><![CDATA[
intended-use-type = &(
    generic: 1,
    registration: 2,
    provisioning: 3,
    csr: 4,
    pop:  5
)

intended-use-claim = (
    intended-use => intended-use-type
)
]]></artwork></figure>

</section>
</section>
<section anchor="profile-claim" title="The Profile Claim (profile)">

<t>See <xref target="profiles"/> for the detailed description of a profile.</t>

<t>A profile is identified by either a URL or an OID.
Typically, the URI will reference a document describing the profile.
An OID is just a unique identifier for the profile.
It may exist anywhere in the OID tree.
There is no requirement that the named document be publicly accessible.
The primary purpose of the profile claim is to uniquely identify the profile even if it is a private profile.</t>

<t>The OID is encoded in CBOR according to <xref target="CBOR-OID"/> and the URI according to <xref target="RFC8949"/>.
Both are unwrapped and thus not tags.
The OID is always absolute and never relative.
If the claims CBOR type is a text string it is a URI and if a byte string it is an OID.</t>

<t>Note that this named “eat_profile” for JWT and is distinct from the already registered “profile” claim in the JWT claims registry.</t>

<figure><artwork type="CDDL"><![CDATA[
profile-claim = (
    profile => ~uri / ~oid
)
]]></artwork></figure>

</section>
<section anchor="the-submodules-part-of-a-token-submods" title="The Submodules Part of a Token (submods)">

<t>Some devices are complex, having many subsystems or submodules.  A
mobile phone is a good example. It may have several connectivity
submodules for communications (e.g., Wi-Fi and cellular). It may have
subsystems for low-power audio and video playback. It may have one or
more security-oriented subsystems like a TEE or a Secure Element.</t>

<t>The claims for each these can be grouped together in a submodule.</t>

<t>The submods part of a token are in a single map/object with many entries, one
per submodule.  There is only one submods map in a token. It is
identified by its specific label. It is a peer to other claims, but it
is not called a claim because it is a container for a claim set rather
than an individual claim. This submods part of a token allows what
might be called recursion. It allows claim sets inside of claim sets
inside of claims sets…</t>

<section anchor="two-types-of-submodules" title="Two Types of Submodules">

<t>Each entry in the submod map is one of two types:</t>

<t><list style="symbols">
  <t>A non-token submodule that is a map or object directly containing claims for the submodule.</t>
  <t>A nested EAT that is a fully formed, independently signed EAT token</t>
</list></t>

<section anchor="non-token-submodules" title="Non-token Submodules">

<t>This is simply a map or object containing claims about the submodule.</t>

<t>It may contain claims that are the same as its surrounding token or superior submodules. 
For example, the top-level of the token may have a UEID, a submod may have a different UEID and a further subordinate submodule may also have a UEID.</t>

<t>It is signed/encrypted along with the rest of the token and thus the claims are secured by the same Attester with the same signing key as the rest of the token.</t>

<t>If a token is in CBOR format (a CWT or a UCCS), all non-token submodules must be CBOR format.
If a token in in JSON format (a JWT), all non-token submodules must be in JSON format.</t>

<t>When decoding, this type of submodule is recognized from the other type by being a data item of type map for CBOR or type object for JSON.</t>

</section>
<section anchor="nested-eats" title="Nested EATs">

<t>This type of submodule is a fully formed secured EAT as defined in this document except that it MUST NOT be a UCCS or an unsecured JWT.
A nested token that is one that is always secured using COSE or JOSE, usually by an independent Attester.
When the surrounding EAT is a CWT or secured JWT, the nested token becomes securely bound with the other claims in the surrounding token.</t>

<t>It is allowed to have a CWT as a submodule in a JWT and vice versa, but this SHOULD be avoided unless necessary.</t>

<section anchor="surrounding-eat-is-cbor-format" title="Surrounding EAT is CBOR format">
<t>They type of an EAT nested in a CWT is determined by whether the CBOR type is a text string or a byte string.
If a text string, then it is a JWT.
If a byte string, then it is a CWT.</t>

<t>A CWT nested in a CBOR-format token is always wrapped by a byte string for easier handling with standard CBOR decoders and token processing APIs that will typically take a byte buffer as input.</t>

<t>Nested CWTs may be either a CWT CBOR tag or a CWT Protocol Message.
COSE layers in nested CWT EATs MUST be a COSE_Tagged_Message, never a COSE_Untagged_Message.
If a nested EAT has more than one level of COSE, for example one that is both encrypted and signed, a COSE_Tagged_message must be used at every level.</t>

</section>
<section anchor="surrounding-eat-is-json-format" title="Surrounding EAT is JSON format">
<t>When a CWT is nested in a JWT, it must be as a 55799 tag in order to distinguish it from a nested JWT.</t>

<t>When a nested EAT in a JWT is decoded, first remove the base64url encoding.
Next, check to see if it starts with the bytes 0xd9d9f7.
If so, then it is a CWT as a JWT will never start with these four bytes. 
If not if it is a JWT.</t>

<t>Other than the 55799 tag requirement, tag usage for CWT’s nested in a JSON format token follow the same rules as for CWTs nested in CBOR-format tokens.
It may be a CWT CBOR tag or a CWT Protocol Message and COSE_Tagged_Message MUST be used at all COSE layers.</t>

</section>
</section>
<section anchor="unsecured-jwts-and-uccs-tokens-as-submodules" title="Unsecured JWTs and UCCS Tokens as Submodules">

<t>To incorporate a UCCS token as a submodule, it MUST be as a non-token submodule. 
This can be accomplished inserting the content of the UCCS Tag into the submodule map.
The content of a UCCS tag is exactly a map of claims as required for a non-token submodule.
If the UCCS is not a UCCS tag, then it can just be inserted into the submodule map directly.</t>

<t>The definition of a nested EAT type of submodule is that it is one that is secured (signed) by an Attester.
Since UCCS tokens are unsecured, they do not fulfill this definition and must be non-token submodules.</t>

<t>To incorporate an Unsecured JWT as a submodule, the null-security JOSE wrapping should be removed.
The resulting claims set should be inserted as a non-token submodule.</t>

<t>To incorporate a UCCS token in a surrounding JSON token, the UCCS token claims should be translated from CBOR to JSON.
To incorporate an Unsecured JWT into a surrounding CBOR-format token, the null-security JOSE should be removed and the claims translated from JSON to CBOR.</t>

</section>
</section>
<section anchor="no-inheritance" title="No Inheritance">

<t>The subordinate modules do not inherit anything from the containing
token.  The subordinate modules must explicitly include all of their
claims. This is the case even for claims like the nonce and age.</t>

<t>This rule is in place for simplicity. It avoids complex inheritance
rules that might vary from one type of claim to another.</t>

</section>
<section anchor="security-levels" title="Security Levels">

<t>The security level of the non-token subordinate modules should always
be less than or equal to that of the containing modules in the case of non-token
submodules. It makes no sense for a module of lesser security to be
signing claims of a module of higher security. An example of this is a
TEE signing claims made by the non-TEE parts (e.g. the high-level OS)
of the device.</t>

<t>The opposite may be true for the nested tokens. They usually have
their own more secure key material. An example of this is an embedded
secure element.</t>

</section>
<section anchor="submodule-names" title="Submodule Names">

<t>The label or name for each submodule in the submods map is a text
string naming the submodule. No submodules may have the same name.</t>

</section>
<section anchor="submods-cddl" title="submods CDDL">

<figure><artwork type="CDDL"><![CDATA[
; The part of a token that contains all the submodules.  It is a peer
; with the claims in the token, but not a claim, only a map/object to
; hold all the submodules.

submods-part = (
    submods => submods-type
)

submods-type = { + submod-type }


; The type of a submodule which can either be a nested claim set or a
; nested separately signed token. Nested tokens are wrapped in a bstr
; or a tstr.

submod-type = (
    submod-name => eat-claim-set / nested-token
)


; When this is a bstr, the contents are an eat-token in CWT or UCCS
; format.  When this is a tstr, the contents are an eat-token in JWT
; format.

nested-token = bstr / tstr; 


; Each submodule has a unique text string name.

submod-name = tstr 


]]></artwork></figure>

</section>
</section>
</section>
<section anchor="keyid" title="Endorsements and Verification Keys">

<t>TODO: fill this section in. It will discuss key IDs, endorsement ID and such that
are needed as input needed to by the Verifier to verify the signature. This will
NOT discuss the contents of an Endorsement, just and ID/locator.</t>

</section>
<section anchor="profiles" title="Profiles">

<t>This EAT specification does not gaurantee that implementations of it will interoperate.
The variability in this specification is necessary to accommodate the widely varying use cases.
An EAT profile narrows the specification for a specific use case.
An ideal EAT profile will gauarantee interoperability.</t>

<t>The profile can be named in the token using the profile claim described in <xref target="profile-claim"/>.</t>

<section anchor="list-of-profile-issues" title="List of Profile Issues">

<t>The following is a list of EAT, CWT, UCCS, JWS, COSE, JOSE and CBOR options that a profile should address.</t>

<section anchor="use-of-json-cbor-or-both" title="Use of JSON, CBOR or both">

<t>The profile should indicate whether the token format should be CBOR, JSON, both or even some other encoding.
If some other encoding, a specification for how the CDDL described here is serialized in that encoding is necessary.</t>

<t>This should be addressed for the top-level token and for any nested tokens.
For example, a profile might require all nested tokens to be of the same encoding of the top level token.</t>

</section>
<section anchor="cbor-map-and-array-encoding" title="CBOR Map and Array Encoding">

<t>The profile should indicate whether definite-length arrays/maps, indefinite-length arrays/maps or both are allowed.
A good default is to allow only definite-length arrays/maps.</t>

<t>An alternate is to allow both definite and indefinite-length arrays/maps.
The decoder should accept either.
Encoders that need to fit on very small hardware or be actually implement in hardware can use indefinite-length encoding.</t>

<t>This applies to individual EAT claims, CWT and COSE parts of the implementation.</t>

</section>
<section anchor="cbor-string-encoding" title="CBOR String Encoding">

<t>The profile should indicate whether definite-length strings, indefinite-length strings or both are allowed.
A good default is to allow only definite-length strings.
As with map and array encoding, allowing indefinite-length strings can be beneficial for some smaller implementations.</t>

</section>
<section anchor="cosejose-protection" title="COSE/JOSE Protection">

<t>COSE and JOSE have several options for signed, MACed and encrypted messages.
EAT/CWT has the option to have no protection using UCCS and JOSE has a NULL protection option.
It is possible to implement no protection, sign only, MAC only, sign then encrypt and so on.
All combinations allowed by COSE, JOSE, JWT, CWT and UCCS are allowed by EAT.</t>

<t>The profile should list the protections that must be supported by all decoders implementing the profile.
The encoders them must implement a subset of what is listed for the decoders, perhaps only one.</t>

<t>Implementations may choose to sign or MAC before encryption so that the implementation layer doing the signing or MACing can be the smallest.
It is often easier to make smaller implementations more secure, perhaps even implementing in solely in hardware.
The key material for a signature or MAC is a private key, while for encryption it is likely to be a public key.
The key for encryption requires less protection.</t>

</section>
<section anchor="cosejose-algorithms" title="COSE/JOSE Algorithms">

<t>The profile document should list the COSE algorithms that a Verifier must implement.
The Attester will select one of them. 
Since there is no negotiation, the Verifier should implement all algorithms listed in the profile.</t>

</section>
<section anchor="verification-key-identification" title="Verification Key Identification">

<t>Section <xref target="keyid"/> describes a number of methods for identifying a verification key.
The profile document should specify one of these or one that is not described.
The ones described in this document are only roughly described.
The profile document should go into the full detail.</t>

</section>
<section anchor="endorsement-identification" title="Endorsement Identification">

<t>Similar to, or perhaps the same as Verification Key Identification, the profile may wish to specify how Endorsements are to be identified.
However note that Endorsement Identification is optional, where as key identification is not.</t>

</section>
<section anchor="required-claims" title="Required Claims">

<t>The profile can list claims whose absence results in Verification failure.</t>

</section>
<section anchor="prohibited-claims" title="Prohibited Claims">

<t>The profile can list claims whose presence results in Verification failure.</t>

</section>
<section anchor="additional-claims" title="Additional Claims">
<t>The profile may describe entirely new claims.
These claims can be required or optional.</t>

</section>
<section anchor="refined-claim-definition" title="Refined Claim Definition">

<t>The profile may lock down optional aspects of individual claims.
For example, it may require altitude in the location claim, or it may require that HW Versions always be described using EAN-13.</t>

</section>
<section anchor="cbor-tags" title="CBOR Tags">

<t>The profile should specify whether the token should be a CWT Tag or not.
Similarly, the profile should specify whether the token should be a UCCS tag or not.</t>

<t>When COSE protection is used, the profile should specify whether COSE tags are used or not.
Note that RFC 8392 requires COSE tags be used in a CWT tag.</t>

<t>Often a tag is unncessary because the surrounding or carrying protocol identifies the object as an EAT.</t>

</section>
</section>
</section>
<section anchor="encoding" title="Encoding">
<t>This makes use of the types defined in CDDL Appendix D, Standard Prelude.</t>

<t>Some of the CDDL included here is for claims that are defined in CWT <xref target="RFC8392"/> or JWT <xref target="RFC7519"/> or are in the IANA CWT or JWT registries.
CDDL was not in use when these claims where defined.</t>

<section anchor="common-cddl-types" title="Common CDDL Types">

<t>time-int is identical to the epoch-based time, but disallows
floating-point representation.</t>

<figure><artwork type="CDDL"><![CDATA[
string-or-uri = tstr 

time-int = #6.1(int)
]]></artwork></figure>

</section>
<section anchor="cddl-for-cwt-defined-claims" title="CDDL for CWT-defined Claims">

<t>This section provides CDDL for the claims defined in CWT. It is
non-normative as <xref target="RFC8392"/> is the authoritative definition of these
claims.</t>

<figure><artwork type="CDDL"><![CDATA[
$$eat-extension //= (
    ? issuer => text,
    ? subject => text,
    ? audience => text,
    ? expiration => time,
    ? not-before => time,
    ? issued-at => time,
    ? cwt-id => bytes,
)

issuer = 1
subject = 2
audience = 3
expiration = 4
not-before = 5
issued-at = 6
cwt-id = 7

]]></artwork></figure>

</section>
<section anchor="json" title="JSON">

<section anchor="json-labels" title="JSON Labels">

<figure><artwork type="JSON"><![CDATA[
; The following are Claim Keys (labels) assigned for JSON-encoded tokens.

ueid /= "ueid"
nonce /= "nonce"
origination /= "origination"
oemid /= "oemid"
security-level /= "seclevel"
secure-boot /= "secboot"
debug-status /= "dbgstat"
location /= "location"
uptime /= "uptime"
profile /= "eat-profile"
intended-use /= "intuse"
boot-seed /= "bootseed"
submods /= "submods"
timestamp /= "timestamp"

latitude /= "lat"
longitude /= "long"
altitude /= "alt"
accuracy /= "accry"
altitude-accuracy /= "alt-accry"
heading /= "heading"
speed /= "speed"
]]></artwork></figure>

</section>
<section anchor="jsoninterop" title="JSON Interoperability">

<t>JSON should be encoded per RFC 8610 Appendix E. In addition, the
following CDDL types are encoded in JSON as follows:</t>

<t><list style="symbols">
  <t>bstr – must be base64url encoded</t>
  <t>time – must be encoded as NumericDate as described section 2 of <xref target="RFC7519"/>.</t>
  <t>string-or-uri – must be encoded as StringOrURI as described section 2 of <xref target="RFC7519"/>.</t>
  <t>uri – must be a URI <xref target="RFC3986"/>.</t>
  <t>oid – encoded as a string using the well established dotted-decimal notation (e.g., the text “1.2.250.1”).</t>
</list></t>

</section>
</section>
<section anchor="cbor" title="CBOR">

<section anchor="cbor-interoperability" title="CBOR Interoperability">

<t>CBOR allows data items to be serialized in more than one form.
If the sender uses a form that the receiver can’t decode, there will not be interoperability.</t>

<t>This specification gives no blanket requirements to narrow CBOR serialization for all uses of EAT.
This allows individual uses to tailor serialization to the environment.
It also may result in EAT implementations that don’t interoperate.</t>

<t>One way to guarantee interoperability is to clearly specify CBOR serialization in a profile document.
See <xref target="profiles"/> for a list of serialization issues that should be addressed.</t>

<t>EAT will be commonly used where the device generating the attestation is constrained and the receiver/verifier of the attestation is a capacious server.
Following is a set of serialization requirements that work well for that use case and are guaranteed to interoperate.
Use of this serialization is recommended where possible, but not required.
An EAT profile may just reference the following section rather than spell out serialization details.</t>

<section anchor="eat-constrained-device-serialization" title="EAT Constrained Device Serialization">

<t><list style="symbols">
  <t>Preferred serialization described in section 4.1 of <xref target="RFC8949"/> is not required.
The EAT decoder must accept all forms of number serialization.
The EAT encoder may use any form it wishes.</t>
  <t>The EAT decoder must accept indefinite length arrays and maps as described in section 3.2.2 of <xref target="RFC8949"/>.
The EAT encoder may use indefinite length arrays and maps if it wishes.</t>
  <t>The EAT decoder must accept indefinite length strings as described in section 3.2.3 of <xref target="RFC8949"/>.
The EAT encoder may use indefinite length strings if it wishes.</t>
  <t>Sorting of maps by key is not required.
The EAT decoder must not rely on sorting.</t>
  <t>Deterministic encoding described in Section 4.2 of <xref target="RFC8949"/> is not required.</t>
  <t>Basic validity described in section 5.3.1 of <xref target="RFC8949"/> must be followed.
The EAT encoder must not send duplicate map keys/labels or invalid UTF-8 strings.</t>
</list></t>

</section>
</section>
</section>
<section anchor="collected-cddl" title="Collected CDDL">

<figure><artwork type="CDDL"><![CDATA[
; This is the top-level definition of the claims in EAT tokens.  To
; form an actual EAT Token, this claim set is enclosed in a COSE, JOSE
; or UCCS message.

eat-claim-set = {
    ? ueid-claim,
    ? nonce-claim,
    ? origination-claim,
    ? oemid-claim,
    ? hardware-version-claims,
    ? security-level-claim,
    ? secure-boot-claim,
    ? debug-status-claim,
    ? location-claim,
    ? uptime-claim,
    ? submods-part,
    * $$eat-extension,
}


; This is the top-level definition of an EAT Token.  It is a CWT, JWT
; or UCSS where the payload is an eat-claim-set. A JWT_Message is what
; is defined by JWT in RFC 7519. (RFC 7519 doesn't use CDDL so a there
; is no actual CDDL definition of JWT_Message).

eat-token = EAT_Tagged_Message / EAT_Untagged_Message / JWT_Message


; This is CBOR-format EAT token in the CWT or UCCS format that is a
; tag.  COSE_Tagged_message is defined in RFC 8152.  Tag 601 is
; proposed by the UCCS draft, but not yet assigned.

EAT_Tagged_Message = #6.61(COSE_Tagged_Message) / #6.601(eat-claim-set)


; This is a CBOR-format EAT token that is a CWT or UCSS that is not a
; tag COSE_Tagged_message and COSE_Untagged_Message are defined in RFC
; 8152.

EAT_Untagged_Message = COSE_Tagged_Message / COSE_Untagged_Message / UCCS_Untagged_Message


; This is an "unwrapped" UCCS tag. Unwrapping a tag means to use the
; definition of its content without the preceding type 6 tag
; integer. Since a UCCS is nothing but a tag for an unsecured CWT
; claim set, unwrapping reduces to a bare eat-claim-set.

UCCS_Untagged_Message = eat-claim-set

string-or-uri = tstr 

time-int = #6.1(int)
$$eat-extension //= (
    ? issuer => text,
    ? subject => text,
    ? audience => text,
    ? expiration => time,
    ? not-before => time,
    ? issued-at => time,
    ? cwt-id => bytes,
)

issuer = 1
subject = 2
audience = 3
expiration = 4
not-before = 5
issued-at = 6
cwt-id = 7

debug-status-type = &(
    enabled: 0,
    disabled: 1,
    disabled-since-boot: 2,
    disabled-permanently: 3,
    disabled-fully-and-permanently: 4
)

debug-status-claim = (
    debug-status => debug-status-type
)
location-type = {
    latitude => number,
    longitude => number,
    ? altitude => number,
    ? accuracy => number,
    ? altitude-accuracy => number,
    ? heading => number,
    ? speed => number,
    ? timestamp => ~time-int,
    ? age => uint
}

latitude = 1
longitude = 2
altitude = 3
accuracy = 4
altitude-accuracy = 5
heading = 6
speed = 7
timestamp = 8
age = 9

location-claim = (
    location => location-type
)
nonce-type = bstr .size (8..64)

nonce-claim = (
    nonce => nonce-type / [ 2* nonce-type ]
)
oemid-claim = (
    oemid => bstr
)
; copied from CoSWID
; TODO: how to properly make reference to CoSWID and have tool validate

  $version-scheme /= multipartnumeric
  $version-scheme /= multipartnumeric-suffix
  $version-scheme /= alphanumeric
  $version-scheme /= decimal
  $version-scheme /= semver
  $version-scheme /= uint / text
  multipartnumeric = 1
  multipartnumeric-suffix = 2
  alphanumeric = 3
  decimal = 4
  semver = 16384

chip-version-claim = (
    chip-version => tstr
)

chip-version-scheme-claim = (
    chip-version-scheme => $version-scheme
)

board-version-claim = (
    board-version => tstr
)

board-version-scheme-claim = (
    board-version-scheme => $version-scheme
)

device-version-claim = (
    device-version => tstr
)

device-version-scheme-claim = (
    device-version-scheme => $version-scheme
)


ean-type = text .regexp "[0-9]{13}"

ean-chip-version-claim = (
    ean-chip-version => ean-type
)

ean-board-version-claim = (
    ean-board-version => ean-type
)

ean-device-version-claim = (
    ean-device-version => ean-type
)

hardware-version-claims = (
    ? chip-version-claim,
    ? board-version-claim,
    ? device-version-claim,
    ? chip-version-scheme-claim,
    ? board-version-scheme-claim,
    ? device-version-scheme-claim,
    ? ean-chip-version-claim,
    ? ean-board-version-claim,
    ? ean-device-version-claim,
)

origination-claim = (
    origination => string-or-uri
)
secure-boot-claim = (
    secure-boot => bool
)
security-level-type = &(
    unrestricted: 1,
    restricted: 2,
    secure-restricted: 3,
    hardware: 4
)

security-level-claim = (
    security-level => security-level-type
)
; The part of a token that contains all the submodules.  It is a peer
; with the claims in the token, but not a claim, only a map/object to
; hold all the submodules.

submods-part = (
    submods => submods-type
)

submods-type = { + submod-type }


; The type of a submodule which can either be a nested claim set or a
; nested separately signed token. Nested tokens are wrapped in a bstr
; or a tstr.

submod-type = (
    submod-name => eat-claim-set / nested-token
)


; When this is a bstr, the contents are an eat-token in CWT or UCCS
; format.  When this is a tstr, the contents are an eat-token in JWT
; format.

nested-token = bstr / tstr; 


; Each submodule has a unique text string name.

submod-name = tstr 


ueid-type = bstr .size (7..33)

ueid-claim = (
     ueid => ueid-type
)
intended-use-type = &(
    generic: 1,
    registration: 2,
    provisioning: 3,
    csr: 4,
    pop:  5
)

intended-use-claim = (
    intended-use => intended-use-type
)
uptime-claim = (
    uptime => uint
)
; The following Claim Keys (labels) are pre-assigned by IANA.
; They are for CBOR-based tokens (CWT and UCCS).
; They are not expected to change in the final publication as an RFC.

nonce = 10
ueid = 11
oemid = 13
security-level = 14
secure-boot = 15
debug-status = 16
location = 17
profile = 18
submods = 20

; These are not yet assigned in any way and may change.
; These are intentionally above 24 so as to not use up
; single-byte labels.

origination = <TBD30>
uptime = <TBD31>
chip-version = <TBD32>
board-version = <TBD33>
device-version = <TBD34>
chip-version-scheme = <TBD35>
board-version-scheme = <TBD36>
device-version-scheme = <TBD37>
ean-chip-version = <TBD38>
ean-board-version = <TBD39>
ean-device-version = <TBD40>
intended-use = <TBD41>
; The following are Claim Keys (labels) assigned for JSON-encoded tokens.

ueid /= "ueid"
nonce /= "nonce"
origination /= "origination"
oemid /= "oemid"
security-level /= "seclevel"
secure-boot /= "secboot"
debug-status /= "dbgstat"
location /= "location"
uptime /= "uptime"
profile /= "eat-profile"
intended-use /= "intuse"
boot-seed /= "bootseed"
submods /= "submods"
timestamp /= "timestamp"

latitude /= "lat"
longitude /= "long"
altitude /= "alt"
accuracy /= "accry"
altitude-accuracy /= "alt-accry"
heading /= "heading"
speed /= "speed"
]]></artwork></figure>

</section>
</section>
<section anchor="iana-considerations" title="IANA Considerations">

<section anchor="reuse-of-cbor-web-token-cwt-claims-registry" title="Reuse of CBOR Web Token (CWT) Claims Registry">

<t>Claims defined for EAT are compatible with those of CWT
so the CWT Claims Registry is re used. No new IANA registry
is created. All EAT claims should be registered in the
CWT and JWT Claims Registries.</t>

</section>
<section anchor="claim-characteristics" title="Claim Characteristics">

<t>The following is design guidance for creating new EAT claims, particularly those to be registered with IANA.</t>

<t>Much of this guidance is generic and could also be considered when designing new CWT or JWT claims.</t>

<section anchor="interoperability-and-relying-party-orientation" title="Interoperability and Relying Party Orientation">

<t>It is a broad goal that EATs can be processed by relying parties in a general way regardless of the type, manufacturer or technology of the device from which they originate. 
It is a goal that there be general-purpose verification implementations that can verify tokens for large numbers of use cases with special cases and configurations for different device types.
This is a goal of interoperability of the semantics of claims themselves, not just of the signing, encoding and serialization formats.</t>

<t>This is a lofty goal and difficult to achieve broadly requiring careful definition of claims in a technology neutral way.
Sometimes it will be difficult to design a claim that can represent the semantics of data from very different device types.
However, the goal remains even when difficult.</t>

</section>
<section anchor="operating-system-and-technology-neutral" title="Operating System and Technology Neutral">

<t>Claims should be defined such that they are not specific to an operating system.
They should be applicable to multiple large high-level operating systems from different vendors.
They should also be applicable to multiple small embedded operating systems from multiple vendors and everything in between.</t>

<t>Claims should not be defined such that they are specific to a SW environment or programming language.</t>

<t>Claims should not be defined such that they are specific to a chip or particular hardware. 
For example, they should not just be the contents of some HW status register as it is unlikely that the same HW status register with the same bits exists on a chip of a different manufacturer.</t>

<t>The boot and debug state claims in this document are an example of a claim that has been defined in this neutral way.</t>

</section>
<section anchor="security-level-neutral" title="Security Level Neutral">

<t>Many use cases will have EATs generated by some of the most secure hardware and software that exists. 
Secure Elements and smart cards are examples of this. 
However, EAT is intended for use in low-security use cases the same as high-security use case.
For example, an app on a mobile device may generate EATs on its own.</t>

<t>Claims should be defined and registered on the basis of whether they are useful and interoperable, not based on security level.
In particular, there should be no exclusion of claims because they are just used only in low-security environments.</t>

</section>
<section anchor="reuse-of-extant-data-formats" title="Reuse of Extant Data Formats">

<t>Where possible, claims should use already standardized data items, identifiers and formats.
This takes advantage of the expertise put into creating those formats and improves interoperability.</t>

<t>Often extant claims will not be defined in an encoding or serialization format used by EAT.
It is preferred to define a CBOR and JSON format for them so that EAT implementations do not require a plethora of encoders and decoders for serialization formats.</t>

<t>In some cases, it may be better to use the encoding and serialization as is.
For example, signed X.509 certificates and CRLs can be carried as-is in a byte string.
This retains interoperability with the extensive infrastructure for creating and processing X.509 certificates and CRLs.</t>

</section>
<section anchor="proprietary-claims" title="Proprietary Claims">

<t>EAT allows the definition and use of proprietary claims.</t>

<t>For example, a device manufacturer may generate a token with proprietary claims intended only for verification by a service offered by that device manufacturer. 
This is a supported use case.</t>

<t>In many cases proprietary claims will be the easiest and most obvious way to proceed, however for better interoperability, use of general standardized claims is preferred.</t>

</section>
</section>
<section anchor="claims-registered-by-this-document" title="Claims Registered by This Document">

<t>This specification adds the following values to the “JSON Web Token
Claims” registry established by <xref target="RFC7519"/> and the “CBOR Web Token Claims Registry”
established by <xref target="RFC8392"/>. Each entry below is an addition to both registries (except
for the nonce claim which is already registered for JWT, but not registered for CWT).</t>

<t>The “Claim Description”, “Change Controller” and “Specification Documents” are common and equivalent for the JWT and CWT registries.
The “Claim Key” and “Claim Value Types(s)” are for the CWT registry only.
The “Claim Name” is as defined for the CWT registry, not the JWT registry.
The “JWT Claim Name” is equivalent to the “Claim Name” in the JWT registry.</t>

<section anchor="claims-for-early-assignment" title="Claims for Early Assignment">
<t>RFC Editor: in the final publication this section should be combined with the following
section as it will no longer be necessary to distinguish claims with early assignment.
Also, the following paragraph should be removed.</t>

<t>The claims in this section have been (requested for / given) early assignment according to <xref target="RFC7120"/>.
They have been assigned values and registered before final publication of this document.
While their semantics is not expected to change in final publication, it is possible that they will.
The JWT Claim Names and CWT Claim Keys are not expected to change.</t>

<t><list style="symbols">
  <t>Claim Name: Nonce</t>
  <t>Claim Description: Nonce</t>
  <t>JWT Claim Name: “nonce” (already registered for JWT)</t>
  <t>Claim Key: 10</t>
  <t>Claim Value Type(s): byte string</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <xref target="OpenIDConnectCore"/>, <spanx style="strong">this document</spanx></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: UEID</t>
  <t>Claim Description: The Universal Entity ID</t>
  <t>JWT Claim Name: “ueid”</t>
  <t>CWT Claim Key: 11</t>
  <t>Claim Value Type(s): byte string</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <spanx style="strong">this document</spanx></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: OEMID</t>
  <t>Claim Description: IEEE-based OEM ID</t>
  <t>JWT Claim Name: “oemid”</t>
  <t>Claim Key: 13</t>
  <t>Claim Value Type(s): byte string</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <spanx style="strong">this document</spanx></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Security Level</t>
  <t>Claim Description: Characterization of the security of an Attester or submodule</t>
  <t>JWT Claim Name: “seclevel”</t>
  <t>Claim Key: 14</t>
  <t>Claim Value Type(s): integer</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <spanx style="strong">this document</spanx></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Secure Boot</t>
  <t>Claim Description: Indicate whether the boot was secure</t>
  <t>JWT Claim Name: “secboot”</t>
  <t>Claim Key: 15</t>
  <t>Claim Value Type(s): Boolean</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <spanx style="strong">this document</spanx></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Debug Status</t>
  <t>Claim Description: Indicate status of debug facilities</t>
  <t>JWT Claim Name: “dbgstat”</t>
  <t>Claim Key: 16</t>
  <t>Claim Value Type(s): integer</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <spanx style="strong">this document</spanx></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Location</t>
  <t>Claim Description: The geographic location</t>
  <t>JWT Claim Name: “location”</t>
  <t>Claim Key: 17</t>
  <t>Claim Value Type(s): map</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <spanx style="strong">this document</spanx></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Profile</t>
  <t>Claim Description: Indicates the EAT profile followed</t>
  <t>JWT Claim Name: “eat_profile”</t>
  <t>Claim Key: 18</t>
  <t>Claim Value Type(s): map</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <spanx style="strong">this document</spanx></t>
</list></t>

<t> </t>

<t><list style="symbols">
  <t>Claim Name: Submodules Section</t>
  <t>Claim Description: The section containing submodules (not actually a claim)</t>
  <t>JWT Claim Name: “submods”</t>
  <t>Claim Key: 20</t>
  <t>Claim Value Type(s): map</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): <spanx style="strong">this document</spanx></t>
</list></t>

</section>
<section anchor="to-be-assigned-claims" title="To be Assigned Claims">

<t>TODO: add the rest of the claims in here</t>

</section>
</section>
</section>
<section anchor="privacyconsiderations" title="Privacy Considerations">

<t>Certain EAT claims can be used to track the owner of an entity and
therefore, implementations should consider providing privacy-preserving
options dependent on the intended usage of the EAT.  Examples would
include suppression of location claims for EAT’s provided to
unauthenticated consumers.</t>

<section anchor="ueidprivacyconsiderations" title="UEID Privacy Considerations">

<t>A UEID is usually not privacy-preserving. Any set of relying parties
that receives tokens that happen to be from a single device will be
able to know the tokens are all from the same device and be able to
track the device. Thus, in many usage situations ueid violates
governmental privacy regulation. In other usage situations UEID will
not be allowed for certain products like browsers that give privacy
for the end user. It will often be the case that tokens will not have
a UEID for these reasons.</t>

<t>There are several strategies that can be used to still be able to put
UEID’s in tokens:</t>

<t><list style="symbols">
  <t>The device obtains explicit permission from the user of the device
to use the UEID. This may be through a prompt. It may also be through
a license agreement.  For example, agreements for some online banking
and brokerage services might already cover use of a UEID.</t>
  <t>The UEID is used only in a particular context or particular use
case. It is used only by one relying party.</t>
  <t>The device authenticates the relying party and generates a derived
UEID just for that particular relying party.  For example, the relying
party could prove their identity cryptographically to the device, then
the device generates a UEID just for that relying party by hashing a
proofed relying party ID with the main device UEID.</t>
</list></t>

<t>Note that some of these privacy preservation strategies result in multiple UEIDs
per device. Each UEID is used in a different context, use case or system 
on the device. However, from the view of the relying party, there is just
one UEID and it is still globally universal across manufacturers.</t>

</section>
<section anchor="locationprivacyconsiderations" title="Location Privacy Considerations">

<t>Geographic location is most always considered personally identifiable information.
Implementers should consider laws and regulations governing the transmission of location data from end user devices to servers and services.
Implementers should consider using location management facilities offered by the operating system on the device generating the attestation.
For example, many mobile phones prompt the user for permission when before sending location data.</t>

</section>
</section>
<section anchor="securitycons" title="Security Considerations">

<t>The security considerations provided in Section 8 of <xref target="RFC8392"/> and Section 11
of <xref target="RFC7519"/> apply to EAT in its CWT and JWT form, respectively.  In addition, 
implementors should consider the following.</t>

<section anchor="key-provisioning" title="Key Provisioning">

<t>Private key material can be used to sign and/or encrypt the EAT, or
can be used to derive the keys used for signing and/or encryption.  In
some instances, the manufacturer of the entity may create the key
material separately and provision the key material in the entity
itself.  The manfuacturer of any entity that is capable of producing
an EAT should take care to ensure that any private key material be
suitably protected prior to provisioning the key material in the
entity itself.  This can require creation of key material in an
enclave (see <xref target="RFC4949"/> for definition of “enclave”), secure
transmission of the key material from the enclave to the entity using
an appropriate protocol, and persistence of the private key material
in some form of secure storage to which (preferably) only the entity
has access.</t>

<section anchor="transmission-of-key-material" title="Transmission of Key Material">

<t>Regarding transmission of key material from the enclave to the entity,
the key material may pass through one or more intermediaries.
Therefore some form of protection (“key wrapping”) may be necessary.
The transmission itself may be performed electronically, but can also
be done by human courier.  In the latter case, there should be minimal
to no exposure of the key material to the human (e.g. encrypted
portable memory).  Moreover, the human should transport the key
material directly from the secure enclave where it was created to a
destination secure enclave where it can be provisioned.</t>

</section>
</section>
<section anchor="transport-security" title="Transport Security">

<t>As stated in Section 8 of <xref target="RFC8392"/>, “The security of the CWT relies
upon on the protections offered by COSE”.  Similar considerations
apply to EAT when sent as a CWT.  However, EAT introduces the concept
of a nonce to protect against replay.  Since an EAT may be created by
an entity that may not support the same type of transport security as
the consumer of the EAT, intermediaries may be required to bridge
communications between the entity and consumer.  As a result, it is
RECOMMENDED that both the consumer create a nonce, and the entity
leverage the nonce along with COSE mechanisms for encryption and/or
signing to create the EAT.</t>

<t>Similar considerations apply to the use of EAT as a JWT.  Although the
security of a JWT leverages the JSON Web Encryption (JWE) and JSON Web
Signature (JWS) specifications, it is still recommended to make use of
the EAT nonce.</t>

</section>
<section anchor="multiple-eat-consumers" title="Multiple EAT Consumers">

<t>In many cases, more than one EAT consumer may be required to fully
verify the entity attestation.  Examples include individual consumers
for nested EATs, or consumers for individual claims with an EAT.  When
multiple consumers are required for verification of an EAT, it is
important to minimize information exposure to each consumer.  In
addition, the communication between multiple consumers should be
secure.</t>

<t>For instance, consider the example of an encrypted and signed EAT with
multiple claims.  A consumer may receive the EAT (denoted as the
“receiving consumer”), decrypt its payload, verify its signature, but
then pass specific subsets of claims to other consumers for evaluation
(“downstream consumers”).  Since any COSE encryption will be removed
by the receiving consumer, the communication of claim subsets to any
downstream consumer should leverage a secure protocol (e.g.one that
uses transport-layer security, i.e. TLS),</t>

<t>However, assume the EAT of the previous example is hierarchical and
each claim subset for a downstream consumer is created in the form of
a nested EAT.  Then transport security between the receiving and
downstream consumers is not strictly required.  Nevertheless,
downstream consumers of a nested EAT should provide a nonce unique to
the EAT they are consuming.</t>

</section>
</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference  anchor="RFC2119" target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<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="RFC8949" target='https://www.rfc-editor.org/info/rfc8949'>
<front>
<title>Concise Binary Object Representation (CBOR)</title>
<author initials='C.' surname='Bormann' fullname='C. Bormann'><organization /></author>
<author initials='P.' surname='Hoffman' fullname='P. Hoffman'><organization /></author>
<date year='2020' month='December' />
<abstract><t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t><t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049.  It does not create a new version of the format.</t></abstract>
</front>
<seriesInfo name='STD' value='94'/>
<seriesInfo name='RFC' value='8949'/>
<seriesInfo name='DOI' value='10.17487/RFC8949'/>
</reference>



<reference  anchor="RFC7517" target='https://www.rfc-editor.org/info/rfc7517'>
<front>
<title>JSON Web Key (JWK)</title>
<author initials='M.' surname='Jones' fullname='M. Jones'><organization /></author>
<date year='2015' month='May' />
<abstract><t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key.  This specification also defines a JWK Set JSON data structure that represents a set of JWKs.  Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t></abstract>
</front>
<seriesInfo name='RFC' value='7517'/>
<seriesInfo name='DOI' value='10.17487/RFC7517'/>
</reference>



<reference  anchor="RFC7519" target='https://www.rfc-editor.org/info/rfc7519'>
<front>
<title>JSON Web Token (JWT)</title>
<author initials='M.' surname='Jones' fullname='M. Jones'><organization /></author>
<author initials='J.' surname='Bradley' fullname='J. Bradley'><organization /></author>
<author initials='N.' surname='Sakimura' fullname='N. Sakimura'><organization /></author>
<date year='2015' month='May' />
<abstract><t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties.  The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t></abstract>
</front>
<seriesInfo name='RFC' value='7519'/>
<seriesInfo name='DOI' value='10.17487/RFC7519'/>
</reference>



<reference  anchor="RFC7800" target='https://www.rfc-editor.org/info/rfc7800'>
<front>
<title>Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)</title>
<author initials='M.' surname='Jones' fullname='M. Jones'><organization /></author>
<author initials='J.' surname='Bradley' fullname='J. Bradley'><organization /></author>
<author initials='H.' surname='Tschofenig' fullname='H. Tschofenig'><organization /></author>
<date year='2016' month='April' />
<abstract><t>This specification describes how to declare in a JSON Web Token (JWT) that the presenter of the JWT possesses a particular proof-of- possession key and how the recipient can cryptographically confirm proof of possession of the key by the presenter.  Being able to prove possession of a key is also sometimes described as the presenter being a holder-of-key.</t></abstract>
</front>
<seriesInfo name='RFC' value='7800'/>
<seriesInfo name='DOI' value='10.17487/RFC7800'/>
</reference>



<reference  anchor="RFC8126" target='https://www.rfc-editor.org/info/rfc8126'>
<front>
<title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
<author initials='M.' surname='Cotton' fullname='M. Cotton'><organization /></author>
<author initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></author>
<author initials='T.' surname='Narten' fullname='T. Narten'><organization /></author>
<date year='2017' month='June' />
<abstract><t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters.  To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper.  For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t><t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed.  This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t><t>This is the third edition of this document; it obsoletes RFC 5226.</t></abstract>
</front>
<seriesInfo name='BCP' value='26'/>
<seriesInfo name='RFC' value='8126'/>
<seriesInfo name='DOI' value='10.17487/RFC8126'/>
</reference>



<reference  anchor="RFC8174" target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></author>
<date year='2017' month='May' />
<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="RFC8152" target='https://www.rfc-editor.org/info/rfc8152'>
<front>
<title>CBOR Object Signing and Encryption (COSE)</title>
<author initials='J.' surname='Schaad' fullname='J. Schaad'><organization /></author>
<date year='2017' month='July' />
<abstract><t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size.  There is a need for the ability to have basic security services defined for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol.  This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization.  This specification additionally describes how to represent cryptographic keys using CBOR.</t></abstract>
</front>
<seriesInfo name='RFC' value='8152'/>
<seriesInfo name='DOI' value='10.17487/RFC8152'/>
</reference>



<reference  anchor="RFC8392" target='https://www.rfc-editor.org/info/rfc8392'>
<front>
<title>CBOR Web Token (CWT)</title>
<author initials='M.' surname='Jones' fullname='M. Jones'><organization /></author>
<author initials='E.' surname='Wahlstroem' fullname='E. Wahlstroem'><organization /></author>
<author initials='S.' surname='Erdtman' fullname='S. Erdtman'><organization /></author>
<author initials='H.' surname='Tschofenig' fullname='H. Tschofenig'><organization /></author>
<date year='2018' month='May' />
<abstract><t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties.  The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection.  A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value.  CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t></abstract>
</front>
<seriesInfo name='RFC' value='8392'/>
<seriesInfo name='DOI' value='10.17487/RFC8392'/>
</reference>



<reference  anchor="RFC8610" target='https://www.rfc-editor.org/info/rfc8610'>
<front>
<title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
<author initials='H.' surname='Birkholz' fullname='H. Birkholz'><organization /></author>
<author initials='C.' surname='Vigano' fullname='C. Vigano'><organization /></author>
<author initials='C.' surname='Bormann' fullname='C. Bormann'><organization /></author>
<date year='2019' month='June' />
<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="RFC8747" target='https://www.rfc-editor.org/info/rfc8747'>
<front>
<title>Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs)</title>
<author initials='M.' surname='Jones' fullname='M. Jones'><organization /></author>
<author initials='L.' surname='Seitz' fullname='L. Seitz'><organization /></author>
<author initials='G.' surname='Selander' fullname='G. Selander'><organization /></author>
<author initials='S.' surname='Erdtman' fullname='S. Erdtman'><organization /></author>
<author initials='H.' surname='Tschofenig' fullname='H. Tschofenig'><organization /></author>
<date year='2020' month='March' />
<abstract><t>This specification describes how to declare in a CBOR Web Token (CWT) (which is defined by RFC 8392) that the presenter of the CWT possesses a particular proof-of-possession key. Being able to prove possession of a key is also sometimes described as being the holder-of-key. This specification provides equivalent functionality to &quot;Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)&quot; (RFC 7800) but using Concise Binary Object Representation (CBOR) and CWTs rather than JavaScript Object Notation (JSON) and JSON Web Tokens (JWTs).</t></abstract>
</front>
<seriesInfo name='RFC' value='8747'/>
<seriesInfo name='DOI' value='10.17487/RFC8747'/>
</reference>



<reference  anchor="RFC3986" target='https://www.rfc-editor.org/info/rfc3986'>
<front>
<title>Uniform Resource Identifier (URI): Generic Syntax</title>
<author initials='T.' surname='Berners-Lee' fullname='T. Berners-Lee'><organization /></author>
<author initials='R.' surname='Fielding' fullname='R. Fielding'><organization /></author>
<author initials='L.' surname='Masinter' fullname='L. Masinter'><organization /></author>
<date year='2005' month='January' />
<abstract><t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource.  This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet.  The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier.  This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='STD' value='66'/>
<seriesInfo name='RFC' value='3986'/>
<seriesInfo name='DOI' value='10.17487/RFC3986'/>
</reference>


<reference anchor="WGS84" target="http://earth-info.nga.mil/GandG/publications/tr8350.2/wgs84fin.pdf">
  <front>
    <title>National Imagery and Mapping Agency Technical Report 8350.2, Third Edition</title>
    <author >
      <organization>National Imagery and Mapping Agency</organization>
    </author>
    <date year="2000"/>
  </front>
</reference>
<reference anchor="IANA.CWT.Claims" target="http://www.iana.org/assignments/cwt">
  <front>
    <title>CBOR Web Token (CWT) Claims</title>
    <author >
      <organization>IANA</organization>
    </author>
    <date />
  </front>
</reference>
<reference anchor="IANA.JWT.Claims" target="https://www.iana.org/assignments/jwt">
  <front>
    <title>JSON Web Token (JWT) Claims</title>
    <author >
      <organization>IANA</organization>
    </author>
    <date />
  </front>
</reference>
<reference anchor="UCCS.Draft" target="https://tools.ietf.org/html/draft-birkholz-rats-uccs-01">
  <front>
    <title>A CBOR Tag for Unprotected CWT Claims Sets</title>
    <author fullname="Henk Birkholz">
      <organization></organization>
    </author>
    <date year="2020"/>
  </front>
</reference>
<reference anchor="ThreeGPP.IMEI" target="https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=729">
  <front>
    <title>3rd Generation Partnership Project; Technical Specification Group Core Network and Terminals; Numbering, addressing and identification</title>
    <author >
      <organization>3GPP</organization>
    </author>
    <date year="2019"/>
  </front>
</reference>
<reference anchor="FIDO.AROE" target="https://fidoalliance.org/specs/fido-uaf-v1.0-fd-20191115/fido-allowed-AROE-v1.0-fd-20191115.html">
  <front>
    <title>FIDO Authenticator Allowed Restricted Operating Environments List</title>
    <author >
      <organization>The FIDO Alliance</organization>
    </author>
    <date year="2019" month="November"/>
  </front>
</reference>
<reference anchor="EAN-13" target="https://www.gs1.org/standards/barcodes/ean-upc">
  <front>
    <title>International Article Number - EAN/UPC barcodes</title>
    <author >
      <organization>GS1</organization>
    </author>
    <date year="2019"/>
  </front>
</reference>
<reference anchor="CoSWID" target="https://tools.ietf.org/html/draft-ietf-sacm-coswid-16">
  <front>
    <title>Concise Software Identification Tags</title>
    <author >
      <organization></organization>
    </author>
    <date year="2020" month="November"/>
  </front>
</reference>
<reference anchor="OpenIDConnectCore" target="https://openid.net/specs/openid-connect-core-1_0.html">
  <front>
    <title>OpenID Connect Core 1.0 incorporating errata set 1</title>
    <author fullname="N. Sakimura">
      <organization></organization>
    </author>
    <author fullname="J. Bradley">
      <organization></organization>
    </author>
    <author fullname="M. Jones">
      <organization></organization>
    </author>
    <author fullname="B. de Medeiros">
      <organization></organization>
    </author>
    <author fullname="C. Mortimore">
      <organization></organization>
    </author>
    <date year="2014" month="November"/>
  </front>
</reference>




<reference anchor="CBOR-OID">
<front>
<title>Concise Binary Object Representation (CBOR) Tags for Object Identifiers</title>

<author initials='C' surname='Bormann' fullname='Carsten Bormann'>
    <organization />
</author>

<author initials='S' surname='Leonard' fullname='Sean Leonard'>
    <organization />
</author>

<date month='January' day='26' year='2021' />

<abstract><t>The Concise Binary Object Representation (CBOR, RFC 8949) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation.  The present document defines CBOR tags for object identifiers (OIDs). It is intended as the reference document for the IANA registration of the CBOR tags so defined.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-cbor-tags-oid-04' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-cbor-tags-oid-04.txt' />
</reference>




    </references>

    <references title='Informative References'>





<reference  anchor="RFC4122" target='https://www.rfc-editor.org/info/rfc4122'>
<front>
<title>A Universally Unique IDentifier (UUID) URN Namespace</title>
<author initials='P.' surname='Leach' fullname='P. Leach'><organization /></author>
<author initials='M.' surname='Mealling' fullname='M. Mealling'><organization /></author>
<author initials='R.' surname='Salz' fullname='R. Salz'><organization /></author>
<date year='2005' month='July' />
<abstract><t>This specification defines a Uniform Resource Name namespace for UUIDs (Universally Unique IDentifier), also known as GUIDs (Globally Unique IDentifier).  A UUID is 128 bits long, and can guarantee uniqueness across space and time.  UUIDs were originally used in the Apollo Network Computing System and later in the Open Software Foundation\'s (OSF) Distributed Computing Environment (DCE), and then in Microsoft Windows platforms.</t><t>This specification is derived from the DCE specification with the kind permission of the OSF (now known as The Open Group).  Information from earlier versions of the DCE specification have been incorporated into this document.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4122'/>
<seriesInfo name='DOI' value='10.17487/RFC4122'/>
</reference>



<reference  anchor="RFC4949" target='https://www.rfc-editor.org/info/rfc4949'>
<front>
<title>Internet Security Glossary, Version 2</title>
<author initials='R.' surname='Shirey' fullname='R. Shirey'><organization /></author>
<date year='2007' month='August' />
<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="RFC7120" target='https://www.rfc-editor.org/info/rfc7120'>
<front>
<title>Early IANA Allocation of Standards Track Code Points</title>
<author initials='M.' surname='Cotton' fullname='M. Cotton'><organization /></author>
<date year='2014' month='January' />
<abstract><t>This memo describes the process for early allocation of code points by IANA from registries for which &quot;Specification Required&quot;, &quot;RFC                        Required&quot;, &quot;IETF Review&quot;, or &quot;Standards Action&quot; policies apply.  This process can be used to alleviate the problem where code point allocation is needed to facilitate desired or required implementation and deployment experience prior to publication of an RFC, which would normally trigger code point allocation.  The procedures in this document are intended to apply only to IETF Stream documents.</t></abstract>
</front>
<seriesInfo name='BCP' value='100'/>
<seriesInfo name='RFC' value='7120'/>
<seriesInfo name='DOI' value='10.17487/RFC7120'/>
</reference>


<reference anchor="BirthdayAttack" target="https://en.wikipedia.org/wiki/Birthday_attack.">
  <front>
    <title>Birthday attack</title>
    <author >
      <organization></organization>
    </author>
    <date />
  </front>
</reference>
<reference anchor="IDevID" target="http://standards.ieee.org/findstds/standard/802.1AR-2009.html">
  <front>
    <title>IEEE Standard, "IEEE 802.1AR Secure Device Identifier"</title>
    <author >
      <organization></organization>
    </author>
    <date year="2009" month="December"/>
  </front>
</reference>
<reference anchor="ECMAScript" target="http://www.ecma-international.org/ecma-262/5.1/ECMA-262.pdf">
  <front>
    <title>Ecma International, "ECMAScript Language Specification, 5.1 Edition", ECMA Standard 262</title>
    <author >
      <organization></organization>
    </author>
    <date year="2011" month="June"/>
  </front>
</reference>
<reference anchor="W3C.GeoLoc" target="https://www.w3.org/TR/geolocation-API/#coordinates_interface">
  <front>
    <title>Geolocation API Specification 2nd Edition</title>
    <author >
      <organization>Worldwide Web Consortium</organization>
    </author>
    <date year="2018" month="January"/>
  </front>
</reference>
<reference anchor="OUI.Guide" target="https://standards.ieee.org/content/dam/ieee-standards/standards/web/documents/tutorials/eui.pdf">
  <front>
    <title>Guidelines for Use of Extended Unique Identifier (EUI), Organizationally Unique Identifier (OUI), and Company ID (CID)</title>
    <author >
      <organization></organization>
    </author>
    <date year="2017" month="August"/>
  </front>
</reference>
<reference anchor="OUI.Lookup" target="https://regauth.standards.ieee.org/standards-ra-web/pub/view.html#registries">
  <front>
    <title>IEEE Registration Authority Assignments</title>
    <author >
      <organization></organization>
    </author>
    <date />
  </front>
</reference>
<reference anchor="IEEE.RA" target="https://standards.ieee.org/products-services/regauth/index.html">
  <front>
    <title>IEEE Registration Authority</title>
    <author >
      <organization></organization>
    </author>
    <date />
  </front>
</reference>
<reference anchor="IEEE.802-2001" target="https://webstore.ansi.org/standards/ieee/ieee8022001r2007">
  <front>
    <title>IEEE Standard For Local And Metropolitan Area Networks Overview And Architecture</title>
    <author >
      <organization></organization>
    </author>
    <date year="2007"/>
  </front>
</reference>
<reference anchor="FIDO.Registry" target="https://fidoalliance.org/specs/common-specs/fido-registry-v2.1-ps-20191217.html">
  <front>
    <title>FIDO Registry of Predefined Values</title>
    <author >
      <organization>The FIDO Alliance</organization>
    </author>
    <date year="2019" month="December"/>
  </front>
</reference>
<reference anchor="FIPS-140" target="https://csrc.nist.gov/publications/detail/fips/140/2/final">
  <front>
    <title>Security Requirements for Cryptographic Modules</title>
    <author >
      <organization>National Institue of Standards</organization>
    </author>
    <date year="2001" month="May"/>
  </front>
</reference>
<reference anchor="Common.Criteria" target="https://www.commoncriteriaportal.org/cc/">
  <front>
    <title>Common Criteria for Information Technology Security Evaluation</title>
    <author >
      <organization></organization>
    </author>
    <date year="2017" month="April"/>
  </front>
</reference>


    </references>


<section anchor="examples" title="Examples">

<section anchor="very-simple-eat" title="Very Simple EAT">

<t>This is shown in CBOR diagnostic form. Only the payload signed by COSE
is shown.</t>

<figure><artwork><![CDATA[
{
    / issuer /           1: "joe",
    / nonce /           10: h'948f8860d13a463e8e',
    / UEID /            11: h'0198f50a4ff6c05861c8860d13a638ea',
    / secure-boot /     15: true,
    / debug-disable /   16: 3, / permanent-disable /
    / timestamp (iat) /  6: 1(1526542894)
}
]]></artwork></figure>

</section>
<section anchor="example-with-submodules-nesting-and-security-levels" title="Example with Submodules, Nesting and Security Levels">

<figure><artwork><![CDATA[
{
    / nonce /                 10: h'948f8860d13a463e8e',
    / UEID /                  11: h'0198f50a4ff6c05861c8860d13a638ea',
    / secure-boot /           15: true,
    / debug-disable /         16: 3, / permanent-disable  /
    / timestamp (iat) /        6: 1(1526542894),
    / security-level /        14: 3, / secure restricted OS /
    / submods / 20: {
        / first submod, an Android Application /
        "Android App Foo" :  {
            / security-level /  14: 1 / unrestricted /
        },

        / 2nd submod, A nested EAT from a secure element /
        "Secure Element Eat" :
            / an embedded EAT, bytes of which are not shown /
            h'420123',

        / 3rd submod, information about Linux Android /
        "Linux Android": {
            / security-level /  14: 1 / unrestricted /
        }
    }
}
]]></artwork></figure>

</section>
</section>
<section anchor="ueid-design-rationale" title="UEID Design Rationale">

<section anchor="collision-probability" title="Collision Probability">

<t>This calculation is to determine the probability of a collision of
UEIDs given the total possible entity population and the number of
entities in a particular entity management database.</t>

<t>Three different sized databases are considered. The number of devices
per person roughly models non-personal devices such as traffic lights,
devices in stores they shop in, facilities they work in and so on,
even considering individual light bulbs. A device may have
individually attested subsystems, for example parts of a car or a
mobile phone. It is assumed that the largest database will have at
most 10% of the world’s population of devices. Note that databases
that handle more than a trillion records exist today.</t>

<t>The trillion-record database size models an easy-to-imagine reality
over the next decades. The quadrillion-record database is roughly at
the limit of what is imaginable and should probably be accommodated.
The 100 quadrillion datadbase is highly speculative perhaps involving
nanorobots for every person, livestock animal and domesticated
bird. It is included to round out the analysis.</t>

<t>Note that the items counted here certainly do not have IP address and
are not individually connected to the network. They may be connected
to internal buses, via serial links, Bluetooth and so on.  This is
not the same problem as sizing IP addresses.</t>

<texttable>
      <ttcol align='left'>People</ttcol>
      <ttcol align='left'>Devices / Person</ttcol>
      <ttcol align='left'>Subsystems / Device</ttcol>
      <ttcol align='left'>Database Portion</ttcol>
      <ttcol align='left'>Database Size</ttcol>
      <c>10 billion</c>
      <c>100</c>
      <c>10</c>
      <c>10%</c>
      <c>trillion (10^12)</c>
      <c>10 billion</c>
      <c>100,000</c>
      <c>10</c>
      <c>10%</c>
      <c>quadrillion (10^15)</c>
      <c>100 billion</c>
      <c>1,000,000</c>
      <c>10</c>
      <c>10%</c>
      <c>100 quadrillion (10^17)</c>
</texttable>

<t>This is conceptually similar to the Birthday Problem where m is the
number of possible birthdays, always 365, and k is the number of
people. It is also conceptually similar to the Birthday Attack where
collisions of the output of hash functions are considered.</t>

<t>The proper formula for the collision calculation is</t>

<figure><artwork><![CDATA[
   p = 1 - e^{-k^2/(2n)}

   p   Collision Probability
   n   Total possible population
   k   Actual population
]]></artwork></figure>

<t>However, for the very large values involved here, this formula requires floating
point precision higher than commonly available in calculators and SW so this
simple approximation is used. See <xref target="BirthdayAttack"/>.</t>

<figure><artwork><![CDATA[
    p = k^2 / 2n 
]]></artwork></figure>

<t>For this calculation:</t>

<figure><artwork><![CDATA[
    p  Collision Probability
    n  Total population based on number of bits in UEID
    k  Population in a database
]]></artwork></figure>

<texttable>
      <ttcol align='left'>Database Size</ttcol>
      <ttcol align='left'>128-bit UEID</ttcol>
      <ttcol align='left'>192-bit UEID</ttcol>
      <ttcol align='left'>256-bit UEID</ttcol>
      <c>trillion (10^12)</c>
      <c>2 * 10^-15</c>
      <c>8 * 10^-35</c>
      <c>5 * 10^-55</c>
      <c>quadrillion (10^15)</c>
      <c>2 * 10^-09</c>
      <c>8 * 10^-29</c>
      <c>5 * 10^-49</c>
      <c>100 quadrillion (10^17)</c>
      <c>2 * 10^-05</c>
      <c>8 * 10^-25</c>
      <c>5 * 10^-45</c>
</texttable>

<t>Next, to calculate the probability of a collision occurring in one year’s 
operation of a database, it is assumed that the database size is in
a steady state and that 10% of the database changes per year. For example,
a trillion record database would have 100 billion states per year. Each
of those states has the above calculated probability of a collision.</t>

<t>This assumption is a worst-case since it assumes that each
state of the database is completely independent from the previous state.
In reality this is unlikely as state changes will be the addition or
deletion of a few records.</t>

<t>The following tables gives the time interval until there is a probability of 
a collision based on there being one tenth the number of states per year
as the number of records in the database.</t>

<figure><artwork><![CDATA[
  t = 1 / ((k / 10) * p)
  
  t  Time until a collision
  p  Collision probability for UEID size
  k  Database size
]]></artwork></figure>

<texttable>
      <ttcol align='left'>Database Size</ttcol>
      <ttcol align='left'>128-bit UEID</ttcol>
      <ttcol align='left'>192-bit UEID</ttcol>
      <ttcol align='left'>256-bit UEID</ttcol>
      <c>trillion (10^12)</c>
      <c>60,000 years</c>
      <c>10^24 years</c>
      <c>10^44 years</c>
      <c>quadrillion (10^15)</c>
      <c>8 seconds</c>
      <c>10^14 years</c>
      <c>10^34 years</c>
      <c>100 quadrillion (10^17)</c>
      <c>8 microseconds</c>
      <c>10^11 years</c>
      <c>10^31 years</c>
</texttable>

<t>Clearly, 128 bits is enough for the near future thus the requirement that UEIDs
be a minimum of 128 bits.</t>

<t>There is no requirement for 256 bits today as quadrillion-record databases
are not expected in the near future and because this time-to-collision
calculation is a very worst case.  A future update of the standard may
increase the requirement to 256 bits, so there is a requirement that
implementations be able to receive 256-bit UEIDs.</t>

</section>
<section anchor="no-use-of-uuid" title="No Use of UUID">

<t>A UEID is not a UUID <xref target="RFC4122"/> by conscious choice for the following
reasons.</t>

<t>UUIDs are limited to 128 bits which may not be enough for some future
use cases.</t>

<t>Today, cryptographic-quality random numbers are available from common
CPUs and hardware. This hardware was introduced between 2010 and 2015.
Operating systems and cryptographic libraries give access to this 
hardware. Consequently, there is little need for implementations
to construct such random values from multiple sources on their own.</t>

<t>Version 4 UUIDs do allow for use of such cryptographic-quality 
random numbers, but do so by mapping into the overall UUID 
structure of time and clock values. This structure is of no
value here yet adds complexity. It also slightly reduces the
number of actual bits with entropy.</t>

<t>UUIDs seem to have been designed for scenarios where the implementor
does not have full control over the environment and uniqueness has to
be constructed from identifiers at hand. UEID takes the view that
hardware, software and/or manufacturing process directly implement
UEID in a simple and direct way. It takes the view that cryptographic
quality random number generators are readily available as they are
implemented in commonly used CPU hardware.</t>

</section>
</section>
<section anchor="changes-from-previous-drafts" title="Changes from Previous Drafts">

<t>The following is a list of known changes from the previous drafts.  This list is
non-authoritative.  It is meant to help reviewers see the significant
differences.</t>

<section anchor="from-draft-rats-eat-01" title="From draft-rats-eat-01">

<t><list style="symbols">
  <t>Added UEID design rationale appendix</t>
</list></t>

</section>
<section anchor="from-draft-mandyam-rats-eat-00" title="From draft-mandyam-rats-eat-00">

<t>This is a fairly large change in the orientation of the document, but
no new claims have been added.</t>

<t><list style="symbols">
  <t>Separate information and data model using CDDL.</t>
  <t>Say an EAT is a CWT or JWT</t>
  <t>Use a map to structure the boot_state and location claims</t>
</list></t>

</section>
<section anchor="from-draft-ietf-rats-eat-01" title="From draft-ietf-rats-eat-01">

<t><list style="symbols">
  <t>Clarifications and corrections for OEMID claim</t>
  <t>Minor spelling and other fixes</t>
  <t>Add the nonce claim, clarify jti claim</t>
</list></t>

</section>
<section anchor="from-draft-ietf-rats-eat-02" title="From draft-ietf-rats-eat-02">

<t><list style="symbols">
  <t>Roll all EUIs back into one UEID type</t>
  <t>UEIDs can be one of three lengths, 128, 192 and 256.</t>
  <t>Added appendix justifying UEID design and size.</t>
  <t>Submods part now includes nested eat tokens so they can be named and
there can be more tha one of them</t>
  <t>Lots of fixes to the CDDL</t>
  <t>Added security considerations</t>
</list></t>

</section>
<section anchor="from-draft-ietf-rats-eat-03" title="From draft-ietf-rats-eat-03">

<t><list style="symbols">
  <t>Split boot_state into secure-boot and debug-disable claims</t>
  <t>Debug disable is an enumerated type rather than Booleans</t>
</list></t>

</section>
<section anchor="from-draft-ietf-rats-eat-04" title="From draft-ietf-rats-eat-04">

<t><list style="symbols">
  <t>Change IMEI-based UEIDs to be encoded as a 14-byte string</t>
  <t>CDDL cleaned up some more</t>
  <t>CDDL allows for JWTs and UCCSs</t>
  <t>CWT format submodules are byte string wrapped</t>
  <t>Allows for JWT nested in CWT and vice versa</t>
  <t>Allows UCCS (unsigned CWTs) and JWT unsecured tokens</t>
  <t>Clarify tag usage when nesting tokens</t>
  <t>Add section on key inclusion</t>
  <t>Add hardware version claims</t>
  <t>Collected CDDL is now filled in. Other CDDL corrections.</t>
  <t>Rename debug-disable to debug-status; clarify that it is not extensible</t>
  <t>Security level claim is not extensible</t>
  <t>Improve specification of location claim and added a location privacy section</t>
  <t>Add intended use claim</t>
</list></t>

</section>
<section anchor="from-draft-ietf-rats-05" title="From draft-ietf-rats-05">

<t><list style="symbols">
  <t>CDDL format issues resolved</t>
  <t>Corrected reference to Location Privacy section</t>
</list></t>

</section>
<section anchor="from-draft-ietf-rats-06" title="From draft-ietf-rats-06">

<t><list style="symbols">
  <t>Added boot-seed claim</t>
  <t>Rework CBOR interoperability section</t>
  <t>Added profiles claim and section</t>
</list></t>

</section>
<section anchor="from-draft-ietf-rats-07" title="From draft-ietf-rats-07">

<t><list style="symbols">
  <t>Filled in IANA and other sections for possible preassignment of claim keys for well understood claims</t>
</list></t>

</section>
<section anchor="from-draft-ietf-rats-08" title="From draft-ietf-rats-08">

<t><list style="symbols">
  <t>Change profile claim to be either a URL or an OID rather than a test string</t>
</list></t>

</section>
</section>


  </back>

<!-- ##markdown-source:
H4sIAMSkQmAAA+y963IjyZEm+j+eIo09Z5vUAOC1rjrSLJtkd7NVty2y1Hts
bCRLAAkyVUAmlJkgCyrV2LzGmp3zcvMkx/1z97gkQHZrpNm1GRvZbk8RmRnh
4eHh4XcfDoeu7fJq+vt8XlfFy6xrVoUrlw3+1XZHBwcvDo7cJO9eZm03dW5a
T6p8QS9Om3zWDcuimw2bvGuHRd4ND144d3/zMnt/en2V/Vg3H8vqJvuuqVdL
91U2qau2qNpV+zL7el20X9NP7Wq8KNu2rKtuvaQxLy+uv3XL8qXLsq6e2Hv4
Y1osu1v65YT/buuma4pZG95o14v0h0m9WOaTLnpjNQ6/VTX/1MwmxbTt1vPC
XuvKjv+4vi2yi4r+WGenXVcQgjqCMbuuPxZVtntxer3n8vG4Ke5eZvSHy5si
J+CrrmiqonMf7wlX5U3Fi8+jzyfjuqFFT/OOpjg6ODweHh64fNXd1s1LN8zK
isD/bpS9pt1Y5wuCTxD9XdmU09u8iR7UDSH5f6zyOa1okV0Xk9uqntc3ZdES
FJMRr5bwU9BKnzx79iR7XTfFbb1qi+y8Ke8Kxg4t7WV2lVfZeVnc1IyL4oZg
fJmd5fNyVjdVmQOJq6pr6M0PV6f05/IWJLLz94fZ8yfPs6dPDrNnRCA79KhY
5OX8ZbYQEP/7H7ty9EeFb0T/seW9GmWvVtV0PM+nhV/gq3zVFNWkSB5hiVfF
ZNXwLtCG1M06e/XqLMw1v5n/97Kd04zDpmCKiCd6Pcq+yedzwn3R1K2f6nV5
syrmvUf/Z7EZIfPk6MWLCJdjgfJBZP4wyt5+fV5X9c3tKmDzh6IpFuv0yc9f
4dGzF9m3eVMRqdarm9vsfZ1P/QqjB1jOlKnzw+FJ9uzVVbK+quyKafYbOgDT
ehEt9eQkOzx6cpQdPz0+fB4t9Q/1FMBuLtVVdbOg43NXMFN4/+3Z0eHhC/3n
8xcn9s9nTw6fhX/6X58fHNi7h0dP/T+fnfh/Pjmyfx6/8P98eug/e3Zi4x6/
eE4j0L9//O7qOQYgvpQ3N4y1265bvtzfL/Kmux2W1aweVTf5aFHO978j8vxu
f7kaz8sJuEC73zXPj58cjI7272/a5yezshotpzMZTrjPG7yYz7PLRX5TENnT
GHT4l0tmKKc3dFTWsoc05Dx7XyyJ9jMZc0AnpWym2cW05DEwqnEY/vdQSOFn
zIDXjVUdHOBP+s/l6ZvT0dmP16OzeV4u2q1ouL+/H5V5lY9orv28ZVa4KKqu
3Z/cd/E6z755+z77sRgbX6Vh9zIZNwY8iyHn+SPQZvm8LZzB9UMPrgSw9jHI
/qCQGWg/XL19E4P2Qw+0FLYN4PrQfTg7uxqd84X5AGBdXc/bEV+mAO22W8z3
5YIdl83H23r+J7lkV5NJOzw4TGA9FURe5zcZsRo6fMum7ooJn0DCqEJNrLRL
QTfIZ6v5XDjH90X1MftG54vXcXRwdMDLuL4lJvHdu3ejy9cXl5tbzwthWszn
o+Ob5RIrmRbtx65eLurpinjZ/tWymJQzfxSSP8+LjphBO8rb5ad/aOMnl9Nf
PTt6EZPOMdH4d0VVNHKzvqODR3+0t+Uye9fUf6DV/zI6Isk0Io9kZ8TFszdF
d09SCsj/umgWJZ2J9pfZm9ViXDR0FgZZPp3S5dLiKqeXyimRix/qoeN1TDhK
zs/hi4zx9+3l+dvR6fu3Fy/jtfCv2SmNwkPTwLSHp/N5fU/7957Yf1NiK98u
sViC46K6K5taCDd7Vbbd1o2YldOa7g+i9kmBnWCMtvh5uMpnw7vD0cFwNh0y
cIeHh0/kSS4TDxnIjVdGTJYPrZlFJlmJThoh4E19VzBGAyYuTt8MD4+3kxAf
0pv2UIBm0TRvpu3+OG/4wmmJyVbD1XISY1AkL+Nppw2hcV7oLhJ8NNn+h3dn
mQ3x0BK+uzrs7RqDelZf/Xh5vh3Uh48t5OI2nyyGk7q9L6fDw6cJ66urSUkS
xFU96+5JfMwuE8Liw9xuR6CcRKKG6vKcRqmI1JmUt8NX02vldERCqW6//EAw
4UP6v00xPPz9QdhZhU/Gz3QCOSxEDSR30Cd0xoUSi4b+kWdt0WWH26B9zkg8
2cbLA9N5MyLB6WO5WDX5xjMScL5p8um8WG88IvnuB5Ip2o0H34yyaZG9LqZF
KdJd+vhsxPJbVy5oRdhdYp3Dt7S/2eXwHDs5ZDF92NEGDOuSFB7H93kqg5wc
HpmscBLJIIdHBxAQiIV2t9N8TapDPvmYnHV7xHoBPdu6aUU1ui8/lstiWspF
xX/t25e/ly9HWy/B8+LOk6oejYuLi+xKT9Eg28Hfzw+ORoen70W8JjG2uCsn
gQSLZica/LyYGOkdvNh22/sjStgrhNWQTENqFR1ae7avMw55ECE2ZgJnr0+v
Jk257BKQLyaLPD3SBHd4l9SF6mZFYkvK1gfZk9GhyT07AwzuF54dPT2K1pT9
sKoKps3Dh8SXgmAgQS6CAQvDzzTWPs21zzPwHxDfWC48Pht9V9SvSHGNl0M/
zWs91qfvLnuX0VGVCmsC4A95tcpJLCMQnz/II++PAdP1+/2bMMWQptj/alLX
zZQuM9I9f49VzHJlyFvYHunp8ymxqAICDx151qXK1QJ85sPl6LsVPUuXxL/M
Szp+InEQI6tn2cWnrqimdFWR+P/HVUxPpDJ/uNwbZG+bm7wq/6QYna+3vfkW
b/Jde8baerUmqibR8PJ8L8LP6epm1XaMnmdb0bOFJonlEXjd/jRf7POPw3C1
hH/dF+P9aT1ZiVDYreguLulw7Rer0naZMfKqrj+ulpvn7D1pfXRh614D0zAh
BEFzK7SkLPK2jLZA7X8i8W/I0JEmsX9XFvc4RF81MmFZtFvZAcE0en/6c+H8
uZgk8XK6mpAw2hYNM47WFrBPx774FO6SbeAQI2AmcPgwk8q+JZKiQ8Q3OWsl
RdfUy3pe0mO62ovchLY2e3vHABT3eO+0mdyWLPYSR9t+ZIpxS/tZjPKqLXvC
Ba8N/yHwGLqG/vMs1YCeeQFOsbfeFOLsCZ+Gdw1dQcQI6Tz8Np+viu1b/4CU
xuovneVIZNOdXg/viJEOl60IZUeHz/7NQlnE2Fkoy7C8d1fDw5ODZGXeBvO+
+OOqbAqRO/ncnzXrZVffNPnytpzQtQoRf+syJ20zGVW0gNFNfZdqw1NI/bTI
ZbtPU+8f8e2RP7iioLlWLQG4Aucx0olPweuc2SdUJQhxjNDRGS2EBPs8WaA8
y+wZlnZpdz7LYmYuWQdcXNzRngYdYBt7lj2c6KiqF4ETTfZjVrZsyrlwMjcc
DrN8zCdz0jl3Wv2EDTKjk3hHnLjNctgbidR2xd5YTPcgldUzNxH1r7vNOxKM
WoJnXGQ8WAEmO7nNeTYCkdA5aRmbdM4KzDvIuvWSFaj52uX0MaSEefmRvhSL
Dm0Jv31ZX+vTEeuIBV0HOitLtquW4BqTxOOaYr5msXFJ2to662r6qIPSVWS3
9X22WE1us7LL7suWxuDnsEAT6IUCNBKknF5nZZsVJT2g+aHkEiCkotOn3W3W
1ositrsOibvR9wSFImNESKTv5rxpBMMNKbV048znNBONa/yf/kFQ8ES41xxP
wxhjI4NsVUVq9u/pviQGPF6xQOzc9TfnTh4uyikJrs59xaKMcEymFve+WNBn
hs3YPFzyPs5WRMk8PZG48lfZO2hm/EaDAZwO0DLScv59UY9L0nqwMQNsi9qj
h/VseH1L4LXZLm3Vns49IKS5Gjik5S1rkhMY50xTBW1DW8xn/DdPGG3bgGmN
4KKvePOdwoiN5wUIlLxlG7v9saJNxub0iM7l43ol+2xoITxPSUwimeT+tgCM
RBgghzZ6b+TR+fPxOCHM0LOimZdEvzy0Y3tJPSFNDvParSavVwXRjQEf4AQo
dAsRxZAUxMfGReCPixkrTDTuhD4nJIyyt0TkN3U9JWrKF0vaJ4JyXBIyWL+H
E0C1f14BrbkpMI9/JSNmNOFNzECifPaqGBN87noHjEFvPexYTQQjDcOj4Gf6
N79T4UzWbsukpPU1dLfO17TRp5VSTViJCleZWp6Y0MMaUqjuc74+AlQeoPuS
TqAOwL874o+50dUNbD3z8k9Fi4XXmemh4A1FQ1y0tT1blDe3HSaiF11YfR6t
PWzg2rYLtKuL1aEZBJ5sXLh8QjShrKzsiPL4biVM8H4x04wIECunOYTBME0t
6DIi1Xm+mtKxI17BT+lbNy8XsJQzr6PhZrWCwGrkL9iSRSPT/+Nni/yjjlWT
7G2/6oLoPE1hRtj9/se9v+xTEGlLIv8AG1ROVgT2HMIgX4St3niBiRJBLFue
43WRtyuRB2zM1swZu1c/7mXNqoIPLKFU/pJ45qy8WakAikOHCymBjF+MTF10
jrfcVdFCjBMS68q+e3eVmUZEO/X2/O3LjAfh6dhxwyuLL9ULvkYrZTzvi3Y1
71ra4q++4stlgKuFn7AZ1zmWT2fz4lNJ/JZvZ35CqAD45WK+BEaUFdHqMqhW
dznhr4NkWET2uwHfZi2YEl3LeqXBnPv5s3o4vnzB7cYG6c+fgxpMP4uIMnI4
IYnBlMSBBa0hr4p61ZKeZRc/8Rw6u/ph+/B1Smg04ZWWIKAcvzj68oXZP2Nh
441g4eaX+GoQrG0OxP6ZL1+2Qi03LZ/imtCZPGvlbs+noiszNYiIwVsZHT49
mKmdFgc0MzafFXMhWr42sf6Bv2WAekO3oGmgx1IuHmVEzPHuhKBaL+Fs0MrI
vWIWQBsgkkWxxPL0PHh4JnnTgEPyrwTOyF1WelHmzNTo6mMGQgRCkxirZYd5
tluMbkaD7PXl6wv8sIdPhT33v+1uxaO3EkrFStnKxTuhDKuqs1n5iRazIJGX
NPV2keWTpm5xr+NDDKon4/z8ldu2iyuel58OlHKeHh6Aclpddrlg2wawO+c5
iEkLkdAxojOMjRVJks7TUjaL9oSvyKwUZl+oHMDTyG2wKBz9X6ViPPp5p4gu
TRqutSM7IrEJn0/0RPMnA5LSeevKT9kF/xYti9DmhD6K6Sg7DeTZsDIEAfim
vAPg9Nkf2rrCCuolAzQDXTgvccqdGc1FuC2rdjUj3DL3JaTsvmFxRy/zstWL
JEJh7kl0UZCmK2I0/WPODHZMqnNBwAA3EGaxOr6R6orJNOxEBWIBU/Wigx65
6ESnErOwMcIoy1f0wqrKF2Ni9MKE6HWebk+PKPOZlHDu+UBC5ePzJJcyNhgP
7khNzMdzFQ7LKdbNNFluZ4F637IwiEEAdWnsYFG3uLXuVf4xDtlneELrqoeZ
wQF8c0d0kh1j3myq0quIKM1fSuOcpIbFmNa/u8PhLtCSd/aAVMefynZ1kLkz
FsISWbZSwaBZqGrG/AFnw8Xvtbf1as5IyyaxUg4jGwFNWAHqxmvjMY6jcWjX
GiJauQMS8XA4L+6KuS2N42ZqZnIEQksPiLqcXwt//DXpVNklEEnLpWGnKnER
TgRNQfieNIUonwADSlZbM2RCr2DVU5KaaRtpGJJjoMCIKrj7nvQX2pLXJMg0
lcLaPqAEkVR0x8IP70s5mxFFEokWn0iggVgQX8NZ7b1ruGbC+yb/ZEAILZNv
f5V8B7RlDtIvDAi4iVII6PABCFrsv/7L/5svl+2//sv/FwsAghYSlEgJqiIo
2jUp8Yts9+2VUAopyKz60CU2L/iA5IynKVHLvM6nvLWOBx/xHjC7z+etzZxd
X1xku9eMPkLnhS0/Fq32TAtwU5asqgndeWVbM8eYiilWZt+UBUnLmgi/A4rK
j0WkPKRKTcwc5+uBXUyGnuKKoGR71JT23qlj4kJ4/142pHXclsyPbDtYCtW9
KmZFxVdOfpMTs+yy73904iNpA9FBZRUSIRIyrWKLEi53vov0WLOoRMoA35s3
9At0ipRCsllTL4irlJNbR0skTN2IHZ4PiB32+UC4RUk8p2ANxu9KnzTcrQgp
Js/gFPdm9Ie0akvhu96Co9yLTndwH/PZmbcmFb8v7tlCle0yWbM6wsDuCV9v
RZVjJjSHSqUCN6L78sjeKrGALE52BFOuNhuvzbDoURSqXpRLKIAkPtNrLB+T
ZMEAetp30FIIX1csAYUjIT8rwYR7Nh5VnGL4nwshfCP3Ura7VAFELCT8z2C5
kr85PpE1Ifx7NR563l03Lr0KY5rxZrgyshrCVqBX3eu8Ws1yoKoRaISnMhGI
xppPi9jOpfSpklsu1E5SxJSBy92kbCYroq5xzfZyZcPyWERv+/cs4zuvvWW1
Tfl9ZuZ7he29auccQkETK3Ri4hl40wkN1gP4Y9GaKMmAx0svK6e3TGQx8QR5
KXve39iBqqoBU4LXFiI2pGGiRzouyb33sVizkYItrPNs9/Q3r/dYQqyjGbPp
qsEsfmS2x4jAIIYCwrC+swEBLiMgH0d9lo8bC/2gd0T926Vf93DlyyAwX2eB
cjBED/liOF27rlww6kwuG6kR7aEFlqprQDGXAFPH+iPR/cNo9bYBYuT7/KHp
6KqGKJrkWnZyLduuyp6mwlEi8o0kVFZUyHx+n69bp6ZolTUeXIzfXf+uWyTn
5HFKSa1KC5YOiOiz1RKGJdlN4p84yQRQDj6lS1Z47+jamooVnHlnC71K7hRm
9eDkIvK60n9oZ5O57m3OojojpSdlMB5G2fcszTOmmXqdCg187n4RYw3S+aLs
IjtQsjZBcbrcGwnmglWuXdYV2xh7Z4E1QzbekvyUTYpGlWFi7VgWYztLaH3b
NIR4pgBhmyJGTkzL/mvXQNPbV63fFNib44kCAwJqPaVsg13N0sQiVk2lMPMO
Q45Uy390QTy4gGkpps6HoRkwZmjzETwM6gz0nvKPxt6EB0QNp4qSSw7ckuGL
gAIxF34sti8gUoMEzy7rY1pFwIKVTjow5Wwd626lWhbuczFcNcWQjwfvhgKw
K4aWWAbWWHYiMBa+T+EpYS/PxuUMYl8t2dlVyMnqItsC6dkYcVI4Nk6yDftO
lXUgZqQqBCn97C0Tf4QOJ2wnWNHcxtz0rkpXtHXKnWHDLZbzei0GnwrkCeGO
eZuTa4XVRnYTTIqKxq9bsdb3f84gitmORNTgzIZOSkDRlX9ioRnqJcvDBMsW
whBhUOmBb/RlU97lkzUzxU9rT/Rqm42oQ7Xists8dW7LqaNJ1kUXJmrXCxXO
H7pXnG622kHA6Npik7JV4VQOAUqMT8qAIJ3kLB8wYySozEDKAyVz32McQjFU
exeJc2rHIuwmFxVbe0SFFP6t143cg5B3f9T9eEOsz1zDvC0i8ASxVG0nbfQK
rlZYBP9grsc2X2D9a1A3W+03PggeSAjcX2XXsjPIbGFbPOx8Dne1N8dFmwfe
sA4GQT8tURyN3ZrfUdRP59VPQOWFmJxVJz7gMKNiauIs8yl0auU85ukauPGq
ms7xPp+IKvv++vpddluQINrAfivrj4AkWGYl31+4/1xsAYeZqhNzKG2pP2Lj
pubxCLJ6KTogrs7oU1aflzXhCdYJJRkYFISXFPPZEOoOASDOXeVFu4wS/XLt
8ki1lPeIy7AhxPwLRE7lsCFOkBMLA+Pvoi3yHkAjiUZCHcAtZqv5jF1TvEOR
3mFKmGuisIiReAf4viVd1OwTA3BTvlQyDbxksJgOeC7RhMwyxweJ1j8UQZFX
GrlEu015nS3FrJjAMDvw1p1gDwrB4KYfs9V1UtYrQjF8WoIPMwu/JUUc5Eb/
MDU4kjfF2xGQq0caghHsyMyfBnL7lDNbjvoI74o1LENiiIYhdMFRjhzAFGMg
XrOu170T7zMW2/uSRDEgMm9L2v7ozuOZl/mabSSsweXzTq8bLxHqeb3SxV1N
bmkjhU/wFNmOLbvFkx3PKokwcJuZuKMGG7kK1PLoSCAdslCqfBzOH2Ie4zmp
ZBh0S5JYyphFk7JwDHtf1ya2GbBdkETZ6QETllBWd/X8DuzWXZ4LE/mfoycH
L2J5kJ1qJZvdGsgFncK1ICGjYbuw82KAHpsEK/n8hkPHbhc7go1W2YbgxD+l
6c2SCfrySO2aFe6TEfHqyP2YbYyfhZtJt4J3wh/TsXpYjDOLbqvSt1gfFnwg
vTvBIgXaFdHPlC5fQWvJHLZs2m4g57twVV0N79gUxkY9jh/jwNN2mU8KW5Fe
SzPxUPT30vm9VL7PZqw528rg+fWSJOMMJnjSO4r77Ja4MxZWso+QOJRIKgvW
h9hoASfsiOORSPiXY89XM+fITdSy7fUrFd1cRFXqaGHFNtiqIwAHykQhQxLz
K1tM5EjQIs0GbJDxJdtsE4qmPJIMpEGmIs0Q3pXmLqJ3JzvYSizRxdn56Wm2
e0GzEEuZZGcrNtWdC788JfyvF8yrInftHm+rY3sEXSQga1zjq7KDEAE7bM9f
9RaCJmvbzNEhHMLkLr4YEhrlOhqooSGhNLuyXeT3AGdpalyIjEK5Xn3oqPmh
lEQ4rRVvrTo20THT0XQThJUJv+GDf183dF3vvP5wdb0zkP+bvXmLf7+/+B8f
Lt9fnPO/r74/ffXK/0PecPTH2w+v9Dn/K3x59vb164s35/Ix/Zr1fnp9+v/s
gJm4nbfvri/fvjl9tbPp3cFZgvnTO+FELIjNA+6bs3fZ4Ym4UDhX78sXdacc
Pjuhf9/fFpXwLVC7/CnSFenSeaMmQTfJl7SdrOzTBHSb3UtYxUg9jh6opoC7
sQvYFAWX3bCRu3kAxuMUkifiya4kQSr19iBdKntD0pdZ6m5XJPmS8CCGdmRZ
+jtA7bJ8bMVtaQP8pljb93C2LfIldtickD9vFESO2jgcckj3OQdnh4tXnaWn
8g99J/JIYXKYM0q+n2z6OxnYpQliGxDb6/X4DxKVk0OE6XBlRFqlv9tV10kE
4jjQgtCSvU7sdTZncu8ZYvggRsaBj2wiu5yp+sNRUM5rNEH0+/716dlAvMXm
IuX4SMQqJQrQyCVjydcXZ2eD4FCqJDYZeRVEKJJgwcTjh3eld2vfMUvhW8xL
RWdY1jIvG8AtrM6pDDEw930eQgguqlsO052S0iAK4eX5ICtHdEFevLs831Mf
eGem7ARpjgO+TIXhmaAOyYaKFUvdpCqAhqCQim6cnm+3H1bBqjl7ldzCoh7U
Edj/UOIgTGNRN2BTpMFFQcNXfYtAhWObp3jpfkF8f60UHQMURXrqZQW8McvQ
OBZIXsy6YdDgKBKTO3DQe9mrxI8MTn5iL/wQvcBWNllgiLWH9YutIFGUqyg4
+ZwfkSwTPeGUeE7qW/e+8piBH5s95iRe1BJflogpbYZ7gPnuTcW+8Vi4qTiK
dpav5p2cadxG7ElFvKekuMpZysctfPRCCqlu7XVbWqUYb8xil7fes4kvWTHj
gURecGMxDfTkKrmOYbcxcRUfIyy1rPSylWgDiwBmMyBWoNFDwVgksjaMQIin
SsysOKoOlhm6j5dsHuLgEs9G2fPPlS3UsduRbqyEvxTcRgL9RhCK44SG5VQD
3AiWWoI5swv/isQOCInmPtbgBimmu6z9yD/BgywwI7+54YwJr5wilCcKT5gV
aq2eAf49H5NiEPgj/Pmz/aQ8KZqeKGzVIGCmdp6hFxUo2Md+4B7a15uF2BS8
QnAMkozHZzZHJIGENIoz5yfj5/hhEkMnIeucTgiM7RLsePEPXbknV5BgUHja
Dj3esXvth/7DP0QPr2GEZFmQ9QBaRCEmQ2xgbQKYGVURZUW7sJKcI9wm3q/K
RorW4SRMa0SqKA9jZoFwi3XCcoRaWLczrboxFRoam4zOcTV8sMyt7m3vdEKq
SQi+Ne4fWfCcD5u+WdEukMBFWCdJ+hbhxhIf3ZufjRtqAbsmSZf2ZrFUIt0l
aXdPxMwd+udOj7fSemOeHR0JOgCiJnYSkFtwLAbMb5EMgsUK+UHEzjtxgMcS
gkjs87maItSYoZvQhggTBIOCZ6l/Ulwxqp7aaKaqFPMpXJO04eYW47dIoC/r
KfaC4VGjaTohTIhTVZj1Ax2W2YWaMGjN7Mm5UN+NMPQQ90pEmfOAOftia3Hr
0TG38BtHa9IjXX7SVxmKOVzkQFXWEhik+nRqlJgj2Il0n6K8YxwETs9bQcds
xQY2215w+HpSwkMgDC5Ov6CTH29gSdDdSOT3fBpbVoUm/KgqF0YxEDjz8xr2
9qGkCoi+y5iUw8jHjOhcPnL2EXugk++g6csuMLZVmMS9kHfGUiuHj8JMHOYK
mYAQUy5LZci5DqQOi3Qip77LMKzOhyAJlqE4SqJpajbGn2ZPT4ZjlqvooN3Q
415UINj/smaSLhciX/sX2MmWVzdY69/vD7MnBwekttOWkta+Jo2mZaVSnBys
8ciaAH0Pox7/kO7qzCHUYcm0IIbkG9Cs7hsLrKKVj3x0A9+7sRB4KvZoQjlz
G+W+YD174saBQVpthRoupJwJ3po70bCYsWjCshoL5SUSfi14rc++LFlEbq0o
+iBmGervccEymDju4Rzi+LwCyjvba0UIgBeLqSscbOcPdoBImYyPBJyaLCjv
ajiqLMXkhUS53HgBWG3i5ElT8Fl65DPjUmFxHfYmvaL4I2a18eAWhJXPWddc
6xjs9fTZBhC7Vq2Y+y3W5jnhnq7ibPfpCexFezDVF/d8p/GtVIkfyonuLnYt
1hgX+adysUJcIX+JMaAeAEIYqMTvUyxYepUoBlq4XBmpxMdKuK61Lf9U6Ikw
B0uB06g2QSxuGBYX8KCpEZ1RpHhqXBdGLTjUrqimPk2m6mkAHBtIgkfJuh7G
FJatZS0gBk8Qrsd3WcYx8gQFM8XYeeVyT7FL9XazkVjQL2HP/0z/w7/w4xAS
3K8yTt3LRgB19/lo9PRkz+kLssO/ynbhgJaRfvXrLPp6P/vH7OgX8S//5PYw
D47wh4rug4bYq8WiBnFqVZRTmujDxeX5v/7L/2qDNSG6MSLf3VTOF0uB+5sR
lK6XRkbXEbOcBcvp/Oc3JCmSmsKemGVBF5oGHFWSk0u6SYjQI8myyb0/2kNl
J7wponDZPAvxpIi1GotBHZ8jRpQJKYxB+GkH5vllCWCew09KV74uyZzJ+cey
Ek9+K2pyhbIgzJrECxGNDxYo6T4tnVeeLJ+PItTa2VvZbszFi34zr8f4Q4VL
jZqPPaatUtVKJPBRxoPqiAjXlGGjr3tpacBHO2BdBwysValAk+7ldFsE5ZaY
lGQ4p8PJdXxf+6gwNhohDN18OFUmhtaOXdl+NJYrVqINS/Aas38aJkyXrB18
Mn7sPCKS68c7Phk5JLXOUuVU0Az4/Q54OyUpg2qWie8gnkGkKdVEF5JoxtM5
iY2ffLSMiUfzizhlrSiW/siYUO/McZWseC9xQZh738QP1etRPIFW+jVM+QWp
c3yW9eX0Xdgm+RIAZiL3HqnPeQX3zKVnnBVuTE7huFFzuCQhWNLovo8z5CgE
9WkOIs7LyB4XkHFYll0s2PJJcpIdBK54iGAMWETpUrvpbkcwbjxkurCQFZVs
nSw7GEGOj/UGgq6+eyhKMf8E6j968lTuNo199zcBJ6voPQZhDGFodJpsPMLa
j7dFGumGawzE3ilC1YPCnh+ZE/o6QFApwoWwAYET1/65isG55OPwLopRDAyq
d/W4+OoJByU6SZLZsHmCQMwWC+I0ioV3VM1OEBfzu7pklR2kPyu0Noe5ogUg
Yo9JFEcsyzCqziLNjo2C8pW62RglPtM+OzULhBbXA4H+ObtmnH3DKNR/syWd
/p1WPfkzvXnw6eCQHrw/fXPO73pL7eHR80F2+OKI2bpuO4sTU9KchXVHIl5t
NgdUdvACXsiJDUG0ftdFVqU/WS2qtJCRZLsEawAwirzJ1RKKQpDeFAjCkELF
dBmEzZlk/KpnzE+CyEPxe+dpjgbHFd36SPo0hF+Cf5O3uToiU/HjKBHJbUzb
qymYwsrm5ayXZRlhz0+tpx/eRlM3aFew0JHt3RFtGmzjFx8ubf82ooLxggUO
93LygojMCSg0SJSEiB+GJ0QI/H+fHjAt4F8nGh83xcZIRszbD5cD/s/w+KmI
Emd8oMM5ikTNPigFa2fAAJsN9Polljq0RGH/3ojnV1PvrFOGYjE6CI8QlzmR
zevTMysb54VisBKfkURvYHGsxo3bmi9XcQjNdJ0nz0dxptf9LYtkdvFA3V14
KVdL2PkyP23Iq/AvJSANQlAeNFLWJHGryE0h0+yxMTwu2MIGxs+ffT2gL1+M
EI6ZEF5fXKaH+GQ4LW/KLjawaZCtkiOt/bm+Az7BJe+UMs5IrJOoneypvpLI
buCpk4eCLgdqfBLf6FitpmKeBW9nZiswyMXF7kpxd7PdUK4crTLAc3+tdmnW
nOVYnV6dXV4GY6ydJ375l+Gf2bHOzEYaIGqAk3Xw6fhYY5CANhncgPQeXaOW
7NXqlmSw24KU7xUceFe/fROH249oW5LCjNiazy+zr1iYgCrRDsUzjoInv9rB
Zp/B4ibWKd6AdueLs1vZ5C2CXdwHTBkawQS9ey1O0dY8WCSyVLKxErBiyZOe
mmADqWrY31kf6ZlXghFdpRxvL9jdMCrsycBYBKSLji8t+wU6TCSx1sucz3TY
c7m9LWhAU+PXxrSYlWvZr7mLwlOSrC/IpJGktNIASToc3v0n0oMDowRgsZu3
T7IpSx6htg1pyZjIQrlskrpYlNPUYuDtuKQMFRDeY+8N5ABRonOuE+h+oaqH
XO7MLO6Qj0skNFfvObOEBEA1WVS0ffB+vfHCAYGumozes2ZYTVCmwhSh45mg
g51HWfR+Ns6RYKjhySKQPyiraGQGQDm36JVY3+gp/SYK29oAjELOklnmY7OJ
FiRMhPeYS0hs23teKte4k78meYU4cPqONX8xtKbCGx2YlliM1NIQJ4Ci4xCo
ZVLJ5FalybAeaDeaBY3YpSjO0PIYEvyULXyeRBGyHz01VS63ETtGYc1g5iDG
DPrBmzM8y+hZM56NRsS1nDxPjRky0q9+nflvY7vFW02AA18Xe0Udftozb1Ow
JKNwhgROi0o7berlUmS7Gcm4OCwXnN7UCi5iFw5tCW6GWhxZYdDg64avng5p
X73jTY4yVeGvgDQc5eVnb3H1o0YR6Trs/CxBuqRC6gkJo3EwlNvMUoiy4sCT
WYzX/CbLEHnJgrTKzefBV4kL93SyKIac0vlnS1/QJHMvAKoMzO/4ZGo1aKHo
htyaOzzQTjTku9ePDpln/EZiRtoyyquyWn0a/obLDs1/Yji8Sho1Xo1ggzRG
qFs+AOfpT4Gpma6ny6UVGct2r0/3osxyG9WIzzsFOHu3KUJYIsckNTVLBaGa
DeQ08199eH8JdUx5B+wxJKuw37QrNPrae1RBjlKUpwHDXpjaXgoBIBedvyWx
G1HUiE9svC8aFmZsbw4zaUrUua83KGE6yleDtV2smHV8IFNbZvSod8bjj+ik
y206rJshsbfktF+87leyJWxDC9jFxUVi5Vf4xxe55/FIU2jgIhcLj+kGEDwS
4VVJ2SpDtqP4lK98CSD2Go6RuBBduwSd+i+0iIbxABccRKEKi8X+vD4dvhrw
f1/jv1dW9IyfkabhVE5+f0oaMBdH0g9YPisa4mJSWUmCiaCqQEA+En8ThD8H
G7bKnGKEuM3nMxEjotWPAIWpGvO1jvScR3IiRgIDyUhBIIlGEqWHVxMAdR5Q
0aX40j5+GqCkxb1mpAvyYa5QR4X4qVYN3bK0EIfEnpl4ItnPcMbRv2qWSRce
/OHQpCSsFphygkT2B7CExWSAZJK2jxHZB07NQVVBpLqG8qQuLk+qaqIG/iGe
K1ZncgnUtoJ6c9T4dL4amLwslT+/EPWeeTRIfj70LfFGqXfOcMBkmqV0nI3p
mvrYmmy3LNkGWRUKg8SV86gWyioyhVm2MfmCdbeBzsCcp/i0bKRCFbGI7+ku
4QJqC2kQEMnabkOvk53hADplF2ckDEnhdHO9/uiD6eyOdqawQCZtpiLEqhNJ
biDID3kTWXWVMOV1ecs9DGlfhJSTJUHDO6RBn1+QnrwjCUQu0vNoYDMmQq3T
uKiDTxwWePDp/IL/yxr2txbeqF+KExH6seixs1UDVsCc5OnJqpnbm8ZLIYv3
uSj/2OefeJE4J+PEM0zmmN9bdu5vSVDzQhIpVpa2O7yTBzJiq1EcPqlXn/oi
APySVCaQsPdgBpECFmLpZNlE/5Wkktu9JjnMZiHSVOaRVYua5N6nmilHGJfe
yBXiD0YPwBoHZCIgS7UzzCxee1RmYS1eHZJ0i0A7TzOEefTosoYdR0LOPEVi
K+NJFFFaK4aL1LQ2t2HaEgw4YBYcSkrAEwuQf3hb/NZdMMOdlP3h1K7s8FjN
GBcrjjZHIdukRv3nz1IQn0cGkvkPzzTjG+TRUvcc+sfB+BNlD8Ivx3mDXi3J
VakBpGLKAH42Ix4Yz0wGDHqrZi9o+hZsEo/9wax+fgq4tqCKr31sCi/NzDc+
N8uXR5aiSSPX07jKyAS9ofZw3sRYYkjiB4BKdu+7q0Par29qhUAJz7ZMyYIB
UbTrE6/R+vAB82GDl9nej6Kjz8cqPa+eA8SPmBF0wgjST4TwHvnSSJMG+Lv0
Jx4LZ/iB+ZNnMQDpR1sh2PbKAyBo9aDtMKQPYyB6n22FYus7D4DhuEmEqrEg
7hFJlHRBZjv/eDB88U+f6aTtyEuPbFn/Mc9l4/Ik/O/HUL7xfNsAjyJs84X+
EA/cEn6Ef8g2FzjQJ1tgt0fboBpsGzDeqe3jbnvjke22V7bvTfz0EfAfQuyA
UeaVFd97I9axmQ/oVWx62+l0msRsh8BkuQ40yJUYgy8P/QqFedTe4csm4Qbe
S+wSweX8pyKubLuvtggXYqX7AZ9W48hf+JN82YU6JpZr9bFYQ8a/weWnwZgV
PrBfkTrtjfdIhRivJdsJ9qp61fTrYKVpP+NiXt+HEVRBcWoSQQqELwyrZsMo
XYDf+ZYDmURz5DprFUvv2S6XLt/ztcvplkzqr9s1HOIdQ31rgzaup+TjLzh3
FCGcrQvlFHw1FE7ZBBT7NCxCDa1ArbcB9HP8aKRyGqwCCo2v/URgHmbDYfah
akI/H0l7ETeMWn9IJOlMimINP6p9yPYmFxXHTUCI6jO0mRUGxD6NsrcswN6X
beFL8ngdp6otUWC2CvnMKODWML6JJpw7IrhDFyIC+sKCh5KJeoEDGuk+JKWQ
w3qjYg1J1TVf2cxC3qNApOXS1zezYJVBdl+MOan8voWNVy0BnASo4SvlHVYQ
TD8kTKRhQJ0d0yJuriRroJNaCC3vQWDR0kUhpEnqnqly4mOCvSic/VgOvy0z
H7w0cFocXUKhkNggFaZC/epjJowNgB7GM4SqRVFoQUarWR8dJ6v3z7Zv99MN
pPRQccMnNmBsrOr64uJrwbVP2xSJmcZg8VDbeQzFfm+oGmWvWE3D0WZ4PApv
6nw+CBhNF1dG3Ey4HSryFZx9r1wPNZXpxsjnhTPX577WRA8sUV+OfCrOnTCm
Td36CQTb4nkrOU2phDaEOnPEknX05e26hZaM0ml0MJGF9ggQWlXdk6RWSkTp
h7qTaDP9nARbtmkIS1ctO3LYs57BxfpUNUMNTNu6sHPvXsvGpdX0TC1TLqcH
1xxKkv9LVNOvMscB03QhF3feeyZvNlZ8s7Cq1lZ/AqXqaij9tXEd1MJCtcQo
9Ra+7XAFo8hkMvfWkkKcvJfHSeO9kFSz6raxTmL5q/mUFApizQh6Ymxq7o/V
4NySS6TBESGC3OeajUW18JNA65qQeNIWlkDRXxd6yT00lwzQ+OSMaai6lGpw
iIm0AED9aDnPJ+IYmWkeFSMZ95rW1Q4Rmr4MQHCpBQ4s6XPeLce9QbLDkwMw
DGkT8uVL5qASJS/222mw1pw032A2wwTora7TIgs34bxAEjwqf0QvWOVSFRD0
aq0btcSkMlbfJJM+NcXgv4mIvIpu5ZfZociQ8U9H8pMETg/jJ8fyxITwl9kJ
C5i92VKRvgcoG9M3gYtN6np4v+H0kligLIaccaLmILGmsvrdrDzNFVqxs5Dc
FA6vQZWd6cgG1d9dVDpSX5HYaljQrV6cj5FbWDW5qGajXngacD6VaI+uqX21
eeU2qcfSPHfmtHKRc3vaL8krboMvSVSX1IuBuGvCfIlibe/fvma2bG9Ixuxm
adyoRGkxtRoYLrZnWb7Cfe3T/GOSk13YSm/yaNv260dsDqzrebzZ58V4dcNB
dt2qtd2e8m/crYp+M+UBEo70SBHMD1FknhdgYdTyCz62alhl4R0e0rAm8/Gg
Ifoa5tUfrk+/02jE/KaqORw2GLvGq3LeSV6hlqHg3OAAEd9nfjs2ACAmnmuZ
OK5NN3AbRW+5aBpX5JgXXGPVjxS6oCRr1uwEumqXomAMENMrRkApBhMxYC7n
odP4gbFiopIGlUd70qNy3KCmqd0Kd7dvq9Nbo5Xz17PE8cp8WY/n5qScrqt8
QTjlBFaQaRY/txw2CewNWa7SkKSWcbWAlRVPQhSddeTg2sA6Q/wu58uLEiMt
ctKmI3E9la62ilxY2w2yXsMEXL4twCeg6xxjdW7ngV5mK0nDDvVBQm1/Z5EY
sOv5qvN6t0nGnFSomkB126i/jOB9J6E8HWcqlLMtC4MVVn2LS9o7rrMBxK+j
aD8nfamgRnHZAms54FO2hQNa+rMPH+DN10q8cl9xHWtXenEopFSfQnoomjs0
kwxlNAROqdojlAVtjeuXnRtdoEMGjtpE4uVJvuco77GlkXaygzKXA763ZURv
ShB/vbgmOBAW9Z9HWEtW9W8X2FSibsxy4kcO5yaybguP67/hLH5XhoCOysgA
erJiNiPWR7d6KUnFnMF6zyK8UKWN7vzodqnhEvi61dnYfbRq2FeETA+hO2mM
JfENMrsVPBNgu7r2mQ5S5bGs6A/u1idnxNp0sCU+zvKRlJwVMm/BeSX1Jwl+
iofFuVgKg09CoZqQIe18eWa93+D3tkmsUDL78BbL3NdVlHcRHO/Bgz1s1SIJ
pllHYEuh2U98RZRd1FnFiMMFqtEoPK3wCe9MWl415KXk3rHG9QWFBcR3SynJ
/CyjzGbCSwNIkRjUaOaCr14AQkRpsO1jJJiRfjBxnvGDUsJmiDEAdeESTKrK
LeerxlJ1NrgHxDfGF5PWTGPvefEDbW0hpfeiogl1E1OZnrKkIDnrWtJpjASU
UOPK+3RCMe88hXwdolHM3XN/S0pJr1gWyrmYRQ155yhDIW/5OO9ATpqZBB9m
wKLq3qgywUocnzynpS4MKysfqAY4hgaH/KVbk0gga9XI1cUndZbyLem54KVR
G67A7ozfhAVkrTGXbQddReILEXgcuD3aYcRgaUZZogJ4ISEImu0AKonnRCpF
xRV9IkvNOKg75pW3K1PvOjVfeJ0osNdIYmMQNpkfX7dOKcZXqQyyUcfZZNah
Y8ULGug9EWdwuPClcifaDsaiiYc6wpJN4PlMSxSmEvo+F6NXuZV1h2LKzUsb
FJAbr3TQB9aQIkUvCVYn/3r8QLIFGxhzAlxbByrJfib8ffDemVg5Xz8CH4vx
CR31QF1Go3hgw5mHDI2Q6kaPNF2oS/RMkkqSYX+5FjDnTm9E2xrR2fa9vXh9
eW5eHTRgiMZAxVTQQ1hH767/NyOb8SnY7OPy25Xlp/40VnvQTPKleJ7KiBHK
lrpoS5WP9VDep71Yg+2ryvGznmFGz8fL7EDMLDaqN9LYD0MgAkq1t9b4ZxFc
3mDjH3Jf+PWQMJS+diI+6Qiyvis6WhCp8RuLiHX6Sy96/oYUC99yLWoJuJHj
xR6z0NMmqCUa8aLunlB6NRuX0jZNnG1Sf1eYPwS3UPs7jgblsdRBgy0GNG10
KX/UUHekB4zXvqDiRoBGeDUOl+CYPAs+rKJWG3QjwXerWY1ISh6FLE34C0JB
3tDFifCguOFKnl3aJ4GU8Ta/iaDx4SyCF8aQZR7h4A9ie3pPWUlLDIYwW+5S
GyrecdCJd7uFjNy4YBmiirh4+KqNy1HGOe2qy5hCHLe187/FlSyZiFCwh0s6
abSU5oNr2UetycUFD3/P9fb0paj2Idb8UQeKWt1tHwgvcGv4/mDPnhw+k05+
7INlE5k2FvRF2xcaHrbQwrbw/eKDUgM6OWlV62wUVlcJoTtCuZL3ZVYX37dw
c0YzuXwK6fAGhEXxeQAyy8SUsEoU70iqu/HJiBr9sc1T1VSrAhIQ+uzkmaTG
MUKeH7BRPE7f5NBebLh3uzIYoYDyKHNaWc/q7aRHcbyO4g1CBikPwpEH1xLM
/ACE6AOw4PL3cW5s3AYNQrIv/6cug0RR94c+izKpNTJsy8xlm8XlVqy/Yq+S
qBUtghxpM9BmL9jXxpn3na9Ot7ROpsynUAdn5M59UCMzP386ROW/rWuJ+/az
eArwE4x8xVXFypaVWOZ6KKDtY7/ywGu3VaoccfchZGYN/DeDOIUYJj9Yq4L8
q12sBlqU2+zn9ANPo0kOFqGCy8EXowCJ+SCUVz6NUuzHFmunrgIfeierlPST
Ln6Q5sVYeWPf1moj/CDqcaWezSmd2jtmgRbe/ePxWfZdUfspTt9d0omhX0f0
KwGsXCTjOssdmuRyGQD9Zz6XHyVsZUKSEZdS0OjCStoP1Dzcd1fPT2wk/5FU
C0L9Ei5dWGuVCf96xtW3li2xIfmQmYqfREOHId8gWZK+lhzUaFT5jkvnqw0U
ld+5q7hau0upKgLfTMUth2EOi/3CqFyNmM5GiyZFw73J32S7vVpRdHMM86GA
sqdiwZIZqCp9nAnyp1q65nKiZ1WEJr06Kcu8E1Tv9+hZ4oygppQedp/k2p9f
kcB5ClzheVJKMGUSBeJ536pdwd3iLz0zL2refRhg1qug5qnSSIu/zhMDkLf5
aGmJJjRKDFbGHqC+JJf/Jsp7t1IVehHFZ2PUO0PeDAKRPCpDl4cadFlSg44v
WGcF9Dat2WIDDkMuymrVSVFPQm0j1T1pIBcULRSTgzgy6Swsl/sf+8Jyo+wi
dEUNRca4IP5NEdUG1ivUONofV3nIVtWlyaI0K9EP5cIY7JHAfdWIAMhRA9DW
wkEoF95i8+D0972SHUw41dedGCuQJsXDqI1d83UiX5+9riXNJpxsAaMRv88P
2kLK2TtzSzIzaTsrDEPf7NA18bFodjLfQlBjxjiVFXOzQZz4g9i5tK4eg2wP
fEODfELE2pYxb/W9qbF8KejBrg5PGM5xPRh7bWhOswfqyMA/ai8/UD5Gg/RE
Iwup9qk25idUTewz1B3jyqhYJdWT5Hfj0f0H/xDY7+YT460PfjN8+BXjihsP
hPlt/ByonR79M/81pO3xE94AvhVXC/ziXFhmduiitWVHLiwnO3YBPFIUtwCd
PXEezuypU9CyZy6CJnuOw/er7IULSE+VTL9HBGKyL7FyybT3YQkOY9XA8JcV
+5S/rN6nL92da8SAxrMmmpKvb+LkKogTnIgMlwjz8tzHavWZ5xnlK8GSxM6j
BLdSGFNyk19769ZXbWPCYmW1CIS4YpTqguFlb+kHXXN4wUukuVVL0fLomhpJ
q4psUtoeAPU20O8FrmafP1N64UgMtOrSCPk1GENFVEtLlPlQT1VuQNXlrfyA
ly3j6y0WMzkQxl8pW0u+wBRcRuLgx2LZaavEODfBo2kjuF9/RzwCZ0316evS
Iow4xUORblFHQ+K4e2hs9LW3rVtFPpWrEX8fGgdHGEs87drvOxpX44NCTl4V
O+ikaxG8JlYrQuoTeyYMmFdsFTBztladjOOvo0sH6GZD+UwyPCPwNORRW9RZ
gQixdLFURPz91vP7tA0gXzrIypTqhAgE/o63jsjAvfT/jAXqYHDoQREikON1
wyHnc2M4mna1HHb1EHWm4rBeos1FJAfKlBKUq9XA0M5YApGLqUlWwZWQJBcN
BWkReJxkiUVK0HAo1xBHW/qKX1aWR0LMpYjgvW99Zrm4HpY6c94pnfbIjuxM
ItJFdSK0apY1bUzIi4QA8Y2lRtC+etOPsxPqEGsY297j+Syg913UeyVevPkS
otaXvX7ToYi7gqedA3s9uzfjdJNWAHFTl4oOgAjKrJHoOfO0wxCZQ1fPk6jO
rINaE3OjIXjpehFdSzgQLWRA12zhtmdRo6HLlnggXxu78a/Week911tsuz3C
ljyGPc5y2hl3u2enX7d7WQJw2KbWAwJbfWmTsQc6TJeEHxHGUPIcEeiWMxm1
4D2tnBlqIxYRk1rcR8msso0shMC9es9FAJ8oPdQzLp39rm71iqCFnvb4V28v
HqBxfjLRDHh0Olja4Es/eLb7rn63x4fTd99+XTeFKloFJw7nGb0iVXXziRG6
EbmLQkB8PIdVXt4IoxtGHebFXOMPUlsgGBD52Wa/cbDBsjlbT+VHLqXCP8b2
XMF6RfpZ0bL9mcCQTlfwjj1KklzOzNJgrC2Ht9XA8c1LjziXCikxd+iLKvGz
np/iRlh4FDsaGIL3R8Snw/shJm3zMjvRF+rly4xER7pNk7nS2zoBkS7sDbD6
l/c7aVJk97b2LOIyDPpPmeCLKByfP1tTI1IYzIA9LUhoZH9Sz2+fWwckjhuw
f4OKQlwn5+1qOYXsw/tXWjvhLUyX66WQjxg8Pry/FLkrmDvzDRt82FWd+BSD
8aRoPOar+0dFYWwZ/htrkIq+e1bu1LvxuCAQMcpREtOy1d7AlUCmAUTm65Du
2OcGGx7i8sTN0pQLJmJztyi9Gs5CSm6tC5j3Cubam9ZXTzTfPHSd8TtxrYtA
uK9PiIe3gNlGY527Pn/m34ZvOZ05rmfSf4tt3C9OXrBdDSm0EuF73+So0CIf
rixc70aNYW+t5AMkoJxr3K20kqfUJjVzgLeEqdsDcEqxPFTgjBK3bcmAkb3s
TIFxQTd9QcnLhfJ5EGFkt3ZI8v+9ImsHpGGNHspQ0TXYLTdLcWc7/msrVi9O
EhqmX/s7Yh/JYfOn2XaVlVNiZ9l+9s91OU3qAzA2r0IUxjtfzUOaauyK1sWB
wVdsyrcwF7iQJTeKO4AjyAjOGJ+c1CbRwiwXnCa1n7VlCXekUQOVrw8JVdC3
/9GOlpx5FcVPSfFREhVXlYn4VixOsqSQxlLM5+xk2EuGdhGMPAqpYXS1oZz5
alrW0vSQTgddUfN8zcWXUshQe4NDypogugwldQtRAH5wBP7mqJQE+TPNk7FK
dMEfh+idThIORW9AoxVIEzdFp/1GotAsHUL3KK4NJxXoG42LZeUCQVXLfe20
JTUeecO0Y8sA0bsw0PrRsxAg5ws52lzc7AVjJ5X2U87MPlTvY5znY84XvDTG
UmhufeRAtvrsTkViLRmi4Wa9YPvcrA3Kgu0tzhOiu5FGdfDv5EnEme/sUrYP
o038ZGwGdL75rcLS8BbCSSQNq/Cmn5gFHGRqWlwifnS9H5HL1I5G1sv3vpYC
ifxCOIqk9DI58PZ4L5KaQID71teAuZcCby1K753CGioLiYIhtZBfbl3XlAx8
K/LI3RwRZJgTxIbRC8iykOP9oAhzkEI/00Eabha1T1bjNC8aLSMUynjJUYbv
Emk6KbibUIpK3oMzis5F4YY4ubpfLwY0umronFV6JzFMYF0auxjzsM3AhK5e
aqpNbAMIzCLX+s952Dz/JGhlUloSFUm9L3E1xjUJ2T+Ji4QzNxpcFgysMar3
1fnLJydqTAURu+1SMP31Gl2RubG1kD0NZEk/Jm6ZYeNJUaWQHGx+y4152Ld7
GQ5YuRFgsJtb7zVa0tnZ1d7Ah2H1SDnUyI++HyWjV/2oAxqdrs+fM2b6oTmp
4KgpuWdP52vtssHJ7woC4yc1IeJPsVdSvcxSaJyGl7yFqFniTB4ykaP9HK+o
1i+U5GdaQ4hRKAfHH0A7L1vhSQ+l31A0qwrZ8Rs9OItPEzbvWcS/NQiVQtG8
MyphryobET0YPV8QzBpnQClM4xIiq9lnYvBCt15eIf3fgTdiikEiYiOe9qIw
nvjQagdoT0QRbAON/YigG3Ntd5+8xvPxOIGst8U0bbAIf+iiKqB6JtHbqE1C
qHFTmiQYItAtuLKMQ2IQssIYquZsI6nQnieHuPcVKOBqc+XRWWCJYO1pQk0u
un6AcSYduHxnPJxy0lG8C+8RGRkHNJKJ7eCFVzSM1u5oUMdlT5LuvXMmXTwB
WAIo6w9x4FBERqYfIPEmFtJFjmpLGAWqKdIfpLG7VpbXjqXwvWqSvwyupjz+
4PTdZRtZ6jvTJJEwZBOOV8y9cYdUyxUzCz2atA5vifPKKRqhArG5opF/eWdh
aK8lvGzkcCJI7NQIgMoPKQUpfbsDCb+6zm9uiunvX1twmig/+vAD3X7xY92I
6AZns0laU85fZWc4kbNw3SWHGUku0T3jm6oNepBp2FwSS8KGMEl70BoSjxB2
xI3l6Hv6jSkF55y929a6iMnqyZNnL14A3WWl9brY6R4Z1MvO0kZ0MKZWC0NK
EOXPLw4OtN6B1j/k0gAa89Er44bz8YaOxkDKayOMpyhUvUZEbRu4jhSUO/g0
fTF9MXuGvWrrzZMia2NQQJqy4Rgr7s+GkirSnyLjkWBgnqWn0r0NQVAMQMBX
ZI0Y4Ac4OaxD6tc93PfD+7QCbZAQUHQLPaNkgPj7jTPeevvJuPjZx0YqLm4e
CH9cjOxYAIhOmLLU7EN8mwlPwF13rX1w2lRIZQ/NpG6WNaqw6r3om35FfH/g
71Ajyi3SB6K5Sh9hKLZXrTRZcjZf6HEqVUVNtBIQQd9qQ43lxKUP3rNvDNAc
UT90rCH5q4ztdZM8StNUt8kWmM2sghF92IyNH8iWF/UHL1zxYrCqbfB6ZcQa
MyaBhMlx3CrxRFmKMauynd0VBrWn0kWQKCRhIexhqyYo/VBLck9rKRS6ms9w
JUBqChCia4Suc5uEOdokmyoluw3SEV/5fD70tmiWkuTmQzazjwgWFqTxZQ06
o0YqEivE4V2/CQ+S4+MErgaIwKhx/qMOndG7BoCfHN4A8Y9I3UOc7FoE3J9E
kOTpJpNvsI8H0baBrX41pT5sui5MoZr6mzq7DDlJ3vbi1TTTJpRWNH8JJd+j
wux6KEWPdaofZQ+N1c8H9CH9Ps2ybLQpYCiQJRFVrZpzZ7WXZudWNKfynW0g
GAgHavQk0R6jyocEibMqzpOvxeQhAdVWFynK0XLC53HuxGyiZf97NfF97q2W
xNf7v1fcrFX0poValPMlZLuBMt1qkRS5cCvkaBFxGg6TzeeWAegdbcGwYKNY
gIF2mvBTJjmcl532pKlqVF6ybliWbjrD3EVU3ky7v6nSbJW8Zsk3ms8bah2l
qfe+6bxjy2JvqLiYCcPMr0g5elhHJXiTxlejxdurPQte8IWMGO/1EvGo3k+O
2FIzCcXalORhrr3uJn3PEPfOqczBSJp6kB9cU+VbzGmVCy59pOZSkRGN5XMB
e6US2BZ5c32Tm14iZGI/a82AJoqLU82B6xlYbbtwN7+pEzuBGW+8cMMzWsEO
Hb3n2fslznbfyChhfz5eStNpEnt5bCqlUbykuCXbJlSyzq0TutRnjW2+XU2j
3NY4GhvTOaXrdghIfT0RXRPXkdHnVhoy/ptD+bK/11fkly/O6dK9LhptiIQU
IY/NoivDFR8MuXyYaBT93QrfB6uics83MUHi+jb9ENcViiL/UsRHrgjqF2uw
x2sdgoZQBlOLqwwZkn0FQpnAHlYXylZjo3ieQSypaZ+QCmP5+1ONFHxR0hhW
Ars/WPfzBqOLMQziXAyktdjYx1i/zADyRXowbiEGWMvySNNXuk5wgnF4GPUA
x20yWqtsGcqhIJPo81d07KUcP4pdBunJesyXYkuHOkPa2WTVtpp+wunxUSMO
NZH6NEs0CdR2xKaF29/MZoUJ/tbS4xMHvzTDlt47uPtQAJEtXQZCgnm1pARg
BuoPJnguz/e1JwjzAXOIt8ED3n7R+5VF1zbpU+cD1m/ylTZhT0szqmcLnYME
RaFQRqfOX+mTKMnlZtBLpykjM1K/Ry2vkwvdzCUPj/c+SgfTEBJzJFZ501jP
7nQKufc2MsowAo2ez5NxsBJas3Wej6p/aIa5urXVfy2qkbhYkybLobh26uvu
1XZKYxG+aDbLq1Ls1BbDwBFEdqWENio4jXN9FclGZ2xu4OM7oONH/xFbCcRM
KKIw41rjRKkBYNCZbGLtBZxcHVrcmmXOgTcDs5ElxUPI55eYoNhqZ7o3ZOEg
7fJgAx0YVhu+HO+KpA1SsFZczrb9Poh2Nuz2rer4fMlF+PaV1jSzznaMjT6W
7FGmZk3xxnmQrRdHSHEMTpbgtrAwuVQYSR00Ae8ikPrgJ1hO4jtDSsFYVQLm
dv32awRDFsEw0p3DZr3Ol4DptGlIQLjQL3/e3qkSWQy1WVzOY7T7dG+34kp7
8LHRSNyMik3x8KnTd/lq3mnQh8QaQyR4ZECpz5HPpQJ8kXyLiexbCWh4DLaR
qvCwsnqqn8C5IDf+yAFPUpIn73x65qxE+ykpi8IdIkMOm1SyktxAVoV88g0R
mH+JeYUUhOqDF8h8o8hZ5CFGxJy6o8/UYg+TUdLUKWXQCTFcyQX611GB3MJb
KUAf/W12Xwcb+WpUCyVl7GXMATw7fBAg5dLjoqIXJqW09xB+Yq0+e/eaxxvh
dx/8852v4+zEFM6w4EkSFGLcVRRUMTy/Pj1TrT4YptX8TBPRtu7zdt5aj5Cl
RXlj4KqOS0jLrQJLRjQ/3wNvPrx6Fb9ZL+PksbiGR6DOZOyBZHJKcxXu2CL/
svTOyoDXbhMZD859j6OagcHnRCJOuHsGYgY3mhXoozZ19LJET2+hR1xveosq
oKbJq1FLk53V5YI6Dnp6/UI3gueub61pCg55oS0bAmagEbSFtuMQex2DErF+
m2bAuWG34HoaisIeuJ6YlObnCqKlL46mx4W8aEnQ00i7XrEwGIdJNuuVOtex
oiYfeAjSbjujAWljoS4oa/L7AP3H6nFYoMTgxVhFzT4ULo04Xcgx9mHZKoSZ
aGuLTyL5UK9dGr5CUQ4YKbuN3nibxSE+So5+/J2vLgY7S6CgzdN9Or/haOvb
RZtSoXc/98lRWID/yqQpL9On9CQQRnEKcy47zpWTo35JCxK6rjZqDVXFTa0p
OINUbTCOHYgWuTseJKVXK7Lj4ySx9L4+1GtexkGx1uZa1KQvcXJG1Ap6QdcE
6+FI3tfATQknuIun8Nv0EGZFjFun/aM4wCaymGtnVpHnZDh63KYydS/hvtE6
UKgfEJUtmz4Ozk0dnAEcr6CxwIa+uA3jBuZ8Q2TUPbfDE8f2/AT2B4newLzj
nr2CzDkUSyzipjouUmxhR/eRbiP3vZZKrHxE6MOAg0Uspb3OQBNuclF4y40X
aUBDxXvzyUj/pk39CGdGTUP3qJhshSTFIwCDUYKRGWF61Xhapav3thyX3V80
h2T2/fxJTqfTUnsL6STXvT3wBe8YGQjP8OUjfGEOq5EiXNi7q5iOFbUBbRLo
IuHp595h4zbmRQ4vdwTwY9C+cHKQaN+9EMK+pqEluYKCYdUBhC2kRREGmisc
fwGy+f5H6w3iAx3GRXTuLEuM2wglMud1ftNuvdiNkjc1xUjfgsxwLQ5WkNyV
dQBMj8hfNKb3Ndqg4lYXUToIUMhdVC/bT02EbzkIXDx0rWw5Bg/B2O+/Pcue
H784CtdS+CxKHpRF06/sCMeVnZtndFVVZitJKkBHfif2qJCEvI5LDAWWoBKm
WF2lrZZIXjCZqVr5+SsTrr+47c3t00YmpSRTc99R7lvwKTsfcCFniWl5Rwdl
xV2yJEpbB8D7vlqK3XaRO8hHRMaTEFokKp+QSPeRhrBbQZ4X8lMeMhpQ3kZt
mvxmXOkGEHDGrvjDsDrLvQ/nWLhgaNDNVK1F3vl7BMc6Z9nVIQNkYo4cYhbL
enKrPSL4RTGIcx0uhOi6XnmJtBdZHEiftB4NJk8/+a+yr56ODjk/VaPo2XIM
iBlUjXAYTmO2Y3F6ZvD0Caf+k8iqn+6ExVWzJ6eShux3uC/iHSrT/qzyTuo9
B7rNTRit9u/+jo3JWqCXXt3fD42dtDksd9HiGBZLhF8JWfd+5sh53AO934tP
y7LxaebYGX3CFUZUKu89wcTTYd71H0zuu2EZ8ojRbcmgzA6dB40T6j082bGL
gchOXDxz9sRF02VPnc2RPYs6ObH5TLgtvMKv2N3UynM8+mWv8zKfDrlxYAPf
hX+q3dNOdKrd8JdD3+VSzVdogJ3RLuzwP3ac+Gn5b/xrJ+6hi5+jv3e0vD1+
5n/t9FoF4An9hD924iry9oT/vZNUpsOT6fiG/9rxpQTwq/2xo3n2ArYUBLCE
FPzGNGZZLUnyGZ7SD/TPnZBAjl/5L/5jx/xMAqL8eycqdcA/+792oioLAFGA
tlILAnV1sxMKLvBP9MdOqLqAXyak3exsKb6grw/1BavDwD/rv3e0IAPAXWIF
MZ9QErrsGbzpOvhDy8l7+PmLc3gr3KdGJ5yggRvu6eFBuAouiE9UbDctvVzr
AjWCzchlkjdJG1NMgsAscEkkEMBlNBx6xX+jNym9g92O3rEhaag3nGlaTs4R
wRHrDMb9jpgfRbcJpxWkTHf7wGJWe9sgPevnDtwbTpK78M7xi+dP5Z2ajgy9
E02VmxMseBfQI4hpzHoAT+uOHW3WWZZ4ihwMzUHC/c3utJ3D0dHo6MnB6HBn
T682Etgi0a1PCc5JLp2klvhgcTNRp2b1NHiTjf8+MkszY6VhcyZVrDYqGZEE
/a//8r86tbIMVCWWyMJag7a2eGY2HExS5Yv06PE8rz4WXRxCCMjFcSQr3qi5
B5UagFqGv9hnBQWR6C39t+nGJ6Wi7hfvM0kgNJ8a+dJ3Imm3MIn2KjflkbFr
Wgs6Uh+be0u4RYHjOpQC30CM2lqJuaJ1tsmuW1ZspfMTjXi0PT82eJ56Y8BV
JVBv8ZyMUDJDNnJchH6tVvxIk2A0/96Kvymt94oTcPp41+SQSixmyghoPxQf
n237Nkeh1wnqU3LlBTb7f5t61tT8ly4vJR8EYnMjLpxCEZjyLtT1E3t1ETZn
6qto+E2M28f2UYnkjcVCyi8IdsySGwIrTMvc8IkybcEZHNdRjKUBY1CSlSbH
lciDA7hWXQ8YsX/4wFSe5yzC/7ls2FX8DTPtd74mVn+4yGRjcJyMDj2rlNTb
0EnC1sjyDE9uHhxwUPXf5LIJErekJqpk2vC5Wn+BI5TjrCQjRbzZxEh5pb/I
Hpst+BuyxM0kIZds8snb7es8Zs7bW+nDoP30POXsrwLb3CSPgXv8V4Br42+A
eWU9q2eyjvFazE0/a8/lFVjcrfk1Bj3X9JESvXu8szRZ2ZUnuP42bE5OQ36T
tzTUHZHRFDXZtiHpyeh4k3rtepcjFy/FY82WwrdiNl1JZQYJO+Y6tfsioUvh
f0CQfbj+dvg8+MdEKZ3PpVrMlhCvEHkZvNUbSlgUu+UTIlEypdYgHqm+0Zkj
8tpiWssoy1RT7+d1MGV4J5CEOcH2srCsD5dGMlnVtX/IWMVIG9tCyUh/ihSM
3oPQh96XT9veLdjrjlsalyXP4pZWoZdvv0y2PUnrmtmvcc2vSGn1oW3y2y+y
nuo7cBaw9tMbqUlV1xq6exmyMwYaj4U9uLqKrtplvuZWoxbjGO8I9+2hz3zS
Qqm5x7/MyqSPrcRAQ/xnCXeU7do/fUFCKyyCRjsizckw3OBEyErDNeL1RJPv
KblYABmts59TsY8f+8lF9HM0TILKOEjbU71Zj6JgOJ9FYhmDNAYb6LKtGUVl
YiuBTnT45IjPUn6TPT04ZLPJL9FKB+dEo8Ewz7TJZ1242ddF5zVzEZz6S4bR
5+nh7pYUkz1aOD88ONxNNnUvQUH+ABJCCrXHA1FN7IhRJGxFgc962diMnk2P
sEPDAD+yvo0PfrU1fWb/geH3gceN39MlV9mOr+Ox483Bo+xD5VMYxOSKflYo
TSKWVhokpU/O0bY8lqhvLqoNFZKSyXGcT3k0Jnd684bjysXNl8dJKojD542X
qWf9bNYzHF/PagdWikQqL01XE21BR2oxq9LJMXZuK1YIt8l77i+yMf6Xhe4x
C91/2u4O/1Uo9T9GoVQRmHSTYDobteWfimz3+Wj09IToIJKo/IBi1GUcha/3
s3/Mjn4R//JPNHwkY/mvxcjLR4zD2veYXdXL0qdU1Vc/Xp4zH0a4NYI0a23S
O19LNEqkqNb6Ae4SyWyo67kI4SQgO5rx70yYkwa+bNiUplwkTFVi7ft5bw3b
1WxWftr+cj5fkl782HBqatv+sC0W9OP2Z0xWHATPuR7ZBlQgss2fFVgQXZZA
B9LLDBzQXqbz81hPj5+fODQuTaVgv3/xI/BP2cb0E4H+kS9tfTRAb8k8Fvqf
PDB/8iwGIP1oKwTbXnkABLEtPQBD+jAGovfZVii2vvMAGCTNeiYKg+yoIeHg
0zLb+ceD4Yt/+nx4/GVHXnpky/qPJT3EMwF8/hjKN55vG+BRhG2+0B/iAd0r
C+LC5gKN/26BPahfm1ANtg0Y79T2cbe98ch2ewFl697ETx8B/yHEQjLZUG0D
j428bJz6FAts9OVf2n/5P2B/8P/KWvuvrLX/ZFlrMHdtEdWejUbHx3v6PD0t
MJFBNLVvCYf/gUq1/rwC+P3wha2hC1Ldd+hDGMZrRP6M5GvpDmlFrCwQRyh7
Nw5J30s+kPbQoQQ39+e+8ZFFs5Kj8CQC2ZcpzmHOGKlkzRLXgQRN0L8ONQKC
/nncj32g306SkAf64Uka6sDSWwhxoL+e+TAG+uO5j0QgmfBA2URb+HXEZiSc
4Eraoor/YK1rGyXfYc8k2pD5HroHHZ2ENtk8Lm/vakmfSRXHIYoPybaMkjuM
4Pq/r785Pz74tQVk6A+Hv3ap9CI/H/3a9YQS+f34164vasiDk19vE1Lt6ZNf
b5Ug7fHT/qi9589+vSGF2aPnv96UsOzZi19vEZ704QlhIj0l8jPh478idv4r
YuenInbcVxrbmHS6gSfofaFxmnDvc+9CLZdLrG5Po/6sQwFHdKSxfUxLKMSn
RXRp4DGSYiEqaf1mtkRqEykUQUrHFK+1dMDiGgUcIx33GVxzDVXtQzLKOIEo
5LUltVB83WHhuc549Q8bc0rrQnaD4ZyckdSZTzjxBE2Vt2TNTgtk4NysyilK
5SPwFA2I+KYmgONUu9ARkJNPbjWFJwURCJJLx73mLHBz6Psp+N/W8ILr/2oh
EGmVaB2LCu3/JPAZMFEEq4+T/ArtVXtxHjzwe+3n+Q5trt+i9q86403+HTfs
7rmpOUb1Voz+PmJdS83JLRr3Bi2l8Ejuu0PeI3DlhhgfkmuiyOBB2i+YgyKK
yW1Vz+ubda8TW9pbbx0a6klzyFIKMRugEgM09h0qh1ZUPMk02Ro/w8uzHHu5
+1Ffmdv6+o5uBFpoqCiV+ThUhgPr8ZPsWzUrb1bWfooHCbVSdVG+1aeJnlgB
QvV7G2ZZvaH74ywEQBeLtpjfcf1jvmsRx2HvC3EMgnMbKXnbG4ZGcMzrGU0K
aPgDBpwJWxrN0/VWcO81Jo65Rf9LRllTzFZ9T2NQmvJ4e6ti1Sl1jBDxDXbq
SwRwzkA8qx5Eq5Dst8pHQW/iB3FnoBsk4j6Efc18EYkfS25oFNYNkcQmx8xA
0QP1dmnBRlfSHImxdB0W90YW57nmZufb0Gi7iwVJX3xAWvfUfh6pxz2SyphR
tJQ0aNB8TTEAzgsl16hGTn+gjc5Md1KlIp3AuM4Ds0hqs9W6eWgO/7pOIemt
vCXiySor6wo06uNL4/cewVmCr+zqxzh0DilVDTfhWKAqzpxk15VEE/x107B8
h8FDB1if0LhZXnkdT2N15BLt0nrMfv9jpuKPXRjaHhAJHZbU6NuG5Ns/SUsb
j9nxiDYOnHXqgZ8lpZtjLqzJtZDPcPbR61xaiMT2j37qXJ7UQkrOKau66NTY
L9mb8IAtBbTCOXpt3YSM51oXQlxJGvwnd1EbZY+gGZPWYPLZ9ZKVPOvuc8tZ
EvxwUmVS3V5Ilai8YV7TTDX22LoK6c1Nn3kWohU/kz5IEumECv2+glZYSZzr
h/O68U6/HgTaXcleai8C38bI98BVvNTSA7y+3zxaEb1Lc28vodSiuJL6i0zg
OEVqbUlLzOWlfoK/pxg2HCSozXXVK3s2cpdVdGAsTDdAU9VcuDk0V1dai7KX
ZHacIMmbqiSZOMFsdP5N+vGC7sWnjm6H7JzvhW/l1kNGVxIrmcqXCPjTBhdW
fReByyGoeRA1UmmtrIe14OYoHORE5dO7nJ3qoQ/PpyWXxeT8w1UnGaResBTZ
0dp2A9ELtrgU7bZYZkn9KmRxlo4UhT9Hpy6PutVuBB9rZMeqjRLttSaAD83E
TYxm7Ln2S2E5OyqfqqlAC5+bvi1QWYsL+kzDjB5z4k/OyPHZ9sJ99I/ZA+Dy
Jl9qJRicKJ/HiDIOaCAdwjIek4OY1fZTIlVx/p+jJwcv0h5ZiFt5/8qLw5xK
VyL0fliqsJPUmJbihIUYnTfEO8+zNUjijlnGrMnp6xXYcqp48ORRqedHwIsS
Y5cEX8cJgZbQBfVN4tNF0E4qgeqZWUYfep2iV6AmtFELsnzCjMz0jmVujhj4
JY40LzWR01Eg25re1bi0NBgq77ZNbtVoJTbbF30IDJUpBo1DhAdvgchkUOwJ
10HQQlm4UOrxHaLBNZ4eO8Hpn7eaQz0Lvcv7Oz0wvJpylDAVQ0d04rTMU6LG
2vqxyHO9hLfmNOTTaduL5NbmeZppsIOz65V/vSR2vAqe5IvQlHEKpQXS7/QM
CD01f8dtG0Py/kZZ1CAEzXc17MrygKBAc4WYkJGZ7UqBf+dLOcJaJfKGaIhI
vNjoSqSdjOJw+OQZ2z1U+tmxXGvfzGtnQD+KZfdMus7PufMx42DnKsG5bQhh
UY0jCz1SUXd7g93q6Z/1kk4jIH5TrHUe+fu36JeKhNLddm/HG63NyuK3jg9T
MhJXm9wBclI7Tv/LgW+xGuXC2lDeqBKGi9ZlZJW8UW0ZS5KH5r5NywWMJqcw
VYKcORrygoigbl4+bEtPivAFWUIKzRRRPwRP/87ezoOuSaIH2+fEF5YUmYsr
rXvOwGWYAG3uoeX6NlrpPDpq7DNDC8BtdY7jxkllbyWht/mutkrUndpHllK1
twHAlo5kzw6PDjT6Pm7A7q3Bygh60p+GrG2i2uxUIdnnRxRg6VAnNSjeGvO5
3SOyMexA1ZtQdcjrXbw1QnMpybX+wETG7ocdMQjLD1+/5K49k8L/Fh3x8Cid
8KWZwbPdh7nKnh+R4HnJDh37O5xXOq4vY6mAX+mzlJfZ5cXVd5zxsJWpYIjP
n98ui+ry/Ezaip3Rhn35Msh+//tkg37/e+f+WzVul7/sY4Ab7mxHAGP7Q1Wi
scdcWrJyEcttKBFPwS/SjXjJ/qt/v4X/7BW+vXj90BIvLy4u1LdHbz2wOHVk
pFt6/L9zZdlDS0s15O1rDHbtP0WHN6pELQkAvspQ3CFqGzqC9ybFyMlDGNHw
5b8dNuh/jyJEWpo/sOPbSk3CvsFVHcQ68MCqxTOVLvrJQ4smCOZFXv27E/c5
LDJXMPv8xIrVNsTGUHxEEjKLoSRibFuwd7ilC376v2uXH1rwK3X5Pcyzbgrr
teujW7ctMPgO0xU+e2iFi3z57746rdz6+E6KFB+nbFqi2LZ1xg08e0t9/n9y
qVGTTs2re3hLTRaKytpHRcx3EXFlVTTV2ri39RSb8zbBw9GD9/PfFg9ojggb
+qnJXaZ+S3AzKTqajRy8NkEqRPITCjKTgD1Z99y4KM+MB5Pk9y/OcX/wXDP0
dDg1VKwkqoV7RXA7Hy7yc19J8jOsQ536Bx0MdCwMDjbsNyrO2qxaDUYKCQGe
IZwyDbdUdVbnMnRCUwuj1/qlNY8uns1OUev2e57JWccIVuYbbd/NjQmSklSt
OaW/bq0+Da/UrSouKyPFdhDkpr3E1RWMvoUPIpjFnIeQfCrfovyTECJT5SYK
uFHA2pLEe65SB4FXc9FbX8pXzOZcG0NdyNrkSbugqtFDrRTOPDMfK61nHMXj
IdPZmnbA0qwfsxTNvh351gV60CYKdApXKN4qphLZpLakIye4QczIXVlzv5HW
3ZBW00AVYQFfsUli8mquvdUvK63IvDEQkIja5WqwtGqfsHkpIdOGTldcyAzt
P8ZcwduX3WWdyOb0VoFCbFjNyBdml6qW5nzJW1M2BFfeYoruD9KV0rTjls9n
3kq112upd9eESq6IjiONoIhcyNFJIxVSjEm2TctV53j4r0Xzw/wvLRlbd6ce
i6nQ2qZw1ZRFKZTvt5PXl/rJXWTrRF/NTOtySQeMW9Q2lNINi2U3sp7A5ujT
FxyXbJigFwgpsIUUpsyy1OxnD9pQIreu5mwaHufVRz75oLCGltdgx8WA12od
a1OlJkw4ZhXzzUAFF+F4Reb+PPa7wYf2qet541ZcKIotfRrJG74fS9nI+BCu
Rz3Ux9zCmoFGr+PgmGmzhfmTSI8uYkAL94Qv7xDBlE7ZQ2Y0iZNJJOwDRn9V
scXLwI+4aKnJO9LSr45IQBpXuSh2IgZ2C5Dp6sZsLGjhmc05nqqeFdPeKziu
alhhT7nNo3sX6thFrrjWn9BMGaNw7ujshOIm3mXMI7bo6GxMCfbChC5AEsGX
qRQxCKU1mDrFS+/05rHBvN/On6i7sri3E5Us2hxWNCtjzzEV+Y63YsOQc34z
r8fYlJXXo/NJU7dtYqLWu8ck24fvH7viHrqDvtuUfBkW2Km1/GIUM0SYbDVQ
05xWYEplJd6UEnWg7bZnBtu/6uf5vbcZKW9vM2H+VnsFXaiMV8W3dAjIMObs
e7GjrSDXVmnNM4PffwIYqW3kxycEE6OBOSwoOqnDoNiIUsgSmnikjkzPNYRL
MW4G3ypTDZx5JjVdDRWIJFH7GtdwSGBn3KD3htfvN0jBtPeJ7Px1rNCndBHE
n6iCxfNQckJq7jGi7SGHHc9S6/5yKZxFe0eyIzkOrGOCGfCZXaKzPZ0VTpyI
K3g5LzbWW/YuMZXKaeDytu+iwHLn3oWCz6FCdP96RVxQNd0PFZ1NkOQipa73
unBrvMFVM+R3q8GuzrVoKMgutC4HXkY3MvqEtQNlfnH0mvp1hUkjWhqxizaV
8wuIsinUkydLtjfDUtXwLWM62oJiPtNGazT3bBXNzeSoc1vuPdctGs/NjUfi
k1zK0sNFtgPNYCdaEpgu/JWFRPBwy23Y585fq5IdOmurgcqMBW3GxRnm9++h
9TiFM1pP2Wo0l3iExdMp7KM/QF45rhzCBu3dFvWmiGhPpIoKouyS6LMdfXdn
b2Cmnj5/2oDS3wY2jy/L1UlghuKRjgg8h4wjq6A6kC3lGG7iLtXE6zXbkOlK
9VyjbAoqSMGW1dKJYZGJ5hWH1q74AxnpeyLIRGSBTJIJey3UrXLdWyCfq9c2
pXuPUExsT++9vwAJA7eBNab4ZY6uQyJloj53I/Xd4AddFNMy9/6tRjlhvP6o
qO7uDo9uhQt29kyGjZquXPcvGyEoe5M2QTuHo356QzQJcUkcgExuLPZyc70p
g8qCz4pOFYteBGQj7IyXOc/hy2VhYjNuhesHcUovMh1YXK9xiLbRlWJQZpFW
dr7Ng2MnNU7roiCMrfdo+teEn9qHJspndm552fzJJnexFqSR1qdN6HQjpaBL
KeZPja9GYJubFuzuUsHsgY9C+K+cc6t2e+0hshvMcUMOBI49eg8Nsp3kKrPC
v3AXcnMTt1oyffri9L65Q3Szc42PHUKZVVRP70OXXGa4hxEymlvr7ixLQ7jY
6qOFMiRQDw5naeFaa9K5QkKKECtqqMc7z9eAQfpSYiilRUPzeO2ClUWaU+Ri
NtA4haCmW/Je2GqPorx1ChcMGZHpZNA7aTa/ry/O1oSmnN6QglQvFqtKDVmt
xWDGjE7DmDEHreuUsSVCurrt3PuLs7evX1+8Ob84l9XAV5/AppegIm7gowaU
ec2hQ98kHT3ZGSsaBspeLwr25JWtGniirg1yVftOlBZCVXhDUiix3xOQPEGo
sKZVG31nal7unKu03GA5LvGcQP4xwIVEfBjFRYBu94cfL/ZCgBQ9JWisrQU9
vNpLozXaQaJIxAX9rAeHQOrMFgx8yfF7bSqTlduDhasX6TLoFduEddA2agul
oDiIizrOGWFEUnFkqzMrXVxo3kPCWxfaH7eoH++fSk+Ifn16oQGtPC5pms6r
huFbll6Sds9J8JCvdWU0S1Ips1oJVgD35gzKSAMKTJxlItY3o0NAkmBSozZL
jpE/RVvA9FeGpkBpHJWJlINUNI5jaatwTURt6oWXEYYinEiAFtFuuq1qXvQ+
hF3S/WptoMzUvSMvIIZfv2N5aVqINM2iv9b+GlhuBP/mm7TgRmWqrEQC8OHS
0honyVao1QyY7n3B0Qjit9nd4Q4GbUcneRHe2tmLOKvw+5gTWLyWhlc4VfY2
17Vt03xDXwMXwfdrtwUO393F2FZuF6UvoY+L3XqROCn3aix8KG15jJsQSY7Y
0Prqam/gQhQxoXC1CLvlBchCws6MNEqOGCYomgnsQDDaC7lGi9EKrNuWErKr
fICNiGEublQu6ka17RqKr4yAaQZj2w5aZIik/vvEEc7tyt7wwmkYThAabP+6
3z9dN0I1XX8xW0J17ZlkZ5HDMpZom8PhMBvnk49oZ2D86/NXFtv9BTz1t5w2
cgUtlkcKCTI0970klHPkG121N1WNGpKoXpy9NQHdCuaFdGOmW2cjaBV7J4WR
9q0W1n4W/nf4Mtv5Q13sDPQVzcyM3zh4md1+/eLk+ez586cH08Pj/OTpcfG8
+No+gZUq/oKUff7k4PDF89mTg/xkNns6OXjy/OnhxEZ4evy8yP0AScamDPDk
Jbop2xuSuqk1pfDO4VPOCqd/+qpS4bF+FJIpd0mD4hp0GX10uHv45Ojpk5Oj
5y9O9tyXUL9ed0nuhOBIHKAEgQXFbvTfTvC7ibx/Mwr/RojMfiY69b2HkfoY
VuV/fdwmQEXJun6yE51M+Vuo2ZG9vfLT+TTZ7IiQKIiWJ7Oy4dwLPEfWwmk1
bbhO+akkE0lCr/9gJ3qcfVvXO9nLLBrvIVgZykP6R1yAJBr1y8BFIB2h864A
dBrzEnOuJc26Y+DSvJDsIu8Ivh5wUdtvETdQPk4yKFiH9yleYB77yde3X58c
HRweHX+dwHvcBHhj+SQfc/XAV2W1+uSxGgGbPNh5+TfAopP/+tMoB+JcUvLe
55L8X/j6smLMetfUY18PXi0884najLXS+FQr8Bam242jhMecOLYNRpcSfAES
/6g+TrgaLXBQRdNlvbQpTNPwHcjE7uTzUyPnjDfaeQMy22PHEix+fdsUReRh
aH0CyFiyPZs4Lxe95KOuZ2rhhhNDzO++wRhtLBfs5cYoZpj3BnEkoeUQHTj1
MJuz04zvRn3OlqOubkT9QIrZkn4bxIZviaLkmuNlFVoxDhzSGg1gbYdpgjem
IWluPm65pGuUWQS3aHhzbloAEubGmvE3EGFOWbXvNsol1BspKRNbzM09J/LO
1Md+SvpiGzYhyvcikQq+jcOD/8sEI1rifMo+/7D1Ae+cWW7uKL9lTv3r1ZTt
LV4lygnbNFGJ4u0cTquZc0Rq09z6OdsrQ3klwIhCLLqlqBXTroddPSwX+U0J
l2OOowB3J8iS/ZYkYudThpKH/uMqnz40OmePKNnkELVpqxZl0nVSZsJ1gN32
AtIYxlq0nfU9s7XA9OHBQTwt5pvahJyPpm0AgNi7wreoK6u7eo7wjiqvapqi
7kyQZ6FJyHlAMN7RPnJXshxWMsnpqfmKkmAMNy6bqdGBb/NEnAFtqjKrkkrn
cr5uOT0n8i4ihgR5phN6mQkRNiqNGOAGfrV36GeX76yzAARUY8YJQU8knlbj
Y7BFHZ+fkRR7MVOOveWsQD+f2/EK+vVdmWtaEa29+ki/fDNfFV2NJre+G2pm
FWadBdrD4sNbNedkYlat/sQnM0CNwgV/zt4VNZ8s/t+ftZI+X77vhLH8mQUj
S77dt0r7f0bGGzb1HVc/x4v+pysm2/C/P7s/D6P//f1w439bfhpmP/dFfUIr
OTzIxkp0fwYZJv/D843//RnHvveTP7O7hwe/OzzaC0+2zDI4iGf6C2aJDwkm
erLnZ2Hoo1l4jniev2CW/nHETM/2eJagfag5Umi29S0kQUfflKRGEbPC7cu0
JHbbhZYDd+Fe8hfnWD9pB+YwPn76ROx0H62KeLhClyBAz7k5buRnwXPadRxf
BHCcv9d9NQg66JwGSX9x8EE2W1Vq4+1drr5B4FL8qwtiTKH9mBcXUknDy1Rc
K/UwG2bF7z4PP/7uaH/3qNoT4Sa8kT0gwugLVcaV7hPJI9w79tJH+v+nUqo8
ehgUfAMYvFJy9TUbQ/iqsjItmm/L9M0ArRGck0ZwXEJa4GWGbd05fL+U/C6n
HREvv0eM5eFf/SiJmoSkVhRdOLU+lQsvpkl9FunsYtspu8n5W0FeZeQSUiFn
Z2Lb6npSn4nM0TePY5vRbdj2l7vPMA7EjCx3Wh4yG7KwC+/CVxImolyPWemD
HDA7PHo+pBFFyqU/XxzFfx49eRr9mbLLx/jfT/zpHuNkR9kviDf8bnj4BH8+
1z+P5c8n+ucT/OkeY1Y20MGLZKCjF8lAJy90oIf5kR8ohegohehEIHJvEJHD
9nklhp8W+Ln2kUqnsFWvi7whIc9p/IZadv2Omu18Q5ZM5TNIGY6bY1lKd1eo
opAnQqX/TLKIWnQtYxhGSeSW25AZI6EV8hekj/iGwJzxeBzS5DAtZ33rY+vx
LvXUPNqmj+DMKrgABUs7vjnLx203nAgOUGGoUzRpvCIbDZ2gor96XDe80k46
d4cgXu9d9HZJjIA8f5V1M6up6ItX5K1VklCsxnm2PuezbkjNoSn9Js+Ke5PI
R/0iTXCattq9C3phuVB/8x232yLNbh5it/I+/lxMdJ6zdFo/CHnyrJ3Sim/T
m7C/jy7vXZVeh1DjatAoAwdEBT/imLu7H+m/hwd7dG6Wey56nl3zcmQVEahu
C/+MV8Y3DBgUU73z/PA8Pgx/ARPM/nZs8K9jhE9FsmKEtyox/e7oxP7Gnyfh
z0dZ4XM2hNTVtA3C1+8O06GOk6EeZobPs0XJMX46ngx1mA4V/uRSHIV0JiYk
693F7XDgbfRZzfQKyUGdROSsLBDV9xSToysBkijhClfWCmEUNqyPVpbuKfHX
PA1tocwO/ZYP5yMaaOs2ciyVsGNIJajcSnaw9Mi1O0kNDpTbswLlIgWBSUl6
PruvdLjVchpxJcuVZ02MUwI4JrvYxEvtFzYQ4caf/T76XD+xIQrSNp9ZTOca
tfmmzrQV24cPJG9EeQBSB5h/1bCkwyOOtBtLgJ70kJvc1uUkpGyHzOQQYs4D
iOgLJV8UUk8rYk60uAF0mPSUI9E0QJ7zRWaYDHiHB2no8JB2G8yiIbQSM7fq
Zsga8EIj+LwIk+7s3YdWq+xbuSPcOL60DkeU+OCJqXcQHR2QBsTf0T+ejNzb
jUJRiDSIYaOFjxuJYEB0v8Q3iVZBE7oAAPu6OUea+1ZEQbq0sG7OtKk+4d5O
s+4uTQFXk06MbYoFFcTT0lVtvWpY05aroWy0pI42Os9OMtmxaS25C77uD18T
PPZ2vLsU8drvuWaiHbO5QVq2oDQMdCRkG8yFvFwoDcKngy8JIBEt4GUNujnh
RannU9UOz8VagoqvXCVCrvlPXFIms5aTLcyBcNX5aJhIhdRuTEKUSIvnrV+u
PQW3BWmgBH3IPpcybhZxOSkq2uO6jXpMRTGjjjtCBQsOByMgurup55m3osX1
vlC2BP6/iokFIhTiu/xOW4eJpGKPWAJHcoilWo8PBQeXMGIbhLJRGiQaAkC1
izqo1Edg+cVIbgBUEFOzUFaP30P1K0b5lqlTwnFbD6yFLNc+FCKflonel7fe
CRo4nvDvtKsmne9wtNHq/UzlNGDtnUl659x8alu5zNDqk1ORKi/mbQqL6F/V
miUMX2mP8KQHuC/Gzg2WwNtvi/ky41GKe0RVFNrZnmOAOOiDkG2m+olV+/wW
te54xiEhqh1yadiDQ077OIW7BrujFQYbc2dk+f9f2NW1tg0Ewff8Cj+2oQ1u
m6SFPJWQgiEh4NDn4hIZVBI5WDLU/fW9mdm9XclNDXmK5NNq77T3sTszJk08
baJ0+uN+9ZyammfuxPWqBTeDtvVjMuhNkGzWlbaBBVVC0YkF1WolEmkDzJQQ
otUOjxNCnRFS8fjZyuIhkgZt4AfyNzs12SqRhJaLmMdIVS+gkkcKWIY05Y/Y
IE2wdlOntM2wnjr3uvggqpusnGy79fI9hAAC9dVk+cFd2yEsQFfUM7oqFlm3
vwlZ/mpoyUT5QsYulqT8Glpr6f+2fYRtyzJsiY27+b7oWQqgQFtxHWQfh4eY
drKqR5a0ouOQEZJmZc9V3DssjzXFXVyexcjyMUTQSDESr5VHm8p5/oil4sGS
qdQBAJTPDsR7z1U2AVfTwmbvhoEmnsVBZa2vOdAueHYjTG+esb84nd1ulJyh
b/28TqKQbv0r8IKTIw7+xJd5KaEqDyK6N6fAK7tgzWL70Do1jLv/3wQHKV6j
alXURmYtWsPeHzXt/CTAvYu7m4UxQaiThbQciWh/OH+f2R3wY2gPQiEZs9ju
RSsueLleNE4tIwbpK208X+zaoBOrIcOZEbfTc1xEgT0xas1HgokZoGme8RNp
lG6nXNybXeeY42LH2wrdCKk4Dab4VvdUlBNCk2WynRVXxI34BB2bXf6owtoZ
b59fr+tB5zKPjh3rj2rNXNZLZc/Btzqb3bNT5eUIFvw+lk0n/GoeM8wiB3P4
VQ0HQkFUEUJjVvv51CiMZnJCq5j6550LMe9NiLUOwMcScNY3H5cc8mYOc/8k
5HNzLGTNL+rAsnFjutnbpudRsbxKTxGpl3SxDuBl1Y5Xn3YZX39Qo5uJ6AHm
k1n2dEBi543PagsuBJ5cdNyCz3jQNx8QYgSPmaDPs0ccwWPvVLmQaj0fAT64
kaLbO4jJ98Nm83h0Dpt/SXHCGReM0VRBQtopZa+3vJ1JgPG+RPUcksB23A81
cvwFTJSeb0VcAQA=

-->

</rfc>

