﻿<?xml version="1.0" encoding="utf-8"?>
<lgr xmlns="urn:ietf:params:xml:ns:lgr-1.0">
  <meta>
    <version comment="Second Level Reference LGR">1</version>
    <date>2024-10-25</date>
    <language>und-Thaa</language>
    <unicode-version>11.0.0</unicode-version>
    <description type="text/html"><![CDATA[<div class="instructions">
<h2>INSTRUCTIONS</h2>
  <ul>
    <li>These instructions cover how to adopt an LGR based on this reference LGR for a given
    zone and how to prepare the file for deposit in the IANA Repository of IDN Practices.</li>
    <li>As described  the IANA procedure (https://www.iana.org/help/idn-repository-procedure) an 
    LGR MUST contain the following elements in its header:
      <ul style="list-style-type:square;">
        <li>Script or Language Designator (see below for guidance) </li>
        <li>Version Number (this must increase with each amendment to the LGR, even if the updates 
            are limited to the header itself) </li>
        <li>Effective Date (the date at which the policy becomes applicable in operational use) </li>
        <li>Registry Contact Details (contact name, email address, and/or phone number)</li>
      </ul>
    </li>
    <li>The following information is optional:
    <ul style="list-style-type:square;">
    <li>Document creation date</li>
    <li>Applicable Domain(s)</li>
    <li>Changes made to the Reference LGR before adopting</li>
    </ul>
    </li>
  </ul>
  <p>Please add or modify the following items in the <b>XML source code for this file</b> before 
  depositing the document in the IANA Repository. (https://www.iana.org/domains/idn-tables)</p>
<h3>Meta Data</h3>
<p>Note: version numbers start at 1. RFC 7940 recommends using simple integers. The version comment is optional, 
   please replace or delete the default comment. Version comments may be used by some tools as part of the page header.</p>
  <p><code>&lt;version comment=&quot;</code>[Please replace (or delete) the optional comment]<code>&quot;&gt;</code>[Please fill in version number, starting at 1]<code>&lt;/version&gt;</code></p>
  <p><code>&lt;date&gt;</code>[Please fill in with publication date, in YYYY-MM-DD format]<code>&lt;/date&gt;</code></p>
  <p><code>&lt;validity-start&gt;</code>[Please fill in effective date, in YYYY-MM-DD format]<code>&lt;/validity-start&gt;</code></p>
  <p>Note: the scope element may be repeated, so that the same document can serve for multiple domains.</p>
  <p><code>&lt;scope type=&quot;domain&quot;&gt;</code>[Please provide, in &quot;.domain&quot; format]<code>&lt;/scope&gt;</code></p>
<p><strong>Registry Contact Information:</strong></p>
  <p>Please fill in the <a href="#registry_contact_details">Registry Contact Details</a>.</p>
<p><strong>Change History</strong></p>
  <p>If you made technical modifications to the LGR, please summarize them in the <a href="#change_history">Change History</a> (and also note the details in the appropriate section of the description).</p>
<p>PLEASE DELETE THESE INSTRUCTIONS BEFORE DEPOSITING THE DOCUMENT</p></div>
<section id="registry_contact_details">
<h2>Registry Contact Details</h2>
<ul style="list-style:none;">
<li><b>Contact Name:</b> [Please fill in Contact Name]</li>
<li><b>Email address:</b> [Please fill in Email address]</li>
<li><b>Phone Number:</b> [Please fill in optional Phone Number]</li>
</ul>
</section>
<section id="sec_description">
  <h1 id="reference_label_generation_rules_for_the_thaana_script">Reference Label Generation Rules for the Thaana Script</h1>
  <section id="sec_desc_overview">
    <h2 id="desc_overview">Overview</h2>
    <p>This document specifies a set of Label Generation Rules (LGR) for the Thaana script
    using a script-specific repertoire for the second level domain or domains identified above.
    The format of this file follows [RFC 7940].
    This LGR is adapted from the “Reference LGR for the Second Level for the Thaana Script” [Ref-LGR-und-Thaa], for details, see <a href="#change_history">Change History</a> below.</p>
    <p><b>Standalone LGR:</b> This LGR is designed to be used in a zone that does not cater to IDNs 
    other than those valid under this LGR. 
    This LGR lacks features that would allow its use in the context
    of another LGR in the same zone, and it may contain other features incompatible with such use.</p>
    <p>For details and additional background on the Thaana script, see "Thaana Script Reference Label Generation Rules for Second-Level Domain Names" [Proposal-Thaana].</p>
    <p></p>
  </section>
  <section id="sec_desc_repertoire">
    <h2 id="desc_repertoire">Repertoire</h2>
    <p>The repertoire includes the 49 letters and diacritics of the Thaana script in everyday use as defined in Section 5.1 “Included Code Points” in [Proposal-Thaana].</p>
    <p>U+07B1 THAANA LETTER NAA  (baru nūnu)  is a dialect specific consonant. Given the resurgence of the use of the consonant in online writing and social media, a decision was made to include it in the repertoire at this time, despite it not being officially recognized as part of the base consonants.</p>
    <p>For the second level, the repertoire has been augmented with the ASCII digits, U+0030 to U+0039, plus U+002D HYPHEN-MINUS, for a total of 61 repertoire elements.</p>
    <p><b>Repertoire Listing:</b> Each code point or range is tagged with the script or scripts with which the code point is used and one or more other character categories. For each repertoire element,
      one or more references document sufficient justification for inclusion in the repertoire; see the <a href="#ref_desc_sec_References">“References”</a> below.</p>
    
    <section id="sec_desc_variants">
      <h2 id="desc_variants">Variants</h2>
      <p>This LGR defines a number of in-script variants as described in Section 6.1  “In-script Variants”of [Proposal-Thaana]. No cross-script variants have been identified based on any discernable similarity with another script or otherwise required for the security of the Thaana LGR. However, if used in the context of an LGR for any other zone, variants may be required for the digits.</p>
      <p><b>Variant Disposition:</b> All variants are of type “blocked”, making labels that 
    differ only by these variants mutually exclusive: whichever label containing either of 
    these variants is chosen earlier would be delegated, while any other equivalent labels should be blocked.
    There is no preference among these labels.</p>

    <p>This LGR does not define allocatable variants.</p>

    <p>The specification of variants in this LGR follows the guidelines in [RFC 8228].</p>
    </section>
    <section id="sec_desc_character_classes">
      <h2 id="desc_character_classes">Character Classes</h2>
      <p>Thaana has 25 consonants and 11 vowels. The first nine letters of Thaana are derived from the Arabic/Persian numerals (see below). The vowels are written above/below the letters.</p>
      <ul>
        <li>
          <b>Common-digits</b> — ASCII digits: U+0030 to U+0039.</li>
        <li>
          <b>Consonants</b> — in the Thaana script, consonants are base characters and all but one must be followed by a vowel. Additional restrictions apply to the two consonants Noonu and Raa.</li>
        <li>
          <b>Consonants for Arabic</b> — additions in the script for transcribing Arabic and other loan words. For the purposes of this LGR, there is no distinction between these and other consonants.</li>
        <li>
          <b>Vowels</b> — vowels are combining marks that always follow a consonant.</li>
      </ul>
    </section>
    <section id="sec_desc_whole_label_evaluation_(wle)_and_context_rules">
      <h2 id="desc_whole_label_evaluation_wle_and_context_rules">Whole Label Evaluation (WLE) and Context Rules</h2>
      <section id="sec_desc_common_rules">
        <h3 id="desc_common_rules">Common Rules</h3>
        <p></p>
        <p>By default, the LGR includes the rules and actions to implement the following restrictions mandated by the IDNA protocol. They are marked with &#x235F;.</p>
       <ul>
       <li><b>Hyphen Restrictions</b> &mdash; restrictions on the allowable placement of hyphens (no leading/ending hyphen
             and no hyphen in positions 3 and 4). These restrictions are described in Section 4.2.3.1 of RFC 5891 [150]. 
             They are implemented here as context rule on U+002D (-) HYPHEN-MINUS.</li>
          <li><b>Leading Combining Marks</b>   &mdash;  restrictions on the allowable placement of combining marks
             (no leading combining mark). This rule is described in Section 4.2.3.2 of RFC 5891 [150].</li>
       </ul>
        <p>Script-specific rules in this LGR already prevent combining marks in leading position making the "leading-combining-mark" rule technically redundant. It is retained here for consistency.</p>
      </section>
      <section id="sec_desc_right-to-left_rules">
        <h3 id="desc_right-to-left_rules">Right-to-Left Rules</h3>
        <p></p>
        <ul>
        <li><b>leading-digit</b> &mdash;  restrictions on the allowable placement of digits in a right-to-left context (no leading digit), (see section 2.1 of RFC 5893 [160]); 
            implemented here as a context rule on each digit.</li>
    </ul>
      </section>
      <section id="sec_desc_default_actions">
        <h3 id="desc_default_actions">Default Actions</h3>
        <p>This LGR includes the complete set default actions for LGRs as well as the action needed to invalidate labels with misplaced combining marks. They are marked with &#x235F;.
        For a description see [RFC 7940] and [150].
        An additional action is triggered by mixed digit labels.
    </p>
      </section>
      <section id="sec_desc_script-specific_rules">
        <h3 id="desc_script-specific_rules">Script-specific Rules</h3>
        <p>The LGR defines the following script-specific rules concerning the placement of vowels and preventing some combinations from starting a word.</p>
        <ul>
          <li>
            <b>follows-C-or-N</b> — WLE 1: a vowel always follows a consonant or including Noonu and Raa.</li>
          <li>
            <b>followed-by-V</b> — WLE 2: a consonant, except Noonu or Raa is always followed by a vowel.</li>
          <li>
            <b>start-of-word-followed-by-C</b> — WLE 3: N followed by C cannot start a word, that is, it cannot be the start of a label, or follow a hyphen or digit.</li>
          <li>
            <b>followed-by-NC-or-NN=</b> — WLE 4: N cannot be follwoed by NC or NN.</li>
        </ul>
      </section>
      <section id="sec_desc_methodology">
        <h2 id="desc_methodology">Methodology</h2>
        <p>This Second Level Reference LGR for the Thaana Script was developed by the Thaana community and edited by Asmus Freytag and Michel Suignard, based on community feedback and public review.</p>
      </section>
      <section id="sec_desc_change_history">
        <h3>Changes from Version Dated 25 October 2024</h3>
        <p>Adopted from the Second Level Reference LGR for the Thaana Script [Ref-LGR-und-Thaa] without normative changes.</p>
      </section>
      <section id="sec_desc_references">
        <h2 id="desc_references">References</h2>
        <p>This document cites the following general references.</p>
        <dl class="references">
          <dt>[Guidelines]</dt>
          <dd>ICANN, “Guidelines for Developing Reference LGRs for the Second Level”, (Los Angeles, California: ICANN, 27 May 2020), https://www.icann.org/en/system/files/files/lgr-guidelines-second-level-27may20-en.pdf</dd>
          <dt>[Level-2-Overview]</dt>
          <dd>Internet Corporation for Assigned Names and Numbers, (ICANN),“Reference Label Generation Rules (LGR) for the Second Level: Overview and Summary” (PDF), 
     (Los Angeles, California: ICANN, 25 October 2024), https://www.icann.org/en/system/files/files/level2-lgr-overview-summary-25oct24-en.pdf
      </dd>
          <dt>[Proposal-Thaana]</dt>
          <dd>"Thaana Script Reference Label Generation Rules for Second-Level Domain Names", 12 September 2024, https://www.icann.org/en/system/files/files/proposal-thaana-second-level-12Sep24-en.pdf</dd>
          <dt>[Ref-LGR-und-Thaa]</dt>
          <dd>ICANN, Second Level Reference Label Generation Rules for the Thaana Script (und-Thaa), 25 October 2024 (XML)
      https://www.icann.org/sites/default/files/packages/lgr/lgr-second-level-thaana-script-25oct24-en.xml
      non-normative HTML presentation: https://www.icann.org/sites/default/files/packages/lgr/lgr-second-level-thaana-script-25oct24-en.html</dd>
          <dt>[RFC 7940]</dt>
          <dd>Davies, K. and A. Freytag, “Representing Label Generation Rulesets Using XML”, 
     RFC 7940, August 2016, https://www.rfc-editor.org/info/rfc7940</dd>
          <dt>[RFC 8228]</dt>
          <dd>A. Freytag, “Guidance on Designing Label Generation Rulesets (LGRs) Supporting Variant Labels”, RFC 8228, August 2017,
    https://www.rfc-editor.org/info/rfc8228</dd>
          <dt>[UNICODE 11.0.0]</dt>
          <dd>The Unicode Consortium. The Unicode Standard, Version 11.0.0, (Mountain View, CA: The Unicode Consortium, 2018. ISBN 978-1-936213-19-1) 
     https://www.unicode.org/versions/Unicode11.0.0/</dd>
        </dl>
        <p>References [0] to [3] refer to the Unicode Standard versions in which the corresponding code points were initially encoded. References [401] and above correspond to sources given in [Proposal-Thaana] justifying the inclusion of the corresponding cod5 points. Entries in the table may have
        multiple source reference values. 
        In the listing of <a href="#whole_label_evaluation_and_context_rules">whole label evaluation and context rules</a>,
        references [150] and [160] indicate the source for common rules.</p>
      </section>
    </section>
  </section>
</section>]]></description>
    <references>
      <reference id="0" comment="Code points cited were originally encoded in Unicode Version 1.1">The Unicode Standard, Version 1.1</reference>
      <reference id="3" comment="Code points cited were originally encoded in Unicode Version 3.0">The Unicode Standard, Version 3.0</reference>
      <reference id="5" comment="Code points cited were originally encoded in Unicode Version 3.2">The Unicode Standard, Version 3.2</reference>
      <reference id="150">RFC 5891, Internationalized Domain Names in Applications(IDNA): Protocol https://tools.ietf.org/html/rfc5891</reference>
      <reference id="160">RFC 5893, Right - to - Left Scripts for Internationalized Domain Names for Applications (IDNA) https://tools.ietf.org/html/rfc5893</reference>
      <reference id="401">Dhivehi Writing Systems by Naseema Mohamed, page 7-8, NCLHR, 1999.</reference>
    </references>
  </meta>
  <data>
    <char cp="002D" not-when="hyphen-minus-disallowed" tag="sc:Zyyy" ref="0" />
    <char cp="0030" not-when="leading-digit" tag="Common-digit sc:Zyyy" ref="0" />
    <char cp="0031" not-when="leading-digit" tag="Common-digit sc:Zyyy" ref="0" />
    <char cp="0032" not-when="leading-digit" tag="Common-digit sc:Zyyy" ref="0" />
    <char cp="0033" not-when="leading-digit" tag="Common-digit sc:Zyyy" ref="0" />
    <char cp="0034" not-when="leading-digit" tag="Common-digit sc:Zyyy" ref="0" />
    <char cp="0035" not-when="leading-digit" tag="Common-digit sc:Zyyy" ref="0" />
    <char cp="0036" not-when="leading-digit" tag="Common-digit sc:Zyyy" ref="0" />
    <char cp="0037" not-when="leading-digit" tag="Common-digit sc:Zyyy" ref="0" />
    <char cp="0038" not-when="leading-digit" tag="Common-digit sc:Zyyy" ref="0" />
    <char cp="0039" not-when="leading-digit" tag="Common-digit sc:Zyyy" ref="0" />
    <char cp="0780" when="followed-by-V" tag="consonant sc:Thaa" ref="3 401">
      <var cp="0799" type="blocked" />
      <var cp="079A" type="blocked" />
    </char>
    <char cp="0781" when="followed-by-V" tag="consonant sc:Thaa" ref="3 401">
      <var cp="079D" type="blocked" />
    </char>
    <char cp="0782" not-when="disallowed-for-N" tag="consonant sc:Thaa" ref="3 401">
      <var cp="07B1" type="blocked" />
    </char>
    <char cp="0783" not-when="disallowed-for-N" tag="consonant sc:Thaa" ref="3 401">
      <var cp="079C" type="blocked" />
    </char>
    <char cp="0784" when="followed-by-V" tag="consonant sc:Thaa" ref="3 401" />
    <char cp="0785" when="followed-by-V" tag="consonant sc:Thaa" ref="3 401" />
    <char cp="0786" when="followed-by-V" tag="consonant sc:Thaa" ref="3 401" />
    <char cp="0787" when="followed-by-V" tag="consonant sc:Thaa" ref="3 401">
      <var cp="07A2" type="blocked" />
      <var cp="07A3" type="blocked" />
    </char>
    <char cp="0788" when="followed-by-V" tag="consonant sc:Thaa" ref="3 401">
      <var cp="07A5" type="blocked" />
    </char>
    <char cp="0789" when="followed-by-V" tag="consonant sc:Thaa" ref="3 401" />
    <char cp="078A" when="followed-by-V" tag="consonant sc:Thaa" ref="3 401" />
    <char cp="078B" when="followed-by-V" tag="consonant sc:Thaa" ref="3 401">
      <var cp="079B" type="blocked" />
    </char>
    <char cp="078C" when="followed-by-V" tag="consonant sc:Thaa" ref="3 401">
      <var cp="0798" type="blocked" />
      <var cp="07A0" type="blocked" />
      <var cp="07A1" type="blocked" />
    </char>
    <char cp="078D" when="followed-by-V" tag="consonant sc:Thaa" ref="3 401" />
    <char cp="078E" when="followed-by-V" tag="consonant sc:Thaa" ref="3 401">
      <var cp="07A4" type="blocked" />
    </char>
    <char cp="078F" when="followed-by-V" tag="consonant sc:Thaa" ref="3 401" />
    <char cp="0790" when="followed-by-V" tag="consonant sc:Thaa" ref="3 401">
      <var cp="079E" type="blocked" />
      <var cp="079F" type="blocked" />
    </char>
    <char cp="0791" when="followed-by-V" tag="consonant sc:Thaa" ref="3 401" />
    <char cp="0792" when="followed-by-V" tag="consonant sc:Thaa" ref="3 401" />
    <char cp="0793" when="followed-by-V" tag="consonant sc:Thaa" ref="3 401" />
    <char cp="0794" when="followed-by-V" tag="consonant sc:Thaa" ref="3 401" />
    <char cp="0795" when="followed-by-V" tag="consonant sc:Thaa" ref="3 401" />
    <char cp="0796" when="followed-by-V" tag="consonant sc:Thaa" ref="3 401" />
    <char cp="0797" when="followed-by-V" tag="consonant sc:Thaa" ref="3 401" />
    <char cp="0798" when="followed-by-V" tag="consonant sc:Thaa thaana-arabic" ref="3 401">
      <var cp="078C" type="blocked" />
      <var cp="07A0" type="blocked" />
      <var cp="07A1" type="blocked" />
    </char>
    <char cp="0799" when="followed-by-V" tag="consonant sc:Thaa thaana-arabic" ref="3 401">
      <var cp="0780" type="blocked" />
      <var cp="079A" type="blocked" />
    </char>
    <char cp="079A" when="followed-by-V" tag="consonant sc:Thaa thaana-arabic" ref="3 401">
      <var cp="0780" type="blocked" />
      <var cp="0799" type="blocked" />
    </char>
    <char cp="079B" when="followed-by-V" tag="consonant sc:Thaa thaana-arabic" ref="3 401">
      <var cp="078B" type="blocked" />
    </char>
    <char cp="079C" when="followed-by-V" tag="consonant sc:Thaa thaana-arabic" ref="3 401">
      <var cp="0783" type="blocked" />
    </char>
    <char cp="079D" when="followed-by-V" tag="consonant sc:Thaa thaana-arabic" ref="3 401">
      <var cp="0781" type="blocked" />
    </char>
    <char cp="079E" when="followed-by-V" tag="consonant sc:Thaa thaana-arabic" ref="3 401">
      <var cp="0790" type="blocked" />
      <var cp="079F" type="blocked" />
    </char>
    <char cp="079F" when="followed-by-V" tag="consonant sc:Thaa thaana-arabic" ref="3 401">
      <var cp="0790" type="blocked" />
      <var cp="079E" type="blocked" />
    </char>
    <char cp="07A0" when="followed-by-V" tag="consonant sc:Thaa thaana-arabic" ref="3 401">
      <var cp="078C" type="blocked" />
      <var cp="0798" type="blocked" />
      <var cp="07A1" type="blocked" />
    </char>
    <char cp="07A1" when="followed-by-V" tag="consonant sc:Thaa thaana-arabic" ref="3 401">
      <var cp="078C" type="blocked" />
      <var cp="0798" type="blocked" />
      <var cp="07A0" type="blocked" />
    </char>
    <char cp="07A2" when="followed-by-V" tag="consonant sc:Thaa thaana-arabic" ref="3 401">
      <var cp="0787" type="blocked" />
      <var cp="07A3" type="blocked" />
    </char>
    <char cp="07A3" when="followed-by-V" tag="consonant sc:Thaa thaana-arabic" ref="3 401">
      <var cp="0787" type="blocked" />
      <var cp="07A2" type="blocked" />
    </char>
    <char cp="07A4" when="followed-by-V" tag="consonant sc:Thaa thaana-arabic" ref="3 401">
      <var cp="078E" type="blocked" />
    </char>
    <char cp="07A5" when="followed-by-V" tag="consonant sc:Thaa thaana-arabic" ref="3 401">
      <var cp="0788" type="blocked" />
    </char>
    <char cp="07A6" when="follows-C-or-N" tag="sc:Thaa vowel" ref="3 401" />
    <char cp="07A7" when="follows-C-or-N" tag="sc:Thaa vowel" ref="3 401" />
    <char cp="07A8" when="follows-C-or-N" tag="sc:Thaa vowel" ref="3 401" />
    <char cp="07A9" when="follows-C-or-N" tag="sc:Thaa vowel" ref="3 401" />
    <char cp="07AA" when="follows-C-or-N" tag="sc:Thaa vowel" ref="3 401" />
    <char cp="07AB" when="follows-C-or-N" tag="sc:Thaa vowel" ref="3 401" />
    <char cp="07AC" when="follows-C-or-N" tag="sc:Thaa vowel" ref="3 401" />
    <char cp="07AD" when="follows-C-or-N" tag="sc:Thaa vowel" ref="3 401" />
    <char cp="07AE" when="follows-C-or-N" tag="sc:Thaa vowel" ref="3 401" />
    <char cp="07AF" when="follows-C-or-N" tag="sc:Thaa vowel" ref="3 401" />
    <char cp="07B0" when="follows-C-or-N" tag="sc:Thaa vowel" ref="3 401" />
    <char cp="07B1" when="followed-by-V" tag="consonant sc:Thaa" ref="5 401">
      <var cp="0782" type="blocked" />
    </char>
  </data>
  <!--Rules section goes here-->
  <rules>
    <!--Character class definitions go here-->
    <class name="Common-digits" from-tag="Common-digit" comment="Digits from the ASCII range &#x235F;" />
    <class name="N" comment="Thaana NoonNu and Thana Raa">0782-0783</class>
    <difference name="C" comment="Any Thaana consonant other than NoonNu or Raa">
      <class from-tag="consonant" />
      <class by-ref="N" />
    </difference>
    <class name="V" from-tag="vowel" comment="Any Thaana vowel" />
    <!--Whole label evaluation and context rules go here-->
    <rule name="hyphen-minus-disallowed" comment="RFC 5891 restrictions on placement of U+002D HYPHEN-MINUS &#x235F;">
      <choice>
        <rule>
          <look-behind>
            <start />
          </look-behind>
          <anchor />
        </rule>
        <rule>
          <anchor />
          <look-ahead>
            <end />
          </look-ahead>
        </rule>
        <rule>
          <look-behind>
            <start />
            <any />
            <any />
            <char cp="002D" />
          </look-behind>
          <anchor />
        </rule>
      </choice>
    </rule>
    <rule name="leading-combining-mark" ref="150" comment="RFC 5891 restrictions on placement of combining marks &#x235F;">
      <start />
      <class property="gc:Mn" />
      <class property="gc:Mc" />
    </rule>
    <rule name="leading-digit" ref="160" comment="RFC 5893 RTL labels cannot start with a digit &#x235F;">
      <look-behind>
        <start />
      </look-behind>
      <anchor />
    </rule>
    <rule name="start-of-word" comment="A context describing the start of a word, used in the formuation of WLE 3">
      <choice>
        <start />
        <char cp="002D" />
        <class by-ref="Common-digits" />
      </choice>
    </rule>
    <rule name="start-of-word-followed-by-C" comment="WLE 3: N followed by C cannot start a word, that is, it cannot be the start of a label, or follow a hyphen or digit.">
      <look-behind>
        <rule by-ref="start-of-word" />
      </look-behind>
      <anchor />
      <look-ahead>
        <class by-ref="C" />
      </look-ahead>
    </rule>
    <rule name="followed-by-NC-or-NN" comment="WLE 4: N cannot be followed by NC or NN">
      <anchor />
      <look-ahead>
        <class by-ref="N" />
        <choice>
          <class by-ref="C" />
          <class by-ref="N" />
        </choice>
      </look-ahead>
    </rule>
    <rule name="disallowed-for-N" comment="Prohibited context for N, combines WLE 3 and WLE 4">
      <choice>
        <rule by-ref="start-of-word-followed-by-C" />
        <rule by-ref="followed-by-NC-or-NN" />
      </choice>
    </rule>
    <rule name="follows-C-or-N" comment="WLE1: a vowel always follows a consonant or Noonnu or Raa.">
      <look-behind>
        <choice>
          <class by-ref="C" />
          <class by-ref="N" />
        </choice>
      </look-behind>
      <anchor />
    </rule>
    <rule name="followed-by-V" comment="WLE2: a consonant is always follwed by a vowel.">
      <anchor />
      <look-ahead>
        <class by-ref="V" />
      </look-ahead>
    </rule>
    <!--Action elements go here - order defines precedence-->
    <action disp="invalid" match="leading-combining-mark" comment="RFC 5891 restrictions on placement of combining marks &#x235F;" />
    <action disp="blocked" any-variant="blocked" comment="any variant label containing blocked variants is blocked &#x235F;" />
    <action disp="valid" comment="catch all; default action &#x235F;" />
  </rules>
</lgr>