<?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.6.27 (Ruby 3.2.1) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-href-12" category="std" consensus="true" submissionType="IETF" xml:lang="en" tocDepth="3" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title>Constrained Resource Identifiers</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-href-12"/>
    <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="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization abbrev="Fraunhofer SIT">Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@sit.fraunhofer.de</email>
      </address>
    </author>
    <date year="2023" month="March" day="06"/>
    <workgroup>CoRE Working Group</workgroup>
    <abstract>
      <t>The Constrained Resource Identifier (CRI) is a complement to the Uniform
Resource Identifier (URI) that serializes the URI components in Concise
Binary Object Representation (CBOR) instead of a sequence of characters.
This simplifies parsing, comparison and reference resolution in
environments with severe limitations on processing power, code size, and
memory size.</t>
      <t><cref anchor="status">The present revision -12 of this draft adds a registry that
is intended to provide full coverage for representing a URI scheme
(and certain text strings used in their place) as negative integers.</cref></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-ietf-core-href/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Constrained RESTful Environments Working Group mailing list (<eref target="mailto:core@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/core/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/core/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/core-wg/href"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>The <xref target="RFC3986">Uniform Resource Identifier (URI)</xref> and its most common
usage, the URI reference, are the Internet standard for linking to
resources in hypertext formats such as <xref target="W3C.REC-html52-20171214">HTML</xref>
or the <xref target="RFC8288">HTTP "Link" header field</xref>.</t>
      <t>A URI reference is a sequence of characters chosen from the repertoire
of US-ASCII characters.
The individual components of a URI reference are delimited by a number
of reserved characters, which necessitates the use of a character escape
mechanism called "percent-encoding" when these reserved characters are
used in a non-delimiting function.
The resolution of URI references involves parsing a character sequence
into its components, combining those components with the components of a
base URI, merging path components, removing dot-segments, and
recomposing the result back into a character sequence.</t>
      <t>Overall, the proper handling of URI references is quite intricate.
This can be a problem especially in <xref target="RFC7228">constrained environments</xref>,
where nodes often have severe code size and memory size limitations.
As a result, many implementations in such environments support only an
ad-hoc, informally-specified, bug-ridden, non-interoperable subset of
half of RFC 3986.</t>
      <t>This document defines the <em>Constrained Resource Identifier (CRI)</em> by
constraining URIs to a simplified subset and serializing their
components in <xref target="RFC8949">Concise Binary Object Representation (CBOR)</xref>
instead of a sequence of characters.
This allows typical operations on URI references such as parsing,
comparison and reference resolution (including all corner cases) to be
implemented in a comparatively small amount of code.</t>
      <t>As a result of simplification, however, CRIs are not capable of
expressing all URIs permitted by the generic syntax of RFC 3986 (hence
the "constrained" in "Constrained Resource Identifier").
The supported subset includes all URIs of the
<xref target="RFC7252">Constrained Application Protocol (CoAP)</xref>, most URIs of the
<xref target="RFC9110">Hypertext Transfer Protocol (HTTP)</xref>,
<xref target="RFC8141">Uniform Resource Names (URNs)</xref>, and other similar URIs.
The exact constraints are defined in <xref target="constraints"/>.</t>
      <section anchor="notational-conventions">
        <name>Notational Conventions</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <t>In this specification, the term "byte" is used in its now customary
sense as a synonym for "octet".</t>
        <t>Terms defined in this document appear in <em>cursive</em> where they
are introduced (rendered in plain text as the new term surrounded by
underscores).</t>
      </section>
    </section>
    <section anchor="constraints">
      <name>Constraints</name>
      <t>A Constrained Resource Identifier consists of the same five components
as a URI: scheme, authority, path, query, and fragment.
The components are subject to the following constraints:</t>
      <ol spacing="normal" type="C%d."><li anchor="c-scheme">The scheme name can be any Unicode string (see
Definition D80 in <xref target="Unicode"/>) that matches the syntax of a URI
scheme (see <xref section="3.1" sectionFormat="of" target="RFC3986"/>, which constrains schemes to
ASCII) and is lowercase (see Definition D139 in <xref target="Unicode"/>).
The scheme is always present.</li>
        <li anchor="c-authority">
          <t>An authority is always a host identified by an IP
address or registered name, along with optional port information,
and optionally preceded by user information.  </t>
          <t>
Alternatively, the authority can be absent; the two cases for this
defined in <xref section="3.3" sectionFormat="of" target="RFC3986"/> are modeled by two different
values used in place of an absent authority:  </t>
          <ul spacing="normal">
            <li>the path can be root-based (zero or more path components that are
each started in the URI with "/", as when the authority is
present), or</li>
            <li>the path can be rootless, which requires at least one path component.</li>
          </ul>
          <t>
(Note that in <xref target="cddl"/>, <tt>no-authority</tt> is marked as a feature, as
not all CRI implementations will support authority-less URIs.)</t>
        </li>
        <li anchor="c-userinfo">A userinfo is a text string built out of unreserved
  characters (<xref section="2.3" sectionFormat="of" target="RFC3986"/>) or "sub-delims" (<xref section="2.2" sectionFormat="of" target="RFC3986"/>); any other character needs to be percent-encoded (<xref target="pet"/>).
Note that this excludes the ":" character, which is commonly
deprecated as a way to delimit a cleartext password in a userinfo.</li>
        <li anchor="c-ip-address">An IP address can be either an IPv4 address or an
IPv6 address, optionally with a zone identifier <xref target="RFC6874"/>.
Future versions of IP are not supported (it is likely that a binary
mapping would be strongly desirable, and that cannot be designed
ahead of time, so these versions need to be added as a future
extension if needed).</li>
        <li anchor="c-reg-name">A registered name is a sequence of one or more
<em>labels</em>, which, when joined with dots (".") in between them,
result in a Unicode string that is lowercase and in Unicode
Normalization Form C (NFC) (see Definition D120 in <xref target="Unicode"/>).
(The syntax may be further restricted by the scheme.
As per <xref section="3.2.2" sectionFormat="of" target="RFC3986"/>, a registered name can be empty, for
which case a scheme can define a default for the host.)</li>
        <li anchor="c-port-range">A port is always an integer in the range from 0 to 65535.
Ports outside this range, empty ports (port subcomponents with no
digits, see <xref section="3.2.3" sectionFormat="of" target="RFC3986"/>), or ports with redundant
leading zeros, are not supported.</li>
        <li anchor="c-port-omitted">The port is omitted if and only if the port would be the same as the
scheme's default port (provided the scheme is defining such a default
port) or the scheme is not using ports.
<!-- Note that this is hard to do by a generic URI implementation
that may not know the scheme's default port -->
        </li>
        <li anchor="c-path">
          <t>A path consists of zero or more path segments.
Note that a path of just a single zero-length path segment is allowed —
this is considered equivalent to a path of zero path segments by
HTTP and CoAP, but this equivalence does not hold for CRIs in general as they only perform
normalization on the Syntax-Based Normalization level (<xref section="6.2.2" sectionFormat="of" target="RFC3986"/>, not on the scheme-specific Scheme-Based
Normalization level (<xref section="6.2.3" sectionFormat="of" target="RFC3986"/>).  </t>
          <t>
(A CRI implementation may want to offer scheme-cognizant
interfaces, performing this scheme-specific normalization for
schemes it knows.  The interface could assert which schemes the
implementation knows and provide pre-normalized CRIs.  This can
also relieve the application from removing a lone zero-length path
segment before putting path segments into CoAP Options, i.e., from
performing the check and jump in item 8 of <xref section="6.4" sectionFormat="of" target="RFC7252"/>.  See also <xref format="counter" target="sp-initial-empty"/> in <xref target="the-small-print"/>.)</t>
        </li>
        <li anchor="c-path-segment">
          <t>A path segment can be any Unicode string that is
in NFC, with the exception of the special "." and ".." complete path
segments.
Note that this includes the zero-length string.  </t>
          <t>
If no authority is present in a CRI, the leading path segment cannot be empty.
(See also <xref format="counter" target="sp-initial-empty"/> in <xref target="the-small-print"/>.)</t>
        </li>
        <li anchor="c-query">A query always consists of one or more query parameters.
   A query parameter can be any Unicode string that is in NFC.
   It is often in the form of a "key=value" pair.
   When converting a CRI to a URI, query parameters are separated by an
   ampersand ("&amp;") character.
   (This matches the structure and encoding of the target URI in CoAP
   requests.)
   Queries are optional; there is a difference between an absent query
   and a single query parameter that is the empty string.</li>
        <li anchor="c-fragment">A fragment identifier can be any Unicode string that
   is in NFC.
   Fragment identifiers are optional; there is a difference between an
   absent fragment identifier and a fragment identifier that is the
   empty string.</li>
        <li anchor="c-escaping">The syntax of registered names, path segments, query
   parameters, and fragment identifiers may be further restricted and
   sub-structured by the scheme.
   There is no support, however, for escaping sub-delimiters
   that are not intended to be used in a delimiting function.</li>
        <li anchor="c-mapping">When converting a CRI to a URI, any character that is
   outside the allowed character range or is a delimiter in the URI syntax
   is percent-encoded.
   For CRIs, percent-encoding always uses the UTF-8 encoding form (see
   Definition D92 in <xref target="Unicode"/>) to convert the character to a sequence
   of bytes (that is then converted to a sequence of %HH triplets).
   <!-- As per 3986 2.1, use uppercase hex. -->
        </li>
      </ol>
      <t>Examples for URIs at or beyond the boundaries of these constraints are in <xref format="counter" target="sp-constraints"/> in <xref target="the-small-print"/>.</t>
      <section anchor="constraints-not-expressed-by-the-data-model">
        <name>Constraints not expressed by the data model</name>
        <t>There are syntactically valid CRIs and CRI references that cannot be converted into a URI or URI reference, respectively.</t>
        <t>For CRI references, this is acceptable -- they can be resolved still and result in a valid CRI that can be converted back.
(An example of this is <tt>[0, ["p"]]</tt> which appends a slash and the path segment "p" to its base).</t>
        <t>(Full) CRIs that do not correspond to a valid URI are not valid on their own, and cannot be used.
Normatively they are characterized by the <xref target="cri-to-uri"/> process producing a valid and syntax-normalized URI.
For easier understanding, they are listed here:</t>
        <ul spacing="normal">
          <li>
            <t>CRIs (and CRI references) containing a path component "." or "..".  </t>
            <t>
These would be removed by the remove_dot_segments algorithm of <xref target="RFC3986"/>,
and thus never produce a normalized URI after resolution.  </t>
            <t>
(In CRI references, the <tt>discard</tt> value is used to afford segment removal,
and with "." being an unreserved character, expressing them as "%2e" and "%2e%2e" is not even viable,
let alone practical).</t>
          </li>
          <li>
            <t>CRIs without authority whose path starts with two or more empty segments.  </t>
            <t>
When converted to URIs, these would violate the requirement that in absence of an authority, a URI's path cannot begin with two slash characters,
and they would be indistinguishable from a URI with a shorter path and a present but empty authority component.</t>
          </li>
          <li>CRIs without authority that are rootless and do not have a path
component (e.g., <tt>["a", true]</tt>), which would be indistinguishable
from its root-based equivalent (<tt>["a"]</tt>) as both would have the URI <tt>a:</tt>.</li>
        </ul>
      </section>
    </section>
    <section anchor="creation-and-normalization">
      <name>Creation and Normalization</name>
      <t>In general, resource identifiers are created on the initial creation of a
resource with a certain resource identifier, or the initial exposition
of a resource under a particular resource identifier.</t>
      <t>A Constrained Resource Identifier <bcp14>SHOULD</bcp14> be created by
the naming authority that governs the namespace of the resource
identifier (see also <xref target="RFC8820"/>).
For example, for the resources of an HTTP origin server,
that server is responsible for creating the CRIs for those resources.</t>
      <t>The naming authority <bcp14>MUST</bcp14> ensure that any CRI created
satisfies the constraints defined in <xref target="constraints"/>. The creation of a
CRI fails if the CRI cannot be validated to satisfy all of the
constraints.</t>
      <t>If a naming authority creates a CRI from user input, it <bcp14>MAY</bcp14> apply
the following (and only the following) normalizations to get the CRI
more likely to validate:</t>
      <ul spacing="normal">
        <li>map the scheme name to lowercase (<xref format="counter" target="c-scheme"/>);</li>
        <li>map the registered name to NFC (<xref format="counter" target="c-reg-name"/>) and split it on
embedded dots;</li>
        <li>elide the port if it is the default port for the scheme
(<xref format="counter" target="c-port-omitted"/>);
<!-- * elide a single zero-length path segment ({{<c-path}}); -->
        </li>
        <li>map path segments, query parameters and the fragment identifier to
NFC form (<xref format="counter" target="c-path-segment"/>, <xref format="counter" target="c-query"/>, <xref format="counter" target="c-fragment"/>).</li>
      </ul>
      <t>Once a CRI has been created, it can be used and transferred without
further normalization.
All operations that operate on a CRI <bcp14>SHOULD</bcp14> rely on the
assumption that the CRI is appropriately pre-normalized.
(This does not contradict the requirement that when CRIs are
transferred, recipients must operate on as-good-as untrusted input and
fail gracefully in the face of malicious inputs.)</t>
    </section>
    <section anchor="comparison">
      <name>Comparison</name>
      <t>One of the most common operations on CRIs is comparison: determining
whether two CRIs are equivalent, without dereferencing the CRIs (using
them to access their respective resource(s)).</t>
      <t>Determination of equivalence or difference of CRIs is based on simple
component-wise comparison. If two CRIs are identical
component-by-component (using code-point-by-code-point comparison for
components that are Unicode strings) then it is safe to conclude that
they are equivalent.</t>
      <t>This comparison mechanism is designed to minimize false negatives while
strictly avoiding false positives.
The constraints defined in <xref target="constraints"/> imply the most
common forms of syntax- and scheme-based normalizations in URIs, but do
not comprise protocol-based normalizations that require accessing the
resources or detailed knowledge of the scheme's dereference algorithm.
False negatives can be caused, for example, by CRIs that are not
appropriately pre-normalized and by resource aliases.</t>
      <t>When CRIs are compared to select (or avoid) a network action, such as
retrieval of a representation, fragment components (if any) should be
excluded from the comparison.</t>
    </section>
    <section anchor="cri-references">
      <name>CRI References</name>
      <t>The most common usage of a Constrained Resource Identifier is to embed
it in resource representations, e.g., to express a hyperlink between the
represented resource and the resource identified by the CRI.</t>
      <t>This section defines the serialization of CRIs in
<xref target="RFC8949">Concise Binary Object Representation (CBOR)</xref>.
To reduce representation size, CRIs are not serialized directly.
Instead, CRIs are indirectly referenced through <em>CRI references</em>.
These take advantage of hierarchical locality and provide a very compact
encoding.
The CBOR serialization of CRI references is specified in
<xref target="cbor-serialization"/>.</t>
      <t>The only operation defined on a CRI reference is <em>reference resolution</em>:
the act of transforming a CRI reference into a CRI.
<!-- , relative to a base URI -->
An application <bcp14>MUST</bcp14> implement this operation by applying
the algorithm specified in <xref target="reference-resolution"/> (or any algorithm
that is functionally equivalent to it).</t>
      <t>The reverse operation of transforming a CRI into a CRI reference is
unspecified;
implementations are free to use any algorithm as long as reference
resolution of the resulting CRI reference yields the original CRI.
Notably, a CRI reference is not required to satisfy all of the
constraints of a CRI; the only requirement on a CRI reference is that
reference resolution <bcp14>MUST</bcp14> yield the original CRI.</t>
      <t>When testing for equivalence or difference, applications <bcp14>SHOULD NOT</bcp14>
directly compare CRI references; the references should be
resolved to their respective CRI before comparison.</t>
      <section anchor="cbor-serialization">
        <name>CBOR Serialization</name>
        <t>A CRI or CRI reference is encoded as a CBOR array <xref target="RFC8949"/>, with the
structure as described in the <xref target="RFC8610">Concise Data Definition Language
(CDDL)</xref> <xref target="RFC9165">including its control extensions</xref> as follows: <cref anchor="replace-xxxx">RFC Ed.: throughout this section, please replace
RFC-XXXX with the RFC number of this specification and remove this
note.</cref></t>
        <figure anchor="cddl">
          <name>CDDL for CRI CBOR serialization</name>
          <sourcecode type="cddl"><![CDATA[
; not expressed in this CDDL spec: trailing nulls to be left off

RFC-XXXX-Definitions = [CRI, CRI-Reference]

CRI = [
  scheme,
  authority / no-authority,
  local-part
]


CRI-Reference = [
  ((scheme / null, authority / no-authority)
   // discard),                 ; relative reference
  local-part
]

local-part = (
  path / null,
  query / null,
  fragment / null
)

scheme      = scheme-name / scheme-id
scheme-name = text .regexp "[a-z][a-z0-9+.-]*"
scheme-id   = nint

no-authority = NOAUTH-ROOTBASED / NOAUTH-ROOTLESS
NOAUTH-ROOTBASED = null .feature "no-authority"
NOAUTH-ROOTLESS = true .feature "no-authority"

authority   = [?userinfo, host, ?port]
userinfo    = (false, text .feature "userinfo")
host        = (host-ip // host-name)
host-name   = (*text) ; lowercase, NFC labels
host-ip     = (bytes .size 4 //
               (bytes .size 16, ?zone-id))
zone-id     = text
port        = 0..65535

discard     = DISCARD-ALL / 0..127
DISCARD-ALL = true
path        = [*text]
query       = [*text]
fragment    = text

]]></sourcecode>
        </figure>
        <t>This CDDL specification is simplified for exposition and needs to be augmented by the
following rule for interchange of CRIs and CRI references: Trailing null values <bcp14>MUST</bcp14> be removed, and
two leading null values (scheme and authority both not given) are
represented by using the <tt>discard</tt> alternative instead.</t>
        <t>The rules <tt>scheme</tt>, <tt>authority</tt>, <tt>path</tt>, <tt>query</tt>, <tt>fragment</tt>
correspond to the (sub‑)components of a CRI, as described in
<xref target="constraints"/>, with the addition of the <tt>discard</tt> section.</t>
        <section anchor="the-discard-section">
          <name>The <tt>discard</tt> Section</name>
          <t>The <tt>discard</tt> section can be used in a CRI reference when neither a
scheme nor an authority is present.
It then expresses the operations performed on a base CRI by CRI references that
are equivalent to URI references with relative paths and path prefixes such as "/", "./", "../", "../../", etc.
"." and ".." are not available in CRIs and are therefore expressed
using <tt>discard</tt> after a normalization step, as is the presence or absence of a leading "/".</t>
          <t>E.g., a simple URI reference "foo" specifies to remove one leading segment
from the base URI's path, which is represented in the equivalent CRI
reference discard section as the value <tt>1</tt>; similarly "../foo" removes
two leading segments, represented as <tt>2</tt>;
and "/foo" removes all segments, represented in the <tt>discard</tt> section as the value <tt>true</tt>.
The exact semantics of the section values are defined by
<xref target="reference-resolution"/>.</t>
          <t>Most URI references that <xref section="4.2" sectionFormat="of" target="RFC3986"/> calls "relative
references" (i.e., references that need to undergo a resolution
process to obtain a URI) correspond to the CRI form that starts with
<tt>discard</tt>.  The exception are relative references with an <tt>authority</tt>
(called a "network-path reference" in <xref section="4.2" sectionFormat="of" target="RFC3986"/>), which
discard the entire path of the base CRI.
These CRI references never carry a <tt>discard</tt> section: the value of
<tt>discard</tt> defaults to <tt>true</tt>.</t>
        </section>
        <section anchor="visualization">
          <name>Visualization</name>
          <t>The structure of a CRI reference is visualized using the somewhat limited means
of a railroad diagram:</t>
          <artset>
            <artwork type="svg"><svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 850 300">
                <g transform="translate(40 50)">
                  <text x="-30" y="-10">cri-reference:</text>
                  <path class="station" d="M5.5 94 v12 m 4 0 v-12" fill="none" stroke="black" stroke-width="1.5"/>
                  <path class="station" d="M780.5 94 v12 m 4 0 v-12" fill="none" stroke="black" stroke-width="1.5"/>
                  <path class="arrow" d="M397 10 l-4 3 v-6 z" fill="none" stroke="black" stroke-width="1.5"/>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="70" x="90" y="90"/>
                  <text class="rule" text-anchor="middle" x="125" y="105">scheme</text>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="90" x="180" y="90"/>
                  <text class="rule" text-anchor="middle" x="225" y="105">authority</text>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="70" x="145" y="120"/>
                  <text class="rule" text-anchor="middle" x="180" y="135">discard</text>
                  <path class="arrow" d="M527 30 l-4 3 v-6 z" fill="none" stroke="black" stroke-width="1.5"/>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="50" x="350" y="90"/>
                  <text class="rule" text-anchor="middle" x="375" y="105">path</text>
                  <path class="arrow" d="M562 50 l-4 3 v-6 z" fill="none" stroke="black" stroke-width="1.5"/>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="50" x="450" y="90"/>
                  <text class="rule" text-anchor="middle" x="475" y="105">query</text>
                  <path class="arrow" d="M597 70 l-4 3 v-6 z" fill="none" stroke="black" stroke-width="1.5"/>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="90" x="550" y="90"/>
                  <text class="rule" text-anchor="middle" x="595" y="105">fragment</text>
                  <path d="M40 20 v70" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M750 90 q0 10 10 10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M330 40 v50" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M720 90 q0 10 10 10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M430 60 v30" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M690 90 q0 10 10 10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M530 80 v10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M660 90 q0 10 10 10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M640 100 h140" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M520 100 q10 0 10 -10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M530 80 q0 -10 10 -10 h110 q10 0 10 10 v10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M500 100 h50" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M420 100 q10 0 10 -10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M430 60 q0 -10 10 -10 h240 q10 0 10 10 v30" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M400 100 h50" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M320 100 q10 0 10 -10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M330 40 q0 -10 10 -10 h370 q10 0 10 10 v50" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M290 110 v10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M215 130 h65 q10 0 10 -10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M70 120 q0 10 10 10 h65" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M290 110 q0 -10 10 -10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M270 100 h80" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M160 100 h20" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M60 100 q10 0 10 10 v10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M30 100 q10 0 10 -10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M40 20 q0 -10 10 -10 h690 q10 0 10 10 v70" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M10 100 h80" fill="none" stroke="black" stroke-width="1.5"/>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[cri-reference:
        ╭──────────────────────────────────────>───────────────────────────────────────╮
        │                                                                              │
        │                               ╭─────────────────────>─────────────────────╮  │
        │                               │                                           │  │
        │                               │          ╭──────────────>──────────────╮  │  │
        │                               │          │                             │  │  │
        │                               │          │           ╭──────>───────╮  │  │  │
        │                               │          │           │              │  │  │  │
    │├──╯──╮── scheme ── authority ──╭──╯── path ──╯── query ──╯── fragment ──╰──╰──╰──╰──┤│
           │                         │
           ╰──────── discard ────────╯

]]></artwork>
          </artset>
          <t>This visualization does not go into the details of the elements.</t>
        </section>
        <section anchor="examples">
          <name>Examples</name>
          <sourcecode type="cbor-diag"><![CDATA[
[-1,             / scheme -- equivalent to "coap" /
 [h'C6336401',   / host /
  61616],        / port /
 [".well-known", / path /
  "core"]
]
]]></sourcecode>
          <sourcecode type="cbor-diag"><![CDATA[
[true,                  / discard /
 [".well-known",        / path /
  "core"],
 ["rt=temperature-c"]]  / query /
]]></sourcecode>
          <sourcecode type="cbor-diag"><![CDATA[
[-6,             / scheme -- equivalent to "did" /
 true,           / authority = NOAUTH-NOSLASH /
 ["web:alice:bob"] / path /
]
]]></sourcecode>
        </section>
        <section anchor="specific-terminology">
          <name>Specific Terminology</name>
          <t>A CRI reference is considered <em>well-formed</em> if it matches the
structure as expressed in <xref target="cddl"/> in CDDL, with the additional
requirement that trailing <tt>null</tt> values are removed from the array.</t>
          <t>A CRI reference is considered <em>absolute</em> if it is well-formed
and the sequence of sections starts with a non-null <tt>scheme</tt>.</t>
          <t>A CRI reference is considered <em>relative</em> if it is well-formed
and the sequence of sections is empty or starts with a section other
than those that would constitute a <tt>scheme</tt>.</t>
        </section>
      </section>
      <section anchor="ingesting-and-encoding-a-cri-reference">
        <name>Ingesting and encoding a CRI Reference</name>
        <t>From an abstract point of view, a CRI Reference is a data structure
with six sections:</t>
        <t>scheme, authority, discard, path, query, fragment</t>
        <t>Each of these sections can be unset ("null"),
<!-- "not defined" in RFC 3986 -->
except for discard,
which is always an unsigned number or <tt>true</tt>.  If scheme and/or
authority are non-null, discard must be <tt>true</tt>.</t>
        <t>When ingesting a CRI Reference that is in the transfer form, those
sections are filled in from the transfer form (unset sections are
filled with null), and the following steps are performed:</t>
        <ul spacing="normal">
          <li>If the array is entirely empty, replace it with <tt>[0]</tt>.</li>
          <li>If discard is present in the transfer form (i.e., the outer array
starts with true or an unsigned number), set scheme and authority to null.</li>
          <li>If scheme and/or authority are present in the transfer form (i.e.,
the outer array starts with null, a text string, or a negative integer), set
discard to <tt>true</tt>.</li>
        </ul>
        <t>Upon encoding the abstract form into the transfer form, the inverse
processing is performed:  If scheme and/or authority are not null, the
discard value is not transferred (it must be true in this case).  If
they are both null, they are both left out and only discard is
transferred.
Trailing null values are removed from the array.
As a special case, an empty array is sent in place for a remaining
<tt>[0]</tt> (URI "").</t>
      </section>
      <section anchor="reference-resolution">
        <name>Reference Resolution</name>
        <t>The term "relative" implies that a "base CRI" exists against which the
relative reference is applied. Aside from fragment-only references,
relative references are only usable when a base CRI is known.</t>
        <t>The following steps define the process of resolving any well-formed CRI
reference against a base CRI so that the result is a CRI in the form of
an absolute CRI reference:</t>
        <ol spacing="normal" type="1"><li>Establish the base CRI of the CRI reference and express it in the
  form of an abstract absolute CRI reference.</li>
          <li>Initialize a buffer with the sections from the base CRI.</li>
          <li>
            <t>If the value of discard is <tt>true</tt> in the CRI reference (which is
implicitly the case when scheme and/or authority are present in the reference), replace the
path in the buffer with the empty array, unset query and
fragment, and set a <tt>true</tt> authority to <tt>null</tt>.  If the value of
discard is an unsigned number, remove as many elements
from the end of the path array; if it is non-zero, unset query and
fragment.  </t>
            <t>
Set discard to <tt>true</tt> in the buffer.</t>
          </li>
          <li>If the path section is set in the CRI reference, append all
elements from the path array to the array in the path section in
the buffer; unset query and fragment.</li>
          <li>Apart from the path and discard, copy all non-null sections from
the CRI reference to the buffer in sequence; unset fragment in the buffer if
query is non-null in the CRI reference (and therefore has been
copied to the buffer).</li>
          <li>Return the sections in the buffer as the resolved CRI.</li>
        </ol>
      </section>
    </section>
    <section anchor="relationship-between-cris-uris-and-iris">
      <name>Relationship between CRIs, URIs and IRIs</name>
      <t>CRIs are meant to replace both <xref target="RFC3986">Uniform Resource Identifiers (URIs)</xref>
and <xref target="RFC3987">Internationalized Resource Identifiers (IRIs)</xref>
in <xref target="RFC7228">constrained environments</xref>.
Applications in these environments may never need to use URIs and IRIs
directly, especially when the resource identifier is used simply for
identification purposes or when the CRI can be directly converted into a
CoAP request.</t>
      <t>However, it may be necessary in other environments to determine the
associated URI or IRI of a CRI, and vice versa. Applications can perform
these conversions as follows:</t>
      <dl newline="true">
        <dt>CRI to URI</dt>
        <dd>
          <t>A CRI is converted to a URI as specified in <xref target="cri-to-uri"/>.</t>
        </dd>
        <dt>URI to CRI</dt>
        <dd>
          <t>The method of converting a URI to a CRI is unspecified;
implementations are free to use any algorithm as long as converting
the resulting CRI back to a URI yields an equivalent URI.</t>
        </dd>
        <dt>CRI to IRI</dt>
        <dd>
          <t>A CRI can be converted to an IRI by first converting it to a URI as
specified in <xref target="cri-to-uri"/>, and then converting the URI
to an IRI as described in <xref section="3.2" sectionFormat="of" target="RFC3987"/>.</t>
        </dd>
        <dt>IRI to CRI</dt>
        <dd>
          <t>An IRI can be converted to a CRI by first converting it to a URI as
described in <xref section="3.1" sectionFormat="of" target="RFC3987"/>, and then
converting the URI to a CRI as described above.</t>
        </dd>
      </dl>
      <!-- What? -->
<t>Everything in this section also applies to CRI references, URI
references and IRI references.</t>
      <section anchor="cri-to-uri">
        <name>Converting CRIs to URIs</name>
        <t>Applications <bcp14>MUST</bcp14> convert a CRI reference to a URI
reference by determining the components of the URI reference according
to the following steps and then recomposing the components to a URI
reference string as specified in <xref section="5.3" sectionFormat="of" target="RFC3986"/>.</t>
        <dl newline="true">
          <dt>scheme</dt>
          <dd>
            <t>If the CRI reference contains a <tt>scheme</tt> section, the scheme
component of the URI reference consists of the value of that
section, if text (<tt>scheme-name</tt>); or, if a negative integer is given
(<tt>scheme-id</tt>), the lower case scheme name corresponding to the
scheme number as per the CRI Scheme Numbers registry <xref target="cri-reg"/>.
Otherwise, the scheme component is unset.</t>
          </dd>
          <dt>authority</dt>
          <dd>
            <t>If the CRI reference contains a <tt>host-name</tt> or <tt>host-ip</tt> item, the
authority component of the URI reference consists of a host
subcomponent, optionally followed by a colon (":") character and a
port subcomponent, optionally preceded by a <tt>userinfo</tt> subcomponent.
Otherwise, the authority component is unset.
</t>
            <t>The host subcomponent consists of the value of the <tt>host-name</tt> or
<tt>host-ip</tt> item.</t>
            <t>The <tt>userinfo</tt> subcomponent, if present, is turned into a single
string by
appending a "@".  Otherwise, both the subcomponent and the "@" sign
are omitted.
Any character in the value of the <tt>userinfo</tt> elements that is not in
the set of unreserved characters (<xref section="2.3" sectionFormat="of" target="RFC3986"/>) or
"sub-delims" (<xref section="2.2" sectionFormat="of" target="RFC3986"/>) <bcp14>MUST</bcp14> be
percent-encoded.</t>
            <t>The <tt>host-name</tt> is turned into a single string by joining the
elements separated by dots (".").
Any character in the elements of a <tt>host-name</tt> item that is a dot
("."), or not in
the set of unreserved characters (<xref section="2.3" sectionFormat="of" target="RFC3986"/>) or
"sub-delims" (<xref section="2.2" sectionFormat="of" target="RFC3986"/>) <bcp14>MUST</bcp14> be
percent-encoded.</t>
            <t>The value of a <tt>host-ip</tt> item <bcp14>MUST</bcp14> be
represented as a string that matches the "IPv4address" or
"IP-literal" rule (<xref section="3.2.2" sectionFormat="of" target="RFC3986"/>).
Any zone-id is appended to the string, separated by "%25" as
defined in <xref section="2" sectionFormat="of" target="RFC6874"/>, or as specified in a superseding
zone-id specification document <xref target="I-D.carpenter-6man-rfc6874bis"/>; this also leads to a modified
"IP-literal" rule as specified in these documents.</t>
            <t>If the CRI reference contains a <tt>port</tt> item, the port
subcomponent consists of the value of that item in decimal
notation.
Otherwise, the colon (":") character and the port subcomponent are
both omitted.</t>
          </dd>
          <dt>path</dt>
          <dd>
            <t>If the CRI reference contains a <tt>discard</tt> item of value <tt>true</tt>, the
path component is considered <em>rooted</em>.  If it
contains a <tt>discard</tt> item of value <tt>0</tt> and the <tt>path</tt> item is
present, the conversion fails.  If it contains a positive discard
item, the path component is considered <em>unrooted</em> and
prefixed by as many "../" components as the <tt>discard</tt> value minus
one indicates.  If the discard value is <tt>1</tt> and the first element of
the path contains a <tt>:</tt>, the path component is prefixed by "./"
(this avoids the first element to appear as supplying a URI scheme;
compare <tt>path-noscheme</tt> in <xref section="4.2" sectionFormat="of" target="RFC3986"/>).
</t>
            <t>If the discard item is not present and the CRI reference contains an
authority that is <tt>true</tt>, the path component of the URI reference is
considered unrooted.  Otherwise, the path component is considered
rooted.</t>
            <t>If the CRI reference contains one or more <tt>path</tt> items, the path
component is constructed by concatenating the sequence of
representations of these items.  These representations generally
contain a leading slash ("/") character and the value of each item,
processed as discussed below.  The leading slash character is
omitted for the first path item only if the path component is
considered "unrooted".  <!-- A path segment that contains a colon
character (e.g., --> <!-- "this:that") cannot directly be used as
the first such item.  Such a --> <!-- segment MUST be preceded by a
dot-segment (e.g., "./this:that") --> <!-- unless scheme and/or
authority are present. -->
            </t>
            <t>Any character in the value of a <tt>path</tt> item that is not
in the set of unreserved characters or "sub-delims" or a colon
(":") or commercial at ("@") character <bcp14>MUST</bcp14> be
percent-encoded.</t>
            <t>If the authority component is present (not <tt>null</tt> or <tt>true</tt>) and the
path component does not match the "path-abempty" rule (<xref section="3.3" sectionFormat="of" target="RFC3986"/>), the conversion fails.</t>
            <t>If the authority component is not present, but the scheme component
is, and the path component does not match the "path-absolute",
"path-rootless" (authority == <tt>true</tt>) or "path-empty" rule (<xref section="3.3" sectionFormat="of" target="RFC3986"/>), the conversion fails.</t>
            <t>If neither the authority component nor the scheme component are
present, and the path component does not match the "path-absolute",
"path-noscheme" or "path-empty" rule (<xref section="3.3" sectionFormat="of" target="RFC3986"/>), the
conversion fails.</t>
          </dd>
          <dt>query</dt>
          <dd>
            <t>If the CRI reference contains one or more <tt>query</tt> items,
the query component of the URI reference consists of the value of
each item, separated by an ampersand ("&amp;") character.
Otherwise, the query component is unset.
</t>
            <t>Any character in the value of a <tt>query</tt> item that is not
in the set of unreserved characters or "sub-delims" or a colon
(":"), commercial at ("@"), slash ("/") or question mark ("?")
character <bcp14>MUST</bcp14> be percent-encoded.
Additionally, any ampersand character ("&amp;") in the item
value <bcp14>MUST</bcp14> be percent-encoded.</t>
          </dd>
          <dt>fragment</dt>
          <dd>
            <t>If the CRI reference contains a fragment item, the fragment
component of the URI reference consists of the value of that
item.
Otherwise, the fragment component is unset.
</t>
            <t>Any character in the value of a <tt>fragment</tt> item that is
not in the set of unreserved characters or "sub-delims" or a colon
(":"), commercial at ("@"), slash ("/") or question mark ("?")
character <bcp14>MUST</bcp14> be percent-encoded.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="extending-cris">
      <name>Extending CRIs</name>
      <t>CRIs have been designed to relieve implementations operating on CRIs
from string scanning, which both helps constrained implementations and
implementations that need to achieve high throughput.</t>
      <t>The CRI structure described up to this point is termed the <em>Basic CRI</em>.
It should be sufficient for all applications that use the CoAP
protocol, as well as most other protocols employing URIs.</t>
      <t>However, Basic CRIs have one limitation: They do not support URI
components that <em>require</em> percent-encoding (<xref section="2.1" sectionFormat="of" target="RFC3986"/>) to
represent them in the URI syntax, except where that percent-encoding
is used to escape the main delimiter in use.</t>
      <t>E.g., the URI</t>
      <sourcecode type="uri"><![CDATA[
https://alice/3%2f4-inch
]]></sourcecode>
      <t>is represented by the basic CRI</t>
      <sourcecode type="coap-diag"><![CDATA[
[-4, ["alice"], ["3/4-inch"]]
]]></sourcecode>
      <t>However, percent-encoding that is used at the application level is not
supported by basic CRIs:</t>
      <sourcecode type="uri"><![CDATA[
did:web:alice:7%3A1-balun
]]></sourcecode>
      <t>Extended forms of CRIs may be defined to enable these applications.
They will generally extend the potential values of text components of
URIs, such as userinfo, hostnames, paths, queries, and fragments.</t>
      <t>One such extended form is described in the following <xref target="pet"/>.
Consumers of CRIs will generally notice when an extended form is in
use, by finding structures that do not match the CDDL rules given in
<xref target="cddl"/>.
Future definitions of extended forms need to strive to be
distinguishable in their structures from the extended form presented
here as well as other future forms.</t>
      <section anchor="pet">
        <name>Extended CRI: Accommodating Percent Encoding (PET)</name>
        <t>This section presents a method to represent percent-encoded segments
of userinfo, hostnames, paths, and queries, as well as fragments.</t>
        <t>The four CDDL rules</t>
        <sourcecode type="cddl"><![CDATA[
userinfo    = (false, text .feature "userinfo")
host-name   = (*text)
path        = [*text]
query       = [*text]
fragment    = text
]]></sourcecode>
        <t>are replaced with</t>
        <sourcecode type="cddl"><![CDATA[
userinfo    = (false, text-or-pet .feature "userinfo")
host-name   = (*text-or-pet)
path        = [*text-or-pet]
query       = [*text-or-pet]
fragment    = text-or-pet

text-or-pet = text /
    text-pet-sequence .feature "extended-cri"

; text1 and pet1 alternating, at least one pet1:
text-pet-sequence = [?text1, ((+(pet1, text1), ?pet1) // pet1)]
; pet is percent-encoded bytes
pet1 = bytes .ne ''
text1 = text .ne ""
]]></sourcecode>
        <t>That is, for each of the host-name, path, and query segments, and for
the userinfo and fragment components, an alternate representation is provided
besides a simple text string: a non-empty array of alternating non-blank text and byte
strings, the text strings of which stand for non-percent-encoded text,
while the byte strings retain the special
semantics of percent-encoded text without actually being
percent-encoded.</t>
        <t>The above DID URI can now be represented as:</t>
        <sourcecode type="cbor-diag"><![CDATA[
[-6, true, [["web:alice:7", ':', "1-balun"]]]
]]></sourcecode>
        <aside>
          <t>Unlike the text elements of a path or a query, which through CoAP's
heritage are designed to be processable element by element, a
text-pet-sequence does not usually produce semantically meaningful
array elements.
This consequence of the flexibility in delimiters offered in URIs is
demonstrated by this example, which structurally singles out the one
':' that is <em>not</em> a delimiter at the application level.
Applications designed for using CRIs will generally avoid using the
extended-cri feature.
Applications using existing URI structures that require
text-pet-sequence elements for their representation typically need
to process them byte by byte.</t>
        </aside>
      </section>
    </section>
    <section anchor="impl">
      <name>Implementation Status</name>
      <t>With the exception of the authority=true fix, host-names split into
labels, and <xref target="pet"/>, CRIs are implemented in <tt>https://gitlab.com/chrysn/micrurus</tt>.
A golang implementation of version -10 of this document is found at:
<tt>https://github.com/thomas-fossati/href</tt>
        <!-- see RFC 7942 -->
      </t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>Parsers of CRI references must operate on input that is assumed to be
untrusted. This means that parsers <bcp14>MUST</bcp14> fail gracefully
in the face of malicious inputs.
Additionally, parsers <bcp14>MUST</bcp14> be prepared to deal with
resource exhaustion (e.g., resulting from the allocation of big data
items) or exhaustion of the call stack (stack overflow).
See <xref section="10" sectionFormat="of" target="RFC8949"/> for additional
security considerations relating to CBOR.</t>
      <t>The security considerations discussed in <xref section="7" sectionFormat="of" target="RFC3986"/> and
<xref section="8" sectionFormat="of" target="RFC3987"/> for URIs and IRIs also apply to CRIs.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="cri-reg">
        <name>CRI Scheme Numbers Registry</name>
        <t>This specification defines a new "CRI Scheme Numbers" sub-registry in
the "CoRE Parameters" registry <xref target="IANA.core-parameters"/>, with the
policy "Expert Review" (<xref section="4.5" sectionFormat="of" target="BCP26"/>).
The objective is to have CRI scheme number values registered for all
registered URI schemes (Uniform Resource Identifier (URI) Schemes
registry), as well as exceptionally for certain text strings that the
Designated Expert considers widely used in constrained applications in
place of URI scheme names.</t>
        <section anchor="de-instructions">
          <name>Instructions for the Designated Expert</name>
          <t>The expert is instructed to be frugal in the allocation of CRI values
with short representations (1+0 and 1+1 encoding), keeping them in
reserve for applications that are likely to enjoy wide use and can
make good use of their shortness.</t>
          <t>When the expert notices that a registration has been made in the
Uniform Resource Identifier (URI) Schemes registry (see also <xref target="upd"/>),
the expert is requested to initiate a parallel registration in the CRI
Scheme Numbers registry.  CRI values in the range between 1000 and
20000 (inclusive) should be assigned unless a shorter representation
in CRIs appears desirable.</t>
          <t>The expert exceptionally also may make such a registration for text
strings that have not been registered in the Uniform Resource
Identifier (URI) Schemes registry if and only if the expert considers
the to be in wide use in place of URI scheme names in constrained
applications.
(Note that the initial registrations in <xref target="tab-numbers"/> already include
such registrations for the text strings "mqtt" and "mqtts".)</t>
          <t>A registration in the CRI Scheme Numbers registry does not imply that
a URI scheme under this name exists or has been registered in the
Uniform Resource Identifier (URI) Schemes registry -- it essentially
is only providing an integer identifier for an otherwise uninterpreted
text string.</t>
          <t>Any questions or issues that might interest a wider audience might be
raised by the expert on the core-parameters@ietf.org mailing list for
a time-limited discussion.</t>
        </section>
        <section anchor="structure-of-entries">
          <name>Structure of Entries</name>
          <t>Each entry in the registry must include:</t>
          <dl newline="true">
            <dt>CRI value:</dt>
            <dd>
              <t>A negative integer unique in this registry</t>
            </dd>
            <dt>URI scheme name:</dt>
            <dd>
              <t>a text string that would be acceptable for registration as a URI
Scheme Name in the Uniform Resource Identifier (URI) Schemes
registry</t>
            </dd>
            <dt>Reference:</dt>
            <dd>
              <t>a reference to a document, if available, or the registrant</t>
            </dd>
          </dl>
        </section>
        <section anchor="initial-registrations">
          <name>Initial Registrations</name>
          <t>The initial registrations for the CRI Scheme Numbers registry are
provided in <xref target="tab-numbers"/>.</t>
        </section>
      </section>
      <section anchor="upd">
        <name>Update to "Uniform Resource Identifier (URI) Schemes" Registry</name>
        <t><xref target="RFC7595"/> is updated to add the following note in the "Uniform
Resource Identifier (URI) Schemes" Registry <xref target="IANA.uri-schemes"/>:</t>
        <blockquote>
          <t>The CRI Scheme Numbers Registry registers numeric identifiers for what
essentially are URI Scheme names.
Registrants for the Uniform Resource Identifier (URI) Schemes Registry
are requested to make a parallel registration in the CRI Scheme
Numbers registry.
The number for this registration will be assigned by the Designated
Expert for that registry.</t>
        </blockquote>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee">
              <organization/>
            </author>
            <author fullname="R. Fielding" initials="R." surname="Fielding">
              <organization/>
            </author>
            <author fullname="L. Masinter" initials="L." surname="Masinter">
              <organization/>
            </author>
            <date month="January" year="2005"/>
            <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="RFC3987">
          <front>
            <title>Internationalized Resource Identifiers (IRIs)</title>
            <author fullname="M. Duerst" initials="M." surname="Duerst">
              <organization/>
            </author>
            <author fullname="M. Suignard" initials="M." surname="Suignard">
              <organization/>
            </author>
            <date month="January" year="2005"/>
            <abstract>
              <t>This document defines a new protocol element, the Internationalized  Resource Identifier (IRI), as a complement of the Uniform Resource  Identifier (URI). An IRI is a sequence of characters from the  Universal Character Set (Unicode/ISO 10646). A mapping from IRIs to   URIs is defined, which means that IRIs can be used instead of URIs,  where appropriate, to identify resources.</t>
              <t> The approach of defining a new protocol element was chosen instead of extending or changing the definition of URIs.  This was done in order  to allow a clear distinction and to avoid incompatibilities with  existing software. Guidelines are provided for the use and deployment of IRIs in various protocols, formats, and software components that currently deal with URIs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3987"/>
          <seriesInfo name="DOI" value="10.17487/RFC3987"/>
        </reference>
        <reference anchor="RFC6874">
          <front>
            <title>Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers</title>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter">
              <organization/>
            </author>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire">
              <organization/>
            </author>
            <author fullname="R. Hinden" initials="R." surname="Hinden">
              <organization/>
            </author>
            <date month="February" year="2013"/>
            <abstract>
              <t>This document describes how the zone identifier of an IPv6 scoped address, defined as &lt;zone_id&gt; in the IPv6 Scoped Address Architecture (RFC 4007), can be represented in a literal IPv6 address and in a Uniform Resource Identifier that includes such a literal address.  It updates the URI Generic Syntax specification (RFC 3986) accordingly.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6874"/>
          <seriesInfo name="DOI" value="10.17487/RFC6874"/>
        </reference>
        <reference anchor="RFC7595">
          <front>
            <title>Guidelines and Registration Procedures for URI Schemes</title>
            <author fullname="D. Thaler" initials="D." role="editor" surname="Thaler">
              <organization/>
            </author>
            <author fullname="T. Hansen" initials="T." surname="Hansen">
              <organization/>
            </author>
            <author fullname="T. Hardie" initials="T." surname="Hardie">
              <organization/>
            </author>
            <date month="June" year="2015"/>
            <abstract>
              <t>This document updates the guidelines and recommendations, as well as the IANA registration processes, for the definition of Uniform Resource Identifier (URI) schemes.  It obsoletes RFC 4395.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="35"/>
          <seriesInfo name="RFC" value="7595"/>
          <seriesInfo name="DOI" value="10.17487/RFC7595"/>
        </reference>
        <reference anchor="IANA.uri-schemes" target="https://www.iana.org/assignments/uri-schemes">
          <front>
            <title>Uniform Resource Identifier (URI) Schemes</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="BCP26">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton">
              <organization/>
            </author>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <author fullname="T. Narten" initials="T." surname="Narten">
              <organization/>
            </author>
            <date month="June" year="2017"/>
            <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="I-D.carpenter-6man-rfc6874bis">
          <front>
            <title>Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers</title>
            <author fullname="Brian E. Carpenter" initials="B. E." surname="Carpenter">
         </author>
            <author fullname="Stuart Cheshire" initials="S." surname="Cheshire">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Bob Hinden" initials="R. M." surname="Hinden">
              <organization>Check Point Software</organization>
            </author>
            <date day="8" month="February" year="2022"/>
            <abstract>
              <t>   This document describes how the zone identifier of an IPv6 scoped
   address, defined as &lt;zone_id&gt; in the IPv6 Scoped Address Architecture
   (RFC 4007), can be represented in a literal IPv6 address and in a
   Uniform Resource Identifier that includes such a literal address.  It
   updates the URI Generic Syntax and Internationalized Resource
   Identifier specifications (RFC 3986, RFC 3987) accordingly, and
   obsoletes RFC 6874.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-carpenter-6man-rfc6874bis-03"/>
        </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">
              <organization/>
            </author>
            <author fullname="C. Vigano" initials="C." surname="Vigano">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <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="Unicode" target="https://www.unicode.org/versions/Unicode13.0.0/">
          <front>
            <title>The Unicode Standard, Version 13.0.0</title>
            <author>
              <organization>The Unicode Consortium</organization>
            </author>
            <date year="2020" month="March"/>
          </front>
          <seriesInfo name="ISBN" value="978-1-936213-26-9"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman">
              <organization/>
            </author>
            <date month="December" year="2020"/>
            <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="RFC9165">
          <front>
            <title>Additional Control Operators for the Concise Data Definition Language (CDDL)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <date month="December" year="2021"/>
            <abstract>
              <t>The Concise Data Definition Language (CDDL), standardized in RFC 8610, provides "control operators" as its main language extension point.</t>
              <t>The present document defines a number of control operators that were not yet ready at the time RFC 8610 was completed: , , and  for the construction of constants; / for including ABNF (RFC 5234 and RFC 7405) in CDDL specifications; and for indicating the use of a non-basic feature in an instance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9165"/>
          <seriesInfo name="DOI" value="10.17487/RFC9165"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="IANA.core-parameters" target="https://www.iana.org/assignments/core-parameters">
          <front>
            <title>Constrained RESTful Environments (CoRE) Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC7228">
          <front>
            <title>Terminology for Constrained-Node Networks</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <author fullname="M. Ersue" initials="M." surname="Ersue">
              <organization/>
            </author>
            <author fullname="A. Keranen" initials="A." surname="Keranen">
              <organization/>
            </author>
            <date month="May" year="2014"/>
            <abstract>
              <t>The Internet Protocol Suite is increasingly used on small devices with severe constraints on power, memory, and processing resources, creating constrained-node networks.  This document provides a number of basic terms that have been useful in the standardization work for constrained-node networks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7228"/>
          <seriesInfo name="DOI" value="10.17487/RFC7228"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding">
              <organization/>
            </author>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham">
              <organization/>
            </author>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke">
              <organization/>
            </author>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes. </t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby">
              <organization/>
            </author>
            <author fullname="K. Hartke" initials="K." surname="Hartke">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks.  The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s.  The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types.  CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC8141">
          <front>
            <title>Uniform Resource Names (URNs)</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre">
              <organization/>
            </author>
            <author fullname="J. Klensin" initials="J." surname="Klensin">
              <organization/>
            </author>
            <date month="April" year="2017"/>
            <abstract>
              <t>A Uniform Resource Name (URN) is a Uniform Resource Identifier (URI) that is assigned under the "urn" URI scheme and a particular URN namespace, with the intent that the URN will be a persistent, location-independent resource identifier.  With regard to URN syntax, this document defines the canonical syntax for URNs (in a way that is consistent with URI syntax), specifies methods for determining URN-equivalence, and discusses URI conformance.  With regard to URN namespaces, this document specifies a method for defining a URN namespace and associating it with a namespace identifier, and it describes procedures for registering namespace identifiers with the Internet Assigned Numbers Authority (IANA).  This document obsoletes both RFCs 2141 and 3406.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8141"/>
          <seriesInfo name="DOI" value="10.17487/RFC8141"/>
        </reference>
        <reference anchor="RFC8288">
          <front>
            <title>Web Linking</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham">
              <organization/>
            </author>
            <date month="October" year="2017"/>
            <abstract>
              <t>This specification defines a model for the relationships between resources on the Web ("links") and the type of those relationships ("link relation types").</t>
              <t>It also defines the serialisation of such links in HTTP headers with the Link header field.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8288"/>
          <seriesInfo name="DOI" value="10.17487/RFC8288"/>
        </reference>
        <reference anchor="RFC8820">
          <front>
            <title>URI Design and Ownership</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham">
              <organization/>
            </author>
            <date month="June" year="2020"/>
            <abstract>
              <t>Section 1.1.1 of RFC 3986 defines URI syntax as "a federated and extensible naming system wherein each scheme's specification may further restrict the syntax and semantics of identifiers using that scheme."  In other words, the structure of a URI is defined by its scheme. While it is common for schemes to further delegate their substructure to the URI's owner, publishing independent standards that mandate particular forms of substructure in URIs is often problematic.</t>
              <t>This document provides guidance on the specification of URI substructure in standards.</t>
              <t>This document obsoletes RFC 7320 and updates RFC 3986.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="190"/>
          <seriesInfo name="RFC" value="8820"/>
          <seriesInfo name="DOI" value="10.17487/RFC8820"/>
        </reference>
        <reference anchor="W3C.REC-html52-20171214" target="https://www.w3.org/TR/2017/REC-html52-20171214/">
          <front>
            <title>HTML 5.2</title>
            <author fullname="Alex Danilo" role="editor"/>
            <author fullname="Arron Eicholz" role="editor"/>
            <author fullname="Sangwhan Moon" role="editor"/>
            <author fullname="Steve Faulkner" role="editor"/>
            <author fullname="Travis Leithead" role="editor"/>
            <date day="14" month="December" year="2017"/>
          </front>
          <seriesInfo name="W3C REC" value="REC-html52-20171214"/>
          <seriesInfo name="W3C" value="REC-html52-20171214"/>
        </reference>
        <reference anchor="RFC4180">
          <front>
            <title>Common Format and MIME Type for Comma-Separated Values (CSV) Files</title>
            <author fullname="Y. Shafranovich" initials="Y." surname="Shafranovich">
              <organization/>
            </author>
            <date month="October" year="2005"/>
            <abstract>
              <t>This RFC documents the format used for Comma-Separated Values (CSV) files and registers the associated MIME type "text/csv".  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4180"/>
          <seriesInfo name="DOI" value="10.17487/RFC4180"/>
        </reference>
      </references>
    </references>
    <section anchor="sec-numbers">
      <name>Mapping Scheme Numbers to Scheme Names</name>
      <t><xref target="tab-numbers"/> defines the initial mapping from CRI scheme numbers to
URI scheme names.</t>
      <table anchor="tab-numbers">
        <name>Mapping Scheme Numbers to Scheme Names</name>
        <thead>
          <tr>
            <th align="left">CRI value</th>
            <th align="left">URI scheme</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">-1</td>
            <td align="left">coap</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2</td>
            <td align="left">coaps</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-3</td>
            <td align="left">http</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-4</td>
            <td align="left">https</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5</td>
            <td align="left">urn</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-6</td>
            <td align="left">did</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-7</td>
            <td align="left">coap+tcp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8</td>
            <td align="left">coaps+tcp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9</td>
            <td align="left">coap+ws</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-10</td>
            <td align="left">coaps+ws</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1025</td>
            <td align="left">telnet</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1046</td>
            <td align="left">ldap</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1056</td>
            <td align="left">ms-virtualtouchpad</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1091</td>
            <td align="left">fax</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1107</td>
            <td align="left">ves</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1147</td>
            <td align="left">submit</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1192</td>
            <td align="left">gg</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1219</td>
            <td align="left">simplex</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1240</td>
            <td align="left">ms-settings-nfctransactions</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1241</td>
            <td align="left">secret-token</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1249</td>
            <td align="left">acap</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1276</td>
            <td align="left">openpgp4fpr</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1300</td>
            <td align="left">ms-mixedrealitycapture</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1307</td>
            <td align="left">ymsgr</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1320</td>
            <td align="left">iris.xpcs</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1351</td>
            <td align="left">turns</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1367</td>
            <td align="left">opaquelocktoken</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1499</td>
            <td align="left">platform</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1597</td>
            <td align="left">sftp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1613</td>
            <td align="left">vscode</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1649</td>
            <td align="left">mqtt</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1664</td>
            <td align="left">ms-settings</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1690</td>
            <td align="left">doi</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1720</td>
            <td align="left">file</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1729</td>
            <td align="left">dvb</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1760</td>
            <td align="left">magnet</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1768</td>
            <td align="left">calculator</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1836</td>
            <td align="left">ssh</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1966</td>
            <td align="left">gopher</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1985</td>
            <td align="left">ms-gamingoverlay</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-1997</td>
            <td align="left">z39.50</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2032</td>
            <td align="left">ms-secondary-screen-setup</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2038</td>
            <td align="left">fido</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2085</td>
            <td align="left">mumble</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2095</td>
            <td align="left">ms-settings-cloudstorage</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2106</td>
            <td align="left">imap</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2152</td>
            <td align="left">ms-officeapp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2233</td>
            <td align="left">pwid</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2236</td>
            <td align="left">drm</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2264</td>
            <td align="left">tag</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2369</td>
            <td align="left">feed</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2460</td>
            <td align="left">ipps</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2484</td>
            <td align="left">xmlrpc.beeps</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2492</td>
            <td align="left">jms</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2542</td>
            <td align="left">wpid</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2669</td>
            <td align="left">barion</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2675</td>
            <td align="left">onenote</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2695</td>
            <td align="left">icon</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2769</td>
            <td align="left">message</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2800</td>
            <td align="left">ms-enrollment</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2804</td>
            <td align="left">bolo</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2817</td>
            <td align="left">diaspora</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2833</td>
            <td align="left">microsoft.windows.camera.picker</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2864</td>
            <td align="left">notes</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2866</td>
            <td align="left">amss</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-2873</td>
            <td align="left">tip</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-3018</td>
            <td align="left">fm</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-3042</td>
            <td align="left">rtmfp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-3060</td>
            <td align="left">reload</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-3111</td>
            <td align="left">pres</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-3232</td>
            <td align="left">acd</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-3362</td>
            <td align="left">prospero</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-3364</td>
            <td align="left">geo</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-3414</td>
            <td align="left">snmp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-3483</td>
            <td align="left">iris.beep</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-3510</td>
            <td align="left">maps</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-3575</td>
            <td align="left">content</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-3618</td>
            <td align="left">pack</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-3619</td>
            <td align="left">keyparc</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-3632</td>
            <td align="left">mongodb</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-3693</td>
            <td align="left">smb</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-3796</td>
            <td align="left">graph</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-3818</td>
            <td align="left">filesystem</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-3839</td>
            <td align="left">payment</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-3840</td>
            <td align="left">ms-settings-bluetooth</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-3951</td>
            <td align="left">palm</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-4027</td>
            <td align="left">hyper</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-4043</td>
            <td align="left">microsoft.windows.camera</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-4067</td>
            <td align="left">mvn</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-4098</td>
            <td align="left">mtqp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-4130</td>
            <td align="left">jabber</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-4275</td>
            <td align="left">mms</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-4343</td>
            <td align="left">skype</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-4351</td>
            <td align="left">oid</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-4420</td>
            <td align="left">dict</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-4454</td>
            <td align="left">attachment</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-4662</td>
            <td align="left">ocf</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-4807</td>
            <td align="left">isostore</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-4816</td>
            <td align="left">redis</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-4862</td>
            <td align="left">ms-settings-privacy</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-4877</td>
            <td align="left">ms-settings-wifi</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5004</td>
            <td align="left">v-event</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5020</td>
            <td align="left">com-eventbrite-attendee</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5105</td>
            <td align="left">teliaeid</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5222</td>
            <td align="left">itms</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5234</td>
            <td align="left">fish</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5285</td>
            <td align="left">dtn</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5298</td>
            <td align="left">vscode-insiders</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5304</td>
            <td align="left">tftp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5347</td>
            <td align="left">rtsp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5358</td>
            <td align="left">adiumxtra</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5464</td>
            <td align="left">smp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5470</td>
            <td align="left">ms-eyecontrolspeech</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5479</td>
            <td align="left">ms-settings-language</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5491</td>
            <td align="left">mqtts</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5595</td>
            <td align="left">wyciwyg</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5596</td>
            <td align="left">hcp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5619</td>
            <td align="left">go</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5673</td>
            <td align="left">rediss</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5683</td>
            <td align="left">ms-settings-cellular</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5743</td>
            <td align="left">ldaps</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5843</td>
            <td align="left">z39.50s</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5886</td>
            <td align="left">bitcoincash</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-5960</td>
            <td align="left">ms-mobileplans</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-6182</td>
            <td align="left">pttp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-6208</td>
            <td align="left">facetime</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-6289</td>
            <td align="left">gtalk</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-6348</td>
            <td align="left">afp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-6361</td>
            <td align="left">mss</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-6426</td>
            <td align="left">ms-settings-notifications</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-6448</td>
            <td align="left">psyc</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-6488</td>
            <td align="left">tv</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-6514</td>
            <td align="left">wifi</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-6523</td>
            <td align="left">sarif</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-6539</td>
            <td align="left">moz</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-6659</td>
            <td align="left">ms-lockscreencomponent-config</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-6716</td>
            <td align="left">cabal</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-6734</td>
            <td align="left">ms-media-stream-id</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-6780</td>
            <td align="left">mupdate</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-6793</td>
            <td align="left">dis</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-6804</td>
            <td align="left">nih</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-6809</td>
            <td align="left">ms-help</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-6909</td>
            <td align="left">soap.beep</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-6998</td>
            <td align="left">iotdisco</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-7027</td>
            <td align="left">acr</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-7040</td>
            <td align="left">ms-newsandinterests</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-7089</td>
            <td align="left">hxxp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-7096</td>
            <td align="left">ms-settings-location</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-7125</td>
            <td align="left">soap.beeps</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-7301</td>
            <td align="left">ipn</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-7309</td>
            <td align="left">nntp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-7316</td>
            <td align="left">query</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-7334</td>
            <td align="left">smtp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-7335</td>
            <td align="left">ms-spd</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-7400</td>
            <td align="left">ni</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-7403</td>
            <td align="left">ms-excel</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-7421</td>
            <td align="left">ms-settings-power</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-7435</td>
            <td align="left">pop</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-7447</td>
            <td align="left">session</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-7582</td>
            <td align="left">ms-infopath</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-7701</td>
            <td align="left">ms-word</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-7715</td>
            <td align="left">web+ap</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-7791</td>
            <td align="left">steam</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-7995</td>
            <td align="left">cstr</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8008</td>
            <td align="left">web3</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8064</td>
            <td align="left">videotex</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8069</td>
            <td align="left">nfs</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8094</td>
            <td align="left">udp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8102</td>
            <td align="left">ed2k</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8138</td>
            <td align="left">ms-getoffice</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8203</td>
            <td align="left">sgn</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8331</td>
            <td align="left">data</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8364</td>
            <td align="left">swidpath</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8385</td>
            <td align="left">fuchsia-pkg</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8395</td>
            <td align="left">ms-screensketch</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8426</td>
            <td align="left">hxxps</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8487</td>
            <td align="left">unreal</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8555</td>
            <td align="left">ens</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8585</td>
            <td align="left">ms-settings-camera</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8619</td>
            <td align="left">stun</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8673</td>
            <td align="left">ms-stickers</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8775</td>
            <td align="left">spotify</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8860</td>
            <td align="left">starknet</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8890</td>
            <td align="left">ms-settings-emailandaccounts</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8907</td>
            <td align="left">market</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-8967</td>
            <td align="left">ms-powerpoint</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9001</td>
            <td align="left">rtsps</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9064</td>
            <td align="left">p1</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9128</td>
            <td align="left">aw</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9132</td>
            <td align="left">mailserver</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9186</td>
            <td align="left">irc6</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9338</td>
            <td align="left">ms-settings-lock</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9339</td>
            <td align="left">hcap</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9350</td>
            <td align="left">drop</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9419</td>
            <td align="left">icap</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9437</td>
            <td align="left">xcon-userid</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9457</td>
            <td align="left">leaptofrogans</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9461</td>
            <td align="left">ipfs</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9479</td>
            <td align="left">bitcoin</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9555</td>
            <td align="left">apt</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9605</td>
            <td align="left">ms-whiteboard-cmd</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9669</td>
            <td align="left">ssb</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9725</td>
            <td align="left">aaas</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9734</td>
            <td align="left">ar</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9767</td>
            <td align="left">proxy</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9773</td>
            <td align="left">res</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9780</td>
            <td align="left">msrps</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9795</td>
            <td align="left">aim</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9826</td>
            <td align="left">tool</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9842</td>
            <td align="left">finger</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9900</td>
            <td align="left">turn</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9901</td>
            <td align="left">num</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9903</td>
            <td align="left">svn</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9904</td>
            <td align="left">ut2004</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-9932</td>
            <td align="left">ms-visio</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-10008</td>
            <td align="left">eid</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-10100</td>
            <td align="left">wss</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-10103</td>
            <td align="left">gizmoproject</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-10172</td>
            <td align="left">dlna-playsingle</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-10224</td>
            <td align="left">swh</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-10337</td>
            <td align="left">dat</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-10348</td>
            <td align="left">cap</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-10355</td>
            <td align="left">z39.50r</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-10412</td>
            <td align="left">xcon</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-10430</td>
            <td align="left">gitoid</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-10524</td>
            <td align="left">hydrazone</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-10565</td>
            <td align="left">example</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-10699</td>
            <td align="left">crid</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-10717</td>
            <td align="left">teamspeak</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-10743</td>
            <td align="left">elsi</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-10769</td>
            <td align="left">dtmi</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-10840</td>
            <td align="left">ftp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-10902</td>
            <td align="left">ms-drive-to</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-10903</td>
            <td align="left">upt</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-10911</td>
            <td align="left">appdata</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-11039</td>
            <td align="left">callto</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-11131</td>
            <td align="left">ms-remotedesktop-launch</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-11139</td>
            <td align="left">dweb</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-11264</td>
            <td align="left">lastfm</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-11307</td>
            <td align="left">xmlrpc.beep</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-11342</td>
            <td align="left">ms-whiteboard</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-11465</td>
            <td align="left">first-run-pen-experience</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-11473</td>
            <td align="left">webcal</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-11553</td>
            <td align="left">adt</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-11566</td>
            <td align="left">vemmi</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-11590</td>
            <td align="left">cvs</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-11629</td>
            <td align="left">taler</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-11688</td>
            <td align="left">ms-inputapp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-11864</td>
            <td align="left">git</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-11893</td>
            <td align="left">irc</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-11936</td>
            <td align="left">ms-settings-workplace</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12171</td>
            <td align="left">blob</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12173</td>
            <td align="left">modem</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12188</td>
            <td align="left">msnim</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12268</td>
            <td align="left">iris.lwz</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12302</td>
            <td align="left">ms-sttoverlay</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12321</td>
            <td align="left">lbry</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12334</td>
            <td align="left">rmi</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12346</td>
            <td align="left">ms-restoretabcompanion</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12482</td>
            <td align="left">ms-useractivityset</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12485</td>
            <td align="left">dab</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12491</td>
            <td align="left">about</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12500</td>
            <td align="left">embedded</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12501</td>
            <td align="left">rtmp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12526</td>
            <td align="left">ircs</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12558</td>
            <td align="left">mid</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12573</td>
            <td align="left">sip</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12593</td>
            <td align="left">ipns</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12666</td>
            <td align="left">dvx</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12706</td>
            <td align="left">android</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12747</td>
            <td align="left">wtai</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12831</td>
            <td align="left">ms-search-repair</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12838</td>
            <td align="left">microsoft.windows.camera.multipicker</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12857</td>
            <td align="left">ms-settings-screenrotation</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12879</td>
            <td align="left">rtspu</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12914</td>
            <td align="left">ms-screenclip</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12943</td>
            <td align="left">aaa</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12954</td>
            <td align="left">xmpp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-12988</td>
            <td align="left">soldat</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13041</td>
            <td align="left">lorawan</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13054</td>
            <td align="left">beshare</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13077</td>
            <td align="left">sips</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13081</td>
            <td align="left">iris.xpc</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13113</td>
            <td align="left">simpleledger</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13127</td>
            <td align="left">vsls</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13207</td>
            <td align="left">matrix</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13307</td>
            <td align="left">otpauth</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13336</td>
            <td align="left">cid</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13352</td>
            <td align="left">service</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13417</td>
            <td align="left">h323</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13438</td>
            <td align="left">ms-settings-connectabledevices</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13452</td>
            <td align="left">payto</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13463</td>
            <td align="left">ms-settings-displays-topology</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13505</td>
            <td align="left">lvlt</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13596</td>
            <td align="left">ms-walk-to</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13672</td>
            <td align="left">dns</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13730</td>
            <td align="left">quic-transport</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13762</td>
            <td align="left">paparazzi</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13766</td>
            <td align="left">ms-people</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13889</td>
            <td align="left">xri</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13894</td>
            <td align="left">onenote-cmd</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-13934</td>
            <td align="left">dav</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-14003</td>
            <td align="left">content-type</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-14068</td>
            <td align="left">sms</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-14119</td>
            <td align="left">ms-publisher</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-14197</td>
            <td align="left">xfire</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-14250</td>
            <td align="left">secondlife</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-14260</td>
            <td align="left">ark</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-14301</td>
            <td align="left">iax</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-14312</td>
            <td align="left">msrp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-14475</td>
            <td align="left">swid</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-14590</td>
            <td align="left">tn3270</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-14596</td>
            <td align="left">ms-appinstaller</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-14627</td>
            <td align="left">stuns</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-14688</td>
            <td align="left">dpp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-14701</td>
            <td align="left">ms-secondary-screen-controller</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-14764</td>
            <td align="left">browserext</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-14820</td>
            <td align="left">chrome</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-14878</td>
            <td align="left">pkcs11</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-15066</td>
            <td align="left">dlna-playcontainer</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-15155</td>
            <td align="left">spiffe</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-15207</td>
            <td align="left">uuid-in-package</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-15261</td>
            <td align="left">ms-settings-proximity</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-15356</td>
            <td align="left">things</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-15377</td>
            <td align="left">ms-gamebarservices</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-15379</td>
            <td align="left">shc</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-15547</td>
            <td align="left">ipp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-15552</td>
            <td align="left">mailto</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-15558</td>
            <td align="left">ms-browser-extension</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-15838</td>
            <td align="left">shttp (OBSOLETE)</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-15842</td>
            <td align="left">acct</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-15849</td>
            <td align="left">w3</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-15869</td>
            <td align="left">wais</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-15928</td>
            <td align="left">qb</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-15947</td>
            <td align="left">ms-search</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-16043</td>
            <td align="left">ms-settings-airplanemode</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-16045</td>
            <td align="left">jar</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-16069</td>
            <td align="left">tel</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-16074</td>
            <td align="left">dntp</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-16160</td>
            <td align="left">chrome-extension</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-16193</td>
            <td align="left">cast</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-16326</td>
            <td align="left">view-source</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-16356</td>
            <td align="left">im</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-16358</td>
            <td align="left">resource</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-16378</td>
            <td align="left">ms-calculator</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-16380</td>
            <td align="left">news</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-16415</td>
            <td align="left">wcr</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-16523</td>
            <td align="left">casts</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-16689</td>
            <td align="left">ms-access</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-16723</td>
            <td align="left">grd</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-16750</td>
            <td align="left">rsync</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-16773</td>
            <td align="left">lpa</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-16850</td>
            <td align="left">afs</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-16874</td>
            <td align="left">bb</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-16884</td>
            <td align="left">ham</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-16926</td>
            <td align="left">info</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-16972</td>
            <td align="left">ms-meetnow</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-17117</td>
            <td align="left">ms-project</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-17172</td>
            <td align="left">ethereum</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-17225</td>
            <td align="left">thismessage</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-17226</td>
            <td align="left">vnc</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-17232</td>
            <td align="left">snews</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-17245</td>
            <td align="left">sieve</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-17269</td>
            <td align="left">feedready</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-17271</td>
            <td align="left">mt</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-17288</td>
            <td align="left">ws</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-17338</td>
            <td align="left">ms-transit-to</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-17346</td>
            <td align="left">ventrilo</td>
            <td align="left">[RFCthis]</td>
          </tr>
          <tr>
            <td align="left">-17357</td>
            <td align="left">iris</td>
            <td align="left">[RFCthis]</td>
          </tr>
        </tbody>
      </table>
      <t>The assignments from this table can be extracted from the XML form of
this document (when stored in a file "this.xml") into CSV form
<xref target="RFC4180"/> using this short Ruby program:</t>
      <sourcecode type="ruby"><![CDATA[
require 'rexml/document'; include REXML
XPath.each(Document.new(File.read("this.xml")),"//tr") {|row|
  puts XPath.each(row,"td").map{|d|d.text()}[0..1].join(",")}
]]></sourcecode>
    </section>
    <section anchor="the-small-print">
      <name>The Small Print</name>
      <t>This appendix lists a few corner cases of URI semantics that
implementers of CRIs need to be aware of, but that are not
representative of the normal operation of CRIs.</t>
      <ol spacing="normal" type="SP%d." group="SP"><li anchor="sp-initial-empty">Initial (Lone/Leading) Empty Path Segments:</li>
      </ol>
      <ul spacing="normal">
        <li>
          <em>Lone empty path segments:</em>
  As per <xref target="RFC3986"/>, <tt>s://x</tt> is distinct from <tt>s://x/</tt> -- i.e., a URI
  with an empty path is different from one with a lone empty path segment.
  However, in HTTP, CoAP, they are implicitly aliased (for CoAP, in
  item 8 of <xref section="6.4" sectionFormat="of" target="RFC7252"/>).
  As per item 7 of <xref section="6.5" sectionFormat="of" target="RFC7252"/>, recomposition of a URI
  without Uri-Path Options from the other URI-related CoAP Options
  produces <tt>s://x/</tt>, not <tt>s://x</tt> -- CoAP prefers the lone empty path
  segment form.
  <cref anchor="leps-tbd">TBD: add similar text for HTTP, if that can be made.</cref>
  After discussing HTTP semantics, <xref section="6.2.3" sectionFormat="of" target="RFC3986"/> even states:</li>
      </ul>
      <blockquote>
        <t>In general, a URI that uses the generic syntax for authority with an
  empty path should be normalized to a path of "/".</t>
      </blockquote>
      <ul spacing="normal">
        <li>
          <em>Leading empty path segments without authority</em>:
  Somewhat related, note also that URIs and URI references that do not
  carry an authority cannot represent initial empty path segments
  (i.e., that are followed by further path segments): <tt>s://x//foo</tt>
  works, but in a <tt>s://foo</tt> URI or an (absolute-path) URI reference of
  the form <tt>//foo</tt> the double slash would be mis-parsed as leading in
  to an authority.</li>
      </ul>
      <ol spacing="normal" type="SP%d." group="SP"><li anchor="sp-constraints">
          <t>Constraints (<xref target="constraints"/>) of CRIs/basic CRIs  </t>
          <t>
While most URIs in everyday use can be converted to CRIs and back to URIs
matching the input after syntax-based normalization of the URI,
these URIs illustrate the constraints by example:  </t>
          <ul spacing="normal">
            <li>
              <t><tt>https://host%ffname</tt>, <tt>https://example.com/x?data=%ff</tt>      </t>
              <t>
All URI components must, after percent decoding, be valid UTF-8 encoded text.
Bytes that are not valid UTF-8 show up, for example, in BitTorrent web seeds.
<!-- <https://www.bittorrent.org/beps/bep_0017.html>, not sure this warrants an informative reference -->
              </t>
            </li>
            <li>
              <t><tt>https://example.com/component%3bone;component%3btwo</tt>, <tt>http://example.com/component%3dequals</tt>      </t>
              <t>
While delimiters can be used in an escaped and unescaped form in URIs with generally distinct meanings,
basic CRIs (i.e., without percent-encoded text <xref target="pet"/>) only support one escapable delimiter character per component,
which is the delimiter by which the component is split up in the CRI.      </t>
              <t>
Note that the separators <tt>.</tt> (for authority parts), <tt>/</tt> (for paths), <tt>&amp;</tt> (for query parameters)
are special in that they are syntactic delimiters of their respective components in CRIs.
Thus, the following examples <em>are</em> convertible to basic CRIs:      </t>
              <t><tt>https://interior%2edot/</tt>      </t>
              <t><tt>https://example.com/path%2fcomponent/second-component</tt>      </t>
              <t><tt>https://example.com/x?ampersand=%26&amp;questionmark=?</tt></t>
            </li>
            <li>
              <t><tt>https://alice@example.com/</tt>      </t>
              <t>
The user information can be expressed in CRIs if the "userinfo"
feature is present.  The URI <tt>https://@example.com</tt> is
represented as <tt>[-4, [false, "", "example", "com"]]</tt>; the <tt>false</tt>
serves as a marker that the next element is the userinfo.      </t>
              <t>
The rules do not cater for unencoded ":" in userinfo, which is
commonly considered a deprecated inclusion of a literal password.</t>
            </li>
          </ul>
        </li>
      </ol>
    </section>
    <section removeInRFC="true" anchor="change-log">
      <name>Change Log</name>
      <t>Changes from -08 to -09</t>
      <ul spacing="normal">
        <li>Identify more esoteric features with a CDDL ".feature".</li>
        <li>Clarify that well-formedness requires removing trailing nulls.</li>
        <li>Fragments can contain PET.</li>
        <li>Percent-encoded text in PET is treated as byte strings.</li>
        <li>
          <t>URIs with an authority but a completely empty path (e.g.,
<tt>http://example.com</tt>): CRIs with an authority component no longer
always produce at least a slash in the path component.  </t>
          <t>
For generic schemes, the conversion of <tt>scheme://example.com</tt> to a
CRI is now possible
because CRI produces a URI with an authority not followed by a slash
following the updated rules of <xref target="cri-to-uri"/>.
Schemes like http and coap do not distinguish between the empty path
and the path containing a single slash when an authority is set (as
recommended in <xref target="RFC3986"/>).
For these schemes, that equivalence allows implementations to
convert the just-a-slash URI to a CRI with a zero length path array
(which, however, when converted back, does not produce a slash after
the authority).  </t>
          <t>
(Add an appendix "the small print" for more detailed discussion of
pesky corner cases like this.)</t>
        </li>
      </ul>
      <t>Changes from -07 to -08</t>
      <ul spacing="normal">
        <li>Fix the encoding of NOAUTH-NOSLASH / NOAUTH-LEADINGSLASH</li>
        <li>Add URN and DID schemes, add example.</li>
        <li>Add PET</li>
        <li>Remove hopeless attempt to encode "remote trailing nulls" rule in
CDDL (which is not a transformation language).</li>
      </ul>
      <t>Changes from -06 to -07</t>
      <ul spacing="normal">
        <li>More explicitly discuss constraints (<xref target="constraints"/>), add examples (<xref target="sp-constraints"/>).</li>
        <li>Make CDDL more explicit about special simple values.</li>
        <li>Lots of gratuitous changes from XML2RFC redefinition of <tt>&lt;tt&gt;</tt>
semantics.</li>
      </ul>
      <t>Changes from -05 to -06</t>
      <ul spacing="normal">
        <li>
          <t>rework authority:
          </t>
          <ul spacing="normal">
            <li>split reg-names at dots;</li>
            <li>add optional zone identifiers <xref target="RFC6874"/> to IP addresses</li>
          </ul>
        </li>
      </ul>
      <t>Changes from -04 to -05</t>
      <ul spacing="normal">
        <li>Simplify CBOR structure.</li>
        <li>Add implementation status section.</li>
      </ul>
      <t>Changes from -03 to -04:</t>
      <ul spacing="normal">
        <li>Minor editorial improvements.</li>
        <li>Renamed path.type/path-type to discard.</li>
        <li>Renamed option to section, substructured into items.</li>
        <li>Simplified the table "resolution-variables".</li>
        <li>Use the CBOR structure inspired by Jim Schaad's proposals.</li>
      </ul>
      <t>Changes from -02 to -03:</t>
      <ul spacing="normal">
        <li>Expanded the set of supported schemes (#3).</li>
        <li>Specified creation, normalization and comparison (#9).</li>
        <li>Clarified the default value of the <tt>path.type</tt> option (#33).</li>
        <li>Removed the <tt>append-relation</tt> path.type option (#41).</li>
        <li>Renumbered the remaining path.types.</li>
        <li>Renumbered the option numbers.</li>
        <li>Restructured the document.</li>
        <li>Minor editorial improvements.</li>
      </ul>
      <t>Changes from -01 to -02:</t>
      <ul spacing="normal">
        <li>Changed the syntax of schemes to exclude upper case characters (#13).</li>
        <li>Minor editorial improvements (#34 #37).</li>
      </ul>
      <t>Changes from -00 to -01:</t>
      <ul spacing="normal">
        <li>None.</li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>CRIs were developed by <contact fullname="Klaus Hartke"/> for use in the Constrained
RESTful Application Language (CoRAL).
The current author team is completing this work with a view to achieve
good integration with the potential use cases, both inside and outside of CoRAL.</t>
      <t>Thanks to
<contact fullname="Christian Amsüss"/>,
<contact fullname="Thomas Fossati"/>,
<contact fullname="Ari Keränen"/>,
<contact fullname="Jim Schaad"/>,
<contact fullname="Dave Thaler"/> and
<contact fullname="Marco Tiloca"/>
for helpful comments and discussions that have shaped the
document.</t>
      <!--  LocalWords:  CRI normalizations dereferencing dereference CRIs
 -->
<!--  LocalWords:  untrusted subcomponent
 -->

</section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="K." surname="Hartke" fullname="Klaus Hartke">
        <organization>Ericsson</organization>
        <address>
          <postal>
            <street>Torshamnsgatan 23</street>
            <city>Stockholm</city>
            <code>16483</code>
            <country>Sweden</country>
          </postal>
          <email>klaus.hartke@ericsson.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9V925LbSJbYO74CS0VvV2kIineyStPTU11Sb5dXLcmq0s6u
ZXkKJEASLRDgIMG6dLUc/gVH+AP84M/wk/dP/CU+t0wkAGZJM7YjbO3GdJFM
JDJPnjz3SxAEnirDLPpzmOZZfOqXxT72kl1Bf6ly2O+f9IdelC+zcAs/R0W4
KoMkLlfBMi/iYFPEqyANy1iV3jIsT31VRp7aL7aJUkmelfc7eOji5dWP3jLP
VJypvZJ3pGG2PvXjzNslp57vl/ny1P8Wf/mWP0XxrtzAVyP8rO638CJljVB5
Uda+KpMyhXedw2vKIkyyOPLfxSrfF8vYv4jirExWSVwo73aNg9699P+UF5+S
bO3/Q5Hvd54X7stNXpx6AUzOez0PC1XGmf9DXmzDLIPv8wIefp8lNzBRUv7r
fyv9H4p4C0Ou/t0FrglWFAMM3uaqXIXLjT8a9cfjPvyyTMr7UxmMH/MI5n8R
DOejyQl93mdlASP+IcZX3cNXuw0dx+/GJ8F4OAiGg3kwHZ0MB/BTvA2T9NRf
hov8j+WvSQ9WBd8WOW4/jpIyL7zATzIAzU89/4ek+LTJ01/Nrn6Ks0/2t7Sn
H4twn23yVVz4lxdX8G24WBTxzYEf5OUbmKW3kFn+CMDorczIXhRbwHi3iRM6
EqVifzYxu/92Oh6eTL41wHkRFlvAxKg8BA8P0acsksW+pDPi7f1jz/8pLMpP
sdncP6bhXlVf0t5eFslSqTyz1nSVF2oTbjO1DgH3/eHIrOISMA/3tK3WOZiO
54SEZlWXt3FE5yjA+IRv7W3orX+M5XW9Zb71vJs428eI32vEsgZ6vry8Wu1T
/2V2kxR5BqhRKhgppwu36494z+R410m52S/4++B2/Qwvnucl2QqRswSMxJe8
+/F8NhzO4YYB3PjzyWDQh+Mqy53+fTLEWUL5PB+MB6f+vsjk43AOj9/GiyBN
Mrwe8vV8CLOk4S0O+9PovPfu5XmwKbfpZBgM+4PZYDgYn3pZYy2jk/kU507M
x9mpn+iP0/lsfOr/CmguK5ucTIB+LDdwSRAOF2evz3rwcCBf4aQ/nL8dTvEP
3w9gqjALkazQ5+9OeTvDKT4bvOgtw2IHII2LYAo4FBSrJb5xkSh+Kfwhe5si
hJZRlMJnuNx07DRlGRZrRBeEnjp99uz29ra35wF4Ks+IDMD7n8lTg1Gv3+s/
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
j2w8B2Yy/eKQQhq5mof/L/ai2uaW+gAA

-->

</rfc>
