<?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.14 (Ruby 3.3.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bormann-asdf-sdf-mapping-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.21.0 -->
  <front>
    <title abbrev="SDF Mapping">Semantic Definition Format (SDF): Mapping files</title>
    <seriesInfo name="Internet-Draft" value="draft-bormann-asdf-sdf-mapping-04"/>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann" role="editor">
      <organization>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="2024" month="June" day="04"/>
    <area>Applications</area>
    <workgroup>ASDF</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 52?>

<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)
models.  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 72?>

<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)
models.  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 models.
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
models, these qualities are added to the SDF model 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 Model 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 Model 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 any 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="28" month="February" year="2024"/>
            <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 (-18) adds security considerations, a few
   // editorial cleanups, discusses JSON pointer encodings, and adds
   // sockets to the CDDL for easier future extension.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-asdf-sdf-18"/>
        </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 436?>

<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:
H4sIAAAAAAAAA61a6XbbRpb+X09RDfVMJLdAiZLiWEy8yFrcyliSR6KP3VEr
3SBQJBGBABtVEM0oypmHmAeYH/0Y82vyJvMk891bhY2kl+nTOicxUcutu29V
vu+Lu57cFWEWxemoJwsz9J8IYWKTqJ58JqS8UpMgNXEoj9QwTmMTZ6k8yfJJ
YOT61dHJRk+eBdMpNsthnCgtgsEgV4CJuXJGRFmYBhMAjPJgaPwBbU9TP9DR
0Kf/JnadnwRGaSNEiH9HWT7vSW0ioYvBJNYaB5v5FEBOj/snQDjVKtWF7kmT
F0qIIFdBTx5Mp0mM7VisxSzLb0d5VkwxDnTErZpjKAKE1Kg8VcY/InywtzDj
LO+BWl9aRA+DXBuVypcWVcxImeVg0Ns0vlO5js1vfzfyZa4mWNT/4ZQXaJMr
ZXryTabNMAjHcnd3e29vm+fC2IAcu8EOZBHOOfJ3nux+ve9GitQQ0a8UHTrn
wek4S7HuD3v7/t5O19/pPvEf7+7vdHkSoomTngyDQfbC/Bx3gCGP5xlJT0Wx
yfIGUd8HqbzMPktPE/RPQdrJecuLIo39AS/oRGo1wuJOpYUiPpZs/5T6DLNc
HgUmkEEaWZEEIQtOZkPZH0MhtFwnHdkAQIsOfb2IlRk6UkexGRcDy4GthiYJ
kfIZoI2wuTw5fLy/3e3JaRbTOXboyePuNrZGUWK/v9ndf9yTE5WPlD8NTDgW
azy+u/8E40Ue0/e73cPO+UX/2A8xoPyd7e52d6eLef52O7a3d7YJ2TCOAfrU
P+oQzpW+Q62joYjT4QKOT77+BoC0Ckm5hVDgG5SGWU1/V8evT3rSu8ZK/z3+
bjwhfN+XwQCKB9YJcf0jyMsz/6bx0+7vj9VnLVnGWgZyWAsnguDjVKoPU5Ub
LU3GoAqtJEYNIIawOQZDEqS1MJkgDRUJMColG9eSlRMofaIZjBnjlEjpMI8H
yol7U8Yd1dmE0s81rDiR2eAnFdLRtBgWLoM76EEwSKwCEpJN8BlUGSTAssn0
O7zm1MhZoC2qKoJQsCDMJhMsT4J0VAQjxXBAFq93pEXqTiXZFNpuiBoaukiV
1dczokImcRBrOjQfBWn8s2XEOhYdnW0wJEtsB8zPsgQYZCnQMwAFPjsum4z5
NAi0ckOaeZbhvNz6FJXHQeLAa0I/VSpSUUfw9EHKjlZPVRgPneMDvuS6aB0J
TYK9QTEiSkD/YC6DKGLhB4kj2Olhllo+A70SHm2PgZOTeSCnQQ4NKpIglyrM
9BxOciIzi2pQ+17LesJs0gwOcppnd3EEfGBm4Rhs0xM6IlfTXGliNTHHArMY
O2is55MYpgpPDyM7Jd2OCpa6EN/9DrPfF9qAx9M5nUbiKs1ik8WbZrNOpyN9
/1nLTNbWZB/OK06zJBvNmfeHJKfURhDRZ1UozYU90/092fDDA9M777jjYY8W
OO2ARk6kN5gb5RE3wT0yA+Yk8IDr0Aamlc8lhTBldVLP0yydTwhZ4WWhUcbr
WGgIW5Lilpbe2durvrdp/5VwQ/T78vjf355eHh/R76s/Hrx+Xf0QbsXVHy/e
vj6qf9U7Dy/Ozo7Pj+xmjMrWkPDODv6EGeKKd/Gmf3pxfvDasxYCshDVC7YP
MkyrZ2yMkKW1NFGaN1P/8vDN//xXdw/8+x082E63uw8e2o8n3W/28DEbq9Se
lqXJ3H1ClHMBVqsgZxVMEnj7aWyCBO4CnNPjbJZKmIsCux5dE2duevK7QTjt
7j1zA0Rwa7DkWWuQebY8srTZMnHF0IpjKm62xhc43cb34E+t75LvjcHvnicx
fJHfffL8GZvDBRzLXaxmQjh/0LS60uh0y6ZaZk8GgjQDhgynlSvBIKz3EqdQ
Wg4D8F9wK/jiMIET5BCZAR9H6QWMeAghwPsjat/fXynrkvc6uzAaYU1mg9QE
qq7Yp/6tgGMzscIh4h1kTYhity4NuEWEyUaKnKKcIeQ3kSUEhEWWlQX2VAG2
ISOCu6SDCWZFmSTvO1aiwjpiKlil2NM18gCZIQBaTsH4GxMPDx1xnhll/SYb
BTnPbKJmNKDjSUye0p09C+byr+DDpRr+tc2iPWJHySIKXSBlUBhGRLTZQI4t
z7OZtrlMGa5iii0gPYpzB3WdpUMkls6/QqSKBhsd9oDHH4LJFMBtXOvK9cq1
I1V+c3WxdXF2sCHv15Rd131gPXNfrDzBCrUDJ0bIbUjTwDZKd/0KAPjWJ24t
bpioIOWoGBhDCTT9WhXhpsUgifVYRQLxjEOu9Ru0PooaCpCrRN05mER6SU4d
vToIByR5PQ1C5aeQJmdPC0M9+ec/c1xaEHfJBLh4Las9HHZhcogiw7kEChM2
HJtH2Ay9VrsWZet6w4p+DD0sUr8CWRI1t6d0yqwOMkeyI2/jNOIDGjiQ8sOk
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

-->

</rfc>
