<?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.34 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-netmod-iana-yang-guidance-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.32.0 -->
  <front>
    <title abbrev="IANA &amp; RFC Editor YANG Guidance">Guidance for Managing YANG Modules in RFCs and IANA Registries</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-iana-yang-guidance-01"/>
    <author fullname="Robert Wilton">
      <organization>Cisco</organization>
      <address>
        <email>rwilton@cisco.com</email>
      </address>
    </author>
    <date year="2026" month="March" day="17"/>
    <area>OPS</area>
    <workgroup>NETMOD</workgroup>
    <keyword>IANA</keyword>
    <keyword>RFC Editor</keyword>
    <keyword>YANG</keyword>
    <keyword>Versioning</keyword>
    <abstract>
      <?line 73?>

<t>This document provides guidance to the RFC Editor and IANA on managing YANG modules in RFCs and IANA registries, ensuring consistent application of YANG Semantic Versioning rules.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://rgwilton.github.io/iana-yang-guidance/draft-verdt-iana-yang-guidance.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-netmod-iana-yang-guidance/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Network Modelling Working Group mailing list (<eref target="mailto:netmod@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/netmod/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/netmod/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/rgwilton/iana-yang-guidance"/>.</t>
    </note>
  </front>
  <middle>
    <?line 77?>

<section anchor="open-issuesquestions">
      <name>Open Issues/Questions:</name>
      <ol spacing="normal" type="1"><li>
          <t>Do we need guidance to IANA in this document to list modules both by revision date and version?  I.e., following the filename convention.</t>
        </li>
        <li>
          <t>This document is informational, is it appropriate to use RFC 2119 language?</t>
        </li>
        <li>
          <t>For the RFC Editor and ADs, do we want to allow the RFC Editor to apply errata to IETF YANG modules?</t>
        </li>
        <li>
          <t>For <xref target="sec-background"/>, should we give examples of the rules, or just reference the module versioning draft [Reshad]?</t>
        </li>
      </ol>
    </section>
    <section anchor="for-reviewers-of-this-document">
      <name>For Reviewers of this document</name>
      <t><strong>RFC Editor - please delete this section before publication</strong></t>
      <t>This draft should be carefully reviewed by:</t>
      <ul spacing="normal">
        <li>
          <t>IANA and RFC Editor to check that they agree with the workflows</t>
        </li>
        <li>
          <t>OPS ADS &amp; IESG (if needed) that they agree that the IETF should delay publishing YANG modules in approved internet drafts until after the RFC Editor has had the opportunity to review and amend the text.</t>
        </li>
        <li>
          <t>YANG Doctors and NETMOD to ensure that they are happy with the requirements being placed upon them.</t>
        </li>
      </ul>
    </section>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>YANG <xref target="RFC6020"/> <xref target="RFC7950"/> modules are used to model network management data and protocols. The IETF publishes YANG modules as part of RFCs, and the Internet Assigned Numbers Authority (IANA) maintains YANG modules that are derived from IANA registries. Both processes require careful attention to module versioning and the timing of publication to ensure that implementations can correctly assess module version compatibility when modules are updated.</t>
      <t>This document provides informational guidance to both the RFC Editor and IANA for managing YANG modules in two distinct scenarios:</t>
      <ol spacing="normal" type="1"><li>
          <t><strong>Managing YANG Modules in RFCs</strong>: When documents containing YANG modules are approved by the IESG and processed for publication as RFCs, both the RFC Editor and IANA have responsibilities to ensure that modules are correctly versioned and published.</t>
        </li>
        <li>
          <t><strong>Managing IANA-Maintained YANG Modules</strong>: When IANA registries are updated, any YANG modules derived from those registries must be updated accordingly with proper versioning.</t>
        </li>
      </ol>
      <t>The guidance in this document is informational rather than prescriptive. It describes recommended practices and procedures that reflect current consensus within the NETMOD working group and the IETF operations and management community. While following this guidance will help ensure consistent and correct handling of YANG modules, specific situations may require consultation with the YANG Doctors (as described in <xref target="sec-additional-guidance"/>).</t>
      <ul empty="true">
        <li>
          <t><strong>Note:</strong> In addition to the guidance detailed in this document, there is a broader, ongoing discussion within the IETF community around the processes and responsibilities for managing YANG modules in RFCs. For further information and the latest proposals, see <xref target="I-D.boucadair-veloce-yang"/>. The recommendations and operational practices described here may be revised in the future to reflect outcomes from that work.</t>
        </li>
      </ul>
      <t>The procedures and classifications in this document are drawn from text and general guidance on the following IETF specifications:</t>
      <ul spacing="normal">
        <li>
          <t><xref target="I-D.ietf-netmod-rfc8407bis"/> - Provides general guidelines for IETF YANG module authors</t>
        </li>
        <li>
          <t><xref target="I-D.ietf-netmod-yang-module-versioning"/> - Defines updated YANG module revision handling, including rules for backwards-compatible and non-backwards-compatible changes</t>
        </li>
        <li>
          <t><xref target="I-D.ietf-netmod-yang-semver"/> - Defines YANG Semantic Versioning (YANG Semver) for YANG modules</t>
        </li>
        <li>
          <t><xref target="I-D.ietf-netmod-yang-module-filename"/> - Defines filename conventions for YANG modules versioned using YANG Semver</t>
        </li>
      </ul>
    </section>
    <section anchor="sec-conventions">
      <name>Conventions and Definitions</name>
      <!-- {::boilerplate bcp14-tagged} -->

<t>This document uses the following terminology from <xref target="I-D.ietf-netmod-yang-module-versioning"/>:</t>
      <dl>
        <dt><strong>Backwards-Compatible (BC) Change</strong></dt>
        <dd>
          <t>A change to a YANG module that conforms to the backwards-compatible update rules defined in section 3.1.1 of <xref target="I-D.ietf-netmod-yang-module-versioning"/>. BC changes require incrementing the MINOR version number.</t>
        </dd>
        <dt><strong>Non-Backwards-Compatible (NBC) Change</strong></dt>
        <dd>
          <t>A change to a YANG module that does not conform to the backwards-compatible update rules defined in section 3.1.2 of <xref target="I-D.ietf-netmod-yang-module-versioning"/>. NBC changes require incrementing the MAJOR version number and adding the rev:non-backwards-compatible extension statement within the revision statement in the YANG module.</t>
        </dd>
      </dl>
      <t>This document uses the following terminology from <xref target="I-D.ietf-netmod-yang-semver"/>:</t>
      <dl>
        <dt><strong>YANG Semver</strong></dt>
        <dd>
          <t>YANG Semantic Versioning - a version identifier in the format <em>MAJOR.MINOR.PATCH_COMPAT</em> that indicates the compatibility level of a YANG module, as defined in <xref target="I-D.ietf-netmod-yang-semver"/>.</t>
        </dd>
        <dt><strong>Editorial Change</strong></dt>
        <dd>
          <t>A change to a YANG module that does not affect the semantic meaning or functionality of the module. Editorial changes only require incrementing the PATCH version number, as described in section 4.4 of <xref target="I-D.ietf-netmod-yang-semver"/>.</t>
        </dd>
      </dl>
      <t>In addition, this document defines:</t>
      <dl>
        <dt><strong>IANA-Maintained Module</strong></dt>
        <dd>
          <t>A YANG module maintained by IANA, typically derived from one or more IANA registries. These modules have names starting with "iana-" (e.g., iana-if-type, iana-routing-types).</t>
        </dd>
      </dl>
    </section>
    <section anchor="sec-background">
      <name>Background on YANG Versioning</name>
      <section anchor="yang-semantic-versioning">
        <name>YANG Semantic Versioning</name>
        <t>YANG Semantic Versioning (YANG Semver), defined in <xref target="I-D.ietf-netmod-yang-semver"/>, uses a version identifier in the format MAJOR.MINOR.PATCH (with an optional _COMPAT suffix for branched development):</t>
        <ul spacing="normal">
          <li>
            <t><strong>MAJOR</strong> version increments indicate non-backwards-compatible (NBC) changes, with <em>MINOR</em> and <em>PATCH</em> fields reset to 0</t>
          </li>
          <li>
            <t><strong>MINOR</strong> version increments indicate backwards-compatible (BC) feature additions, with the <em>PATCH</em> field reset to 0</t>
          </li>
          <li>
            <t><strong>PATCH</strong> version increments indicate editorial or documentation-only changes</t>
          </li>
          <li>
            <t><strong>_COMPAT</strong> is used for branched development trees and is not applicable to modules published by the IETF or maintained by IANA.</t>
          </li>
        </ul>
        <t>If an update to a YANG module contains a mix of changes, then the version number is updated as per the most impactful change.  E.g., if a change included both backwards-compatible feature additions and editorial changes then the <em>MINOR</em> version field is incremented and the <em>PATCH</em> version field is set to 0, e.g., as per the second example below.  If in doubt as to which category a particular change fits into, it is always better to err on the side of caution and choose the more significant version change.</t>
        <t>For example, if a published IETF YANG module is at version <em>1.2.3</em>:</t>
        <ul spacing="normal">
          <li>
            <t>An editorial only change would update it to <em>1.2.4</em></t>
          </li>
          <li>
            <t>A backwards-compatible feature addition would update it to <em>1.3.0</em></t>
          </li>
          <li>
            <t>A non-backwards-compatible change would update it to <em>2.0.0</em>.</t>
          </li>
        </ul>
        <t>Pre-release versions (versions with MAJOR = 0, e.g., "0.2.0", or with a pre-release suffix, e.g., "1.3.0-draft-verdt-iana-yang-guidance") indicate modules that have not completed the IETF standardization process and whose revision content is subject to change in non-backwards-compatible ways without corresponding changes to the major version number.  Published IETF and IANA YANG modules should always be at version "1.0.0" or later, and should never include a pre-release suffix.  The initial published version should be "1.0.0".</t>
      </section>
      <section anchor="backwards-compatibility-rules">
        <name>Backwards Compatibility Rules</name>
        <t>The rules that determine whether a change to a YANG module is backwards-compatible or non-backwards-compatible are defined in Section 3.1 of <xref target="I-D.ietf-netmod-yang-module-versioning"/>. These rules refine and extend the update rules specified in Section 11 of <xref target="RFC7950"/>.</t>
        <t>Section 3.1.1 of <xref target="I-D.ietf-netmod-yang-module-versioning"/> defines backwards-compatible changes, examples include:</t>
        <ul spacing="normal">
          <li>
            <t>Adding new schema nodes (e.g., new enum values, identities, leafs, containers)</t>
          </li>
          <li>
            <t>Adding or updating "description" and "reference" statements (provided the semantic meaning is unchanged)</t>
          </li>
          <li>
            <t>Changing the status of a schema node from "current" to "deprecated" (e.g., by adding a <tt>status: "deprecated"</tt> statement)</t>
          </li>
        </ul>
        <t>Section 3.1.2 of <xref target="I-D.ietf-netmod-yang-module-versioning"/> defines non-backwards-compatible changes, examples include:</t>
        <ul spacing="normal">
          <li>
            <t>Removing schema nodes (unless they already have status "obsolete")</t>
          </li>
          <li>
            <t>Changing the status of a schema node from "current" or "deprecated" to "obsolete"</t>
          </li>
          <li>
            <t>Renaming schema nodes or changing their identifiers</t>
          </li>
          <li>
            <t>Changing data types in ways that alter syntax or semantics</t>
          </li>
          <li>
            <t>Changing numeric values assigned to enumerations</t>
          </li>
          <li>
            <t>Modifying "description" statements in ways that change semantic meaning or behavior</t>
          </li>
        </ul>
        <t>In addition, section 4.4 of <xref target="I-D.ietf-netmod-yang-semver"/> defines editorial changes as the subset of backwards-compatible changes that have no impact on the semantics or syntax of a YANG module, examples include:</t>
        <ul spacing="normal">
          <li>
            <t>Corrections to comments, descriptions, or references that do not change the semantic meaning</t>
          </li>
          <li>
            <t>Formatting improvements such as whitespace or indentation changes</t>
          </li>
          <li>
            <t>Updates to contact information or copyright statements</t>
          </li>
        </ul>
      </section>
      <section anchor="the-revnon-backwards-compatible-extension">
        <name>The rev:non-backwards-compatible Extension</name>
        <t>The YANG module versioning framework <xref target="I-D.ietf-netmod-yang-module-versioning"/> defines the "rev:non-backwards-compatible" extension statement. This extension MUST be added as a substatement of a revision statement whenever that revision contains non-backwards-compatible changes relative to the previous revision.</t>
        <t>The following example illustrates this extension in use. In the example, an identity 'foo' was added in version 1.3.0, but was subsequently renamed to 'bar' in version 2.0.0. Since renaming is a non-backwards-compatible change, the major version number is incremented and the <tt>rev:non-backwards-compatible</tt> extension is included in the revision statement in version 2.0.0 of the YANG module:</t>
        <figure>
          <name>Revision history example from a YANG module</name>
          <sourcecode type="yang"><![CDATA[
  revision 2025-11-15 {
    ysv:version "2.0.0";
    rev:non-backwards-compatible;
    description
      "Renamed identity 'foo' to 'bar'.";
  }
  revision 2025-06-01 {
    ysv:version "1.3.0";
    description
      "Added identity 'foo'.";
  }
  ...
]]></sourcecode>
        </figure>
      </section>
      <section anchor="module-immutability">
        <name>Module Immutability</name>
        <t>A fundamental principle of YANG module versioning is that once a module revision is published with a specific revision date and version number, its content is immutable (much like an RFC is). The published content of that revision MUST NOT change. Any change to the module content requires publishing a new revision with a new revision date and an updated YANG Semver.</t>
        <t>This immutability principle has important implications:</t>
        <ul spacing="normal">
          <li>
            <t>Modules in Internet-Drafts MUST use pre-release versions (e.g., 0.1.0 or 2.0.0-draft-name) to indicate that the content may still change.</t>
          </li>
          <li>
            <t>Once a document is approved by the IESG and has been processed by the RFC editor, (<strong>TODO - Is IANA involved too?</strong>) then the module version MUST be updated to the correct release version (e.g., 1.0.0, or 2.0.0) before publication in an RFC or made available in the IANA YANG Module Names registry <xref target="IANA-YANG-PARAMETERS"/>.</t>
          </li>
          <li>
            <t>IANA-maintained modules MUST publish a new YANG module revision any time IANA registry changes require YANG module updates.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sec-rfc-workflow">
      <name>YANG Modules in Documents Being Published as RFCs</name>
      <t>This section describes the workflow and responsibilities for managing YANG modules in documents that have been approved by the IESG and are being processed for publication as RFCs. Both the RFC Editor and IANA have roles in this process.</t>
      <section anchor="core-requirements">
        <name>Core Requirements</name>
        <t>All YANG modules published by the RFC Editor or maintained by IANA MUST meet the following requirements:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>YANG Semver Version</strong>: Every module MUST include a semantic version number using the <tt>ysv:version</tt> statement in its most recent revision. The version MUST be correct relative to any previously version of the same module published either by the RFC editor or on the IANA website.</t>
          </li>
          <li>
            <t><strong>NBC Extension for NBC Changes</strong>: If the module contains non-backwards-compatible changes relative to the previously published version, the revision statement MUST include the <tt>rev:non-backwards-compatible</tt> extension.</t>
          </li>
          <li>
            <t><strong>Revision Immutability</strong>: A published YANG module with a specific revision date and version number is immutable. Its content MUST NOT change without also changing the revision date and version number. For this reason, modules in Internet-Drafts use pre-release versions (e.g., versions with MAJOR = 0 such as 0.1.0, or versions with a pre-release suffix such as 2.0.0-05, where the -05 is the Internet Draft number where the YANG module was updated) to indicate that content may still change before final publication.</t>
          </li>
          <li>
            <t><strong>RFC Code Markers</strong>: YANG modules in RFCs MUST be properly marked with <tt>&lt;CODE BEGINS&gt;</tt> and <tt>&lt;CODE ENDS&gt;</tt> markers (or equivalent in the source format) to enable automated extraction. The markers MUST include the filename following the conventions in <xref target="I-D.ietf-netmod-yang-module-filename"/>.</t>
          </li>
        </ol>
      </section>
      <section anchor="workflow-steps">
        <name>Workflow Steps</name>
        <t>The following steps describe the coordinated process between the RFC Editor and IANA for handling YANG modules during RFC publication:</t>
        <section anchor="step-1-iesg-approval-with-pre-release-version">
          <name>Step 1: IESG Approval with Pre-Release Version</name>
          <t>When a document is approved by the IESG, any YANG modules it contains typically have pre-release version numbers (e.g., 0.4.0, 1.1.0-03, 2.0.0-07). These pre-release versions indicate that the module content may still be subject to editorial changes during RFC Editor processing.</t>
        </section>
        <section anchor="step-2-rfc-editor-processing">
          <name>Step 2: RFC Editor Processing</name>
          <t>During RFC Editor processing, the RFC Editor may make editorial changes to the YANG module, such as:</t>
          <ul spacing="normal">
            <li>
              <t>Improving description text for clarity without changing semantic meaning</t>
            </li>
            <li>
              <t>Updating references to use final RFC numbers instead of draft names</t>
            </li>
            <li>
              <t>Correcting typographical errors</t>
            </li>
            <li>
              <t>Standardizing formatting and style</t>
            </li>
          </ul>
          <t>These editorial changes are appropriate and expected. The RFC Editor SHOULD:</t>
          <ul spacing="normal">
            <li>
              <t>Coordinate with document authors regarding any substantive changes</t>
            </li>
            <li>
              <t>Ensure that only editorial changes (as defined in <xref target="sec-background"/>) are made without author consultation</t>
            </li>
            <li>
              <t>If more significant changes are needed that might be backwards-compatible or non-backwards-compatible, consult with the authors to determine the correct version number and whether the <tt>rev:non-backwards-compatible</tt> extension is required.</t>
            </li>
            <li>
              <t>Ensure that final module is correctly formatted (e.g., by running <xref target="pyang-formatting"/>)</t>
            </li>
          </ul>
        </section>
        <section anchor="step-3-finalizing-the-module-version">
          <name>Step 3: Finalizing the Module Version</name>
          <t>Before publication, the module version MUST be updated from the pre-release version to a release version. The RFC Editor, in coordination with the document authors:</t>
          <ul spacing="normal">
            <li>
              <t>Updates the version to remove pre-release indicators (e.g., 0.1.0 → 1.0.0, or 1.1.0-&lt;draft-num&gt; → 1.1.0)</t>
            </li>
            <li>
              <t>Uses pyang (<xref target="pyang-next-version"/>) to check that an appropriate new version has been choosen based on the relationship to any previously published version of the module.  Tooling is not infallible, so if the suggested version by the tooling is unexpected then please reach out for additional guidance, as per <xref target="sec-additional-guidance"/>.</t>
            </li>
            <li>
              <t>Adds the <tt>rev:non-backwards-compatible</tt> extension if NBC changes have occurred since the previous publication</t>
            </li>
            <li>
              <t>Updates the revision date to reflect the date of the final revision</t>
            </li>
          </ul>
        </section>
        <section anchor="step-4-validate-the-module">
          <name>Step 4: Validate the Module</name>
          <t>YANG modules are expected to be provided to the RFC Editor for publication already passing validation (pyang and yanglint).  However, it is possible that mistakes could be introduced when editing the YANG modules so validation should be re-run to ensure that IETF does not publish invalid YANG modules.</t>
          <t>After all updates are completed, or as updates as made, and after any formatting, then validation tools MUST be run
over the resultant module to ensure that there are no warnings or errors.  pyang validation (<xref target="pyang-validation"/>) MUST be performed, and it is RECOMMENDED that <em>yanglint</em> (<xref target="yang-lint-validation"/>) validation is also performed.</t>
          <t>If the tools return any warnings or errors then the authors should help fix them, potentially seeking additional guidance if required, as per <xref target="sec-additional-guidance"/>.</t>
          <t>If further changes are made, that the step 3 versioning check MUST be re-run to ensure that the module version is still correct.</t>
        </section>
        <section anchor="step-5-iana-delay-of-publication">
          <name>Step 5: IANA Delay of Publication</name>
          <t>IANA SHOULD delay publishing the YANG module to the IANA YANG Parameters registry until the RFC Editor has completed editing the module. This coordination ensures that:</t>
          <ul spacing="normal">
            <li>
              <t>The IANA-published version matches the RFC-published version exactly</t>
            </li>
            <li>
              <t>No discrepancies exist between the two authoritative sources</t>
            </li>
            <li>
              <t>The module reference to the RFC (if present) is correct</t>
            </li>
          </ul>
        </section>
        <section anchor="step-6-coordinated-publication">
          <name>Step 6: Coordinated Publication</name>
          <t>Once the RFC Editor has finalized the module:</t>
          <ul spacing="normal">
            <li>
              <t>The RFC is published with the final module content</t>
            </li>
            <li>
              <t>IANA publishes the module to the IANA YANG Parameters registry at approximately the same time</t>
            </li>
            <li>
              <t>The module filename follows the conventions in <xref target="I-D.ietf-netmod-yang-module-filename"/></t>
            </li>
            <li>
              <t>IANA registers the module in the "YANG Module Names" registry if it is not already registered</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="sec-iana-modules">
      <name>IANA-Maintained YANG Modules</name>
      <t>This section describes the process for IANA to update and publish YANG modules that are maintained by IANA and derived from IANA registries.</t>
      <section anchor="overview">
        <name>Overview</name>
        <t>Some IANA registries have corresponding YANG modules that represent registry contents in a machine-readable format, and that are published at <xref target="IANA-YANG-PARAMETERS"/>.  Examples include:</t>
        <ul spacing="normal">
          <li>
            <t><strong>iana-if-type.yang</strong> - derived from the Interface Types (ifType) registry <xref target="iana-iftype-registry"/></t>
          </li>
          <li>
            <t><strong>iana-routing-types.yang</strong> - derived from Address Family Numbers <xref target="iana-afnum-registry"/> and SAFI Parameters <xref target="iana-safi-registry"/> registries</t>
          </li>
          <li>
            <t><strong>iana-bgp-types.yang</strong> - derived from BGP Parameters registries <xref target="iana-bgp-parameters"/></t>
          </li>
        </ul>
        <t>When these registries are updated, the corresponding YANG modules MUST be updated accordingly by IANA, following the same versioning rules described in <xref target="sec-background"/>.</t>
      </section>
      <section anchor="characteristics-of-iana-maintained-modules">
        <name>Characteristics of IANA-Maintained Modules</name>
        <t>IANA-maintained YANG modules typically:</t>
        <ul spacing="normal">
          <li>
            <t>Have names starting with "iana-"</t>
          </li>
          <li>
            <t>Contain primarily enumeration typedefs or identity definitions that are derived from registry entries</t>
          </li>
          <li>
            <t>Are updated more frequently than IETF-defined modules</t>
          </li>
          <li>
            <t>Follow a linear version history without branching</t>
          </li>
          <li>
            <t>Have a much simpler structure than general-purpose YANG modules, which simplifies classification of changes</t>
          </li>
        </ul>
        <t>Because IANA-maintained YANG modules are always expected to follow a linear version history without branching, the <em>_COMPAT</em> modifier defined in <xref target="I-D.ietf-netmod-yang-semver"/> is not needed or used for these modules. The <em>_COMPAT</em> modifier is only required for non-linear branched histories of YANG module versions. Therefore, only the <em>MAJOR.MINOR.PATCH</em> elements of YANG Semver need be considered for IANA-maintained modules.</t>
      </section>
      <section anchor="rules-applicable-to-iana-maintained-modules">
        <name>Rules Applicable to IANA-Maintained Modules</name>
        <t>IANA-maintained YANG modules typically contain only enumerations (enum) and identity definitions, as they represent simple registry mappings. Hence, the most relevant compatibility rules for these modules are:</t>
        <t><strong>Editorial Changes:</strong></t>
        <ul spacing="normal">
          <li>
            <t>Clarifying "description" statements without changing meaning</t>
          </li>
          <li>
            <t>Adding or updating "reference" statements</t>
          </li>
          <li>
            <t>Fixing typographical errors in description text</t>
          </li>
          <li>
            <t>Updating contact information</t>
          </li>
          <li>
            <t>Formatting improvements</t>
          </li>
        </ul>
        <t><strong>Backwards-Compatible Changes:</strong></t>
        <ul spacing="normal">
          <li>
            <t>Adding a new enum value or identity</t>
          </li>
          <li>
            <t>Changing status from "current" to "deprecated"</t>
          </li>
          <li>
            <t>Removing schema nodes that already have status "obsolete"</t>
          </li>
        </ul>
        <t><strong>Non-Backwards-Compatible Changes:</strong></t>
        <ul spacing="normal">
          <li>
            <t>Removing an enum value or identity (unless status is "obsolete")</t>
          </li>
          <li>
            <t>Changing status to from "current" or "deprecated" to "obsolete"</t>
          </li>
          <li>
            <t>Renaming an enum or identity</t>
          </li>
          <li>
            <t>Changing the numeric value assigned to an enum</t>
          </li>
          <li>
            <t>Modifying "description" statements in a way that changes the semantic meaning</t>
          </li>
        </ul>
        <t><strong>Important</strong>: If multiple updates to the registry are made at the same time resulting in a single update to the IANA maintained YANG module then the new module version number is decided by the impact of the most significant change.</t>
        <section anchor="special-yang-considerations-for-deprecated-registry-entries">
          <name>Special YANG Considerations for Deprecated Registry Entries</name>
          <t>IANA registries and YANG modules use the term <em>deprecated</em> differently:</t>
          <ul spacing="normal">
            <li>
              <t>In IANA registries, deprecated generally means the value SHOULD NOT be used for new deployments.</t>
            </li>
            <li>
              <t>In YANG modules, <tt>status deprecated</tt> means the definition is still supported (including for new deployments) but it is expected to be obsoleted (or removed) in a future module version.</t>
            </li>
          </ul>
          <t>To avoid confusion, when an IANA registry entry is marked deprecated, the corresponding enum or identity description SHOULD include indicate that the base IANA registry entry is deprecated and therefore the entry SHOULD NOT be used. I.e., the following sentence SHOULD be added to the end of the enum/identity description: <tt>This value is deprecated in the base IANA registry which means that its use is NOT RECOMMENDED.</tt></t>
        </section>
      </section>
      <section anchor="process-for-updating-iana-maintained-yang-modules">
        <name>Process for Updating IANA-Maintained YANG Modules</name>
        <t>When a change is made to an IANA registry that has a corresponding YANG module, it is recommended that IANA update the module following these steps:</t>
        <section anchor="step-1-follow-rfc-defined-rules">
          <name>Step 1: Follow RFC-Defined Rules</name>
          <t>First, consult the RFC that defines the IANA registry and its associated YANG module. That RFC may specify:</t>
          <ul spacing="normal">
            <li>
              <t>Specific rules for how registry entries map to YANG constructs</t>
            </li>
            <li>
              <t>Guidance on when and how to update the module</t>
            </li>
            <li>
              <t>Contact information for expert reviewers</t>
            </li>
            <li>
              <t>Special considerations for the particular registry</t>
            </li>
          </ul>
          <t>Always follow the specific guidance in the RFC that created the registry and module.</t>
        </section>
        <section anchor="step-2-identify-the-registry-change">
          <name>Step 2: Identify the Registry Change</name>
          <t>Determine exactly what changed in the registry:</t>
          <ul spacing="normal">
            <li>
              <t>Was a new entry added?</t>
            </li>
            <li>
              <t>Was an existing entry modified (description, reference, status)?</t>
            </li>
            <li>
              <t>Was an entry deprecated or obsoleted?</t>
            </li>
            <li>
              <t>Was an entry removed?</t>
            </li>
            <li>
              <t>Were multiple changes made simultaneously?</t>
            </li>
          </ul>
        </section>
        <section anchor="step-3-apply-equivalen-changes-to-the-yang-module">
          <name>Step 3: Apply Equivalen Changes to the YANG Module</name>
          <t>Update the YANG module to reflect the registry changes. For IANA-maintained modules, this typically involves:</t>
          <ul spacing="normal">
            <li>
              <t>Adding a new enum value or identity for new registry entries</t>
            </li>
            <li>
              <t>Updating description or reference statements for modified entries</t>
            </li>
            <li>
              <t>Changing status statements for deprecated or obsoleted entries</t>
            </li>
            <li>
              <t>Removing entries only if they are obsolete or if the defining RFC specifies removal</t>
            </li>
            <li>
              <t>Add a revision statement (using the current date) describing the change, and a reference, if appropriate.</t>
            </li>
            <li>
              <t><em>(Optional) include a version statement with the anticipated new version and an <tt>rev:non-backwards-compatible</tt> statement if it is a backwards-incompatible change.</em></t>
            </li>
            <li>
              <t><em>(Optional) Use tooling to format the YANG module, as described in <xref target="pyang-formatting"/>.</em></t>
            </li>
          </ul>
        </section>
        <section anchor="step-4-use-pyang-tooling-to-checkrecommend-next-version">
          <name>Step 4: Use Pyang Tooling to Check/Recommend Next Version</name>
          <t>Use the tools described in <xref target="pyang-next-version"/> to recommend or check (if provided in step 3) the next module version.  Be aware of the tooling limitations, as per <xref target="tool-limitations"/>, and sanity check that the version recommeded by the tooling is what is expected based on the changes.</t>
          <ul spacing="normal">
            <li>
              <t>Add or update the version statement with the correct version</t>
            </li>
            <li>
              <t>Add rev:non-backwards-compatible` extension if NBC changes have occurred</t>
            </li>
          </ul>
        </section>
        <section anchor="step-5-validate-the-module">
          <name>Step 5: Validate the Module</name>
          <t>Use validation tools, as per <xref target="pyang-validation"/>, to ensure the updated module is syntactically correct.  Since these modules are simple, just checking with the <em>pyang</em> tool is sufficent, but <em>yanglint</em> (<xref target="yang-lint-validation"/>) may be used as an alternative.</t>
        </section>
        <section anchor="step-6-seek-additional-help-if-needed">
          <name>Step 6: Seek additional help if Needed</name>
          <t>In most cases, the classification will be straightforward. However, if any of the following apply, IANA should seek additional guidance as described in <xref target="sec-additional-guidance"/>:</t>
          <ul spacing="normal">
            <li>
              <t>The change classification is unclear</t>
            </li>
            <li>
              <t>The tool output is unexpected or contradictory</t>
            </li>
            <li>
              <t>Description changes, where it is not obvious if they change semantic meaning</t>
            </li>
            <li>
              <t>Any situation not covered by the guidance above, or examples in <xref target="appendix-scenarios"/></t>
            </li>
          </ul>
        </section>
        <section anchor="step-7-publish-the-updated-module">
          <name>Step 7: Publish the Updated Module</name>
          <t>Once the module is validated and the version is confirmed:</t>
          <ul spacing="normal">
            <li>
              <t>Publish the updated module to the IANA website</t>
            </li>
            <li>
              <t>The module name should use <tt>&lt;module-name&gt;#&lt;version&gt;.yang</tt> <xref target="I-D.ietf-netmod-yang-module-filename"/></t>
            </li>
            <li>
              <t>Update any relevant registries or indexes</t>
            </li>
            <li>
              <t>Ensure the new version is discoverable and accessible</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="examples">
        <name>Examples</name>
        <t>Detailed examples of common scenarios (adding entries, updating references, deprecating entries, etc.) are given in <xref target="appendix-scenarios"/>.</t>
      </section>
    </section>
    <section anchor="sec-additional-guidance">
      <name>Seeking Additional Guidance</name>
      <section anchor="when-to-seek-guidance">
        <name>When to Seek Guidance</name>
        <t>The RFC Editor and IANA should contact the YANG Doctors in the following situations:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Classification Uncertainty</strong> - When it's unclear whether a change is NBC, BC, or Editorial</t>
          </li>
          <li>
            <t><strong>Tool Disagreement</strong> - When validation tools give unexpected or contradictory results</t>
          </li>
          <li>
            <t><strong>Description Changes</strong> - When it is unclear whether a description update alters semantic meaning</t>
          </li>
          <li>
            <t><strong>Unusual Situations</strong> - Any scenario not clearly covered in this document</t>
          </li>
          <li>
            <t><strong>Registry Restructuring</strong> - Major changes to how a registry is organized</t>
          </li>
          <li>
            <t><strong>RFC Editor Processing</strong> - When RFC Editor changes may go beyond editorial scope</t>
          </li>
        </ol>
      </section>
      <section anchor="how-to-seek-guidance">
        <name>How to Seek Guidance</name>
        <t>Email the YANG Doctors mailing list and the Operations and Management Area Directors (OPS ADS):</t>
        <ul spacing="normal">
          <li>
            <t><strong>Email</strong>: yang-doctors@ietf.org &amp; ops-ads@ietf.org</t>
          </li>
          <li>
            <t><strong>Purpose</strong>: Technical review and guidance on YANG module versioning.</t>
          </li>
          <li>
            <t><strong>Response Time</strong>: Typically 1-2 weeks</t>
          </li>
        </ul>
        <t>When emailing, please include:</t>
        <ul spacing="normal">
          <li>
            <t>Description of the change or situation</t>
          </li>
          <li>
            <t>The affected YANG module and relevant excerpts</t>
          </li>
          <li>
            <t>Your proposed classification and version change</t>
          </li>
          <li>
            <t>Specific questions or concerns</t>
          </li>
          <li>
            <t>Any relevant tool output</t>
          </li>
          <li>
            <t>An indication if an urgent reply is required.</t>
          </li>
        </ul>
        <t>The expectation is that the YANG Doctors should reply to the request within the time frame given above, but if a reply isn't forthcoming then please escalate via the OPS ADS.</t>
      </section>
      <section anchor="example-request">
        <name>Example Request</name>
        <sourcecode type="text"><![CDATA[
Subject: YANG Versioning Question - iana-if-type Update
]]></sourcecode>
        <sourcecode type="text"><![CDATA[
Dear YANG Doctors,

I need guidance on classifying a change to the iana-if-type module.

Change Description:
The Interface Types registry has updated the description for
interface type 6 (ethernet) to clarify that it includes both
10BASE-T and 100BASE-T variants.

Proposed YANG Change:
Update the description statement for the "ethernet" enum to
include the clarification.

Question:
Should this be classified as Editorial (PATCH increment) since
it's clarifying existing behavior, or as BC (MINOR increment)
because it's adding new information?

The old description said: "Ethernet interface"
The new description says: "Ethernet interface, including
10BASE-T and 100BASE-T variants"

Current module version: 1.5.0
Proposed version: 1.5.1 (if Editorial) or 1.6.0 (if BC)

Thank you for your guidance.
]]></sourcecode>
      </section>
    </section>
    <section anchor="sec-operational">
      <name>Operational Considerations</name>
      <t>This entire document provides operational guidance for the RFC Editor and IANA on how to process and publish YANG modules. The procedures described in <xref target="sec-rfc-workflow"/> and <xref target="sec-iana-modules"/> are designed to ensure consistent and correct versioning of YANG modules across all IETF and IANA publications.</t>
      <t>Correct versioning is critical because consumers of YANG modules rely on the semantic version number to understand the compatibility and risk associated with updating to a new module version:</t>
      <ul spacing="normal">
        <li>
          <t><strong>PATCH version increments</strong> signal that only editorial changes have been made, indicating very low risk for updates</t>
        </li>
        <li>
          <t><strong>MINOR version increments</strong> signal backwards-compatible additions, indicating that existing implementations will continue to work but new features are available</t>
        </li>
        <li>
          <t><strong>MAJOR version increments</strong> signal non-backwards-compatible changes, indicating that implementations must carefully evaluate the impact before updating</t>
        </li>
      </ul>
      <t>Following the guidance in this document helps ensure that version numbers accurately communicate these compatibility expectations to the YANG module consumer community.</t>
      <t>When uncertain about the correct classification or version for a module, the operational recommendation is to choose the more conservative option:</t>
      <ul spacing="normal">
        <li>
          <t>If uncertain between editorial and backwards-compatible, choose backwards-compatible (MINOR rather than PATCH)</t>
        </li>
        <li>
          <t>If uncertain between backwards-compatible and non-backwards-compatible, choose non-backwards-compatible (MAJOR rather than MINOR, and include the NBC extension)</t>
        </li>
      </ul>
      <t>This conservative approach ensures that consumers are appropriately warned about potential compatibility implications, even if the actual risk turns out to be lower than indicated.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document gives instructions to IANA on how to handle YANG modules that are published in RFCs and also YANG modules that are derived from IANA registries.</t>
      <t>Incorrect interpretion of this document could cause incorrect handling or versioning of IANA maintained YANG modules.</t>
      <t>This document recommends the usage of various tools.  Bugs or attacks on these tools could cause the tools to give incorrect or misleading guidance.  In all cases, secondary evaluation of output of the tools should be performed to confirm that they are giving the anticipated results.  The <em>YANG Doctors</em> or <em>Operations and Management Area Directors</em> can also be contacted for further advice, if required.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document provides operational guidance to IANA and the RFC Editor for managing YANG modules. It does not require IANA to create or modify any registries, nor does it define any new registration procedures.</t>
      <t>The guidance in this document is intended to clarify and standardize how IANA processes YANG modules in the "YANG Module Names" registry <xref target="IANA-YANG-PARAMETERS"/> and how IANA maintains YANG modules derived from IANA registries.</t>
      <t>IANA should follow the procedures described in <xref target="sec-rfc-workflow"/> when processing YANG modules from RFCs and the procedures described in <xref target="sec-iana-modules"/> when updating IANA-maintained YANG modules.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
        <reference anchor="RFC7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="I-D.ietf-netmod-yang-module-versioning">
          <front>
            <title>Updated YANG Module Revision Handling</title>
            <author fullname="Robert Wilton" initials="R." surname="Wilton">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Reshad Rahman" initials="R." surname="Rahman">
              <organization>Equinix</organization>
            </author>
            <author fullname="Balázs Lengyel" initials="B." surname="Lengyel">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Joe Clarke" initials="J." surname="Clarke">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Jason Sterne" initials="J." surname="Sterne">
              <organization>Nokia</organization>
            </author>
            <date day="18" month="October" year="2025"/>
            <abstract>
              <t>   This document refines the RFC 7950 module update rules.  It specifies
   a new YANG module update procedure that can document when non-
   backwards-compatible changes have occurred during the evolution of a
   YANG module.  It extends the YANG import statement with a minimum
   revision suggestion to help document inter-module dependencies.  It
   provides guidelines for managing the lifecycle of YANG modules and
   individual schema nodes.  This document updates RFC 7950, RFC 6020,
   RFC 8407 and RFC 8525.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-yang-module-versioning-15"/>
        </reference>
        <reference anchor="I-D.ietf-netmod-yang-semver">
          <front>
            <title>YANG Semantic Versioning</title>
            <author fullname="Joe Clarke" initials="J." surname="Clarke">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Robert Wilton" initials="R." surname="Wilton">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Reshad Rahman" initials="R." surname="Rahman">
              <organization>Equinix</organization>
            </author>
            <author fullname="Balázs Lengyel" initials="B." surname="Lengyel">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Jason Sterne" initials="J." surname="Sterne">
              <organization>Nokia</organization>
            </author>
            <author fullname="Benoît Claise" initials="B." surname="Claise">
              <organization>Everything OPS</organization>
            </author>
            <date day="29" month="September" year="2025"/>
            <abstract>
              <t>   This document specifies a YANG extension along with guidelines for
   applying an extended set of semantic versioning rules to revisions of
   YANG artifacts (e.g., modules and packages).  Additionally, this
   document defines a YANG extension for controlling module imports
   based on these modified semantic versioning rules.

   This document updates RFCs 7950, 8407bis, and 8525.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-yang-semver-24"/>
        </reference>
        <reference anchor="I-D.ietf-netmod-rfc8407bis">
          <front>
            <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
            <author fullname="Andy Bierman" initials="A." surname="Bierman">
              <organization>YumaWorks</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <date day="5" month="June" year="2025"/>
            <abstract>
              <t>   This document provides guidelines for authors and reviewers of
   specifications containing YANG data models, including IANA-maintained
   modules.  Recommendations and procedures are defined, which are
   intended to increase interoperability and usability of Network
   Configuration Protocol (NETCONF) and RESTCONF Protocol
   implementations that utilize YANG modules.  This document obsoletes
   RFC 8407.

   Also, this document updates RFC 8126 by providing additional
   guidelines for writing the IANA considerations for RFCs that specify
   IANA-maintained modules.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-rfc8407bis-28"/>
        </reference>
        <reference anchor="I-D.ietf-netmod-yang-module-filename">
          <front>
            <title>YANG module file name convention</title>
            <author fullname="Per Andersson" initials="P." surname="Andersson">
              <organization>Ionio Systems</organization>
            </author>
            <date day="18" month="February" year="2026"/>
            <abstract>
              <t>   This document presents YANG module file name convention.  The
   convention extends the current YANG module file name using
   revision-date, with the YANG semantic version extension.  The YANG
   semantic version extension allows for an informative version to be
   associated with a particular YANG module revision.

   This documents updates RFCs 6020, 7950, and draft-ietf-netmod-
   rfc8407bis.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-yang-module-filename-06"/>
        </reference>
        <reference anchor="IANA-YANG-PARAMETERS" target="https://www.iana.org/assignments/yang-parameters/yang-parameters.xhtml">
          <front>
            <title>YANG Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-netmod-yang-schema-comparison">
          <front>
            <title>YANG Schema Comparison</title>
            <author fullname="Per Andersson" initials="P." surname="Andersson">
              <organization>Ionio Systems</organization>
            </author>
            <author fullname="Robert Wilton" initials="R." surname="Wilton">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Michal Vaško" initials="M." surname="Vaško">
              <organization>CESNET</organization>
            </author>
            <date day="15" month="February" year="2026"/>
            <abstract>
              <t>   This document specifies an algorithm for comparing two revisions of a
   YANG schema to determine the scope of changes, and a list of changes,
   between the revisions.  The output of the algorithm can be used to
   help select an appropriate revision-label or YANG semantic version
   number for a new revision.  Included is also a YANG module describing
   the output of this algorithm.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-yang-schema-comparison-06"/>
        </reference>
        <reference anchor="I-D.boucadair-veloce-yang">
          <front>
            <title>YANG deVELpment PrOCEss &amp; maintenance (VELOCE)</title>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <date day="18" month="September" year="2025"/>
            <abstract>
              <t>   This document describes a YANG deVELpment PrOCEss &amp; maintenance
   (VELOCE) that is more suitable for the development of YANG modules or
   YANG modules update within the IETF.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Source for this draft and an issue tracker can be found at
   https://github.com/boucadair/draft-boucadair-veloce-yang.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-boucadair-veloce-yang-05"/>
        </reference>
        <reference anchor="iana-iftype-registry" target="https://www.iana.org/assignments/smi-numbers">
          <front>
            <title>Interface Types (ifType) Registry</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="iana-afnum-registry" target="https://www.iana.org/assignments/address-family-numbers">
          <front>
            <title>Address Family Numbers</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="iana-safi-registry" target="https://www.iana.org/assignments/safi-parameters">
          <front>
            <title>SAFI Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="iana-bgp-parameters" target="https://www.iana.org/assignments/bgp-parameters">
          <front>
            <title>BGP Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 535?>

<section anchor="appendix-tooling">
      <name>Available Tooling</name>
      <t>This appendix describes tooling available to assist the RFC Editor and IANA in validating and versioning YANG modules. The tools and capabilities described here reflect the state of tooling as of the publication of this document. Tool capabilities are expected to evolve over time, and newer or improved tools may become available. The NETMOD working group and YANG Doctors can provide updated guidance on current best practices for tooling.</t>
      <section anchor="yang-validation-tools">
        <name>YANG Validation Tools</name>
        <section anchor="pyang">
          <name>pyang</name>
          <t><strong>Purpose</strong>: pyang is a comprehensive YANG validator and converter tool that can validate syntax, check for backwards-compatible violations, and generate documentation.</t>
          <t><strong>Primary Use Cases</strong>:</t>
          <ol spacing="normal" type="1"><li>
              <t>Validating YANG module syntax and compliance with IETF conventions</t>
            </li>
            <li>
              <t>Formatting YANG modules in a consistent way prior to publication</t>
            </li>
            <li>
              <t>Suggesting proposed next version when updating a YANG module</t>
            </li>
            <li>
              <t>Generating tree diagrams for documentation</t>
            </li>
          </ol>
          <t><strong>Installation</strong>: pyang is available via PyPI (<tt>pip install pyang</tt>) or from <eref target="https://github.com/mbj4668/pyang">https://github.com/mbj4668/pyang</eref>.  It is recommended to periodically check and update the version to pick up bugfixes and new functionality (which could include stricter checks).</t>
          <t><strong>Note to RFC Editor and reviewers, some of the tooling enhancements documented here are not yet been merged into the master pyang repository, so depending on publication timing we need to add further references.</strong></t>
          <t>To ensure that pyang correctly processes the YANG files, then the correct versions of any YANG module dependencies must also be used, this is often the latest version of the published YANG modules, but if a draft contains a set of YANG modules, or if there are set of drafts with YANG modules being published together then all the YANG modules in those drafts MUST be extracted together and validated.  These dependent YANG modules can either be stored in the same directory as the YANG module being validated/checked, or they can be stored in a separate directory and passed using the <tt>-p</tt> argument to provide a path to the directory.</t>
          <section anchor="pyang-validation">
            <name>Basic YANG Syntax Validation</name>
            <t>This command below validates the module syntax and checks compliance with IETF-specific conventions. The output will show any errors or warnings. IETF and IANA modules SHOULD have no errors or warnings before publication.</t>
            <sourcecode type="shell"><![CDATA[
pyang --ietf --strict --max-line-length=69 -Werror -p <dep-module-directory> ietf-module-name.yang
]]></sourcecode>
          </section>
          <section anchor="pyang-formatting">
            <name>Consistent formatting of YANG modules</name>
            <t>Pyang can be used to reformat a YANG file, particularly fixing line length issues and correcting any indentation mistakes.  Some complex expressions, e.g., <tt>must</tt>, <tt>when</tt> and path statements may not be automatically split to the correct line length and may need to be done manually.  Running the basic syntax validation command on the output file will indicate whether any further manual line folding is required.</t>
            <sourcecode type="shell"><![CDATA[
pyang -f yang --yang-line-length=69 --yang-canonical -Werror -p <dep-module-directory> -o <output-file> <treeOpts> ietf-module-name.yang
]]></sourcecode>
          </section>
          <section anchor="pyang-next-version">
            <name>Suggesting proposed next version when updating a YANG module</name>
            <t>Pyang can be used to compare the changes between two YANG module versions and either validate that a suitable next version number has been used, or to suggest what the appropriate next version should be, or if further manual checks should be performed, e.g., for changes to description statements.</t>
            <t>If the new module version already includes a version statement for the latest version then it will check whether the version used matches the expected version that has been calculated based on the changes between the two module versions.  Otherwise, if the latest version does not contain a version statement then it will suggest the new version that should be used.</t>
            <sourcecode type="shell"><![CDATA[
pyang --check-update-semver --check-update-from module-name@old-version.yang module-name@new-version.yang
]]></sourcecode>
            <t><strong>Interpreting Tool Output</strong></t>
            <t>The command output:</t>
            <ul spacing="normal">
              <li>
                <t>will suggested the next YANG Semver, based on the changes.</t>
              </li>
              <li>
                <t>indicate whether the <tt>rev:non-backwards-compatible</tt> annotation is needed.</t>
              </li>
              <li>
                <t>highlight any non-backwards-compatible changes, which are reported as errors.</t>
              </li>
              <li>
                <t>indicate if there are changes to any statements, e.g., description, that require further analysis to decide whether a semantic change has occurrred and hence if the change is not-backwards-compatible rather than editorial.</t>
              </li>
            </ul>
            <t><strong>Example Tool Output 1</strong>:</t>
            <t>This example illustrates what the expected output would be for an update to a YANG module that is derived from an IANA registry update that defines a new enum or identity.  This is a minor version change and hence the version change recommended by the tool is from 1.0.0 → 1.1.0.</t>
            <sourcecode type="text"><![CDATA[
SUGGESTED-NEXT-YANG-SEMVER: 1.1.0
]]></sourcecode>
            <t><strong>Example Tool Output 2</strong>:</t>
            <t>This example output below due to deleting an enum entry indicates an NBC change has occurred. Hence the tool recommends a major version number change from 1.0.0 → 2.0.0 and the addition of the <tt>rev:non-backwards-compatible</tt> statement.</t>
            <sourcecode type="text"><![CDATA[
SUGGESTED-NEXT-YANG-SEMVER: 2.0.0
NBC-CHANGE(S):
iana-ssh-mac-algs@2026-03-06.yang:45: error: rev:non-backwards-compatible is required for this revision
iana-ssh-mac-algs@2026-03-06.yang:62: error: the enum 'AEAD_AES_256_GCM', defined at iana-ssh-mac-algs@2024-10-16.yang:109 is illegally removed or marked obsolete
iana-ssh-mac-algs@2026-03-06.yang:62: error: the value for enum 'hmac-sha2-256', has changed from 7 to 6 (RFC 7950: sec. 11, p5, bullet 1)
iana-ssh-mac-algs@2026-03-06.yang:62: error: the value for enum 'hmac-sha2-512', has changed from 8 to 7 (RFC 7950: sec. 11, p5, bullet 1)
]]></sourcecode>
            <t><strong>Example Tool Output 3</strong>:</t>
            <t>This example output is for a change to a description statement.  The tool output suggests a version change from 1.0.0 → 1.0.1, which is correct if there is no change in semantics.  It is also highlights that it may be necessary to consult with the authors to determine if a semantic change has occurred (if it is not obvious).  If a semantic change has occurred, then the version change should be from 1.0.0 → 2.0.0.</t>
            <sourcecode type="text"><![CDATA[
SUGGESTED-NEXT-YANG-SEMVER: 1.0.1
POSSIBLE-NBC-CHANGE(S):
Consult document authors and YANG Doctors.
iana-ssh-mac-algs@2025-03-17.yang:138: warning: the description change may have changed the semantics of the node
]]></sourcecode>
            <t>This example output indicates an NBC change has occurred, which is indicated by a major version number change and the addition of the <tt>rev:non-backwards-compatible</tt> statement.</t>
          </section>
          <section anchor="pyang-tree">
            <name>Generating tree diagrams for documentation</name>
            <t>Pyang can be used to generate tree diagram output that conforms to <xref target="RFC8340"/>.  The command below generates the tree diagram for <tt>ietf-module-name.yang</tt>, limited to a line length of 69 characters and writes it into the specified <tt>output-file</tt>.  The <tt>tree-options</tt> is based on the options in pyang that are prefixed with <tt>--tree</tt> and can be seen by running <tt>pyang --help</tt>.  Common options may include printing out grouping (<tt>--tree-print-groupings</tt>) or printing out structures (<tt>--tree-print-structures</tt>).</t>
            <sourcecode type="shell"><![CDATA[
pyang -f tree --tree-line-length=69 -Werror -p <dep-module-directory> -o <output-file> <tree-options> ietf-module-name.yang
]]></sourcecode>
          </section>
        </section>
        <section anchor="yang-lint-validation">
          <name>yanglint</name>
          <t><strong>Purpose</strong>: yanglint is a YANG validator and data manipulation tool from the libyang project, useful for validating modules and instance data.</t>
          <t><strong>Primary Use Cases</strong>:</t>
          <ul spacing="normal">
            <li>
              <t>Validating YANG module syntax</t>
            </li>
            <li>
              <t>Checking cross-module dependencies</t>
            </li>
            <li>
              <t>Validating instance data against YANG schemas</t>
            </li>
          </ul>
          <t><strong>Installation</strong>: yanglint is part of libyang, available from <eref target="https://github.com/CESNET/libyang">https://github.com/CESNET/libyang</eref></t>
          <t><strong>Syntax Validation</strong>:</t>
          <sourcecode type="shell"><![CDATA[
yanglint -p /path/to/yang/modules module-name.yang
]]></sourcecode>
          <t>The <tt>-p</tt> option specifies a directory containing imported modules.</t>
          <t>This command validates the module syntax. No output indicates successful validation; errors will be displayed if found.</t>
        </section>
        <section anchor="yang-catalog-tools">
          <name>YANG Catalog Tools</name>
          <t><strong>Purpose</strong>: The YANG Catalog (<eref target="https://www.yangcatalog.org">https://www.yangcatalog.org</eref>) provides online tools for module validation, comparison, and discovery.</t>
          <t><strong>Primary Use Cases</strong>:</t>
          <ul spacing="normal">
            <li>
              <t>Validating YANG modules without local tool installation</t>
            </li>
            <li>
              <t>Comparing different versions of modules</t>
            </li>
            <li>
              <t>Viewing module dependencies and impact analysis</t>
            </li>
            <li>
              <t>Searching for existing modules and versions</t>
            </li>
          </ul>
          <t><strong>Usage</strong>:</t>
          <t>Access the web interface at <eref target="https://www.yangcatalog.org">https://www.yangcatalog.org</eref> and use the "Validator" and "YANG Impact Analysis" tools.</t>
          <t><strong>Interpreting Results</strong>:</t>
          <t>The online tools provide visual feedback on validation results and module comparisons. The impact analysis tool can show which other modules depend on a given module, helping assess the impact of changes.</t>
          <!--
## Recommended Workflow

The following workflow is recommended for validating and versioning YANG modules:

1. **Make Changes to Module** - Update the YANG file based on registry changes or RFC Editor edits

2. **Validate Syntax** - Run pyang or yanglint to check for syntax errors:
   ~~~~ shell
   pyang - -ietf module-name.yang
   ~~~~

3. **Check for NBC Changes** - Use pyang to compare with the previous version:
   ~~~~ shell
   pyang - -check-update-from old-version.yang new-version.yang
   ~~~~

4. **Review Tool Output** - Analyze any reported issues:
   - Errors from `- -check-update-from` indicate NBC changes
   - No errors indicate BC or editorial changes

5. **Determine Version** - Based on the tool output and manual review:
   - NBC changes → MAJOR version increment (e.g., 1.0.0 → 2.0.0)
   - BC changes (new functionality) → MINOR version increment (e.g., 1.0.0 → 1.1.0)
   - Editorial changes (documentation only) → PATCH version increment (e.g., 1.0.0 → 1.0.1)

6. **Add Revision Statement** - Include:
   - Current date
   - New version number using `ysv:version`
   - Clear description of changes
   - `rev:non-backwards-compatible` extension if NBC changes occurred

7. **Final Validation** - Validate the complete updated module:
   ~~~~ shell
   pyang - -ietf module-name.yang
   ~~~~

8. **Seek Review if Needed** - Contact experts ({{sec-additional-guidance}}) if:
   - Tool output is unclear or surprising
   - Classification is uncertain
   - Description changes may have altered semantic meaning
-->

</section>
      </section>
      <section anchor="tool-limitations">
        <name>Tool Limitations</name>
        <t>While tools are valuable for YANG module validation and versioning, they have a couple of limitations relevant to their usage here:</t>
        <t><strong>Limitation 1: Cannot Always Distinguish Editorial from BC/NBC Changes</strong></t>
        <t>Current tools cannot determine whether a description change is purely editorial (clarifying existing meaning), backwards-incompatible (changing meaning). Human or AI judgment is required to make this distinction.</t>
        <t>Example: Changing "Ethernet interface" to "Ethernet interface, includes all Ethernet interface speeds" could be editorial (if those variants were always included).  But changing an "ip" type from a description saying "IPv4 address or IPv6 address" to just "IPv4 address" would be regarded an a NBC change because the scope of the type has clearly changed and may impact users of that type.</t>
        <t><strong>Limitation 2: May Produce False Positives or False Negatives</strong></t>
        <t>Tool implementations may have bugs or may not cover all edge cases in the YANG versioning rules.  Generally, in any ambiguous cases, the tools are being designed to either explicitly flag this or choose the more impactful option.  It is assumed to be better for clients to potentially flag an NBC change that is not really there than to mistakenly flag an NBC change as only being a BC change.</t>
        <t>Hence the recommendation is to always review tool output critically and seek additional review (<xref target="sec-additional-guidance"/>) when uncertainty remains.</t>
      </section>
    </section>
    <section anchor="appendix-scenarios">
      <name>Summary of IANA Registry Action Scenarios</name>
      <t>This appendix provides a comprehensive reference of common scenarios encountered when updating IANA-maintained YANG module derived from IANA registries.  Each scenario describes the registry action, the corresponding YANG module change, the classification (NBC/BC/Editorial), the version change required, and whether the <tt>rev:non-backwards-compatible</tt> extension must be added.</t>
      <section anchor="quick-reference-table">
        <name>Quick Reference Table</name>
        <t>The assumption is that the YANG module uses the registry entry name, numeric identifier, description, status, and any reference fields as part of the YANG entries.  If additional fields from the registry are used in the YANG module (e.g., perhaps the YANG description is constucted from multiple registry fields) then any changes to those fields will require a new version of the YANG module to be published and an appropriate new version number, chosen based on the actual change to the YANG module.</t>
        <t><strong>Important Principle</strong>: The source or trigger of a change (errata, new RFC, registry update, expert review, etc.) does NOT determine whether it is NBC, BC, or Editorial. What matters is the resultant change made to the YANG module content.</t>
        <table>
          <name>Registry Action → YANG Module Update Reference Table</name>
          <thead>
            <tr>
              <th align="left">Registry Action</th>
              <th align="left">YANG Change</th>
              <th align="left">Classification</th>
              <th align="left">Version</th>
              <th align="left">NBC Ext</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Add new registration</td>
              <td align="left">Add enum/identity</td>
              <td align="left">BC</td>
              <td align="left">MINOR</td>
              <td align="left">No</td>
            </tr>
            <tr>
              <td align="left">Update reference (Draft → RFC)</td>
              <td align="left">Update reference</td>
              <td align="left">Editorial</td>
              <td align="left">PATCH</td>
              <td align="left">No</td>
            </tr>
            <tr>
              <td align="left">Update reference (obsoleted RFC)</td>
              <td align="left">Update reference</td>
              <td align="left">Editorial</td>
              <td align="left">PATCH</td>
              <td align="left">No</td>
            </tr>
            <tr>
              <td align="left">Add additional reference</td>
              <td align="left">Update reference</td>
              <td align="left">Editorial</td>
              <td align="left">PATCH</td>
              <td align="left">No</td>
            </tr>
            <tr>
              <td align="left">Change or remove reference</td>
              <td align="left">Update reference</td>
              <td align="left">Editorial</td>
              <td align="left">PATCH</td>
              <td align="left">No</td>
            </tr>
            <tr>
              <td align="left">Update description (clarify)</td>
              <td align="left">Update description</td>
              <td align="left">Editorial</td>
              <td align="left">PATCH</td>
              <td align="left">No</td>
            </tr>
            <tr>
              <td align="left">Update description (change meaning)</td>
              <td align="left">Update description</td>
              <td align="left">NBC</td>
              <td align="left">MAJOR</td>
              <td align="left">Yes</td>
            </tr>
            <tr>
              <td align="left">Deprecate entry (keep name)</td>
              <td align="left">status deprecated</td>
              <td align="left">BC</td>
              <td align="left">MINOR</td>
              <td align="left">No</td>
            </tr>
            <tr>
              <td align="left">Obsolete entry</td>
              <td align="left">status obsolete</td>
              <td align="left">NBC</td>
              <td align="left">MAJOR</td>
              <td align="left">Yes</td>
            </tr>
            <tr>
              <td align="left">Rename entry</td>
              <td align="left">Change identifier</td>
              <td align="left">NBC</td>
              <td align="left">MAJOR</td>
              <td align="left">Yes</td>
            </tr>
            <tr>
              <td align="left">Remove entry completely</td>
              <td align="left">Remove enum/identity</td>
              <td align="left">NBC</td>
              <td align="left">MAJOR</td>
              <td align="left">Yes</td>
            </tr>
            <tr>
              <td align="left">Change value number</td>
              <td align="left">Change value</td>
              <td align="left">NBC</td>
              <td align="left">MAJOR</td>
              <td align="left">Yes</td>
            </tr>
            <tr>
              <td align="left">Reuse old value (previously removed)</td>
              <td align="left">Same as adding new entry</td>
              <td align="left">BC</td>
              <td align="left">Minor</td>
              <td align="left">No</td>
            </tr>
            <tr>
              <td align="left">Add footnote</td>
              <td align="left">Optionally update description</td>
              <td align="left">Editorial</td>
              <td align="left">PATCH</td>
              <td align="left">No</td>
            </tr>
            <tr>
              <td align="left">Non-YANG field changes</td>
              <td align="left">Depends on how the module is updated</td>
              <td align="left">Analyze</td>
              <td align="left">Varies</td>
              <td align="left">Maybe</td>
            </tr>
            <tr>
              <td align="left">Errata</td>
              <td align="left">Depends on content</td>
              <td align="left">Analyze</td>
              <td align="left">Varies</td>
              <td align="left">Maybe</td>
            </tr>
            <tr>
              <td align="left">Early alloc expired (left as-is)</td>
              <td align="left">No change</td>
              <td align="left">N/A</td>
              <td align="left">None</td>
              <td align="left">No</td>
            </tr>
            <tr>
              <td align="left">Early alloc expired (removed)</td>
              <td align="left">Follow removal rules</td>
              <td align="left">NBC</td>
              <td align="left">MAJOR</td>
              <td align="left">Yes</td>
            </tr>
            <tr>
              <td align="left">Revive expired (removed) allocation</td>
              <td align="left">Add enum/identity</td>
              <td align="left">BC</td>
              <td align="left">MINOR</td>
              <td align="left">No</td>
            </tr>
          </tbody>
        </table>
        <t><strong>Key</strong>:</t>
        <ul spacing="normal">
          <li>
            <t><strong>BC</strong> = Backwards-Compatible; <strong>NBC</strong> = Non-Backwards-Compatible</t>
          </li>
          <li>
            <t><strong>MAJOR/MINOR/PATCH</strong> refer to the YANG Semver version components</t>
          </li>
          <li>
            <t><strong>NBC Ext</strong> = Whether <tt>rev:non-backwards-compatible</tt> extension is required</t>
          </li>
          <li>
            <t><strong>Varies</strong> or <strong>Maybe</strong> indicates the specific change must be analyzed using the detailed scenarios below</t>
          </li>
        </ul>
      </section>
      <section anchor="detailed-common-scenarios">
        <name>Detailed Common Scenarios</name>
        <t>Note: The following scenarios only contain snippets of YANG to illustrate the change being made and are not intended to represent complete example modules, or be able to compile or validate.</t>
        <section anchor="scenario-1-adding-a-new-registry-entry">
          <name>Scenario 1: Adding a New Registry Entry</name>
          <t><strong>Registry Action</strong>: A new entry is added to an IANA registry.</t>
          <t><strong>YANG Module Change</strong>: Add a new enum value or identity.</t>
          <t><strong>Classification</strong>: Backwards-Compatible (BC)</t>
          <t><strong>Version Change</strong>: Increment MINOR version (e.g., 1.0.0 → 1.1.0)</t>
          <t><strong>NBC Extension Required</strong>: No</t>
          <t><strong>Rationale</strong>: Adding a new type is backwards compatible because it cannot break backwards-compatability of existing implementations.</t>
          <t><strong>Example</strong>:</t>
          <t>Previous version, <em>1.0.0</em>:</t>
          <sourcecode type="yang"><![CDATA[
revision 2025-11-01 {
  ysv:version "1.0.0";
  description "Initial revision.";
}

typedef interface-type {
  type enumeration {
    enum ethernet {
      value 6;
      description "Ethernet interface";
    }
  }
}
]]></sourcecode>
          <t>New version, <em>1.1.0</em>, after addition of 'wifi' enum type:</t>
          <sourcecode type="yang"><![CDATA[
revision 2025-11-15 {
  ysv:version "1.1.0";
  description "Added 'wifi' (71).";
}
revision 2025-11-01 {
  ysv:version "1.0.0";
  description "Initial revision.";
}

typedef interface-type {
  type enumeration {
    enum ethernet {
      value 6;
      description "Ethernet interface";
    }
    enum wifi {
      value 71;
      description "IEEE 802.11 wireless interface";
    }
  }
}
]]></sourcecode>
        </section>
        <section anchor="scenario-2-updating-references">
          <name>Scenario 2: Updating References</name>
          <t><strong>Registry Action</strong>: A reference is updated (e.g., RFC obsoleted, additional reference added, draft reference changed to RFC number).</t>
          <t><strong>YANG Module Change</strong>: Update the "reference" statement.</t>
          <t><strong>Classification</strong>: Editorial</t>
          <t><strong>Version Change</strong>: Increment PATCH version (e.g., 2.3.0 → 2.3.1)</t>
          <t><strong>NBC Extension Required</strong>: No</t>
          <t><strong>Rationale</strong>: Reference statements may be added or updated without affecting compatibility of existing implementations.</t>
          <t><strong>Example</strong>:</t>
          <t>Previous version, <em>2.3.0</em>:</t>
          <sourcecode type="yang"><![CDATA[
revision 2025-11-01 {
  ysv:version "2.3.0";
  description "Added 'foo' (42).";
}

typedef interface-type {
  type enumeration {
    ...
    enum foo {
      value 42;
      description "Foo interface type.";
      reference "RFC 1234";
    }
  }
}
]]></sourcecode>
          <t>New version (<em>2.3.1</em>) after the reference for 'foo' is updated to RFC 5678:</t>
          <sourcecode type="yang"><![CDATA[
revision 2025-11-15 {
  ysv:version "2.3.1";
  description "Updated reference for 'foo' (42).";
}
revision 2025-11-01 {
  ysv:version "2.3.0";
  description "Added 'foo' (42).";
}

typedef interface-type {
  type enumeration {
    ...
    enum foo {
      value 42;
      description "Foo interface type.";
      reference "RFC 5678 (obsoletes RFC 1234)";
    }
  }
}
]]></sourcecode>
        </section>
        <section anchor="scenario-3-deprecating-a-registry-entry">
          <name>Scenario 3: Deprecating a Registry Entry</name>
          <t><strong>Registry Action</strong>: A registry entry is marked as deprecated (name and description remain visible).</t>
          <t><strong>YANG Module Change</strong>: Change status from "current" to "deprecated".</t>
          <t><strong>Classification</strong>: Backwards-Compatible (BC)</t>
          <t><strong>Version Change</strong>: Increment MINOR version (e.g., 2.3.1 → 2.4.0)</t>
          <t><strong>NBC Extension Required</strong>: No</t>
          <t><strong>Rationale</strong>: Changing status to deprecated is backwards-compatible but the description must also be updated to highlight the difference in meaning between IANA registries and YANG modules.</t>
          <t><strong>Example</strong>:</t>
          <t>Previous version, <em>2.3.1</em>:</t>
          <sourcecode type="yang"><![CDATA[
revision 2025-11-15 {
  ysv:version "2.3.1";
  description "Updated reference 'foo' (42).";
}

typedef interface-type {
  type enumeration {
    ...
    enum oldtype {
      value 99;
      description "Old interface type";
    }
  }
}

]]></sourcecode>
          <t>New version (<em>2.4.0</em>) after deprecation:</t>
          <sourcecode type="yang"><![CDATA[
revision 2025-11-23 {
  ysv:version "2.4.0";
  description "Deprecated 'oldtype' (99).";
}
revision 2025-11-15 {
  ysv:version "2.3.1";
  description "Updated reference 'foo' (42).";
}

typedef interface-type {
  type enumeration {
    ...
    enum oldtype {
      value 99;
      status deprecated;
      description
        "Old interface type. This value is deprecated in the base IANA
        registry which means that its use is NOT RECOMMENDED.";
    }
  }
}
]]></sourcecode>
        </section>
        <section anchor="scenario-4-obsoleting-a-registry-entry">
          <name>Scenario 4: Obsoleting a Registry Entry</name>
          <t><strong>Registry Action</strong>: A registry entry is marked as obsolete.</t>
          <t><strong>YANG Module Change</strong>: Change status from "deprecated" (or "current") to "obsolete".</t>
          <t><strong>Classification</strong>: Non-Backwards-Compatible (NBC)</t>
          <t><strong>Version Change</strong>: Increment MAJOR version (e.g., 2.4.0 → 3.0.0)</t>
          <t><strong>NBC Extension Required</strong>: Yes</t>
          <t><strong>Rationale</strong>: Changing status to obsolete indicates the value MUST NOT be used, breaking compatibility.  Note, the description comment about deprecation can also be removed.</t>
          <t><strong>Example</strong>:</t>
          <t>Previous version (<em>2.4.0</em>):</t>
          <sourcecode type="yang"><![CDATA[
revision 2025-11-23 {
  ysv:version "2.4.0";
  description
    "Deprecated 'oldtype' (99).";
}

typedef interface-type {
  type enumeration {
    ...
    enum oldtype {
      value 99;
      status deprecated;
      description
        "Old interface type. This value is deprecated in the base IANA
        registry which means that its use is NOT RECOMMENDED.";
    }
  }
}
]]></sourcecode>
          <t>New version (<em>3.0.0</em>) after obsoletion:</t>
          <sourcecode type="yang"><![CDATA[
revision 2025-11-30 {
  ysv:version "3.0.0";
  rev:non-backwards-compatible;
  description
    "Obsoleted 'oldtype' (99).";
}
revision 2025-11-23 {
  ysv:version "2.4.0";
  description
    "Deprecated 'oldtype' (99).";
}

typedef interface-type {
  type enumeration {
    ...
    enum oldtype {
      value 99;
      status obsolete;
      description
        "Old interface type.";
    }
  }
}
]]></sourcecode>
        </section>
        <section anchor="scenario-5-removing-a-registry-entry-completely">
          <name>Scenario 5: Removing a Registry Entry Completely</name>
          <t><strong>Registry Action</strong>: A registry entry is removed with no trace.</t>
          <t><strong>YANG Module Change</strong>: Remove the enum or identity from the module.</t>
          <t><strong>Classification</strong>: Non-Backwards-Compatible (NBC)</t>
          <t><strong>Version Change</strong>: Increment MAJOR version (e.g., 2.2.0 → 3.0.0)</t>
          <t><strong>NBC Extension Required</strong>: Yes</t>
          <t><strong>Rationale</strong>: Removing a schema node is NBC per Section 3.1.2.1 of <xref target="I-D.ietf-netmod-yang-module-versioning"/>.</t>
          <t><strong>Example</strong>:</t>
          <t>Previous version (<em>2.2.0</em>):</t>
          <sourcecode type="yang"><![CDATA[
revision 2026-02-01 {
  ysv:version "2.2.0";
  description
    "Added 'legacy-wireless' identity.";
}

identity interface-type {
  description
    "Base identity for interface types.";
}

identity legacy-wireless {
  base interface-type;
  description
    "Legacy wireless interface.";
}
]]></sourcecode>
          <t>New version (<em>3.0.0</em>) after removal:</t>
          <sourcecode type="yang"><![CDATA[
revision 2026-03-15 {
  ysv:version "3.0.0";
  rev:non-backwards-compatible;
  description
    "Removed 'legacy-wireless' identity.";
}
revision 2026-02-01 {
  ysv:version "2.2.0";
  description
    "Added 'legacy-wireless' identity.";
}

identity interface-type {
  description "Base identity for interface types.";
}
]]></sourcecode>
        </section>
        <section anchor="scenario-6-renaming-a-registry-entry">
          <name>Scenario 6: Renaming a Registry Entry</name>
          <t><strong>Registry Action</strong>: The name of a registry entry is changed.</t>
          <t><strong>YANG Module Change</strong>: Change the enum or identity identifier.</t>
          <t><strong>Classification</strong>: Non-Backwards-Compatible (NBC)</t>
          <t><strong>Version Change</strong>: Increment MAJOR version (e.g., 3.1.0 → 4.0.0)</t>
          <t><strong>NBC Extension Required</strong>: Yes</t>
          <t><strong>Rationale</strong>: Renaming breaks programmatic references to the identifier.</t>
          <t><strong>Example</strong>:</t>
          <t>Previous version (<em>3.1.0</em>):</t>
          <sourcecode type="yang"><![CDATA[
revision 2026-04-01 {
  ysv:version "3.1.0";
  description "Added 'old-gre' identity.";
}

identity tunnel-type {
  description "Base identity for tunnel types.";
}

identity old-gre {
  base tunnel-type;
  description "GRE tunnel (legacy name).";
}
]]></sourcecode>
          <t>New version (<em>4.0.0</em>) after rename:</t>
          <sourcecode type="yang"><![CDATA[
revision 2026-05-01 {
  ysv:version "4.0.0";
  rev:non-backwards-compatible;
  description "Renamed 'old-gre' identity to 'gre'.";
}
revision 2026-04-01 {
  ysv:version "3.1.0";
  description "Added old-gre identity.";
}

identity tunnel-type {
  description "Base identity for tunnel types.";
}

identity gre {
  base tunnel-type;
  description "GRE tunnel.";
}
]]></sourcecode>
        </section>
        <section anchor="scenario-7-changing-a-value-number">
          <name>Scenario 7: Changing a Value Number</name>
          <t><strong>Registry Action</strong>: The numeric value assigned to a registry entry is changed.</t>
          <t><strong>YANG Module Change</strong>: Change the value assigned to an enum.</t>
          <t><strong>Classification</strong>: Non-Backwards-Compatible (NBC)</t>
          <t><strong>Version Change</strong>: Increment MAJOR version (e.g., 2.3.0 → 3.0.0)</t>
          <t><strong>NBC Extension Required</strong>: Yes</t>
          <t><strong>Rationale</strong>: Changing values breaks compatibility for implementations using those values.</t>
          <t><strong>Example</strong>:</t>
          <t>Previous version (<em>2.3.0</em>):</t>
          <sourcecode type="yang"><![CDATA[
revision 2026-01-10 {
  ysv:version "2.3.0";
  description "Added multiple identities.";
}

typedef interface-type {
  type enumeration {
    enum fastether {
      value 210;
      description "Fast Ethernet interface.";
    }
    enum atm {
      value 211;
      description "ATM making a surprising comeback";
    }
  }
}
]]></sourcecode>
          <t>New version (<em>3.0.0</em>) after value change:</t>
          <sourcecode type="yang"><![CDATA[
revision 2026-02-20 {
  ysv:version "3.0.0";
  rev:non-backwards-compatible;
  description "Changed 'fastether' value to 215.";
}
revision 2026-01-10 {
  ysv:version "2.3.0";
  description "Added multiple identiies.";
}

typedef interface-type {
  type enumeration {
    enum fastether {
      value 215;
      description "Fast Ethernet interface.";
    }
  }
}
]]></sourcecode>
        </section>
        <section anchor="scenario-8-updating-description-clarification">
          <name>Scenario 8: Updating Description (Clarification)</name>
          <t><strong>Registry Action</strong>: Description is updated to clarify existing behavior without changing meaning.</t>
          <t><strong>YANG Module Change</strong>: Update the description statement.</t>
          <t><strong>Classification</strong>: Editorial</t>
          <t><strong>Version Change</strong>: Increment PATCH version (e.g., 2.1.3 → 2.1.4)</t>
          <t><strong>NBC Extension Required</strong>: No</t>
          <t><strong>Example</strong>:</t>
          <t>Previous version (<em>2.1.3</em>):</t>
          <sourcecode type="yang"><![CDATA[
revision 2026-02-05 {
  ysv:version "2.1.3";
  description "Clarified description for 'foo'.";
}

identity ethernet {
  base interface-type;
  description "Ethernet interface.";
}
]]></sourcecode>
          <t>New version (<em>2.1.4</em>) after clarification:</t>
          <sourcecode type="yang"><![CDATA[
revision 2026-02-12 {
  ysv:version "2.1.4";
  description "Clarified description for 'ethernet'.";
}
revision 2026-02-05 {
  ysv:version "2.1.3";
  description "Clarified description for 'foo'.";
}

identity ethernet {
  base interface-type;
  description
    "Ethernet interface, includes 10BASE-T, 100BASE-T, and
     1000BASE-T variants.";
}
]]></sourcecode>
        </section>
        <section anchor="scenario-9-updating-description-semantic-change">
          <name>Scenario 9: Updating Description (Semantic Change)</name>
          <t><strong>Registry Action</strong>: Description is updated in a way that changes the semantic meaning or behavior.</t>
          <t><strong>YANG Module Change</strong>: Update the description statement.</t>
          <t><strong>Classification</strong>: Non-Backwards-Compatible (NBC)</t>
          <t><strong>Version Change</strong>: Increment MAJOR version (e.g., 2.2.0 → 3.0.0)</t>
          <t><strong>NBC Extension Required</strong>: Yes</t>
          <t><strong>Example</strong>:</t>
          <t>Previous version (<em>2.2.0</em>):</t>
          <sourcecode type="yang"><![CDATA[
revision 2026-03-01 {
  ysv:version "2.2.0";
  description "Defined 'ip' identity.";
}

identity ip {
  base interface-type;
  description "Interface supports IPv4.";
}
]]></sourcecode>
          <t>New version (<em>3.0.0</em>) after semantic change:</t>
          <sourcecode type="yang"><![CDATA[
revision 2026-04-01 {
  ysv:version "3.0.0";
  rev:non-backwards-compatible;
  description "Changed description for 'ip' identity";
}
revision 2026-03-01 {
  ysv:version "2.2.0";
  description "Defined 'ip' identity.";
}

identity ipv {
  base interface-type;
  description "Interface supports IPv4 and IPv6.";
}
]]></sourcecode>
        </section>
        <section anchor="scenario-10-handling-errata">
          <name>Scenario 10: Handling Errata</name>
          <t><strong>Registry Action</strong>: An errata report is filed for the registry or module.</t>
          <t><strong>YANG Module Change</strong>: Depends on the specific errata content.</t>
          <t><strong>Classification</strong>: Analyze the actual change, not the source (errata vs. new RFC does not determine classification).</t>
          <t><strong>Version Change</strong>: Follow the rules based on the actual change being made to the IANA registry entry.</t>
          <t><strong>NBC Extension Required</strong>: May be required depending on the change.</t>
          <t><strong>Examples</strong>:</t>
          <ul spacing="normal">
            <li>
              <t>Errata fixes typo in description → Editorial / PATCH</t>
            </li>
            <li>
              <t>Errata adds missing enum → BC / MINOR</t>
            </li>
            <li>
              <t>Errata corrects wrong value assignment → NBC / MAJOR</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The creation of this document was motivated by questions from IANA team members Amanda Baber and Sabrina Tanamal regarding the correct handling of YANG module versioning. This was followed by a productive in-person discussion at IETF 124 between members of the YANG versioning design team, the IANA team, NETMOD working group chairs, RFC Editor representatives, and the OPS Area Director.</t>
      <t>Participants in that meeting included: Amanda Baber, Jason Sterne, Joe Clarke, Kent Watsen, Lou Berger, Mahesh Jethanandani, Per Andersson, Reshad Rahman, Rob Wilton, and Sabrina Tanamal.</t>
      <t>Special thanks to Joe Clarke for his presentation on YANG versioning tooling at IETF 124, which informed the tooling guidance in <xref target="appendix-tooling"/>.</t>
      <t>The authors thank the RFC Editor and IANA teams for their collaboration in refining the operational procedures described in this document.</t>
      <t>The authors also thank the NETMOD working group for their extensive work on YANG versioning specifications that form the foundation of this guidance, including the module versioning framework, semantic versioning, and associated tooling.</t>
      <t>The initial substantive revision of this document used Claude Sonnet 4.5 to create prose and examples, which have been subsequently reviewed and refined by the YANG Versioning design team and the NETMOD working group.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1923IbV5LgO77iDBwxIhEASJCUbKN9aYqiZM60KA0p2Tux
vdEqAAWyWkAVuqpACiNpHvcD9hP3Szav51IXkJQ8HTO762i3CaDqXPJk5sl7
DgaDTpmUi3hsui/WySxKp7GZZ7l5GaXRVZJemX89Pn9hXmaz9SIuTJKai+cn
hYnSmTk7Pj82F/FVUpR5EhfdTjSZ5PENDES//CM+aU5nSQmj0SA6frczjcr4
Kss3YxhwnnU6s2yaRktYwyyP5uUgicv5II3LZTYbJLCOwSZKrwZX8vpgf9Qp
1pNlUhRJlpabFbx3dvrmuTHfmGhRZLCAJJ3Fqxj+Ly27fdONaRFJtMAPZ8dP
4T+wpu7ZxZvn3U66Xk7ifNyZwZrGnWmWFnFarIuxKfN13IHtHHaiPI5g1Fev
L7ud2yx/f5Vn6xV8cX765uWrZ93O+3gDX8/GHTMgqOB/3ebxE+4f//trnOOi
Aa6dmzhdw4TG2NHiEgdHWMeLBTzShR95e93f4Ac8jBf4LH6/jJIFfM9A+iMC
bJjl9EaUT6/hl+uyXBXjvT18EL9KbuKhPraHX+xN8uy2iPd4iD189Sopr9cT
eDm/uk0WZZbu1aGPzy0AVEXpTaLPD3mEYZI1vLnHh3sT57Oy4ViH1+Vy0e10
onV5neUIS5jJmPl6sWDc6F5kcFCl+Y2m6tKvsJkoTf4tKgGoY3OSFNOMvo8F
Pjmv649T/GU4zZYwQZrlS3jhhoAPx/Rk/2Bf/vz2+8f653eHR/Tn2eDZ0MdH
WvOSyAG3IqfZ+mQRL28Qu+o/5/Ppd0f7306S4q5p5skiJhDgc4BeA8Smwevj
i+OXp29OLy7HtGWlYiK111EOL5SwPoZTGeVXsX9it7e3QzwDRgegpKt0CdRS
7NHEK/t69fPwAx8TDmpPiv4Z4GEI8QOUkbA9ODcDZ3oNBzWAY4EJkgKOUJ6c
ZOtpNIuSHEC8yIDk8XH8kdAmmSNVDHJmPZtw+2cpLHMeARd7Aw8VZieZ4x+7
yqk2DwVIsUwGzCOKu7ctK4zm8EbLAo9nszwuCvM8WiaLjTn3h77/qiIeZTCn
UR68wCKaJy3ruzx+fvYV+EMjryqv32NFk6uV91q4pKcvXn/FisKR74G6w+Gw
0xkMBiaaAHiiadnpvLlOCgO31BqHNKs8u0lmgFzKu0yZmfI69m88e0NmKTBr
/y5dtt2lub1L+wbvoBxfwQsJvsVpo9VqkUyJ15lszoNdAgGlZTL1bhaT4/Cy
hWUymy3iTucb8wouRHNWFOu42PsX+D8cBuA8GppnmbmNTRrHs2BDtCZYZBns
HX5YwHrsLiZZeW0mG1j8TYILMHiP0p6EO/4MJD2Mh32QKhaL7BYXiKBSpoYb
hKsQVzPExYSQTgpjGUmWRos+fUOgyLMVXOklLXVdMOwPRqPv4XZKr9bRVfwz
DvccjqLhZI6fAYxntO/biHcV4eqqz+L3APWNifM8KiMCC4oa/kHaeT5+LOLp
YBJNSUBIZ58/901xna0XM5znCjihiT9EyxWCDc4Pp6KjImnkr2sAah7P4zwm
+MOPPL5xtwyLR+bP//0iLq6j2Z//x894sDj1BUA/voUHeWAPhJ1Or+dtaGBg
+gjABTJGjMDDZ2HZhFSTGEAdm9V6onjW6ynu08yymwmcGshEeDXzwcPU8C0w
kg4LQATjEIzA6qfvYbqoxL1tTHSVxwB8kBdoryj5zOEAChgB5Cw4oEuQIM9O
L18gByfkjGe7tff1M5+KLA+2Fm14F8V1E9kR9tzAkhO8LOBG4u0VZg14uDDw
Z1zDmuuogH9n9HW2WmV5uU6TcoNbYwjQngGhU36mjD+Uww5LfkBhUxiDSZ2F
RnyPaDz29wSfrmFxGweXPP7bOslj4mQAd9zNagG328ysVxnSZrwcIhLAtZfD
BukcOx2a9ONHEW4+f+a/UbqBvxUQOBsQzgyXskSZE6DMEijxK5oTqTmiZQPE
ymyaLQokUYG3gBjGCiAMkAJ+WyIqIoPr0/t0SAruY2LPMLXcfuaY+DHCcwfx
Zxfl27SEfytDE6xw4bM4T/AE53m2rHLPoXmKTAlWPIUrEt4SICrSmqgsmePI
1itUpsstkyV+hG14FFE9uATpGUFFvxYwRwosLc+BpIA4Ipy/qMxhSOApk0my
wB3fXgNjDg5lhTx0Nmy9dgKWGPBs4sZtNxGqda1XEZy8mQEAk3QKdD4F3pwn
GdwPyNx6va3aYK83Nr/hJnSlBTJ1PL3aRLg9S31wazDpApELitGBzWilPswB
oxiTtu7vOrpBgilWeGUScBNEmfC8/JW4c5KTgalpIYLXeAQHwfZJ/H4puAlP
++CwYKigo3+mSAubECQBJgMVFLH/7hKvhYl930RTWPQMlrIQJoH3IHArh76E
NrHDitoNXr1TDdxs18TwAHVXAL9pnqxQbh+aM2AA9HlCVAR4i/wtxqMCsSiZ
xoU7uBmAWAgUqGwBcDXTNcAXZrRKNS2ZFhQrH7wVzZa0YMcpkL3gxoSq8HuP
K+FCiP0OAeIgSASyReLJZaD+Lcx1vFgpDvjiFIwpGACok84WQuz+6cAFvoqn
yRwErCIp17KaZbRxPAW+WC+Y+h3bDrj+TlRYMOKdI4ICiPAJn4DVgT9/3oXj
+wkw7jwr43GvByzT6HMqZNrNzWLAwgUPGRxxH5+DtcFXkQE1PwIcAyEjvcpI
iABdeE22E/84COIWroCzKMHQL46PIsRq9LWVqyDVsnA0X+eEZR7q2dNmewKh
clZEC4Q63O0fP7aqgp8/8y1kUdJDE4s1gNkOTR38CTJ4gpOYhVYFIGDRuiQ+
kVkMztYlzIC7ZOoE5EaEFRrz8J6QaYFqx1yYVlGnPLq48ug2leFARKAXr+IU
1uxx8kzWY7GaxRtBxUhEd5AuGEbNZgW46gfmtVVVvDliQHU5uao0K5pR0Th2
s+2D5nkWz2lM5VP+kFY1UCoDKT6dLtYzq6zQUlBwvo3yWTHQ+3HBikSapYPG
H6cw4FW8Za1sfQkW2Ko17egv8MYuLchH5jvhofpMMFmDklPUhvYun3VhiYgX
0kHZ7sR7GeFBoyf8+eM3yEq84T93Oj/8Ayh+H8fjSQbT5yukLjOZrkZHgzK6
uopnsMLBT1XhYl0Q9w5YaZyDAJQtsqsNI+z9MWKMasdTe2Yn7sx2np7smhM6
OFAuxuZYTpFUrQBtiNpgZ8gvCmV+jXjASCeoNCPYE02rXnM4HA1HyNrvvwGQ
IU8UvyyvB6xlUVyV2Jdn568urFjHRpghbv0cULZ5++cP2/8sg/nTzALiq+Fw
8FA4nN8LEMf/VAMEK0SzmT6DvoFWUgZWCDc0vlzAXcq3vHc7WRbifpVfPIgB
5H8/pFbWQZjsUSQdWisTGcAZKhQSdD8Av6ZLT1aBN5/pEbSGhDzD18dvTn75
y8mrl/BHT1SKdIZMXpYeKguLGK5BPMIAV/omCg78jj0Rip6qU+RLsDGaz/F6
xPUVCoZlHBEM6LJPp3wF45rF1iGHZNzEilZZuti04xZBqIJbsmFPplIcPxoe
bcFwDwKeZNWv3NMMyYKOvirxs7AvwPIBtHTPgGKDr/XRewMniVaSQMoHXo9Q
WqKxpaa7gmBRxPZuIJ0Gr5ACUT8noJCU2SWradfsxMOrYV8N4wO0jMsnkODw
cfqq2CUrwVNrm0IRg1bvIS/fJZ79Cl75phXXxcpw51XafwBi9pli70FDNRIy
OwQWUGGylUh/QlWmWM/nyQeWMXKQr0CxgzWhOLnC494lSarHVAkit51bEbGw
FNkuijBfF4Tu8xH1aHk94oM9WmQPJIJ4MUNGWsRkddznqenB7VM3T4uzzuOI
5FZFZ50fwRXMW52Wf9s+rfWdIsYqhZAEOiCydTJYr6dsrIeax1oV+SaYmzKP
RWpOhKOwcRs3ZY0yhdPEnbEAFcO8gdqQpOd4/nIL1jiY2CQQvZaADsAk7HGV
qLbj8JUbLHECLRq1xCq4zAqy+4BugdYkHmVozClTIvJm4aIs5uIayUredIK1
wyOgxDUeaZeoWKVL5ZMlpV5OT6wY/vHXHlY86BvmH972gAlkuAQ2VYOaBDcn
7A6Am6CJZz0p8Wl4+fY6mV4b9eXDrtHql0zXiyhXAMwTwqUy66PVHvXRxW20
QUtmSTbWDA3rqu4UQO10LKCDqHo4vc7QIsJgz/GZq5R0IMAha07jA+h0UM+U
Zcs5OPypKTq4GDdGDySj4WGPWMFx6mO9Q3JQ/dC8LPiVEADpvaMevnW/820Z
5HC4z4Pcoew0vn4w3IfXAQCvc3SLsoFfdlaYHfsXcQUW1X50R9/dhy3sc0wE
81C0AtlxmHvah2mpg+2u/O6u4x+B5ZZvM5Jm8ZAQU53xvoTzhk2LN1/NDoQF
t2IWEyEQKVksWcV68leSRDJHc+0wJNzDPcLVyLYfNGaQhGrpjOXrZfTXLK9K
9sa8DvHJmh4DfU7cEBbVfTwD+MFZdRHWqJflbByXN1JgkLkyjcZjgCWg4YHU
P7Rv2OXo+M5DIzMN6RK3uog5CcTJC9JtyZiRu2OaxSwlx2ibJqtN1CoXwhk0
gho22HoMbMC3QsGlU08eqpywsMRLz2lEZp+oTTBuBTqRWFDCaUcyq/WQAMgu
v1xzVOmxGSz2yrGeQDlu5jysLaXxreHYCIAhGm9EyMPvY8BFcxMt1jgIi0cl
eYwBTebwH7nlYEG7bkA4DIID/t2dqYU3S7sEra51O3adfgWTir9h1izm492Y
8nZmOBVpESqz4zDrgvUUbycs/nbFLtxFbILlAJojq5hZYRZudNEbI/Pu3Tse
bBw8Cl+7te6GB/ZAFdce2F12ppZDu4iXACdYbHhk63SB7Isde4s8jmYb5n8C
m242KTLkgd0vhR7GsPnQQ2jaQWlhoDjUFpbJ5SyTJbknZBf+Ssj1R8oDUgvx
Mna/LfDqLjaAZx9wNMWM4GXAUtB4poKpJlKHH3lj8Dc2YsIroFAl800dMz1M
DKYXRtSkdk5iAHCS5RXl7mGqoUWHugwWsUYOdw6KTzDUNmwJbjwRF62koyAj
+Akkazp9I7adsMeC7nO89Mj+XWI0gwMeRxRYqlaunvHVK4y8gaZh+OekXhGj
gCWjn46PoFiDqAf7B5mvhEsT46syvKpmqg14isBbYrmyPPh5WgZWf0TAbLXJ
k6vr0jtluqfe3GUnOlU7EV9a/k3keXDnGO1DruwvYAMIme62RXSbrFUSueJ+
efn28g1d/rMZqw8RIY61X9F5N9i10B1McoC40jyZh7SXu7gUvLKgsDsVZVY4
RrYu7FjivXA2MRX1k8VijRFPbHoKdgMkCArdEP1ROKaVsiPV0UGYeDTPskdA
qYXsGd5RsYSkRmDsIHbh70RBf1vDe2T4QfsGsYZHkyh/5L9Hku3QXCboFcmV
n5Ff6w449FvFuDZd6d22M3/nw6Jwit1W+2SwCzWDeSgLBP3v8I9BlOwYN8jB
/sHjwWg0GD02HylEbVPcjK0ESaN1/0A/bFsyP+GxBYl2614IwCsHp/Af0tif
awvafzLYHzUtiA632zrdMSNDMJmbA4PtEAidj2O4WeCS+LFLnKHL0X8/di+s
9ygpStQzFVvpNgxYZpctVmyiM2fL5bqMWNDtdI7RKDmLyHqBjkE4wQRHCR2+
PhNJhG9miHtRzZmV+NYJ0Zuss7g1Gs7aLxOJklCPPC8WTTpLZLWL5D2+R3EO
SbHL7k43n75JOOWzCeI656/eWKvEcbrxZHcvrEyHELtr4QdMRSRq2kFld8F3
dmPW4jLzHVcavJJ4h+BBHaOp4H7J8hIVeYyhCdyaXoCJxgwNnnGIFm0Q4/1W
jbouC5D7IAXu40VDtCLaKiL9LgLB6qY2ekxhgW7hosSYAbUpDMwrPn4/fKI1
ggW3NYnj1AtlkUfwHFmg6JudXu/Nq2evMFmg0CjLm2xxQzww+7nX23XWnkrk
kF4qCnE5Ug1jqMBDwUGaYN/CY7ch0I/C4hjdyLqG+ucNpg4gSmqIgNV0hcLO
yS6tYcR41zZEp6M+xVGBA89op7oybUgwT1Cs0XWMYTNlsgzt5ZuaY8p/l2FU
kOG7Grb0zEYqPaWYOqfXS6iRGMPz+XSgoYmfBaVVnHSRMX4A4xcESbiwKScy
Eha14hkq0BIMeFfMlATDbY+ZyjQIDPcnQ7Lh4ATx5MILQgROCuQRbKFmpPUm
ajTV8qkv47isOOf8aEcNPfOYivoYMNLqFD5v9KhpPGc3sXJt5eJn9zrd9d4F
9i68tJExk4UXKIr5o0hNxIKrhOhRnhW6EFdV6HKxZXr/FxgPIOt2kIsTsrPU
uAUCMPPI7zaeFCCBa2AaOmetSEwogN+wQ48C0s7mVZ7/dULkYlM3OvXbRKDg
WB4iYsH2DnF79u7373Lc1rG3Cp/mH3oPB1cvxru5S7lyk1qzIaaYBRr0nZNo
FHqCYI0KBNiy/YK7625rseZaDY3uPmL24ZNN5kT7Et+T+4/7qH7kfFjwkWUg
L3CX1qiwc48GRxBZp0nDbdt20+qVBCqY2jWZjwEqHBEqAEmcoBHkZZS/h40h
FjSmUyhlcmAk4OsSXxAR7d0PJ6+enZqnpy/Ozi9/ekeHJd+dnj/Db5Y8vNlB
XwJwo5to4UUbFNk6n6oTcpetGXRFRusyW9KVDEhMUWfKMXTAGjHY4KAwMcIP
FWr3mNaijphd/6a30GUZr4qqnlfgl/bektkonJRWrhb3SVzexiJ/tMUR24DJ
MJaVc1bwJe8Ix7i0b2hJZjTmW+yYrjY4ajoW9FtcCGYKj+90KJb2bsGrIaQ2
KR2ncy54uuoaKEvQ2RMej5CARkhHg/3DvhLHt7tqb24kz7pUWRG0HcpPYt9v
UbczeWAU2MvRcHivBebB2H/mtX2m03m2ZYR+9WBxYcvofdzkdcyq9N1XnsHJ
HmQjImuhU/w4sBGxZLqIKKjfulyUbTZYnt6qgdq3W3FqDzMFXLEeFZxsGUcz
vFM5M4VCJDzzGBLTZpVd5dHqGs8f/Ywc1nhp/UxkKXL2LnLElBvMluJjbjAA
avi6pB6xrwEuGwzXJ2r3wHr5y6u3f3omRjulMsZ3FxHK0ZYo0EY5W7wBmdlO
lNL968xqp14UO3kl6+vbqYYBVROSdmkLJN7b+4yWEMQx48HO6/5WHwqckCMh
9WTJm7SEKGxxBPV1VhevoACBk3deKF/FaYgxUyfVQ404Im3OhhXgMro5/5ZL
ExBsgY07T0W+Tjl65uOKOLPDKAC3R6yHY/McB2a8o6A5nsEyvKc1rax/Hx1Q
QpObeRv56ypfVjEVw3HdRWAVfhyyiqiEzda+ex3Mk6MfJFyF8MQsr2jm//t/
/i9PKWVO++cfRE1fL//8kzwB36Nz5C0GBRF0zY6COYWjVPst4nWYYhalAZ2i
WqkrtTo6hxakgLWoPmVqyFuwHeI6WTXI8nWHayW4zbzJsoVYj9DanqRzuHwY
2UFuTEQHWF8BIZXeMHKhle7tdaqcha0BkrcHEiSwXyRcZLAuh8AGj9tYji1Z
BkN2DRYPJJl5EAxK92k2JXcUcM5E0xatvdlD5ArWhBKzF29POIffCViZFPVx
j5qOxuZXoCV+39KSxKT5OT4OiJlIheLTrGXs1hRocdqtIro20ZWVcKKB2WFk
ROaDf8CRlSAcmF+yW7Tca6zLKoMXJxo7uUyAp7+PkZ2Ihz6RnL14xjlgyM+V
N4QBBZk/uXPxI6WtaxlpFJlgIzXVtpKkNEQwMMgSx5TrCCiq5hJJjJLwDKJP
K9CTBwwvD45a4DxJpBDH8ySWylsuorSTymG9nexGmHUe05WTalZWQ1JkztEC
aQZ6RY58llxmfJkDxPkc/JNR/uC+Q+5glYI4x7VyItZMzuni9OTVy5cg/58+
43l7eqg9HI+Gw0+VMb1ZKbAJTskOz8FoStF41ZTrnK1Y9X04a5/efnLElLiE
ahr8tuwDPlHaIgmzRRxT2lQDA0A61avtfswA16r5Of4lz0dt5dmCrjHfRM4c
155tIzo23GBoRGPdj29WX6Z9PGYl4xkl8QIbeO1xkQ79xIJVPc23qokKiTuz
pash4CyInPJbYQV4R7gQJZ8ulc+TJTC4M3nPbMOja/KNzD2oXxpALNNr4YUw
bcMT8YcIJQ4Y5pzyMqd5vILjQlti/CGhnECnpGHuZiQZtGy1YT21kFVYY6rN
LnfMD7OrMekPwyg8Ycc7kSdjT36dhefxSpl+BXhzlnQkdsR6uwZW8qh7Txy7
D/UmTSl3ycYeRt3riCOpF/AhQQ19sXFmOLQohzCqKOUagv9FKrmunBcS58HK
xaDQrdnTu27hcDTMoShAVq4jHS2eUd73loRUsWFTfJ5w/O02bDUAUGIYrhz1
r5W1aulV0pyR3WDmxZe2JmqTzeIV4Dwm0Hc6l9myFhDPYkYYq1dfQB4LDnuu
AUYfTviH1U2BR6BkGs3IYMNXluamyx4cSsIXre4MY06bIjN6PT8If4g40euZ
QTXBV6xpTSVqPE9KU6EbwiiZJQjub5mrudKMDh7WqPn8mSBRKf6izwblYuBR
dzxuRVhmZdtqwiIu/gnLJGGdFtgsW4BKDvFrSae2qmEzclR1JT992mZphPY3
YgzeHafZVLX8XV+vFmfJdYSmP9h1wcE98xp9CmnyTeY7xEKcVqMVIdYvd+SA
kIGBxkEP6zLK8bS9KCsK4prFcxI5rB9+5mURNpdVsOgIb8hZHzvYs31gnts4
DsofR+FzoCYIlzv5nEAMdIiZp5GLyFCfvhojOFeADUK0baBcNDcVVGYhh/3n
62kpskWqSa1wf+YrjBAOU7c5Pp1exei2opKg62UAoO49jdDUtPVYyPzDUb2+
WjF/6OYYbW26BI7POS73z5TRW0HsMBjgqU7A0k8gYl2/YaokTLviV1ELlE3Y
rA3eRcI1axpCJXiKnGwXfR6TdlfL0OmZeCHRZF71ItQFqPTQRJLzZ7GupsVn
zLRGkctoRvayRr6S2NRoLNY1L0zR7OCnXdYZGgioL6GBG+8iYpR1RLQEGQTl
/qH5JSY1vdRUErSW3ERc1sCLzXaZ0cGJIhaOmxL4ijFW6wFegEbXOyIqawZZ
Z4dtChluDBBGsk4+tFlaybFdsQn7Vt6GyMD28MPWbOJw58caNBwGSvtsz49R
lTDb7THJrQG+Egu7LbB3ayZwuHQ7R5S2rNxGFMs0SWsIsTyAnOkLA4Z1ES2A
Q8wNAnyD+F55+d6hvREG9xovtleibKsuAkzG1JAhcW0v14uS4onWLuSUDQsq
+qu1W1VYlfrF9kCIhktAC4/LoPbVima24XR2xLWKfut8y7N4StYmMe9pFPDc
EX/dwK7aMPqwIwm1OBHOGLkSAs/sQdrShuZULupOrQRNWmF6a0mqQhO76Tmk
6IGyOSdiL0X6OKsVtMFYYzu3XMHoZ4VzEqMw4YSo6ehCn8TuekJ4wfuLbEMY
MJQ5wqtbYv69id554zvO60wJxZqKcqFp3hWXaJhvl4JQWa2q2AaVFGbk/GVz
9myX8UNKg4QHjUFugO83WUIRefM1R0OQMS9KK6FKKERtcFbxR7utNUmxVfIL
eKlAVp3Jdc8jmrTbpvfOTiJf+e6mF/mp+skNpYZfGK6D9xzZE+QFG+0s9IM5
OILruJ+9ps2MMcODdFLGmnCFoiU37IeFO8UJzJqX2AkYABfuGfWGMAPJDK89
/dZeRNs0aOuE1twyNn8KlwsXJLFbGJrcqpCoZdgvpcQ2WxxKmY9njfA1k4It
cEXFnS6iNZqRnon4KFldz5O8KJ2PTc00kuLlgt3DfbBdlFI2smlSLeaCwh68
juOQP5sCbZhRXNqgGyu4XGe3NS0CBSEEIA2KayORHqWJF175G6GhGQ3hzBAO
Nqr0VJIL5pQCusI6wbnWRNS1oaO0zkfJ8OESV3W5GOdGkr5I93R76A7D4loe
WKcgDmhWYwBRW6HCd96fceKNxHzp4ywYdDrPrP9TjIEAFHtHepHnWsQVtvkb
oR9LPzQzUuPP+kPKpkNmLyVHz3E23I5HkH1nJ+yLKLHrD0FveiSKAWrKOGvP
CROl76nukl7YetMTOYGoTH6AmJxsP4dO02Oqv3mqoTgqNwWhCer9eeuwpGII
9h1M1ehRjs9q0TakNoRTEiRWtxjfU+K0l1CDOm2ZkM/d/dQdX1SiGFI9MTdG
VeyrvNFyUt4AVvRUAiX1hz2VLEHpW7StuXcFS4iJplUWfN7RgiHTnN+y46Iw
tT4cHtqumljsj5LGQZ4mHycxsdv5dtGV2dt5JTUfdr0oUJsSGxSUYT8LCpbJ
iqDi+4Ylnh3ui60+0XdByKgaaSMv/gFWUY2pHPYqK31bOH8vWRGosEUt3KZe
PK4eZwBjB65RHPo1ucbeuAlO0Fmzd6FXjznHKB0bfPBWBULyVzXOGLrcmap0
MMoqRGcQ+xPEyYp1WYiMd0VU/lBWRShjnsJ53BKaOY8ZLnmRLBOpqum5sfDX
gfcTFg2hyJ2I6taFZWbtwcpCPVHc87QTW/XFwSAiQJmEkLtVjONgggYkq0Ss
yOu/h7M9dJc1+sHxOKtOWA+KdR9pP/Db+VY+DYOhPEUspye2EnbdGUnOqtko
xADS58rGdC7WcEkGIlpDj5bGmfxzuFqpeiFK6PfzwUodP1Iu+N6h7NSUvGDD
0Il1GcfvfX8peVcRzGRCo5xR0simcPqFyOShwfBWg/fKPMKYJyBBPMKh5/if
k49Xoxes+EZFpPssaYlzt6gsx8oUD6gWaV1qIp9W1ssp2os4yuUxgnW2Llfr
shJiwhFgsC9QJdBo2cEidu5OcoVtuLCk9UplE4710OuiJTuXqmpsXA1NKQJx
Q7Y+oUgHgAn8QJEHXgYsgAGACKwm+TCw5Wk/f/aO+NuxpnHQcG8FgZUirKvS
YbTgkpcD6HmoUaFL0JdPQPZHrpCGbyyQ8PzQp0j+RDl11FDg/vhBnIX400/f
/CDT/kSuE7xeHuBifKsOuo0zJHqav2TpfghDCMOQKNS5sEEGfI606GI0pXDR
CRWP/8Z6vEgs5aqjfi1z5K7IBfVgzI4k8ItM0XfGRBfe6ewIwZNxOR1ynCKW
TE/bz35I1REvJRLi2JGSVSTYAdpEOhwtTTacjDmDvsRB001xz3KEarm0N7XW
ebUVqqx+bEvGajLLSUigb2G+HOVNzGowA15QUj6ydFsvwIHq7dOTvsF/YXHW
CMzj43VvniUFVUfH68gNWwvJoYL0W1iAmMgKHtnnBja/xC3Z4zXemn2xVh3J
C3L/1RgETfI2XRdrOMBLCziag1iHnDtzDpyHLiHmINVKqzya1aguYvUbJeKZ
fEl5wV6U8zU5cJznvdDWMnAzjDT/oBZo7SDg/exUm425QsPSJgsqOgGhrZio
fmHdtoJ+p9i7po5d+C2LRUVp+dWrsETyS1ci+Rg0UcAEvKMp/FKK6muxM5oE
rajEV2Y8h+0jZP7RZKsCCMd9xQXD2M+G772Jp9cp2fu98vd+AdvmrFoS1+Fk
KD8uNm+SJY9m1avR4AC4aPxebS+x7LuvAZC+y91HSrlzhUywroIikXBjrllY
MeNytp6wzfgDkOOKbBH/mq1zKUgcVyv7Bik+PJ9v/vibNtcQioIxqdDFsc+h
vZuYK06JEU9EP0yqza84ngHV3yBamRgUk629563EG+CMcCwew9rGaYF+dU0y
iFPNBGG5cgOTpZTLFPAi0kcUdlpeA78XPc0GpsJRRFRq9iaJGDcZ44b+/UGp
hDC7JL6TU+iSUyHGtXqE2qUEaMyPrJAbj7PG3TDPkPX4u++DSFfpaoLnxUe5
YbU9zIwOZrEWG+Z2Pq6N6QSqYRyWeVy7DCjRlR2WAvQ6iX2RJnpidohfwkXP
Yczsv1OrpiI8t1rpjPafHl+eDt4QEo729dMNvBOxOf21Yi17Dmj1Y9804q/H
6S1qC+vqYrps0Cizjp+1xKtzyVl6SOPOJSMbMeKJk0VZMnfOyh0u12grMOxy
6HCHrr2p811aW5VWddFYVNCKdrjwrhujMxH/PY0SuTJKnm3wZyacjDqEeBCI
ktnYdE9l18aeTpceZ/eB//imaHzcK2p91yF1AanE9BEyyLEZDR8P990RBt+P
SLm2kNzl2Pknw336/unJLm4wSt+bTbam49wgE7P91ZhguBOQrZBecSyxwOSV
UNeAMbRl5XFDLwq/3PqV30CwbJGiMDCC7z2/wltTbJkUPXBF1hvUoiBBm2OY
+Icg6u2zBLf4RYi2tQPwwn8qDQFALs4zXDNogmEJOC90HKnwpD4UKhV5Qgq0
UXwl4/xSGvcEE+UYqVipF1T1MKJhHIT7nGrnidHBDyGg2y0p3vvGfFLArTRO
+SF1F6ZICWHpXVceFOQeBGW0MNuykVwiOwcS6xWHEduYvI1mdVrd3NpUClcO
deu0zWXlXP1TbypaoWUm1XYttxyGjNWG13QPUNUgvPgQKFK8USJ/tB6Cqxa7
dY13lxOrrrK6OGr+4TotxWhbViYurmRJm9XzxBqYfjBbexcQtH4UQaB2NR0y
QmsTB8xKXwhxMsZFFc88YaQpZ9Biude4Q8S7tWpAKHOstRoHk041XMtFVlHq
i7WQ4js+Gwq7QpB0lNUKiVJPkvyGw6UzudY58c2tSYOsHW4jRbWksvEEzWV6
GaP9RitEWrttEz64F4Kdv71CMWOsvwZalWRCeFc82h2tIXJXLoAAXmR/xzwk
P+jd42WVPMkFZz2gJECHbBMZKmjk14HpA7rHqbobANVRLyRugZkUBWVAsdse
0F03pJ7w2ZAtA4DAOG54yVWLxKPIyxml+doVVqvcVZTvHLeEPruwYb+nH2WE
fEH3KrREKgmQdLHKY6fh+CvnTCIRfNJ6L5u8cpFtiWcpat2mLBWxk3hdRFdk
okchJqPwImoGZp6uOZclKktAu0KurEI9Cf4anX8BIErmB7dqdG4lBagSJLpZ
ocVQBxzk0WyV5eLEUW65oQBGjJqZn3TjEqVsXo7UpEPDnlWZNmprUqbpe4fE
BiJ1V3u+ftHDNffuq4H3qDMY4cQkVhuShMRo7k00u0nEw+VpexLlfwcWbxfI
FKFVTKikvTWWpuH2T5pHphV2NC+APd1GfZIbMUC6GKGU6oVzNv5MS7NufE+o
V+eX5Lv7da4qJWzCKUqcuK1Z3TGRLItktnNRrdvZXakXbcH/NiYhoKXKBHeR
t2dM9KILHiToUnyEy+kP56d5LR+6e+yKrExjr4P4mHamgU1G8b5BND22FaPU
7fjxG2u4FYebKhT6vZ+CIi+5wlMonRYooLdqE4kzbEpCpsfy6soEMwYS9aNV
ZMszVbpD+cECpCATX9HV2eadfrJolTcPCQThLNV01JgCCQynQyZL8XWnGLNC
ZvulFLvgRbOrC7tROQDxplo7qQW2oCl1dyMmYa0TgWFENNIJt+LSxlmkyvHW
h64fxK/OmIz7LNgNQx49jNP07IScoZlwWBTsKL5GueJGrlI5OzlRyrPKuTB8
JroFLlv9NFIqtS9e3tamUTdJtrCOY9tfq4zD/gXUBeU1JUxsyGN+gldMr8e2
+l8dVvmSrBRr5dWiuCJt5kCnkg5qNlVM2sJqPHOtCamvfGIELMhKBOsgbxrG
uORk8YSrfbFdgDzpKg2H9BpURMT3X/Du6XbDnqmzJLrKo6WEh/gQoRBbkIPg
vqXP4flZqkQD3+vN6zOz826VrEhywhuannxHVgliQD9oZ2ZpCg/w2ltO/nr0
5Ml3e/TsT3i71+PhKI02yWbqaKazRoA3uN3x4QR+BoSfrK/myQeJdSXlLWhC
syPdCojrqrSLLBnzdXgSapLCrfdw4Aq7seFkmMi/rEUrxOk1ogIH3ihUlaFw
CnNpNnEpCnGccwyXLTePKX0C7DyGQ8Z5N1QzYBYTp0QRLg07kXJ/Uu3djMxy
NrPChPOzDamLb5iVyzO5yhbuqrS6G3oZ/d4YFeMI16cOS+/IWmNOVCX1VSUe
dNFLLBU6V+aljCq9/yrlFBqrexWeRZqrvngtPaQic/i4jVeSM5CHpNsvUW1A
llJTz05eZle2tAiLoRXNVoQJVLxmXn3KSaxloPxB6HZSlzNLlIUDWRmOi3xP
i8IhombWzyVR7DORLDdalto/B96InWyP8FvS+dlPH6XhuAhBzL4rg5HRMhdR
eUGvdt67d4MVOqmj/Mr2BNebBZuAYIAHo7UdiUMxsA9BkUwl94c5qXeTfPym
FpZilc/lkjRv7EVitxXk0/qMmYi5kT8PbAinx6j5FhUNggxCBbkD043msmBn
DEnbH1bMfnpeEgKt9b7rLzYU3RyKGwRwbbHoMEkOBuhxg/8wb4I/ltEHSsoa
LOL0qrz+8cn3ZvAbjW8GK/MD4I/GBVhw/2QodMALMqDIArUAf0OFHe3l49VA
qhoh9Ui8YLNOhyPLBIO0gzQFkWMAW+S4R98LrMXqOZwthHsxvBdgBcVaWPbU
VW5CyPulxbV0BgYbZUstT/EBhSlMcBVzAdWXAbxEtgP/ob/xaiRUJUSGCb3o
SBSokClPbPU2uXEKQJuyWlrVXzV3o91YtjtBySJFLp6ucQRY54VUBSo5eh37
xzKCem54xWox8goCIuAYC21cv3WoY6kNYe88Fy8LlIiZGJg9vbGOWnMjKKbh
VAFO8bdwrBn7de9GskFmfuBVU0jKT+YHFDBercriHgj4NWKNxcsgJLEFM0kw
lKgXNU3b6gm3gYnG3W1U2YvZ742LryP0LtYJV2oOVisWeVtdiO87Fuik3A8H
GpKFIahN5I1iTRZ6d1WOW1hbg2VDCWAexjU0+voKV56kIXtJc9qs37EplFY9
PJXru5RoEDark+TmV+fSx+ho/CIYVi1yA0k2BZdqihbIRNpiM2vFMGoZquYV
ruE2Kdi60rByv9Em26Mbdh1sT0+1Gk1FS3cnROkzjYye4DNgqVYSe6vfkiDt
UdEfgdIV34migh9hFcGPQm4o1KsZUUKCzSsiWxIM2WvEnIi+JTu4v0XxYxOm
enm7/ZZA2UGdc4nccFdUdZTCCVirPec243jXydX1gqrMkQnpTscKy/oRqfKS
FQaoJFWD/PUF0qFHNlSFz5KL0laQJSF1J9gqZi14oG1sikRID3P/vGgo68WT
qANEbw7pzSUE8TqW+j1eJAsHWjZv2DfmWx8Fd/eUeAvvsM2IdFtpU1Hv+GC5
k4sIE5FIUZncLu0N9kqJow7MX7U8KavFeVlIXv6ElzlBIjLrC9iyL/UcQAIb
BzOfu8iPvlLpBX3jcLQyKkDnCs0Ng5iUty9enF6+OX02OD/9b2/YDHh5+vLX
04sxP21JqwnQB3VACyhZgJ2xq3EWL+LST7eVHD3b/hW+dzHgHrqg9vCL3TZt
yrPWR81dL7QjX7h1bk2hZkLbpE7UsIckQtwbfjRlBzY2OPkFvj/dwaA0LjNS
XIO0Ox1Ei6vijwf7B08G+4eD/SfEy8ZHj8dMweOtMfS+ECS3VOJan9xjnicH
dp5SEhfNo+PT42d/OT69/MvB4yd/eXHy8pHraoo43zTo0WC0PxjJoKP978l6
vVjEVyRjSmIU10enfFBNsnn4EjnliDLfaLHX+GJxHR0MYLWwUqpmJVljdPzf
IvY9MTto4cCWZ2N0qwzNaAQC+2NUsmGZwC52f8+lPB4dNC3lO1zKt/dYyjZ6
O2ylt6QQX7Hfvq5RJhIPjx8hL7efLwA1ExH+NdJbx9XQcrcL8XCvQaHt/2Qt
YGQmsdecTWnVBIc0RusMGirZgXWPoqlkJmm/cihRel6P5N/lVp/bX23omKqB
/1buaWI0D+CxANHO61eXl2dP/3Q6qDCLEwFArYxu1eg9bMbgx4jBo2+FNA+/
G6uSPq7Fx8m28Bi4EJUgrx+VYx0CWBhCELURGe/B2D0sss5s6oe3lan/Tvyb
9LL7m4utFobPtWlf1vbuD6YQ0bABVGEIfakL43eHR/tUZssXTfnm1NFYawiG
xOW9a9Q63/U5l0xspIEqD4AC3XeqhZuk3WiOTc449lLMAK5zJADN03nhkywU
/sL1DDiWpEDYUm9MT0KWn5ADsA7gIgiweeUHjc5CCxsBVU0Xaq2j0BBXchh+
Vl0Cw3l4LSeciqFzIeaquRv777CZB2BPbiL8sGOnG9ADA/0F90Dm/OA9W4Kp
qL/pfsNXW2wQdGry2oPtWs0mBwX6nWYHW64VcLcxp6zivbKPkwza4LKiJomA
oMlqvXDJFa7W2yKZ0L5B38cgZ2pwjk2jEVs9x6WNLqRQHHRmT6kQbrTFSTXY
7qOi1GBJuqOYxUGDjT4cJJjZRFdoWheNj0vfFE0eIh9GaO9DmpJt9z2vUatP
6OT08vz0zZ688hNOUbMN04Y9ZLJzAqbsoWFvr8z28Ms9hWQLDhClDlbvhD68
1OXIs3uLDUACBlmBrMTJKF/aYoweYu3OGu8v1pRZhUjg8O4PajDWFMNZUqwW
0QZt83NAlnXKkSDqfz2BA1pkV+p8DTMz1BegD+1YqN/e3hIwpvwL5nX8tOuF
jqTEGtnfLOnmZEex6+yLNS2hLiZEAJI4tvkCTHV1qBYZWhxZPfPQi4o80HyY
I6+FaQIPlKsx92sS3zpaCl1RRFccMakqOqZsxFFOBdmkbITEiPrEqFPh5t5i
CBRt6JiOkE78Np64GHBUBrYCm/2YEgrV/VVZifThJdCc8TKPZZldCbSqmXEu
ODJJRN84PDx1x4DWg2bDeRzPUADAi8gzQEtwk1egwjtecYtUoMZnhPcR+UhY
WMnYRGmjX1YxW7UjSSfRQE28pDiEolDwuYpILs/6h38YDKjEm6fAa2OTaksT
23ar4kWu8NctgSGamvcSO2B4xSU4MIgyvKplJchEb2/2WjMymNrzHaNdppB2
TTZVmxkcDX6xVmkAI/aVr9ly9rgRcR0wixhjX0WPFRqtgj0w7DqqcT55Xnoq
ndhhg1ZRhsrsq1zirOZWybBl3W2IePs66jbMmt2yZqu0qzzSzk/xbWirpExA
QMN/02xX4czsRKL1DMwp81Ga9F3TUt4565+XYM8vn2euep0885Qa4tWC2zud
x5wVqeqWbU0Gwzz1hT5fo2THEVnyOZxAFu1n+qOy1BJcHvTzc1rVLg/ijbFT
i3/Y5XGbA+vr40rrBYZovc1IqAZg+D+P35Iv0DQ+6He7nc4TBCKWRbCdvi5V
HyFInmmyH63kxKsXIoDz7O5Bk7egwZu8TcmpszBlMDj+L+2E4OoyfIv7oTYf
gfBiBmGVBq0tXkkl/wrS/g4npkRSoRxb2IBm11JJXBqpwJIKrUUFduFdAfib
ar0ATvBFlgTyBlwTCa+Bik7WKw9wUDs/0FBNwGnVlBQczxrKBgx+4r7QuJA/
uaofIL7XCoFgRkGysDF+OVujtNhz6OZzd2B4M/Q5OoIXhcFC0iLWm8fP4cSn
k1xio9HSQ4U53TqxPtcJOTWMVJN6xjLGGnOdHGFxgeSTvYAjuyQxiaTmgZyF
pznP2rkNVmvKIXK8a6cpvU5AvdtvK1+zUy0Sujs0v6zhoBAPjs/MX9ezKw3P
tZZXgA21lOKgSJpqKiEPYsEbu8pFTcl3VJyyPcsu5hSs+gMo0cczEJtsmw1v
/2SQy6g0CmfigfjmavpqU+ddimr3iqPCVrvJqsvpmtJ2uJITSNs4e31zhDYY
qrqNJaVe3zzRz7QhKoUSPNZ13hXuAUWeIBjfsw9prhjZITB53Mae4XrIpKr5
8GKd0gAFka7g5bywvYKpOnkFTw/G5iU8/5r7kZjn0QIrCGEUGiVHwF74q3NY
I33FIWUorldzlpSmJ5IXoGEWpCXQocUzLFWC2oEGNLFiXam5DafwQotL9rk/
7cZEy0lytUYxxCvT4iie456CRD924gPjWyTThJo4LaIrxktylYdpQQwxVM5Y
QXQG2gJzWzTcYxKXGK/HPc4S7t2aBQ06aJbQzqf+MQ6np6dKaaEYUSijxLmk
za9HUpmL9xi5+x4O03mDGpOfBMElU9+XSDQhcSFh9JWiNPLG9uviNkjkKsm5
gaYDqc+xXpJKqPkntirDMbcguLQ1Q7xgcVfloxoubpXVajyxq5nWVI8EfgAl
mm+Ze8e3bw/kN+YUU6BsYYqwl4Kr/jdVf/GWSvVB0/pK3tsO4MAe/M8l/vab
3Z225cuX9kSjgE0t4snR3v+yxvDaCwvbN5QASUoYUcSquQCB7GpdVKHBLk4U
YPq2hDD7e7EqecXFzhXtpAQcSfy6DHh4MaN2RGpxslNLHRlxYzhUllesZS6o
EUzWap8ZyQZEcAWh6TpaeWGWPveX5LhyPbXd2GyZQzsJzy6NvaPUKYskRGSF
3RIZgDSsIAoCS/xdutpDk6BtBRewa+t9ps3np9f1zmeSYhdWRPArfwYFmOGq
kF7uanKS1qjocc2TqyvMYZg7x9sO6FVRGfVpOaAd96sBAf2wbKeWAaKwHKzn
Whd72HXVWAxnaH6jllvYqy8vtIutazdlvTqzpp1q6xDY8acau/rkl1WATxXB
95MqgvCXNGc2nzqfxoPKP+E3td/dF95fsBpUlWoZVPx1WGH3E14Pn0Th+4SK
Lb4uhgxHRzvc0BdVMjiUXdPwyCdPTv0kGt6WAV2FyS8akMpG+vePe+thA53Y
OjDSl/DLh5KnfZpXSdrboP/zw4cThBQBu23Ucz5Usg4AIgJp4IC2Erhw1533
cbwiHosD1Sppt+DGKy3yyYPYF23xz7bpL7hhkr4mgHdMfcuLdDD8oqrECxzD
/hKidPMwMiGHHogRoPJt+wpQrsaKIPzcjtfq0db//mQucX9RUFeEFq2ApNCk
AIXnWVamGQFNC34ubOjTvTEFeweIwTHGJFq5MujEKdRH85Ov/ap2alP4ZK1l
wJQiKgb3CaV8uDBw8FNiyOFg2qr4rldJ2YAtZVPk2qTw7SxiYCQR6I7FLu9g
qizyfO+Yvkljt7XGITyQS1VrqScrJaXbj/EGJcD6ODT+w5jkx7GB3xbxj90q
50cm6aeMCoVWZKMuuRD/Od6I56PXe3rS65kfTVMTiD/Az+fye1ujCFdtYo8W
usfNVHrMvYLrS9qpWMEQxgCgc6sOmgivI5rsN7lD72/xcro9DcZY0eMc6B6h
BnxwXi7PZ24jSKx4ybjl55TMtKigk9jJ4U8yqK04KK5tqzF0OpirxeKHV3XP
DkHqksbzFmkCOoTXfAZ709vwRz/ikhUsbhuB8pQkb/mpx67NizXlabCHn3yE
m5U8Vnwu4XbI6jLU+qSqQIzGrp40GjaDtg4bRKsKSqLodeyV+04KV3+/GndJ
4puPvswgaQgq1dxewZpeDeUcfK2xq8kOlSEC/BAcdLOcWWtwaIVusz13LMYK
Cl4I/uFg5xmBQ/LcdReuFDdZRij8QtZoPIOWqxWlNrUJqOPva7mkkZSlAIRp
qx/jx9oSwb+ueEn6pkc7s/5rMtvastgUjDQaDfZH5mPHGM9obbr0XvcP8LV/
YXTPsPOF1xR3CI8Az5EeX84QxlXMcFT6w+8Hhl8aCTlVAxp/Z+T0n/xBPgZT
N5jp+LnPHfz3s/jYPaM8bR820utrt1gvQunRLeDTI6kyBmvcDqLR4yYQjZpA
dExEIMPvfDvaZRj93wh1GRC3Whns21HjaGenp6fmu/2D4WgEb6EtuyjuOM+A
SR2MXdV6e/UVrczJidieZCIkj05Sqy70m8V+4md9Sfd0X9swPE7TZalvdwuP
81y4jd2sWnicK696B08LPV+ywYPhofXTHZK/64E87aKpD4CEhDKnt5WzZjaW
gutcUthPUF3nK9kYbeYL2Bi910qjICgDiR4d7H4xQQ2HQ0cHMFyFDI4OGsng
OTwY1mEcdvVBh2ZdRK7RweHRXXzO7BB8Rr1d4XNsb7DmKjgm3qpHBYK7j598
+93DOR/NVoeqFr1umtpB+f+Nc0PAOntEYfQsd+9mcodjq1SzTHFPUay12VMU
KOA7pDBzd1y3N7aaY8gOSinbmJnotvfqX/d3Ed4IG4XRHX2J8NbQu87vAlU0
1/mYSME4H4ph0QFHai6FjBPT5/ZeStXsYtMI7+qedl92ObqDXX4VYf/eJJgt
ZvZ5R4bff99Ihq+oiIZPhhWiamGRgByWRdri71R5bwuYDg6bwHTUxJ28pniP
ZEMAo++/b2N8/6VOoGbJazga+cY0HZF0rb9PnzU7zBf1W7ubwR6N1d74u/FX
ZfQP5Jt+P0xs+2cZ6W7YHrOFj7a290Sv3d3MNIjzssz0SKTGQ47u2spM/1WE
7zu4qbXihiYaxgWqWeJ1++uzQlwTIYfGoMGlX8+SIZdzKeUdPcIOit6JWe5O
7uk4xe/EFwgb7+IN/596t1FvyMgJMS0jF9y6k48f7tfP69Cq29sskY3n+cp6
mu7F6v9LYouS7UNx5W4O/Hjs9Ryu8F8KumdnzANYsaa0UsRwmhmsf7SNG4uT
xybZBj3z1Evv+Z7/Tsz34CuZrwdVr1+0uKqp/dZlzA4FEDNgthEq5tv7/bjI
KGp6cw/uebCVez4Z7B+06HwHbfQgeh/mL083A7UcPXJGYiYLe4INdFEb8yn1
8/D7JIZoXFQHrcxOo064KYg/W+MG/kTvNti8eJK72Zz4orZB9bBRoPwKHnch
NHUX3P9zne69T7aBLz0Ze23I7ycXovuHNOps7vfwsYxJjIV3C4aNrMg5sv9+
XAg5A3Ohoy/mQgJDkuQoIQizZKnIlVca0HY+CTd5B3+h5W3nL0eNGHi41V6P
OSJXedyOdeU6TePFvVGOH2/mJDKX4yDe2LX1vbg41cF2mEQ4uqKdcxxVOAc+
vg1cjxvBdfQljAOZBk7XBFA87kf4TSPX+IIzUzD+HU7sC06rlcl86+lIEaZm
gOx1Tj6EbSxGwhVZVEMuoDHGX810GobkkjB/T8Hn8PfSOmk3hXKe0Akx58LG
Qci4hgFwYD6+ez8h5/AuJjQajBpUjq2GbRu5KXiXWET8QlffHCu7UqxFKOof
jPabDdzwfENagy/Ry8hRuayN2ezzO37zErMxRCi1mTt4NDFylAdrfDzdVFpL
bZMyD34vnc90T8Tn98iC9JEsBOjlYPS4kad9PQr8B2LA4y/FgBad7jvPN+vn
W+2c+E27dlt4nP9G6KbSQvu1llzW51hNEbqfJ7a5EM9/jCd2NDwUB8VoeHQv
B8Wd/AeGvFPJarQvw4t15JMzikOnkHXfVa/DIITgbh2oKYygXXwhIFlqD1q+
bd/v6KB5v0cP2q/urVlM+U8EVVaetmapaSu4vusDRwkNTPnwXa2DX5vQ8n0b
dV9q1iSTwwPpm0pdYv15LsajaQnX9SbOHNHGlP/7E/h/FmPO19tWDu+vfaOd
kcvIPUpWW9Tt1b3J3HWlLNYrTNYoMA3x6L5GjkrVry9R8b7qcq9RqQ+WJm7w
HwHsm6+FNpcHf33zpJWYR/tj84s2auJQ7DZTa2o4d0YKHlBNOwqH1Rq8Vvmw
FVu2UKcX7R3E6MocLvWliUY1KryWL9SnCNnSpQFJvo+5KYaa8uNK7LpcnjDV
jWMe6mT+3DXJ4UDwLYlLXvCu35g9VNCG2znBS46wssnMQQcGFyjsayla6Eai
6rkTBaAMRqsEKIPcyIX877G44l6MZnA2y4Sb+pD4iC/ASvc48sI9KUUGC3Ob
Z6p0iQpJHBHfO+cXkTdSf57p+zS7BdShfO2i83HMgXPx7MfuHPN7u5+lHjA2
d8LV1lqO3UZYWqlMbrQwnet27JIkyzhawqXBbQSPsUxSZJ5GE2mBcBlN8iSN
zJsojZYU7Id5zxoJXu9iNm+q0I0yJjvEcEUc/K2V8laUxVxyf7HBCl6AnWCd
ojXVisciPVTDf3RwZEM+dLV+jp2XkMwZxbSxvkMq/tjYfgcwJMFWIV4hGBsz
zhnUfdfEGxsl+83CsIkvFc5PVpSknkhR6WUcS50uTlQfB8Dtm3+KcKeXJUoj
8CmLMTstfw9//zOe3W9RCdP3zZ+ytXmKDUjglZfRdVxcm3+KMQcZx0qTvnkN
J3VMfUWpzNMFPBHNzEV0DbPBx2xifksWpVaAqpwnLJ5aYXNz0PQ92RjdWohr
4bk5YCCepTWQ235L7rRsccRUu7l5DVj8tmEfP9baTn2W7mK2ViZ1ysUBmtpK
4ckWymAT7Fu5WESTTJS7BIO15okt8O+3XGvrtBV2hwrXQg5yt6BGhHJrkaQM
wG7qVdoAOmXqYl8h3EGI0ehUTCykbgWd18LYzynyRqYm4Thtv9aTlqpnUL6E
6zXrGkdRKSmJoS7WE6wzV3LWttzmNU5DKbmAM1i48DJLUb4+Gj72Ws8BpAuO
opPUC1v42zWexamw43haUkYXdfCZSTsfFgWkMnS197hH8JZOm85l2Pk/TfNI
ZELpAAA=

-->

</rfc>
