<?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.36 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-anderson-askew-cidvv-latest" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="CIDVV">Caller-ID Vouching and Vetting (CIDVV)</title>
    <seriesInfo name="Internet-Draft" value="draft-anderson-askew-cidvv-latest"/>
    <author initials="R." surname="Anderson" fullname="Roger Anderson">
      <organization>Jolly Roger Telephone Company</organization>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>cidvv@jollyrogertelephone.com</email>
      </address>
    </author>
    <author initials="S." surname="Berkson" fullname="Steven Berkson">
      <organization>Jolly Roger Telephone Company</organization>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>cidvv@jollyrogertelephone.com</email>
      </address>
    </author>
    <author initials="P." surname="Askew" fullname="Phillip Askew">
      <organization/>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>cidvv@jollyrogertelephone.com</email>
      </address>
    </author>
    <date year="2026" month="May" day="07"/>
    <keyword>telephony, callerid, spoofing, PSTN</keyword>
    <abstract>
      <?line 40?>

<t>Caller-ID spoofing remains a significant problem in telephony,
particularly across inter-domain and international call paths where
identity frameworks may not be consistently applied.</t>
      <t>This document defines Caller-ID Vouching and Vetting (CIDVV), a
lightweight verification mechanism that uses short-lived signaling
exchanges encoded within the Calling Party Number to confirm that a
calling party can receive calls at the Asserted Caller-ID.</t>
      <t>CIDVV is designed to operate across heterogeneous SIP and SS7/TDM
networks without requiring new protocol extensions or persistent
identity infrastructure. It relies on existing call routing behavior
and intentionally leverages failure responses as a signaling mechanism,
using failed call attempts as evidence of number control rather than
successful call completion.</t>
      <t>The mechanism improves resistance to Caller-ID spoofing by requiring
demonstrable control of the Asserted Caller-ID, while remaining
incrementally deployable and tolerant of intermediate network
modification.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://cidvv.org/draft-anderson-askew-cidvv.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-anderson-askew-cidvv/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/Jolly-Roger-Telephone-Company/cidvv-spec"/>.</t>
    </note>
  </front>
  <middle>
    <?line 63?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Caller-ID spoofing is widely used in fraudulent and nuisance calling,
particularly in environments where calls traverse multiple
administrative domains and heterogeneous network technologies.
Although mechanisms such as STIR/SHAKEN provide cryptographic
attestation of caller identity, their effectiveness is limited by
partial deployment and challenges in international interconnection.</t>
      <t>This document defines Caller-ID Vouching and Vetting (CIDVV), a
mechanism that verifies caller identity through network reachability
rather than asserted identity. CIDVV requires that a party asserting a
Caller-ID be able to receive a return call at that number within the Validity Window.</t>
      <t>CIDVV operates by encoding signaling information within the Calling
Party Number and leveraging existing call routing behavior to perform
a challenge-response exchange. The protocol does not require new SIP
headers, protocol extensions, or changes to SS7 signaling, and is
designed to function across mixed SIP and TDM networks.</t>
      <t>CIDVV is incrementally deployable and does not require universal
adoption to provide benefit. It tolerates modification of signaling
by intermediate networks and relies on signaling calls and distinct
failure-response behaviors traversing the network path.</t>
      <t>CIDVV provides strong, real-time evidence of Caller-ID validity by
requiring that a party asserting a Caller-ID be able to receive and
respond to a return call at that number within the Validity Window.
While it does not provide absolute identity assurance, it offers a
practical and robust signal of trust in the presented identity.</t>
      <t>CIDVV leverages two key elements of the existing telephone ecosystem:</t>
      <ul spacing="normal">
        <li>
          <t>Existing routing databases and numbering plans, which provide
authoritative routing ownership for telephone numbers.</t>
        </li>
        <li>
          <t>Digit sequences chosen to minimize conflict with valid numbering plans (e.g., "100" and "101").</t>
        </li>
      </ul>
      <t>The mechanism operates entirely within standard PSTN routing behavior and requires no media exchange.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>In this document, the term "Caller-ID" refers to the identity
presented to users, while "Calling Party Number" refers to the
signaling field used to convey that identity.</t>
      <ul spacing="normal">
        <li>
          <t><strong>Alice</strong>: The calling party and verifier. In vouching flows Alice asserts a number; in vetting flows Alice verifies Bob’s number.</t>
        </li>
        <li>
          <t><strong>Bob</strong>: The called party. In vetting flows Bob is the owner whose number is being vetted.</t>
        </li>
        <li>
          <t><strong>Mallory</strong>: An attacker attempting to spoof a Caller-ID.</t>
        </li>
        <li>
          <t><strong>CIDVV Platform</strong>: A system that implements the vouching and vetting procedures defined in this document.</t>
        </li>
        <li>
          <t><strong>CIDVV-aware Network Element</strong>: An SBC or intermediary that recognizes CIDVV signaling prefixes and interprets associated responses, but does not implement the full CIDVV platform logic.</t>
        </li>
        <li>
          <t><strong>Vouch</strong>: The act of a CIDVV platform asserting that it has verified control of a telephone number through the challenge-response mechanism described in this document, which may consist of one or more verification calls. A successful vouch provides strong evidence that the calling party controls the Asserted Caller-ID.</t>
        </li>
        <li>
          <t><strong>Vet</strong> (or <strong>Vetting</strong>): The process by which a CIDVV platform confirms the relevant party controls the Asserted Caller-ID via the two-call challenge-response sequence. Vetting may be performed by the number owner directly or on behalf of third parties such as Caller-ID branding services, Google Business Profiles, trade organizations, or enterprise trust programs.</t>
        </li>
        <li>
          <t><strong>Vouching Call</strong>: A short verification call used in the CIDVV protocol. CIDVV defines a primary vouching call ("100") and an optional secondary vouching call ("101").</t>
        </li>
        <li>
          <t><strong>Successful Vouch</strong>: A verification result indicating that a matching cache entry was found.</t>
        </li>
        <li>
          <t><strong>Unsuccessful Vouch</strong>: A verification result indicating that no matching cache entry was found.</t>
        </li>
        <li>
          <t><strong>Verification Not Performed</strong>: A condition where verification could not be completed due to system or network conditions.</t>
        </li>
        <li>
          <t><strong>Validity Window</strong>: A short time interval during which CIDVV signaling state is considered valid for correlation purposes, typically on the order of 10 seconds.</t>
        </li>
        <li>
          <t><strong>Asserted Caller-ID</strong>: The Caller-ID value that is being vouched or vetted (i.e., the number whose control is being verified). This is the value used as the basis for the CIDVV Token payload and as the cache lookup key in the tuple (Asserted-Caller-ID, CIDVV-Token).</t>
        </li>
      </ul>
      <t>Once successfully vouched, an Asserted Caller-ID may be referred to informally as a "vouched number," but the formal term used in this document is "Asserted Caller-ID."</t>
      <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, RFC 2119 and RFC 8174 when, and only when, they appear in all
capitals, as shown here.</t>
      <section anchor="motivation-and-advantages">
        <name>Motivation and Advantages</name>
        <t>The CIDVV vouching and vetting mechanism is designed to operate with minimal new infrastructure while providing strong protection against Caller-ID spoofing.  Its primary advantages are:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Leverages existing PSTN infrastructure</strong>: The mechanism uses existing numbering plans and routing databases to direct calls without requiring additional infrastructure.</t>
          </li>
          <li>
            <t><strong>Strong anti-spoofing protection</strong>: A successful vouch provides strong evidence that the Asserted Caller-ID is controlled by the legitimate owner, because only the real owner can generate the correct challenge-response sequence. Spoofed calls are typically rejected early, often resulting in failure responses such as 404 Not Found.</t>
          </li>
          <li>
            <t><strong>Visibility into spoofing activity</strong>: Telephone number owners gain direct insight into how often (and from where) their numbers are being spoofed worldwide through logged vetting attempts.</t>
          </li>
          <li>
            <t><strong>Low signaling overhead</strong>: The two short vetting calls replace what would otherwise be a completed fraudulent call, resulting in lower overall network load.</t>
          </li>
          <li>
            <t><strong>Full TDM/SS7 compatibility</strong>: The mechanism works natively across legacy SS7 and ISDN networks.  SIP is not required.</t>
          </li>
          <li>
            <t><strong>International applicability</strong>: The solution functions across international boundaries without relying on country-specific frameworks.</t>
          </li>
          <li>
            <t><strong>Independent of STIR/SHAKEN</strong>: It provides an effective alternative (or complement) in environments where STIR/SHAKEN is unavailable, not deployed, or insufficient.</t>
          </li>
          <li>
            <t><strong>Enterprise and service-provider flexibility</strong>:  </t>
            <ul spacing="normal">
              <li>
                <t>Enterprises can deploy their own CIDVV platform using open-source tools such as Kamailio or Asterisk.</t>
              </li>
              <li>
                <t>Service providers or third-party vendors (e.g., TransUnion, TNS, First Orion, Hiya, Numeracle, Numhub, or others) can operate cloud-based vouching and vetting services.</t>
              </li>
              <li>
                <t>Customers can easily switch between providers, fostering real competition and driving down costs.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>This design lowers the barrier to entry and encourages broad adoption while avoiding the single points of failure and high coordination costs associated with centralized solutions. These properties make the vouching mechanism particularly suitable for service providers, enterprises, and end users who need robust Caller-ID validation today, using only existing telephone infrastructure.</t>
      </section>
    </section>
    <section anchor="design-principles">
      <name>Design Principles</name>
      <t>CIDVV is designed to operate under the assumption that intermediate
networks may normalize, truncate, or otherwise modify signaling
information. The protocol therefore encodes all required signaling in
a numeric Calling Party Number that can survive traversal of mixed
SIP and SS7/TDM networks.</t>
      <t>CIDVV relies on the ability to distinguish between classes of
call rejection behavior (e.g., "busy" vs. "not found"), rather than
requiring specific numeric response codes to be preserved end-to-end.</t>
    </section>
    <section anchor="number-normalization">
      <name>Number Normalization</name>
      <t>All telephone numbers used in CIDVV operations MUST be normalized to
a digit string as follows:</t>
      <ol spacing="normal" type="1"><li>
          <t>Remove any leading "+" or other punctuation.</t>
        </li>
        <li>
          <t>Use the full E.164 representation (country code + national significant
number) as a plain digit string.</t>
        </li>
      </ol>
      <t>No padding is performed. Truncation (when required for the 15-digit
limit) always removes leading digits of the telephone number, preserving
the rightmost digits.</t>
      <section anchor="protocol-overview">
        <name>Protocol Overview</name>
        <t>CIDVV uses special Caller-ID prefixes to signal protocol operations:</t>
        <ul spacing="normal">
          <li>
            <t>"100" prefix — Primary Verification Call</t>
          </li>
          <li>
            <t>"101" prefix — Secondary Verification Call / Vetting Call</t>
          </li>
        </ul>
        <t>CIDVV Calling Party Numbers are numeric signaling values carried in
the Calling Party Number field. They are not represented as
E.164 numbers and are shown without a leading "+" in this document.</t>
        <t>Ordinary subscriber telephone numbers (e.g., +12125550100) are
shown in E.164 format for clarity, while CIDVV signaling values
(e.g., 10019495550199) are shown as digit strings.</t>
        <t>CIDVV signaling Calling Party Numbers MUST fit within the 15-digit
Calling Party Number limit commonly encountered in SS7 and ISDN
networks. For this reason, CIDVV uses a three-digit prefix followed by
a payload derived from the Asserted Caller-ID:</t>
        <artwork><![CDATA[
   CIDVV-CPN (CIDVV Calling Party Number) = Prefix || Payload
]]></artwork>
        <t>where CIDVV-CPN means CIDVV Calling Party Number, Prefix is "100" or
"101", and the payload is derived from the Asserted Caller-ID
(normalized per Section <xref target="number-normalization"/>).</t>
        <t>For vouching operations, the payload is derived from the called number associated with the verification.
For vetting operations, the payload may be derived from computed token values.</t>
        <t>In the common case where the Asserted Caller-ID has 12 or fewer digits,
the Payload is used in full, so the CIDVV-CPN is simply the three-digit
prefix directly concatenated with the full Asserted Caller-ID digits.</t>
        <t>If the resulting CIDVV-CPN would exceed 15 digits (i.e., the asserted
Caller-ID has more than 12 digits), the leading digits of the asserted
Caller-ID are removed until the total length is exactly 15 digits,
consistent with SS7 and ISDN Calling Party Number constraints.
This truncation preserves the rightmost digits of the telephone
number, which typically provide greater distinguishing information
between individual subscribers than leading digits.</t>
        <t>A CIDVV-aware element generating a CIDVV verification call MUST apply
this construction. A CIDVV platform MAY cache and compare the complete
15-digit CIDVV Calling Party Number (including the prefix) rather than
reconstructing it for comparison.</t>
        <t>Because CIDVV payloads may be truncated to the rightmost 12 digits,
distinct telephone numbers can, in rare cases, produce identical
payload values. Correlation is therefore additionally scoped by the
called number and the Validity Window.</t>
        <t>In such cases, multiple call attempts may be indistinguishable to the
CIDVV platform and treated as a single correlation event. As a result,
a successful verification may apply to more than one call attempt
within the Validity Window.</t>
        <t>CIDVV verification consists of observing the behavior of one or more
verification calls using distinct CIDVV prefixes.</t>
        <t>A successful vouch requires that a verification call using the "100"
prefix produce the expected response behavior. Additional
verification calls (e.g., using the "101" prefix) MAY be used to
achieve higher assurance.</t>
        <t>The expected behavior is:</t>
        <ul spacing="normal">
          <li>
            <t>Calls using the "100" prefix MUST result in SIP 486 Busy Here.
Any other response, timeout, call progression, or successful call
completion MUST be treated as an unsuccessful vouch.</t>
          </li>
          <li>
            <t>Calls using the "101" prefix are expected to result in SIP 404 Not Found.
However, in the context of an active vetting procedure, a "101" call
carrying a valid token MAY result in SIP 486 Busy Here.</t>
          </li>
        </ul>
        <t>A CIDVV-aware network element MUST NOT treat a single response as
sufficient evidence of a successful vouch unless it corresponds to
the expected behavior for the "100" prefix.</t>
        <t>Additional verification calls (e.g., using the "101" prefix) MAY be
used to increase assurance but are not required for a valid vouch.</t>
        <t>The two verification calls MAY be sent in any order or in parallel.
Implementations MUST NOT assume ordering.</t>
        <t>If either expected response is missing, altered, delayed, replaced by
call progression, or inconsistent with the expected pattern, the
result MUST be treated as unsuccessful or indeterminate.</t>
        <t>CIDVV exchanges occur using short signaling dialogs and do not require
media establishment.</t>
        <t>CIDVV signaling is encoded entirely within numeric Calling Party
Number values to maximize survivability across heterogeneous SIP and
SS7/TDM networks.</t>
        <t>Vetting procedures MAY use full telephone numbers or truncated
forms as input to cryptographic operations, independent of the
CIDVV Calling Party Number encoding.</t>
        <t>CIDVV operations rely on state within the Validity Window.</t>
      </section>
      <section anchor="vouching-vs-vetting-response-patterns">
        <name>Vouching vs. Vetting Response Patterns</name>
        <t>CIDVV uses the same signaling prefixes for both operations but with
distinct expected behaviors. The table below summarizes the differences:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Prefix</th>
              <th align="left">Vouching (live call)</th>
              <th align="left">Vetting (pre-shared secret)</th>
              <th align="left">Notes</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">100</td>
              <td align="left">Expect 486 Busy Here</td>
              <td align="left">Not used</td>
              <td align="left">Primary vouch signal</td>
            </tr>
            <tr>
              <td align="left">101</td>
              <td align="left">Expect 404 Not Found</td>
              <td align="left">First call: 404 (deposit), Second call: 486</td>
              <td align="left">Secondary / vetting</td>
            </tr>
          </tbody>
        </table>
        <t>Implementations distinguish context (vouching vs. vetting) primarily by the presence of a pre-agreed vetting Caller-ID and shared secret for the Asserted Caller-ID. Because vetting uses a specific Caller-ID designated for the procedure, overlap with ordinary vouching calls on the same number is expected to be rare. A CIDVV platform MUST treat calls using a known vetting Caller-ID according to the vetting response pattern (even if a live vouch cache entry exists) and MUST NOT treat a 101→404 response as a successful vouch when an active vetting procedure is in progress for that number.</t>
      </section>
      <section anchor="response-semantics">
        <name>Response Semantics</name>
        <t>Because intermediate SIP and SS7/TDM networks may translate,
modify, or replace response codes, implementations MUST interpret
responses based on behavioral class (e.g., "Busy"-class vs.
"Not Found"-class) rather than exact numeric values.</t>
        <t>Implementations SHOULD use SIP 486 (Busy Here) and 404 (Not Found)
as the canonical representations of these behaviors where possible.</t>
        <t>CIDVV requires that these two rejection behaviors remain
distinguishable across the signaling path. Environments that cannot
preserve this distinction may not support enhanced verification.</t>
        <section anchor="prefix-primary-verification">
          <name>"100" Prefix (Primary Verification)</name>
          <t>A call using the "100" prefix is considered successful only if it
results in an immediate rejection consistent with a "Busy"-class
response (e.g., SIP 486 Busy Here).</t>
          <t>A CIDVV implementation MUST treat any response other than this
expected behavior — including ringing, call completion, timeout, or
alternative error responses — as an unsuccessful verification.</t>
          <t>A successful "100" verification provides a baseline level of
confidence that the Asserted Caller-ID is routable and under the
control of the originating party.</t>
        </section>
        <section anchor="prefix-secondary-verification">
          <name>"101" Prefix (Secondary Verification)</name>
          <t>A call using the "101" prefix is used as an optional secondary
validation signal.</t>
          <t>The expected behavior is an immediate rejection consistent with a
"Not Found"-class response (e.g., SIP 404 Not Found).</t>
          <t>In the context of an active vetting procedure, a "101" call carrying a
valid vetting token MAY instead result in a "Busy"-class response
(e.g., SIP 486 Busy Here).</t>
          <t>Because such responses are relatively common in the PSTN, a "101"
verification alone MUST NOT be treated as evidence of a successful
vouch.</t>
        </section>
        <section anchor="combined-verification">
          <name>Combined Verification</name>
          <t>Implementations MAY perform both "100" and "101" verification calls
to achieve a higher level of assurance.</t>
          <t>In this case, a stronger validation result is obtained when:</t>
          <ul spacing="normal">
            <li>
              <t>The "100" verification produces the expected "Busy"-class behavior, AND</t>
            </li>
            <li>
              <t>The "101" verification produces the expected "Not Found"-class behavior</t>
            </li>
          </ul>
          <t>within the Validity Window.</t>
          <t>Implementations MUST NOT require the two verification calls to occur
in any specific order.</t>
        </section>
        <section anchor="failure-handling">
          <name>Failure Handling</name>
          <t>If the expected behavior for a given prefix is not observed, the
verification for that prefix MUST be treated as unsuccessful.</t>
          <t>If only the "100" verification succeeds, the result MAY be treated as
a valid but lower-assurance vouch.</t>
          <t>If both "100" and "101" verifications succeed (i.e., "100" → 486 and
"101" → 404), the result MAY be treated as a higher-assurance vouch.</t>
          <t>If neither verification succeeds, or if results are inconsistent or
ambiguous, the vouch MUST be treated as unsuccessful or indeterminate.</t>
        </section>
      </section>
    </section>
    <section anchor="protocol-operation">
      <name>Protocol Operation</name>
      <section anchor="vouching-procedure">
        <name>Vouching Procedure</name>
        <t>Alice's CIDVV platform receives an attempted call from Alice to Bob.
It MUST construct a CIDVV token as defined in Section <xref target="protocol-overview"/>
by prefixing "100" to the dialed number.</t>
        <t>The CIDVV platform MUST cache the call attempt using the tuple:</t>
        <t>(Called Number, CIDVV Token)</t>
        <t>for the Validity Window.</t>
        <t>The CIDVV platform then rejects the call with SIP response 486
(Busy Here).</t>
        <t>Alice's SBC receives the 486 and advances the original call through
the PSTN toward Bob using the original Caller-ID.</t>
        <t>When Bob's system receives the call, a CIDVV-aware network element
(e.g., SBC) initiates a verification call toward Alice.</t>
        <section anchor="primary-verification-100">
          <name>Primary Verification ("100")</name>
          <t>Bob's CIDVV-aware element constructs the CIDVV token using the same
method (prefix "100" plus the rightmost 12 digits of the dialed
number) and initiates a verification call toward Alice using that
value as the Calling Party Number.</t>
          <t>When Alice's SBC receives a call with a Calling Party Number
beginning with "100", it MUST route the call to the CIDVV platform.</t>
          <t>Upon receiving the verification call, Alice's CIDVV platform MUST
look up the tuple:</t>
          <t>(Called Number, CIDVV Token)</t>
          <t>cached for the Validity Window.</t>
          <t>If a matching cache entry exists, the CIDVV platform MUST reject the
verification call with SIP response 486 (Busy Here).</t>
          <t>If no matching cache entry exists, the CIDVV platform MUST reject the
verification call with SIP response 404 (Not Found).</t>
          <t>A successful "100" verification (i.e., receipt of 486) indicates that
the originating party can receive calls at the Asserted Caller-ID
and constitutes a valid baseline vouch.</t>
        </section>
        <section anchor="secondary-verification-101">
          <name>Secondary Verification ("101")</name>
          <t>Bob's CIDVV-aware element MAY initiate a second verification call
using a CIDVV token constructed by prefixing "101" to the same
12-digit payload.</t>
          <t>When Alice's SBC receives a call with a Calling Party Number
beginning with "101", it MUST route the call to the CIDVV platform.</t>
          <t>Upon receiving such a call, the CIDVV platform MUST reject the call
with SIP response 404 (Not Found), unless the call corresponds to an
active vetting procedure (see Section <xref target="vetting-procedure"/>).</t>
          <t>A "101" verification call does not require cache lookup for vouching
purposes and MUST NOT be used as a standalone indicator of a
successful vouch.</t>
        </section>
        <section anchor="combined-verification-behavior">
          <name>Combined Verification Behavior</name>
          <t>Implementations MAY perform only the primary ("100") verification or
MAY perform both primary and secondary verification.</t>
          <t>A successful "100" verification alone provides a valid vouch with
baseline assurance.</t>
          <t>If both verification calls are performed, a higher-assurance vouch is
obtained when:</t>
          <t>"100" → 486, and
   "101" → 404</t>
          <t>are both observed within the Validity Window.</t>
          <t>The two verification calls MAY occur in any order or in parallel.
Implementations MUST NOT assume ordering.</t>
          <t>If the "100" verification fails, the vouch MUST be treated as
unsuccessful regardless of any "101" result.</t>
        </section>
      </section>
      <section anchor="correlation-model">
        <name>Correlation Model</name>
        <t>CIDVV vouching correlates calls using the Asserted Caller-ID,
the called number, and a Validity Window. It does not attempt to
identify individual call legs across the PSTN.</t>
        <t>If multiple calls with the same Asserted Caller-ID and called
number occur within the cache interval, implementations MAY treat
them as a single aggregate vouching state or MAY maintain a count of
pending attempts.</t>
        <t>A successful vouch indicates that at least one matching call attempt
occurred during the Validity Window, rather than proving a
one-to-one correspondence between specific call legs.</t>
      </section>
      <section anchor="hash-function">
        <name>Hash Function for Vetting and State Storage</name>
        <t>The same deterministic algorithm MUST be used for:
1. Vetting token computation.
2. Any short-term cache (e.g., Redis) that stores vouching or vetting state.</t>
        <t><strong>Algorithm (normative)</strong></t>
        <ol spacing="normal" type="1"><li>
            <t>Normalize both numbers: E.164 digit string, no leading "+", no punctuation (see Section <xref target="number-normalization"/>).</t>
          </li>
          <li>
            <t>Concatenate as UTF-8 bytes: <tt>normalized-calling-number || "|" || normalized-called-number || "|" || shared-secret</tt></t>
          </li>
          <li>
            <t>Compute SHA-256 digest of the concatenated bytes.</t>
          </li>
          <li>
            <t>Take the first 8 hexadecimal characters of the digest.</t>
          </li>
          <li>
            <t>Convert that 8-hex string to a decimal integer.</t>
          </li>
          <li>
            <t>Left-pad with zeros to 10 digits if needed, then prepend '1' to produce an 11-digit token.</t>
          </li>
        </ol>
        <t>Example (for illustration only):
- calling = 12125550100, called = 19495550199, secret = "hamburger"
- Concatenated: "12125550100|19495550199|hamburger"
- SHA-256 first 8 hex → decimal → padded/prepended token = 12953388433 (or similar)</t>
        <t>Implementations MUST use the identical normalization and concatenation order for both vetting calls and any Redis (or equivalent) cache lookups. The token is valid only inside the Validity Window.</t>
        <section anchor="multi-tenant-considerations">
          <name>Multi-Tenant Considerations</name>
          <t>CIDVV platforms that perform vouching on behalf of multiple
independent customers MUST ensure that correlation state is scoped
per customer. This prevents unintended interaction between unrelated
vouching operations that may produce identical CIDVV payload values.</t>
          <t>Implementations MAY use separate storage, partitioning, or
customer-specific identifiers to achieve this isolation.</t>
          <t>This requirement does not apply to vetting operations, which are
already scoped by the shared secret.</t>
        </section>
      </section>
      <section anchor="vetting-procedure">
        <name>Vetting Procedure</name>
        <t>Vetting a remote number requires two separate calls (distinct SIP
dialogs) using a pre-agreed shared key. The process confirms that
the <strong>called party (Bob)</strong> controls the target telephone number and
possesses the correct shared secret. In the examples below, Alice is
the verifier who initiates the two calls to Bob’s number in order to
vet Bob’s number.</t>
        <t>Before vetting begins, Alice and Bob agree on a shared secret, Bob’s
vetting Caller-ID, and a Validity Window.</t>
        <t>Alice places a vetting call to Bob using a Caller-ID beginning with the digits "101".</t>
        <t>When Bob's CIDVV platform receives the first vetting call, it removes
the "101" prefix and verifies that the resulting Caller-ID is expected
for the current vetting attempt.</t>
        <t>Bob's platform MUST compute the vetting token using the algorithm
defined in Section <xref target="hash-function"/> and store the
resulting token for the Validity Window. It then rejects the call with
SIP response 404 (Not Found).</t>
        <t>Alice performs the same SHA-256 calculation and places a second vetting call to Bob. This second call uses a Caller-ID beginning with the Vetting Token Check prefix of "101" followed by the computed numeric code.</t>
        <t>When Bob's CIDVV platform receives the Vetting Token Check call, it removes the "101" prefix and compares the remaining numeric code to the recently cached value.</t>
        <t>If the numeric code matches, Bob's CIDVV platform MUST reject the call with SIP response 486 (Busy Here). Alice's platform treats this response as a successful vet.</t>
        <t>Any other response, timeout, code mismatch, expired cache entry, or unexpected Caller-ID MUST be treated as an unsuccessful vet.</t>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <section anchor="successful-vouch-call-flow-baseline">
        <name>Successful Vouch Call Flow (Baseline)</name>
        <t>The following diagram shows a baseline successful vouch using only
the primary "100" verification call. This provides a valid vouch with
baseline assurance.</t>
        <figure anchor="fig-successful-vouch">
          <name>Example Successful Vouch (Baseline)</name>
          <artwork><![CDATA[
   Alice      CIDVV_A      SBC_A        PSTN       SBC_B        Bob
     |           |           |           |           |           |
     |------- INVITE ------->|           |           |           |
     |           |           |           |           |           |
     |           |<- INVITE -|           |           |           |
     |           |           |           |           |           |
     |           |--- 486 -->|           |           |           |
     |           |           |- INVITE ->|           |           |
     |           |           |           |- INVITE ->|           |
     |           |           |           |           |           |
     |           |           |           |<- VFY100 -|           |
     |           |           |<- VFY100 -|           |           |
     |           |<- VFY100 -|           |           |           |
     |           |           |           |           |           |
     |           |--- 486 -->|           |           |           |
     |           |           |--- 486 -->|           |           |
     |           |           |           |--- 486 -->|           |
     |           |           |           |           |- INVITE ->|
     |           |           |           |           |           |
]]></artwork>
        </figure>
        <t>In the diagram, "VFY100" represents a verification call whose
Calling Party Number is the CIDVV token formed as "100" followed by
the rightmost 12 digits of the dialed number.</t>
        <section anchor="successful-vouch-baseline-step-by-step-description">
          <name>Successful Vouch (Baseline) Step-by-step description</name>
          <t>The diagram above shows the high-level message flow. The following
numbered steps provide the detailed behavior, including Caller-ID
manipulation performed by CIDVV platforms and CIDVV-aware elements.</t>
          <ol spacing="normal" type="1"><li>
              <t>The originating user (Alice, Caller-ID <tt>+12125550100</tt>) initiates a
call to the destination user (Bob, dialed number <tt>+19495550199</tt>).</t>
            </li>
            <li>
              <t>The call is routed from Alice's User Agent to her SBC, which
forwards it to the originating CIDVV platform (CIDVV_A).</t>
            </li>
            <li>
              <t><strong>CIDVV_A</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Constructs a CIDVV token by prefixing "100" to the rightmost
12 digits of the dialed number. In this case, the payload is
<tt>19495550199</tt>, resulting in the token <tt>10019495550199</tt>.</t>
                </li>
                <li>
                  <t>Caches the call attempt using the tuple:
  <tt>(Called: +12125550100, Token: 10019495550199)</tt>
for the Validity Window.</t>
                </li>
                <li>
                  <t>Rejects the call with <strong>486 Busy Here</strong>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Alice's SBC receives the 486 and advances the original call toward
the PSTN using the original Caller-ID.</t>
            </li>
            <li>
              <t>The call reaches Bob's SBC via the PSTN.</t>
            </li>
            <li>
              <t><strong>Bob's SBC (CIDVV-aware element)</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Constructs the same CIDVV token by prefixing "100" to the
rightmost 12 digits of the dialed number (<tt>+19495550199</tt>),
resulting in <tt>10019495550199</tt>.</t>
                </li>
                <li>
                  <t>Initiates a verification call toward Alice's number
(<tt>+12125550100</tt>) using the Caller-ID <tt>10019495550199</tt>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>The verification call arrives at Alice's SBC via the PSTN.</t>
            </li>
            <li>
              <t><strong>Alice's SBC</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Detects the leading "100" prefix on the Caller-ID.</t>
                </li>
                <li>
                  <t>Routes the call to CIDVV_A for vouch verification.</t>
                </li>
              </ul>
            </li>
            <li>
              <t><strong>CIDVV_A</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Receives the call with:
  <tt>To: +12125550100</tt>
                    <tt>From: 10019495550199</tt></t>
                </li>
                <li>
                  <t>Looks up the tuple:
  <tt>(Called: +12125550100, Token: 10019495550199)</tt>
cached for the Validity Window.</t>
                </li>
                <li>
                  <t>Finds a matching entry from step 3.</t>
                </li>
                <li>
                  <t>Considers this a successful primary verification and returns
<strong>486 Busy Here</strong>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Bob's SBC receives the 486 via the PSTN, recognizes it as a
successful primary verification, and advances the original call
to Bob's User Agent.</t>
            </li>
            <li>
              <t>Bob's telephone rings.</t>
            </li>
          </ol>
          <t>This mechanism allows the originating CIDVV platform to confirm that
the Asserted Caller-ID is valid without completing the initial call.</t>
        </section>
      </section>
      <section anchor="successful-vouch-call-flow-enhanced">
        <name>Successful Vouch Call Flow (Enhanced)</name>
        <t>The following diagram shows a successful vouch (Enhanced) using both
the primary "100" verification call and an optional secondary "101"
verification call. The "101" call provides additional assurance by
producing a distinct response pattern when combined with a successful
"100" verification. The "100" verification alone is sufficient for a
baseline successful vouch.</t>
        <t>For clarity, the verification calls are shown sequentially. In
practice, the two verification calls MAY occur in any order or in
parallel.</t>
        <artwork><![CDATA[
   Alice      CIDVV_A      SBC_A        PSTN       SBC_B        Bob
     |           |           |           |           |           |
     |------- INVITE ------->|           |           |           |
     |           |           |           |           |           |
     |           |<- INVITE -|           |           |           |
     |           |           |           |           |           |
     |           |--- 486 -->|           |           |           |
     |           |           |- INVITE ->|           |           |
     |           |           |           |- INVITE ->|           |
     |           |           |           |           |           |
     |           |           |           |<- VFY100 -|           |
     |           |           |<- VFY100 -|           |           |
     |           |<- VFY100 -|           |           |           |
     |           |           |           |           |           |
     |           |--- 486 -->|           |           |           |
     |           |           |--- 486 -->|           |           |
     |           |           |           |--- 486 -->|           |
     |           |           |           |           |           |
     |           |           |           |<- VFY101 -|           |
     |           |           |<- VFY101 -|           |           |
     |           |<- VFY101 -|           |           |           |
     |           |           |           |           |           |
     |           |--- 404 -->|           |           |           |
     |           |           |--- 404 -->|           |           |
     |           |           |           |--- 404 -->|           |
     |           |           |           |           |- INVITE ->|
     |           |           |           |           |           |
]]></artwork>
        <t>In the diagram, "VFY100" and "VFY101" represent verification calls
whose Calling Party Numbers are formed using the CIDVV token
construction defined in Protocol Overview.</t>
        <section anchor="enhanced-successful-vouch-step-by-step-description">
          <name>Enhanced Successful Vouch Step-by-step description</name>
          <t>The diagram above shows an enhanced vouch using both the primary
"100" verification call and an optional secondary "101" verification
call. The following steps describe the detailed behavior.</t>
          <ol spacing="normal" type="1"><li>
              <t>The originating user (Alice, Caller-ID <tt>+12125550100</tt>) initiates a
call to the destination user (Bob, dialed number <tt>+19495550199</tt>).</t>
            </li>
            <li>
              <t>The call is routed from Alice's User Agent to her SBC, which
forwards it to the originating CIDVV platform (CIDVV_A).</t>
            </li>
            <li>
              <t><strong>CIDVV_A</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Constructs a CIDVV token by prefixing "100" to the rightmost
12 digits of the dialed number (<tt>19495550199</tt>), resulting in
<tt>10019495550199</tt>.</t>
                </li>
                <li>
                  <t>Caches the call attempt using the tuple:
  <tt>(Called: +12125550100, Token: 10019495550199)</tt>
for the Validity Window.</t>
                </li>
                <li>
                  <t>Rejects the call with <strong>486 Busy Here</strong>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Alice's SBC receives the 486 and advances the original call toward
the PSTN using the original Caller-ID.</t>
            </li>
            <li>
              <t>The call reaches Bob's SBC via the PSTN.</t>
            </li>
            <li>
              <t><strong>Bob's SBC (CIDVV-aware element)</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Constructs the CIDVV token <tt>10019495550199</tt>.</t>
                </li>
                <li>
                  <t>Initiates a primary verification call toward Alice's number
(<tt>+12125550100</tt>) using the Caller-ID <tt>10019495550199</tt>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>The primary verification call arrives at Alice's SBC via the PSTN.</t>
            </li>
            <li>
              <t><strong>Alice's SBC</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Detects the leading "100" prefix.</t>
                </li>
                <li>
                  <t>Routes the call to CIDVV_A for verification.</t>
                </li>
              </ul>
            </li>
            <li>
              <t><strong>CIDVV_A</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Looks up <tt>(Called: +12125550100, Token: 10019495550199)</tt> cached for the Validity Window</t>
                </li>
                <li>
                  <t>Finds a matching entry.</t>
                </li>
                <li>
                  <t>Rejects the call with SIP response <strong>486 Busy Here</strong>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Bob's SBC receives the 486 and recognizes a successful primary
verification.</t>
            </li>
            <li>
              <t><strong>Bob's SBC (optional secondary verification)</strong>:
   - Constructs a second CIDVV token by prefixing "101" to the same
 12-digit payload, resulting in <tt>10119495550199</tt>.
   - Initiates a secondary verification call toward Alice's number
 using the Caller-ID <tt>10119495550199</tt>.</t>
            </li>
            <li>
              <t>The secondary verification call arrives at Alice's SBC via the PSTN.</t>
            </li>
            <li>
              <t><strong>Alice's SBC</strong>:
   - Detects the leading "101" prefix.
   - Routes the call to CIDVV_A for processing.</t>
            </li>
            <li>
              <t><strong>CIDVV_A</strong>:
   - Receives the call with:
   <tt>To: +12125550100</tt>
                <tt>From: 10119495550199</tt>
   - Performs no matching cache lookup for this prefix in the
 vouching context.
   - Rejects the call with <strong>404 Not Found</strong>.</t>
            </li>
            <li>
              <t>Bob's SBC receives the 404 and recognizes the expected secondary
verification behavior.</t>
            </li>
            <li>
              <t>Having observed:
              </t>
              <ul spacing="normal">
                <li>
                  <t>"100" → 486, and</t>
                </li>
                <li>
                  <t>"101" → 404
within the Validity Window,</t>
                </li>
              </ul>
              <t>
Bob's SBC treats this as a higher-assurance successful vouch.</t>
            </li>
            <li>
              <t>Bob's SBC advances the original call to Bob's User Agent.</t>
            </li>
            <li>
              <t>Bob's telephone rings.</t>
            </li>
          </ol>
        </section>
      </section>
      <section anchor="unsuccessful-vouch">
        <name>Unsuccessful Vouch</name>
        <t>A vouch attempt is considered unsuccessful or indeterminate if the
expected verification behavior is not observed.</t>
        <t>Specifically:</t>
        <ul spacing="normal">
          <li>
            <t>If a verification call using the "100" prefix does not result in
SIP 486 (Busy Here), the vouch MUST be treated as unsuccessful.</t>
          </li>
          <li>
            <t>If both verification calls are performed, and the expected pattern
of:
            </t>
            <ul spacing="normal">
              <li>
                <t>"100" → 486, and</t>
              </li>
              <li>
                <t>"101" → 404
is not observed within the Validity Window, the vouch MUST be
treated as unsuccessful or indeterminate.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>A "101" verification result alone MUST NOT be treated as evidence
of a successful vouch.</t>
          </li>
        </ul>
        <t>Implementations MUST fail closed. Any ambiguity, unexpected response,
timeout, or call progression MUST result in an unsuccessful or
indeterminate outcome.</t>
      </section>
      <section anchor="vetting-a-caller-id-number">
        <name>Vetting a Caller-ID Number</name>
        <t>Vetting uses two independent verification calls that form a
challenge-response sequence. For clarity, the calls are shown
separately, but together they constitute a single vetting operation.</t>
        <section anchor="first-vetting-call">
          <name>First Vetting Call</name>
          <figure>
            <name>First vetting call with 101 - creates cache entry and responds with 404</name>
            <artwork><![CDATA[
   CIDVV_A        SBC_A          PSTN         SBC_B        CIDVV_B
      |             |             |             |             |
      |-- VFY101 -->|             |             |             |
      |             |-- VFY101 -->|             |             |
      |             |             |-- VFY101 -->|             |
      |             |             |             |-- VFY101 -->|
      |             |             |             |             |
      |             |             |             |<--- 404 ----|
      |             |             |<--- 404 ----|             |
      |             |<--- 404 ----|             |             |
      |<--- 404 ----|             |             |             |
      |             |             |             |             |
]]></artwork>
          </figure>
        </section>
        <section anchor="second-vetting-call">
          <name>Second Vetting Call</name>
          <figure>
            <name>Vetting token check call with 101 - confirms vouch with 486 Busy Here</name>
            <artwork><![CDATA[
   CIDVV_A        SBC_A          PSTN         SBC_B        CIDVV_B
      |             |             |             |             |
      |-- VFY101 -->|             |             |             |
      |             |-- VFY101 -->|             |             |
      |             |             |-- VFY101 -->|             |
      |             |             |             |-- VFY101 -->|
      |             |             |             |             |
      |             |             |             |<--- 486 ----|
      |             |             |<--- 486 ----|             |
      |             |<--- 486 ----|             |             |
      |<--- 486 ----|             |             |             |
      |             |             |             |             |
]]></artwork>
          </figure>
        </section>
        <section anchor="successful-caller-id-vetting-flow">
          <name>Successful Caller-ID Vetting Flow</name>
          <t>Vetting a remote number requires two separate calls (distinct SIP dialogs) using a pre-agreed shared key. The process confirms that the called party (Bob) controls the target telephone number and possesses the correct shared secret.</t>
          <ol spacing="normal" type="1"><li>
              <t>Alice and Bob agree on a shared secret (e.g., <tt>hamburger</tt>) and Alice’s vetting Caller-ID (<tt>+12125550100</tt>, or its rightmost 12 digits for matching purposes).</t>
            </li>
            <li>
              <t>Both parties enter the shared secret, Alice’s vetting Caller-ID, and an optional Validity Window (e.g., one week) into their respective CIDVV platforms.</t>
            </li>
            <li>
              <t>Alice’s CIDVV platform (CIDVV_A) initiates the first vetting call with Caller-ID <tt>10112125550100</tt> toward Bob’s number (<tt>+19495550199</tt>). The call traverses the PSTN.</t>
            </li>
            <li>
              <t>Bob’s SBC recognizes the leading <tt>101</tt> prefix on the incoming Caller-ID and forwards the call to Bob’s CIDVV platform (CIDVV_B).</t>
            </li>
            <li>
              <t><strong>CIDVV_B</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Strips the leading <tt>101</tt>, recovering Alice’s Caller-ID.</t>
                </li>
                <li>
                  <t>For matching purposes, CIDVV_B MAY use only the rightmost
12 digits of the Caller-ID, consistent with CIDVV payload
constraints.</t>
                </li>
                <li>
                  <t>Recognizes this as a pre-agreed Vetting Caller-ID</t>
                </li>
                <li>
                  <t>Computes the SHA-256 digest over the UTF-8 string formed by concatenating <tt>normalized-calling-number</tt>, <tt>normalized-called-number</tt>, and <tt>shared-secret</tt>, where telephone numbers are represented as digit strings without separators or leading "+".</t>
                </li>
                <li>
                  <t>Takes the first 8 hexadecimal characters (<tt>b0092191</tt>), converts to decimal (<tt>2953388433</tt>), pads to 10 digits, and prepends <tt>1</tt>, yielding <tt>12953388433</tt>.</t>
                </li>
                <li>
                  <t>Caches this value for the Validity Window.</t>
                </li>
                <li>
                  <t>Rejects the call with <strong>404 Not Found</strong>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>CIDVV_A receives the 404 and performs the identical hash calculation to derive <tt>12953388433</tt>.</t>
            </li>
            <li>
              <t>CIDVV_A immediately places a second vetting call to <tt>+19495550199</tt> using the Vetting Token Check Caller-ID <tt>10112953388433</tt>.</t>
            </li>
            <li>
              <t>Bob’s SBC recognizes the <tt>101</tt> prefix on the Caller-ID and forwards the call to CIDVV_B.</t>
            </li>
            <li>
              <t><strong>CIDVV_B</strong>:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Strips the leading <tt>101</tt>.</t>
                </li>
                <li>
                  <t>Observes that the remaining Caller-ID (<tt>12953388433</tt>) matches a recently cached vetting token.</t>
                </li>
                <li>
                  <t>Responds with <strong>486 Busy Here</strong> to signal a successful vet.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>CIDVV_A receives the 486 Busy Here and reports a successful vet to Alice.</t>
            </li>
          </ol>
          <t>Use of the rightmost 12 digits is sufficient because collisions
within the Validity Window are expected to be rare.</t>
          <section anchor="vetting-failure-cases">
            <name>Vetting Failure Cases</name>
            <t>A vetting attempt may fail for the following reasons:</t>
            <ul spacing="normal">
              <li>
                <t>Bob does not have a participating CIDVV platform — the first call will not return 404, or the second call will not return 486.</t>
              </li>
              <li>
                <t>The shared secret, Alice’s vetting Caller-ID, or time window does not match — the two calls will not produce the expected 404 + 486 sequence.</t>
              </li>
              <li>
                <t>Network or policy restrictions prevent one or both calls from reaching the remote CIDVV platform.</t>
              </li>
            </ul>
            <t>In all such cases, the vetting attempt MUST be treated as unsuccessful.</t>
            <t>This two-call challenge-response mechanism provides strong confirmation that the remote number is both reachable via the PSTN and controlled by an entity that knows the shared secret.</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="deployment-considerations">
      <name>Deployment Considerations</name>
      <section anchor="behavior-of-non-cidvv-systems">
        <name>Behavior of Non-CIDVV Systems</name>
        <t>Systems that do not implement CIDVV are not expected to recognize
CIDVV signaling prefixes. Such systems will typically process CIDVV
calls as ordinary calls and may return a wide range of responses.</t>
        <t>CIDVV implementations MUST treat any response that does not match the
expected protocol behavior as indicating a non-participating system (see Section <xref target="protocol-overview"/> for response patterns).</t>
      </section>
      <section anchor="handling-of-cidvv-signaling-calls">
        <name>Handling of CIDVV Signaling Calls</name>
        <t>Networks that recognize CIDVV SHOULD NOT present calls with Calling
Party Numbers beginning with "100" or "101" to end users.</t>
        <t>Such calls SHOULD be intercepted by network elements or CIDVV
platforms and SHOULD result in a non-success response (e.g., 4xx,
5xx, or 6xx class response codes). Implementations commonly use
responses such as 404 (Not Found), 486 (Busy Here), or 603 (Decline).</t>
        <t>Call analytics, labeling, and fraud detection systems SHOULD
recognize CIDVV signaling prefixes ("100" and "101") and treat such
calls as protocol signaling rather than ordinary subscriber calls.</t>
        <t>CIDVV-aware elements SHOULD recognize and internally route CIDVV
signaling calls using the Asserted Caller-ID without user presentation.</t>
        <t>CIDVV signaling calls are not intended to complete. Implementations
SHOULD minimize call duration and signaling load and SHOULD avoid any
media establishment.</t>
      </section>
      <section anchor="response-variability">
        <name>Response Variability</name>
        <t>Implementations SHOULD interpret responses based on behavioral class
(e.g., success vs. immediate rejection) rather than relying solely on
exact numeric values, as intermediate networks may translate or
modify response codes.</t>
      </section>
      <section anchor="short-term-state-management">
        <name>Short-Term State Management</name>
        <t>CIDVV relies on short-lived state for the (Asserted Caller-ID, CIDVV-Token)
tuple, valid only for the Validity Window. Implementations MUST expire this state automatically and
MUST fail closed: on restart or state loss, treat all verification
requests as unsuccessful until fresh state has been deposited. The
same hash algorithm defined in Section <xref target="hash-function"/>
MUST be used for any vetting-related state.</t>
      </section>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <section anchor="protocol-operation-vouching">
        <name>Protocol Operation - Vouching</name>
        <t>If a vouching call results in a provisional response (e.g., 180
Ringing) or a successful response (200 OK), the originating system
SHOULD immediately cancel the call and treat the remote system as not
implementing CIDVV.</t>
      </section>
      <section anchor="failure-and-restart-behavior">
        <name>Failure and Restart Behavior</name>
        <t>CIDVV platforms rely on short-lived state. Upon restart or loss of
state, implementations SHOULD continue accepting new call deposits
but MUST treat all verification requests as unsuccessful until sufficient
state has been rebuilt.</t>
        <t>Implementations SHOULD return a non-success response (e.g., 4xx,
5xx, or 6xx). A 603 (Decline) response is commonly used to indicate
that verification could not be performed.</t>
        <t>Implementations SHOULD fail closed (treating requests as unverified)
rather than risk false-positive validation.</t>
      </section>
      <section anchor="prefix-preservation">
        <name>Prefix Preservation</name>
        <t>SIP intermediaries and SBCs that support CIDVV SHOULD preserve the
Calling Party Number digits used for CIDVV signaling, including the
leading "100" or "101" prefix, across trusted interfaces unless local
policy explicitly rejects the call.</t>
        <t>CIDVV does not rely on Type-of-Number (TON) preservation and assumes
that intermediate networks may normalize or reinterpret numbering
format.</t>
      </section>
      <section anchor="interaction-with-call-analytics-and-fraud-detection">
        <name>Interaction with Call Analytics and Fraud Detection</name>
        <t>CIDVV signaling calls use Calling Party Number values that may appear
anomalous to call analytics, labeling, and fraud detection systems.</t>
        <t>Systems that support such analytics SHOULD recognize CIDVV signaling
prefixes (e.g., "100" and "101") and treat such calls as protocol
signaling rather than ordinary subscriber traffic.</t>
        <t>CIDVV signaling calls are not intended to be presented to end users
and SHOULD NOT be labeled or blocked as malicious traffic when
processed within cooperating networks.</t>
        <t>Failure to recognize CIDVV signaling may result in increased false
positives or suppression of verification attempts.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>CIDVV verification is probabilistic and based on reachability.
It does not provide cryptographic identity guarantees and is
intended to complement, not replace, mechanisms such as
STIR/SHAKEN.</t>
      <t>Its security properties derive from the inability of an attacker
to receive calls at the Asserted Caller-ID (the number being
vouched).</t>
      <t>CIDVV does not provide per-call correlation and instead validates
reachability within the Validity Window. This may result in multiple
calls being validated by a single successful vouch.</t>
      <t>The use of distinct response patterns across multiple verification
calls (e.g., "100" → 486 and "101" → 404) increases resistance to
false-positive validation arising from common network behaviors.</t>
      <section anchor="trust-model">
        <name>Trust Model</name>
        <t>CIDVV assumes that:
- The PSTN routes calls to the correct terminating service provider
  for a given telephone number.
- The terminating service provider has authoritative control over the
  number and can originate return calls.
- Intermediate networks may modify signaling but will generally
  preserve sufficient information to allow correlation of requests
  and responses.</t>
        <t>CIDVV does not assume that Caller-ID values are trustworthy; instead,
it verifies control through network reachability.</t>
      </section>
      <section anchor="replay-attacks">
        <name>Replay Attacks</name>
        <t>CIDVV uses short-lived state (typically on the order of seconds) to
correlate signaling exchanges. This limits the effectiveness of
replay attacks.</t>
        <t>Implementations MUST:
- Expire cached state quickly (e.g., within ~10 seconds)
- Reject verification attempts that do not match recent state</t>
        <t>Replay within the Validity Window remains theoretically possible but requires
precise timing and routing alignment (see Section <xref target="hash-function"/> for vetting tokens).</t>
      </section>
      <section anchor="spoofing-resistance">
        <name>Spoofing Resistance</name>
        <t>CIDVV prevents spoofing by requiring the party asserting a Caller-ID
to successfully receive and respond to a return call routed via the
PSTN. An attacker (Mallory) who does not control the corresponding
number cannot receive the verification call and therefore cannot
complete the vouching process.</t>
      </section>
      <section anchor="denial-of-service">
        <name>Denial of Service</name>
        <t>CIDVV introduces additional signaling traffic, which may be abused
for denial-of-service (DoS) purposes.</t>
        <t>Implementations MUST:
- Rate-limit CIDVV signaling requests
- Detect and suppress repeated unsuccessful attempts
- Bound resource usage for temporary state</t>
        <t>Implementations SHOULD:
- Apply per-source and per-destination limits
- Monitor for anomalous traffic patterns</t>
      </section>
      <section anchor="amplification-and-reflection">
        <name>Amplification and Reflection</name>
        <t>CIDVV generates return calls as part of its operation. Care MUST be
taken to ensure that this behavior cannot be exploited for
amplification or reflection attacks.</t>
        <t>Implementations SHOULD:
- Only initiate return calls in response to valid inbound attempts
- Limit the rate of outbound verification calls
- Avoid generating multiple responses for a single triggering event</t>
      </section>
      <section anchor="response-code-manipulation">
        <name>Response Code Manipulation</name>
        <t>CIDVV does not require specific SIP response codes to be preserved
end-to-end, but it does require that distinct rejection behaviors
(e.g., "busy" vs. "not found") remain distinguishable.</t>
        <t>Implementations MUST interpret responses based on behavioral class
(e.g., "Busy"-class vs. "Not Found"-class) rather than exact numeric values.</t>
      </section>
      <section anchor="data-privacy">
        <name>Data Privacy</name>
        <t>CIDVV exchanges inherently expose calling and called numbers within
signaling messages.</t>
        <t>Implementations SHOULD:
- Avoid storing telephone numbers in plaintext where possible
- Use derived values (e.g., cryptographic hashes) for temporary state
- Limit retention of any identifying data</t>
        <t>Temporary state MUST be short lived and automatically expired.</t>
      </section>
      <section anchor="hash-based-token-security-vetting">
        <name>Hash-Based Token Security (Vetting)</name>
        <t>Vetting operations use shared secrets and derived tokens.</t>
        <t>Implementations MUST:
- Use cryptographically secure hash functions (e.g., SHA-256)
- Protect shared secrets from disclosure
- Ensure tokens are valid only within the Validity Window</t>
        <t>Implementations SHOULD:
- Include sufficient entropy in derived tokens
- Avoid predictable or reusable values</t>
      </section>
      <section anchor="failure-modes">
        <name>Failure Modes</name>
        <t>CIDVV implementations MUST fail closed. If verification cannot be
completed due to:
- network errors
- state loss
- unexpected responses</t>
        <t>the result MUST be treated as unverified.</t>
      </section>
      <section anchor="interoperability-risks">
        <name>Interoperability Risks</name>
        <t>CIDVV operates across heterogeneous networks, including SIP and
SS7/TDM environments. Intermediate systems may:
- modify Calling Party Number values
- truncate digits
- alter signaling behavior</t>
        <t>These behaviors may cause verification to fail but MUST NOT result in
false-positive validation.</t>
      </section>
      <section anchor="residual-risk">
        <name>Residual Risk</name>
        <t>CIDVV improves resistance to Caller-ID spoofing but does not provide
absolute identity assurance. It reduces the effectiveness of spoofing
attacks rather than eliminating them and relies on probabilistic
verification based on reachability and response behavior, not
cryptographic identity binding.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <?line 1124?>

<section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors thank contributors to telephony security research and PSTN infrastructure development.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1923LcSJrefT5Fmu2IITVVJVEtdau50xOmThY9rYNFdk9M
2I4VqiqLxAoF1AAoUtXWbOyVH8DhG7/ePIn/Yx4AVLGo6fGuwz0Ru02RQCIP
//H7Dzkej02bt4U7sc+yonD1+Oy5/alaz67y8tJm5dz+5NoWfz58dvb8p5+O
TDad1u4aHsd/mlnWusuq3pzYvFxUZl7NymwJg83rbNGO4X1XN1U5zpqP7mY8
y+fX1+MCXmla06yny7xp8qpsNyt44+zFxUuTr+oT29brpn344MF3Dx6aOTx8
Yh8+ePjN+MHj8YNvzawqG1c26+bELrKicQam8sh8dJubqp7Du65wq6uq3Izs
jNaTz0e2WVXVAtYwsu/OL94Yc+3KtTsx1l7m7dV6emIP/lNVFJvx++oSNuBC
hnDjZ9VylZWb+zzvZuVmB/ASzx9eumrbVXNyn/88qerL+9tXPblql8WBydbt
VVXjp8fwfxY2DdbxfmJP5RX6Je8gTSb9A3wiK/OfsxY27cTSnOUxP2crc6bn
3TLLixNLE/gP/4SP1/i07pGbzKolPTir1mWLh/jjeTq184l96uqP6czOWwc7
mPzh//7M3sGm4fZG83p3lRdFvop+/0WfGQNLmN/9O/j/r1w2B7Jp7GHTZjVx
wQ1QjP3qyC6BRO3U2catshoIYm6nG5vZaZGVH22Rw9DAT6VdN862V3lja3fp
Ptm2skCHQKb/xf7X9r/9e/jU7w1+z2bTpq2zWWtM4EKlWngXllE2MHyTX5b5
Ip9lZWtXdTUt3BJ2IyJ6s8J5ztZFVsMJZLO6ahp4ooUR5xWOQixNvyjpsLKC
+MSusvaqsTdXrnYmn7sSZMLGLmrYV+Crj41dZhtbVrRk5MC8aeEZ/MRqVeRu
PjHmApcJ/L9ewl/s3MHUXbOnUBnZzBT55VV74/D/22vgW1wmztAu3ewKiKtZ
wk5mLW5pYxvgonZc5New8bgpGWz5pXGf8MlL+LsrZ9Uc/obHhRt05Wgm+Ml3
sEMb+2a9nAJ1woHAchZ5LYNnZiaPregx2GnY/pmDD9E+wSG0NNpp0yAdzcMC
YQtoMRa3weGk4K8wfrVySCB6GFcO9h6IsHTVurHnZ+9oP87Pv71/8fy1KV3L
+40Tr9YtfPzP67zGCZXuBs+8rWZVYd0n2H+UnQ2wnoUvyImEswNxXGdAVOtZ
u66BGs9wLDgqeKGE1+FxHJTOvoYP4T+m7iq7zqvaKI2UTCFwzAVwfJ3hzi6A
o2BAGAzos8SzyJQy6RDCcY3MusFf4BuwFfSprG3dctXSS+4aJztztlrYko8D
zqKtYXmwYVd4OjAQ6InZzDXNYi2UCiy7KhzOjIjORfSRL2GDrh1yG+5HhoPD
CQywFDCr31kzd0tYCfAf8JOfAkxq+JxHwCWwIOFKfD8vZ/AP2C3aqrlbFdWG
xsJ9bCt4DfkVBiS+W7p5jvQgR22W1dzT+oSlwTKfzwtnzFf2DCczhzOEPw7K
hhxJZe7gu8AXeGrItOv5ukAmxO+X67yhjRDC7ogIeMGV13ldlbgAkQBC6rAj
cOogwZbros1h0002X8KScata5AgWKQ19J6VrWRxIptlVWRXVJRDexJwWSNSX
V+HIgJNBKiA1nF+cvb9//ur0Dy/eIJkjbdhZvVm11WWdra7ymUHagUMlmQCb
yerdKsGP8Ljy2rrFws1wdiB9GtyeIl/mLJ955SDx+IiWukUwFxiK5AZsRyoc
6V9AE6WbeZL72+RcR5yxqIMROuuBv9a0V7qVtcvgxWlewB9NxCCweUKi+uqE
bTOhcBiaRZuINH6cJhgRFMh1IllgF5V3GfwEsqNUzuVhhFMjwfoT8P0cZ/xH
UG3VjZeDIvgaZDaSx/jNICfQXqyXfJx9MW0SMY1bKSIIX90tvnAN8Gkc3WTh
cMcqsayqiYlF8eFl6ryCuaKOk30jiQsC2lyBGQB8MBoSvyOUv6p14MMgyMMa
R6xtGxPrg8W6JFJShbDMP8EfVBGAEtATb2KNslPG9Ga+LnPk3KwAjq1W9DXc
FGGrKfDGIm9JJ7B4wlOK5RDyV1Cr082g5GK+D0olHK1oSpwZHRTYNaI2wiHo
aXkxgy8iASi9o0Xid0CmDuIC5CFuLHBDMW7zpUvUSKDnayVKYPugQ7cxgt3N
COXc8LzpAL+YL/5IeiNvw3npiYD5VxVr2FrP/TC5dY1ye4QvVCDUYKcys0Ij
EQ6p4L2vpmiG8saTxkLPycr3VzBnGC0WDLqdQZ3DXltwnixYkKwARO95FvO2
snWzqtmAlbE8MeaefaEPKPuBp5ZNMzIISO3gdpAhBSZxQ0oTBL0sGGxu9oTy
ljWJDlLdlLDQKzDiF8jI/ts8HHDEPfs8B68N7O4/r/HUQW5eVbBMPBjUTcv8
Z9LhiyKftWytEyl0J2QP3eRyMrIHxw8eHNCM4afjg6OeTeGlGG5hjYpWjhjt
i3lWz8mn7Ash5g0RwCVMDpkniB5U7hfAUjlpx40xZyU7CqpZSJ9Z5Dp74Knz
AIYkSoDV4p/1YE04a/gLWAJ1o2bKwZDd2xnHBNYFVVTM2ZZg2/jabZjAIyK6
Z+/dO4UNdvfunZAMTY1mXLqotRqETGmvVSUuiuqmsfSqsB/ajnw0/4B0ey36
Mn7Qa8in1fSv//K/G3l+QtOA38WTgGnTHPizyWDwJApS3DaiMtgfIBzlW/jL
1OHD+BL6Mzj4axixqjf4gdMSbdds9hG1ERuxxB0Vm2KxCOF3mdHeFVmLioiG
sMw+sp1oxTLL4ZSuY6tBJw7cMnPzNVIQ2xlz5u2ITKKPjbObDGT/G5GfL3h4
mfz502eoqYIcr+VYQchV4FT+jDYMTTnQAhDVApRTE3xG+A3Z7k01y8np9V7A
yE7XkWDzq6PFge1eyOgr2RCLNuGMZ08Wk54iyDfL+5k+H6Q1b19rr8BqFNqY
x2Z71pMb3pbCyQwYBIHbQcXM6nw6sNEqwdARFg8YP4YfgX1dVrVLvVbSgRM8
9OC/0CF3dVlQYLSwtsdOsrRmq99Je+jgpO0hTIV+xo26d+/oRC0cnAHaYbyG
3uaKD8yfACHnrglh2Ofz9hrEGomqm2rMDlp/g1VaT7xBjNsIqlbsNIZPSPvz
gTGHzkF4zhBlgGXBlqJsLRasofKaOR3lgroQkRIH1cnmpquvQYYAef7HqroE
cfgUfVLcjHc1OFAF/gXsj7lLECy26hxTfI4QDulV2EfwRZZNRLX4Dfys8Dei
En0y8K4Z2bdqz5Alqaa6uhFgm9T5EpnTCwQa4ZD01BFxIpj8bNOBzm+Ae1EL
DT1P2gxneh4o0LPaaTpNOCnw8WCOc/pNMJXAQNdhZ2gWIEpmb2CzF9W6FDH5
Y9l88RdQM+7xiZ/iod6AgHmnhMOfwl3I2ZUgBzY9g2oNOs2jVwQfwIHM12Tl
iVCGA1fL0w+mJ50acvFZkwVKovEa/co1GRjMZF1piq6rQz1D0gMcCpgCmyZo
6syqGviO57ta16uKZGq7WaGxhxzA1FPVc+SOhT1+IGcvc+wzpgrUxCZei5QJ
6g6PC16DKbDms4f5xE1GMTOyolQJG2lKlr1H6EfljSpX/gqRfMa/Aaswb9ig
8wxwUX0Eo22VbYoqmzNZNyL7kAiKqvq4XpFlKnzTruHY7KGucxzhMaz9aES0
396iLA0UWWx0keiODUkwkUVkEtVs+Ihzii8TvHWg+8RbMjogdUe6jZ5jQy3w
eQwRwM8HA2L7gC1NXCKGLuCh1z+eXxyM+L/2zVv6+f2L//zj2fsXz/Hn81en
P/zgf+AnDPzj7Y8/yN/xp/Dms7evX79485xfht/azq9en/7pgFxUc/D23cXZ
2zenPxz0p482BezI1AUTgI821pXm6bN39vjRyL5/+cw+PD7+jo4U//Hk+NtH
yJQlO8NViRY0/RN2j/Bjl6FdYmFjzCxbgUdQAOVnhPHelBbZGa3lr+zrClwF
5hAc6XSOSgqdGN5IpqtBOypCCIexWfITyH2Ao0S3P0VPxZRmxc28TJobpbgT
Z/4SkbB2AGucWPCzGy/XMz9t3NkTNqZ/8P6Y97vIq0inoRwdlkNYuH+l6+Kw
i9j1zmDZrFfFTe8jzdmcxR/BXwmKzLM959XDMvKxByLDXoh8vLvZM8CaLC5R
7hTBRigceICwm61Y8mB7ulmGoRaiLrZh0CEmIwIhfIQl6aBJwqCoxeXvslPO
cV2CWjfMA14W1+6f4H34o0MIFWyFRetUwTGyNYCSq5Hy6MEjUmAvWbmxgsmb
nIE95LEqoLvo7F/Dr+nku0Yt+8oWCU9PFEiQ4ic0CrCPTO0QKWFRV0vWjkcC
lYpTTatjkd7IqkEgFXPElb3lDOb6pQscpTi+LOAH+FTQdBUQM2JmSq+IMahp
1HrcDlF6oNMZchcQwA0p6QphzZuc8CEQu0FZR6g2vjxKtxscPNwQZKKi8Hoc
VYtM8CV6IBfPX99HfA5HBTnCO95nKsa2SgImQhANiC6bbQjfw908O3/+JgB1
lvC7PAHh9NNnCZ5M8bJZln6bwB+UIooNNknozr88RZrJarR5A9cWG9rzUmOY
FKdG4ycK3/mpzN3KlejIow0RQe44k7M28CjwjAfSQTLLJODnQ7JV1Ls72hI/
iMF82JV1mV0DQyCuNqItYvwSNTL5pM16AfPNyZ2lib4IpjdutljxY5leDR49
CD2/h8baeza80hDL8yeE0lGRdFwejk2BAijHTbWuKVKEXo7y6R8yjB3nFc7w
FCxEGPnjhL50zrPRzaopBEceyZg9pmvYYgQ2BWK6AGek+bGEI4Sf35yP7Mu8
Bk3xtqbfvMo32QhhGaDdGe4P/Hi1ntLOEDc0R7QeVVWzolrPxyjK58PKTl0e
nuwzcFyqJU4SB3FgiQFJN0A9sMopkK9DK0wXMgJrhpZKQeeMY22uzb3Ondcg
jlCb4IbO4NnGB0RIqzIjqtVXA6USGs8mPQ6AcYA1a7ppTZaf4tOsYrPrijUs
joAnhGq3ygWYVKlK8SYQdDAFsJzyUs38JgUnSKvP8OMgl37GSLHwWUPIf0NH
uHLsRC6zjy5FYoJESCJmzRpMFESI0aBturQwitzGZiRrnjMkh4Y0yAzngdsO
XJ0JUD/PQKkIfaJCG8Bie3r5K/ucT+AdnN4Mg3XNLfHoNWaW0IoRa15KlICc
gwjsDxFpzgBAYxf2Er1mkFXwQCBUEtsURdhEwYMozNOJt+A7boHACUfrG0vR
HJGeSaTIEEgIhDnbEsbHaSOBN2s4j2unMQVGxSnCYjqh9n6UJUQyaFNEIZO5
RNu/zpvAM7MCASmkSsNBKLIJckEpCAFWhBmOenNgr4HoDlD2kVd7cDRKgtzB
+PLSWxfsjRPeIzbFCe+tMfsBqGvcVmNHxsRXuiFv5KBo381/P7FfsbIfl/Ef
7F+MOS2KPs7uPZk4kkd6iXwTmICnBKQpOJ45o/ItG5Do7RWIuoJ9ezyx792y
ojgKJhJQSo09+O2BJxxweEHtrSUC/nBif2xcwA1fTI6/eYS2AkPcPPFDUXa0
Kfa31qvIKEMGE3t4PUfsxIHsJ1MpzBS27E0F7D2fSyzd41FAq0zg9DV0WAJl
qid7/HhMgxkKMcNHiptsg2bNkpIQdKn0jA+sdPd6pGeJzEKmK1pwS5Bl8iI7
P++Ua95e47Puhg5VeWlcyW/xRPnMOE0GiQl2JQgaj+mimclxI8+Q4ZjJLeHQ
CL9g//ov/wtFC7kwCRiDQ/PDx8nD5x6Z6j1u73sYkN6WGQ9xNhunygpBJBDI
gDoNdQw5oFtTfCiiQaJnw4ORiRYCJlljmMS8OYxgBDzI/qcaWllCun0Y3rwl
TVSjgpiyYzwQwFKh8Nvjh8cPHz9+/AD2+Ai/ZvhrMC5PhoUmQ0OgdyjBgVVk
F1firTAyMIx3/N2j72jo7747ihaCHntE+kHuhaGGT4BYfpG3cWzTk/7glhM/
oPGwZP1VErcS4gXvxya0CSb0S7aikH+yBi2jiI4RYa6d428qlbGI4cyOzENJ
oNQoK4zcnWGvEqj7n+F/KB8YOnr27o1kaAxuwZH9Hmifvvn5M/yFPsRDGLZ3
wzBLh5739rFGOhKiQsRgVW2IedhYoMCtLIUU962rMYeRLAYORs4jVvvdJ/iS
bbP60rXfHwzJ/4P7v0fADHfeWz1BCIxunYxE3MQf7VpeZExFvD/hDwnnb/uO
gHHJt9AMXXNwE1FDpviJxEydEBrMpnHif2xBEzBidPwQ9c7C3VB8AQXsiGTH
u7BOn0m1RkezqQJsSUcMTzQY32KkISJMI4TpwxYgAdFEKtM9Ia02MDsv7s8W
gmGohxu+zV6y+zRDK/L4seqWCLPVbCCTLpsCVJQuBBvAbx2NBE0ZUlMDw2SE
Z6BuA3u2bPOC11+1oEMQR4Hl5YhGZbR2P7mRCQmjvAmJDz0oQGacj4d2/4T9
izZoY7V9JFrVUZc9PWtUzzIsH2AcTb64BIHTEjV4M6+Tn2TU6sPoBbyzRkPD
S/mG9zXdRzjGUxuHZSXBQqEoSTthzLIXMCKRi1DBxpBI5P3gNECMKXZ82den
fxLcnNLZEN6oFetiAMWowN4hmoCKylmx9u4XU/NRx04NU8E9Eg1FX8wbyo97
KliczJHZqlG+VrdhrikM4fw8YY6Mpg0NKFCw7EbInHVGeYrkZa0oR1LTIWAH
jUoTERX2WRRe4TiFuB4B60TXbgZSSWFG05FuIpz72W5nJYMGMhlNluwkvMr6
kYI8mWmiEX6tG+7GzxFhzjXBlpzhOE6EWfgtpsFTShIKixEowhh4TdKoM87W
JpcmiAPc23imZo/Mvk50jbibGK+aiiXLCIB6Qmmc3PTj5OLt+mPXICnbqsRL
PTy5m904FHbVmZCmVfGs1MJpTiuGcnt5abCvnjSGZiz2VvINbwEfEUtOnSbS
GGDOHI6LUAtWlZzdJelGfhp+y3K2wZ9Fu+MXogYQSQkfVyUI8tGTbzDEvbGv
KGxi7Sn4XOxk6QpHFLQEk3Ykmf8Y1XZUiEO+fCff2tgo49q7fzFplqANuqcz
GZ57cBFIJOqqKdcuWUYKklv7Cgy9axTiuap8sCc/caZIyTC566fNjDByR1/V
lYC/sGHRy6FXNijwsHbuY0eWK8CsMl0DdrwtgVk9UYGPETDOJGMx6xP2uiwo
dbllZqe8Q/TXTDtIKeqNxqSBMw5BnC+lXqNpYJR8mjUu0C2FP4M3FTnGurNC
BkYDAAOTEB5pKEhaEjwg8W0KCGJhDUjgYmLOFG+OQQjcb0KuJCrO7jzYTi4n
eu+zdo7Jtk3DibkF+SMjMDSLjJBoiUaQOzHIGLALHUMmOZAVCtCa45pGqGmA
XRJeoVHnmDm/RBTTeQkbKlmq2Wxdy0FxECX4a3Pw7atLybSt4rMwkm7YIFQJ
mkZ81K7Dl4dKmW564yDeZsRSEPcbFUn2iXMuGXlT1GxXsYsZQOB+6me8IXWg
HUHmct8OQKpXW8KgyqSakrxcYVy+SksHEmcjT4MgQfcO2kSauN7JaicypO2q
Ssns2Kk3v/oq1AUgEqjrfa+0+Y6pp0ngGwLBs6UbyslDXpuCZI8nhEyJ0wj2
U09cMPRtGcGeugIDd+vlEqy3n+WD8xyTjSm3FlTQZ+/5hgUcFloOdWTD/z6H
YgeY5BisG0JxHYiONn4ufgNkPHz1s/k8lv/5H4b/d8uft78An0BohL/6gjYl
lfHppFhv7/e/zx4XY/EtqBp/8Tj9YqzWogE4IIQbekLPHAKFVk3egofGMJr+
DWbMbwR07b5Xe59NT1DGyLWqzMPrmBDl5SPJT8DokETZGSFTLYVHmoE4jGLA
kWeIMbr4vL1SGsh7seog6DiC8HjgO/KIKWxBklMHjHQ7Yp5FtmJRXCn6luTB
eTSfuCik+saWB2b+ZFgh13erUHqzSo+t1Mx+LBFQG9iH2YzmcanOjT7iVZAo
CdC/WEGb484SMzHpxAlwFPRpOOOvZ18AYf31f/xPJJXIxBiyJQi43mEhcWmJ
V3Wyzb6cgSWXF1LnbolJH7MmeHlJYci2EAv5Hi2GQbF2esQlbxtSqpoDkEY5
RiGBOFb5PgHJhLwKjoRGcRcMW2JwxsdfkMcPxvw7IHlz4FlQfpu4uAxgePUX
sKbOhCTZCvdADcZDL0342IiV/ceOjM9wK6uSajjSoIZCF0lxDONZIA2aHCR2
FKuKnR9+Ca2sfhiqkUJF0/U7RUVzoNWrFyy6sS/iiL7G1sC6MAq9CPgtWka9
S7Q/mvVqhUaKK6/QTpx3EEAgp6/EUhW9cjgUVThCi3vIh1P3IU2jjC0qBJyB
r/JWbLCGTUsgKKXSsEddey5LiMUTmVJSzzE4Cp5Bh2Bj2YF2rR+qCoSGe2j6
9jwGTwIQg2YtGayd2tfIi8OC3ShDw9V1Fby9hsYbctPSc0kcbN7qxGIPmSHE
cVjhTlVEBUVAMX18r2QuTEfzZWs+Am06RbdVnV9SVF9z4APhHAfCGY4wbSGd
45h0NDl1MJPaRLF4ZowdTvrelNWXOnaQvGIL4SiGuO/u70berhGfTF4IXi/m
LLpsHnm/KQ/4SZpdPKDKoGFcxheGE2BcaCKVwPRiI2N+o59vCrCAUwPU5ZVe
6j9tc56NOpxIKM+q5ZTKZWLK6Mtw3AGJ+LIt3akGG3BaDRYACpiTKZyjjJDg
OlrQhbAgLpTTHtl5UvrSbQfRP20zmjFqbIJ+LrzM6zIioldN6nwmZ6b0ObKn
b56Hkbrr2TJSj059W4Dd0OBWJ12LUtvtSACmpaCfawQG8LYgefZyqC8l++cV
nA+llmigZBgTyewlVoFHbI/6iRFK9PdR7iRT8bZPDK9td94ZbPAZpwNHRc+6
uQS4FBJg0CMMahQxQe+N8qfGAWZRooYv3UqgjX5Qw0H8MBiKxLGU500v0W8e
PDraPS9P3sPTKQVm2bJilI4LqyoYJUECn6DOAha9XFdr2R62V78AMIlzI9QV
Th3udyofMdsln7nfNF1LXyp9SZwLDq4dKygAyYWIQKVPq+nEnAmw40MhPpLD
gjVLyvWGw7G9zI2D+7/HQmumPUozoNMTRwKRHh+LmMQJ76m3wh6ExmZ1LZEq
pDIKkC/gRR4+4wCHBqajwgxQoupw9Rl94Nst58eg9mvC1znYBwrDazqgQ3OY
mk9yIFif6E8BRxCS5Xx5lVJiGEgnEMlNNqpOYLNusCAXKz3Div07caeWP+KE
4Tn4stT/JB/nFONsF+jrFeLTZ5gFm7c5VQkPxSFkWrRUkWWDqTRS5AX6lCY2
FD30JNdEtTRMdWHF6OyapWuvqjlhMSjMxHou1t2oqY+6qfHFpGZ85hTVfu67
PD+LrDVcCCROzxC4pucwSANZREPZ4Otm6uBgS6q4ylU2Urk8B0aqdRuxQhuF
8T3hwgx+XFXa4kf3r7fEkd0iN/BDBmuV7Hp1N/YiRg2wxoA6XWyrvmNkYDSw
HI0IIR/29dt2nrQpT6J031KW90t/O/WQ9/BDRLXRga3IHob5H2lZoTjEZtCJ
uEszJ8OBdGC2vF0L4bOSVucnNje35LpJEeYufmYbnLkLbURG+3pbZxR5ihne
ywIOWSea49hrDhIGxw81dYrj4r885x3/zZzHiffCb7fTF+/LrSQ10nCan04a
VAP5ZraCY4eNc1v0tzw89g9LLtXpNs+h36QlqXRcRDlYRgtAU/BvGqoqM+k+
UXAuONE+x9kz0w/FbneJ7FNv2+/yjbyRq0VsWo6crBJG6TlUvuqNqjh8rfLd
sAdeZoRARBFGjnd4rkwcMLGZB/wNZEGf6jvaauli656uYwaSPbGruYCSfxts
a2OoqIriM+Jx7A4Q3RIm5SjgLxgk3eKyYIXFLQa5SQzy2l2C8icOI2xiI/vA
lj/jx3Hyzetq7nzGb8Dq5QlpgxVnDQw0YDO93EPOncx6+4o1TZ7v1BhuK+mS
t9jECV3EpIW7bGJkFM1K3rAkracJ8V+KLAyAXZlEbbwpJWcYUQELAK0eH8C8
4eBp33HByyQNKLu8xJ1vo3IVjkICVeBriPi21O6Ry8IQpcOgZ6d2byCtJtWk
qCELl2GvC+CuyCSIEoZoXTUV1Nd6ap2DSIodmJMJlsImq201phwkL5YJ3dGM
O48E+ONhmnqVNVf2pbbSQump0UcKQNBenINMzC4dZcpfwfNj33rrL8xwdHbq
TSKYPQNZc4ldia6WnvJJ5i6waetxiNuqBsa81FC3gMk23JmSysH5fMVPeO/m
eXPEm9rAxGCDQ85tSIulU8QquHunfiac4Is66ujePSqo0PIOETESEz+R3PE4
zRvr7eLMdfp3VG+xS8dtTxl+iBl1PrcVKfPHi5fjJ2CGAOGc2A8hI3ksvUzG
wgSfP9uDzwf4n84z8J/eIxxTHHNM8YP5ekI9ZNG4OH91On74+Btcqms0jp/m
29JcJubRxF5oadeC4qxP7JX7lM2BrrDaewbfAAOAUgrUAcIxJ+YxLRLEo3T4
ejKG97TEhfqA6RjIwpfoz3wzsT+4RTteZZLv+7MDUYIPHz9QNytfUA2YQFCE
TyFn2t8c/0aatFF2GmbqHovVRtQGRPHiU7akLghI73kBzlxbi+4FDX10Ysa+
dcz3NqowGKm0hN+G4oCRBmu/twdX2XK6hlOvD2CM6GjnJyDPw0Cfo9c/J+/o
gURbTLpQtwh/xjobN78vC/bp3DjV7x5//fWTJ4++/poKTJt8mRdZfbQFVFxL
eZBP97RpVZPY7rIGNk2oalRTJtIyZO6psmEOpe+jgQYSmQpcYytNkydo2vAs
2yEccqJg1Nbsj6/sa9Qf4wuYEUjjZxK74lWZTvKniF41pIKYiFvg+J6ccT7L
zFd70kZhn+xaYjJx4qhvRcIJrwarBvRVaeYBh3RN4b91SZ1g505aQGUaXmT5
vC5Zcc/NQAUBfxlDg70M3TQ9eHuYVbOAtM8yyU4Q6iMuysSHSMqB8akrCAXQ
ouZz6XSmuH3L3UqqQg3QCy47IbOcu3p6m0ETZofKFqSZUu1MVoCanncSiNOU
CEkCkmECJInKqedMoILy+oyS7lufvhBCv1hWr9siaX0+8Qf7Vkp62JHPW4iS
OGRuH91mkvSIijpBiR99754ID3aiD8GZBTWUtoVijdHvu4WmMcauXaPpTNp8
Id0bK2EuxwKu4cwkgV3QCg+wDPejiSApDSv4SELaJg6NZGZ/sPtgo3td5MxT
zgTXEybfttFvo3BAPJG2DTkwS6c+0vFMLx1km1EqoKelxAeG1II4kgX4I4t6
WqU+t2gq1Chkcaeg5jZ8O2jB+KPkukvZoumn6oZ2fiHfIK5OiQO8Govx+DHZ
hmX4nliNE0VFOvi16Pc4eaYLb3oTzdyKsidWH5gu7Ie2nPyuWZrhG9vQOGqU
uhXiNrdBWnzaLM2jpD5VmTAQ1pZ71eXpwqNBPfIQId2E5DDNotpJLypSuPnS
sys3+6iHDBqFDz2qqhOGldorzYjBBJ39iW3ok12SG8gOD2Us2pNOmm0n0/A1
JG7G3egFVSVtEvzc5BXyYTDDaHDuQyDTHpipB9JCRAT9tsZKQeO2HC1SC7tT
9GnOeUPTHiF7UaZ1hMlSrG1d+iBooIB9kvVZMVmxLBtSUt1+cVy0+xJzRQ+f
CtJyxB4UU4vkImNzPCo2TbJE+vntvrOBiTGlATQCd9/bI3dEf7TCk7mP/kdn
/Y+n/I/zp8/0R8vRo/D7p/p7oBEjGZdxwucdf5YhJBXVnr356ezihZV//v4u
Q/wCs4h/9bswmX/FWeCeIEP9QnsR1rR9uDssZNtwf5+92PYznNRPL/+EGczj
uwyx7bVbhtjntS9cyB2G+KXpYo/h7kIXW4b7wr2IyeyX2E4Sf+hbLPLLcRDB
YxabdOPT9weKJ/QEfhDzB3/xOWgi4Uf2gInjIOSvDgeGqW/kcIeAvB+/lj6w
mdbFx+X9e4Ws45zlASUW1oQXGK3G0824gf9KG8MVp41chHXabIpNS1if4Vcw
RjDmVK8ljAxOKHWWZv/JK0JBe9FBgNG94uJ5upbvQgkZWiHTM8Qel1mZr9Qi
TDrkdnECtJMGworoSB/zvOIoKDYhsoekEEeRmfAhbkbxIUlmQEqMY3iwV622
W+LRQEOO0v3H8QJK9AEt4IcT36Bbk0C1tF8Npx9xtNNL6hhdYdNHVMTiYuMs
YL2YZUBlcTKZeGkdM+5QVD1+/OuJNsj+x1NuFmYJ4tI8ijSouj0Fx9Mfs+ct
RGjT9D8ydHyHAR7hQ7xNnYZ2rYeZPqQdPT5MZAFoAEaOyNZMH5EIHyQd4SRp
PTJiu/yk2zbkA7+2NTuBpvB+MN/n3r0kPfTePTiCR5PhSPO+eT6UYIIf9Zk+
t6T3PI4Iju5N4e7x8n3tWC3BnW8m3Ede/no4wFBHQ4TjHbm96Id3dF8hZg87
XDSS92Mi2UIaZ3tn6/xGURAe/LArCcIuR9Ki91HzLe92/1vYnYcyCtrk/Dv7
/2Si1wnw3/1eP3etJzAfwoirAKoynZwSZrVuY97AK6DE9Pdh9m4M+rshKfG+
mxNGJB546qJK2emD/8tLkG1drvrAg/5QVR+bTr7Q38Kkt2US0Udf5pjuECUU
cToPiWDSgl9PAn1zU0OSXom76luTJ8F5uucC70MRsTYkAI4fTCL+6/F/TBCj
+EYCEPaZqKHbJjK6RYrQGIyeJOoGZ3esswsAprZIIuczdALMqKvZbeqnc6uc
GY5jhwiC9pjS8g5hOlbEPP3JrZ75C6m4udUz7znk4VXheAyS7OOb72hHP5DW
r968Yj1aZC1+fahXj6rM8WYTjBwwGOrR7V49HdW5zTTFRVKXouKA/gIm2xLs
JakGs6l9xT7lk5utkIb0UPKNugaTCJuoFxf3GcbDLeiqEr3XRyyFL0gEMSER
5FfoY48hfoU+bv/ar9DHL7qQOwzx/xX08YVD6EkdfxlddF+7ZYh9XvvChdxh
CNr5B49+Ubq4Zbi70sXAcP+WILHtYBYVVfEZR8jWUAkg34cyhGuxjhe8JvKe
goNo4lZucZlQr8Gr4Fhqm/Vtv7ujWFjd7uuyo1gMJcVE9t6AubSXvZe8YYK9
F2xRxsT05pBhUOxX8OpfGbyyhx9S7CGBHRS8+hWW+rcLS8VEsQdKNOjY/53R
ou3f/DujRnuCRHvAQx7JuSMV3wLZ7EJsdtJ4kqLwBTAMQzkefBnCfujoO3uD
8ElCqUO308UdGoYFmSSz7JJnnaomEWVpadOoh5Ee30L9w7O8lf63kHvna+ZY
9Meur+xH8cdf35Hkj+9G8pICyCUix4/+PoDocR8QfaeZUf2iw6g4qpWsVKrl
LwOiHtWQUIuM27RA3GCDmeLxdqaAhztMwVmKkmoTeoZ02SIxZkCSv8qo4kFr
gXjHxlsqifgPUTER/m579dCIipKiNcS5R8N1/AMA1vG38TbsVHuDGOqT7Rgq
WLH9KyKx+IRtULUR0p4+O8v+MYkeKcCfxODed3s+wFTOJTUYgTfqskFltre2
jlXCi2r4pF+KsUPtn+7Q0mAis9i3VE3aEHfbTsI8qsWdyaqzQbuIrL8ieP8O
bRru2cHSSNnIvVq+0BoHAOxtzUewmA3vS2rwOg/MsuOWEwTRRglzPuvORC2V
er1xu912u5l0VW1SEoWBZtXSpXnfcYKm1NL6RG9u+XhTJR0qh5qlXPHFEODb
mZ132PUw6Q4MbTR7HC+xo/ssq0vXcpmW20Tlz6HurJcGr71ZKKc4vdUjuWMh
AM4J+pzgzx0Emt97avq+/J3+pe+PA4KT4hN7vp/+dv/R9pn/rtHuvv50tF9q
//Z/43cBCMLOm3d+Y5/v73pj+P3939jn+3d4X1OxJOnqZS/9nm0TOi87I7HX
JE0X2ASRknV6FpaBiVmh98CvrLf/+/uP9v8q6xE2fyfW0zf2+f6uN4bf3/+N
fb5/h/c7rNep3vXFCAkDagFUSDBPG955xgu6P+h0/QKG5H+BEi77N5dweb2f
FnDtXb5l9ynfIsB2v3opLYf+4KtHP3CPIXqdCrP6fXU7UBN3FwMPZyibCn1F
70VqIw3BcZ9SS4qML3ykexr7dXqjXTMZ9RDwjpmsy8NNvHHu4xFfxdvSLaQo
w+VK1U4iJyO94cPbEOFO2Vu/kovptQNIRFsXtciKa+S62WYRTik3KbqkH8Kj
iR9BnObYP1YIAj/+oZOrhV3glunp0uXEipDH4IR+Yng3nh4xoqooxVOPUpy3
db4amAqnFl3z/abRZnfSx14OUdBIdaKvSA13Td+CrUfU020LmhTBSjpXfPWR
FdAl7K669JEc+KlLpQquUeEW70O3Xv5aSJ/L9qWmPeQZR9XTuHlby/lhS7t/
9HX8H5hZPqRF/CO9oavX0J+7hcb38qX31fksKRGYFV8CEPU2kP3Ccv+YP7bW
+x9+mD548N3D4++OMcYx41p/viBdHj78ECrT8ZlVNk+r+XmNUtHeAJnBAjd4
4SATXfR2N0DCyV9r96XRjB6O9c3Em3uDIFZSgBjqsLFEMilBpOUjHtmdPyL3
+gXf8xbv0bqlXjGVLRG0MlQb2BVdyQSe7BQ7Q+JmDykjfJ2C/LcLEzmft1N/
F5kvjNVSxViBxSs50iJEMgw6pYuxieJpILb9e8B+dJXnQHUhYv7DdJFcf8A+
Brbu7tco4ge0eSFezSpybUj7pmlzU+kLPKtAaDTU6mA7wtS7Ekgb85O5FSAU
bQP7DK/bIhQxrSymfgME/ShnhfAzXy3JVyuhleLxvKuM+vnyRc/5ajAui420
g1QRZsTr5gkPxAxY5LWRla/Gxbm95558M5HGvHcxPnDkfIlXjdCG+dkTOfn5
hWJ4/9nBK69QMPyWyMBDRjCnN9LmEgMCFUyGepcDD8i99NIXQu/zItSSP0YR
cYpqKn+L0dtr/HZW0k3P8aVpnDGZnuPtwCnfDHhTkeKxA1hYdIW35plyG2Y1
kkXkRbwbmekwOK2PFkVdy+OIjLYZQTO6YLVJ+RUt3RqNI+I1EU3fwpzwbd14
PT01m+g2AwFafxrdnPamKse8hefUqRSekB/4K3Lxj28eJfutlzOll2yJwOxd
BOSvWkO35kp6ogoBJTcmkodBbxtBE5tw90bop4I8KLSewShzZGU4GVyP7w/u
LzMYvOthoHe+LDch+iQK4G8y9hEAuhKIGlqx+1TCZqZMLu1fd7RBGmrVS7Kl
m4VMbgb1puIG1bhaObnkil04wTd6MwatyZ+LPs53SyASrmlIytBi3WOhWZp4
NNQMFTnUh039NfQYBmHWwyHlW1NpRDZzK+kn2el3S8YWH3xafyYDxB3kcZeF
UXtd7h99+jQyj+H/4XjffPpkO83w6f4PcEC6iL6/TRjWEF3/wV0jm37bx15E
Bj/34Gt7+NzNqAoQyY9zmrJig5eajGyRTTHB+5KtukWdrefUHoypQpmCF2y6
hzZwR9Nhp133UbjWkSYeWMhTbhgl7phWDdwtTe8qD3Xq/8Kh6By5jS/dEoGc
zC06+TjDJ3k6u3rveSOcEqji20sGbhcL4QYSUNpGiKoj+FrS3jEbmTj2Y6Nr
xUiyz9d1KDYJ41M1XUSC2XWVUyunLbefxVfZ/JTVuVxWtvVuF3/dTHSnwdbr
ZrQftNI9Xq40cDNEetcM3iBGQqgq+C4xM3T7zIjFWHTRzvDFOhiD4qt1Ouwk
xSPUme4CO9Nxf7zXQPqX3MzaXytTIDSCxE4PF3QHM7eLUmvqcKAjoxShSnNj
SvEaxd2xtjdWGRL93OSCfST+drZuK9TVrIYwntkN8J1YDiaC0G7pFkt6D/6E
xgWrkiK99MQgCufw4tJu9JIvN17AaFcyDt6gPMV2V3Ixl+ML5Q2V/5EHFfoG
3rkpjel2GiStpz2hpL2Wbwz4Vehyj9llfduh3w0fXAjthS99pZNLsnyXfpLd
ZCg1PHpXdh8/eWDe53QhzZGlKxaSTqD68MMHD+zbP0gQPE50ZAmqPB77kDPM
NiiivEEvJyOzTFR1RvrfeKvBm+pM5uof4BDvhSBCm9tuBbW/w69L7xMr/Yk9
SSExYR9N+nO/W6esCi3CvMTG5zPUpdSyxt2IHGPqaQwGW2Mrp0Oa9hbSDC6W
6dBn7abrnPqubpFp3ii7i47GBjep8gyv5KlqlvtCuYeoIeumc1swXmCO+mAa
5TVsn2/E4vaQdov9uHh/pDnV/MgksjVvPsLrRePGtOvU4tlfvTIRXiGw4B1f
ayVXRyDuHqRtnUsf5vOnz8Rc0zuuEmMtuhprS88DcZE9l3fUZdwLAMdIcxe9
JcfGxcg3qa3XTau9+RYExEjD66Ka4UXY7MOBSIX/5gg0dHtYecUdJbcwT1xs
Vm5cLcZ6PfjF2zdHus6gj7m9cMNnvV1LeZiQb30LupWdLZRNfN86n8xZ1GvQ
W732VG01+vJLMtCeq4G2zQBZb0nW97eYapPCbLVyWW2yEnRNgReWtpVKo7uZ
iJOOi6YEw8aqX0PPSOvM3wRDUq6y221O2p45afY3J8GKQKFyJzNuqrdEin/p
XQwTWWWSz0Mbh6ZTbadAmh/ZoUeSmOW01/x9quQ04miGjKRZJRknJE79tbEq
62PftmeOsy+q3oneZTxn2WBUNjR89/Vqpfk+4LyldaGhbTJF3deYV7Olk2fy
InevmpK1yT2Gy3mwIwVcIEuUrpbxbKidQ9KrbBm5hS9frjMw/Fon4ilvTN/C
Rnk6Ep4mmHYUIBHvO5nzi7P3989fnf7hBfW6bqmxHC8P5gD7TvEyAYUJ5uFI
jl72K5eStW0Gx1obPox9blkAiX7l0ZapQ5Iny8RR37yOVNLtgPkI3hN1NGX3
hu8yEyHv8AK/sLe72q9zi7GUTnx/VV4Dzc4PzWiPJkUN5KMhsrdmqHRr0bJv
NO5bi/fKZzqcH13llKbyHXmyJmWe4+0AdGGR2aoAgaFzcvToQOVuNvX5w23B
JIwvUMmkrdtF6pN8w77DF4qK1ZxkLKlqVRI11uQ4sgURS5n5tv6YVB3f2tWN
D03kG7uGIDMIXIUrtMSpX7bicz7gBV+JYtszkoVsnzo1jcSvHrMKGtRl4mQF
EcMXLwNN4lXXWIeNGcHeIogQ8bxkJSeBFmonkBAyAWRs3MAQIfMnxstCd1ru
7E86JjCVqDUU2GQdwLzbq80/KH+MTK42mWv8BsldSp4CUrHErjNIkI09JTZP
76nuO4uHATSUSIzUqi8EF8dW6JXxff+jvfRXnwtbFvkyF3PFLRYcPy/5vgFT
85xY9Ay2DwYjG8nzBbuUEmThOf55nc8+wgSFxUQ+/PPxAz9Fo/G3YU2Q4K8M
R3I4hz9gjGzZjpgHB4todRXQn+Ksct0r0ZUmi6A1MMsRBs0pgE60AcxGPxew
fQT+7sAxe81QF1HfeYo3KYB5vqqqBf72vZcl3nPSvtCNPjPdyBQVNeI0k4yk
fSfnFXVDkJZkjLKiiFLcuLV6xIxacifgu6EcBDAFvcaxh6+RkerNEbUG9uwR
aDu+XiD3Pbos32rrJzHYtkEzrmvuEiwX4SqAFbKiGfgjs4U38bkrsXkHUPw5
yykPd+Os+ObFqOlFYACxhLS/NAocsJ+yKToO1FZ3TiOjZa4S8PB5dX7kcxV2
8MF7oMsxcVTPTPJiR+tJGG0TiwgNCA7DJP6osgK89JQuNYdnq3VNF4FRgzQE
fuCJqiZzk9li2NXD6Z1Su23U8DKKBK7Hce0mCwR4+nVV5q3e9hiMdjEkVcvS
YZzCJ9OeNe/dokj9BpbdLanQoAnInCYEYEE5RyHzGci6dj4Zvs0wiE1GcGi6
ThCWD0YIuU0pBldUudxrbrJkcuQe6dx2iLawa2+5Ab3cIpVMPi+j8EklkFxe
TumsosP7gUiCsBYCEheYvs5PDRRAw0ER1Co7Rka22jABKmV1LjZSC2r2kjNv
SICkaOwz7HL7Omp7N+CT8qVJvrd7UuxGKGfskWA1gwFjGG8Xgf9wensuxnW4
kBTFdzDPeldnK6Z7MMXbVQnSPcDJLOh61COR3rZzs/a2coQvgpO7t5f372fd
6/ZylEdZm+G9g9fZbKPb63UtTA5FHGUiAHFifbtk+kQX2fhUHVZokXMp/RB3
kynTDHbfJinXSwDC24wKTHzCi47Te8/hbUw8YBdEbwtQxZ36R6jlHGzKkORR
OoczQCeKzS0EW/U+IJwYmMcZGPDpqz4YTaaOZVOH0I8EmZb2zOGKmvFTOmDO
cPFO46HkMhyFFNHo0gS67iAOGLODp4tnTb1DxuNOJXtCUyOXTsBqNQL8Fkp6
GBo8CB/3Mjwlug+EjlAcXlsAJpXIOZoOWZsR4L/d5NlFIWcEgCUGM2bAVysU
b50N8AQFHDXPZ3yrOMlO0DwUqyciSSBh9GCanVHnpGTobNEVfiK/vfrHO49w
C3DyPl6K96/j9EIIAv4xUG8EM2Fwm+/fHcp2UGQzwsSIUMSlfZ83wRJnCnLe
q7zCWqQKRTRqRfVfYpQRRSjGUs7Pv71/8fw17PV1XlcldxBN3R+NfYIxgmsV
B2gHqgYPgfNBWYQCfMJv6Jr62G3ysDy4do0LgpeMHs4dSk4AJDydkMfP+X5p
rcW7Be1Fa5au+sJ9i8igpib0id8cuVPB0F33wRmTTZuqwFiqx2VCE3K8NgCI
M9yx3XFf/NBGtHwqydHOEU+3pfu/yLzSAF0CKaWN1gaxpcSXjBrQkjU7jDBN
c7KWCfA6O31z2gO7yD+bV7M1uR5XFJjhJxm5RSmFqf9TWBwOcjrDlBjQJJdE
YwyTsMNOzlT5kW32HLa64jtbVE1sAiaF+j2rCUmdM+YAXnWdcSU5svkce/RW
K476/h9xFMKd4cIAAA==

-->

</rfc>
