<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.4 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bormann-asdf-sdf-mapping-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.1 -->
  <front>
    <title abbrev="SDF Mapping">Semantic Definition Format (SDF): Mapping files</title>
    <seriesInfo name="Internet-Draft" value="draft-bormann-asdf-sdf-mapping-03"/>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann" role="editor">
      <organization ascii="Universitaet Bremen TZI">Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <author initials="J." surname="Romann" fullname="Jan Romann">
      <organization>Universität Bremen</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>jan.romann@uni-bremen.de</email>
      </address>
    </author>
    <date year="2023" month="December" day="03"/>
    <area>Applications</area>
    <workgroup>ASDF</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 53?>

<t>The Semantic Definition Format (SDF) is a format for domain experts to
use in the creation and maintenance of data and interaction models
that describe Things, i.e., physical objects that are available
for interaction over a network.
It was created as a common language for use
in the development of the One Data Model liaison organization (OneDM)
definitions.  Tools convert this format to database formats and other
serializations as needed.</t>
      <t>An SDF specification often needs to be augmented by additional
information that is specific to its use in a particular ecosystem or
application.
SDF mapping files provide a mechanism to represent this
augmentation.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-bormann-asdf-sdf-mapping/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        A Semantic Definition Format for Data and Interactions of Things (asdf) Working Group mailing list (<eref target="mailto:asdf@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/asdf/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/asdf/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/cabo/sdf-mapping"/>.</t>
    </note>
  </front>
  <middle>
    <?line 73?>

<section anchor="introduction">
      <name>Introduction</name>
      <!-- Just copying the abstract, for now... -->

<t>The Semantic Definition Format (SDF) is a format for domain experts to
use in the creation and maintenance of data and interaction models
that describe Things, i.e., physical objects that are available
for interaction over a network.
It was created as a common language for use
in the development of the One Data Model liaison organization (OneDM)
definitions.  Tools convert this format to database formats and other
serializations as needed.</t>
      <t>An SDF specification often needs to be augmented by additional
information that is specific to its use in a particular ecosystem or
application.
SDF mapping files provide a mechanism to represent this
augmentation.</t>
      <section anchor="terminology-and-conventions">
        <name>Terminology and Conventions</name>
        <t>The definitions of <xref target="I-D.ietf-asdf-sdf"/> apply.</t>
        <!-- XXX -->

<t>The term "byte" is used in its now-customary sense as a synonym for
"octet".</t>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <t>An SDF mapping file provides augmentation information for one or more
SDF definitions.
Its main contents is a map from SDF name references (<xref section="4.3" sectionFormat="of" target="I-D.ietf-asdf-sdf"/>) to a set of qualities.</t>
      <t>When processing the mapping file together with one or more SDF
definitions, these qualities are added to the SDF definition at the
referenced name, as in a merge-patch operation <xref target="RFC7396"/>.
Note that this is somewhat similar to the way <tt>sdfRef</tt> (<xref section="4.4" sectionFormat="of" target="I-D.ietf-asdf-sdf"/>) works, but in a
mapping file the arrows point in the inverse direction (from the
augmenter to the augmented).</t>
      <section anchor="example1">
        <name>Example Definition 1 (ecosystem: IPSO/OMA)</name>
        <t>An example for an SDF mapping file is given in <xref target="code-example1"/>.
This mapping file is meant to attach to an SDF specification published
by OneDM, and to add qualities relevant to the IPSO/OMA ecosystem.
<cref anchor="namespace-note"><br/>
Note that this example uses namespaces to identify elements of the
referenced specification(s), but has un-namespaced quality names.
These two kinds of namespaces are probably unrelated, and we may
need to add quality namespacing to SDF (independent of a potential
feature to add namespace references to definitions that are not
intended to go into the default namespace — these are SDF
definition namespaces and not quality namespaces, which are one
meta-level higher).</cref></t>
        <ul spacing="normal">
          <li>
            <t>Start of mapping file for certain OneDM playground models:</t>
          </li>
        </ul>
        <figure anchor="code-example1">
          <name>A simple example of an SDF mapping file</name>
          <sourcecode type="json"><![CDATA[
{
  "info": {
    "title": "IPSO ID mapping"
  },
  "namespace": {
    "onedm": "https://onedm.org/models"
  },
  "defaultNamespace": "onedm",
  "map": {
    "#/sdfObject/Digital_Input": {
      "id": 3200
    },
    "#/sdfObject/Digital_Input/sdfProperty/Digital_Input_State": {
      "id": 5500
    },
    "#/sdfObject/Digital_Input/sdfProperty/Digital_Input_Counter": {
      "id": 5501
    }
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="example2">
        <name>Example Definition 2 (ecosystem: W3C WoT)</name>
        <t>This example shows a translation of a hypothetical W3C WoT Thing Model
into an SDF model plus a mapping file to catch Thing Model attributes
that don't currently have SDF qualities defined.
<cref anchor="td-note"><br/>
The example probably would be more useful with, say, protocol
bindings.
This is left for a future version of this example, and/or a
future specification that specifically addresses how to map Thing
Models into SDF.
<br/>
(There is also the separate requirement to transform a Thing Description
into the kind of information that can be represented in SDF plus
instance information, such as IP addresses or specific node
names.)
<br/>
Finally, namespaces are all wrong in this example.</cref></t>
        <ul spacing="normal">
          <li>
            <t>The input: WoT Thing Model</t>
          </li>
        </ul>
        <figure anchor="code-wot-input">
          <name>Input: WoT Thing Model</name>
          <sourcecode type="json"><![CDATA[
{
    "@context": ["http://www.w3.org/ns/td"],
    "@type" : "tm:ThingModel",
    "title": "Lamp Thing Model",
    "titles": {
      "en": "Lamp Thing Model",
      "de": "Thing Model für eine Lampe"
    },
    "properties": {
        "status": {
            "description": "Current status of the lamp",
            "descriptions": {
              "en": "Current status of the lamp",
              "de": "Aktueller Status der Lampe"
            },
            "type": "string",
            "readOnly": true
        }
    }
}
]]></sourcecode>
        </figure>
        <ul spacing="normal">
          <li>
            <t>The output: SDF model</t>
          </li>
        </ul>
        <figure anchor="code-wot-output1">
          <name>Output 1: SDF Model</name>
          <sourcecode type="json"><![CDATA[
{
  "info": {
    "title": "Lamp Thing Model"
  },
  "namespaces": {
    "wot": "http://www.w3.org/ns/td"
  },
  "defaultNamespace": "wot",
  "sdfObject": {
    "LampThingModel": {
      "label": "Lamp Thing Model",
      "sdfProperty": {
        "status": {
          "description": "Current status of the lamp",
          "writable": false,
          "type": "string"
        }
      }
    }
  }
}
]]></sourcecode>
        </figure>
        <ul spacing="normal">
          <li>
            <t>The other output: SDF mapping file</t>
          </li>
        </ul>
        <figure anchor="code-wot-output2">
          <name>Output 2: SDF Mapping File</name>
          <sourcecode type="json"><![CDATA[
{
  "info": {
    "title": "Lamp Thing Model: WoT TM mapping"
  },
  "namespace": {
    "wot": "http://www.w3.org/ns/td"
  },
  "defaultNamespace": "wot",
  "map": {
    "#/sdfObject/LampThingModel": {
      "titles": {
        "en": "Lamp Thing Model",
        "de": "Thing Model für eine Lampe"
      }
    },
    "#/sdfObject/LampThingModel/sdfProperty/status": {
      "descriptions": {
        "en": "Current status of the lamp",
        "de": "Aktueller Status der Lampe"
      }
    }
  }
}
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="syntax">
      <name>Formal Syntax of SDF mapping files</name>
      <t>An SDF mapping file has three optional components that are taken
unchanged from SDF: The info block, the namespace declaration, and the
default namespace.
The mandatory fourth component, the "map", contains the mappings from
an SDF name reference (usually a namespace and a JSON pointer) to a
nested map providing a set of qualities to be merged in at the site
identified in the name reference.</t>
      <t><xref target="mapping-cddl"/> describes the syntax of SDF mapping files using CDDL <xref target="RFC8610"/>.</t>
      <figure anchor="mapping-cddl">
        <name>CDDL definition of SDF mapping file</name>
        <sourcecode type="cddl"><![CDATA[
start = sdf-mapping

sdf-mapping = {
 ; info will be required in most process policies
 ? info: sdfinfo
 ? namespace: named<text>
 ? defaultNamespace: text
 map: { * global-sdf-pointer => additionalqualities}
}

; we can't really be much more specific here:
additionalqualities = named<any>

; --------------------------------- import from SDF-base:

sdfinfo = {
 ? title: text
 ? description: text
 ? version: text
 ? copyright: text
 ? license: text
 ? modified: modified-date-time
 ? features: [
               * (any .feature "feature-name") ; EXTENSION-POINT
             ]
 optional-comment
 EXTENSION-POINT<"info-ext">
}

; Shortcut for a map that gives names to instances of X
; (has keys of type text and values of type X)
named<X> = { * text => X }

; EXTENSION-POINT is only used in framework syntax
EXTENSION-POINT<f> = ( * (quality-name .feature f) => any )
quality-name = text .regexp "([a-z][a-z0-9]*:)?[a-z$][A-Za-z$0-9]*"

; rough CURIE or JSON Pointer syntax:
global-sdf-pointer = text .regexp ".*[:#].*"

optional-comment = (
 ? $comment: text       ; source code comments only, no semantics
)

modified-date-time = text .abnf modified-dt-abnf
modified-dt-abnf = "modified-dt" .det rfc3339z

; RFC 3339 sans time-numoffset, slightly condensed
rfc3339z = '
   date-fullyear   = 4DIGIT
   date-month      = 2DIGIT  ; 01-12
   date-mday       = 2DIGIT  ; 01-28, 01-29, 01-30, 01-31 based on
                             ; month/year
   time-hour       = 2DIGIT  ; 00-23
   time-minute     = 2DIGIT  ; 00-59
   time-second     = 2DIGIT  ; 00-58, 00-59, 00-60 based on leap sec
                             ; rules
   time-secfrac    = "." 1*DIGIT
   DIGIT           =  %x30-39 ; 0-9

   partial-time    = time-hour ":" time-minute ":" time-second
                     [time-secfrac]
   full-date       = date-fullyear "-" date-month "-" date-mday

   modified-dt     = full-date ["T" partial-time "Z"]
'
]]></sourcecode>
      </figure>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="media-type">
        <name>Media Type</name>
        <t>IANA is requested to add the following Media-Type to the "Media Types" registry.</t>
        <table align="left" anchor="new-media-types">
          <name>A media type for SDF mapping files</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Template</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">sdf-mapping+json</td>
              <td align="left">application/sdf-mapping+json</td>
              <td align="left">RFC XXXX, <xref target="media-type"/></td>
            </tr>
          </tbody>
        </table>
        <t><cref anchor="to-be-removed">RFC Editor: please replace RFC XXXX with this RFC number and remove this note.</cref></t>
        <dl spacing="compact">
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>sdf-mapping+json</t>
          </dd>
          <dt>Required parameters:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Optional parameters:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary (JSON is UTF-8-encoded text)</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t><xref target="seccons"/> of RFC XXXX</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t><xref target="media-type"/> of RFC XXXX</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>Tools for data and interaction modeling that describes Things, i.e.,
 physical objects that are available for interaction over a network</t>
          </dd>
          <dt>Fragment identifier considerations:</dt>
          <dd>
            <t>A JSON Pointer fragment identifier may be used, as defined in
<xref section="6" sectionFormat="of" target="RFC6901"/>.</t>
          </dd>
          <dt>Person &amp; email address to contact for further information:</dt>
          <dd>
            <t>ASDF WG mailing list (asdf@ietf.org),
or IETF Applications and Real-Time Area (art@ietf.org)</t>
          </dd>
          <dt>Intended usage:</dt>
          <dd>
            <t>COMMON</t>
          </dd>
          <dt>Restrictions on usage:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Author/Change controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Provisional registration:</dt>
          <dd>
            <t>no</t>
          </dd>
        </dl>
      </section>
      <section anchor="registries">
        <name>Registries</name>
        <t>(TBD: After future additions, check if we need any.)</t>
      </section>
    </section>
    <section anchor="seccons">
      <name>Security Considerations</name>
      <t>Some wider issues are discussed in <xref target="RFC8576"/>.</t>
      <t>(Specifics: TBD.)</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC6901">
          <front>
            <title>JavaScript Object Notation (JSON) Pointer</title>
            <author fullname="P. Bryan" initials="P." role="editor" surname="Bryan"/>
            <author fullname="K. Zyp" initials="K." surname="Zyp"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <date month="April" year="2013"/>
            <abstract>
              <t>JSON Pointer defines a string syntax for identifying a specific value within a JavaScript Object Notation (JSON) document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6901"/>
          <seriesInfo name="DOI" value="10.17487/RFC6901"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC7396">
          <front>
            <title>JSON Merge Patch</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Snell" initials="J." surname="Snell"/>
            <date month="October" year="2014"/>
            <abstract>
              <t>This specification defines the JSON merge patch format and processing rules. The merge patch format is primarily intended for use with the HTTP PATCH method as a means of describing a set of modifications to a target resource's content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7396"/>
          <seriesInfo name="DOI" value="10.17487/RFC7396"/>
        </reference>
        <reference anchor="I-D.ietf-asdf-sdf">
          <front>
            <title>Semantic Definition Format (SDF) for Data and Interactions of Things</title>
            <author fullname="Michael Koster" initials="M." surname="Koster">
              <organization>KTC</organization>
            </author>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Ari Keränen" initials="A." surname="Keränen">
              <organization>Ericsson</organization>
            </author>
            <date day="5" month="November" year="2023"/>
            <abstract>
              <t>   The Semantic Definition Format (SDF) is a format for domain experts
   to use in the creation and maintenance of data and interaction models
   that describe Things, i.e., physical objects that are available for
   interaction over a network.  An SDF specification describes
   definitions of SDF Objects/SDF Things and their associated
   interactions (Events, Actions, Properties), as well as the Data types
   for the information exchanged in those interactions.  Tools convert
   this format to database formats and other serializations as needed.


   // The present revision (-17) addresses additional Working Group Last
   // Call comments that came in during a grace period added.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-asdf-sdf-17"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8576">
          <front>
            <title>Internet of Things (IoT) Security: State of the Art and Challenges</title>
            <author fullname="O. Garcia-Morchon" initials="O." surname="Garcia-Morchon"/>
            <author fullname="S. Kumar" initials="S." surname="Kumar"/>
            <author fullname="M. Sethi" initials="M." surname="Sethi"/>
            <date month="April" year="2019"/>
            <abstract>
              <t>The Internet of Things (IoT) concept refers to the usage of standard Internet protocols to allow for human-to-thing and thing-to-thing communication. The security needs for IoT systems are well recognized, and many standardization steps to provide security have been taken -- for example, the specification of the Constrained Application Protocol (CoAP) secured with Datagram Transport Layer Security (DTLS). However, security challenges still exist, not only because there are some use cases that lack a suitable solution, but also because many IoT devices and systems have been designed and deployed with very limited security capabilities. In this document, we first discuss the various stages in the lifecycle of a thing. Next, we document the security threats to a thing and the challenges that one might face to protect against these threats. Lastly, we discuss the next steps needed to facilitate the deployment of secure IoT systems. This document can be used by implementers and authors of IoT specifications as a reference for details about security considerations while documenting their specific security challenges, threat models, and mitigations.</t>
              <t>This document is a product of the IRTF Thing-to-Thing Research Group (T2TRG).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8576"/>
          <seriesInfo name="DOI" value="10.17487/RFC8576"/>
        </reference>
      </references>
    </references>
    <?line 437?>

<section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>This draft is based on discussions in the Thing-to-Thing Research
Group (T2TRG) and the SDF working group.  Input for <xref target="example1"/> was provided by <contact fullname="Ari Keränen"/>.</t>
      <!--  LocalWords:  SDF namespace defaultNamespace instantiation OMA
 -->
<!--  LocalWords:  affordances ZigBee LWM OCF sdfObject sdfThing
 -->
<!--  LocalWords:  idempotency Thingness sdfProperty sdfEvent sdfRef
 -->
<!--  LocalWords:  namespaces sdfRequired Optionality sdfAction
 -->
<!--  LocalWords:  sdfProduct dereferenced dereferencing atomicity
 -->
<!--  LocalWords:  interworking
 -->

</section>
  </back>
  <!-- ##markdown-source:
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
JsGAGz5hn43A+AUW9w/amzfLEXEHLLQhwE61OhdUv6DcWskPKNrqrorE5/wp
u+5WYkHPXCa2tN2Ief+Y0p1ZnX5ROvZPsYEHM7GHLWEJuD4PXV8OXpWKVqRh
bZZaediShT0MSv8fOPpiIPoiu9pesKvt1m0XwptN6sQje3CeyMt5aoKPxNvy
OefdI82996tPZKiQM+NcwU6n9iSWzqWnyMHT5om3CW5UKoqUTkpHiOLlUUvP
hc1hJgdJFt7waUejEIpUmAS5C+pcAqPCXKqXOny4OEF/YLJ8jtSpyM24ZsRS
ZRvc4HMfFDS6eSajmSHhEsz28Y9cK3Rh86YGY8RLIL+/PD8rr2PsYZBIlaY0
hVIqe1pFolo+I3KnjHzkwkmNPbVBSm6UcLV1bHtKidQsId+4uysvJenq5/6+
uoSw+9Kf0GjBJ1IHh4dv6NDHTu/YMo6vkTTXgs9k6yaq8YEuWPm3VmuzGEnR
oEr+mOFJpk15+AXpJHGIDQv5gmfwtRH9oIZKnj3+GX1HWdFz6lkEEwRRdAna
CpxMPpajBPl2wtezTgHy2fPGhUAlaXIU8S0dCSCbROaPuEzKJOFTkshZepUW
UnbbEyuoYNOWwyCdPyd6/uf+JIqrDIIsTd2nq5EeS5Ilx1J8Id1Vtt3dC9mA
k7rRZf91A10O5CjfTd0EKdMJfN2AnIBNqFf98uEeyjfxRFG/O9HQyEEX0iJI
dw3blJ3y0MNzP/i8xluH7o8+9I/OLk/Oz/y35ydn/TaBa1GBgU+XVDBmsTjj
Ow5VPiXBz62CLseQVliUhQ85EMMHnbK5wyc+d3L5PkPpB8xbIwi6UXOLrYjL
LAF20NsgKVTd/mFdWB1+eE7SxzZ5JMzmg2QWFnikMoeP78tbj2GO6XSK6fxL
LG5qSITXSH7uNIYlVgtyuM5GCtmui9aIZ5aVTq5G6uNUemtXgf/zNf1vy9+7
ftxbf0G/f399te//QD+41SOe86wYjeXBu4uTIypwGJHeOoewXPbEKl9ZWLDz
+Kr36LpDNBd1R1sig/m9+7Ym5nT9rdQAWwAixSDpRlixoX7KgHv2ulaLdSGW
DbHiIxikw4ahGp8axGIDhnuNNk92IuBqPgx3dnb2fiZxXBwfSPpArU0QjyX8
tJhkwyEAGGVhQk4DjSIIROQukSgng/RXZMbMGkr2ZE7XNBLNu4cnr0/6Vd8E
8WNsN/9MbnMfiWGr63e360FRMJcrB20/3eB/9vifnS37T1cSOtBt0aIvtv++
lbz8JjFHI3mDY2hg1WJb/vZONWgSpwWK9BWD7MMNHqQVCWblIGKbxvI/T7Yq
fmWi4KmY+DnG84Ke3zRWgjeFdiWv48nu40rMbt3q75mU//JxZ8uHVsGLv8f3
xXx9CyNlK+JBtSy8ntfadPVt97ea06smX9c0hqyATbXio20cnu81TaL+hPKZ
x4apOgI1ySuv77U34f3gXYuvqqSuGd/LhI6DduMYeEV858zuZP9sn25/NTKJ
3N233z2KgzS4F8+W/4Q4VVEcyD5QUjRCmCMUaw7vNrFxB+CUZAyzJMlmnGjT
dL/P4GuPdLyaovYwfRSjVKIr5l8kxfSW5H+RfTWZJrWg5UL3RZWLtdrFL8tR
d0XTl3SDVjPf+QNVVFi48Q5gc0U3gQ29YdlAIjVhEVCcQTL2C2swVTO/btb1
uSs32phEwW4pRfMkQsMofebRQSAp9OpHk/kD5edqkt2q6Hq5pcfMHPFjqZ6c
wik1n5sllKyWfNrLRj65oiYA44CemsDjLRnbRWeclGH2KH8OQnMvWLH8+kr0
mjIR4rIYmGbnopCEuCgTQzolnCjEHk0DU7qQEOdlzbCq8yi1r/4IrBuGTAMG
cUpvDtY42oHld/1j/6mvaAKZKCIKos2lotdMZr5i/t2de58EXcGHSvnA3ik4
8qXoIE5Wz7XMvS2v6NqnrZZ4yxZa9Jvv/2x6Q+9RWOy1URAR+9CG3y89+ATJ
Xiw3HiDp9gskhsnPP0L6zAMkIY7zgK9VZVWX5Cvkst/OPYYrJk0CzrspneLr
aHfOjsXBan1t/MTJjF67cWnyFnaB9n+17/nKE10+7qdiLrQ545CKPpU3D4KZ
L3Kv96/57R1JDGoz9kVe9QZvnUQFCvRys/VEk+V+gYLB7xNC76N2wNTc1DOt
yfCtXqGDEeuOXkOcn5Hp0/FQ+RowrQdYE9rnV52bB1wS807yjIp/GsFvSMVb
KiC19RAHodW20gw4jyW4leqrJmyv9V8dYudDVoS9FChrGhhHOFbhjYyHVBPx
9SgS0g52UnvMUugo3WVV9LAR5DKDgGY0CQ6pC3dkHsU6LLRLn+m5Uel20Ora
pfMclCDglzmgumkQhDd0OLEf3qTZLFHRyF4wE6ZayFLRMy/NONLxlQk/2yUc
qJISty5z70podg0fqGnPhqAcxPBwLF7TI0+51t/uX7xeL88YGJPJ+mkoPwPt
SMknsmxqd3f1XT8/zHMPU/hR2t3d3X4ey39T+W9/T1V6z5vll1XyTQZXfE8P
oHqyOmooTzraBa8rdJAesE+cn+4LfpW1glAwBE+RLYp+iEevlJJv3p/K84Nj
WR1q0S93xfMAFbA/4TvvcG5llZKPNQ6/6PfRLZ9l8VOPByk1rk14pAsAJdjH
ltS+ffL2EBG7MD2Mo1Ow+j1B/cEHKyabxPQq+eFtERo5TdpB4v8AdeuwzlYu
AAA=

-->

</rfc>
