<?xml version='1.0' encoding='utf-8'?>
<lgr xmlns="urn:ietf:params:xml:ns:lgr-1.0">
  <meta>
    <version comment="IDN Reference table for Arabic language">3.0</version>
    <date>2016-01-05</date>
    <unicode-version>6.3.0</unicode-version>
    <language>ar</language>
    <description type="text/plain">
	<![CDATA[
	
	#Table format and IDNA 2008
	Language table is in RFC 7940 format
	Language is IDNA 2008 valid
	
	#Base Context Rule
	Base context rule disallows use of hyphen (U+002D) at the beginning, end or
	consecutively at the 3rd and 4th position in a label

	#Contact Info
	Registry Name: Dubai Smart Government Department
	Contact Name: gTLD Support
	Contact Email: gtldsupport@aeda.ae
	
	]]>
	</description>
  </meta>
  <data>
    <char cp="002D" not-when="hyphen-rules" />
    <char cp="0030" not-when="no-digit-at-start">
      <var cp="0660" type="allocatable" />
    </char>
    <char cp="0031" not-when="no-digit-at-start">
      <var cp="0661" type="allocatable" />
    </char>
    <char cp="0032" not-when="no-digit-at-start">
      <var cp="0662" type="allocatable" />
    </char>
    <char cp="0033" not-when="no-digit-at-start">
      <var cp="0663" type="allocatable" />
    </char>
    <char cp="0034" not-when="no-digit-at-start">
      <var cp="0664" type="allocatable" />
    </char>
    <char cp="0035" not-when="no-digit-at-start">
      <var cp="0665" type="allocatable" />
    </char>
    <char cp="0036" not-when="no-digit-at-start">
      <var cp="0666" type="allocatable" />
    </char>
    <char cp="0037" not-when="no-digit-at-start">
      <var cp="0667" type="allocatable" />
    </char>
    <char cp="0038" not-when="no-digit-at-start">
      <var cp="0668" type="allocatable" />
    </char>
    <char cp="0039" not-when="no-digit-at-start">
      <var cp="0669" type="allocatable" />
    </char>
    <char cp="0621"/>
    <char cp="0622" >
      <var cp="0623" type="allocatable" />
      <var cp="0625" type="allocatable" />
      <var cp="0627" type="allocatable" />
    </char>
    <char cp="0623" >
      <var cp="0622" type="allocatable" />
      <var cp="0625" type="allocatable" />
      <var cp="0627" type="allocatable" />
    </char>
    <char cp="0624" />
    <char cp="0625" >
      <var cp="0622" type="allocatable" />
      <var cp="0623" type="allocatable" />
      <var cp="0627" type="allocatable" />
    </char>
    <char cp="0626"/>
    <char cp="0627" >
      <var cp="0622" type="allocatable" />
      <var cp="0623" type="allocatable" />
      <var cp="0625" type="allocatable" />
    </char>
    <char cp="0628"/>
    <char cp="0629" >
      <var cp="0647" type="allocatable" />
    </char>
    <char cp="062A"/>
    <char cp="062B"/>
    <char cp="062C"/>
    <char cp="062D"/>
    <char cp="062E"/>
    <char cp="062F"/>
    <char cp="0630"/>
    <char cp="0631"/>
    <char cp="0632"/>
    <char cp="0633"/>
    <char cp="0634"/>
    <char cp="0635"/>
    <char cp="0636"/>
    <char cp="0637"/>
    <char cp="0638"/>
    <char cp="0639"/>
    <char cp="063A"/>
    <char cp="0641"/>
    <char cp="0642"/>
    <char cp="0643"/>
    <char cp="0644"/>
    <char cp="0645"/>
    <char cp="0646"/>
    <char cp="0647" >
      <var cp="0629" type="allocatable" />
    </char>
    <char cp="0648" />
    <char cp="0649" >
      <var cp="064A" type="allocatable" />
    </char>
    <char cp="064A" >
      <var cp="0649" type="allocatable" />
    </char>
    <char cp="0660" not-when="no-digit-at-start">
      <var cp="0030" type="allocatable" />
    </char>
    <char cp="0661" not-when="no-digit-at-start">
      <var cp="0031" type="allocatable" />
    </char>
    <char cp="0662" not-when="no-digit-at-start">
      <var cp="0032" type="allocatable" />
    </char>
    <char cp="0663" not-when="no-digit-at-start">
      <var cp="0033" type="allocatable" />
    </char>
    <char cp="0664" not-when="no-digit-at-start">
      <var cp="0034" type="allocatable" />
    </char>
    <char cp="0665" not-when="no-digit-at-start">
      <var cp="0035" type="allocatable" />
    </char>
    <char cp="0666" not-when="no-digit-at-start">
      <var cp="0036" type="allocatable" />
    </char>
    <char cp="0667" not-when="no-digit-at-start">
      <var cp="0037" type="allocatable" />
    </char>
    <char cp="0668" not-when="no-digit-at-start">
      <var cp="0038" type="allocatable" />
    </char>
    <char cp="0669" not-when="no-digit-at-start">
      <var cp="0039" type="allocatable" />
    </char>
  </data>
  <rules>
    <class name="arabic-digits">0030-0039</class>
    <class name="arabic-indic-digits">0660-0669</class>
    <rule name="hyphen-rules" comment="RFC5891 restrictions on placement of U+002D">
      <choice>
        <rule comment="no leading hyphen">
          <look-behind>
            <start/>
          </look-behind>
          <anchor/>
        </rule>
        <rule comment="no trailing hyphen">
          <anchor/>
          <look-ahead>
            <end/>
          </look-ahead>
        </rule>
        <rule comment="no consecutive hyphens in third and fourth">
          <look-behind>
            <start/>
            <any/>
            <any/>
            <char cp="002D" comment="hyphen-minus"/>
          </look-behind>
          <anchor/>
        </rule>
      </choice>
    </rule>
    <rule name="no-digit-at-start" comment="digits at the beginning is disallowed">
      <start/>
      <choice count="1+">
	     <class by-ref="arabic-digits"/>
	     <class by-ref="arabic-indic-digits"/>
      </choice>
    </rule>
    <rule name="no-digit-mixing">
      <choice>
        <rule>
          <class by-ref="arabic-digits"/>
          <any count="0+"/>
          <class by-ref="arabic-indic-digits"/>
        </rule>
        <rule>
          <class by-ref="arabic-indic-digits"/>
          <any count="0+"/>
          <class by-ref="arabic-digits"/>
        </rule>
      </choice>
    </rule>
    <action disp="invalid" match="no-digit-at-start" />	
    <action disp="invalid" match="no-digit-mixing" />
    <action disp="allocatable" all-variants="allocatable" />
    <action disp="valid" comment="catch all"/>
  </rules>
</lgr>
