<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.24 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-intarea-proxy-config-04" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title abbrev="Proxy Configuration PvDs">Communicating Proxy Configurations in Provisioning Domains</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-intarea-proxy-config-04"/>
    <author initials="T." surname="Pauly" fullname="Tommy Pauly">
      <organization>Apple, Inc.</organization>
      <address>
        <email>tpauly@apple.com</email>
      </address>
    </author>
    <author initials="D." surname="Damjanovic" fullname="Dragana Damjanovic">
      <organization>Microsoft</organization>
      <address>
        <email>ddamjanovic@microsoft.com</email>
      </address>
    </author>
    <author initials="Y." surname="Rosomakho" fullname="Yaroslav Rosomakho">
      <organization>Zscaler</organization>
      <address>
        <email>yrosomakho@zscaler.com</email>
      </address>
    </author>
    <date year="2025" month="March" day="03"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 31?>

<t>This document defines a mechanism for accessing provisioning domain information
associated with a proxy, such as other proxy URIs that support different protocols
and a list of DNS zones that are accessible via a proxy.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
  <eref target="https://github.com/tfpauly/privacy-proxy"/>.</t>
    </note>
  </front>
  <middle>
    <?line 37?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>HTTP proxies that use the CONNECT method <xref section="9.3.6" sectionFormat="of" target="HTTP"/>
(often referred to as "forward" proxies) allow clients to open connections to
hosts via a proxy. These typically allow for TCP stream proxying, but can also support
UDP proxying <xref target="CONNECT-UDP"/> and IP packet proxying
<xref target="CONNECT-IP"/>. Such proxies are not just defined as
hostnames and ports, but can use URI templates <xref target="URITEMPLATE"/>.</t>
      <t>In order to make use of multiple related proxies, clients need a way to understand
which proxies are associated with one another.</t>
      <t>Client can also benefit from learning about additional information associated with
the proxy to optimize their proxy usage, such knowing that a proxy is configured
to only allow access to a limited set of destinations.</t>
      <t>These improvements to client behavior can be achieved through the use of
Provisioning Domains. Provisioning Domains (PvDs) are defined in <xref target="PVD"/>
as consistent sets of network configuration information, which can include proxy
configuration details <xref section="2" sectionFormat="of" target="PVD"/>. <xref target="PVDDATA"/> defines a JSON
<xref target="JSON"/> format for describing Provisioning Domain Additional Information,
which is an extensible dictionary of properties of the Provisioning Domain.</t>
      <t>This document defines several mechanisms to use PvDs to help clients understand how
to use proxies:</t>
      <ol spacing="normal" type="1"><li>
          <t>A way to fetch PvD Additional Information associated with a known proxy URI (<xref target="proxy-pvd"/>)</t>
        </li>
        <li>
          <t>A way to list one or more proxy URIs in a PvD, allowing clients to
learn about other proxy options given a known proxy (<xref target="proxy-enumeration"/>).</t>
        </li>
        <li>
          <t>A way to define a limited set of destinations that are accessible through the
proxy (<xref target="destinations"/>).</t>
        </li>
      </ol>
      <t>Additionally, this document partly describes how these mechanisms might be used
to discover proxies associated with a network (<xref target="network-proxies"/>).</t>
      <t>Using this mechanism a client can learn that a legacy insecure HTTP proxy that
the client is configured with is also accessible using HTTPS. In this way,
clients can upgrade to a more secure connection to the proxy.</t>
      <section anchor="background">
        <name>Background</name>
        <t>Other non-standard mechanisms for proxy configuration and discovery have been
used historically, some of which are described in <xref target="RFC3040"/>.</t>
        <t>Proxy Auto Configuration (PAC) files <xref section="6.2" sectionFormat="of" target="RFC3040"/> are Javascript
scripts that take URLs as input and provide an output of a proxy configuration
to use.</t>
        <t>Web Proxy Auto-Discovery Protocol (WPAD) <xref section="6.4" sectionFormat="of" target="RFC3040"/> allows
networks to advertise proxies to use by advertising a PAC file. This solution
squats on DHCP option 252.</t>
        <t>These common (but non-standard) mechanisms only support defining proxies by
hostname and port, and do not support configuring a full URI template
<xref target="URITEMPLATE"/>.</t>
        <t>The mechanisms defined in this document are intended to offer a standard
alternative that works for URI-based proxies and avoids dependencies
on executing Javascript scripts, which are prone to implementation-specific
inconsistencies and can open up security vulnerabilities.</t>
      </section>
      <section anchor="requirements">
        <name>Requirements</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?>
        </t>
      </section>
    </section>
    <section anchor="proxy-pvd">
      <name>Fetching PvD Additional Information for proxies</name>
      <t>This document defines a way to fetch PvD Additional Information associated with
a proxy. This PvD describes the properties of the network accessible through the proxy.</t>
      <t>In order to fetch PvD Additional Information associated with a proxy, a client
issues an HTTP GET request for the well-known PvD URI (".well-known/pvd") <xref target="PVDDATA"/>
and the host authority of the proxy. This is applicable for both proxies that are identified
by a host and port only (such as SOCKS proxies and HTTP CONNECT proxies) and proxies
that are identified by a URI or URI template.</t>
      <t>For example, a client would issue the following request for the PvD associated
with "https://proxy.example.org/masque{?target_host,target_port}":</t>
      <artwork><![CDATA[
:method = GET
:scheme = https
:authority = proxy.example.org
:path = /.well-known/pvd
accept = application/pvd+json
]]></artwork>
      <t>For a HTTP CONNECT proxy on "proxy.example.org:8080", the client would send the following
request:</t>
      <artwork><![CDATA[
:method = GET
:scheme = https
:authority = proxy.example.org:8080
:path = /.well-known/pvd
accept = application/pvd+json
]]></artwork>
      <t>Note that all proxies that are colocated on the same host and port share the same PvD
Additional Information. Proxy deployments that need separate PvD configuration properties
SHOULD use different hosts.</t>
      <t>PvD Additional Information is required to contain the "identifier", "expires", and
"prefixes" keys. For proxy PvDs as defined in this document, the "identifier" MUST
match the hostname of the HTTP proxy. The "prefixes" array SHOULD be empty by default.</t>
    </section>
    <section anchor="proxy-enumeration">
      <name>Enumerating proxies within a PvD</name>
      <t>This document defines a new PvD Additional Information key, <tt>proxies</tt>, that
is an array of dictionaries, where each dictionary in the array defines
a single proxy that is available as part of the PvD (see <xref target="proxies-key-iana"/>).
Each proxy is defined by a proxy protocol, a proxy location (i.e., a hostname and port or a URI template
<xref target="URITEMPLATE"/>), along with potentially other keys.</t>
      <t>This document defines two mandatory keys for the sub-dictionaries in the
<tt>proxies</tt> array, <tt>protocol</tt> and <tt>proxy</tt>. There are also optional keys, including
<tt>alpn</tt>, <tt>mandatory</tt>, and destination accessibility keys defined in <xref target="destinations"/>.
Other optional keys can be added to the dictionary to further define or restrict the
use of a proxy.</t>
      <table>
        <thead>
          <tr>
            <th align="left">JSON Key</th>
            <th align="left">Optional</th>
            <th align="left">Description</th>
            <th align="left">Type</th>
            <th align="left">Example</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">protocol</td>
            <td align="left">No</td>
            <td align="left">The protocol used to communicate with the proxy</td>
            <td align="left">String</td>
            <td align="left">"connect-udp"</td>
          </tr>
          <tr>
            <td align="left">proxy</td>
            <td align="left">No</td>
            <td align="left">String containing the URI template or hostname and port of the proxy, depending on the format defined by the protocol</td>
            <td align="left">String</td>
            <td align="left">"https://proxy.example.org:4443/masque{?target_host,target_port}"</td>
          </tr>
          <tr>
            <td align="left">alpn</td>
            <td align="left">Yes</td>
            <td align="left">An array of Application-Layer Protocol Negotiation protocol identifiers</td>
            <td align="left">Array of Strings</td>
            <td align="left">["h3","h2"]</td>
          </tr>
          <tr>
            <td align="left">mandatory</td>
            <td align="left">Yes</td>
            <td align="left">An array of optional keys that client must understand and process to use this proxy</td>
            <td align="left">Array of Strings</td>
            <td align="left">["matchDomains"]</td>
          </tr>
        </tbody>
      </table>
      <t>The values for the <tt>protocol</tt> key are defined in the proxy protocol
registry (<xref target="proxy-protocol-iana"/>), with the initial contents provided below.
For consistency, any new proxy types that use HTTP Upgrade Tokens (and use
the <tt>:protocol</tt> pseudo-header) SHOULD define the <tt>protocol</tt> value to match
the Upgrade Token / <tt>:protocol</tt> value.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Proxy Protocol</th>
            <th align="left">Proxy Location Format</th>
            <th align="left">Reference</th>
            <th align="left">Notes</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">socks5</td>
            <td align="left">hostname:port</td>
            <td align="left">
              <xref target="SOCKSv5"/></td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">http-connect</td>
            <td align="left">hostname:port</td>
            <td align="left">
              <xref section="9.3.6" sectionFormat="of" target="HTTP"/></td>
            <td align="left">Standard CONNECT method, using unencrypted HTTP to the proxy</td>
          </tr>
          <tr>
            <td align="left">https-connect</td>
            <td align="left">hostname:port</td>
            <td align="left">
              <xref section="9.3.6" sectionFormat="of" target="HTTP"/></td>
            <td align="left">Standard CONNECT method, using TLS-protected HTTP to the proxy</td>
          </tr>
          <tr>
            <td align="left">connect-udp</td>
            <td align="left">URI template</td>
            <td align="left">
              <xref target="CONNECT-UDP"/></td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">connect-ip</td>
            <td align="left">URI template</td>
            <td align="left">
              <xref target="CONNECT-IP"/></td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">connect-tcp</td>
            <td align="left">URI template</td>
            <td align="left">
              <xref target="CONNECT-TCP"/></td>
            <td align="left"> </td>
          </tr>
        </tbody>
      </table>
      <t>The value of <tt>proxy</tt> depends on the Proxy Location Format defined by proxy protocol.
The types defined here either use a hostname and port, or a full URI template.</t>
      <t>If the <tt>alpn</tt> key is present, it provides a hint for the Application-Layer Protocol Negotiation
(ALPN) <xref target="ALPN"/> protocol identifiers associated with this server. For HTTP proxies,
this can indicate if the proxy supports HTTP/3, HTTP/2, etc.</t>
      <t>The value of the <tt>mandatory</tt> key is a list of keys that the client must understand and process to be
able to use the proxy. A client that does not understand a key from the list or cannot fully process
the value of a key from the list MUST ignore the entire proxy definition. The list can contain
only keys that are registered in an IANA registry, defined in <xref target="proxy-info-iana"/> and that are marked
as optional.  The <tt>mandatory</tt> list MUST NOT include any entries that are not present in the sub-dictionary.</t>
      <t>When a PvD that contains the <tt>proxies</tt> key is fetched from a known proxy
using the method described in <xref target="proxy-pvd"/> the proxies list describes
equivalent proxies (potentially supporting other protocols) that can be used
in addition to the known proxy.</t>
      <t>Such cases are useful for informing clients of related proxies as a discovery
method, with the assumption that the client already is aware of one proxy.
Many historical methods of configuring a proxy only allow configuring
a single FQDN hostname for the proxy. A client can attempt to fetch the
PvD information from the well-known URI to learn the list of complete
URIs that support non-default protocols, such as <xref target="CONNECT-UDP"/> and
<xref target="CONNECT-IP"/>.</t>
      <section anchor="example">
        <name>Example</name>
        <t>Given a known HTTP CONNECT proxy FQDN, "proxy.example.org", a client could
request PvD Additional Information with the following request:</t>
        <artwork><![CDATA[
:method = GET
:scheme = https
:authority = proxy.example.org
:path = /.well-known/pvd
accept = application/pvd+json
]]></artwork>
        <t>If the proxy has a PvD definition for this FQDN, it would return the following
response to indicate a PvD that has two related proxy URIs.</t>
        <artwork><![CDATA[
:status = 200
content-type = application/pvd+json
content-length = 222

{
  "identifier": "proxy.example.org.",
  "expires": "2023-06-23T06:00:00Z",
  "prefixes": [],
  "proxies": [
    {
      "protocol": "http-connect",
      "proxy": "proxy.example.org:80"
    },
    {
      "protocol": "connect-udp",
      "proxy": "https://proxy.example.org/masque{?target_host,target_port}"
    }
  ]
}
]]></artwork>
        <t>The client would learn the URI template of the proxy that supports UDP using <xref target="CONNECT-UDP"/>,
at "https://proxy.example.org/masque{?target_host,target_port}".</t>
      </section>
    </section>
    <section anchor="destinations">
      <name>Destination accessibility information for proxies</name>
      <t>Destination accessibility information is used when only a subset of destinations is reachable through
a proxy. Destination restrictions are often used in VPN tunnel configurations such as split
DNS in IKEv2 <xref target="IKEV2SPLIT"/>.</t>
      <t>PvD Additional Information can be used to indicate that a proxy PvD only allows access to a limited
set of destinations.</t>
      <t>This document defines two optional keys for subdictionaries in the <tt>proxies</tt>
array that are used to signal information about destinations available through the proxy.</t>
      <table>
        <thead>
          <tr>
            <th align="left">JSON Key</th>
            <th align="left">Optional</th>
            <th align="left">Description</th>
            <th align="left">Type</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">match</td>
            <td align="left">Yes</td>
            <td align="left">An array of destination objects defining targets accessible over this proxy</td>
            <td align="left">Array of Objects</td>
          </tr>
          <tr>
            <td align="left">exclude</td>
            <td align="left">Yes</td>
            <td align="left">An array of destination objects defining targets that cannot be accessed over this proxy</td>
            <td align="left">Array of Objects</td>
          </tr>
        </tbody>
      </table>
      <t>This document defined three keys for destination objects. A destination object cannot
be empty and MUST contain at least one valid key. Each provided key MUST correspond to an array with at least one entry.</t>
      <table>
        <thead>
          <tr>
            <th align="left">JSON Key</th>
            <th align="left">Description</th>
            <th align="left">Type</th>
            <th align="left">Example</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">domains</td>
            <td align="left">An array of FQDNs and wildcard DNS domains</td>
            <td align="left">Array of Strings</td>
            <td align="left">["www.example.com", "*.internal.example.com"]</td>
          </tr>
          <tr>
            <td align="left">subnets</td>
            <td align="left">An array of IPv4 and IPv6 addresses and subnets</td>
            <td align="left">Array of Strings</td>
            <td align="left">["2001:DB8::1", "192.168.1.0/24"]</td>
          </tr>
          <tr>
            <td align="left">ports</td>
            <td align="left">An array of TCP and UDP port ranges</td>
            <td align="left">Array of Strings</td>
            <td align="left">["80", "443", "1024-65535"]</td>
          </tr>
        </tbody>
      </table>
      <t>When present in a PvD Additional Information dictionary that is retrieved for a proxy
as described in <xref target="proxy-pvd"/>, entries in the <tt>domains</tt> array of a <tt>match</tt> object indicate
specific FQDNs and zones that are accessible using the proxy. If a hostname does not match any entry,
then a client SHOULD assume that the hostname will not be accessible through the proxy.
If a hostname is included in the <tt>domains</tt> array of an <tt>exclude</tt> object, then the client SHOULD NOT
access it through the proxy. The <tt>domains</tt> array can be present in an <tt>exclude</tt> object even if <tt>domains</tt>
is omitted from all <tt>match</tt> objects or <tt>match</tt> key is not present in the <tt>proxies</tt> array subdictionary.
When this is the case, the client assumes that all domains except the domains
listed in the <tt>domains</tt> from <tt>exclude</tt> objects are accessible through the proxy. If <tt>domains</tt> arrays are
specified in <tt>match</tt> and <tt>exclude</tt> objects, <tt>domains</tt> arrays from <tt>exclude</tt> objects SHOULD
list more specific domains within entries in <tt>domains</tt> arrays from <tt>match</tt> objects.</t>
      <t>A wildcard prefix (<tt>*.</tt>) is used to indicate matching entire domains or subdomains instead of specific hostnames. Note
that this can be used to match multiple levels of subdomains. For example "<em>.example.com"
matches "internal.example.com" as well as "www.public.example.com".
Entries that include the wildcard prefix also SHOULD be treated as if they match
an FQDN that only contains the string after the prefix, with no subdomain. So,
an entry "</em>.example.com" in the <tt>domains</tt> array of a <tt>match</tt> object would match the FQDN "example.com",
unless "example.com" was specifically included in the <tt>domains</tt> array of an <tt>exclude</tt> object. This is
done to prevent commonly needing to include both "*.example.com" and "example.com"
in the <tt>domains</tt> array of a <tt>match</tt> object.</t>
      <t>Entries in <tt>subnets</tt> array of a <tt>match</tt> object correspond to IP addresses and subnets that are available through the
proxy, while entries in <tt>subnets</tt> array of an <tt>exclude</tt> object define IP addresses and subnets that SHOULD NOT be used
with the proxy. Subnet-based destination information SHOULD only be used when
applications are communicating with destinations identified by only an IP address and not a hostname.
If <tt>subnets</tt> arrays are specified in <tt>match</tt> and <tt>exclude</tt> objects, <tt>subnets</tt> arrays from <tt>exclude</tt> objects SHOULD
list more specific subnets within entries in <tt>subnets</tt> arrays from <tt>match</tt> objects.</t>
      <t>Port specification, if provided, refines the criteria for domain or subnet matching.
For example, <tt>ports</tt> array of ["80", "443"] together with <tt>domains</tt> array of ["www.example.com"]
in a <tt>match</tt> object specifies that only ports 80 and 443 of "www.example.com"
domain are accessible through the proxy. If <tt>ports</tt> key is not present in a <tt>match</tt> or <tt>exclude</tt> object,
all ports are assumed to match. Comma-separated port list may contain individual port numbers (such as "80")
or inclusive ranges of ports. For example "1024-2048" matches all ports from 1024 to 2048, including the 1024 and 1028.</t>
      <t>Entries listed in a <tt>match</tt> object MUST NOT expand the set of destinations that a client is
willing to send to a particular proxy. The list can only narrow the list of destinations
that the client is willing to send through the proxy. For example, if the client
has a local policy to only send requests for "*.example.com" to a proxy
"proxy.example.com", and <tt>domains</tt> array of a <tt>match</tt> object contains "internal.example.com" and
"other.company.com", the client would end up only proxying "internal.example.com"
through the proxy.</t>
      <section anchor="example-1">
        <name>Example</name>
        <t>Given a proxy URI template "https://proxy.example.org/masque{?target_host,target_port}",
which in this case is for UDP proxying, the client could request PvD additional information
with the following request:</t>
        <artwork><![CDATA[
:method = GET
:scheme = https
:authority = proxy.example.org
:path = /.well-known/pvd
accept = application/pvd+json
]]></artwork>
        <t>If the proxy has a PvD definition for this proxy, it could return the following
response to indicate a PvD that has one accessible zone, "*.internal.example.org".</t>
        <artwork><![CDATA[
:status = 200
content-type = application/pvd+json
content-length = 135

{
  "identifier": "proxy.example.org.",
  "expires": "2023-06-23T06:00:00Z",
  "prefixes": [],
  "proxies": [
    {
      "protocol": "http-connect",
      "proxy": "proxy.example.org:80"
    },
    {
      "protocol": "connect-udp",
      "proxy": "https://proxy.example.org/masque{?target_host,target_port}",
      "match": [{
        domains: [ "*.internal.example.org" ]
      }]
    }
  ]
}
]]></artwork>
        <t>The client could then choose to use this proxy only for accessing names that fall
within the "*.internal.example.org" zone.</t>
      </section>
    </section>
    <section anchor="network-proxies">
      <name>Discovering proxies from network PvDs</name>
      <t><xref target="PVDDATA"/> defines how PvD Additional Information is discovered based
on network advertisements using Router Advertisements <xref target="RFC4861"/>. A network
defining its configuration via PvD information can include the <tt>proxies</tt>
key (<xref target="proxy-enumeration"/>) to inform clients of a list of proxies available
on the network.</t>
      <t>This association of proxies with the network's PvD can be used as a mechanism
to discover proxies, as an alternative to PAC files. However, client systems MUST
NOT automatically send traffic over proxies advertised in this way without
explicit configuration, policy, or user permission. For example, a client
can use this mechanism to choose between known proxies, such as if the client was
already proxying traffic and has multiple options to choose between.</t>
      <t>Further security and experience considerations are needed for these cases.</t>
    </section>
    <section anchor="sec-considerations">
      <name>Security Considerations</name>
      <t>Configuration advertised via PvD Additional Information, such DNS zones or associated
proxies, can only be safely used when fetched over a secure TLS-protected connection,
and the client has validated that that the hostname of the proxy, the identifier of
the PvD, and the validated hostname identity on the certificate all match.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="proxies-key-iana">
        <name>New PvD Additional Information key</name>
        <t>This document registers a new key in the "Additional Information PvD Keys" registry.</t>
        <t>JSON Key: proxies</t>
        <t>Description: Array of proxy dictionaries associated with this PvD</t>
        <t>Type: Array of dictionaries</t>
        <t>Example: [ {
  "protocol": "connect-udp",
  "proxy": "https://proxy.example.org/masque{?target_host,target_port}"
} ]</t>
      </section>
      <section anchor="proxy-info-iana">
        <name>New PvD Proxy Information Registry</name>
        <t>IANA is requested to create a new registry "Proxy Information PvD Keys", within the "Provisioning Domains (PvDs)" registry page.
This new registry reserves JSON keys for use in sub-dictionaries under the <tt>proxies</tt> key.
The initial contents of this registry are given in <xref target="proxy-enumeration"/> and <xref target="destinations"/>.</t>
        <t>New assignments in the "Proxy Information PvD Keys" registry will be administered by IANA through Expert Review <xref target="RFC8126"/>. Experts are
requested to ensure that defined keys do not overlap in names or semantics.</t>
      </section>
      <section anchor="proxy-protocol-iana">
        <name>New PvD Proxy Protocol Registry</name>
        <t>IANA is requested to create a new registry "Proxy Protocol PvD Values", within the "Provisioning Domains (PvDs)" registry page.
This new registry reserves JSON values for the <tt>protocol</tt> key in <tt>proxies</tt> sub-dictionaries.
The initial contents of this registry are given in <xref target="proxy-enumeration"/>.</t>
        <t>New assignments in the "Proxy Protocol PvD Values" registry will be administered by IANA through Expert Review <xref target="RFC8126"/>.
Experts are requested to ensure that defined keys do not overlap in names or semantics, and have clear format definitions.
The reference and notes fields MAY be empty.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="HTTP">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <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="CONNECT-UDP">
          <front>
            <title>Proxying UDP in HTTP</title>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document describes how to proxy UDP in HTTP, similar to how the HTTP CONNECT method allows proxying TCP in HTTP. More specifically, this document defines a protocol that allows an HTTP client to create a tunnel for UDP communications through an HTTP server that acts as a proxy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9298"/>
          <seriesInfo name="DOI" value="10.17487/RFC9298"/>
        </reference>
        <reference anchor="CONNECT-IP">
          <front>
            <title>Proxying IP in HTTP</title>
            <author fullname="T. Pauly" initials="T." role="editor" surname="Pauly"/>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="A. Chernyakhovsky" initials="A." surname="Chernyakhovsky"/>
            <author fullname="M. Kühlewind" initials="M." surname="Kühlewind"/>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <date month="October" year="2023"/>
            <abstract>
              <t>This document describes how to proxy IP packets in HTTP. This protocol is similar to UDP proxying in HTTP but allows transmitting arbitrary IP packets. More specifically, this document defines a protocol that allows an HTTP client to create an IP tunnel through an HTTP server that acts as an IP proxy. This document updates RFC 9298.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9484"/>
          <seriesInfo name="DOI" value="10.17487/RFC9484"/>
        </reference>
        <reference anchor="URITEMPLATE">
          <front>
            <title>URI Template</title>
            <author fullname="J. Gregorio" initials="J." surname="Gregorio"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="M. Hadley" initials="M." surname="Hadley"/>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="D. Orchard" initials="D." surname="Orchard"/>
            <date month="March" year="2012"/>
            <abstract>
              <t>A URI Template is a compact sequence of characters for describing a range of Uniform Resource Identifiers through variable expansion. This specification defines the URI Template syntax and the process for expanding a URI Template into a URI reference, along with guidelines for the use of URI Templates on the Internet. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6570"/>
          <seriesInfo name="DOI" value="10.17487/RFC6570"/>
        </reference>
        <reference anchor="PVDDATA">
          <front>
            <title>Discovering Provisioning Domain Names and Data</title>
            <author fullname="P. Pfister" initials="P." surname="Pfister"/>
            <author fullname="É. Vyncke" surname="É. Vyncke"/>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="W. Shao" initials="W." surname="Shao"/>
            <date month="July" year="2020"/>
            <abstract>
              <t>Provisioning Domains (PvDs) are defined as consistent sets of network configuration information. PvDs allows hosts to manage connections to multiple networks and interfaces simultaneously, such as when a home router provides connectivity through both a broadband and cellular network provider.</t>
              <t>This document defines a mechanism for explicitly identifying PvDs through a Router Advertisement (RA) option. This RA option announces a PvD identifier, which hosts can compare to differentiate between PvDs. The option can directly carry some information about a PvD and can optionally point to PvD Additional Information that can be retrieved using HTTP over TLS.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8801"/>
          <seriesInfo name="DOI" value="10.17487/RFC8801"/>
        </reference>
        <reference anchor="JSON">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="SOCKSv5">
          <front>
            <title>SOCKS Protocol Version 5</title>
            <author fullname="M. Leech" initials="M." surname="Leech"/>
            <author fullname="M. Ganis" initials="M." surname="Ganis"/>
            <author fullname="Y. Lee" initials="Y." surname="Lee"/>
            <author fullname="R. Kuris" initials="R." surname="Kuris"/>
            <author fullname="D. Koblas" initials="D." surname="Koblas"/>
            <author fullname="L. Jones" initials="L." surname="Jones"/>
            <date month="March" year="1996"/>
            <abstract>
              <t>This memo describes a protocol that is an evolution of the previous version of the protocol, version 4 [1]. This new protocol stems from active discussions and prototype implementations. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1928"/>
          <seriesInfo name="DOI" value="10.17487/RFC1928"/>
        </reference>
        <reference anchor="CONNECT-TCP">
          <front>
            <title>Template-Driven HTTP CONNECT Proxying for TCP</title>
            <author fullname="Benjamin M. Schwartz" initials="B. M." surname="Schwartz">
              <organization>Meta Platforms, Inc.</organization>
            </author>
            <date day="21" month="October" year="2024"/>
            <abstract>
              <t>   TCP proxying using HTTP CONNECT has long been part of the core HTTP
   specification.  However, this proxying functionality has several
   important deficiencies in modern HTTP environments.  This
   specification defines an alternative HTTP proxy service configuration
   for TCP connections.  This configuration is described by a URI
   Template, similar to the CONNECT-UDP and CONNECT-IP protocols.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-connect-tcp-06"/>
        </reference>
        <reference anchor="ALPN">
          <front>
            <title>Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension</title>
            <author fullname="S. Friedl" initials="S." surname="Friedl"/>
            <author fullname="A. Popov" initials="A." surname="Popov"/>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="E. Stephan" initials="E." surname="Stephan"/>
            <date month="July" year="2014"/>
            <abstract>
              <t>This document describes a Transport Layer Security (TLS) extension for application-layer protocol negotiation within the TLS handshake. For instances in which multiple application protocols are supported on the same TCP or UDP port, this extension allows the application layer to negotiate which protocol will be used within the TLS connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7301"/>
          <seriesInfo name="DOI" value="10.17487/RFC7301"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="PVD">
          <front>
            <title>Multiple Provisioning Domain Architecture</title>
            <author fullname="D. Anipko" initials="D." role="editor" surname="Anipko"/>
            <date month="June" year="2015"/>
            <abstract>
              <t>This document is a product of the work of the Multiple Interfaces Architecture Design team. It outlines a solution framework for some of the issues experienced by nodes that can be attached to multiple networks simultaneously. The framework defines the concept of a Provisioning Domain (PvD), which is a consistent set of network configuration information. PvD-aware nodes learn PvD-specific information from the networks they are attached to and/or other sources. PvDs are used to enable separation and configuration consistency in the presence of multiple concurrent connections.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7556"/>
          <seriesInfo name="DOI" value="10.17487/RFC7556"/>
        </reference>
        <reference anchor="RFC3040">
          <front>
            <title>Internet Web Replication and Caching Taxonomy</title>
            <author fullname="I. Cooper" initials="I." surname="Cooper"/>
            <author fullname="I. Melve" initials="I." surname="Melve"/>
            <author fullname="G. Tomlinson" initials="G." surname="Tomlinson"/>
            <date month="January" year="2001"/>
            <abstract>
              <t>This memo specifies standard terminology and the taxonomy of web replication and caching infrastructure as deployed today. It introduces standard concepts, and protocols used today within this application domain. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3040"/>
          <seriesInfo name="DOI" value="10.17487/RFC3040"/>
        </reference>
        <reference anchor="IKEV2SPLIT">
          <front>
            <title>Split DNS Configuration for the Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <author fullname="P. Wouters" initials="P." surname="Wouters"/>
            <date month="May" year="2019"/>
            <abstract>
              <t>This document defines two Configuration Payload Attribute Types (INTERNAL_DNS_DOMAIN and INTERNAL_DNSSEC_TA) for the Internet Key Exchange Protocol version 2 (IKEv2). These payloads add support for private (internal-only) DNS domains. These domains are intended to be resolved using non-public DNS servers that are only reachable through the IPsec connection. DNS resolution for other domains remains unchanged. These Configuration Payloads only apply to split- tunnel configurations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8598"/>
          <seriesInfo name="DOI" value="10.17487/RFC8598"/>
        </reference>
        <reference anchor="RFC4861">
          <front>
            <title>Neighbor Discovery for IP version 6 (IPv6)</title>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="E. Nordmark" initials="E." surname="Nordmark"/>
            <author fullname="W. Simpson" initials="W." surname="Simpson"/>
            <author fullname="H. Soliman" initials="H." surname="Soliman"/>
            <date month="September" year="2007"/>
            <abstract>
              <t>This document specifies the Neighbor Discovery protocol for IP Version 6. IPv6 nodes on the same link use Neighbor Discovery to discover each other's presence, to determine each other's link-layer addresses, to find routers, and to maintain reachability information about the paths to active neighbors. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4861"/>
          <seriesInfo name="DOI" value="10.17487/RFC4861"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+0823LbRpbv/RUd+mHtWZKWaEmRWetNFEmeaCLLGktOKpNy
jZpEU0QMAgwapMxIyrfst+yX7bn0DSCoOI6ntmprpyYWBaL7nD73W6vX64kq
rTI9lIfFbLbI07Gq0vxanpfFhxU8yyfp9aKEZ0VuZJrj82Vq4Dd86aiYqTQ3
Qo1GpV4O2xbJ8+WREUkxztUMgCSlmlS9VFeTXppXqtSqN8dFvTEt6m3tiERV
eigADX1dlKuhNFUiRDovh7IqF6YabG093xqI93p1U5TJUJ7klS5zXfWOcGsh
TKXy5J8qK3IAt9JGzNOh/Kkqxl1pirIq9cTAp9UMP7wTQi2qaVEOhewJCf+D
0wzlZV+eq0W2oieM9yUQZxU9LcrroTyYzzPdBQzGfXqogRoZoDnH175W+G1/
XMxqex/15ZGa/axyIOM4AgDYX6tcNb8kOK/ScVmYAk4XQUkS/+bXM/fCGrgf
+/INfDNT76cFPZ0ssowh/qhgTaaWjRcAosrTX4l5Q/kPM1aZLmPAq9K9//Wv
/C1BFb1eT6qRqUo1BjZcTlMjge2Lmc4rmehJmmsjlZzp8RT2NzM5KUqpxmNt
DIrSPJarhOQKTgDvzAgToYwpxikIRSJv0moKO5HcACsXY/jNyKKa6pIfyrdv
ToyspqqCb+dz4LpM0slEl4gKvAHCUGQgtXkC22SpqWQxkUdnF/LXApGkhSCa
DrtRpuUyVQ5kn486S5Mk00I8Qgksi2QxJjzFt5eX5/Ri6rZaGA0ftDx8fXZ2
fHgJJACRS+Tt7YWmNfJ5/1l/D3H4Ahe/ePPy8Pn29tb9vXgMLNW5BFHVZQkn
rwo8aQeocqPKpOPAPJEqy4obOc5SOKHB14o5rAOdyhkEPhPTwsCX8Unk5VQj
cqs5qH2Wrew+yJnLw3PQPNDPGb8LbOnK0aKSY5XDa6ZwpBVvj879K3CoL+wx
e/CcjjJ4vn9/L5HYJ/CiGr/XlX9fRO+f8Os7+zv39315gWx1ZERm5EUlfwb9
t7IErDN0IhRmQ9sjNiYgiWQHQZCVns0zEByDyMGDy+NX56cHl8cIbW/3S6Az
cPQkB8FPQICAdiDbmlYDR2aLrEpBj4EHGQmfRanriZ1rxEXeqBWuXeSwCZkg
cTNNG0doyjBIGyBOggsoHNKGgb4jncNJKzkpi5nMtCpJNdSogPOpJEmRryqL
laQJQKDUsUaQSFTpLP2VZDF1mrIw6lpbJXqfFzcIguXfvgBaPLb2XCcCt8m9
nLB+kFSCGs1ShGs0aVOiDbgRdht9tAYoZ+kMtVzPnJAyCeGgU7VMQebw6CNU
u2mqlyju07JYXE9JeZgfos399FudknyMnucJEd6JDNiU29uvzr8/Qt5/ubu7
Bzqm6IAGrADiAugbxB8cCriX9/7sTN+I1l3J/EWc03ycLRJLalFfkugKrKaJ
tH2A+wMOKOUgkfDp6ODyADHa39/aBlUJxvJvF6/PUEXwJ70w2H0OLzASpKZA
53GZjqzHbhJBHgQ5OYlwt7KZot5I/QFOzlYuSQlFVa4QRzjOXJcVSi/8hkxo
AdHfZOoNsLAEuN7gE8uRjcgX/DzV2dyrUVAcOS1uhH3Vas9QiO2+PHBKNtEV
YA/bbDjfmqIpku08eAf5+PaW4475Mrm/f1Lfn10CKCcQeFaUOvYqQFSFoLus
A0iIYHYFqanV0dghoe6hFb5OlzpvoONR0TlQkMUGUOrXcWKyPqxorZ4rUiLh
AcarGFagZAZOtaqxdK7KCpTeyhrwFjiE+wGDIu7O0uspKjMyjixFkpoxqHsZ
bOAaW5yaAUr2Y8++zFi9NWyQAJsQOChnOFD3mOLWZGX6Wo1XGPnoMdgr6X3x
it4ge2jX1uwao4PqgIY3It6C4OM2F32QMMYEONIVjunkaebXpQL9J0NIAmPh
BweM33lrDAd79Eh+A67wGngDrkK8JlnJi7xHKgDOPaYsKjqfom5bUFkckVcS
jKgG8utcIAMkYFoVJft1DH1n5M9Y8dkmMjedVQTz8mxrh70hx/EHC0C6Hsw/
Pj84fCInaaZji7bXJ5vmd6D9/6aWCiHMK8E/rHhW6F3fvjlFcQDQc/RmecLx
X4L+UILy4FPYUbUd29oGQPMHPZIB1d6RJ8W5jfHk4x/OD46e1FDdaaCKWmyE
lT52ZskSzV4wP85wjVb+O3LFEqhBxMBACgTDFNmCMDS/LBT6kVwefQtxFGu/
HOwOvCuEiHmG9MRgJWb7k5jv5Gp9BIsGwEbKhNRo5eMfH/50WSYKipbcSkc9
xhkTgFpcBA4mioqI/4BjjEfkPuuGAfkMaZwG203BaYFBNsBwpxEqw+QM2LbU
zH0mMgo0wOyNlAkhFaGulkWaIMQ5bpqP4bko0EeBQlFeGsRKWrHqRkINW+Wk
hxBqZBRokMj0zFyP0wnkVOCqnbMfO5iowhQvL+asuGm1kstFloMxHqVZih6Q
VfaN/mWRlhzAMJUgDcUzAcqdV28vLjtd/inPXtPnN8d/f3vy5vgIP198e3B6
6j8I+8bFt6/fnh6FT2Hl4etXr47PjngxPJW1R6Lz6uDHDvO78/r88uT12cFp
p51FFQaTxKhyXuqKY+ea/n9zeP7f/7W9g/EIqMZgexvDDP5lf/tLCMiBxjpn
aCSV/CtYrZWAPBdsMDlGkKyxmqcVmNEuqreZopsD0wba+h9fZejAentf/afA
rOklOnGKWzb7cWf4kFO3j4LD3pxefmKEIKKMCDbGhcHbWbvdiIWc62p3td7Q
x4nFJ8QtNsl1Lk+kxixIbNm3/fX4EjKTX+ARh4MI+UZnWY8DDARF0U6nH54+
BQp20CbayBNj4DyhpWhPJFdEUAfsSWPKoI+czzNwK3hgBDmCOKee75JVAOWt
QOMgEkCraXe2VopF6LHL3C9eH353UbMCdDaXLockN/e2QrQAIvNMx2Xr4g0c
cOElPNIf1IzqNT5+uCkWGYg/kpQOOilcSNekKRIyMEcQczrTqpqb4dOnTB+7
fb8or5/OFHgAfftVpcprXf0TD9+1n/H89x0IaH/77TcxtKWAF8hIMTTjKdgW
+I12FsPAiRdyDYgYzhVg8UI+bfBWoESCeXzhOIWihV/8+88GfBPCJXqodTKv
0GV11kAN97f2tzqk7nXSGW0Fx1NOWMp9hgMS1D91yrOism4HLdOajEKAUIxJ
2TA+g1MYdKV1STVTMqDuS5AD0a67fRuJgOfKipVNcRES1QeMhhgaQJEg1YO4
YFmE9QAYaoR6FVVtMCbbbDZAKUv2TOSFYf9KpXykjtePEt2I/jCHtwz7DQGc
BsP5AX5HPwZ59EsfaFKOpja7/u7a7hL9ngCMxlNvSyg2sVYkxOJUdpIRcFWW
YLbt6cFTgd6CSIyQmBO1yCp0vvLYZUdRCIR66BIy7yDiNGqzo8j1zUOWGOjR
lVcWzlWX0wfOlxlbTL1ctkz1oBt0c1IrOH6URls28BoLHZwNxo+ZjlITMqxL
lWZkV4HwmHP5tBvwfGy0lpwpArge4NdLVa4oTTpWttBE5RrHMjKH/NTVPLv+
CUk+RfRpX/e71kLXYklJNqIRKbYX0J5gNlwAY8gwzgsspaRUUOQkmKRrEy/A
jcoZxouQrqzoVW92zWLUi6lsySk8Y5iwzCk64RWhT9+vrkjQMBvG/zCz40Ac
WI1QurZug1brSmXzHNh85RG5sqF0SJS9p8eQ0CJaKyzVk+q+TepqMH2JK7ER
M54yEhcMEhYlrbMJP1ACFLaCRK6io9u6ZKhF31GVSH4HgeidfO2A3ckjzfEx
Yn4nL1dzDT+O2bzKO1iGReyN/8L3jqTw6KzALTgU4GeUYpKtcU0jzcwPJcc7
eVFRznEnOzYR7i2SecdtTq/QzvY9a7c446/XbpEMLQIaxSddmzPgamvObZks
0ocqPkKM30ZXPtzZ2Xn2+/6czoQyBJv9CHJ6Jw8iQ3EQPFTvVK2AuT5BPdPX
BaiK8wT8MFhV2sltw+jio58602edbmc66LwjyEF92sDXJZCsjfXiM6ynR5U3
G2G5qi43LkBnHbdaUSGTb4uuhA8lRkuVYaDqNDlSUEyZGkXZIDTuNYgjriFL
K6PymPvK2b1uEDgQGrQ3JEHkeW01AZiuIS7pU7wTEj8MqPMVuQBrgUE7omYN
uaq3tqhzWbzXWE1G2sCXVEO6GobjzI1eJEVvquHl8onzYlZ7G0cnonCLAWhG
W9XAyKe1rel1UnGOLc6D6PKDU2fFX7Ko30GGSmHDWJNuYdOjVdXhGQSz780u
PHB6NSSdusO0jyLy5S4a+O3nA2zf3NEaVJOe1eXWlWsdLSQlLb9wda16F6xr
S2yLHJAuV3OMxoj8cb3Mwzb/GuCXpxckXbB+I/jIgsGGNduEsKOml6eWW5I+
uOJkfUE1bl3hO2WXh+cvTnpHfWqjI11GqacMLrYbBj1EYlifaM2kcUayXZAi
m1nXyz5tyvriXuLAJyWvherTEkt0OZhYqz1hgsxGnD0wGQcyONpQlJlWTpcx
aINgL+RkH2dVxeOD0/MzTHe/wA/U+HlGbZZWc9vMwMn8GV0udcnhcdze7Qr6
mltACTvBNPJJrgJnaNXTZ13+OehKXY37Df4QEUL44SgRGtTBekd52O9Y8JEW
FFB6Y+6z+QO3A+2YFEBfrBnGWxEK1H3EdYwGNenwRWTlyoEiS+ZP0raQimLp
dV7YbAop7hsrXNrkLOrSrUCq2ohAUL0gnB+9B/sHXbIDgXdPDs4OpPMa3Xpk
xg4Eu3fWeUiueNi9Zqp8D1k9DhFYV9mXhEjMj3AMrMW5lh/6EThLWUsskT5W
gp13q0WyGLb9MNUucWGPzEc13mVwfGulgCpHcBoiaq19JBbGBUw2124U9qM2
l+c/Ykvn8UUugfkjcNBOSNAbj+NA3ooyhVeuscVzFE/sATiypeYPcsTmVc6S
RijD6am7P1bGNsZhEcgTaTa3WOO2GkhUo/mO+ZEKnQ/hrLmPB0CLFzMOfZsK
o7ISPDWr1g3CxgAp9/W6V8jQ0DqxNCUk6mV0Vy7xzfDo65Dgvfz70Vmwhs5y
NVWQWv4V2sQqlAkx2EfpiPv7XqeiGh+Z08L3wbS3FxCaQxALWdv6NAx2HGxu
HfgYRmma7gxrBXWHxeVwm00I8ddaW7OlrIR06LZUljpRNW6MJSVXP3ooN/ds
XqvX/W+X1U5i4z8lKeVSsrNvVgRA+JgiqauklbpalHn9VEALM4eglRsazsFE
NgMhYPYcqwe3qfuWEGDJq4UBnAdbW8JGxz303puO4d4BQ3BNZBgMBkLcClmr
9QxbWNnvdPEtV2GCVwZbg2e9rb3e4Nnl1t5wawv+/w9+yZd+hvKnd/YJaTY+
oFmzW/qXvyDxxA3j8JM2cm98WLWiNNzf6tBb993Nm8ap6fqef6LGy5Dh33fi
nsXjslk/DUpbT3ZjMYoV10gctmKL31DSroDX/gy6VGQ72ljuSDe2ZWplDyE+
bgvQACohYB/JWlH0kW1DDVTdVOOpilosoV8Tg3OFElrGth3H5wgQuKTvz89k
tQBuZ/USrPGGz4BGVAInAeH1k++OlwPsjMOH7wcX56cnlzSDs4vzbA8XZCNf
WNPd2mQVrg/+w7RNU4lN01Sb6mj1VB/5BERtqaCFCENwmcDHLg5nA8Fac7qM
xlpqvAkly7be1x8pTW0uSFF9Az1iW20jrs8Vo59BkU3olLN8m7hFR/Mo7TWN
13Y5AtQfOLz7ZJAuJMJQcOTmcbDT8DHwWxlM43BaB8624IExxfpji4fwlXUM
fimSdZ0CwBVMkR16gigwTRBMX7rCMtdSMBa1y0p2TTyR6mjDLct4K4yM1wTh
UwuT8E1iR/vqDEFXyn3DmzRLxpjnowpHL7eVrW5ubryBhFAJuyN/6VOPHOP/
+BuusYEi5cjZOuyT8+WOnW1d7mHQWyKfGZtoRRsC4JK3h0ff7A+H2wh8+/mg
v72339/ubz0d7FigbPTrIHEyF7enuVuM5kqVX+uNYKhz19nZeUZAtgY7vb3d
3We7XKmjLCRKVdRDcVdcp7YtCwhbSp7VpGlum5JQ32hTEtL1+ZIzRZZRV+GI
CjMvUPkrJ8HOggo3yBExffPQdkiNrLM4mcTFCZ/0snlxqdwK03oKZ62vtiU9
Sip0SCj8PiB1mawp+qZpgDp8bKdzGpk8RItcXllz5MhBzbc8zmrC7IiwbiSt
WhDgpLYBwzqrWArWQUqNEX46CauxG1aAl6p8WgpUqLPNYL3APbKZbEtu3Ojm
1FwWEO0HPisPH9CZIW+sNaOZM04GAA2n+nAIDNmpyWKvqmB21EZvOkLz1OaB
YcpIphoUpVVOUhmWIwI1p5pAuusbbMCG2UxnsHOGTh3ciW1HNFKxDXvXGYUD
oMF6cnguH1/9pX/1xIdqcSBDq1G5bB3HgbcBh/0N/qsg2UYp9oj6kf0+1aeF
VafUNIMmVko/f5+BAGaUhwcAXJGzphrNd2y1uRUNNOi0GnUM9zDBowsV6Avm
ixGkQ7V3+uI4Lu24mg8l4A1aUXsxdLDx4gTPWdmC4MqW/OGMVBOgDSn6qxV+
DHekFMStrlSA29vSRl6Ew/flRdHF7chkNQ//R2wrpyKhcU/4dWquUSzyDI1K
7am8oYiZ+Uo1ok+zZn6ySCR2eA8OveSKAA5JZiuaoSBTXngm0NhR89Q0DFcT
go+nA6jAcaQ11nk/RLh6GHRyvsH9B8/UFiwL2728maaZrultCwYtdtk2mh6G
HtyDL9HVm7V43wbftxOZcQwZZwB2H+KJU1XM4ERUSzB2tia+TEjA6kldbWyL
06A8OgWdAX1F8JfkPhtUYWB/yNQ2N/jDptZRtsXUtu+9ZmrPabLIaQ7fJkkn
PtDu4oUvTunQx5WQCZap4pifr3WwmQVQ3hD36yNuVxQ4RqITx4HvQFwhScEi
LjGmRTnWw+N3VNRtqoCjvIkMGses+1vEAYCH+61tJ+xJPs6/2tO0hxARUuV6
qCRo9ItQslewIFQIDqZP115Vzw1o2ckCZrvy1pk8HzBnoXgzmS9mI+wX+SFG
pO8TQQVsQMDgwLONy/EmDcJveCsKxQdbO/sd6TxVQJUEB99ARPGlaFiFiEPf
IYHhw35kukJ4s8Yr37vQH+Zu4HPzJZJwT0JgfGutLw/8YYUC55PS8SJTZRxb
+s4Nm22QJ74p4ovSMSTRrM3j3YomrHWBqAm6bbfZ6VguueJsExISLBJffKMx
etzNlok5f246Dz4WJTCNUiKnh2RQPsKfeoe+KfDAyTu+9Iclekg7LIC18UpE
eTG3WuVuWLbvKtrqL20lel8jDuXGP1M19FfJchfEGUpsaMI/uhhaO93YlrxD
pb/9PqP4P1Hptw4+Def+xFI/XRcNthLz3vaiBTZWPl8HYPvZ7v93AD5ROexm
ZCDwZA6+dBkTPNvIQvnOvn3/7sFeAosVlQTG06IwumV2i2xI/cY9X5wm6ZqA
5xE2nqG53k0Yocxxo8A2X+NpXHJa7loEDRDfPmre6gNJCvcOfOka7xM+PN/s
mr0YL2KIipeC/A0Md1+Lp6656vOmWGAOdVD/ju+57ezvbePt2wO3hfD127Qy
jflsvC/f7MPGl37r1XQMUTZc6GTVxk3i1naY7/DNbZcmCDuiY5F0hX83okIF
3rDM20r7+r/xNZY4q1a1P8DQdkWTbu3QBfTo3lbh77lBDPNtcYMXe939d2lW
EHDMDE9/Y3QBNrdAMnFKyE68VBOMnOuXQR1nwnD5jS0iA+sEWBGwTWlV50bX
unWaJ4IzwXa6nKXG0OxI6y0P4f4WQOMWKQ6vsraMgGAalCeMKBAlXGRXCzEw
6RVuhsD7ZHdAur0MS3zVwt37XQOGd1LsoK+/coar4digVDTAR/OKiS6jrArz
YFtrrfgaIY5QkEJeuF0O68tuH8H+vfpeoIX1a50RL5y4b7g5zlQJfysDLUq4
F+Np50PAEV6cmOhsFbX73DALiYNyd2XrQ3jh5mzX306yHEACU4+CwnUbQzZr
svXRYJoR9c4L/46AHavvSrd52DHUZ2lFtXKjcmOk0cS6ZgjVOYGgvwCCs0d1
wlP0dfa7lwzsrYXaSH+z/+NGndy1BUqDrKHesDMC/U6vTMdPRAGergcz9Leo
RNSLGYb2gZ3KituGrXNxeBtGYAMnWhuvgrSEtRG93K34Hbf7eZru9+AiY9Lz
fGNMmzdusthdGAlzYRDXISftfRpNqRSqLlXzLPX9YHJnfWtP9q6Mven55j9P
ERgEGdW17jPra3Aw0y2XwAPin2//oUkDAGtXJGiCb32KjAc31walSU/ovBYa
mhn+KwVR46bmyEhl1m87CKQ4iEl6nbOvjU6/iUwBLPVQ6GLEDHC0g32jFWuW
y22O0ThWwMBlCrDc9dTBHvpy/o5L7zXm6dwsStu2cZ1UvrvBt6TRCmVqjuhy
RITFFT1ToPpje+23Lkt+ynRNkOoT6p8iTH5vBPc9jdD/C2Xp4Rl9LGh5CWqK
2ecTp9+VnDaafD7BEZHgyM8nOF0bCyzRbeH16PgySmoHOZCEpR/YtxVPZEiq
swRCqoMf/W24vvgf+4BKKKpNAAA=

-->

</rfc>
