Index: pango/pango-utils.c
===================================================================
RCS file: /cvs/gnome/pango/pango/pango-utils.c,v
retrieving revision 1.39
diff -u -r1.39 pango-utils.c
--- pango/pango-utils.c	7 Dec 2002 00:00:53 -0000	1.39
+++ pango/pango-utils.c	14 Jul 2003 22:43:46 -0000
@@ -1254,15 +1254,14 @@
   return result;
 }
 
+#endif /* HAVE_FRIBIDI */
 
 gboolean 
 pango_get_mirror_char (gunichar        ch,
 		       gunichar       *mirrored_ch)
 {
-  return fribidi_get_mirror_char (ch, mirrored_ch); 
+  return g_unichar_get_mirror_char (ch, mirrored_ch); 
 }
-
-#endif /* HAVE_FRIBIDI */
 
 
 static guint
Index: pango/mini-fribidi/Makefile.am
===================================================================
RCS file: /cvs/gnome/pango/pango/mini-fribidi/Makefile.am,v
retrieving revision 1.8
diff -u -r1.8 Makefile.am
--- pango/mini-fribidi/Makefile.am	17 Feb 2003 22:04:28 -0000	1.8
+++ pango/mini-fribidi/Makefile.am	14 Jul 2003 22:43:46 -0000
@@ -18,11 +18,13 @@
 noinst_LTLIBRARIES = libmini-fribidi.la
 
 libmini_fribidi_la_SOURCES =    \
-	fribidi_types.h		\
-	fribidi_get_type.c	\
-	fribidi.c
+	fribidi.c		\
+	fribidi_char_type.c 	\
+	fribidi_types.c 	\
+	fribidi_types.h
 
 EXTRA_DIST = 			\
-	README			\
-	fribidi_tables.i	\
-	fribidi.patch
+	README	                \
+	fribidi_tab_char_type_2.i \
+        fribidi_types.i
+
Index: pango/mini-fribidi/README
===================================================================
RCS file: /cvs/gnome/pango/pango/mini-fribidi/README,v
retrieving revision 1.4
diff -u -r1.4 README
--- pango/mini-fribidi/README	26 Nov 2001 03:39:43 -0000	1.4
+++ pango/mini-fribidi/README	14 Jul 2003 22:43:46 -0000
@@ -1,6 +1,6 @@
 This directory holds a stripped down version of Dov Grobgeld's FriBidi
 library. The fribidi version that fribidi.patch is against was
-obtained with "cvs up -D '4/16/2001'" from the fribidi cvs repository.
+obtained with "cvs up -D '2003-07-14'" from the fribidi cvs repository.
 
 Like Pango, FriBidi is licensed under the terms of the GNU Lesser
 General Public License - see the file COPYING in the toplevel
@@ -8,6 +8,8 @@
 
 12 November 2000, 18 October 2001
 Owen Taylor
+14 July 2003
+Noah Levitt
 
 
 From the README of Fribidi:
@@ -40,23 +42,3 @@
 
    http://fribidi.sourceforge.net
 
-Notes
-=====
-
-- shell fragment to generate fribidi.patch:
-
- echo -n "" > fribidi.patch
- for i in fribidi.c fribidi_get_type.c fribidi_tables.i fribidi_types.h ; do
-   diff -u ~/cvs/fribidi/$i $i >> fribidi.patch
- done
-
-- Shell fragment to update from fribidi
-
- for i in fribidi.c fribidi_get_type.c fribidi_tables.i fribidi_types.h ; do
-   cp ~/cvs/fribidi/$i .
- done
- patch < fribidi.patch
- 
- (And fix rejects)
-
-- Current fribidi.patch is against fribidi CVS with -D "15 Apr 2001"
Index: pango/mini-fribidi/fribidi.c
===================================================================
RCS file: /cvs/gnome/pango/pango/mini-fribidi/fribidi.c,v
retrieving revision 1.9
diff -u -r1.9 fribidi.c
--- pango/mini-fribidi/fribidi.c	27 May 2003 23:24:28 -0000	1.9
+++ pango/mini-fribidi/fribidi.c	14 Jul 2003 22:43:48 -0000
@@ -1,6 +1,6 @@
 /* FriBidi - Library of BiDi algorithm
  * Copyright (C) 1999,2000 Dov Grobgeld, and
- * Copyright (C) 2001 Behdad Esfahbod.
+ * Copyright (C) 2001,2002 Behdad Esfahbod.
  * 
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public  
@@ -13,7 +13,7 @@
  * Lesser General Public License for more details.
  * 
  * You should have received a copy of the GNU Lesser General Public License  
- * along with this library, in a file named COPYING.LIB; if not, write to the
+ * along with this library, in a file named COPYING; if not, write to the
  * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  * Boston, MA 02111-1307, USA
  * 
@@ -26,29 +26,23 @@
 #include "fribidi_types.h"
 
 #ifdef DEBUG
-#include <stdio.h>
-#endif
-
-#ifndef FRIBIDI_CHUNK_SIZE
-#define FRIBIDI_CHUNK_SIZE 128
+static gboolean fribidi_debug = FALSE;
 #endif
 
 #ifdef DEBUG
-#define DBG(s) if (fribidi_debug) { fprintf(stderr, s); }
-#define DBG2(s, t) if (fribidi_debug) { fprintf(stderr, s, t); }
+#define DBG(s) do { if (fribidi_debug) { fprintf(stderr, s); } } while (0)
+#define DBG2(s, t) do { if (fribidi_debug) { fprintf(stderr, s, t); } } while (0)
 #else
 #define DBG(s)
 #define DBG2(s, t)
 #endif
 
 #ifdef DEBUG
-/* for easier test with the reference code only */
-#define MAX_LEVEL 15
-#else
-/* default value */
-#define MAX_LEVEL 61
+char fribidi_char_from_type (FriBidiCharType c);
 #endif
 
+#define UNI_MAX_BIDI_LEVEL 61
+
 /*======================================================================
  * Typedef for the run-length list.
  *----------------------------------------------------------------------*/
@@ -60,9 +54,8 @@
   TypeLink *next;
 
   FriBidiCharType type;
-  gint pos;
-  gint len;
-  gint level;
+  FriBidiStrIndex pos, len;
+  FriBidiLevel level;
 };
 
 #define FRIBIDI_LEVEL_START   -1
@@ -71,43 +64,17 @@
 
 typedef struct
 {
-  FriBidiCharType override;	/* only L, R and N are valid */
-  gint level;
+  FriBidiCharType override;     /* only L, R and N are valid */
+  FriBidiLevel level;
 }
 LevelInfo;
 
-#ifdef DEBUG
-static gboolean fribidi_debug = FALSE;
-#endif
-
-#ifndef USE_SIMPLE_MALLOC
-static TypeLink *free_type_links = NULL;
-#endif
-
 static TypeLink *
-new_type_link (void)
+new_type_link ()
 {
   TypeLink *link;
 
-#ifdef USE_SIMPLE_MALLOC
-  link = g_malloc (sizeof (TypeLink));
-#else /* !USE_SIMPLE_MALLOC */
-  if (free_type_links)
-    {
-      link = free_type_links;
-      free_type_links = free_type_links->next;
-    }
-  else
-    {
-      static GMemChunk *mem_chunk = NULL;
-
-      if (!mem_chunk)
-	mem_chunk =
-	  g_mem_chunk_create (TypeLink, FRIBIDI_CHUNK_SIZE, G_ALLOC_ONLY);
-
-      link = g_chunk_new (TypeLink, mem_chunk);
-    }
-#endif /* !USE_SIMPLE_MALLOC */
+  link = (TypeLink *) g_malloc (sizeof (TypeLink));
 
   link->len = 0;
   link->pos = 0;
@@ -120,65 +87,47 @@
 static void
 free_type_link (TypeLink *link)
 {
-#ifdef USE_SIMPLE_MALLOC
   g_free (link);
-#else
-  link->next = free_type_links;
-  free_type_links = link;
-#endif
 }
 
+#define FRIBIDI_ADD_TYPE_LINK(p,q) \
+        do {    \
+                (p)->len = (q)->pos - (p)->pos; \
+                (p)->next = (q);        \
+                (q)->prev = (p);        \
+                (p) = (q);      \
+        } while (0)
+
 static TypeLink *
-run_length_encode_types (FriBidiCharType *char_type, gint type_len)
+run_length_encode_types (FriBidiCharType *char_type,
+                         FriBidiStrIndex type_len)
 {
   TypeLink *list, *last, *link;
-  TypeLink current;
 
-  gint i;
+  FriBidiStrIndex i;
 
   /* Add the starting link */
   list = new_type_link ();
   list->type = FRIBIDI_TYPE_SOT;
   list->level = FRIBIDI_LEVEL_START;
-  list->len = 0;
-  list->pos = 0;
   last = list;
 
-  /* Sweep over the string_types */
-  current.type = FRIBIDI_LEVEL_START;
-  current.len = 0;
-  current.pos = -1;
-  for (i = 0; i <= type_len; i++)
-    {
-      if (i == type_len || char_type[i] != current.type)
-	{
-	  if (current.pos >= 0)
-	    {
-	      link = new_type_link ();
-	      link->type = current.type;
-	      link->pos = current.pos;
-	      link->len = current.len;
-	      last->next = link;
-	      link->prev = last;
-	      last = last->next;
-	    }
-	  if (i == type_len)
-	    break;
-	  current.len = 0;
-	  current.pos = i;
-	}
-      current.type = char_type[i];
-      current.len++;
-    }
+  /* Sweep over the string_type s */
+  for (i = 0; i < type_len; i++)
+    if (char_type[i] != last->type)
+      {
+        link = new_type_link ();
+        link->type = char_type[i];
+        link->pos = i;
+        FRIBIDI_ADD_TYPE_LINK (last, link);
+      }
 
   /* Add the ending link */
   link = new_type_link ();
   link->type = FRIBIDI_TYPE_EOT;
   link->level = FRIBIDI_LEVEL_END;
-  link->len = 0;
   link->pos = type_len;
-  last->next = link;
-  link->prev = last;
+  FRIBIDI_ADD_TYPE_LINK (last, link);
 
   return list;
 }
@@ -188,7 +137,8 @@
    the override_list.
 */
 static void
-init_list (TypeLink **start, TypeLink **end)
+init_list (TypeLink **start,
+           TypeLink **end)
 {
   TypeLink *list;
   TypeLink *link;
@@ -219,7 +169,8 @@
    the list that p is currently in, if any.
 */
 static void
-move_element_before (TypeLink *p, TypeLink *list)
+move_element_before (TypeLink *p,
+                     TypeLink *list)
 {
   if (p->prev)
     {
@@ -247,129 +198,124 @@
    TBD: use some explanatory names instead of p, q, ...
 */
 static void
-override_list (TypeLink *base, TypeLink *over)
+override_list (TypeLink *base,
+               TypeLink *over)
 {
   TypeLink *p = base, *q, *r, *s, *t;
-  gint pos = 0, pos2;
+  FriBidiStrIndex pos = 0, pos2;
 
-  if (!base)
-    base = over;
-  else if (over)
-    {
-      q = over;
-      while (q)
-	{
-	  if (!q->len || q->pos < pos)
-	    {
-	      t = q;
-	      q = q->next;
-	      free_type_link (t);
-	      continue;
-	    }
-	  pos = q->pos;
-	  while (p->next && p->next->pos <= pos)
-	    p = p->next;
-	  /* now p is the element that q must be inserted 'in'. */
-	  pos2 = pos + q->len;
-	  r = p;
-	  while (r->next && r->next->pos < pos2)
-	    r = r->next;
-	  /* now r is the last element that q affects. */
-	  if (p == r)
-	    {
-	      /* split p into at most 3 interval, and insert q in the place of
-	         the second interval, set r to be the third part. */
-	      /* third part needed? */
-	      if (p->next && p->next->pos == pos2)
-		r = r->next;
-	      else
-		{
-		  r = new_type_link ();
-		  *r = *p;
-		  if (r->next)
-		    {
-		      r->next->prev = r;
-		      r->len = r->next->pos - pos2;
-		    }
-		  else
-		    r->len -= pos - p->pos;
-		  r->pos = pos2;
-		}
-	      /* first part needed? */
-	      if (p->prev && p->pos == pos)
-		{
-		  t = p;
-		  p = p->prev;
-		  free_type_link (t);
-		}
-	      else
-		p->len = pos - p->pos;
-	    }
-	  else
-	    {
-	      /* cut the end of p. */
-	      p->len = pos - p->pos;
-	      /* if all of p is cut, remove it. */
-	      if (!p->len && p->prev)
-		p = p->prev;
-
-	      /* cut the begining of r. */
-	      r->pos = pos2;
-	      if (r->next)
-		r->len = r->next->pos - pos2;
-	      /* if all of r is cut, remove it. */
-	      if (!r->len && r->next)
-		r = r->next;
-
-	      /* remove the elements between p and r. */
-	      for (s = p->next; s != r;)
-		{
-		  t = s;
-		  s = s->next;
-		  free_type_link (t);
-		}
-	    }
-	  /* before updating the next and prev links to point to the inserted q,
-	     we must remember the next element of q in the 'over' list.
-	   */
-	  t = q;
-	  q = q->next;
-	  p->next = t;
-	  t->prev = p;
-	  t->next = r;
-	  r->prev = t;
-	}
+  if (!over)
+    return;
+  q = over;
+  while (q)
+    {
+      if (!q->len || q->pos < pos)
+        {
+          t = q;
+          q = q->next;
+          free_type_link (t);
+          continue;
+        }
+      pos = q->pos;
+      while (p->next && p->next->pos <= pos)
+        p = p->next;
+      /* now p is the element that q must be inserted 'in'. */
+      pos2 = pos + q->len;
+      r = p;
+      while (r->next && r->next->pos < pos2)
+        r = r->next;
+      /* now r is the last element that q affects. */
+      if (p == r)
+        {
+          /* split p into at most 3 interval, and insert q in the place of
+             the second interval, set r to be the third part. */
+          /* third part needed? */
+          if (p->next && p->next->pos == pos2)
+            r = r->next;
+          else
+            {
+              r = new_type_link ();
+              *r = *p;
+              if (r->next)
+                {
+                  r->next->prev = r;
+                  r->len = r->next->pos - pos2;
+                }
+              else
+                r->len -= pos - p->pos;
+              r->pos = pos2;
+            }
+          /* first part needed? */
+          if (p->prev && p->pos == pos)
+            {
+              t = p;
+              p = p->prev;
+              free_type_link (t);
+            }
+          else
+            p->len = pos - p->pos;
+        }
+      else
+        {
+          /* cut the end of p. */
+          p->len = pos - p->pos;
+          /* if all of p is cut, remove it. */
+          if (!p->len && p->prev)
+            p = p->prev;
+
+          /* cut the begining of r. */
+          r->pos = pos2;
+          if (r->next)
+            r->len = r->next->pos - pos2;
+          /* if all of r is cut, remove it. */
+          if (!r->len && r->next)
+            r = r->next;
+
+          /* remove the elements between p and r. */
+          for (s = p->next; s != r;)
+            {
+              t = s;
+              s = s->next;
+              free_type_link (t);
+            }
+        }
+      /* before updating the next and prev links to point to the inserted q,
+         we must remember the next element of q in the 'over' list.
+       */
+      t = q;
+      q = q->next;
+      p->next = t;
+      t->prev = p;
+      t->next = r;
+      r->prev = t;
     }
 }
 
 /* Some convenience macros */
-#define RL_TYPE(list) (list)->type
-#define RL_LEN(list) (list)->len
-#define RL_POS(list) (list)->pos
-#define RL_LEVEL(list) (list)->level
+#define RL_TYPE(list) ((list)->type)
+#define RL_LEN(list) ((list)->len)
+#define RL_POS(list) ((list)->pos)
+#define RL_LEVEL(list) ((list)->level)
+
+static TypeLink *
+merge_with_prev (TypeLink *second)
+{
+  TypeLink *first = second->prev;
+  first->next = second->next;
+  first->next->prev = first;
+  RL_LEN (first) += RL_LEN (second);
+  free_type_link (second);
+  return first;
+}
 
 static void
 compact_list (TypeLink *list)
 {
   if (list->next)
-    {
-      list = list->next;
-      while (list)
-	{
-	  if (RL_TYPE (list->prev) == RL_TYPE (list)
-	      && RL_LEVEL (list->prev) == RL_LEVEL (list))
-	    {
-	      TypeLink *next = list->next;
-	      list->prev->next = list->next;
-	      list->next->prev = list->prev;
-	      RL_LEN (list->prev) += RL_LEN (list);
-	      free_type_link (list);
-	      list = next;
-	    }
-	  else
-	    list = list->next;
-	}
-    }
+    for (list = list->next; list; list = list->next)
+      if (RL_TYPE (list->prev) == RL_TYPE (list)
+          && RL_LEVEL (list->prev) == RL_LEVEL (list))
+        list = merge_with_prev (list);
 }
 
 static void
@@ -377,48 +323,38 @@
 {
   if (list->next)
     {
-      list = list->next;
-      while (list)
-	{
-	  if (RL_LEVEL (list->prev) == RL_LEVEL (list)
-	      &&
-	      ((RL_TYPE
-		(list->prev) == RL_TYPE (list)
-		|| (FRIBIDI_IS_NEUTRAL (RL_TYPE (list->prev))
-		    && FRIBIDI_IS_NEUTRAL (RL_TYPE (list))))))
-	    {
-	      TypeLink *next = list->next;
-	      list->prev->next = list->next;
-	      list->next->prev = list->prev;
-	      RL_LEN (list->prev) += RL_LEN (list);
-	      free_type_link (list);
-	      list = next;
-	    }
-	  else
-	    list = list->next;
-	}
+      for (list = list->next; list; list = list->next)
+        {
+          if (RL_LEVEL (list->prev) == RL_LEVEL (list)
+              &&
+              ((RL_TYPE
+                (list->prev) == RL_TYPE (list)
+                || (FRIBIDI_IS_NEUTRAL (RL_TYPE (list->prev))
+                    && FRIBIDI_IS_NEUTRAL (RL_TYPE (list))))))
+            list = merge_with_prev (list);
+        }
     }
 }
 
-/*=======================================================
+/*=========================================================================
  * define macros for push and pop the status in to / out of the stack
- *-------------------------------------------------------*/
+ *-------------------------------------------------------------------------*/
 
 /* There's some little points in pushing and poping into the status stack:
-   1. when the embedding level is not valid (more than MAX_LEVEL=61),
+   1. when the embedding level is not valid (more than UNI_MAX_BIDI_LEVEL=61),
    you must reject it, and not to push into the stack, but when you see a
    PDF, you must find the matching code, and if it was pushed in the stack,
    pop it, it means you must pop if and only if you have pushed the
    matching code, the over_pushed var counts the number of rejected codes yet.
    2. there's a more confusing point too, when the embedding level is exactly
-   MAX_LEVEL-1=60, an LRO or LRE must be rejected because the new level would
-   be MAX_LEVEL+1=62, that is invalid, but an RLO or RLE must be accepted
-   because the new level is MAX_LEVEL=61, that is valid, so the rejected
-   codes may be not continuous in the logical order, in fact there is at
-   most two continuous intervals of codes, with a RLO or RLE between them.
-   to support the case, the first_interval var counts the number of rejected
-   codes in the first interval, when it is 0, means that there is only one
-   interval yet.
+   UNI_MAX_BIDI_LEVEL-1=60, an LRO or LRE must be rejected because the new
+   level would be UNI_MAX_BIDI_LEVEL+1=62, that is invalid, but an RLO or RLE
+   must be accepted because the new level is UNI_MAX_BIDI_LEVEL=61, that is
+   valid, so the rejected codes may be not continuous in the logical order,
+   in fact there is at most two continuous intervals of codes, with a RLO or
+   RLE between them.  To support this case, the first_interval var counts the
+   number of rejected codes in the first interval, when it is 0, means that
+   there is only one interval yet.
 */
 
 /* a. If this new level would be valid, then this embedding code is valid.
@@ -429,10 +365,10 @@
    change the current level or override status.
 */
 #define PUSH_STATUS \
-    { \
-      if (new_level <= MAX_LEVEL) \
+    do { \
+      if (new_level <= UNI_MAX_BIDI_LEVEL) \
         { \
-          if (level == MAX_LEVEL - 1) \
+          if (level == UNI_MAX_BIDI_LEVEL - 1) \
             first_interval = over_pushed; \
           status_stack[stack_size].level = level; \
           status_stack[stack_size].override = override; \
@@ -440,14 +376,14 @@
           level = new_level; \
           override = new_override; \
         } else \
-	  over_pushed++; \
-    }
+          over_pushed++; \
+    } while (0)
 
 /* If there was a valid matching code, restore (pop) the last remembered
    (pushed) embedding level and directional override.
 */
 #define POP_STATUS \
-    { \
+    do { \
       if (over_pushed || stack_size) \
       { \
         if (over_pushed > first_interval) \
@@ -461,7 +397,7 @@
             override = status_stack[stack_size].override; \
           } \
       } \
-    }
+    } while (0)
 
 /*==========================================================================
  * There was no support for sor and eor in the absence of Explicit Embedding
@@ -471,7 +407,8 @@
 /* Return the type of previous char or the sor, if already at the start of
    a run level. */
 #define PREV_TYPE_OR_SOR(pp) \
-    (RL_LEVEL(pp->prev) == RL_LEVEL(pp) ? \
+    ( \
+     RL_LEVEL(pp->prev) == RL_LEVEL(pp) ? \
       RL_TYPE(pp->prev) : \
       FRIBIDI_LEVEL_TO_DIR(MAX(RL_LEVEL(pp->prev), RL_LEVEL(pp))) \
     )
@@ -479,7 +416,8 @@
 /* Return the type of next char or the eor, if already at the end of
    a run level. */
 #define NEXT_TYPE_OR_EOR(pp) \
-    (!pp->next ? \
+    ( \
+     !pp->next ? \
       FRIBIDI_LEVEL_TO_DIR(RL_LEVEL(pp)) : \
       (RL_LEVEL(pp->next) == RL_LEVEL(pp) ? \
         RL_TYPE(pp->next) : \
@@ -487,7 +425,6 @@
       ) \
     )
 
-
 /* Return the embedding direction of a link. */
 #define FRIBIDI_EMBEDDING_DIRECTION(list) \
     FRIBIDI_LEVEL_TO_DIR(RL_LEVEL(list))
@@ -498,7 +435,7 @@
  *  levels.
  *----------------------------------------------------------------------*/
 
-static gchar char_from_level_array[] = {
+static char char_from_level_array[] = {
   'e',				/* FRIBIDI_LEVEL_REMOVED, internal error, this level shouldn't be viewed.  */
   '_',				/* FRIBIDI_LEVEL_START or _END, indicating start of string and end of string. */
   /* 0-9,A-F are the only valid levels in debug mode and before resolving
@@ -530,7 +467,7 @@
   fprintf (stderr, "  Res. levels: ");
   while (pp)
     {
-      gint i;
+      FriBidiStrIndex i;
       for (i = 0; i < RL_LEN (pp); i++)
 	fprintf (stderr, "%c", fribidi_char_from_level (RL_LEVEL (pp)));
       pp = pp->next;
@@ -544,7 +481,7 @@
   fprintf (stderr, "  Res. types : ");
   while (pp)
     {
-      gint i;
+      FriBidiStrIndex i;
       for (i = 0; i < RL_LEN (pp); i++)
 	fprintf (stderr, "%c", fribidi_char_from_type (pp->type));
       pp = pp->next;
@@ -557,7 +494,7 @@
 static void
 print_bidi_string (FriBidiChar *str)
 {
-  gint i;
+  FriBidiStrIndex i;
   fprintf (stderr, "  Org. types : ");
   for (i = 0; str[i]; i++)
     fprintf (stderr, "%c",
@@ -565,20 +502,21 @@
   fprintf (stderr, "\n");
 }
 #endif
-
 /*======================================================================
  *  This function should follow the Unicode specification closely!
  *----------------------------------------------------------------------*/
 static void
-fribidi_analyse_string (	/* input */
-			 FriBidiChar *str,
-			 gint len, FriBidiCharType *pbase_dir,
-			 /* output */
-			 TypeLink **ptype_rl_list, gint *pmax_level)
+fribidi_analyse_string (/* input */
+                        const FriBidiChar *str,
+                        FriBidiStrIndex len,
+                        FriBidiCharType *pbase_dir,
+                        /* output */
+                        TypeLink **ptype_rl_list,
+                        FriBidiLevel *pmax_level)
 {
-  gint base_level, base_dir;
-  gint max_level;
-  gint i;
+  FriBidiLevel base_level, max_level;
+  FriBidiCharType base_dir;
+  FriBidiStrIndex i;
   TypeLink *type_rl_list, *explicits_list, *explicits_list_end, *pp;
 
   DBG ("Entering fribidi_analyse_string()\n");
@@ -586,21 +524,14 @@
   /* Determinate character types */
   DBG ("  Determine character types\n");
   {
-    FriBidiCharType* char_type;
-
-    if (len < 512)
-      char_type = g_alloca (len*sizeof(FriBidiCharType));
-    else
-      char_type = g_malloc (len*sizeof(FriBidiCharType));
-    
+    FriBidiCharType *char_type =
+      (FriBidiCharType *) g_malloc (len * sizeof (FriBidiCharType));
     for (i = 0; i < len; i++)
       char_type[i] = _pango_fribidi_get_type (str[i]);
 
     /* Run length encode the character types */
     type_rl_list = run_length_encode_types (char_type, len);
-
-    if (len >= 512)
-      g_free (char_type);
+    g_free (char_type);
   }
   DBG ("  Determine character types, Done\n");
 
@@ -614,20 +545,17 @@
      base direction */
   else
     {
-      base_level = 0;		/* Default */
-      base_dir = FRIBIDI_TYPE_ON;
-      for (pp = type_rl_list; pp; pp = pp->next)
-	if (FRIBIDI_IS_LETTER (RL_TYPE (pp)))
-	  {
-	    base_level = FRIBIDI_DIR_TO_LEVEL (RL_TYPE (pp));
-	    base_dir = FRIBIDI_LEVEL_TO_DIR (base_level);
-	    break;
-	  }
-
       /* If no strong base_dir was found, resort to the weak direction
          that was passed on input. */
-      if (FRIBIDI_IS_NEUTRAL (base_dir))
-	base_level = FRIBIDI_DIR_TO_LEVEL (*pbase_dir);
+      base_level = FRIBIDI_DIR_TO_LEVEL (*pbase_dir);
+      base_dir = FRIBIDI_TYPE_ON;
+      for (pp = type_rl_list; pp; pp = pp->next)
+        if (FRIBIDI_IS_LETTER (RL_TYPE (pp)))
+          {
+            base_level = FRIBIDI_DIR_TO_LEVEL (RL_TYPE (pp));
+            base_dir = FRIBIDI_LEVEL_TO_DIR (base_level);
+            break;
+          }
     }
   base_dir = FRIBIDI_LEVEL_TO_DIR (base_level);
   DBG2 ("  Base level : %c\n", fribidi_char_from_level (base_level));
@@ -648,8 +576,10 @@
        embedding level. Set the directional override status to neutral.
        Process each character iteratively, applying rules X2 through X9.
        Only embedding levels from 0 to 61 are valid in this phase. */
-    gint level, override, new_level, new_override, i;
-    gint stack_size, over_pushed, first_interval;
+    FriBidiLevel level, new_level;
+    FriBidiCharType override, new_override;
+    FriBidiStrIndex i;
+    int stack_size, over_pushed, first_interval;
     LevelInfo *status_stack;
     TypeLink temp_link;
 
@@ -659,62 +589,63 @@
     stack_size = 0;
     over_pushed = 0;
     first_interval = 0;
-    status_stack = g_new(LevelInfo, MAX_LEVEL + 2);
+    status_stack =
+      (LevelInfo *) g_malloc (sizeof (LevelInfo) * (UNI_MAX_BIDI_LEVEL + 2));
 
     for (pp = type_rl_list->next; pp->next; pp = pp->next)
       {
-	gint this_type = RL_TYPE (pp);
-	if (FRIBIDI_IS_EXPLICIT_OR_BN (this_type))
-	  {
-	    if (FRIBIDI_IS_STRONG (this_type))
-	      {			/* LRE, RLE, LRO, RLO */
-		/* 1. Explicit Embeddings */
-		/*   X2. With each RLE, compute the least greater odd embedding level. */
-		/*   X3. With each LRE, compute the least greater even embedding level. */
-		/* 2. Explicit Overrides */
-		/*   X4. With each RLO, compute the least greater odd embedding level. */
-		/*   X5. With each LRO, compute the least greater even embedding level. */
-		new_override = FRIBIDI_EXPLICIT_TO_OVERRIDE_DIR (this_type);
-		for (i = 0; i < RL_LEN (pp); i++)
-		  {
-		    new_level =
-		      ((level + FRIBIDI_DIR_TO_LEVEL (this_type) + 2) & ~1) -
-		      FRIBIDI_DIR_TO_LEVEL (this_type);
-		    PUSH_STATUS;
-		  }
-	      }
-	    else if (this_type == FRIBIDI_TYPE_PDF)
-	      {
-		/* 3. Terminating Embeddings and overrides */
-		/*   X7. With each PDF, determine the matching embedding or
-		   override code. */
-		for (i = 0; i < RL_LEN (pp); i++)
-		  POP_STATUS;
-	      }
-	    /* X9. Remove all RLE, LRE, RLO, LRO, PDF, and BN codes. */
-	    /* Remove element and add it to explicits_list */
-	    temp_link.next = pp->next;
-	    pp->level = FRIBIDI_LEVEL_REMOVED;
-	    move_element_before (pp, explicits_list_end);
-	    pp = &temp_link;
-	  }
-	else
-	  {
-	    /* X6. For all typed besides RLE, LRE, RLO, LRO, and PDF:
-	       a. Set the level of the current character to the current
-	       embedding level.
-	       b. Whenever the directional override status is not neutral,
-	       reset the current character type to the directional override
-	       status. */
-	    RL_LEVEL (pp) = level;
-	    if (!FRIBIDI_IS_NEUTRAL (override))
-	      RL_TYPE (pp) = override;
-	  }
-	/* X8. All explicit directional embeddings and overrides are
-	   completely terminated at the end of each paragraph. Paragraph
-	   separators are not included in the embedding. */
-	/* This function is running on a single paragraph, so we can do
-	   X8 after all the input is processed. */
+        FriBidiCharType this_type = RL_TYPE (pp);
+        if (FRIBIDI_IS_EXPLICIT_OR_BN (this_type))
+          {
+            if (FRIBIDI_IS_STRONG (this_type))
+              {                 /* LRE, RLE, LRO, RLO */
+                /* 1. Explicit Embeddings */
+                /*   X2. With each RLE, compute the least greater odd embedding level. */
+                /*   X3. With each LRE, compute the least greater even embedding level. */
+                /* 2. Explicit Overrides */
+                /*   X4. With each RLO, compute the least greater odd embedding level. */
+                /*   X5. With each LRO, compute the least greater even embedding level. */
+                new_override = FRIBIDI_EXPLICIT_TO_OVERRIDE_DIR (this_type);
+                for (i = 0; i < RL_LEN (pp); i++)
+                  {
+                    new_level =
+                      ((level + FRIBIDI_DIR_TO_LEVEL (this_type) + 2) & ~1) -
+                      FRIBIDI_DIR_TO_LEVEL (this_type);
+                    PUSH_STATUS;
+                  }
+              }
+            else if (this_type == FRIBIDI_TYPE_PDF)
+              {
+                /* 3. Terminating Embeddings and overrides */
+                /*   X7. With each PDF, determine the matching embedding or
+                   override code. */
+                for (i = 0; i < RL_LEN (pp); i++)
+                  POP_STATUS;
+              }
+            /* X9. Remove all RLE, LRE, RLO, LRO, PDF, and BN codes. */
+            /* Remove element and add it to explicits_list */
+            temp_link.next = pp->next;
+            pp->level = FRIBIDI_LEVEL_REMOVED;
+            move_element_before (pp, explicits_list_end);
+            pp = &temp_link;
+          }
+        else
+          {
+            /* X6. For all typed besides RLE, LRE, RLO, LRO, and PDF:
+               a. Set the level of the current character to the current
+               embedding level.
+               b. Whenever the directional override status is not neutral,
+               reset the current character type to the directional override
+               status. */
+            RL_LEVEL (pp) = level;
+            if (!FRIBIDI_IS_NEUTRAL (override))
+              RL_TYPE (pp) = override;
+          }
+        /* X8. All explicit directional embeddings and overrides are
+           completely terminated at the end of each paragraph. Paragraph
+           separators are not included in the embedding. */
+        /* This function is running on a single paragraph, so we can do
+           X8 after all the input is processed. */
       }
 
     /* Implementing X8. It has no effect on a single paragraph! */
@@ -723,7 +654,7 @@
     stack_size = 0;
     over_pushed = 0;
 
-    g_free(status_stack);
+    g_free (status_stack);
   }
   /* X10. The remaining rules are applied to each run of characters at the
      same level. For each run, determine the start-of-level-run (sor) and
@@ -750,41 +681,49 @@
   /* 4. Resolving weak types */
   DBG ("Resolving weak types\n");
   {
-    gint last_strong, prev_type_org, w4;
+    FriBidiCharType last_strong, prev_type_org;
+    gboolean w4;
 
     last_strong = base_dir;
 
     for (pp = type_rl_list->next; pp->next; pp = pp->next)
       {
-	gint prev_type, this_type, next_type;
+        FriBidiCharType prev_type, this_type, next_type;
 
-	prev_type = PREV_TYPE_OR_SOR (pp);
-	this_type = RL_TYPE (pp);
-	next_type = NEXT_TYPE_OR_EOR (pp);
-
-	if (FRIBIDI_IS_STRONG (prev_type))
-	  last_strong = prev_type;
-
-	/* W1. NSM
-	   Examine each non-spacing mark (NSM) in the level run, and change the
-	   type of the NSM to the type of the previous character. If the NSM
-	   is at the start of the level run, it will get the type of sor. */
-	if (this_type == FRIBIDI_TYPE_NSM)
-	  {
-	    RL_TYPE (pp) = prev_type;
-	    continue;
-	  }
-
-	/* W2: European numbers. */
-	if (this_type == FRIBIDI_TYPE_EN && last_strong == FRIBIDI_TYPE_AL)
-	  {
-	    RL_TYPE (pp) = FRIBIDI_TYPE_AN;
-
-	    /* Resolving dependency of loops for rules W1 and W2, so we
-	       can merge them in one loop. */
-	    if (next_type == FRIBIDI_TYPE_NSM)
-	      RL_TYPE (pp->next) = FRIBIDI_TYPE_AN;
-	  }
+        prev_type = PREV_TYPE_OR_SOR (pp);
+        this_type = RL_TYPE (pp);
+        next_type = NEXT_TYPE_OR_EOR (pp);
+
+        if (FRIBIDI_IS_STRONG (prev_type))
+          last_strong = prev_type;
+
+        /* W1. NSM
+           Examine each non-spacing mark (NSM) in the level run, and change the
+           type of the NSM to the type of the previous character. If the NSM
+           is at the start of the level run, it will get the type of sor. */
+        /* Implementation note: it is important that if the previous character
+           is not sor, then we should merge this run with the previous,
+           because of rules like W5, that we assume all of a sequence of
+           adjacent ETs are in one TypeLink. */
+        if (this_type == FRIBIDI_TYPE_NSM)
+          {
+            if (RL_LEVEL (pp->prev) == RL_LEVEL (pp))
+              pp = merge_with_prev (pp);
+            else
+              RL_TYPE (pp) = prev_type;
+            continue;           /* As we know the next condition cannot be true. */
+          }
+
+        /* W2: European numbers. */
+        if (this_type == FRIBIDI_TYPE_EN && last_strong == FRIBIDI_TYPE_AL)
+          {
+            RL_TYPE (pp) = FRIBIDI_TYPE_AN;
+
+            /* Resolving dependency of loops for rules W1 and W2, so we
+               can merge them in one loop. */
+            if (next_type == FRIBIDI_TYPE_NSM)
+              RL_TYPE (pp->next) = FRIBIDI_TYPE_AN;
+          }
       }
 
 
@@ -792,7 +731,7 @@
     /* Resolving dependency of loops for rules W4 and W5, W5 may
        want to prevent W4 to take effect in the next turn, do this 
        through "w4". */
-    w4 = 1;
+    w4 = TRUE;
     /* Resolving dependency of loops for rules W4 and W5 with W7,
        W7 may change an EN to L but it sets the prev_type_org if needed,
        so W4 and W5 in next turn can still do their works. */
@@ -800,62 +739,62 @@
 
     for (pp = type_rl_list->next; pp->next; pp = pp->next)
       {
-	gint prev_type, this_type, next_type;
+        FriBidiCharType prev_type, this_type, next_type;
 
-	prev_type = PREV_TYPE_OR_SOR (pp);
-	this_type = RL_TYPE (pp);
-	next_type = NEXT_TYPE_OR_EOR (pp);
-
-	if (FRIBIDI_IS_STRONG (prev_type))
-	  last_strong = prev_type;
-
-	/* W3: Change ALs to R. */
-	if (this_type == FRIBIDI_TYPE_AL)
-	  {
-	    RL_TYPE (pp) = FRIBIDI_TYPE_RTL;
-	    w4 = 1;
-	    prev_type_org = FRIBIDI_TYPE_ON;
-	    continue;
-	  }
-
-	/* W4. A single european separator changes to a european number.
-	   A single common separator between two numbers of the same type
-	   changes to that type. */
-	if (w4
-	    && RL_LEN (pp) == 1 && FRIBIDI_IS_ES_OR_CS (this_type)
-	    && FRIBIDI_IS_NUMBER (prev_type_org) && prev_type_org == next_type
-	    && (prev_type_org == FRIBIDI_TYPE_EN
-		|| this_type == FRIBIDI_TYPE_CS))
-	  {
-	    RL_TYPE (pp) = prev_type;
-	    this_type = RL_TYPE (pp);
-	  }
-	w4 = 1;
-
-	/* W5. A sequence of European terminators adjacent to European
-	   numbers changes to All European numbers. */
-	if (this_type == FRIBIDI_TYPE_ET
-	    && (prev_type_org == FRIBIDI_TYPE_EN
-		|| next_type == FRIBIDI_TYPE_EN))
-	  {
-	    RL_TYPE (pp) = FRIBIDI_TYPE_EN;
-	    w4 = 0;
-	    this_type = RL_TYPE (pp);
-	  }
-
-	/* W6. Otherwise change separators and terminators to other neutral. */
-	if (FRIBIDI_IS_NUMBER_SEPARATOR_OR_TERMINATOR (this_type))
-	  RL_TYPE (pp) = FRIBIDI_TYPE_ON;
-
-	/* W7. Change european numbers to L. */
-	if (this_type == FRIBIDI_TYPE_EN && last_strong == FRIBIDI_TYPE_LTR)
-	  {
-	    RL_TYPE (pp) = FRIBIDI_TYPE_LTR;
-	    prev_type_org = (RL_LEVEL (pp) == RL_LEVEL (pp->next) ?
-			     FRIBIDI_TYPE_EN : FRIBIDI_TYPE_ON);
-	  }
-	else
-	  prev_type_org = PREV_TYPE_OR_SOR (pp->next);
+        prev_type = PREV_TYPE_OR_SOR (pp);
+        this_type = RL_TYPE (pp);
+        next_type = NEXT_TYPE_OR_EOR (pp);
+
+        if (FRIBIDI_IS_STRONG (prev_type))
+          last_strong = prev_type;
+
+        /* W3: Change ALs to R. */
+        if (this_type == FRIBIDI_TYPE_AL)
+          {
+            RL_TYPE (pp) = FRIBIDI_TYPE_RTL;
+            w4 = TRUE;
+            prev_type_org = FRIBIDI_TYPE_ON;
+            continue;
+          }
+
+        /* W4. A single european separator changes to a european number.
+           A single common separator between two numbers of the same type
+           changes to that type. */
+        if (w4
+            && RL_LEN (pp) == 1 && FRIBIDI_IS_ES_OR_CS (this_type)
+            && FRIBIDI_IS_NUMBER (prev_type_org) && prev_type_org == next_type
+            && (prev_type_org == FRIBIDI_TYPE_EN
+                || this_type == FRIBIDI_TYPE_CS))
+          {
+            RL_TYPE (pp) = prev_type;
+            this_type = RL_TYPE (pp);
+          }
+        w4 = TRUE;
+
+        /* W5. A sequence of European terminators adjacent to European
+           numbers changes to All European numbers. */
+        if (this_type == FRIBIDI_TYPE_ET
+            && (prev_type_org == FRIBIDI_TYPE_EN
+                || next_type == FRIBIDI_TYPE_EN))
+          {
+            RL_TYPE (pp) = FRIBIDI_TYPE_EN;
+            w4 = FALSE;
+            this_type = RL_TYPE (pp);
+          }
+
+        /* W6. Otherwise change separators and terminators to other neutral. */
+        if (FRIBIDI_IS_NUMBER_SEPARATOR_OR_TERMINATOR (this_type))
+          RL_TYPE (pp) = FRIBIDI_TYPE_ON;
+
+        /* W7. Change european numbers to L. */
+        if (this_type == FRIBIDI_TYPE_EN && last_strong == FRIBIDI_TYPE_LTR)
+          {
+            RL_TYPE (pp) = FRIBIDI_TYPE_LTR;
+            prev_type_org = (RL_LEVEL (pp) == RL_LEVEL (pp->next) ?
+                             FRIBIDI_TYPE_EN : FRIBIDI_TYPE_ON);
+          }
+        else
+          prev_type_org = PREV_TYPE_OR_SOR (pp->next);
       }
   }
 
@@ -876,18 +815,18 @@
        For each neutral, resolve it. */
     for (pp = type_rl_list->next; pp->next; pp = pp->next)
       {
-	gint prev_type, this_type, next_type;
+        FriBidiCharType prev_type, this_type, next_type;
 
-	/* "European and arabic numbers are treated as though they were R"
-	   FRIBIDI_CHANGE_NUMBER_TO_RTL does this. */
-	this_type = FRIBIDI_CHANGE_NUMBER_TO_RTL (RL_TYPE (pp));
-	prev_type = FRIBIDI_CHANGE_NUMBER_TO_RTL (PREV_TYPE_OR_SOR (pp));
-	next_type = FRIBIDI_CHANGE_NUMBER_TO_RTL (NEXT_TYPE_OR_EOR (pp));
-
-	if (FRIBIDI_IS_NEUTRAL (this_type))
-	  RL_TYPE (pp) = (prev_type == next_type) ?
-	    /* N1. */ prev_type :
-	    /* N2. */ FRIBIDI_EMBEDDING_DIRECTION (pp);
+        /* "European and arabic numbers are treated as though they were R"
+           FRIBIDI_CHANGE_NUMBER_TO_RTL does this. */
+        this_type = FRIBIDI_CHANGE_NUMBER_TO_RTL (RL_TYPE (pp));
+        prev_type = FRIBIDI_CHANGE_NUMBER_TO_RTL (PREV_TYPE_OR_SOR (pp));
+        next_type = FRIBIDI_CHANGE_NUMBER_TO_RTL (NEXT_TYPE_OR_EOR (pp));
+
+        if (FRIBIDI_IS_NEUTRAL (this_type))
+          RL_TYPE (pp) = (prev_type == next_type) ?
+            /* N1. */ prev_type :
+            /* N2. */ FRIBIDI_EMBEDDING_DIRECTION (pp);
       }
   }
 
@@ -908,21 +847,22 @@
 
     for (pp = type_rl_list->next; pp->next; pp = pp->next)
       {
-	gint this_type, level;
+        FriBidiCharType this_type;
+        FriBidiLevel level;
 
-	this_type = RL_TYPE (pp);
-	level = RL_LEVEL (pp);
+        this_type = RL_TYPE (pp);
+        level = RL_LEVEL (pp);
 
-	/* I1. Even */
-	/* I2. Odd */
-	if (FRIBIDI_IS_NUMBER (this_type))
-	  RL_LEVEL (pp) = (RL_LEVEL (pp) + 2) & ~1;
-	else
-	  RL_LEVEL (pp) = (RL_LEVEL (pp) ^ FRIBIDI_DIR_TO_LEVEL (this_type)) +
-	    (RL_LEVEL (pp) & 1);
+        /* I1. Even */
+        /* I2. Odd */
+        if (FRIBIDI_IS_NUMBER (this_type))
+          RL_LEVEL (pp) = (level + 2) & ~1;
+        else
+          RL_LEVEL (pp) = (level ^ FRIBIDI_DIR_TO_LEVEL (this_type)) +
+            (level & 1);
 
-	if (RL_LEVEL (pp) > max_level)
-	  max_level = RL_LEVEL (pp);
+        if (RL_LEVEL (pp) > max_level)
+          max_level = RL_LEVEL (pp);
       }
   }
 
@@ -949,7 +889,7 @@
       p->level = base_level;
     for (; p->next; p = p->next)
       if (p->level < 0)
-	p->level = p->prev->level;
+        p->level = p->prev->level;
   }
 
 #ifdef DEBUG
@@ -963,7 +903,7 @@
 
   DBG ("Reset the embedding levels\n");
   {
-    gint j, k, state, pos;
+    int j, k, state, pos;
     TypeLink *p, *q, *list, *list_end;
 
     /* L1. Reset the embedding levels of some chars. */
@@ -973,28 +913,28 @@
     pos = len - 1;
     for (j = len - 1; j >= -1; j--)
       {
-	/* if state is on at the very first of string, do this too. */
-	if (j >= 0)
-	  k = _pango_fribidi_get_type (str[j]);
-	else
-	  k = FRIBIDI_TYPE_ON;
-	if (!state && FRIBIDI_IS_SEPARATOR (k))
-	  {
-	    state = 1;
-	    pos = j;
-	  }
-	else if (state && !FRIBIDI_IS_EXPLICIT_OR_SEPARATOR_OR_BN_OR_WS (k))
-	  {
-	    state = 0;
-	    p = new_type_link ();
-	    p->prev = p->next = NULL;
-	    p->pos = j + 1;
-	    p->len = pos - j;
-	    p->type = base_dir;
-	    p->level = base_level;
-	    move_element_before (p, q);
-	    q = p;
-	  }
+        /* if state is on at the very first of string, do this too. */
+        if (j >= 0)
+          k = _pango_fribidi_get_type (str[j]);
+        else
+          k = FRIBIDI_TYPE_ON;
+        if (!state && FRIBIDI_IS_SEPARATOR (k))
+          {
+            state = 1;
+            pos = j;
+          }
+        else if (state && !FRIBIDI_IS_EXPLICIT_OR_SEPARATOR_OR_BN_OR_WS (k))
+          {
+            state = 0;
+            p = new_type_link ();
+            p->prev = p->next = (TypeLink *) NULL;
+            p->pos = j + 1;
+            p->len = pos - j;
+            p->type = base_dir;
+            p->level = base_level;
+            move_element_before (p, q);
+            q = p;
+          }
       }
     override_list (type_rl_list, list);
   }
@@ -1034,7 +974,6 @@
       return;
     }
 
-#ifdef USE_SIMPLE_MALLOC
   pp = type_rl_list;
   while (pp)
     {
@@ -1044,40 +983,30 @@
       pp = pp->next;
       free_type_link (p);
     };
-#else
-  for (pp = type_rl_list->next; pp->next; pp = pp->next)
-    /* Nothing */ ;
-  pp->next = free_type_links;
-  free_type_links = type_rl_list;
-  type_rl_list = NULL;
-#endif
 
   DBG ("Leaving free_rl_list()\n");
   return;
 }
 
 /*======================================================================
- *  Here starts the exposed front end functions.
- *----------------------------------------------------------------------*/
-
-/*======================================================================
  *  fribidi_log2vis_get_embedding_levels() is used in order to just get
  *  the embedding levels.
  *----------------------------------------------------------------------*/
 gboolean
-pango_log2vis_get_embedding_levels (	/* input */
-				       gunichar *str,
-				       int len, PangoDirection *pbase_dir,
-				       /* output */
-				       guint8 *embedding_level_list)
+pango_log2vis_get_embedding_levels (/* input */
+                                    gunichar *str,
+                                    gint len,
+                                    PangoDirection *pbase_dir,
+                                    /* output */
+                                    guint8 *embedding_level_list)
 {
   TypeLink *type_rl_list, *pp;
-  gint max_level;
+  FriBidiLevel max_level;
   FriBidiCharType fribidi_base_dir;
 
   DBG ("Entering fribidi_log2vis_get_embedding_levels()\n");
 
-  fribidi_base_dir = (*pbase_dir == PANGO_DIRECTION_LTR) ? FRIBIDI_TYPE_L : FRIBIDI_TYPE_R;
+  fribidi_base_dir = (*pbase_dir == PANGO_DIRECTION_LTR) ? FRIBIDI_TYPE_LTR : FRIBIDI_TYPE_RTL;
 
   if (len == 0)
     {
@@ -1086,23 +1015,21 @@
     }
 
   fribidi_analyse_string (str, len, &fribidi_base_dir,
-			  /* output */
-			  &type_rl_list, &max_level);
+                                 /* output */
+                                 &type_rl_list, &max_level);
 
   for (pp = type_rl_list->next; pp->next; pp = pp->next)
     {
-      gint i;
-      gint pos = RL_POS (pp);
-      gint len = RL_LEN (pp);
+      gint i, pos = RL_POS (pp),
+        len = RL_LEN (pp);
       gint level = RL_LEVEL (pp);
       for (i = 0; i < len; i++)
-	embedding_level_list[pos + i] = level;
+        embedding_level_list[pos + i] = level;
     }
 
   free_rl_list (type_rl_list);
-    
-  *pbase_dir = (fribidi_base_dir == FRIBIDI_TYPE_L) ?  PANGO_DIRECTION_LTR : PANGO_DIRECTION_RTL;
 
   DBG ("Leaving fribidi_log2vis_get_embedding_levels()\n");
   return TRUE;
 }
+
Index: pango/mini-fribidi/fribidi.patch
===================================================================
RCS file: /cvs/gnome/pango/pango/mini-fribidi/fribidi.patch,v
retrieving revision 1.3
diff -u -r1.3 fribidi.patch
--- pango/mini-fribidi/fribidi.patch	18 Oct 2001 18:47:50 -0000	1.3
+++ pango/mini-fribidi/fribidi.patch	14 Jul 2003 22:43:49 -0000
@@ -1,6 +1,7 @@
---- /home/otaylor/cvs/fribidi/fribidi.c	Thu Oct 18 14:42:36 2001
-+++ fribidi.c	Thu Oct 18 14:35:42 2001
-@@ -21,10 +21,10 @@
+diff -bu /usr/src/fribidi/fribidi.c mini-fribidi/fribidi.c
+--- /usr/src/fribidi/fribidi.c	2002-09-13 16:26:42.000000000 -0400
++++ mini-fribidi/fribidi.c	2003-07-14 18:21:27.000000000 -0400
+@@ -21,27 +21,17 @@
   * <fwpg@sharif.edu>.
   */
  
@@ -8,31 +9,52 @@
 -#include <config.h>
 -#endif
 -#include "fribidi.h"
+-#include "fribidi_mem.h"
+-#ifdef DEBUG
+-#include <stdio.h>
+-#endif
 +#include <glib.h>
 +#include "pango/pango-utils.h"
 +#include "fribidi_types.h"
-+
- #ifdef DEBUG
- #include <stdio.h>
- #endif
-@@ -80,40 +80,6 @@
- static gboolean fribidi_debug = FALSE;
- #endif
  
--gboolean
--fribidi_set_debug (gboolean debug)
--{
--#ifdef DEBUG
--  return fribidi_debug = debug;
+-/* Redefine FRIBIDI_CHUNK_SIZE in config.h to override this. */
+-#ifndef FRIBIDI_CHUNK_SIZE
+-#ifdef MEM_OPTIMIZED
+-#define FRIBIDI_CHUNK_SIZE 16
 -#else
--  return 0;
+-#define FRIBIDI_CHUNK_SIZE 128
 -#endif
--}
++#ifdef DEBUG
++static gboolean fribidi_debug = FALSE;
+ #endif
+ 
+ #ifdef DEBUG
+-#define DBG(s) do { if (fribidi_debug_status(fribidienv)) { fprintf(stderr, s); } } while (0)
+-#define DBG2(s, t) do { if (fribidi_debug_status(fribidienv)) { fprintf(stderr, s, t); } } while (0)
++#define DBG(s) do { if (fribidi_debug) { fprintf(stderr, s); } } while (0)
++#define DBG2(s, t) do { if (fribidi_debug) { fprintf(stderr, s, t); } } while (0)
+ #else
+ #define DBG(s)
+ #define DBG2(s, t)
+@@ -51,7 +41,7 @@
+ char fribidi_char_from_type (FriBidiCharType c);
+ #endif
+ 
+-#define MAX(a,b) ((a) > (b) ? (a) : (b))
++#define UNI_MAX_BIDI_LEVEL 61
+ 
+ /*======================================================================
+  * Typedef for the run-length list.
+@@ -79,63 +69,12 @@
+ }
+ LevelInfo;
+ 
 -
 -static void
--bidi_string_reverse (FriBidiChar *str, gint len)
+-bidi_string_reverse (FriBidiChar *str,
+-		     FriBidiStrIndex len)
 -{
--  gint i;
+-  FriBidiStrIndex i;
 -  for (i = 0; i < len / 2; i++)
 -    {
 -      FriBidiChar tmp = str[i];
@@ -42,9 +64,10 @@
 -}
 -
 -static void
--index_array_reverse (FriBidiStrIndex *arr, gint len)
+-index_array_reverse (FriBidiStrIndex *arr,
+-		     FriBidiStrIndex len)
 -{
--  gint i;
+-  FriBidiStrIndex i;
 -  for (i = 0; i < len / 2; i++)
 -    {
 -      FriBidiStrIndex tmp = arr[i];
@@ -53,133 +76,616 @@
 -    }
 -}
 -
- #ifndef USE_SIMPLE_MALLOC
- static TypeLink *free_type_links = NULL;
- #endif
-@@ -595,7 +561,7 @@
+-#ifndef USE_SIMPLE_MALLOC
+-static TypeLink *free_type_links = NULL;
+-#endif
+-
+ static TypeLink *
+-new_type_link (FriBidiEnv *fribidienv)
++new_type_link ()
+ {
+   TypeLink *link;
+ 
+-#ifdef USE_SIMPLE_MALLOC
+-  link = (TypeLink *) fribidi_malloc (fribidienv, sizeof (TypeLink));
+-#else /* !USE_SIMPLE_MALLOC */
+-  if (free_type_links)
+-    {
+-      link = free_type_links;
+-      free_type_links = free_type_links->next;
+-    }
+-  else
+-    {
+-      static FriBidiMemChunk *mem_chunk = NULL;
+-
+-      if (!mem_chunk)
+-	mem_chunk = fribidi_mem_chunk_create (fribidienv, TypeLink,
+-					      FRIBIDI_CHUNK_SIZE,
+-					      FRIBIDI_ALLOC_ONLY);
+-
+-      link = fribidi_chunk_new (fribidienv, TypeLink,
+-				mem_chunk);
+-    }
+-#endif /* !USE_SIMPLE_MALLOC */
++  link = (TypeLink *) g_malloc (sizeof (TypeLink));
+ 
+   link->len = 0;
+   link->pos = 0;
+@@ -146,15 +85,9 @@
+ }
+ 
+ static void
+-free_type_link (FriBidiEnv *fribidienv,
+-		TypeLink *link)
++free_type_link (TypeLink *link)
+ {
+-#ifdef USE_SIMPLE_MALLOC
+-  fribidi_free (fribidienv, link);
+-#else
+-  link->next = free_type_links;
+-  free_type_links = link;
+-#endif
++  g_free (link);
+ }
+ 
+ #define FRIBIDI_ADD_TYPE_LINK(p,q) \
+@@ -166,8 +99,7 @@
+ 	} while (0)
+ 
+ static TypeLink *
+-run_length_encode_types (FriBidiEnv *fribidienv,
+-			 FriBidiCharType *char_type,
++run_length_encode_types (FriBidiCharType *char_type,
+ 			 FriBidiStrIndex type_len)
+ {
+   TypeLink *list, *last, *link;
+@@ -175,7 +107,7 @@
+   FriBidiStrIndex i;
+ 
+   /* Add the starting link */
+-  list = new_type_link (fribidienv);
++  list = new_type_link ();
+   list->type = FRIBIDI_TYPE_SOT;
+   list->level = FRIBIDI_LEVEL_START;
+   last = list;
+@@ -184,14 +116,14 @@
+   for (i = 0; i < type_len; i++)
+     if (char_type[i] != last->type)
+       {
+-	link = new_type_link (fribidienv);
++        link = new_type_link ();
+ 	link->type = char_type[i];
+ 	link->pos = i;
+ 	FRIBIDI_ADD_TYPE_LINK (last, link);
+       }
+ 
+   /* Add the ending link */
+-  link = new_type_link (fribidienv);
++  link = new_type_link ();
+   link->type = FRIBIDI_TYPE_EOT;
+   link->level = FRIBIDI_LEVEL_END;
+   link->pos = type_len;
+@@ -205,22 +137,21 @@
+    the override_list.
+ */
+ static void
+-init_list (FriBidiEnv *fribidienv,
+-	   TypeLink **start,
++init_list (TypeLink **start,
+ 	   TypeLink **end)
+ {
+   TypeLink *list;
+   TypeLink *link;
+ 
+   /* Add the starting link */
+-  list = new_type_link (fribidienv);
++  list = new_type_link ();
+   list->type = FRIBIDI_TYPE_SOT;
+   list->level = FRIBIDI_LEVEL_START;
+   list->len = 0;
+   list->pos = 0;
+ 
+   /* Add the ending link */
+-  link = new_type_link (fribidienv);
++  link = new_type_link ();
+   link->type = FRIBIDI_TYPE_EOT;
+   link->level = FRIBIDI_LEVEL_END;
+   link->len = 0;
+@@ -267,8 +198,7 @@
+    TBD: use some explanatory names instead of p, q, ...
+ */
+ static void
+-override_list (FriBidiEnv *fribidienv,
+-	       TypeLink *base,
++override_list (TypeLink *base,
+ 	       TypeLink *over)
+ {
+   TypeLink *p = base, *q, *r, *s, *t;
+@@ -283,7 +213,7 @@
+ 	{
+ 	  t = q;
+ 	  q = q->next;
+-	  free_type_link (fribidienv, t);
++          free_type_link (t);
+ 	  continue;
+ 	}
+       pos = q->pos;
+@@ -304,7 +234,7 @@
+ 	    r = r->next;
+ 	  else
+ 	    {
+-	      r = new_type_link (fribidienv);
++              r = new_type_link ();
+ 	      *r = *p;
+ 	      if (r->next)
+ 		{
+@@ -320,7 +250,7 @@
+ 	    {
+ 	      t = p;
+ 	      p = p->prev;
+-	      free_type_link (fribidienv, t);
++              free_type_link (t);
+ 	    }
+ 	  else
+ 	    p->len = pos - p->pos;
+@@ -346,7 +276,7 @@
+ 	    {
+ 	      t = s;
+ 	      s = s->next;
+-	      free_type_link (fribidienv, t);
++              free_type_link (t);
+ 	    }
+ 	}
+       /* before updating the next and prev links to point to the inserted q,
+@@ -368,31 +298,28 @@
+ #define RL_LEVEL(list) ((list)->level)
+ 
+ static TypeLink *
+-merge_with_prev (FriBidiEnv *fribidienv,
+-		 TypeLink *second)
++merge_with_prev (TypeLink *second)
+ {
+   TypeLink *first = second->prev;
+   first->next = second->next;
+   first->next->prev = first;
+   RL_LEN (first) += RL_LEN (second);
+-  free_type_link (fribidienv, second);
++  free_type_link (second);
+   return first;
+ }
+ 
+ static void
+-compact_list (FriBidiEnv *fribidienv,
+-	      TypeLink *list)
++compact_list (TypeLink *list)
+ {
+   if (list->next)
+     for (list = list->next; list; list = list->next)
+       if (RL_TYPE (list->prev) == RL_TYPE (list)
+ 	  && RL_LEVEL (list->prev) == RL_LEVEL (list))
+-	list = merge_with_prev (fribidienv, list);
++        list = merge_with_prev (list);
+ }
+ 
+ static void
+-compact_neutrals (FriBidiEnv *fribidienv,
+-		  TypeLink *list)
++compact_neutrals (TypeLink *list)
+ {
+   if (list->next)
+     {
+@@ -404,7 +331,7 @@
+ 		(list->prev) == RL_TYPE (list)
+ 		|| (FRIBIDI_IS_NEUTRAL (RL_TYPE (list->prev))
+ 		    && FRIBIDI_IS_NEUTRAL (RL_TYPE (list))))))
+-	    list = merge_with_prev (fribidienv, list);
++            list = merge_with_prev (list);
+ 	}
+     }
+ }
+@@ -498,7 +425,6 @@
+       ) \
+     )
+ 
+-
+ /* Return the embedding direction of a link. */
+ #define FRIBIDI_EMBEDDING_DIRECTION(list) \
+     FRIBIDI_LEVEL_TO_DIR(RL_LEVEL(list))
+@@ -572,17 +498,15 @@
    fprintf (stderr, "  Org. types : ");
    for (i = 0; str[i]; i++)
      fprintf (stderr, "%c",
--	     fribidi_char_from_type (fribidi_get_type (str[i])));
+-	     fribidi_char_from_type (fribidi_get_type (fribidienv, str[i])));
 +	     fribidi_char_from_type (_pango_fribidi_get_type (str[i])));
    fprintf (stderr, "\n");
  }
  #endif
-@@ -620,9 +586,9 @@
-   /* Determinate character types */
+-
+ /*======================================================================
+  *  This function should follow the Unicode specification closely!
+  *----------------------------------------------------------------------*/
+ static void
+-fribidi_analyse_string (FriBidiEnv *fribidienv,
+-			/* input */
++fribidi_analyse_string (/* input */
+ 			const FriBidiChar *str,
+ 			FriBidiStrIndex len,
+ 			FriBidiCharType *pbase_dir,
+@@ -601,18 +525,17 @@
    DBG ("  Determine character types\n");
    {
--    FriBidiCharType char_type[len];
-+    FriBidiCharType* char_type = g_alloca (len*sizeof(FriBidiCharType));
+     FriBidiCharType *char_type =
+-      (FriBidiCharType *) fribidi_malloc (fribidienv,
+-					  len * sizeof (FriBidiCharType));
++      (FriBidiCharType *) g_malloc (len * sizeof (FriBidiCharType));
      for (i = 0; i < len; i++)
--      char_type[i] = fribidi_get_type (str[i]);
+-      char_type[i] = fribidi_get_type (fribidienv, str[i]);
 +      char_type[i] = _pango_fribidi_get_type (str[i]);
  
      /* Run length encode the character types */
-     type_rl_list = run_length_encode_types (char_type, len);
-@@ -1000,7 +966,7 @@
+-    type_rl_list = run_length_encode_types (fribidienv, char_type, len);
+-    fribidi_free (fribidienv, char_type);
++    type_rl_list = run_length_encode_types (char_type, len);
++    g_free (char_type);
+   }
+   DBG ("  Determine character types, Done\n");
+ 
+-  init_list (fribidienv, &explicits_list, &explicits_list_end);
++  init_list (&explicits_list, &explicits_list_end);
+ 
+   /* Find base level */
+   DBG ("  Finding the base level\n");
+@@ -640,7 +563,7 @@
+   DBG ("  Finding the base level, Done\n");
+ 
+ #ifdef DEBUG
+-  if (fribidi_debug_status (fribidienv))
++  if (fribidi_debug)
+     {
+       print_types_re (type_rl_list);
+     }
+@@ -667,9 +590,7 @@
+     over_pushed = 0;
+     first_interval = 0;
+     status_stack =
+-      (LevelInfo *) fribidi_malloc (fribidienv,
+-				    sizeof (LevelInfo) * (UNI_MAX_BIDI_LEVEL +
+-							  2));
++      (LevelInfo *) g_malloc (sizeof (LevelInfo) * (UNI_MAX_BIDI_LEVEL + 2));
+ 
+     for (pp = type_rl_list->next; pp->next; pp = pp->next)
+       {
+@@ -733,7 +654,7 @@
+     stack_size = 0;
+     over_pushed = 0;
+ 
+-    fribidi_free (fribidienv, status_stack);
++    g_free (status_stack);
+   }
+   /* X10. The remaining rules are applied to each run of characters at the
+      same level. For each run, determine the start-of-level-run (sor) and
+@@ -745,10 +666,10 @@
+   /* Resolving Implicit Levels can be done out of X10 loop, so only change
+      of Resolving Weak Types and Resolving Neutral Types is needed. */
+ 
+-  compact_list (fribidienv, type_rl_list);
++  compact_list (type_rl_list);
+ 
+ #ifdef DEBUG
+-  if (fribidi_debug_status (fribidienv))
++  if (fribidi_debug)
+     {
+       print_types_re (type_rl_list);
+       print_bidi_string (str);
+@@ -761,7 +682,7 @@
+   DBG ("Resolving weak types\n");
+   {
+     FriBidiCharType last_strong, prev_type_org;
+-    fribidi_boolean w4;
++    gboolean w4;
+ 
+     last_strong = base_dir;
+ 
+@@ -787,7 +708,7 @@
+ 	if (this_type == FRIBIDI_TYPE_NSM)
+ 	  {
+ 	    if (RL_LEVEL (pp->prev) == RL_LEVEL (pp))
+-	      pp = merge_with_prev (fribidienv, pp);
++              pp = merge_with_prev (pp);
+ 	    else
+ 	      RL_TYPE (pp) = prev_type;
+ 	    continue;		/* As we know the next condition cannot be true. */
+@@ -810,7 +731,7 @@
+     /* Resolving dependency of loops for rules W4 and W5, W5 may
+        want to prevent W4 to take effect in the next turn, do this 
+        through "w4". */
+-    w4 = FRIBIDI_TRUE;
++    w4 = TRUE;
+     /* Resolving dependency of loops for rules W4 and W5 with W7,
+        W7 may change an EN to L but it sets the prev_type_org if needed,
+        so W4 and W5 in next turn can still do their works. */
+@@ -831,7 +752,7 @@
+ 	if (this_type == FRIBIDI_TYPE_AL)
+ 	  {
+ 	    RL_TYPE (pp) = FRIBIDI_TYPE_RTL;
+-	    w4 = FRIBIDI_TRUE;
++            w4 = TRUE;
+ 	    prev_type_org = FRIBIDI_TYPE_ON;
+ 	    continue;
+ 	  }
+@@ -848,7 +769,7 @@
+ 	    RL_TYPE (pp) = prev_type;
+ 	    this_type = RL_TYPE (pp);
+ 	  }
+-	w4 = FRIBIDI_TRUE;
++        w4 = TRUE;
+ 
+ 	/* W5. A sequence of European terminators adjacent to European
+ 	   numbers changes to All European numbers. */
+@@ -857,7 +778,7 @@
+ 		|| next_type == FRIBIDI_TYPE_EN))
+ 	  {
+ 	    RL_TYPE (pp) = FRIBIDI_TYPE_EN;
+-	    w4 = FRIBIDI_FALSE;
++            w4 = FALSE;
+ 	    this_type = RL_TYPE (pp);
+ 	  }
+ 
+@@ -877,10 +798,10 @@
+       }
+   }
+ 
+-  compact_neutrals (fribidienv, type_rl_list);
++  compact_neutrals (type_rl_list);
+ 
+ #ifdef DEBUG
+-  if (fribidi_debug_status (fribidienv))
++  if (fribidi_debug)
+     {
+       print_resolved_levels (type_rl_list);
+       print_resolved_types (type_rl_list);
+@@ -909,10 +830,10 @@
+       }
+   }
+ 
+-  compact_list (fribidienv, type_rl_list);
++  compact_list (type_rl_list);
+ 
+ #ifdef DEBUG
+-  if (fribidi_debug_status (fribidienv))
++  if (fribidi_debug)
+     {
+       print_resolved_levels (type_rl_list);
+       print_resolved_types (type_rl_list);
+@@ -945,10 +866,10 @@
+       }
+   }
+ 
+-  compact_list (fribidienv, type_rl_list);
++  compact_list (type_rl_list);
+ 
+ #ifdef DEBUG
+-  if (fribidi_debug_status (fribidienv))
++  if (fribidi_debug)
+     {
+       print_bidi_string (str);
+       print_resolved_levels (type_rl_list);
+@@ -962,7 +883,7 @@
+   {
+     TypeLink *p;
+ 
+-    override_list (fribidienv, type_rl_list, explicits_list);
++    override_list (type_rl_list, explicits_list);
+     p = type_rl_list->next;
+     if (p->level < 0)
+       p->level = base_level;
+@@ -972,7 +893,7 @@
+   }
+ 
+ #ifdef DEBUG
+-  if (fribidi_debug_status (fribidienv))
++  if (fribidi_debug)
+     {
+       print_types_re (type_rl_list);
+       print_resolved_levels (type_rl_list);
+@@ -986,7 +907,7 @@
+     TypeLink *p, *q, *list, *list_end;
+ 
+     /* L1. Reset the embedding levels of some chars. */
+-    init_list (fribidienv, &list, &list_end);
++    init_list (&list, &list_end);
+     q = list_end;
+     state = 1;
+     pos = len - 1;
+@@ -994,7 +915,7 @@
        {
  	/* if state is on at the very first of string, do this too. */
  	if (j >= 0)
--	  k = fribidi_get_type (str[j]);
-+	  k = _pango_fribidi_get_type (str[j]);
+-	  k = fribidi_get_type (fribidienv, str[j]);
++          k = _pango_fribidi_get_type (str[j]);
  	else
  	  k = FRIBIDI_TYPE_ON;
  	if (!state && FRIBIDI_IS_SEPARATOR (k))
-@@ -1081,228 +1047,36 @@
+@@ -1005,7 +926,7 @@
+ 	else if (state && !FRIBIDI_IS_EXPLICIT_OR_SEPARATOR_OR_BN_OR_WS (k))
+ 	  {
+ 	    state = 0;
+-	    p = new_type_link (fribidienv);
++            p = new_type_link ();
+ 	    p->prev = p->next = (TypeLink *) NULL;
+ 	    p->pos = j + 1;
+ 	    p->len = pos - j;
+@@ -1015,11 +936,11 @@
+ 	    q = p;
+ 	  }
+       }
+-    override_list (fribidienv, type_rl_list, list);
++    override_list (type_rl_list, list);
+   }
+ 
+ #ifdef DEBUG
+-  if (fribidi_debug_status (fribidienv))
++  if (fribidi_debug)
+     {
+       print_types_re (type_rl_list);
+       print_resolved_levels (type_rl_list);
+@@ -1040,8 +961,7 @@
+  *  fribidi_analyse_string(), after the list is not needed anymore.
+  *----------------------------------------------------------------------*/
+ static void
+-free_rl_list (FriBidiEnv *fribidienv,
+-	      TypeLink *type_rl_list)
++free_rl_list (TypeLink *type_rl_list)
+ {
+ 
+   TypeLink *pp;
+@@ -1054,7 +974,6 @@
+       return;
+     }
+ 
+-#ifdef USE_SIMPLE_MALLOC
+   pp = type_rl_list;
+   while (pp)
+     {
+@@ -1062,366 +981,55 @@
+ 
+       p = pp;
+       pp = pp->next;
+-      free_type_link (fribidienv, p);
++      free_type_link (p);
+     };
+-#else
+-  for (pp = type_rl_list->next; pp->next; pp = pp->next)
+-    /* Nothing */ ;
+-  pp->next = free_type_links;
+-  free_type_links = type_rl_list;
+-  type_rl_list = NULL;
+-#endif
+ 
+   DBG ("Leaving free_rl_list()\n");
    return;
  }
  
--static gboolean mirroring = TRUE;
 -
--gboolean
--fribidi_mirroring_status (void)
--{
--  return mirroring;
--}
--
--void
--fribidi_set_mirroring (gboolean mirror)
--{
--  mirroring = mirror;
--}
+-/*======================================================================
+- *  Here starts the exposed front end functions.
+- *----------------------------------------------------------------------*/
 -
- /*======================================================================
-  *  Here starts the exposed front end functions.
-  *----------------------------------------------------------------------*/
- 
- /*======================================================================
-- *  fribidi_remove_explicits() removes explicit marks, and returns the
-- *  new length.
+-/*======================================================================
+- *  fribidi_remove_bidi_marks() removes bidirectional marks, and returns
+- *  the new length, updates each of other inputs if not NULL.
 - *----------------------------------------------------------------------*/
--gint
--fribidi_remove_explicits (FriBidiChar *str, gint length)
+-FRIBIDI_API FriBidiStrIndex
+-fribidi_remove_bidi_marks (FriBidiEnv *fribidienv,
+-			   FriBidiChar *str,
+-			   FriBidiStrIndex length,
+-			   FriBidiStrIndex *position_to_this_list,
+-			   FriBidiStrIndex *position_from_this_list,
+-			   FriBidiLevel *embedding_level_list)
 -{
--  gint i, j;
+-  FriBidiStrIndex i, j;
+-  fribidi_boolean private_from_this = FRIBIDI_FALSE;
+-
+-  DBG ("Entering fribidi_remove_bidi_marks()\n");
+-
+-  /* If to_this is to not null, we must have from_this as well. If it is
+-     not given by the caller, we have to make a private instance of it. */
+-  if (position_to_this_list && !position_from_this_list)
+-    {
+-      private_from_this = FRIBIDI_TRUE;
+-      position_from_this_list =
+-	(FriBidiStrIndex *) fribidi_malloc (fribidienv,
+-					    sizeof (FriBidiStrIndex) *
+-					    length);
+-    }
 -
--  DBG ("Entering fribidi_remove_explicits()\n");
 -  j = 0;
 -  for (i = 0; i < length; i++)
--    if (!FRIBIDI_IS_EXPLICIT (fribidi_get_type (str[i]))
+-    if (!FRIBIDI_IS_EXPLICIT (fribidi_get_type (fribidienv, str[i]))
 -	&& str[i] != UNI_LRM && str[i] != UNI_RLM)
--      str[j++] = str[i];
+-      {
+-	str[j] = str[i];
+-	if (embedding_level_list)
+-	  embedding_level_list[j] = embedding_level_list[i];
+-	if (position_from_this_list)
+-	  position_from_this_list[j] = position_from_this_list[i];
+-	j++;
+-      }
+-
+-  /* Convert the from_this list to to_this */
+-  if (position_to_this_list)
+-    {
+-      DBG ("  Converting from_this list to to_this\n");
+-      for (i = 0; i < length; i++)
+-	position_to_this_list[i] = -1;
+-      for (i = 0; i < length; i++)
+-	position_to_this_list[position_from_this_list[i]] = i;
+-      DBG ("  Converting from_this list to to_this, Done\n");
+-    }
+-
+-  if (private_from_this)
+-    fribidi_free (fribidienv, position_from_this_list);
 -
--  DBG ("Leaving fribidi_remove_explicits()\n");
+-  DBG ("Leaving fribidi_remove_bidi_marks()\n");
 -  return j;
 -}
 -
+-
 -/*======================================================================
 - *  fribidi_log2vis() calls the function_analyse_string() and then
 - *  does reordering and fills in the output strings.
 - *----------------------------------------------------------------------*/
--gboolean
--fribidi_log2vis (		/* input */
--		  FriBidiChar *str, gint len, FriBidiCharType *pbase_dir,
--		  /* output */
--		  FriBidiChar *visual_str,
--		  FriBidiStrIndex *position_L_to_V_list,
--		  FriBidiStrIndex *position_V_to_L_list,
--		  guint8 *embedding_level_list)
+-FRIBIDI_API fribidi_boolean
+-fribidi_log2vis (FriBidiEnv *fribidienv,
+-		 /* input */
+-		 const FriBidiChar *str,
+-		 FriBidiStrIndex len,
+-		 FriBidiCharType *pbase_dir,
+-		 /* output */
+-		 FriBidiChar *visual_str,
+-		 FriBidiStrIndex *position_L_to_V_list,
+-		 FriBidiStrIndex *position_V_to_L_list,
+-		 FriBidiLevel *embedding_level_list)
 -{
--  TypeLink *type_rl_list, *pp = NULL;
--  gint max_level;
--  gboolean private_V_to_L = FALSE;
+-  TypeLink *type_rl_list, *pp = (TypeLink *) NULL;
+-  FriBidiLevel max_level;
+-  fribidi_boolean private_V_to_L = FRIBIDI_FALSE;
 -
 -  DBG ("Entering fribidi_log2vis()\n");
 -
 -  if (len == 0)
 -    {
 -      DBG ("Leaving fribidi_log2vis()\n");
--      return TRUE;
+-      return FRIBIDI_TRUE;
 -    }
 -
--  /* If l2v is to be calculated we must have l2v as well. If it is not
+-  /* If l2v is to be calculated we must have v2l as well. If it is not
 -     given by the caller, we have to make a private instance of it. */
 -  if (position_L_to_V_list && !position_V_to_L_list)
 -    {
--      private_V_to_L = TRUE;
--      position_V_to_L_list = g_new (FriBidiStrIndex, len + 1);
+-      private_V_to_L = FRIBIDI_TRUE;
+-      position_V_to_L_list =
+-	(FriBidiStrIndex *) fribidi_malloc (fribidienv,
+-					    sizeof (FriBidiStrIndex) * len);
 -    }
 -
 -  if (len > FRIBIDI_MAX_STRING_LENGTH && position_V_to_L_list)
 -    {
 -#ifdef DEBUG
--      fprintf (stderr, "%s: cannot handle strings > %d characters\n",
--	       PACKAGE, FRIBIDI_MAX_STRING_LENGTH);
+-      fprintf (stderr, "%s: cannot handle strings > %ld characters\n",
+-	       FRIBIDI_PACKAGE, (long) FRIBIDI_MAX_STRING_LENGTH);
 -#endif
--      return FALSE;
+-      return FRIBIDI_FALSE;
 -    }
--  fribidi_analyse_string (str, len, pbase_dir,
+-  fribidi_analyse_string (fribidienv, str, len, pbase_dir,
 -			  /* output */
 -			  &type_rl_list, &max_level);
 -
 -  /* 7. Reordering resolved levels */
 -  DBG ("Reordering resolved levels\n");
 -  {
--    gint level_idx;
--    gint i;
--
--    /* TBD: L3 */
+-    FriBidiLevel level_idx;
+-    FriBidiStrIndex i;
 -
 -    /* Set up the ordering array to sorted order */
 -    if (position_V_to_L_list)
@@ -193,7 +699,7 @@
 -    if (visual_str)
 -      {
 -	DBG ("  Initialize visual_str\n");
--	for (i = 0; i <= len; i++)
+-	for (i = 0; i < len; i++)
 -	  visual_str[i] = str[i];
 -	visual_str[len] = 0;
 -	DBG ("  Initialize visual_str, Done\n");
@@ -205,7 +711,8 @@
 -	DBG ("  Fill the embedding levels array\n");
 -	for (pp = type_rl_list->next; pp->next; pp = pp->next)
 -	  {
--	    gint i, pos, len, level;
+-	    FriBidiStrIndex i, pos, len;
+-	    FriBidiLevel level;
 -
 -	    pos = pp->pos;
 -	    len = pp->len;
@@ -219,7 +726,7 @@
 -    /* Reorder both the outstring and the order array */
 -    if (visual_str || position_V_to_L_list)
 -      {
--	if (mirroring && visual_str)
+-	if (fribidi_mirroring_status (fribidienv) && visual_str)
 -	  {
 -	    /* L4. Mirror all characters that are in odd levels and have mirrors. */
 -	    DBG ("  Mirroring\n");
@@ -227,12 +734,12 @@
 -	      {
 -		if (pp->level & 1)
 -		  {
--		    gint i;
+-		    FriBidiStrIndex i;
 -		    for (i = RL_POS (pp); i < RL_POS (pp) + RL_LEN (pp); i++)
 -		      {
 -			FriBidiChar mirrored_ch;
 -			if (fribidi_get_mirror_char
--			    (visual_str[i], &mirrored_ch))
+-			    (fribidienv, visual_str[i], &mirrored_ch))
 -			  visual_str[i] = mirrored_ch;
 -		      }
 -		  }
@@ -240,6 +747,55 @@
 -	    DBG ("  Mirroring, Done\n");
 -	  }
 -
+-	if (fribidi_reorder_nsm_status (fribidienv))
+-	  {
+-	    /* L3. Reorder NSMs. */
+-	    DBG ("  Reordering NSM sequences\n");
+-	    /* We apply this rule before L2, so go backward in odd levels. */
+-	    for (pp = type_rl_list->next; pp->next; pp = pp->next)
+-	      {
+-		if (pp->level & 1)
+-		  {
+-		    FriBidiStrIndex i, seq_end = 0;
+-		    fribidi_boolean is_nsm_seq;
+-
+-		    is_nsm_seq = 0;
+-		    for (i = RL_POS (pp) + RL_LEN (pp) - 1; i >= RL_POS (pp);
+-			 i--)
+-		      {
+-			FriBidiCharType this_type;
+-
+-			this_type = fribidi_get_type (NULL, str[i]);
+-			if (is_nsm_seq && this_type != FRIBIDI_TYPE_NSM)
+-			  {
+-			    if (visual_str)
+-			      {
+-				bidi_string_reverse (visual_str + i,
+-						     seq_end - i + 1);
+-			      }
+-			    if (position_V_to_L_list)
+-			      {
+-				index_array_reverse (position_V_to_L_list + i,
+-						     seq_end - i + 1);
+-			      }
+-			    is_nsm_seq = 0;
+-			  }
+-			else if (!is_nsm_seq && this_type == FRIBIDI_TYPE_NSM)
+-			  {
+-			    seq_end = i;
+-			    is_nsm_seq = 1;
+-			  }
+-		      }
+-		    if (is_nsm_seq)
+-		      {
+-			DBG
+-			  ("Warning: NSMs at the beggining of run level.\n");
+-		      }
+-		  }
+-	      }
+-	    DBG ("  Reordering NSM sequences, Done\n");
+-	  }
+-
 -	/* L2. Reorder. */
 -	DBG ("  Reordering\n");
 -	for (level_idx = max_level; level_idx > 0; level_idx--)
@@ -249,8 +805,8 @@
 -		if (RL_LEVEL (pp) >= level_idx)
 -		  {
 -		    /* Find all stretches that are >= level_idx */
--		    gint len = RL_LEN (pp);
--		    gint pos = RL_POS (pp);
+-		    FriBidiStrIndex len = RL_LEN (pp),
+-		      pos = RL_POS (pp);
 -		    TypeLink *pp1 = pp->next;
 -		    while (pp1->next && RL_LEVEL (pp1) >= level_idx)
 -		      {
@@ -272,7 +828,7 @@
 -    if (position_L_to_V_list)
 -      {
 -	DBG ("  Converting v2l list to l2v\n");
--	for (i = 0; i <= len; i++)
+-	for (i = 0; i < len; i++)
 -	  position_L_to_V_list[position_V_to_L_list[i]] = i;
 -	DBG ("  Converting v2l list to l2v, Done\n");
 -      }
@@ -280,460 +836,338 @@
 -  DBG ("Reordering resolved levels, Done\n");
 -
 -  if (private_V_to_L)
--    g_free (position_V_to_L_list);
+-    fribidi_free (fribidienv, position_V_to_L_list);
 -
--  free_rl_list (type_rl_list);
+-  free_rl_list (fribidienv, type_rl_list);
 -
 -  DBG ("Leaving fribidi_log2vis()\n");
--  return TRUE;
+-  return FRIBIDI_TRUE;
 -
 -}
 -
--/*======================================================================
+ /*======================================================================
   *  fribidi_log2vis_get_embedding_levels() is used in order to just get
   *  the embedding levels.
   *----------------------------------------------------------------------*/
- gboolean
--fribidi_log2vis_get_embedding_levels (	/* input */
--				       FriBidiChar *str,
--				       gint len, FriBidiCharType *pbase_dir,
-+pango_log2vis_get_embedding_levels (	/* input */
-+				       gunichar *str,
-+				       int len, PangoDirection *pbase_dir,
- 				       /* output */
- 				       guint8 *embedding_level_list)
+-FRIBIDI_API fribidi_boolean
+-fribidi_log2vis_get_embedding_levels (FriBidiEnv *fribidienv,
+-				      /* input */
+-				      const FriBidiChar *str,
+-				      FriBidiStrIndex len,
+-				      FriBidiCharType *pbase_dir,
++gboolean
++pango_log2vis_get_embedding_levels (/* input */
++                                    gunichar *str,
++                                    gint len,
++                                    PangoDirection *pbase_dir,
+ 				      /* output */
+-				      FriBidiLevel *embedding_level_list)
++                                    guint8 *embedding_level_list)
  {
    TypeLink *type_rl_list, *pp;
-   gint max_level;
+   FriBidiLevel max_level;
 +  FriBidiCharType fribidi_base_dir;
  
    DBG ("Entering fribidi_log2vis_get_embedding_levels()\n");
  
-+  fribidi_base_dir = (*pbase_dir == PANGO_DIRECTION_LTR) ? FRIBIDI_TYPE_L : FRIBIDI_TYPE_R;
++  fribidi_base_dir = (*pbase_dir == PANGO_DIRECTION_LTR) ? FRIBIDI_TYPE_LTR : FRIBIDI_TYPE_RTL;
 +
    if (len == 0)
      {
        DBG ("Leaving fribidi_log2vis_get_embedding_levels()\n");
-       return TRUE;
+-      return FRIBIDI_TRUE;
++      return TRUE;
      }
  
--  fribidi_analyse_string (str, len, pbase_dir,
+-  fribidi_analyse_string (fribidienv, str, len, pbase_dir,
 +  fribidi_analyse_string (str, len, &fribidi_base_dir,
  			  /* output */
  			  &type_rl_list, &max_level);
  
-@@ -1317,31 +1091,9 @@
+   for (pp = type_rl_list->next; pp->next; pp = pp->next)
+     {
+-      FriBidiStrIndex i, pos = RL_POS (pp),
++      gint i, pos = RL_POS (pp),
+         len = RL_LEN (pp);
+-      FriBidiLevel level = RL_LEVEL (pp);
++      gint level = RL_LEVEL (pp);
+       for (i = 0; i < len; i++)
+ 	embedding_level_list[pos + i] = level;
      }
  
-   free_rl_list (type_rl_list);
-+    
-+  *pbase_dir = (fribidi_base_dir == FRIBIDI_TYPE_L) ?  PANGO_DIRECTION_LTR : PANGO_DIRECTION_RTL;
+-  free_rl_list (fribidienv, type_rl_list);
++  free_rl_list (type_rl_list);
  
    DBG ("Leaving fribidi_log2vis_get_embedding_levels()\n");
-   return TRUE;
+-  return FRIBIDI_TRUE;
++  return TRUE;
  }
+ 
+-
 -
--gchar *fribidi_version_info =
--  "Copyright (C) 2001 FriBidi Project.\n"
--  PACKAGE " comes with NO WARRANTY, to the extent permitted by law.\n"
--  "You may redistribute copies of " PACKAGE " under the terms of\n"
--  "the GNU General Public License.\n"
+-const char *fribidi_version_info =
+-  FRIBIDI_PACKAGE " " FRIBIDI_VERSION "\n" "interface version "
+-  TOSTR (FRIBIDI_INTERFACE_VERSION)
+-  "\n"
+-  "Unicode version " FRIBIDI_UNICODE_VERSION "\n"
+-  "\n"
+-  "Copyright (C) 2002 FriBidi Project (http://fribidi.sf.net/).\n"
+-  FRIBIDI_PACKAGE " comes with NO WARRANTY, to the extent permitted by law.\n"
+-  "You may redistribute copies of " FRIBIDI_PACKAGE " under the terms of\n"
+-  "the GNU Lesser General Public License.\n"
 -  "For more information about these matters, see the files named COPYING.\n"
--#if (defined(MEM_OPTIMIZED) || defined(DEBUG) || defined(USE_SIMPLE_MALLOC) \
--    || defined(FRIBIDI_USE_MINI_GLIB))
--  "This " PACKAGE " is compiled with following options:\n"
--#if (defined(MEM_OPTIMIZED))
--  "MEM_OPTIMIZED\n"
--#endif
--#if (defined(DEBUG))
--  "DEBUG\n"
+-  "\n" "Configured with following options:\n"
+-#ifdef DEBUG
+-  "--enable-debug\n"
 -#endif
--#if (defined(USE_SIMPLE_MALLOC))
--  "USE_SIMPLE_MALLOC\n"
+-#ifdef MEM_OPTIMIZED
+-  "--enable-memopt\n"
 -#endif
--#if (defined(FRIBIDI_USE_MINI_GLIB))
--  "FRIBIDI_USE_MINI_GLIB\n"
+-#ifdef USE_SIMPLE_MALLOC
+-  "--enable-malloc\n"
 -#endif
+-#ifdef FRIBIDI_NO_CHARSETS
+-  "--without-charsts\n"
 -#endif
-- ;
---- /home/otaylor/cvs/fribidi/fribidi_get_type.c	Thu Oct 18 14:42:36 2001
-+++ fribidi_get_type.c	Mon Apr 16 18:42:34 2001
-@@ -23,7 +23,9 @@
+-;
+diff -bu /usr/src/fribidi/fribidi_char_type.c mini-fribidi/fribidi_char_type.c
+--- /usr/src/fribidi/fribidi_char_type.c	2003-05-28 02:53:09.000000000 -0400
++++ mini-fribidi/fribidi_char_type.c	2003-07-14 18:06:19.000000000 -0400
+@@ -19,85 +19,18 @@
+  * For licensing issues, contact <fwpg@sharif.edu>. 
+  */
  
- #include <stdio.h>
- #include <stdlib.h>
+-#ifdef HAVE_CONFIG_H
+-#include <config.h>
+-#endif
 -#include "fribidi.h"
 +#include <glib.h>
-+#include "pango/pango-utils.h"
 +#include "fribidi_types.h"
- #include "fribidi_tables.i"
  
- #ifdef MEM_OPTIMIZED
-@@ -34,7 +36,7 @@
-  *  fribidi_get_type() returns the bidi type of a character.
+ /*======================================================================
+- *  fribidi_get_type() returns the bidi type of a character.
++ *  _pango_fribidi_get_type() returns the bidi type of a character.
   *----------------------------------------------------------------------*/
- FriBidiCharType
--fribidi_get_type (FriBidiChar uch)
-+_pango_fribidi_get_type(FriBidiChar uch)
- {
-   int i = uch % 256, j = uch / 256;
-   FriBidiPropCharType *block = FriBidiPropertyBlocks[j];
-@@ -81,10 +83,10 @@
- }
+-FRIBIDI_API FriBidiCharType fribidi_get_type_internal (FriBidiChar uch);
++FriBidiCharType _pango_fribidi_get_type_internal (FriBidiChar uch);
  
- gboolean
--fribidi_get_mirror_char (	/* Input */
--			  FriBidiChar ch,
--			  /* Output */
--			  FriBidiChar *mirrored_ch)
-+pango_get_mirror_char (	/* Input */
-+		       FriBidiChar ch,
-+		       /* Output */
-+		       FriBidiChar * mirrored_ch)
- {
-   int pos, step;
-   gboolean found;
---- /home/otaylor/cvs/fribidi/fribidi_tables.i	Thu Oct 18 14:42:36 2001
-+++ fribidi_tables.i	Sun Sep  2 13:56:50 2001
-@@ -4,8 +4,6 @@
-  *----------------------------------------------------------------------*/
- /* *INDENT-OFF* */
+-FRIBIDI_API FriBidiCharType
+-fribidi_get_type (FriBidiEnv *env,
+-		  FriBidiChar uch)
++FriBidiCharType
++_pango_fribidi_get_type (FriBidiChar uch)
+ {
+-  return fribidi_get_type_internal (uch);
++  return _pango_fribidi_get_type_internal (uch);
+ }
  
--#include "fribidi.h"
+-FRIBIDI_API void
+-fribidi_get_types (FriBidiEnv *env,
+-		   /* input */
+-		   const FriBidiChar *str,
+-		   FriBidiStrIndex len,
+-		   /* output */
+-		   FriBidiCharType *type)
+-{
+-  FriBidiStrIndex i;
 -
- #define WS FRIBIDI_PROP_TYPE_WS
- #define BS FRIBIDI_PROP_TYPE_BS
- #define EO FRIBIDI_PROP_TYPE_EO
-@@ -29,7 +27,7 @@
- #define EN FRIBIDI_PROP_TYPE_EN
- 
- 
--FriBidiPropCharType FriBidiPropertyBlock0000[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0000[256] = {
-   BN ,BN ,BN ,BN ,BN ,BN ,BN ,BN ,BN ,SS ,BS ,SS ,WS ,BS ,BN ,BN ,
-   BN ,BN ,BN ,BN ,BN ,BN ,BN ,BN ,BN ,BN ,BN ,BN ,BS ,BS ,BS ,SS ,
-   WS ,ON ,ON ,ET ,ET ,ET ,ON ,ON ,ON ,ON ,ON ,ET ,CS ,ET ,CS ,ES ,
-@@ -48,7 +46,7 @@
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,ON ,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
- 
--FriBidiPropCharType FriBidiPropertyBlock0100[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0100[256] = {
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -67,7 +65,7 @@
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
- 
--FriBidiPropCharType FriBidiPropertyBlock0200[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0200[256] = {
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -86,7 +84,7 @@
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
- 
--FriBidiPropCharType FriBidiPropertyBlock0300[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0300[256] = {
-   NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
-   NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
-   NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
-@@ -105,7 +103,7 @@
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
- 
--FriBidiPropCharType FriBidiPropertyBlock0400[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0400[256] = {
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -124,7 +122,7 @@
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
- 
--FriBidiPropCharType FriBidiPropertyBlock0500[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0500[256] = {
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -143,7 +141,7 @@
-   RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,
- };
- 
--FriBidiPropCharType FriBidiPropertyBlock0600[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0600[256] = {
-   CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,
-   CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,CS ,AL ,AL ,AL ,AL ,AL ,
-   AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
-@@ -162,7 +160,7 @@
-   EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,AL ,AL ,AL ,AL ,AL ,AL ,
- };
- 
--FriBidiPropCharType FriBidiPropertyBlock0700[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0700[256] = {
-   AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,BN ,
-   AL ,NSM,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
-   AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
-@@ -181,7 +179,7 @@
-   NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
- };
- 
--FriBidiPropCharType FriBidiPropertyBlock0900[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0900[256] = {
-   NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -200,7 +198,7 @@
-   LTR,LTR,ET ,ET ,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
- 
--FriBidiPropCharType FriBidiPropertyBlock0a00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0a00[256] = {
-   NSM,NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -219,7 +217,7 @@
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
- 
--FriBidiPropCharType FriBidiPropertyBlock0b00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0b00[256] = {
-   NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -238,7 +236,7 @@
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
- 
--FriBidiPropCharType FriBidiPropertyBlock0c00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0c00[256] = {
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -257,7 +255,7 @@
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
- 
--FriBidiPropCharType FriBidiPropertyBlock0d00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0d00[256] = {
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -276,7 +274,7 @@
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
- 
--FriBidiPropCharType FriBidiPropertyBlock0e00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0e00[256] = {
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -295,7 +293,7 @@
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
- 
--FriBidiPropCharType FriBidiPropertyBlock0f00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock0f00[256] = {
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -314,7 +312,7 @@
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
- 
--FriBidiPropCharType FriBidiPropertyBlock1000[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock1000[256] = {
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,
-@@ -333,7 +331,7 @@
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
+-  for (i = 0; i < len; i++)
+-    type[i] = fribidi_get_type (env, str[i]);
+-}
+-
+-#ifdef MEM_OPTIMIZED
+-
+-#if   HAS_FRIBIDI_TAB_CHAR_TYPE_9_I
+-#include "fribidi_tab_char_type_9.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_8_I
+-#include "fribidi_tab_char_type_8.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_7_I
+-#include "fribidi_tab_char_type_7.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_6_I
+-#include "fribidi_tab_char_type_6.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_5_I
+-#include "fribidi_tab_char_type_5.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_4_I
+-#include "fribidi_tab_char_type_4.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_3_I
+-#include "fribidi_tab_char_type_3.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_2_I
+ #include "fribidi_tab_char_type_2.i"
+-#else
+-#error You have no fribidi_tab_char_type_*.i file, please first make one by \
+-       make fribidi_tab_char_type_n.i which n is the compress level, a digit \
+-       between 2 and 9, or simply run make fribidi_tab_char_type_small, \
+-       retry to make.
+-#endif
+-
+-#else
+-
+-#if   HAS_FRIBIDI_TAB_CHAR_TYPE_2_I
+-#include "fribidi_tab_char_type_2.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_3_I
+-#include "fribidi_tab_char_type_3.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_4_I
+-#include "fribidi_tab_char_type_4.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_5_I
+-#include "fribidi_tab_char_type_5.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_6_I
+-#include "fribidi_tab_char_type_6.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_7_I
+-#include "fribidi_tab_char_type_7.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_8_I
+-#include "fribidi_tab_char_type_8.i"
+-#elif HAS_FRIBIDI_TAB_CHAR_TYPE_9_I
+-#include "fribidi_tab_char_type_9.i"
+-#else
+-#error You have no fribidi_tab_char_type_*.i file, please first make one by \
+-       make fribidi_tab_char_type_n.i which n is the compress level, a digit \
+-       between 2 and 9, or simply run make fribidi_tab_char_type_large, \
+-       retry to make.
+-#endif
+-
+-#endif
+diff -bu /usr/src/fribidi/fribidi_tab_char_type_2.i mini-fribidi/fribidi_tab_char_type_2.i
+--- /usr/src/fribidi/fribidi_tab_char_type_2.i	2003-05-28 02:53:09.000000000 -0400
++++ mini-fribidi/fribidi_tab_char_type_2.i	2003-07-14 18:06:21.000000000 -0400
+@@ -6,7 +6,8 @@
+ #ifndef FRIBIDI_TAB_CHAR_TYPE_2_I
+ #define FRIBIDI_TAB_CHAR_TYPE_2_I
  
--FriBidiPropCharType FriBidiPropertyBlock1600[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock1600[256] = {
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -352,7 +350,7 @@
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
+-#include "fribidi.h"
++#include <glib.h>
++#include "fribidi_types.h"
  
--FriBidiPropCharType FriBidiPropertyBlock1700[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock1700[256] = {
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -371,7 +369,7 @@
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
- };
+ #define LTR FRIBIDI_PROP_TYPE_LTR
+ #define RTL FRIBIDI_PROP_TYPE_RTL
+@@ -28,9 +29,6 @@
+ #define SS FRIBIDI_PROP_TYPE_SS
+ #define WS FRIBIDI_PROP_TYPE_WS
  
--FriBidiPropCharType FriBidiPropertyBlock1800[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock1800[256] = {
-   ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,BN ,BN ,BN ,BN ,BN ,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -390,7 +388,7 @@
-   NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
- };
+-#define PACKTAB_UINT8 fribidi_uint8
+-#define PACKTAB_UINT16 fribidi_uint16
+-#define PACKTAB_UINT32 fribidi_uint32
+ /*
+   Automatically generated by packtab.c version 2
  
--FriBidiPropCharType FriBidiPropertyBlock1f00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock1f00[256] = {
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+@@ -827,7 +825,7 @@
    LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -409,7 +407,7 @@
-   ON ,ON ,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,ON ,ON ,ON ,
  };
  
--FriBidiPropCharType FriBidiPropertyBlock2000[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock2000[256] = {
-   WS ,WS ,WS ,WS ,WS ,WS ,WS ,WS ,WS ,WS ,WS ,BN ,BN ,BN ,LTR,RTL,
-   ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
-   ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,WS ,BS ,LRE,RLE,PDF,LRO,RLO,WS ,
-@@ -428,7 +426,7 @@
-   NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
- };
+-static const PACKTAB_UINT16 FriBidiPropertyBlockLevel0[4352*1] = {
++static const guint16 FriBidiPropertyBlockLevel0[4352*1] = {
  
--FriBidiPropCharType FriBidiPropertyBlock2100[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock2100[256] = {
-   ON ,ON ,LTR,ON ,ON ,ON ,ON ,LTR,ON ,ON ,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,ON ,LTR,ON ,ON ,ON ,LTR,LTR,LTR,LTR,LTR,ON ,ON ,
-   ON ,ON ,ON ,ON ,LTR,ON ,LTR,ON ,LTR,ON ,LTR,LTR,LTR,LTR,ET ,LTR,
-@@ -447,7 +445,7 @@
-   ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
- };
- 
--FriBidiPropCharType FriBidiPropertyBlock2200[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock2200[256] = {
-   ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
-   ON ,ON ,ET ,ET ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
-   ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
-@@ -466,7 +464,7 @@
-   ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
- };
- 
--FriBidiPropCharType FriBidiPropertyBlock2300[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock2300[256] = {
-   ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
-   ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
-   ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
-@@ -485,7 +483,7 @@
-   ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
- };
- 
--FriBidiPropCharType FriBidiPropertyBlock2400[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock2400[256] = {
-   ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
-   ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
-   ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
-@@ -504,7 +502,7 @@
-   EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,
- };
+ #define FriBidiPropertyBlockLevel0_0000 0x0
  
--FriBidiPropCharType FriBidiPropertyBlock2500[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock2500[256] = {
-   ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
-   ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
-   ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
-@@ -523,7 +521,7 @@
-   ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
- };
- 
--FriBidiPropCharType FriBidiPropertyBlock3000[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlock3000[256] = {
-   WS ,ON ,ON ,ON ,ON ,LTR,LTR,LTR,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
-   ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
-   ON ,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,NSM,NSM,NSM,
-@@ -542,7 +540,7 @@
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,ON ,LTR,LTR,LTR,LTR,
- };
- 
--FriBidiPropCharType FriBidiPropertyBlocka400[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlocka400[256] = {
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -561,7 +559,7 @@
-   ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,ON ,
- };
- 
--FriBidiPropCharType FriBidiPropertyBlockfb00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlockfb00[256] = {
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-   LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,RTL,NSM,RTL,
-   RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,ET ,RTL,RTL,RTL,RTL,RTL,RTL,
-@@ -580,7 +578,7 @@
-   AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
- };
- 
--FriBidiPropCharType FriBidiPropertyBlockfc00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlockfc00[256] = {
-   AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
-   AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
-   AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
-@@ -599,7 +597,7 @@
-   AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
- };
+@@ -5210,14 +5208,15 @@
+ #undef AL
+ #undef RTL
+ #undef LTR
++
+ /*======================================================================
+- *  fribidi_get_type_internal() returns the bidi type of a character.
++ *  _pango_fribidi_get_type_internal() returns the bidi type of a character.
+  *----------------------------------------------------------------------*/
+-FRIBIDI_API FriBidiCharType
+-fribidi_get_type_internal (FriBidiChar uch)
++FriBidiCharType
++_pango_fribidi_get_type_internal (FriBidiChar uch)
+ {
+   if (uch < 0x110000)
+-    return fribidi_prop_to_type[(unsigned char)FRIBIDI_GET_TYPE (uch)];
++    return _pango_fribidi_prop_to_type[(unsigned char)FRIBIDI_GET_TYPE (uch)];
+   else
+     return FRIBIDI_TYPE_LTR;
+   /* Non-Unicode chars */
+diff -bu /usr/src/fribidi/fribidi_types.c mini-fribidi/fribidi_types.c
+--- /usr/src/fribidi/fribidi_types.c	2003-07-13 22:22:56.000000000 -0400
++++ mini-fribidi/fribidi_types.c	2003-07-14 18:06:21.000000000 -0400
+@@ -19,10 +19,8 @@
+  * For licensing issues, contact <fwpg@sharif.edu>. 
+  */
  
--FriBidiPropCharType FriBidiPropertyBlockfd00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlockfd00[256] = {
-   AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
-   AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
-   AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
-@@ -618,7 +616,7 @@
-   AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,
- };
+-#ifdef HAVE_CONFIG_H
+-#include <config.h>
+-#endif
+-#include "fribidi.h"
++#include <glib.h>
++#include "fribidi_types.h"
  
--FriBidiPropCharType FriBidiPropertyBlockfe00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlockfe00[256] = {
-   NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
-   NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
-   NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
-@@ -637,7 +635,7 @@
-   AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,AL ,BN ,
- };
+ #ifdef DEBUG
  
--FriBidiPropCharType FriBidiPropertyBlockff00[256] = {
-+static FriBidiPropCharType FriBidiPropertyBlockff00[256] = {
-   ON ,ON ,ON ,ET ,ET ,ET ,ON ,ON ,ON ,ON ,ON ,ET ,CS ,ET ,CS ,ES ,
-   EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,EN ,CS ,ON ,ON ,ON ,ON ,ON ,
-   ON ,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
-@@ -658,7 +656,7 @@
- 
- /* 33 blocks defined */
- 
--FriBidiPropCharType *FriBidiPropertyBlocks[256] = {
-+static FriBidiPropCharType *FriBidiPropertyBlocks[256] = {
-   FriBidiPropertyBlock0000,
-   FriBidiPropertyBlock0100,
-   FriBidiPropertyBlock0200,
-@@ -954,7 +952,7 @@
- //  of the display engine to actually mirror these.
- //----------------------------------------------------------------------*/
- 
--struct {
-+static struct {
-      FriBidiChar ch, mirrored_ch;
- } FriBidiMirroredChars[] = {
-   {0x0028, 0x0029},
-@@ -1099,7 +1097,7 @@
-   {0x301B, 0x301A}
- };
+diff -bu /usr/src/fribidi/fribidi_types.h mini-fribidi/fribidi_types.h
+--- /usr/src/fribidi/fribidi_types.h	2002-08-07 08:02:52.000000000 -0400
++++ mini-fribidi/fribidi_types.h	2003-07-14 18:06:22.000000000 -0400
+@@ -23,37 +23,15 @@
+ #ifndef FRIBIDI_TYPES_H
+ #define FRIBIDI_TYPES_H
  
--gint nFriBidiMirroredChars = 140;
-+static gint nFriBidiMirroredChars = 140;
+-#include "fribidi_config.h"
++#include <glib.h>
  
+-#ifdef __cplusplus
+-extern "C"
+-{
+-#endif
+-
+-#define FRIBIDI_INT8	char
+-#define FRIBIDI_INT16	short
+-#define FRIBIDI_INT32	long
+-#define FRIBIDI_INT	int
+-
+-  typedef int fribidi_boolean;
+-
+-  typedef signed FRIBIDI_INT8 fribidi_int8;
+-  typedef unsigned FRIBIDI_INT8 fribidi_uint8;
+-  typedef signed FRIBIDI_INT16 fribidi_int16;
+-  typedef unsigned FRIBIDI_INT16 fribidi_uint16;
+-  typedef signed FRIBIDI_INT32 fribidi_int32;
+-  typedef unsigned FRIBIDI_INT32 fribidi_uint32;
+-  typedef signed FRIBIDI_INT fribidi_int;
+-  typedef unsigned FRIBIDI_INT fribidi_uint;
+-
+-
+-  typedef fribidi_int8 FriBidiLevel;
+-  typedef fribidi_uint32 FriBidiChar;
+-  typedef fribidi_int FriBidiStrIndex;
+-  typedef fribidi_int32 FriBidiMaskType;
++  typedef gint8 FriBidiLevel;
++  typedef gunichar FriBidiChar;
++  typedef gint FriBidiStrIndex;
++  typedef gint32 FriBidiMaskType;
+   typedef FriBidiMaskType FriBidiCharType;
+ 
+-  char *fribidi_type_name (FriBidiCharType c);
++  gchar *fribidi_type_name (FriBidiCharType c);
+ 
+ /* The following type is used by fribidi_utils */
+   typedef struct
+@@ -291,10 +269,9 @@
+ 	(FRIBIDI_IS_OVERRIDE(p) ? FRIBIDI_LEVEL_TO_DIR(FRIBIDI_DIR_TO_LEVEL(p)) \
+ 				: FRIBIDI_TYPE_ON)
+ 
+-
+ /*
+  * Define character types that char_type_tables use.
+- * define them to be 0, 1, 2, ... and then in fribidi_get_type.c map them
++ * define them to be 0, 1, 2, ... and then in _pango_fribidi_get_type.c map them
+  * to FriBidiCharTypes.
+  */
+   typedef char FriBidiPropCharType;
+@@ -308,10 +285,12 @@
+   };
+ 
+ /* Map fribidi_prop_types to fribidi_types */
+-  extern FriBidiCharType *fribidi_prop_to_type;
++  extern FriBidiCharType *_pango_fribidi_prop_to_type;
  
- /* *INDENT-ON* */
---- /home/otaylor/cvs/fribidi/fribidi_types.h	Thu Oct 18 14:42:36 2001
-+++ fribidi_types.h	Mon Apr 16 18:42:34 2001
-@@ -279,4 +279,6 @@
- #define FRIBIDI_MAX_STRING_LENGTH 65535
- #endif
+-#ifdef	__cplusplus
+-}
+-#endif
  
-+FriBidiCharType _pango_fribidi_get_type(FriBidiChar uch);
+-#endif
++/*======================================================================
++ *  _pango_fribidi_get_type() returns bidi type of a character.
++ *----------------------------------------------------------------------*/
++  FriBidiCharType _pango_fribidi_get_type (FriBidiChar uch);
 +
- #endif
++#endif  /* #ifndef FRIBIDI_TYPES_H */
Index: pango/mini-fribidi/fribidi_char_type.c
===================================================================
RCS file: pango/mini-fribidi/fribidi_char_type.c
diff -N pango/mini-fribidi/fribidi_char_type.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ pango/mini-fribidi/fribidi_char_type.c	14 Jul 2003 22:43:49 -0000
@@ -0,0 +1,36 @@
+/* FriBidi - Library of BiDi algorithm
+ * Copyright (C) 2001,2002 Behdad Esfahbod. 
+ * 
+ * This library is free software; you can redistribute it and/or 
+ * modify it under the terms of the GNU Lesser General Public 
+ * License as published by the Free Software Foundation; either 
+ * version 2.1 of the License, or (at your option) any later version. 
+ * 
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+ * Lesser General Public License for more details. 
+ * 
+ * You should have received a copy of the GNU Lesser General Public License 
+ * along with this library, in a file named COPYING; if not, write to the 
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330, 
+ * Boston, MA 02111-1307, USA  
+ * 
+ * For licensing issues, contact <fwpg@sharif.edu>. 
+ */
+
+#include <glib.h>
+#include "fribidi_types.h"
+
+/*======================================================================
+ *  _pango_fribidi_get_type() returns the bidi type of a character.
+ *----------------------------------------------------------------------*/
+FriBidiCharType _pango_fribidi_get_type_internal (FriBidiChar uch);
+
+FriBidiCharType
+_pango_fribidi_get_type (FriBidiChar uch)
+{
+  return _pango_fribidi_get_type_internal (uch);
+}
+
+#include "fribidi_tab_char_type_2.i"
Index: pango/mini-fribidi/fribidi_tab_char_type_2.i
===================================================================
RCS file: pango/mini-fribidi/fribidi_tab_char_type_2.i
diff -N pango/mini-fribidi/fribidi_tab_char_type_2.i
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ pango/mini-fribidi/fribidi_tab_char_type_2.i	14 Jul 2003 22:44:11 -0000
@@ -0,0 +1,5226 @@
+/*
+  This file was automatically created from UnicodeData.txt version 3.2.0
+  by fribidi_create_char_types
+*/
+
+#ifndef FRIBIDI_TAB_CHAR_TYPE_2_I
+#define FRIBIDI_TAB_CHAR_TYPE_2_I
+
+#include <glib.h>
+#include "fribidi_types.h"
+
+#define LTR FRIBIDI_PROP_TYPE_LTR
+#define RTL FRIBIDI_PROP_TYPE_RTL
+#define AL FRIBIDI_PROP_TYPE_AL
+#define ON FRIBIDI_PROP_TYPE_ON
+#define BN FRIBIDI_PROP_TYPE_BN
+#define AN FRIBIDI_PROP_TYPE_AN
+#define BS FRIBIDI_PROP_TYPE_BS
+#define CS FRIBIDI_PROP_TYPE_CS
+#define EN FRIBIDI_PROP_TYPE_EN
+#define ES FRIBIDI_PROP_TYPE_ES
+#define ET FRIBIDI_PROP_TYPE_ET
+#define LRE FRIBIDI_PROP_TYPE_LRE
+#define LRO FRIBIDI_PROP_TYPE_LRO
+#define NSM FRIBIDI_PROP_TYPE_NSM
+#define PDF FRIBIDI_PROP_TYPE_PDF
+#define RLE FRIBIDI_PROP_TYPE_RLE
+#define RLO FRIBIDI_PROP_TYPE_RLO
+#define SS FRIBIDI_PROP_TYPE_SS
+#define WS FRIBIDI_PROP_TYPE_WS
+
+/*
+  Automatically generated by packtab.c version 2
+
+  just use FRIBIDI_GET_TYPE(key)
+
+  assumed sizeof(FriBidiPropCharType) == 1
+  required memory: 19200
+  lookups: 2
+  partition shape: FriBidiPropertyBlock[4352][256]
+  different table entries: 1 41
+*/
+
+/* *INDENT-OFF* */
+
+static const FriBidiPropCharType FriBidiPropertyBlockLevel1[256*41] = {
+
+#define FriBidiPropertyBlockLevel1_0000 0x0
+
+   BN, BN, BN, BN, BN, BN, BN, BN, BN, SS, BS, SS, WS, BS, BN, BN,
+   BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BS, BS, BS, SS,
+   WS, ON, ON, ET, ET, ET, ON, ON, ON, ON, ON, ET, CS, ET, CS, ES,
+   EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, CS, ON, ON, ON, ON, ON,
+   ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON, ON, ON,
+   ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON, ON, BN,
+   BN, BN, BN, BN, BN, BS, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,
+   BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,
+   CS, ON, ET, ET, ET, ET, ON, ON, ON, ON,LTR, ON, ON, ON, ON, ON,
+   ET, ET, EN, EN, ON,LTR, ON, ON, ON, EN,LTR, ON, ON, ON, ON, ON,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0100 0x100
+
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0200 0x200
+
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+  LTR,LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+  LTR,LTR,LTR,LTR,LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0300 0x300
+
+  NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+  NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+  NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+  NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+  NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+  LTR,LTR,LTR,LTR, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON,LTR,
+  LTR,LTR,LTR,LTR, ON, ON,LTR, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0400 0x400
+
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,NSM,NSM,NSM,NSM,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0500 0x500
+
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON,LTR,LTR,LTR,LTR,LTR,
+  RTL,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+  NSM,NSM,RTL,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+  NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,RTL,NSM,NSM,NSM,RTL,NSM,
+  RTL,NSM,NSM,RTL,NSM,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,
+  RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,
+  RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,
+  RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,
+
+#define FriBidiPropertyBlockLevel1_0600 0x600
+
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, CS, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,NSM,NSM,NSM,NSM,NSM,
+  NSM,NSM,NSM,NSM,NSM,NSM, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AN, AN, AN, AN, AN, AN, AN, AN, AN, AN, ET, AN, AN, AL, AL, AL,
+  NSM, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL,NSM,NSM,NSM,NSM,NSM,NSM,NSM, AL,NSM,NSM,
+  NSM,NSM,NSM,NSM,NSM, AL, AL,NSM,NSM, ON,NSM,NSM,NSM,NSM, AL, AL,
+   EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, AL, AL, AL, AL, AL, AL,
+
+#define FriBidiPropertyBlockLevel1_0700 0x700
+
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, BN,
+   AL,NSM, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+  NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+  NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+  NSM, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0900 0x800
+
+  LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,LTR,
+  LTR,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR,NSM,LTR,LTR,
+  LTR,NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,LTR,
+  LTR,NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR, ET, ET,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0A00 0x900
+
+  LTR,LTR,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,LTR,
+  LTR,NSM,NSM,LTR,LTR,LTR,LTR,NSM,NSM,LTR,LTR,NSM,NSM,NSM,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,LTR,
+  LTR,NSM,NSM,NSM,NSM,NSM,LTR,NSM,NSM,LTR,LTR,LTR,LTR,NSM,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0B00 0xA00
+
+  LTR,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,NSM,
+  LTR,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0C00 0xB00
+
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,
+  NSM,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,LTR,NSM,NSM,NSM,NSM,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,
+  LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,LTR,LTR,LTR,NSM,NSM,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0D00 0xC00
+
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,NSM,NSM,NSM,LTR,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0E00 0xD00
+
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,NSM,LTR,LTR,NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR, ET,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,NSM,LTR,LTR,NSM,NSM,NSM,NSM,NSM,NSM,LTR,NSM,NSM,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,NSM,NSM,NSM,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_0F00 0xE00
+
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,NSM,LTR,NSM,LTR,NSM, ON, ON, ON, ON,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,
+  NSM,NSM,NSM,NSM,NSM,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+  NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+  NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_1000 0xF00
+
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,
+  NSM,LTR,NSM,LTR,LTR,LTR,NSM,NSM,LTR,NSM,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_1600 0x1000
+
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+   WS,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_1700 0x1100
+
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+  NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ET,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_1800 0x1200
+
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,NSM,NSM,NSM, BN,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_1F00 0x1300
+
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON,LTR, ON,
+   ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON,LTR,
+
+#define FriBidiPropertyBlockLevel1_2000 0x1400
+
+   WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, BN, BN, BN,LTR,RTL,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, WS, BS,LRE,RLE,PDF,LRO,RLO, WS,
+   ET, ET, ET, ET, ET, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON,LTR,LTR,LTR,LTR, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR, WS,
+   BN, BN, BN, BN,LTR,LTR,LTR,LTR,LTR,LTR, BN, BN, BN, BN, BN, BN,
+   EN,LTR,LTR,LTR, EN, EN, EN, EN, EN, EN, ET, ET, ON, ON, ON,LTR,
+   EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, ET, ET, ON, ON, ON,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+   ET, ET, ET, ET, ET, ET, ET, ET, ET, ET, ET, ET, ET, ET, ET, ET,
+   ET, ET,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+  NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_2100 0x1500
+
+   ON, ON,LTR, ON, ON, ON, ON,LTR, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR, ON,LTR, ON, ON, ON,LTR,LTR,LTR,LTR,LTR, ON, ON,
+   ON, ON, ON, ON,LTR, ON,LTR, ON,LTR, ON,LTR,LTR,LTR,LTR, ET,LTR,
+  LTR,LTR, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON,LTR,LTR,LTR,LTR,LTR,
+   ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR, ON, ON,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+
+#define FriBidiPropertyBlockLevel1_2200 0x1600
+
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ET, ET, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+
+#define FriBidiPropertyBlockLevel1_2300 0x1700
+
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON,LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_2400 0x1800
+
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+   EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN,
+   EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN,
+   EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN,
+   EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, EN, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,
+
+#define FriBidiPropertyBlockLevel1_2500 0x1900
+
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+
+#define FriBidiPropertyBlockLevel1_2600 0x1A00
+
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON,LTR,LTR, ON, ON,LTR, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,LTR,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_2700 0x1B00
+
+  LTR, ON, ON, ON, ON,LTR, ON, ON, ON, ON,LTR,LTR, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON,LTR, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR, ON,LTR, ON,
+   ON, ON, ON,LTR,LTR,LTR, ON,LTR, ON, ON, ON, ON, ON, ON, ON,LTR,
+  LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON,LTR,LTR,LTR, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+  LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+
+#define FriBidiPropertyBlockLevel1_2E00 0x1C00
+
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_2F00 0x1D00
+
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_3000 0x1E00
+
+   WS, ON, ON, ON, ON,LTR,LTR,LTR, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,NSM,NSM,NSM,
+   ON,LTR,LTR,LTR,LTR,LTR, ON, ON,LTR,LTR,LTR,LTR,LTR, ON, ON, ON,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM, ON, ON,LTR,LTR,LTR,
+   ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_3200 0x1F00
+
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_A400 0x2000
+
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_FB00 0x2100
+
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,RTL,NSM,RTL,
+  RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL, ET,RTL,RTL,RTL,RTL,RTL,RTL,
+  RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,
+  RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,RTL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+
+#define FriBidiPropertyBlockLevel1_FC00 0x2200
+
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+
+#define FriBidiPropertyBlockLevel1_FD00 0x2300
+
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, ON, ON,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+
+#define FriBidiPropertyBlockLevel1_FE00 0x2400
+
+  NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,NSM,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+   ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON, ON,LTR,LTR, ON, ON, ON, ON, ON, ON, ON,
+   CS, ON, CS,LTR, ON, CS, ON, ON, ON, ON, ON, ON, ON, ON, ON, ET,
+   ON, ON, ET, ET, ON, ON, ON,LTR, ON, ET, ET, ON,LTR,LTR,LTR,LTR,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
+   AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, BN,
+
+#define FriBidiPropertyBlockLevel1_FF00 0x2500
+
+  LTR, ON, ON, ET, ET, ET, ON, ON, ON, ON, ON, ET, CS, ET, CS, ES,
+   EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, CS, ON, ON, ON, ON, ON,
+   ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON, ON, ON,
+   ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, ON, ON, ON, ON, ON,
+   ON, ON, ON, ON, ON, ON,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+   ET, ET, ON, ON, ON, ET, ET,LTR, ON, ON, ON, ON, ON, ON, ON,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, BN, BN, BN, ON, ON,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_1D100 0x2600
+
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR, BN, BN, BN, BN, BN, BN, BN, BN,NSM,NSM,NSM,NSM,NSM,
+  NSM,NSM,NSM,LTR,LTR,NSM,NSM,NSM,NSM,NSM,NSM,NSM,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,NSM,NSM,NSM,NSM,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+
+#define FriBidiPropertyBlockLevel1_1D700 0x2700
+
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR, EN, EN,
+   EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN,
+   EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN,
+   EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, EN,
+
+#define FriBidiPropertyBlockLevel1_E0000 0x2800
+
+  LTR, BN,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+   BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,
+   BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,
+   BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,
+   BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,
+   BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,
+   BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+  LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,LTR,
+};
+
+static const guint16 FriBidiPropertyBlockLevel0[4352*1] = {
+
+#define FriBidiPropertyBlockLevel0_0000 0x0
+
+  FriBidiPropertyBlockLevel1_0000,  /* 0000..00FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 0100..01FF */
+  FriBidiPropertyBlockLevel1_0200,  /* 0200..02FF */
+  FriBidiPropertyBlockLevel1_0300,  /* 0300..03FF */
+  FriBidiPropertyBlockLevel1_0400,  /* 0400..04FF */
+  FriBidiPropertyBlockLevel1_0500,  /* 0500..05FF */
+  FriBidiPropertyBlockLevel1_0600,  /* 0600..06FF */
+  FriBidiPropertyBlockLevel1_0700,  /* 0700..07FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 0800..08FF */
+  FriBidiPropertyBlockLevel1_0900,  /* 0900..09FF */
+  FriBidiPropertyBlockLevel1_0A00,  /* 0A00..0AFF */
+  FriBidiPropertyBlockLevel1_0B00,  /* 0B00..0BFF */
+  FriBidiPropertyBlockLevel1_0C00,  /* 0C00..0CFF */
+  FriBidiPropertyBlockLevel1_0D00,  /* 0D00..0DFF */
+  FriBidiPropertyBlockLevel1_0E00,  /* 0E00..0EFF */
+  FriBidiPropertyBlockLevel1_0F00,  /* 0F00..0FFF */
+  FriBidiPropertyBlockLevel1_1000,  /* 1000..10FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1100..11FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1200..12FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1300..13FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1400..14FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1500..15FF */
+  FriBidiPropertyBlockLevel1_1600,  /* 1600..16FF */
+  FriBidiPropertyBlockLevel1_1700,  /* 1700..17FF */
+  FriBidiPropertyBlockLevel1_1800,  /* 1800..18FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1900..19FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1A00..1AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1B00..1BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1C00..1CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1D00..1DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1E00..1EFF */
+  FriBidiPropertyBlockLevel1_1F00,  /* 1F00..1FFF */
+  FriBidiPropertyBlockLevel1_2000,  /* 2000..20FF */
+  FriBidiPropertyBlockLevel1_2100,  /* 2100..21FF */
+  FriBidiPropertyBlockLevel1_2200,  /* 2200..22FF */
+  FriBidiPropertyBlockLevel1_2300,  /* 2300..23FF */
+  FriBidiPropertyBlockLevel1_2400,  /* 2400..24FF */
+  FriBidiPropertyBlockLevel1_2500,  /* 2500..25FF */
+  FriBidiPropertyBlockLevel1_2600,  /* 2600..26FF */
+  FriBidiPropertyBlockLevel1_2700,  /* 2700..27FF */
+  FriBidiPropertyBlockLevel1_2500,  /* 2800..28FF */
+  FriBidiPropertyBlockLevel1_2500,  /* 2900..29FF */
+  FriBidiPropertyBlockLevel1_2500,  /* 2A00..2AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2B00..2BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2C00..2CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2D00..2DFF */
+  FriBidiPropertyBlockLevel1_2E00,  /* 2E00..2EFF */
+  FriBidiPropertyBlockLevel1_2F00,  /* 2F00..2FFF */
+  FriBidiPropertyBlockLevel1_3000,  /* 3000..30FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3100..31FF */
+  FriBidiPropertyBlockLevel1_3200,  /* 3200..32FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3300..33FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3400..34FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3500..35FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3600..36FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3700..37FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3800..38FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3900..39FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3A00..3AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3B00..3BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3C00..3CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3D00..3DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3E00..3EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3F00..3FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4000..40FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4100..41FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4200..42FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4300..43FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4400..44FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4500..45FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4600..46FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4700..47FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4800..48FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4900..49FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4A00..4AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4B00..4BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4C00..4CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4D00..4DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4E00..4EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4F00..4FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5000..50FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5100..51FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5200..52FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5300..53FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5400..54FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5500..55FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5600..56FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5700..57FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5800..58FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5900..59FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5A00..5AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5B00..5BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5C00..5CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5D00..5DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5E00..5EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5F00..5FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6000..60FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6100..61FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6200..62FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6300..63FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6400..64FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6500..65FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6600..66FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6700..67FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6800..68FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6900..69FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6A00..6AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6B00..6BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6C00..6CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6D00..6DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6E00..6EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6F00..6FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7000..70FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7100..71FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7200..72FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7300..73FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7400..74FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7500..75FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7600..76FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7700..77FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7800..78FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7900..79FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7A00..7AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7B00..7BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7C00..7CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7D00..7DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7E00..7EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7F00..7FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8000..80FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8100..81FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8200..82FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8300..83FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8400..84FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8500..85FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8600..86FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8700..87FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8800..88FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8900..89FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8A00..8AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8B00..8BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8C00..8CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8D00..8DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8E00..8EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8F00..8FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9000..90FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9100..91FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9200..92FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9300..93FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9400..94FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9500..95FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9600..96FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9700..97FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9800..98FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9900..99FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9A00..9AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9B00..9BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9C00..9CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9D00..9DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9E00..9EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9F00..9FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A000..A0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A100..A1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A200..A2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A300..A3FF */
+  FriBidiPropertyBlockLevel1_A400,  /* A400..A4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A500..A5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A600..A6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A700..A7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A800..A8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A900..A9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AA00..AAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AB00..ABFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AC00..ACFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AD00..ADFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AE00..AEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AF00..AFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B000..B0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B100..B1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B200..B2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B300..B3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B400..B4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B500..B5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B600..B6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B700..B7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B800..B8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B900..B9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BA00..BAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BB00..BBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BC00..BCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BD00..BDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BE00..BEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BF00..BFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C000..C0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C100..C1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C200..C2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C300..C3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C400..C4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C500..C5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C600..C6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C700..C7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C800..C8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C900..C9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CA00..CAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CB00..CBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CC00..CCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CD00..CDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CE00..CEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CF00..CFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D000..D0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D100..D1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D200..D2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D300..D3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D400..D4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D500..D5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D600..D6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D700..D7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D800..D8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D900..D9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DA00..DAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DB00..DBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DC00..DCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DD00..DDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DE00..DEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DF00..DFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E000..E0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E100..E1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E200..E2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E300..E3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E400..E4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E500..E5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E600..E6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E700..E7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E800..E8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E900..E9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EA00..EAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EB00..EBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EC00..ECFF */
+  FriBidiPropertyBlockLevel1_0100,  /* ED00..EDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EE00..EEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EF00..EFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F000..F0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F100..F1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F200..F2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F300..F3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F400..F4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F500..F5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F600..F6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F700..F7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F800..F8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F900..F9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FA00..FAFF */
+  FriBidiPropertyBlockLevel1_FB00,  /* FB00..FBFF */
+  FriBidiPropertyBlockLevel1_FC00,  /* FC00..FCFF */
+  FriBidiPropertyBlockLevel1_FD00,  /* FD00..FDFF */
+  FriBidiPropertyBlockLevel1_FE00,  /* FE00..FEFF */
+  FriBidiPropertyBlockLevel1_FF00,  /* FF00..FFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10000..100FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10100..101FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10200..102FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10300..103FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10400..104FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10500..105FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10600..106FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10700..107FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10800..108FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10900..109FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10A00..10AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10B00..10BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10C00..10CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10D00..10DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10E00..10EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10F00..10FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 11000..110FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 11100..111FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 11200..112FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 11300..113FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 11400..114FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 11500..115FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 11600..116FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 11700..117FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 11800..118FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 11900..119FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 11A00..11AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 11B00..11BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 11C00..11CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 11D00..11DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 11E00..11EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 11F00..11FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 12000..120FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 12100..121FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 12200..122FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 12300..123FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 12400..124FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 12500..125FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 12600..126FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 12700..127FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 12800..128FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 12900..129FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 12A00..12AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 12B00..12BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 12C00..12CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 12D00..12DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 12E00..12EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 12F00..12FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 13000..130FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 13100..131FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 13200..132FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 13300..133FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 13400..134FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 13500..135FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 13600..136FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 13700..137FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 13800..138FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 13900..139FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 13A00..13AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 13B00..13BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 13C00..13CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 13D00..13DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 13E00..13EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 13F00..13FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 14000..140FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 14100..141FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 14200..142FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 14300..143FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 14400..144FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 14500..145FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 14600..146FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 14700..147FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 14800..148FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 14900..149FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 14A00..14AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 14B00..14BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 14C00..14CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 14D00..14DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 14E00..14EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 14F00..14FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 15000..150FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 15100..151FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 15200..152FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 15300..153FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 15400..154FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 15500..155FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 15600..156FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 15700..157FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 15800..158FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 15900..159FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 15A00..15AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 15B00..15BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 15C00..15CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 15D00..15DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 15E00..15EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 15F00..15FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 16000..160FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 16100..161FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 16200..162FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 16300..163FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 16400..164FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 16500..165FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 16600..166FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 16700..167FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 16800..168FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 16900..169FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 16A00..16AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 16B00..16BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 16C00..16CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 16D00..16DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 16E00..16EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 16F00..16FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 17000..170FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 17100..171FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 17200..172FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 17300..173FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 17400..174FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 17500..175FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 17600..176FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 17700..177FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 17800..178FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 17900..179FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 17A00..17AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 17B00..17BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 17C00..17CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 17D00..17DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 17E00..17EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 17F00..17FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 18000..180FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 18100..181FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 18200..182FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 18300..183FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 18400..184FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 18500..185FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 18600..186FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 18700..187FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 18800..188FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 18900..189FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 18A00..18AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 18B00..18BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 18C00..18CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 18D00..18DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 18E00..18EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 18F00..18FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 19000..190FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 19100..191FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 19200..192FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 19300..193FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 19400..194FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 19500..195FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 19600..196FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 19700..197FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 19800..198FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 19900..199FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 19A00..19AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 19B00..19BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 19C00..19CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 19D00..19DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 19E00..19EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 19F00..19FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1A000..1A0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1A100..1A1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1A200..1A2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1A300..1A3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1A400..1A4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1A500..1A5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1A600..1A6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1A700..1A7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1A800..1A8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1A900..1A9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1AA00..1AAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1AB00..1ABFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1AC00..1ACFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1AD00..1ADFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1AE00..1AEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1AF00..1AFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1B000..1B0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1B100..1B1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1B200..1B2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1B300..1B3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1B400..1B4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1B500..1B5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1B600..1B6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1B700..1B7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1B800..1B8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1B900..1B9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1BA00..1BAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1BB00..1BBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1BC00..1BCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1BD00..1BDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1BE00..1BEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1BF00..1BFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1C000..1C0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1C100..1C1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1C200..1C2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1C300..1C3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1C400..1C4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1C500..1C5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1C600..1C6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1C700..1C7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1C800..1C8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1C900..1C9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1CA00..1CAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1CB00..1CBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1CC00..1CCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1CD00..1CDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1CE00..1CEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1CF00..1CFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1D000..1D0FF */
+  FriBidiPropertyBlockLevel1_1D100,  /* 1D100..1D1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1D200..1D2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1D300..1D3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1D400..1D4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1D500..1D5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1D600..1D6FF */
+  FriBidiPropertyBlockLevel1_1D700,  /* 1D700..1D7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1D800..1D8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1D900..1D9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1DA00..1DAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1DB00..1DBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1DC00..1DCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1DD00..1DDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1DE00..1DEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1DF00..1DFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1E000..1E0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1E100..1E1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1E200..1E2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1E300..1E3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1E400..1E4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1E500..1E5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1E600..1E6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1E700..1E7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1E800..1E8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1E900..1E9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1EA00..1EAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1EB00..1EBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1EC00..1ECFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1ED00..1EDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1EE00..1EEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1EF00..1EFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1F000..1F0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1F100..1F1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1F200..1F2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1F300..1F3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1F400..1F4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1F500..1F5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1F600..1F6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1F700..1F7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1F800..1F8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1F900..1F9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1FA00..1FAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1FB00..1FBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1FC00..1FCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1FD00..1FDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1FE00..1FEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 1FF00..1FFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 20000..200FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 20100..201FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 20200..202FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 20300..203FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 20400..204FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 20500..205FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 20600..206FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 20700..207FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 20800..208FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 20900..209FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 20A00..20AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 20B00..20BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 20C00..20CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 20D00..20DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 20E00..20EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 20F00..20FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 21000..210FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 21100..211FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 21200..212FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 21300..213FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 21400..214FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 21500..215FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 21600..216FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 21700..217FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 21800..218FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 21900..219FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 21A00..21AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 21B00..21BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 21C00..21CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 21D00..21DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 21E00..21EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 21F00..21FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 22000..220FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 22100..221FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 22200..222FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 22300..223FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 22400..224FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 22500..225FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 22600..226FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 22700..227FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 22800..228FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 22900..229FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 22A00..22AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 22B00..22BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 22C00..22CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 22D00..22DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 22E00..22EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 22F00..22FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 23000..230FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 23100..231FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 23200..232FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 23300..233FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 23400..234FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 23500..235FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 23600..236FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 23700..237FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 23800..238FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 23900..239FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 23A00..23AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 23B00..23BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 23C00..23CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 23D00..23DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 23E00..23EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 23F00..23FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 24000..240FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 24100..241FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 24200..242FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 24300..243FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 24400..244FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 24500..245FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 24600..246FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 24700..247FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 24800..248FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 24900..249FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 24A00..24AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 24B00..24BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 24C00..24CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 24D00..24DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 24E00..24EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 24F00..24FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 25000..250FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 25100..251FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 25200..252FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 25300..253FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 25400..254FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 25500..255FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 25600..256FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 25700..257FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 25800..258FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 25900..259FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 25A00..25AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 25B00..25BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 25C00..25CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 25D00..25DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 25E00..25EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 25F00..25FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 26000..260FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 26100..261FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 26200..262FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 26300..263FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 26400..264FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 26500..265FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 26600..266FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 26700..267FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 26800..268FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 26900..269FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 26A00..26AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 26B00..26BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 26C00..26CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 26D00..26DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 26E00..26EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 26F00..26FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 27000..270FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 27100..271FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 27200..272FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 27300..273FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 27400..274FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 27500..275FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 27600..276FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 27700..277FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 27800..278FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 27900..279FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 27A00..27AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 27B00..27BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 27C00..27CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 27D00..27DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 27E00..27EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 27F00..27FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 28000..280FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 28100..281FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 28200..282FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 28300..283FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 28400..284FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 28500..285FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 28600..286FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 28700..287FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 28800..288FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 28900..289FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 28A00..28AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 28B00..28BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 28C00..28CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 28D00..28DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 28E00..28EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 28F00..28FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 29000..290FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 29100..291FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 29200..292FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 29300..293FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 29400..294FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 29500..295FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 29600..296FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 29700..297FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 29800..298FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 29900..299FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 29A00..29AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 29B00..29BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 29C00..29CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 29D00..29DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 29E00..29EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 29F00..29FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2A000..2A0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2A100..2A1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2A200..2A2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2A300..2A3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2A400..2A4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2A500..2A5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2A600..2A6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2A700..2A7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2A800..2A8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2A900..2A9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2AA00..2AAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2AB00..2ABFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2AC00..2ACFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2AD00..2ADFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2AE00..2AEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2AF00..2AFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2B000..2B0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2B100..2B1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2B200..2B2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2B300..2B3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2B400..2B4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2B500..2B5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2B600..2B6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2B700..2B7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2B800..2B8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2B900..2B9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2BA00..2BAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2BB00..2BBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2BC00..2BCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2BD00..2BDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2BE00..2BEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2BF00..2BFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2C000..2C0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2C100..2C1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2C200..2C2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2C300..2C3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2C400..2C4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2C500..2C5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2C600..2C6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2C700..2C7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2C800..2C8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2C900..2C9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2CA00..2CAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2CB00..2CBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2CC00..2CCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2CD00..2CDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2CE00..2CEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2CF00..2CFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2D000..2D0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2D100..2D1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2D200..2D2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2D300..2D3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2D400..2D4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2D500..2D5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2D600..2D6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2D700..2D7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2D800..2D8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2D900..2D9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2DA00..2DAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2DB00..2DBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2DC00..2DCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2DD00..2DDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2DE00..2DEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2DF00..2DFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2E000..2E0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2E100..2E1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2E200..2E2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2E300..2E3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2E400..2E4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2E500..2E5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2E600..2E6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2E700..2E7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2E800..2E8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2E900..2E9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2EA00..2EAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2EB00..2EBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2EC00..2ECFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2ED00..2EDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2EE00..2EEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2EF00..2EFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2F000..2F0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2F100..2F1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2F200..2F2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2F300..2F3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2F400..2F4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2F500..2F5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2F600..2F6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2F700..2F7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2F800..2F8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2F900..2F9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2FA00..2FAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2FB00..2FBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2FC00..2FCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2FD00..2FDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2FE00..2FEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 2FF00..2FFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 30000..300FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 30100..301FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 30200..302FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 30300..303FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 30400..304FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 30500..305FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 30600..306FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 30700..307FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 30800..308FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 30900..309FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 30A00..30AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 30B00..30BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 30C00..30CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 30D00..30DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 30E00..30EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 30F00..30FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 31000..310FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 31100..311FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 31200..312FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 31300..313FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 31400..314FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 31500..315FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 31600..316FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 31700..317FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 31800..318FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 31900..319FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 31A00..31AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 31B00..31BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 31C00..31CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 31D00..31DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 31E00..31EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 31F00..31FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 32000..320FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 32100..321FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 32200..322FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 32300..323FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 32400..324FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 32500..325FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 32600..326FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 32700..327FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 32800..328FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 32900..329FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 32A00..32AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 32B00..32BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 32C00..32CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 32D00..32DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 32E00..32EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 32F00..32FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 33000..330FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 33100..331FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 33200..332FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 33300..333FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 33400..334FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 33500..335FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 33600..336FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 33700..337FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 33800..338FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 33900..339FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 33A00..33AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 33B00..33BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 33C00..33CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 33D00..33DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 33E00..33EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 33F00..33FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 34000..340FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 34100..341FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 34200..342FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 34300..343FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 34400..344FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 34500..345FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 34600..346FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 34700..347FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 34800..348FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 34900..349FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 34A00..34AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 34B00..34BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 34C00..34CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 34D00..34DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 34E00..34EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 34F00..34FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 35000..350FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 35100..351FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 35200..352FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 35300..353FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 35400..354FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 35500..355FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 35600..356FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 35700..357FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 35800..358FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 35900..359FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 35A00..35AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 35B00..35BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 35C00..35CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 35D00..35DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 35E00..35EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 35F00..35FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 36000..360FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 36100..361FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 36200..362FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 36300..363FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 36400..364FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 36500..365FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 36600..366FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 36700..367FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 36800..368FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 36900..369FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 36A00..36AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 36B00..36BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 36C00..36CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 36D00..36DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 36E00..36EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 36F00..36FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 37000..370FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 37100..371FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 37200..372FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 37300..373FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 37400..374FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 37500..375FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 37600..376FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 37700..377FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 37800..378FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 37900..379FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 37A00..37AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 37B00..37BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 37C00..37CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 37D00..37DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 37E00..37EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 37F00..37FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 38000..380FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 38100..381FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 38200..382FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 38300..383FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 38400..384FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 38500..385FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 38600..386FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 38700..387FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 38800..388FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 38900..389FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 38A00..38AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 38B00..38BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 38C00..38CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 38D00..38DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 38E00..38EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 38F00..38FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 39000..390FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 39100..391FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 39200..392FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 39300..393FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 39400..394FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 39500..395FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 39600..396FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 39700..397FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 39800..398FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 39900..399FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 39A00..39AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 39B00..39BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 39C00..39CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 39D00..39DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 39E00..39EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 39F00..39FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3A000..3A0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3A100..3A1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3A200..3A2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3A300..3A3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3A400..3A4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3A500..3A5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3A600..3A6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3A700..3A7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3A800..3A8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3A900..3A9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3AA00..3AAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3AB00..3ABFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3AC00..3ACFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3AD00..3ADFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3AE00..3AEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3AF00..3AFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3B000..3B0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3B100..3B1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3B200..3B2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3B300..3B3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3B400..3B4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3B500..3B5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3B600..3B6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3B700..3B7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3B800..3B8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3B900..3B9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3BA00..3BAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3BB00..3BBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3BC00..3BCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3BD00..3BDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3BE00..3BEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3BF00..3BFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3C000..3C0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3C100..3C1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3C200..3C2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3C300..3C3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3C400..3C4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3C500..3C5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3C600..3C6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3C700..3C7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3C800..3C8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3C900..3C9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3CA00..3CAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3CB00..3CBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3CC00..3CCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3CD00..3CDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3CE00..3CEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3CF00..3CFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3D000..3D0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3D100..3D1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3D200..3D2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3D300..3D3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3D400..3D4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3D500..3D5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3D600..3D6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3D700..3D7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3D800..3D8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3D900..3D9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3DA00..3DAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3DB00..3DBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3DC00..3DCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3DD00..3DDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3DE00..3DEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3DF00..3DFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3E000..3E0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3E100..3E1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3E200..3E2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3E300..3E3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3E400..3E4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3E500..3E5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3E600..3E6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3E700..3E7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3E800..3E8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3E900..3E9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3EA00..3EAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3EB00..3EBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3EC00..3ECFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3ED00..3EDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3EE00..3EEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3EF00..3EFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3F000..3F0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3F100..3F1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3F200..3F2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3F300..3F3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3F400..3F4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3F500..3F5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3F600..3F6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3F700..3F7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3F800..3F8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3F900..3F9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3FA00..3FAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3FB00..3FBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3FC00..3FCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3FD00..3FDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3FE00..3FEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 3FF00..3FFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 40000..400FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 40100..401FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 40200..402FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 40300..403FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 40400..404FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 40500..405FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 40600..406FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 40700..407FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 40800..408FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 40900..409FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 40A00..40AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 40B00..40BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 40C00..40CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 40D00..40DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 40E00..40EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 40F00..40FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 41000..410FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 41100..411FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 41200..412FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 41300..413FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 41400..414FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 41500..415FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 41600..416FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 41700..417FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 41800..418FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 41900..419FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 41A00..41AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 41B00..41BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 41C00..41CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 41D00..41DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 41E00..41EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 41F00..41FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 42000..420FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 42100..421FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 42200..422FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 42300..423FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 42400..424FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 42500..425FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 42600..426FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 42700..427FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 42800..428FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 42900..429FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 42A00..42AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 42B00..42BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 42C00..42CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 42D00..42DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 42E00..42EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 42F00..42FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 43000..430FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 43100..431FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 43200..432FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 43300..433FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 43400..434FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 43500..435FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 43600..436FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 43700..437FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 43800..438FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 43900..439FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 43A00..43AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 43B00..43BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 43C00..43CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 43D00..43DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 43E00..43EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 43F00..43FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 44000..440FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 44100..441FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 44200..442FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 44300..443FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 44400..444FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 44500..445FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 44600..446FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 44700..447FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 44800..448FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 44900..449FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 44A00..44AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 44B00..44BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 44C00..44CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 44D00..44DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 44E00..44EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 44F00..44FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 45000..450FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 45100..451FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 45200..452FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 45300..453FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 45400..454FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 45500..455FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 45600..456FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 45700..457FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 45800..458FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 45900..459FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 45A00..45AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 45B00..45BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 45C00..45CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 45D00..45DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 45E00..45EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 45F00..45FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 46000..460FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 46100..461FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 46200..462FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 46300..463FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 46400..464FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 46500..465FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 46600..466FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 46700..467FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 46800..468FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 46900..469FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 46A00..46AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 46B00..46BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 46C00..46CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 46D00..46DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 46E00..46EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 46F00..46FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 47000..470FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 47100..471FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 47200..472FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 47300..473FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 47400..474FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 47500..475FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 47600..476FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 47700..477FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 47800..478FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 47900..479FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 47A00..47AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 47B00..47BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 47C00..47CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 47D00..47DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 47E00..47EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 47F00..47FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 48000..480FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 48100..481FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 48200..482FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 48300..483FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 48400..484FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 48500..485FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 48600..486FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 48700..487FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 48800..488FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 48900..489FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 48A00..48AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 48B00..48BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 48C00..48CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 48D00..48DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 48E00..48EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 48F00..48FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 49000..490FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 49100..491FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 49200..492FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 49300..493FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 49400..494FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 49500..495FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 49600..496FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 49700..497FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 49800..498FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 49900..499FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 49A00..49AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 49B00..49BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 49C00..49CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 49D00..49DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 49E00..49EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 49F00..49FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4A000..4A0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4A100..4A1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4A200..4A2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4A300..4A3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4A400..4A4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4A500..4A5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4A600..4A6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4A700..4A7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4A800..4A8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4A900..4A9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4AA00..4AAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4AB00..4ABFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4AC00..4ACFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4AD00..4ADFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4AE00..4AEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4AF00..4AFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4B000..4B0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4B100..4B1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4B200..4B2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4B300..4B3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4B400..4B4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4B500..4B5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4B600..4B6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4B700..4B7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4B800..4B8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4B900..4B9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4BA00..4BAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4BB00..4BBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4BC00..4BCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4BD00..4BDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4BE00..4BEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4BF00..4BFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4C000..4C0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4C100..4C1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4C200..4C2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4C300..4C3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4C400..4C4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4C500..4C5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4C600..4C6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4C700..4C7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4C800..4C8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4C900..4C9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4CA00..4CAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4CB00..4CBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4CC00..4CCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4CD00..4CDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4CE00..4CEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4CF00..4CFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4D000..4D0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4D100..4D1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4D200..4D2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4D300..4D3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4D400..4D4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4D500..4D5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4D600..4D6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4D700..4D7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4D800..4D8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4D900..4D9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4DA00..4DAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4DB00..4DBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4DC00..4DCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4DD00..4DDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4DE00..4DEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4DF00..4DFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4E000..4E0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4E100..4E1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4E200..4E2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4E300..4E3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4E400..4E4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4E500..4E5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4E600..4E6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4E700..4E7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4E800..4E8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4E900..4E9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4EA00..4EAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4EB00..4EBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4EC00..4ECFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4ED00..4EDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4EE00..4EEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4EF00..4EFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4F000..4F0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4F100..4F1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4F200..4F2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4F300..4F3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4F400..4F4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4F500..4F5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4F600..4F6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4F700..4F7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4F800..4F8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4F900..4F9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4FA00..4FAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4FB00..4FBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4FC00..4FCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4FD00..4FDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4FE00..4FEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 4FF00..4FFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 50000..500FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 50100..501FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 50200..502FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 50300..503FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 50400..504FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 50500..505FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 50600..506FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 50700..507FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 50800..508FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 50900..509FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 50A00..50AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 50B00..50BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 50C00..50CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 50D00..50DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 50E00..50EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 50F00..50FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 51000..510FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 51100..511FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 51200..512FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 51300..513FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 51400..514FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 51500..515FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 51600..516FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 51700..517FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 51800..518FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 51900..519FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 51A00..51AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 51B00..51BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 51C00..51CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 51D00..51DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 51E00..51EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 51F00..51FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 52000..520FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 52100..521FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 52200..522FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 52300..523FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 52400..524FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 52500..525FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 52600..526FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 52700..527FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 52800..528FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 52900..529FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 52A00..52AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 52B00..52BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 52C00..52CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 52D00..52DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 52E00..52EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 52F00..52FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 53000..530FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 53100..531FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 53200..532FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 53300..533FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 53400..534FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 53500..535FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 53600..536FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 53700..537FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 53800..538FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 53900..539FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 53A00..53AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 53B00..53BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 53C00..53CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 53D00..53DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 53E00..53EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 53F00..53FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 54000..540FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 54100..541FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 54200..542FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 54300..543FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 54400..544FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 54500..545FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 54600..546FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 54700..547FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 54800..548FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 54900..549FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 54A00..54AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 54B00..54BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 54C00..54CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 54D00..54DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 54E00..54EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 54F00..54FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 55000..550FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 55100..551FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 55200..552FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 55300..553FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 55400..554FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 55500..555FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 55600..556FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 55700..557FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 55800..558FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 55900..559FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 55A00..55AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 55B00..55BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 55C00..55CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 55D00..55DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 55E00..55EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 55F00..55FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 56000..560FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 56100..561FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 56200..562FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 56300..563FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 56400..564FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 56500..565FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 56600..566FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 56700..567FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 56800..568FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 56900..569FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 56A00..56AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 56B00..56BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 56C00..56CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 56D00..56DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 56E00..56EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 56F00..56FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 57000..570FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 57100..571FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 57200..572FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 57300..573FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 57400..574FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 57500..575FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 57600..576FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 57700..577FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 57800..578FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 57900..579FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 57A00..57AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 57B00..57BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 57C00..57CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 57D00..57DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 57E00..57EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 57F00..57FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 58000..580FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 58100..581FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 58200..582FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 58300..583FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 58400..584FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 58500..585FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 58600..586FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 58700..587FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 58800..588FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 58900..589FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 58A00..58AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 58B00..58BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 58C00..58CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 58D00..58DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 58E00..58EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 58F00..58FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 59000..590FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 59100..591FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 59200..592FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 59300..593FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 59400..594FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 59500..595FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 59600..596FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 59700..597FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 59800..598FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 59900..599FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 59A00..59AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 59B00..59BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 59C00..59CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 59D00..59DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 59E00..59EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 59F00..59FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5A000..5A0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5A100..5A1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5A200..5A2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5A300..5A3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5A400..5A4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5A500..5A5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5A600..5A6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5A700..5A7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5A800..5A8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5A900..5A9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5AA00..5AAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5AB00..5ABFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5AC00..5ACFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5AD00..5ADFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5AE00..5AEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5AF00..5AFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5B000..5B0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5B100..5B1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5B200..5B2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5B300..5B3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5B400..5B4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5B500..5B5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5B600..5B6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5B700..5B7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5B800..5B8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5B900..5B9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5BA00..5BAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5BB00..5BBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5BC00..5BCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5BD00..5BDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5BE00..5BEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5BF00..5BFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5C000..5C0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5C100..5C1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5C200..5C2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5C300..5C3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5C400..5C4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5C500..5C5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5C600..5C6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5C700..5C7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5C800..5C8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5C900..5C9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5CA00..5CAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5CB00..5CBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5CC00..5CCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5CD00..5CDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5CE00..5CEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5CF00..5CFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5D000..5D0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5D100..5D1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5D200..5D2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5D300..5D3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5D400..5D4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5D500..5D5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5D600..5D6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5D700..5D7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5D800..5D8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5D900..5D9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5DA00..5DAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5DB00..5DBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5DC00..5DCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5DD00..5DDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5DE00..5DEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5DF00..5DFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5E000..5E0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5E100..5E1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5E200..5E2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5E300..5E3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5E400..5E4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5E500..5E5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5E600..5E6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5E700..5E7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5E800..5E8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5E900..5E9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5EA00..5EAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5EB00..5EBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5EC00..5ECFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5ED00..5EDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5EE00..5EEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5EF00..5EFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5F000..5F0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5F100..5F1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5F200..5F2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5F300..5F3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5F400..5F4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5F500..5F5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5F600..5F6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5F700..5F7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5F800..5F8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5F900..5F9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5FA00..5FAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5FB00..5FBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5FC00..5FCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5FD00..5FDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5FE00..5FEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 5FF00..5FFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 60000..600FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 60100..601FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 60200..602FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 60300..603FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 60400..604FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 60500..605FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 60600..606FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 60700..607FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 60800..608FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 60900..609FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 60A00..60AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 60B00..60BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 60C00..60CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 60D00..60DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 60E00..60EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 60F00..60FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 61000..610FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 61100..611FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 61200..612FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 61300..613FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 61400..614FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 61500..615FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 61600..616FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 61700..617FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 61800..618FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 61900..619FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 61A00..61AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 61B00..61BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 61C00..61CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 61D00..61DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 61E00..61EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 61F00..61FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 62000..620FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 62100..621FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 62200..622FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 62300..623FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 62400..624FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 62500..625FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 62600..626FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 62700..627FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 62800..628FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 62900..629FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 62A00..62AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 62B00..62BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 62C00..62CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 62D00..62DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 62E00..62EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 62F00..62FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 63000..630FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 63100..631FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 63200..632FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 63300..633FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 63400..634FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 63500..635FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 63600..636FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 63700..637FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 63800..638FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 63900..639FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 63A00..63AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 63B00..63BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 63C00..63CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 63D00..63DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 63E00..63EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 63F00..63FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 64000..640FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 64100..641FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 64200..642FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 64300..643FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 64400..644FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 64500..645FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 64600..646FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 64700..647FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 64800..648FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 64900..649FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 64A00..64AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 64B00..64BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 64C00..64CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 64D00..64DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 64E00..64EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 64F00..64FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 65000..650FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 65100..651FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 65200..652FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 65300..653FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 65400..654FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 65500..655FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 65600..656FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 65700..657FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 65800..658FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 65900..659FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 65A00..65AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 65B00..65BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 65C00..65CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 65D00..65DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 65E00..65EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 65F00..65FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 66000..660FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 66100..661FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 66200..662FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 66300..663FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 66400..664FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 66500..665FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 66600..666FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 66700..667FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 66800..668FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 66900..669FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 66A00..66AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 66B00..66BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 66C00..66CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 66D00..66DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 66E00..66EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 66F00..66FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 67000..670FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 67100..671FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 67200..672FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 67300..673FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 67400..674FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 67500..675FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 67600..676FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 67700..677FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 67800..678FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 67900..679FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 67A00..67AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 67B00..67BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 67C00..67CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 67D00..67DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 67E00..67EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 67F00..67FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 68000..680FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 68100..681FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 68200..682FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 68300..683FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 68400..684FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 68500..685FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 68600..686FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 68700..687FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 68800..688FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 68900..689FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 68A00..68AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 68B00..68BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 68C00..68CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 68D00..68DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 68E00..68EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 68F00..68FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 69000..690FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 69100..691FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 69200..692FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 69300..693FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 69400..694FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 69500..695FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 69600..696FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 69700..697FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 69800..698FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 69900..699FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 69A00..69AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 69B00..69BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 69C00..69CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 69D00..69DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 69E00..69EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 69F00..69FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6A000..6A0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6A100..6A1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6A200..6A2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6A300..6A3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6A400..6A4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6A500..6A5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6A600..6A6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6A700..6A7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6A800..6A8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6A900..6A9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6AA00..6AAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6AB00..6ABFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6AC00..6ACFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6AD00..6ADFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6AE00..6AEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6AF00..6AFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6B000..6B0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6B100..6B1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6B200..6B2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6B300..6B3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6B400..6B4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6B500..6B5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6B600..6B6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6B700..6B7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6B800..6B8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6B900..6B9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6BA00..6BAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6BB00..6BBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6BC00..6BCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6BD00..6BDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6BE00..6BEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6BF00..6BFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6C000..6C0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6C100..6C1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6C200..6C2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6C300..6C3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6C400..6C4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6C500..6C5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6C600..6C6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6C700..6C7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6C800..6C8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6C900..6C9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6CA00..6CAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6CB00..6CBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6CC00..6CCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6CD00..6CDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6CE00..6CEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6CF00..6CFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6D000..6D0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6D100..6D1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6D200..6D2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6D300..6D3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6D400..6D4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6D500..6D5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6D600..6D6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6D700..6D7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6D800..6D8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6D900..6D9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6DA00..6DAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6DB00..6DBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6DC00..6DCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6DD00..6DDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6DE00..6DEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6DF00..6DFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6E000..6E0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6E100..6E1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6E200..6E2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6E300..6E3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6E400..6E4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6E500..6E5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6E600..6E6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6E700..6E7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6E800..6E8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6E900..6E9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6EA00..6EAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6EB00..6EBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6EC00..6ECFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6ED00..6EDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6EE00..6EEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6EF00..6EFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6F000..6F0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6F100..6F1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6F200..6F2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6F300..6F3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6F400..6F4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6F500..6F5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6F600..6F6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6F700..6F7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6F800..6F8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6F900..6F9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6FA00..6FAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6FB00..6FBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6FC00..6FCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6FD00..6FDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6FE00..6FEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 6FF00..6FFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 70000..700FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 70100..701FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 70200..702FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 70300..703FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 70400..704FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 70500..705FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 70600..706FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 70700..707FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 70800..708FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 70900..709FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 70A00..70AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 70B00..70BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 70C00..70CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 70D00..70DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 70E00..70EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 70F00..70FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 71000..710FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 71100..711FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 71200..712FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 71300..713FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 71400..714FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 71500..715FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 71600..716FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 71700..717FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 71800..718FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 71900..719FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 71A00..71AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 71B00..71BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 71C00..71CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 71D00..71DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 71E00..71EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 71F00..71FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 72000..720FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 72100..721FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 72200..722FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 72300..723FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 72400..724FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 72500..725FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 72600..726FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 72700..727FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 72800..728FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 72900..729FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 72A00..72AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 72B00..72BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 72C00..72CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 72D00..72DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 72E00..72EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 72F00..72FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 73000..730FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 73100..731FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 73200..732FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 73300..733FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 73400..734FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 73500..735FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 73600..736FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 73700..737FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 73800..738FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 73900..739FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 73A00..73AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 73B00..73BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 73C00..73CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 73D00..73DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 73E00..73EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 73F00..73FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 74000..740FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 74100..741FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 74200..742FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 74300..743FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 74400..744FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 74500..745FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 74600..746FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 74700..747FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 74800..748FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 74900..749FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 74A00..74AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 74B00..74BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 74C00..74CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 74D00..74DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 74E00..74EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 74F00..74FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 75000..750FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 75100..751FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 75200..752FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 75300..753FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 75400..754FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 75500..755FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 75600..756FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 75700..757FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 75800..758FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 75900..759FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 75A00..75AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 75B00..75BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 75C00..75CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 75D00..75DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 75E00..75EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 75F00..75FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 76000..760FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 76100..761FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 76200..762FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 76300..763FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 76400..764FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 76500..765FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 76600..766FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 76700..767FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 76800..768FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 76900..769FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 76A00..76AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 76B00..76BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 76C00..76CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 76D00..76DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 76E00..76EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 76F00..76FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 77000..770FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 77100..771FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 77200..772FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 77300..773FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 77400..774FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 77500..775FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 77600..776FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 77700..777FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 77800..778FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 77900..779FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 77A00..77AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 77B00..77BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 77C00..77CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 77D00..77DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 77E00..77EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 77F00..77FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 78000..780FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 78100..781FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 78200..782FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 78300..783FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 78400..784FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 78500..785FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 78600..786FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 78700..787FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 78800..788FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 78900..789FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 78A00..78AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 78B00..78BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 78C00..78CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 78D00..78DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 78E00..78EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 78F00..78FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 79000..790FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 79100..791FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 79200..792FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 79300..793FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 79400..794FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 79500..795FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 79600..796FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 79700..797FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 79800..798FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 79900..799FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 79A00..79AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 79B00..79BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 79C00..79CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 79D00..79DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 79E00..79EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 79F00..79FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7A000..7A0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7A100..7A1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7A200..7A2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7A300..7A3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7A400..7A4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7A500..7A5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7A600..7A6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7A700..7A7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7A800..7A8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7A900..7A9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7AA00..7AAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7AB00..7ABFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7AC00..7ACFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7AD00..7ADFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7AE00..7AEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7AF00..7AFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7B000..7B0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7B100..7B1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7B200..7B2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7B300..7B3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7B400..7B4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7B500..7B5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7B600..7B6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7B700..7B7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7B800..7B8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7B900..7B9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7BA00..7BAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7BB00..7BBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7BC00..7BCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7BD00..7BDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7BE00..7BEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7BF00..7BFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7C000..7C0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7C100..7C1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7C200..7C2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7C300..7C3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7C400..7C4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7C500..7C5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7C600..7C6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7C700..7C7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7C800..7C8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7C900..7C9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7CA00..7CAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7CB00..7CBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7CC00..7CCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7CD00..7CDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7CE00..7CEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7CF00..7CFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7D000..7D0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7D100..7D1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7D200..7D2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7D300..7D3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7D400..7D4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7D500..7D5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7D600..7D6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7D700..7D7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7D800..7D8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7D900..7D9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7DA00..7DAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7DB00..7DBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7DC00..7DCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7DD00..7DDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7DE00..7DEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7DF00..7DFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7E000..7E0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7E100..7E1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7E200..7E2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7E300..7E3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7E400..7E4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7E500..7E5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7E600..7E6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7E700..7E7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7E800..7E8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7E900..7E9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7EA00..7EAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7EB00..7EBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7EC00..7ECFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7ED00..7EDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7EE00..7EEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7EF00..7EFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7F000..7F0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7F100..7F1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7F200..7F2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7F300..7F3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7F400..7F4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7F500..7F5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7F600..7F6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7F700..7F7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7F800..7F8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7F900..7F9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7FA00..7FAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7FB00..7FBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7FC00..7FCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7FD00..7FDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7FE00..7FEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 7FF00..7FFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 80000..800FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 80100..801FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 80200..802FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 80300..803FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 80400..804FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 80500..805FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 80600..806FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 80700..807FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 80800..808FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 80900..809FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 80A00..80AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 80B00..80BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 80C00..80CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 80D00..80DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 80E00..80EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 80F00..80FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 81000..810FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 81100..811FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 81200..812FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 81300..813FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 81400..814FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 81500..815FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 81600..816FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 81700..817FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 81800..818FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 81900..819FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 81A00..81AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 81B00..81BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 81C00..81CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 81D00..81DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 81E00..81EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 81F00..81FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 82000..820FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 82100..821FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 82200..822FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 82300..823FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 82400..824FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 82500..825FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 82600..826FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 82700..827FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 82800..828FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 82900..829FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 82A00..82AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 82B00..82BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 82C00..82CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 82D00..82DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 82E00..82EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 82F00..82FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 83000..830FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 83100..831FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 83200..832FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 83300..833FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 83400..834FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 83500..835FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 83600..836FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 83700..837FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 83800..838FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 83900..839FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 83A00..83AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 83B00..83BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 83C00..83CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 83D00..83DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 83E00..83EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 83F00..83FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 84000..840FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 84100..841FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 84200..842FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 84300..843FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 84400..844FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 84500..845FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 84600..846FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 84700..847FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 84800..848FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 84900..849FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 84A00..84AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 84B00..84BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 84C00..84CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 84D00..84DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 84E00..84EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 84F00..84FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 85000..850FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 85100..851FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 85200..852FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 85300..853FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 85400..854FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 85500..855FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 85600..856FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 85700..857FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 85800..858FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 85900..859FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 85A00..85AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 85B00..85BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 85C00..85CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 85D00..85DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 85E00..85EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 85F00..85FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 86000..860FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 86100..861FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 86200..862FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 86300..863FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 86400..864FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 86500..865FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 86600..866FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 86700..867FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 86800..868FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 86900..869FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 86A00..86AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 86B00..86BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 86C00..86CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 86D00..86DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 86E00..86EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 86F00..86FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 87000..870FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 87100..871FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 87200..872FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 87300..873FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 87400..874FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 87500..875FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 87600..876FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 87700..877FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 87800..878FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 87900..879FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 87A00..87AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 87B00..87BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 87C00..87CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 87D00..87DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 87E00..87EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 87F00..87FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 88000..880FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 88100..881FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 88200..882FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 88300..883FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 88400..884FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 88500..885FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 88600..886FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 88700..887FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 88800..888FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 88900..889FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 88A00..88AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 88B00..88BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 88C00..88CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 88D00..88DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 88E00..88EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 88F00..88FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 89000..890FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 89100..891FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 89200..892FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 89300..893FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 89400..894FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 89500..895FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 89600..896FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 89700..897FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 89800..898FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 89900..899FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 89A00..89AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 89B00..89BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 89C00..89CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 89D00..89DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 89E00..89EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 89F00..89FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8A000..8A0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8A100..8A1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8A200..8A2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8A300..8A3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8A400..8A4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8A500..8A5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8A600..8A6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8A700..8A7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8A800..8A8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8A900..8A9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8AA00..8AAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8AB00..8ABFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8AC00..8ACFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8AD00..8ADFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8AE00..8AEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8AF00..8AFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8B000..8B0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8B100..8B1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8B200..8B2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8B300..8B3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8B400..8B4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8B500..8B5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8B600..8B6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8B700..8B7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8B800..8B8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8B900..8B9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8BA00..8BAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8BB00..8BBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8BC00..8BCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8BD00..8BDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8BE00..8BEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8BF00..8BFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8C000..8C0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8C100..8C1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8C200..8C2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8C300..8C3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8C400..8C4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8C500..8C5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8C600..8C6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8C700..8C7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8C800..8C8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8C900..8C9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8CA00..8CAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8CB00..8CBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8CC00..8CCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8CD00..8CDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8CE00..8CEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8CF00..8CFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8D000..8D0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8D100..8D1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8D200..8D2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8D300..8D3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8D400..8D4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8D500..8D5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8D600..8D6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8D700..8D7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8D800..8D8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8D900..8D9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8DA00..8DAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8DB00..8DBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8DC00..8DCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8DD00..8DDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8DE00..8DEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8DF00..8DFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8E000..8E0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8E100..8E1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8E200..8E2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8E300..8E3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8E400..8E4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8E500..8E5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8E600..8E6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8E700..8E7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8E800..8E8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8E900..8E9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8EA00..8EAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8EB00..8EBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8EC00..8ECFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8ED00..8EDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8EE00..8EEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8EF00..8EFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8F000..8F0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8F100..8F1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8F200..8F2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8F300..8F3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8F400..8F4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8F500..8F5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8F600..8F6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8F700..8F7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8F800..8F8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8F900..8F9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8FA00..8FAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8FB00..8FBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8FC00..8FCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8FD00..8FDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8FE00..8FEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 8FF00..8FFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 90000..900FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 90100..901FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 90200..902FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 90300..903FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 90400..904FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 90500..905FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 90600..906FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 90700..907FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 90800..908FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 90900..909FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 90A00..90AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 90B00..90BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 90C00..90CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 90D00..90DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 90E00..90EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 90F00..90FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 91000..910FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 91100..911FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 91200..912FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 91300..913FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 91400..914FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 91500..915FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 91600..916FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 91700..917FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 91800..918FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 91900..919FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 91A00..91AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 91B00..91BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 91C00..91CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 91D00..91DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 91E00..91EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 91F00..91FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 92000..920FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 92100..921FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 92200..922FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 92300..923FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 92400..924FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 92500..925FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 92600..926FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 92700..927FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 92800..928FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 92900..929FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 92A00..92AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 92B00..92BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 92C00..92CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 92D00..92DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 92E00..92EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 92F00..92FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 93000..930FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 93100..931FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 93200..932FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 93300..933FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 93400..934FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 93500..935FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 93600..936FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 93700..937FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 93800..938FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 93900..939FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 93A00..93AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 93B00..93BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 93C00..93CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 93D00..93DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 93E00..93EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 93F00..93FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 94000..940FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 94100..941FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 94200..942FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 94300..943FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 94400..944FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 94500..945FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 94600..946FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 94700..947FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 94800..948FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 94900..949FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 94A00..94AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 94B00..94BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 94C00..94CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 94D00..94DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 94E00..94EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 94F00..94FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 95000..950FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 95100..951FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 95200..952FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 95300..953FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 95400..954FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 95500..955FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 95600..956FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 95700..957FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 95800..958FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 95900..959FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 95A00..95AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 95B00..95BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 95C00..95CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 95D00..95DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 95E00..95EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 95F00..95FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 96000..960FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 96100..961FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 96200..962FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 96300..963FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 96400..964FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 96500..965FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 96600..966FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 96700..967FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 96800..968FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 96900..969FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 96A00..96AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 96B00..96BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 96C00..96CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 96D00..96DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 96E00..96EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 96F00..96FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 97000..970FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 97100..971FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 97200..972FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 97300..973FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 97400..974FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 97500..975FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 97600..976FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 97700..977FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 97800..978FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 97900..979FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 97A00..97AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 97B00..97BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 97C00..97CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 97D00..97DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 97E00..97EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 97F00..97FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 98000..980FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 98100..981FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 98200..982FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 98300..983FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 98400..984FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 98500..985FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 98600..986FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 98700..987FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 98800..988FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 98900..989FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 98A00..98AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 98B00..98BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 98C00..98CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 98D00..98DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 98E00..98EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 98F00..98FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 99000..990FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 99100..991FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 99200..992FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 99300..993FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 99400..994FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 99500..995FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 99600..996FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 99700..997FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 99800..998FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 99900..999FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 99A00..99AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 99B00..99BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 99C00..99CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 99D00..99DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 99E00..99EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 99F00..99FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9A000..9A0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9A100..9A1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9A200..9A2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9A300..9A3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9A400..9A4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9A500..9A5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9A600..9A6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9A700..9A7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9A800..9A8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9A900..9A9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9AA00..9AAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9AB00..9ABFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9AC00..9ACFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9AD00..9ADFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9AE00..9AEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9AF00..9AFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9B000..9B0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9B100..9B1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9B200..9B2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9B300..9B3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9B400..9B4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9B500..9B5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9B600..9B6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9B700..9B7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9B800..9B8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9B900..9B9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9BA00..9BAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9BB00..9BBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9BC00..9BCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9BD00..9BDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9BE00..9BEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9BF00..9BFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9C000..9C0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9C100..9C1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9C200..9C2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9C300..9C3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9C400..9C4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9C500..9C5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9C600..9C6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9C700..9C7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9C800..9C8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9C900..9C9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9CA00..9CAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9CB00..9CBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9CC00..9CCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9CD00..9CDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9CE00..9CEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9CF00..9CFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9D000..9D0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9D100..9D1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9D200..9D2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9D300..9D3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9D400..9D4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9D500..9D5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9D600..9D6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9D700..9D7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9D800..9D8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9D900..9D9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9DA00..9DAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9DB00..9DBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9DC00..9DCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9DD00..9DDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9DE00..9DEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9DF00..9DFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9E000..9E0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9E100..9E1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9E200..9E2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9E300..9E3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9E400..9E4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9E500..9E5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9E600..9E6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9E700..9E7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9E800..9E8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9E900..9E9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9EA00..9EAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9EB00..9EBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9EC00..9ECFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9ED00..9EDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9EE00..9EEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9EF00..9EFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9F000..9F0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9F100..9F1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9F200..9F2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9F300..9F3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9F400..9F4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9F500..9F5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9F600..9F6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9F700..9F7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9F800..9F8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9F900..9F9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9FA00..9FAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9FB00..9FBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9FC00..9FCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9FD00..9FDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9FE00..9FEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 9FF00..9FFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A0000..A00FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A0100..A01FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A0200..A02FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A0300..A03FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A0400..A04FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A0500..A05FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A0600..A06FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A0700..A07FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A0800..A08FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A0900..A09FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A0A00..A0AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A0B00..A0BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A0C00..A0CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A0D00..A0DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A0E00..A0EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A0F00..A0FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A1000..A10FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A1100..A11FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A1200..A12FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A1300..A13FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A1400..A14FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A1500..A15FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A1600..A16FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A1700..A17FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A1800..A18FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A1900..A19FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A1A00..A1AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A1B00..A1BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A1C00..A1CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A1D00..A1DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A1E00..A1EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A1F00..A1FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A2000..A20FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A2100..A21FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A2200..A22FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A2300..A23FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A2400..A24FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A2500..A25FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A2600..A26FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A2700..A27FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A2800..A28FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A2900..A29FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A2A00..A2AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A2B00..A2BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A2C00..A2CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A2D00..A2DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A2E00..A2EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A2F00..A2FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A3000..A30FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A3100..A31FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A3200..A32FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A3300..A33FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A3400..A34FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A3500..A35FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A3600..A36FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A3700..A37FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A3800..A38FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A3900..A39FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A3A00..A3AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A3B00..A3BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A3C00..A3CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A3D00..A3DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A3E00..A3EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A3F00..A3FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A4000..A40FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A4100..A41FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A4200..A42FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A4300..A43FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A4400..A44FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A4500..A45FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A4600..A46FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A4700..A47FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A4800..A48FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A4900..A49FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A4A00..A4AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A4B00..A4BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A4C00..A4CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A4D00..A4DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A4E00..A4EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A4F00..A4FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A5000..A50FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A5100..A51FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A5200..A52FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A5300..A53FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A5400..A54FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A5500..A55FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A5600..A56FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A5700..A57FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A5800..A58FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A5900..A59FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A5A00..A5AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A5B00..A5BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A5C00..A5CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A5D00..A5DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A5E00..A5EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A5F00..A5FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A6000..A60FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A6100..A61FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A6200..A62FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A6300..A63FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A6400..A64FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A6500..A65FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A6600..A66FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A6700..A67FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A6800..A68FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A6900..A69FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A6A00..A6AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A6B00..A6BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A6C00..A6CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A6D00..A6DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A6E00..A6EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A6F00..A6FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A7000..A70FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A7100..A71FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A7200..A72FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A7300..A73FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A7400..A74FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A7500..A75FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A7600..A76FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A7700..A77FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A7800..A78FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A7900..A79FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A7A00..A7AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A7B00..A7BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A7C00..A7CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A7D00..A7DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A7E00..A7EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A7F00..A7FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A8000..A80FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A8100..A81FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A8200..A82FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A8300..A83FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A8400..A84FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A8500..A85FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A8600..A86FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A8700..A87FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A8800..A88FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A8900..A89FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A8A00..A8AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A8B00..A8BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A8C00..A8CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A8D00..A8DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A8E00..A8EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A8F00..A8FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A9000..A90FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A9100..A91FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A9200..A92FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A9300..A93FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A9400..A94FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A9500..A95FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A9600..A96FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A9700..A97FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A9800..A98FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A9900..A99FF */
+  FriBidiPropertyBlockLevel1_0100,  /* A9A00..A9AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A9B00..A9BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A9C00..A9CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A9D00..A9DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A9E00..A9EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* A9F00..A9FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AA000..AA0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AA100..AA1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AA200..AA2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AA300..AA3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AA400..AA4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AA500..AA5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AA600..AA6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AA700..AA7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AA800..AA8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AA900..AA9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AAA00..AAAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AAB00..AABFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AAC00..AACFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AAD00..AADFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AAE00..AAEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AAF00..AAFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AB000..AB0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AB100..AB1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AB200..AB2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AB300..AB3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AB400..AB4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AB500..AB5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AB600..AB6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AB700..AB7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AB800..AB8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AB900..AB9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* ABA00..ABAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* ABB00..ABBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* ABC00..ABCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* ABD00..ABDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* ABE00..ABEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* ABF00..ABFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AC000..AC0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AC100..AC1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AC200..AC2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AC300..AC3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AC400..AC4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AC500..AC5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AC600..AC6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AC700..AC7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AC800..AC8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AC900..AC9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* ACA00..ACAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* ACB00..ACBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* ACC00..ACCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* ACD00..ACDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* ACE00..ACEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* ACF00..ACFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AD000..AD0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AD100..AD1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AD200..AD2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AD300..AD3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AD400..AD4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AD500..AD5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AD600..AD6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AD700..AD7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AD800..AD8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AD900..AD9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* ADA00..ADAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* ADB00..ADBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* ADC00..ADCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* ADD00..ADDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* ADE00..ADEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* ADF00..ADFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AE000..AE0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AE100..AE1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AE200..AE2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AE300..AE3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AE400..AE4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AE500..AE5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AE600..AE6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AE700..AE7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AE800..AE8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AE900..AE9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AEA00..AEAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AEB00..AEBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AEC00..AECFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AED00..AEDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AEE00..AEEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AEF00..AEFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AF000..AF0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AF100..AF1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AF200..AF2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AF300..AF3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AF400..AF4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AF500..AF5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AF600..AF6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AF700..AF7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AF800..AF8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AF900..AF9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* AFA00..AFAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AFB00..AFBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AFC00..AFCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AFD00..AFDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AFE00..AFEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* AFF00..AFFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B0000..B00FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B0100..B01FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B0200..B02FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B0300..B03FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B0400..B04FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B0500..B05FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B0600..B06FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B0700..B07FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B0800..B08FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B0900..B09FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B0A00..B0AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B0B00..B0BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B0C00..B0CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B0D00..B0DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B0E00..B0EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B0F00..B0FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B1000..B10FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B1100..B11FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B1200..B12FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B1300..B13FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B1400..B14FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B1500..B15FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B1600..B16FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B1700..B17FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B1800..B18FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B1900..B19FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B1A00..B1AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B1B00..B1BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B1C00..B1CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B1D00..B1DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B1E00..B1EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B1F00..B1FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B2000..B20FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B2100..B21FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B2200..B22FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B2300..B23FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B2400..B24FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B2500..B25FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B2600..B26FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B2700..B27FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B2800..B28FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B2900..B29FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B2A00..B2AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B2B00..B2BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B2C00..B2CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B2D00..B2DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B2E00..B2EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B2F00..B2FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B3000..B30FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B3100..B31FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B3200..B32FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B3300..B33FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B3400..B34FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B3500..B35FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B3600..B36FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B3700..B37FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B3800..B38FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B3900..B39FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B3A00..B3AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B3B00..B3BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B3C00..B3CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B3D00..B3DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B3E00..B3EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B3F00..B3FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B4000..B40FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B4100..B41FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B4200..B42FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B4300..B43FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B4400..B44FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B4500..B45FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B4600..B46FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B4700..B47FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B4800..B48FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B4900..B49FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B4A00..B4AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B4B00..B4BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B4C00..B4CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B4D00..B4DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B4E00..B4EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B4F00..B4FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B5000..B50FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B5100..B51FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B5200..B52FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B5300..B53FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B5400..B54FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B5500..B55FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B5600..B56FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B5700..B57FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B5800..B58FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B5900..B59FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B5A00..B5AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B5B00..B5BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B5C00..B5CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B5D00..B5DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B5E00..B5EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B5F00..B5FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B6000..B60FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B6100..B61FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B6200..B62FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B6300..B63FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B6400..B64FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B6500..B65FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B6600..B66FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B6700..B67FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B6800..B68FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B6900..B69FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B6A00..B6AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B6B00..B6BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B6C00..B6CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B6D00..B6DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B6E00..B6EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B6F00..B6FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B7000..B70FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B7100..B71FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B7200..B72FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B7300..B73FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B7400..B74FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B7500..B75FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B7600..B76FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B7700..B77FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B7800..B78FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B7900..B79FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B7A00..B7AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B7B00..B7BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B7C00..B7CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B7D00..B7DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B7E00..B7EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B7F00..B7FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B8000..B80FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B8100..B81FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B8200..B82FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B8300..B83FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B8400..B84FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B8500..B85FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B8600..B86FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B8700..B87FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B8800..B88FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B8900..B89FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B8A00..B8AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B8B00..B8BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B8C00..B8CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B8D00..B8DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B8E00..B8EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B8F00..B8FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B9000..B90FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B9100..B91FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B9200..B92FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B9300..B93FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B9400..B94FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B9500..B95FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B9600..B96FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B9700..B97FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B9800..B98FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B9900..B99FF */
+  FriBidiPropertyBlockLevel1_0100,  /* B9A00..B9AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B9B00..B9BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B9C00..B9CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B9D00..B9DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B9E00..B9EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* B9F00..B9FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BA000..BA0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BA100..BA1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BA200..BA2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BA300..BA3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BA400..BA4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BA500..BA5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BA600..BA6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BA700..BA7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BA800..BA8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BA900..BA9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BAA00..BAAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BAB00..BABFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BAC00..BACFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BAD00..BADFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BAE00..BAEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BAF00..BAFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BB000..BB0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BB100..BB1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BB200..BB2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BB300..BB3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BB400..BB4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BB500..BB5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BB600..BB6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BB700..BB7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BB800..BB8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BB900..BB9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BBA00..BBAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BBB00..BBBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BBC00..BBCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BBD00..BBDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BBE00..BBEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BBF00..BBFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BC000..BC0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BC100..BC1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BC200..BC2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BC300..BC3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BC400..BC4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BC500..BC5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BC600..BC6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BC700..BC7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BC800..BC8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BC900..BC9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BCA00..BCAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BCB00..BCBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BCC00..BCCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BCD00..BCDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BCE00..BCEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BCF00..BCFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BD000..BD0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BD100..BD1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BD200..BD2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BD300..BD3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BD400..BD4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BD500..BD5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BD600..BD6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BD700..BD7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BD800..BD8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BD900..BD9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BDA00..BDAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BDB00..BDBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BDC00..BDCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BDD00..BDDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BDE00..BDEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BDF00..BDFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BE000..BE0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BE100..BE1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BE200..BE2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BE300..BE3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BE400..BE4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BE500..BE5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BE600..BE6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BE700..BE7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BE800..BE8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BE900..BE9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BEA00..BEAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BEB00..BEBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BEC00..BECFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BED00..BEDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BEE00..BEEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BEF00..BEFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BF000..BF0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BF100..BF1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BF200..BF2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BF300..BF3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BF400..BF4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BF500..BF5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BF600..BF6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BF700..BF7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BF800..BF8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BF900..BF9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* BFA00..BFAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BFB00..BFBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BFC00..BFCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BFD00..BFDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BFE00..BFEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* BFF00..BFFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C0000..C00FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C0100..C01FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C0200..C02FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C0300..C03FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C0400..C04FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C0500..C05FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C0600..C06FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C0700..C07FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C0800..C08FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C0900..C09FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C0A00..C0AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C0B00..C0BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C0C00..C0CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C0D00..C0DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C0E00..C0EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C0F00..C0FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C1000..C10FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C1100..C11FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C1200..C12FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C1300..C13FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C1400..C14FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C1500..C15FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C1600..C16FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C1700..C17FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C1800..C18FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C1900..C19FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C1A00..C1AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C1B00..C1BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C1C00..C1CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C1D00..C1DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C1E00..C1EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C1F00..C1FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C2000..C20FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C2100..C21FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C2200..C22FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C2300..C23FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C2400..C24FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C2500..C25FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C2600..C26FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C2700..C27FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C2800..C28FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C2900..C29FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C2A00..C2AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C2B00..C2BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C2C00..C2CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C2D00..C2DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C2E00..C2EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C2F00..C2FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C3000..C30FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C3100..C31FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C3200..C32FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C3300..C33FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C3400..C34FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C3500..C35FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C3600..C36FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C3700..C37FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C3800..C38FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C3900..C39FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C3A00..C3AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C3B00..C3BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C3C00..C3CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C3D00..C3DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C3E00..C3EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C3F00..C3FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C4000..C40FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C4100..C41FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C4200..C42FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C4300..C43FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C4400..C44FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C4500..C45FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C4600..C46FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C4700..C47FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C4800..C48FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C4900..C49FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C4A00..C4AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C4B00..C4BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C4C00..C4CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C4D00..C4DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C4E00..C4EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C4F00..C4FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C5000..C50FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C5100..C51FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C5200..C52FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C5300..C53FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C5400..C54FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C5500..C55FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C5600..C56FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C5700..C57FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C5800..C58FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C5900..C59FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C5A00..C5AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C5B00..C5BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C5C00..C5CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C5D00..C5DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C5E00..C5EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C5F00..C5FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C6000..C60FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C6100..C61FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C6200..C62FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C6300..C63FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C6400..C64FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C6500..C65FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C6600..C66FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C6700..C67FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C6800..C68FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C6900..C69FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C6A00..C6AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C6B00..C6BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C6C00..C6CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C6D00..C6DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C6E00..C6EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C6F00..C6FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C7000..C70FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C7100..C71FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C7200..C72FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C7300..C73FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C7400..C74FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C7500..C75FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C7600..C76FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C7700..C77FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C7800..C78FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C7900..C79FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C7A00..C7AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C7B00..C7BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C7C00..C7CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C7D00..C7DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C7E00..C7EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C7F00..C7FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C8000..C80FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C8100..C81FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C8200..C82FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C8300..C83FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C8400..C84FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C8500..C85FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C8600..C86FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C8700..C87FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C8800..C88FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C8900..C89FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C8A00..C8AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C8B00..C8BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C8C00..C8CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C8D00..C8DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C8E00..C8EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C8F00..C8FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C9000..C90FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C9100..C91FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C9200..C92FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C9300..C93FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C9400..C94FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C9500..C95FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C9600..C96FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C9700..C97FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C9800..C98FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C9900..C99FF */
+  FriBidiPropertyBlockLevel1_0100,  /* C9A00..C9AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C9B00..C9BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C9C00..C9CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C9D00..C9DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C9E00..C9EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* C9F00..C9FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CA000..CA0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CA100..CA1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CA200..CA2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CA300..CA3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CA400..CA4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CA500..CA5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CA600..CA6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CA700..CA7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CA800..CA8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CA900..CA9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CAA00..CAAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CAB00..CABFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CAC00..CACFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CAD00..CADFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CAE00..CAEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CAF00..CAFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CB000..CB0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CB100..CB1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CB200..CB2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CB300..CB3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CB400..CB4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CB500..CB5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CB600..CB6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CB700..CB7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CB800..CB8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CB900..CB9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CBA00..CBAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CBB00..CBBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CBC00..CBCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CBD00..CBDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CBE00..CBEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CBF00..CBFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CC000..CC0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CC100..CC1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CC200..CC2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CC300..CC3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CC400..CC4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CC500..CC5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CC600..CC6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CC700..CC7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CC800..CC8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CC900..CC9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CCA00..CCAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CCB00..CCBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CCC00..CCCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CCD00..CCDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CCE00..CCEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CCF00..CCFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CD000..CD0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CD100..CD1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CD200..CD2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CD300..CD3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CD400..CD4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CD500..CD5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CD600..CD6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CD700..CD7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CD800..CD8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CD900..CD9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CDA00..CDAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CDB00..CDBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CDC00..CDCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CDD00..CDDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CDE00..CDEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CDF00..CDFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CE000..CE0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CE100..CE1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CE200..CE2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CE300..CE3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CE400..CE4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CE500..CE5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CE600..CE6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CE700..CE7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CE800..CE8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CE900..CE9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CEA00..CEAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CEB00..CEBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CEC00..CECFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CED00..CEDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CEE00..CEEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CEF00..CEFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CF000..CF0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CF100..CF1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CF200..CF2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CF300..CF3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CF400..CF4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CF500..CF5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CF600..CF6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CF700..CF7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CF800..CF8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CF900..CF9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* CFA00..CFAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CFB00..CFBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CFC00..CFCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CFD00..CFDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CFE00..CFEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* CFF00..CFFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D0000..D00FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D0100..D01FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D0200..D02FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D0300..D03FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D0400..D04FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D0500..D05FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D0600..D06FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D0700..D07FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D0800..D08FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D0900..D09FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D0A00..D0AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D0B00..D0BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D0C00..D0CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D0D00..D0DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D0E00..D0EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D0F00..D0FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D1000..D10FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D1100..D11FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D1200..D12FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D1300..D13FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D1400..D14FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D1500..D15FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D1600..D16FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D1700..D17FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D1800..D18FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D1900..D19FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D1A00..D1AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D1B00..D1BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D1C00..D1CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D1D00..D1DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D1E00..D1EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D1F00..D1FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D2000..D20FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D2100..D21FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D2200..D22FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D2300..D23FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D2400..D24FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D2500..D25FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D2600..D26FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D2700..D27FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D2800..D28FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D2900..D29FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D2A00..D2AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D2B00..D2BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D2C00..D2CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D2D00..D2DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D2E00..D2EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D2F00..D2FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D3000..D30FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D3100..D31FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D3200..D32FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D3300..D33FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D3400..D34FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D3500..D35FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D3600..D36FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D3700..D37FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D3800..D38FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D3900..D39FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D3A00..D3AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D3B00..D3BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D3C00..D3CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D3D00..D3DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D3E00..D3EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D3F00..D3FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D4000..D40FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D4100..D41FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D4200..D42FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D4300..D43FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D4400..D44FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D4500..D45FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D4600..D46FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D4700..D47FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D4800..D48FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D4900..D49FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D4A00..D4AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D4B00..D4BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D4C00..D4CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D4D00..D4DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D4E00..D4EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D4F00..D4FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D5000..D50FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D5100..D51FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D5200..D52FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D5300..D53FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D5400..D54FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D5500..D55FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D5600..D56FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D5700..D57FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D5800..D58FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D5900..D59FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D5A00..D5AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D5B00..D5BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D5C00..D5CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D5D00..D5DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D5E00..D5EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D5F00..D5FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D6000..D60FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D6100..D61FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D6200..D62FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D6300..D63FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D6400..D64FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D6500..D65FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D6600..D66FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D6700..D67FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D6800..D68FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D6900..D69FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D6A00..D6AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D6B00..D6BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D6C00..D6CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D6D00..D6DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D6E00..D6EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D6F00..D6FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D7000..D70FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D7100..D71FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D7200..D72FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D7300..D73FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D7400..D74FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D7500..D75FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D7600..D76FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D7700..D77FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D7800..D78FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D7900..D79FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D7A00..D7AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D7B00..D7BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D7C00..D7CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D7D00..D7DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D7E00..D7EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D7F00..D7FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D8000..D80FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D8100..D81FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D8200..D82FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D8300..D83FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D8400..D84FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D8500..D85FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D8600..D86FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D8700..D87FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D8800..D88FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D8900..D89FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D8A00..D8AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D8B00..D8BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D8C00..D8CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D8D00..D8DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D8E00..D8EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D8F00..D8FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D9000..D90FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D9100..D91FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D9200..D92FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D9300..D93FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D9400..D94FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D9500..D95FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D9600..D96FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D9700..D97FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D9800..D98FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D9900..D99FF */
+  FriBidiPropertyBlockLevel1_0100,  /* D9A00..D9AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D9B00..D9BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D9C00..D9CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D9D00..D9DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D9E00..D9EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* D9F00..D9FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DA000..DA0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DA100..DA1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DA200..DA2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DA300..DA3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DA400..DA4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DA500..DA5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DA600..DA6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DA700..DA7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DA800..DA8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DA900..DA9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DAA00..DAAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DAB00..DABFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DAC00..DACFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DAD00..DADFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DAE00..DAEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DAF00..DAFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DB000..DB0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DB100..DB1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DB200..DB2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DB300..DB3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DB400..DB4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DB500..DB5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DB600..DB6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DB700..DB7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DB800..DB8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DB900..DB9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DBA00..DBAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DBB00..DBBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DBC00..DBCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DBD00..DBDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DBE00..DBEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DBF00..DBFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DC000..DC0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DC100..DC1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DC200..DC2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DC300..DC3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DC400..DC4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DC500..DC5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DC600..DC6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DC700..DC7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DC800..DC8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DC900..DC9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DCA00..DCAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DCB00..DCBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DCC00..DCCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DCD00..DCDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DCE00..DCEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DCF00..DCFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DD000..DD0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DD100..DD1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DD200..DD2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DD300..DD3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DD400..DD4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DD500..DD5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DD600..DD6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DD700..DD7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DD800..DD8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DD900..DD9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DDA00..DDAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DDB00..DDBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DDC00..DDCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DDD00..DDDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DDE00..DDEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DDF00..DDFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DE000..DE0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DE100..DE1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DE200..DE2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DE300..DE3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DE400..DE4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DE500..DE5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DE600..DE6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DE700..DE7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DE800..DE8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DE900..DE9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DEA00..DEAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DEB00..DEBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DEC00..DECFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DED00..DEDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DEE00..DEEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DEF00..DEFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DF000..DF0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DF100..DF1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DF200..DF2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DF300..DF3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DF400..DF4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DF500..DF5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DF600..DF6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DF700..DF7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DF800..DF8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DF900..DF9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* DFA00..DFAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DFB00..DFBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DFC00..DFCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DFD00..DFDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DFE00..DFEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* DFF00..DFFFF */
+  FriBidiPropertyBlockLevel1_E0000,  /* E0000..E00FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E0100..E01FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E0200..E02FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E0300..E03FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E0400..E04FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E0500..E05FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E0600..E06FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E0700..E07FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E0800..E08FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E0900..E09FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E0A00..E0AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E0B00..E0BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E0C00..E0CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E0D00..E0DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E0E00..E0EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E0F00..E0FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E1000..E10FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E1100..E11FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E1200..E12FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E1300..E13FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E1400..E14FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E1500..E15FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E1600..E16FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E1700..E17FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E1800..E18FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E1900..E19FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E1A00..E1AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E1B00..E1BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E1C00..E1CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E1D00..E1DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E1E00..E1EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E1F00..E1FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E2000..E20FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E2100..E21FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E2200..E22FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E2300..E23FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E2400..E24FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E2500..E25FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E2600..E26FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E2700..E27FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E2800..E28FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E2900..E29FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E2A00..E2AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E2B00..E2BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E2C00..E2CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E2D00..E2DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E2E00..E2EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E2F00..E2FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E3000..E30FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E3100..E31FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E3200..E32FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E3300..E33FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E3400..E34FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E3500..E35FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E3600..E36FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E3700..E37FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E3800..E38FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E3900..E39FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E3A00..E3AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E3B00..E3BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E3C00..E3CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E3D00..E3DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E3E00..E3EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E3F00..E3FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E4000..E40FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E4100..E41FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E4200..E42FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E4300..E43FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E4400..E44FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E4500..E45FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E4600..E46FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E4700..E47FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E4800..E48FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E4900..E49FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E4A00..E4AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E4B00..E4BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E4C00..E4CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E4D00..E4DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E4E00..E4EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E4F00..E4FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E5000..E50FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E5100..E51FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E5200..E52FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E5300..E53FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E5400..E54FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E5500..E55FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E5600..E56FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E5700..E57FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E5800..E58FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E5900..E59FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E5A00..E5AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E5B00..E5BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E5C00..E5CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E5D00..E5DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E5E00..E5EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E5F00..E5FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E6000..E60FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E6100..E61FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E6200..E62FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E6300..E63FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E6400..E64FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E6500..E65FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E6600..E66FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E6700..E67FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E6800..E68FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E6900..E69FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E6A00..E6AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E6B00..E6BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E6C00..E6CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E6D00..E6DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E6E00..E6EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E6F00..E6FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E7000..E70FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E7100..E71FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E7200..E72FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E7300..E73FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E7400..E74FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E7500..E75FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E7600..E76FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E7700..E77FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E7800..E78FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E7900..E79FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E7A00..E7AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E7B00..E7BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E7C00..E7CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E7D00..E7DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E7E00..E7EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E7F00..E7FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E8000..E80FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E8100..E81FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E8200..E82FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E8300..E83FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E8400..E84FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E8500..E85FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E8600..E86FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E8700..E87FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E8800..E88FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E8900..E89FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E8A00..E8AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E8B00..E8BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E8C00..E8CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E8D00..E8DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E8E00..E8EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E8F00..E8FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E9000..E90FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E9100..E91FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E9200..E92FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E9300..E93FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E9400..E94FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E9500..E95FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E9600..E96FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E9700..E97FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E9800..E98FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E9900..E99FF */
+  FriBidiPropertyBlockLevel1_0100,  /* E9A00..E9AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E9B00..E9BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E9C00..E9CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E9D00..E9DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E9E00..E9EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* E9F00..E9FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EA000..EA0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EA100..EA1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EA200..EA2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EA300..EA3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EA400..EA4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EA500..EA5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EA600..EA6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EA700..EA7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EA800..EA8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EA900..EA9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EAA00..EAAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EAB00..EABFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EAC00..EACFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EAD00..EADFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EAE00..EAEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EAF00..EAFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EB000..EB0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EB100..EB1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EB200..EB2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EB300..EB3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EB400..EB4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EB500..EB5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EB600..EB6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EB700..EB7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EB800..EB8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EB900..EB9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EBA00..EBAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EBB00..EBBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EBC00..EBCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EBD00..EBDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EBE00..EBEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EBF00..EBFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EC000..EC0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EC100..EC1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EC200..EC2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EC300..EC3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EC400..EC4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EC500..EC5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EC600..EC6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EC700..EC7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EC800..EC8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EC900..EC9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* ECA00..ECAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* ECB00..ECBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* ECC00..ECCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* ECD00..ECDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* ECE00..ECEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* ECF00..ECFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* ED000..ED0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* ED100..ED1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* ED200..ED2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* ED300..ED3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* ED400..ED4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* ED500..ED5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* ED600..ED6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* ED700..ED7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* ED800..ED8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* ED900..ED9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EDA00..EDAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EDB00..EDBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EDC00..EDCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EDD00..EDDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EDE00..EDEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EDF00..EDFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EE000..EE0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EE100..EE1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EE200..EE2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EE300..EE3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EE400..EE4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EE500..EE5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EE600..EE6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EE700..EE7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EE800..EE8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EE900..EE9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EEA00..EEAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EEB00..EEBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EEC00..EECFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EED00..EEDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EEE00..EEEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EEF00..EEFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EF000..EF0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EF100..EF1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EF200..EF2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EF300..EF3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EF400..EF4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EF500..EF5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EF600..EF6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EF700..EF7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EF800..EF8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EF900..EF9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* EFA00..EFAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EFB00..EFBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EFC00..EFCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EFD00..EFDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EFE00..EFEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* EFF00..EFFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F0000..F00FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F0100..F01FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F0200..F02FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F0300..F03FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F0400..F04FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F0500..F05FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F0600..F06FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F0700..F07FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F0800..F08FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F0900..F09FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F0A00..F0AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F0B00..F0BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F0C00..F0CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F0D00..F0DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F0E00..F0EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F0F00..F0FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F1000..F10FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F1100..F11FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F1200..F12FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F1300..F13FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F1400..F14FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F1500..F15FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F1600..F16FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F1700..F17FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F1800..F18FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F1900..F19FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F1A00..F1AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F1B00..F1BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F1C00..F1CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F1D00..F1DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F1E00..F1EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F1F00..F1FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F2000..F20FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F2100..F21FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F2200..F22FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F2300..F23FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F2400..F24FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F2500..F25FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F2600..F26FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F2700..F27FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F2800..F28FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F2900..F29FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F2A00..F2AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F2B00..F2BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F2C00..F2CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F2D00..F2DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F2E00..F2EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F2F00..F2FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F3000..F30FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F3100..F31FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F3200..F32FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F3300..F33FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F3400..F34FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F3500..F35FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F3600..F36FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F3700..F37FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F3800..F38FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F3900..F39FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F3A00..F3AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F3B00..F3BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F3C00..F3CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F3D00..F3DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F3E00..F3EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F3F00..F3FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F4000..F40FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F4100..F41FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F4200..F42FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F4300..F43FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F4400..F44FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F4500..F45FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F4600..F46FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F4700..F47FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F4800..F48FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F4900..F49FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F4A00..F4AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F4B00..F4BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F4C00..F4CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F4D00..F4DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F4E00..F4EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F4F00..F4FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F5000..F50FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F5100..F51FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F5200..F52FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F5300..F53FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F5400..F54FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F5500..F55FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F5600..F56FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F5700..F57FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F5800..F58FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F5900..F59FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F5A00..F5AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F5B00..F5BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F5C00..F5CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F5D00..F5DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F5E00..F5EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F5F00..F5FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F6000..F60FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F6100..F61FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F6200..F62FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F6300..F63FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F6400..F64FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F6500..F65FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F6600..F66FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F6700..F67FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F6800..F68FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F6900..F69FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F6A00..F6AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F6B00..F6BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F6C00..F6CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F6D00..F6DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F6E00..F6EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F6F00..F6FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F7000..F70FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F7100..F71FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F7200..F72FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F7300..F73FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F7400..F74FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F7500..F75FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F7600..F76FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F7700..F77FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F7800..F78FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F7900..F79FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F7A00..F7AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F7B00..F7BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F7C00..F7CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F7D00..F7DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F7E00..F7EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F7F00..F7FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F8000..F80FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F8100..F81FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F8200..F82FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F8300..F83FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F8400..F84FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F8500..F85FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F8600..F86FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F8700..F87FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F8800..F88FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F8900..F89FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F8A00..F8AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F8B00..F8BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F8C00..F8CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F8D00..F8DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F8E00..F8EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F8F00..F8FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F9000..F90FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F9100..F91FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F9200..F92FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F9300..F93FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F9400..F94FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F9500..F95FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F9600..F96FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F9700..F97FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F9800..F98FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F9900..F99FF */
+  FriBidiPropertyBlockLevel1_0100,  /* F9A00..F9AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F9B00..F9BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F9C00..F9CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F9D00..F9DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F9E00..F9EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* F9F00..F9FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FA000..FA0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FA100..FA1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FA200..FA2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FA300..FA3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FA400..FA4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FA500..FA5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FA600..FA6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FA700..FA7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FA800..FA8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FA900..FA9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FAA00..FAAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FAB00..FABFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FAC00..FACFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FAD00..FADFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FAE00..FAEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FAF00..FAFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FB000..FB0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FB100..FB1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FB200..FB2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FB300..FB3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FB400..FB4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FB500..FB5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FB600..FB6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FB700..FB7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FB800..FB8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FB900..FB9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FBA00..FBAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FBB00..FBBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FBC00..FBCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FBD00..FBDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FBE00..FBEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FBF00..FBFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FC000..FC0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FC100..FC1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FC200..FC2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FC300..FC3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FC400..FC4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FC500..FC5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FC600..FC6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FC700..FC7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FC800..FC8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FC900..FC9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FCA00..FCAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FCB00..FCBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FCC00..FCCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FCD00..FCDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FCE00..FCEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FCF00..FCFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FD000..FD0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FD100..FD1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FD200..FD2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FD300..FD3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FD400..FD4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FD500..FD5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FD600..FD6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FD700..FD7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FD800..FD8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FD900..FD9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FDA00..FDAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FDB00..FDBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FDC00..FDCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FDD00..FDDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FDE00..FDEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FDF00..FDFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FE000..FE0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FE100..FE1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FE200..FE2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FE300..FE3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FE400..FE4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FE500..FE5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FE600..FE6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FE700..FE7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FE800..FE8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FE900..FE9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FEA00..FEAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FEB00..FEBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FEC00..FECFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FED00..FEDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FEE00..FEEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FEF00..FEFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FF000..FF0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FF100..FF1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FF200..FF2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FF300..FF3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FF400..FF4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FF500..FF5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FF600..FF6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FF700..FF7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FF800..FF8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FF900..FF9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* FFA00..FFAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FFB00..FFBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FFC00..FFCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FFD00..FFDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FFE00..FFEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* FFF00..FFFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 100000..1000FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 100100..1001FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 100200..1002FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 100300..1003FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 100400..1004FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 100500..1005FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 100600..1006FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 100700..1007FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 100800..1008FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 100900..1009FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 100A00..100AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 100B00..100BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 100C00..100CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 100D00..100DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 100E00..100EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 100F00..100FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 101000..1010FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 101100..1011FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 101200..1012FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 101300..1013FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 101400..1014FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 101500..1015FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 101600..1016FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 101700..1017FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 101800..1018FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 101900..1019FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 101A00..101AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 101B00..101BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 101C00..101CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 101D00..101DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 101E00..101EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 101F00..101FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 102000..1020FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 102100..1021FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 102200..1022FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 102300..1023FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 102400..1024FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 102500..1025FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 102600..1026FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 102700..1027FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 102800..1028FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 102900..1029FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 102A00..102AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 102B00..102BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 102C00..102CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 102D00..102DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 102E00..102EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 102F00..102FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 103000..1030FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 103100..1031FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 103200..1032FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 103300..1033FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 103400..1034FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 103500..1035FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 103600..1036FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 103700..1037FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 103800..1038FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 103900..1039FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 103A00..103AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 103B00..103BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 103C00..103CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 103D00..103DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 103E00..103EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 103F00..103FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 104000..1040FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 104100..1041FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 104200..1042FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 104300..1043FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 104400..1044FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 104500..1045FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 104600..1046FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 104700..1047FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 104800..1048FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 104900..1049FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 104A00..104AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 104B00..104BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 104C00..104CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 104D00..104DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 104E00..104EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 104F00..104FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 105000..1050FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 105100..1051FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 105200..1052FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 105300..1053FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 105400..1054FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 105500..1055FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 105600..1056FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 105700..1057FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 105800..1058FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 105900..1059FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 105A00..105AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 105B00..105BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 105C00..105CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 105D00..105DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 105E00..105EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 105F00..105FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 106000..1060FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 106100..1061FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 106200..1062FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 106300..1063FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 106400..1064FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 106500..1065FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 106600..1066FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 106700..1067FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 106800..1068FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 106900..1069FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 106A00..106AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 106B00..106BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 106C00..106CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 106D00..106DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 106E00..106EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 106F00..106FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 107000..1070FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 107100..1071FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 107200..1072FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 107300..1073FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 107400..1074FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 107500..1075FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 107600..1076FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 107700..1077FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 107800..1078FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 107900..1079FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 107A00..107AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 107B00..107BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 107C00..107CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 107D00..107DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 107E00..107EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 107F00..107FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 108000..1080FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 108100..1081FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 108200..1082FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 108300..1083FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 108400..1084FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 108500..1085FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 108600..1086FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 108700..1087FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 108800..1088FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 108900..1089FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 108A00..108AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 108B00..108BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 108C00..108CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 108D00..108DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 108E00..108EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 108F00..108FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 109000..1090FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 109100..1091FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 109200..1092FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 109300..1093FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 109400..1094FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 109500..1095FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 109600..1096FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 109700..1097FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 109800..1098FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 109900..1099FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 109A00..109AFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 109B00..109BFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 109C00..109CFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 109D00..109DFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 109E00..109EFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 109F00..109FFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10A000..10A0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10A100..10A1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10A200..10A2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10A300..10A3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10A400..10A4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10A500..10A5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10A600..10A6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10A700..10A7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10A800..10A8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10A900..10A9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10AA00..10AAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10AB00..10ABFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10AC00..10ACFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10AD00..10ADFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10AE00..10AEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10AF00..10AFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10B000..10B0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10B100..10B1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10B200..10B2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10B300..10B3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10B400..10B4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10B500..10B5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10B600..10B6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10B700..10B7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10B800..10B8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10B900..10B9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10BA00..10BAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10BB00..10BBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10BC00..10BCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10BD00..10BDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10BE00..10BEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10BF00..10BFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10C000..10C0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10C100..10C1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10C200..10C2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10C300..10C3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10C400..10C4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10C500..10C5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10C600..10C6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10C700..10C7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10C800..10C8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10C900..10C9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10CA00..10CAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10CB00..10CBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10CC00..10CCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10CD00..10CDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10CE00..10CEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10CF00..10CFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10D000..10D0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10D100..10D1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10D200..10D2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10D300..10D3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10D400..10D4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10D500..10D5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10D600..10D6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10D700..10D7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10D800..10D8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10D900..10D9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10DA00..10DAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10DB00..10DBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10DC00..10DCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10DD00..10DDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10DE00..10DEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10DF00..10DFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10E000..10E0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10E100..10E1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10E200..10E2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10E300..10E3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10E400..10E4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10E500..10E5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10E600..10E6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10E700..10E7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10E800..10E8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10E900..10E9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10EA00..10EAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10EB00..10EBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10EC00..10ECFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10ED00..10EDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10EE00..10EEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10EF00..10EFFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10F000..10F0FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10F100..10F1FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10F200..10F2FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10F300..10F3FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10F400..10F4FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10F500..10F5FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10F600..10F6FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10F700..10F7FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10F800..10F8FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10F900..10F9FF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10FA00..10FAFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10FB00..10FBFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10FC00..10FCFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10FD00..10FDFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10FE00..10FEFF */
+  FriBidiPropertyBlockLevel1_0100,  /* 10FF00..10FFFF */
+};
+
+/* *INDENT-ON* */
+
+#define FRIBIDI_GET_TYPE(x)	\
+	FriBidiPropertyBlockLevel1[(x)%256 +	\
+	FriBidiPropertyBlockLevel0[(x)/256]]
+
+#undef WS
+#undef SS
+#undef RLO
+#undef RLE
+#undef PDF
+#undef NSM
+#undef LRO
+#undef LRE
+#undef ET
+#undef ES
+#undef EN
+#undef CS
+#undef BS
+#undef AN
+#undef BN
+#undef ON
+#undef AL
+#undef RTL
+#undef LTR
+
+/*======================================================================
+ *  _pango_fribidi_get_type_internal() returns the bidi type of a character.
+ *----------------------------------------------------------------------*/
+FriBidiCharType
+_pango_fribidi_get_type_internal (FriBidiChar uch)
+{
+  if (uch < 0x110000)
+    return _pango_fribidi_prop_to_type[(unsigned char)FRIBIDI_GET_TYPE (uch)];
+  else
+    return FRIBIDI_TYPE_LTR;
+  /* Non-Unicode chars */
+}
+
+
+#endif /* FRIBIDI_TAB_CHAR_TYPE_2_I */
Index: pango/mini-fribidi/fribidi_types.c
===================================================================
RCS file: pango/mini-fribidi/fribidi_types.c
diff -N pango/mini-fribidi/fribidi_types.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ pango/mini-fribidi/fribidi_types.c	14 Jul 2003 22:44:11 -0000
@@ -0,0 +1,126 @@
+/* FriBidi - Library of BiDi algorithm
+ * Copyright (C) 2001,2002 Behdad Esfahbod. 
+ * 
+ * This library is free software; you can redistribute it and/or 
+ * modify it under the terms of the GNU Lesser General Public 
+ * License as published by the Free Software Foundation; either 
+ * version 2.1 of the License, or (at your option) any later version. 
+ * 
+ * This library is distributed in the hope that it will be useful, 
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+ * Lesser General Public License for more details. 
+ * 
+ * You should have received a copy of the GNU Lesser General Public License 
+ * along with this library, in a file named COPYING; if not, write to the 
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330, 
+ * Boston, MA 02111-1307, USA  
+ * 
+ * For licensing issues, contact <fwpg@sharif.edu>. 
+ */
+
+#include <glib.h>
+#include "fribidi_types.h"
+
+#ifdef DEBUG
+
+char
+fribidi_char_from_type (FriBidiCharType c)
+{
+  switch (c)
+    {
+    case FRIBIDI_TYPE_LTR:
+      return 'L';
+    case FRIBIDI_TYPE_RTL:
+      return 'R';
+    case FRIBIDI_TYPE_AL:
+      return 'A';
+
+    case FRIBIDI_TYPE_EN:
+      return '1';
+    case FRIBIDI_TYPE_AN:
+      return '9';
+    case FRIBIDI_TYPE_ES:
+      return 'w';
+    case FRIBIDI_TYPE_ET:
+      return 'w';
+    case FRIBIDI_TYPE_CS:
+      return 'w';
+    case FRIBIDI_TYPE_NSM:
+      return '`';
+    case FRIBIDI_TYPE_BN:
+      return 'b';
+
+    case FRIBIDI_TYPE_BS:
+      return 'B';
+    case FRIBIDI_TYPE_SS:
+      return 'S';
+    case FRIBIDI_TYPE_WS:
+      return '_';
+    case FRIBIDI_TYPE_ON:
+      return 'n';
+
+    case FRIBIDI_TYPE_LRE:
+      return '+';
+    case FRIBIDI_TYPE_RLE:
+      return '+';
+    case FRIBIDI_TYPE_LRO:
+      return '+';
+    case FRIBIDI_TYPE_RLO:
+      return '+';
+    case FRIBIDI_TYPE_PDF:
+      return '-';
+
+    default:
+      return '?';
+    }
+};
+
+#endif
+
+char *
+fribidi_type_name (FriBidiCharType c)
+{
+#define _FRIBIDI_CASE(type)	case FRIBIDI_TYPE_##type: return #type
+  switch (c)
+    {
+      _FRIBIDI_CASE (LTR);
+      _FRIBIDI_CASE (RTL);
+      _FRIBIDI_CASE (AL);
+
+      _FRIBIDI_CASE (EN);
+      _FRIBIDI_CASE (AN);
+      _FRIBIDI_CASE (ES);
+      _FRIBIDI_CASE (ET);
+      _FRIBIDI_CASE (CS);
+      _FRIBIDI_CASE (NSM);
+      _FRIBIDI_CASE (BN);
+
+      _FRIBIDI_CASE (BS);
+      _FRIBIDI_CASE (SS);
+      _FRIBIDI_CASE (WS);
+      _FRIBIDI_CASE (ON);
+
+      _FRIBIDI_CASE (LRE);
+      _FRIBIDI_CASE (RLE);
+      _FRIBIDI_CASE (LRO);
+      _FRIBIDI_CASE (RLO);
+      _FRIBIDI_CASE (PDF);
+
+      _FRIBIDI_CASE (SOT);
+      _FRIBIDI_CASE (EOT);
+
+    default:
+      return "?";
+    }
+#undef _FRIBIDI_CASE
+}
+
+/* Map fribidi_prop_types to fribidi_types. */
+static FriBidiCharType fribidi_prop_to_type_array[] = {
+#define _FRIBIDI_ADD_TYPE(TYPE) FRIBIDI_TYPE_##TYPE,
+#include "fribidi_types.i"
+#undef _FRIBIDI_ADD_TYPE
+};
+
+FriBidiCharType *_pango_fribidi_prop_to_type = fribidi_prop_to_type_array;
Index: pango/mini-fribidi/fribidi_types.h
===================================================================
RCS file: /cvs/gnome/pango/pango/mini-fribidi/fribidi_types.h,v
retrieving revision 1.4
diff -u -r1.4 fribidi_types.h
--- pango/mini-fribidi/fribidi_types.h	25 Feb 2002 21:40:47 -0000	1.4
+++ pango/mini-fribidi/fribidi_types.h	14 Jul 2003 22:44:12 -0000
@@ -1,6 +1,6 @@
 /* FriBidi - Library of BiDi algorithm
  * Copyright (C) 1999,2000 Dov Grobgeld, and
- * Copyright (C) 2001 Behdad Esfahbod. 
+ * Copyright (C) 2001,2002 Behdad Esfahbod. 
  * 
  * This library is free software; you can redistribute it and/or 
  * modify it under the terms of the GNU Lesser General Public 
@@ -13,7 +13,7 @@
  * Lesser General Public License for more details. 
  * 
  * You should have received a copy of the GNU Lesser General Public License 
- * along with this library, in a file named COPYING.LIB; if not, write to the 
+ * along with this library, in a file named COPYING; if not, write to the 
  * Free Software Foundation, Inc., 59 Temple Place, Suite 330, 
  * Boston, MA 02111-1307, USA  
  * 
@@ -23,127 +23,176 @@
 #ifndef FRIBIDI_TYPES_H
 #define FRIBIDI_TYPES_H
 
-#ifndef FRIBIDI_USE_MINI_GLIB
 #include <glib.h>
-#else
-#include "fribidi_mini_glib.h"
+
+  typedef gint8 FriBidiLevel;
+  typedef gunichar FriBidiChar;
+  typedef gint FriBidiStrIndex;
+  typedef gint32 FriBidiMaskType;
+  typedef FriBidiMaskType FriBidiCharType;
+
+  gchar *fribidi_type_name (FriBidiCharType c);
+
+/* The following type is used by fribidi_utils */
+  typedef struct
+  {
+    FriBidiStrIndex length;
+    void *attribute;
+  }
+  FriBidiRunType;
+
+/* The following type is used by fribidi_utils */
+  typedef struct _FriBidiList FriBidiList;
+  struct _FriBidiList
+  {
+    void *data;
+    FriBidiList *next;
+    FriBidiList *prev;
+  };
+
+#ifndef FRIBIDI_MAX_STRING_LENGTH
+#define FRIBIDI_MAX_STRING_LENGTH (sizeof (FriBidiStrIndex) == 2 ?	\
+    				   0x7FFE : (sizeof (FriBidiStrIndex) == 1 ? \
+					     0x7E : 0x8FFFFFFEL))
 #endif
 
-typedef guint32 FriBidiChar;
 
-typedef guint16 FriBidiStrIndex;
+/* 
+ * Define some bit masks, that character types are based on, each one has
+ * only one bit on.
+ */
+
+/* Do not use enum, because 16bit processors do not allow 32bit enum values. */
+
+#define FRIBIDI_MASK_RTL	0x00000001L	/* Is right to left */
+#define FRIBIDI_MASK_ARABIC	0x00000002L	/* Is arabic */
+
+/* Each char can be only one of the three following. */
+#define FRIBIDI_MASK_STRONG	0x00000010L	/* Is strong */
+#define FRIBIDI_MASK_WEAK	0x00000020L	/* Is weak */
+#define FRIBIDI_MASK_NEUTRAL	0x00000040L	/* Is neutral */
+#define FRIBIDI_MASK_SENTINEL	0x00000080L	/* Is sentinel: SOT, EOT */
+/* Sentinels are not valid chars, just identify the start and end of strings. */
+
+/* Each char can be only one of the five following. */
+#define FRIBIDI_MASK_LETTER	0x00000100L	/* Is letter: L, R, AL */
+#define FRIBIDI_MASK_NUMBER	0x00000200L	/* Is number: EN, AN */
+#define FRIBIDI_MASK_NUMSEPTER	0x00000400L	/* Is number separator or terminator: ES, ET, CS */
+#define FRIBIDI_MASK_SPACE	0x00000800L	/* Is space: BN, BS, SS, WS */
+#define FRIBIDI_MASK_EXPLICIT	0x00001000L	/* Is expilict mark: LRE, RLE, LRO, RLO, PDF */
+
+/* Can be on only if FRIBIDI_MASK_SPACE is also on. */
+#define FRIBIDI_MASK_SEPARATOR	0x00002000L	/* Is test separator: BS, SS */
+/* Can be on only if FRIBIDI_MASK_EXPLICIT is also on. */
+#define FRIBIDI_MASK_OVERRIDE	0x00004000L	/* Is explicit override: LRO, RLO */
+
+/* The following must be to make types pairwise different, some of them can
+   be removed but are here because of efficiency (make queries faster). */
+
+#define FRIBIDI_MASK_ES		0x00010000L
+#define FRIBIDI_MASK_ET		0x00020000L
+#define FRIBIDI_MASK_CS		0x00040000L
+
+#define FRIBIDI_MASK_NSM	0x00080000L
+#define FRIBIDI_MASK_BN		0x00100000L
+
+#define FRIBIDI_MASK_BS		0x00200000L
+#define FRIBIDI_MASK_SS		0x00400000L
+#define FRIBIDI_MASK_WS		0x00800000L
+
+/* We reserve the sign bit for user's private use: we will never use it,
+   then negative character types will be never assigned. */
+
+
+/*
+ * Define values for FriBidiCharType
+ */
+
+/* Strong left to right */
+#define FRIBIDI_TYPE_LTR	( FRIBIDI_MASK_STRONG + FRIBIDI_MASK_LETTER )
+/* Right to left characters */
+#define FRIBIDI_TYPE_RTL	( FRIBIDI_MASK_STRONG + FRIBIDI_MASK_LETTER \
+				+ FRIBIDI_MASK_RTL)
+/* Arabic characters */
+#define FRIBIDI_TYPE_AL		( FRIBIDI_MASK_STRONG + FRIBIDI_MASK_LETTER \
+				+ FRIBIDI_MASK_RTL + FRIBIDI_MASK_ARABIC )
+/* Left-To-Right embedding */
+#define FRIBIDI_TYPE_LRE	(FRIBIDI_MASK_STRONG + FRIBIDI_MASK_EXPLICIT)
+/* Right-To-Left embedding */
+#define FRIBIDI_TYPE_RLE	( FRIBIDI_MASK_STRONG + FRIBIDI_MASK_EXPLICIT \
+				+ FRIBIDI_MASK_RTL )
+/* Left-To-Right override */
+#define FRIBIDI_TYPE_LRO	( FRIBIDI_MASK_STRONG + FRIBIDI_MASK_EXPLICIT \
+				+ FRIBIDI_MASK_OVERRIDE )
+/* Right-To-Left override */
+#define FRIBIDI_TYPE_RLO	( FRIBIDI_MASK_STRONG + FRIBIDI_MASK_EXPLICIT \
+				+ FRIBIDI_MASK_RTL + FRIBIDI_MASK_OVERRIDE )
+
+/* Pop directional override */
+#define FRIBIDI_TYPE_PDF	( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_EXPLICIT )
+/* European digit */
+#define FRIBIDI_TYPE_EN		( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMBER )
+/* Arabic digit */
+#define FRIBIDI_TYPE_AN		( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMBER \
+				+ FRIBIDI_MASK_ARABIC )
+/* European number separator */
+#define FRIBIDI_TYPE_ES		( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMSEPTER \
+				+ FRIBIDI_MASK_ES )
+/* European number terminator */
+#define FRIBIDI_TYPE_ET		( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMSEPTER \
+				+ FRIBIDI_MASK_ET )
+/* Common Separator */
+#define FRIBIDI_TYPE_CS		( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMSEPTER \
+				+ FRIBIDI_MASK_CS )
+/* Non spacing mark */
+#define FRIBIDI_TYPE_NSM	( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NSM )
+/* Boundary neutral */
+#define FRIBIDI_TYPE_BN		(  FRIBIDI_MASK_WEAK + FRIBIDI_MASK_SPACE \
+				+ FRIBIDI_MASK_BN )
+
+/* Block separator */
+#define FRIBIDI_TYPE_BS		( FRIBIDI_MASK_NEUTRAL + FRIBIDI_MASK_SPACE \
+				+ FRIBIDI_MASK_SEPARATOR + FRIBIDI_MASK_BS )
+/* Segment separator */
+#define FRIBIDI_TYPE_SS		( FRIBIDI_MASK_NEUTRAL + FRIBIDI_MASK_SPACE \
+				+ FRIBIDI_MASK_SEPARATOR + FRIBIDI_MASK_SS )
+/* Whitespace */
+#define FRIBIDI_TYPE_WS		( FRIBIDI_MASK_NEUTRAL + FRIBIDI_MASK_SPACE \
+				+ FRIBIDI_MASK_WS )
+/* Other Neutral */
+#define FRIBIDI_TYPE_ON		( FRIBIDI_MASK_NEUTRAL )
+
+/* The following are used to identify the paragraph direction,
+   types L, R, N are not used internally anymore, and recommended to use
+   LTR, RTL and ON instead, didn't removed because of compatability. */
+#define FRIBIDI_TYPE_L		( FRIBIDI_TYPE_LTR )
+#define FRIBIDI_TYPE_R		( FRIBIDI_TYPE_RTL )
+#define FRIBIDI_TYPE_N		( FRIBIDI_TYPE_ON )
+/* Weak left to right */
+#define FRIBIDI_TYPE_WL		( FRIBIDI_MASK_WEAK )
+/* Weak right to left */
+#define FRIBIDI_TYPE_WR		( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_RTL )
+
+/* The following are only used internally */
+
+/* Start of text */
+#define FRIBIDI_TYPE_SOT	( FRIBIDI_MASK_SENTINEL )
+/* End of text */
+#define FRIBIDI_TYPE_EOT	( FRIBIDI_MASK_SENTINEL + FRIBIDI_MASK_RTL )
+
+/*
+ * End of define values for FriBidiCharType
+ */
+
+
+/*
+ * Defining macros for needed queries, It is fully dependent on the 
+ * implementation of FriBidiCharType.
+ */
 
-/* Define some bit masks, that character types are based on, each one has
-   only one bit on. */
-typedef enum
-{
-  FRIBIDI_MASK_RTL = 0x00000001,	/* Is right to left */
-  FRIBIDI_MASK_ARABIC = 0x00000002,	/* Is arabic */
-
-  /* Each char can be only one of the three following. */
-  FRIBIDI_MASK_STRONG = 0x00000010,	/* Is strong */
-  FRIBIDI_MASK_WEAK = 0x00000020,	/* Is weak */
-  FRIBIDI_MASK_NEUTRAL = 0x00000040,	/* Is neutral */
-  FRIBIDI_MASK_SENTINEL = 0x00000080,	/* Is sentinel: SOT, EOT */
-  /* Sentinels are not valid chars, just identify the start and end of strings. */
-
-  /* Each char can be only one of the five following. */
-  FRIBIDI_MASK_LETTER = 0x00000100,	/* Is letter: L, R, AL */
-  FRIBIDI_MASK_NUMBER = 0x00000200,	/* Is number: EN, AN */
-  FRIBIDI_MASK_NUMSEPTER = 0x00000400,	/* Is number separator or terminator: ES, ET, CS */
-  FRIBIDI_MASK_SPACE = 0x00000800,	/* Is space: BN, BS, SS, WS */
-  FRIBIDI_MASK_EXPLICIT = 0x00001000,	/* Is expilict mark: LRE, RLE, LRO, RLO, PDF */
-
-  /* Can be on only if FRIBIDI_MASK_SPACE is also on. */
-  FRIBIDI_MASK_SEPARATOR = 0x00002000,	/* Is test separator: BS, SS */
-
-  /* Can be on only if FRIBIDI_MASK_EXPLICIT is also on. */
-  FRIBIDI_MASK_OVERRIDE = 0x00004000,	/* Is explicit override: LRO, RLO */
-
-  /* The following must be to make types pairwise different, some of them can
-     be removed but are here because of efficiency (make queries faster). */
-
-  FRIBIDI_MASK_ES = 0x00010000,
-  FRIBIDI_MASK_ET = 0x00020000,
-  FRIBIDI_MASK_CS = 0x00040000,
-
-  FRIBIDI_MASK_NSM = 0x00080000,
-  FRIBIDI_MASK_BN = 0x00100000,
-
-  FRIBIDI_MASK_BS = 0x00200000,
-  FRIBIDI_MASK_SS = 0x00400000,
-  FRIBIDI_MASK_WS = 0x00800000
-}
-FriBidiMaskType;
-
-typedef enum
-{
-  FRIBIDI_TYPE_LTR =		/* Strong left to right */
-    FRIBIDI_MASK_STRONG + FRIBIDI_MASK_LETTER,
-  FRIBIDI_TYPE_RTL =		/* Right to left characters */
-    FRIBIDI_MASK_STRONG + FRIBIDI_MASK_LETTER + FRIBIDI_MASK_RTL,
-  FRIBIDI_TYPE_AL =		/* Arabic characters */
-    FRIBIDI_MASK_STRONG + FRIBIDI_MASK_LETTER +
-    FRIBIDI_MASK_RTL + FRIBIDI_MASK_ARABIC,
-  FRIBIDI_TYPE_LRE =		/* Left-To-Right embedding */
-    FRIBIDI_MASK_STRONG + FRIBIDI_MASK_EXPLICIT,
-  FRIBIDI_TYPE_RLE =		/* Right-To-Left embedding */
-    FRIBIDI_MASK_STRONG + FRIBIDI_MASK_EXPLICIT + FRIBIDI_MASK_RTL,
-  FRIBIDI_TYPE_LRO =		/* Left-To-Right override */
-    FRIBIDI_MASK_STRONG + FRIBIDI_MASK_EXPLICIT + FRIBIDI_MASK_OVERRIDE,
-  FRIBIDI_TYPE_RLO =		/* Right-To-Left override */
-    FRIBIDI_MASK_STRONG + FRIBIDI_MASK_EXPLICIT +
-    FRIBIDI_MASK_RTL + FRIBIDI_MASK_OVERRIDE,
-
-  FRIBIDI_TYPE_PDF =		/* Pop directional override */
-    FRIBIDI_MASK_WEAK + FRIBIDI_MASK_EXPLICIT,
-  FRIBIDI_TYPE_EN =		/* European digit */
-    FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMBER,
-  FRIBIDI_TYPE_AN =		/* Arabic digit */
-    FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMBER + FRIBIDI_MASK_ARABIC,
-  FRIBIDI_TYPE_ES =		/* European number separator */
-    FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMSEPTER + FRIBIDI_MASK_ES,
-  FRIBIDI_TYPE_ET =		/* European number terminator */
-    FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMSEPTER + FRIBIDI_MASK_ET,
-  FRIBIDI_TYPE_CS =		/* Common Separator */
-    FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMSEPTER + FRIBIDI_MASK_CS,
-  FRIBIDI_TYPE_NSM =		/* Non spacing mark */
-    FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NSM,
-  FRIBIDI_TYPE_BN =		/* Boundary neutral */
-    FRIBIDI_MASK_WEAK + FRIBIDI_MASK_SPACE + FRIBIDI_MASK_BN,
-
-  FRIBIDI_TYPE_BS =		/* Block separator */
-    FRIBIDI_MASK_NEUTRAL + FRIBIDI_MASK_SPACE +
-    FRIBIDI_MASK_SEPARATOR + FRIBIDI_MASK_BS,
-  FRIBIDI_TYPE_SS =		/* Segment separator */
-    FRIBIDI_MASK_NEUTRAL + FRIBIDI_MASK_SPACE +
-    FRIBIDI_MASK_SEPARATOR + FRIBIDI_MASK_SS,
-  FRIBIDI_TYPE_WS =		/* Whitespace */
-    FRIBIDI_MASK_NEUTRAL + FRIBIDI_MASK_SPACE + FRIBIDI_MASK_WS,
-  FRIBIDI_TYPE_ON =		/* Other Neutral */
-    FRIBIDI_MASK_NEUTRAL,
-
-  /* The following are used to identify the paragraph direction,
-     types L, R, N are not used internally anymore, and recommended to use
-     LTR, RTL and ON instead, didn't removed because of compatability. */
-  FRIBIDI_TYPE_L = FRIBIDI_TYPE_LTR,
-  FRIBIDI_TYPE_R = FRIBIDI_TYPE_RTL,
-  FRIBIDI_TYPE_N = FRIBIDI_TYPE_ON,
-  FRIBIDI_TYPE_WL =		/* Weak left to right */
-    FRIBIDI_MASK_WEAK,
-  FRIBIDI_TYPE_WR =		/* Weak right to left */
-    FRIBIDI_MASK_WEAK + FRIBIDI_MASK_RTL,
-
-  /* The following are only used internally */
-  FRIBIDI_TYPE_SOT =		/* Start of text */
-    FRIBIDI_MASK_SENTINEL,
-  FRIBIDI_TYPE_EOT =		/* End of text */
-    FRIBIDI_MASK_SENTINEL + FRIBIDI_MASK_RTL
-}
-FriBidiCharType;
 
-/* Defining macros for needed queries, It is fully dependent on the 
-   implementation of FriBidiCharType. */
+/* Is private-use value? */
+#define FRIBIDI_TYPE_PRIVATE(p)	((p) < 0)
 
 /* Return the direction of the level number, FRIBIDI_TYPE_LTR for even and
    FRIBIDI_TYPE_RTL for odds. */
@@ -151,10 +200,10 @@
 
 /* Return the minimum level of the direction, 0 for FRIBIDI_TYPE_LTR and
    1 for FRIBIDI_TYPE_RTL and FRIBIDI_TYPE_AL. */
-#define FRIBIDI_DIR_TO_LEVEL(dir) (dir & 1)
+#define FRIBIDI_DIR_TO_LEVEL(dir) ((FriBidiLevel)(dir & 1))
 
 /* Is right to left? */
-#define FRIBIDI_IS_RTL(p)      ((P) & FRIBIDI_MASK_RTL)
+#define FRIBIDI_IS_RTL(p)      ((p) & FRIBIDI_MASK_RTL)
 /* Is arabic? */
 #define FRIBIDI_IS_ARABIC(p)   ((p) & FRIBIDI_MASK_ARABIC)
 
@@ -173,7 +222,7 @@
 #define FRIBIDI_IS_NUMBER(p)   ((p) & FRIBIDI_MASK_NUMBER)
 /* Is number separator or terminator: ES, ET, CS? */
 #define FRIBIDI_IS_NUMBER_SEPARATOR_OR_TERMINATOR(p) \
-                       ((p) & FRIBIDI_MASK_NUMSEPTER)
+	((p) & FRIBIDI_MASK_NUMSEPTER)
 /* Is space: BN, BS, SS, WS? */
 #define FRIBIDI_IS_SPACE(p)    ((p) & FRIBIDI_MASK_SPACE)
 /* Is explicit mark: LRE, RLE, LRO, RLO, PDF? */
@@ -189,96 +238,59 @@
 
 /* Is left to right letter: LTR? */
 #define FRIBIDI_IS_LTR_LETTER(p) \
-    ((p) & (FRIBIDI_MASK_LETTER | FRIBIDI_MASK_RTL) == FRIBIDI_MASK_LETTER)
+	((p) & (FRIBIDI_MASK_LETTER | FRIBIDI_MASK_RTL) == FRIBIDI_MASK_LETTER)
 
 /* Is right to left letter: RTL, AL? */
 #define FRIBIDI_IS_RTL_LETTER(p) \
-    ((p) & (FRIBIDI_MASK_LETTER | FRIBIDI_MASK_RTL) == \
-    (FRIBIDI_MASK_LETTER | FRIBIDI_MASK_RTL))
+	((p) & (FRIBIDI_MASK_LETTER | FRIBIDI_MASK_RTL) \
+	== (FRIBIDI_MASK_LETTER | FRIBIDI_MASK_RTL))
 
 /* Is ES or CS: ES, CS? */
 #define FRIBIDI_IS_ES_OR_CS(p) \
-    ((p) & (FRIBIDI_MASK_ES | FRIBIDI_MASK_CS))
+	((p) & (FRIBIDI_MASK_ES | FRIBIDI_MASK_CS))
 
 /* Is explicit or BN: LRE, RLE, LRO, RLO, PDF, BN? */
 #define FRIBIDI_IS_EXPLICIT_OR_BN(p) \
-    ((p) & (FRIBIDI_MASK_EXPLICIT | FRIBIDI_MASK_BN))
+	((p) & (FRIBIDI_MASK_EXPLICIT | FRIBIDI_MASK_BN))
 
 /* Is explicit or separator or BN or WS: LRE, RLE, LRO, RLO, PDF, BS, SS, BN, WS? */
 #define FRIBIDI_IS_EXPLICIT_OR_SEPARATOR_OR_BN_OR_WS(p) \
-    ((p) & (FRIBIDI_MASK_EXPLICIT | FRIBIDI_MASK_SEPARATOR | \
-            FRIBIDI_MASK_BN | FRIBIDI_MASK_WS))
+	((p) & (FRIBIDI_MASK_EXPLICIT | FRIBIDI_MASK_SEPARATOR \
+		| FRIBIDI_MASK_BN | FRIBIDI_MASK_WS))
 
 /* Define some conversions. */
 
-/* Change numbers:EN, AN  to RTL. */
+/* Change numbers: EN, AN to RTL. */
 #define FRIBIDI_CHANGE_NUMBER_TO_RTL(p) \
-    (FRIBIDI_IS_NUMBER(p) ? FRIBIDI_TYPE_RTL : (p))
+	(FRIBIDI_IS_NUMBER(p) ? FRIBIDI_TYPE_RTL : (p))
 
 /* Override status of an explicit mark: LRO->LTR, RLO->RTL, otherwise->ON. */
 #define FRIBIDI_EXPLICIT_TO_OVERRIDE_DIR(p) \
-    (FRIBIDI_IS_OVERRIDE(p) ? FRIBIDI_LEVEL_TO_DIR(FRIBIDI_DIR_TO_LEVEL(p)) : \
-                              FRIBIDI_TYPE_ON)
-
-
-gchar fribidi_char_from_type (FriBidiCharType c);
-
-gchar *fribidi_type_name (FriBidiCharType c);
-
+	(FRIBIDI_IS_OVERRIDE(p) ? FRIBIDI_LEVEL_TO_DIR(FRIBIDI_DIR_TO_LEVEL(p)) \
+				: FRIBIDI_TYPE_ON)
 
-/* Define character types that fribidi_tables.i uses. if MEM_OPTIMIZED
-   defined, then define them to be 0, 1, 2, ... and then in
-   fribidi_get_type.c map them on FriBidiCharType-s, else define them to
-   be equal to FribidiCharType-s */
-#ifdef MEM_OPTIMIZED
-#define _FRIBIDI_PROP(type) FRIBIDI_PROP_TYPE_##type
-typedef guint8 FriBidiPropCharType;
-#else
-#define _FRIBIDI_PROP(type) FRIBIDI_PROP_TYPE_##type = FRIBIDI_TYPE_##type
-typedef FriBidiCharType FriBidiPropCharType;
-#endif
-enum
-{
-  _FRIBIDI_PROP (LTR),		/* Strong left to right */
-  _FRIBIDI_PROP (RTL),		/* Right to left characters */
-  _FRIBIDI_PROP (AL),		/* Arabic characters */
-  _FRIBIDI_PROP (LRE),		/* Left-To-Right embedding */
-  _FRIBIDI_PROP (RLE),		/* Right-To-Left embedding */
-  _FRIBIDI_PROP (LRO),		/* Left-To-Right override */
-  _FRIBIDI_PROP (RLO),		/* Right-To-Left override */
-  _FRIBIDI_PROP (PDF),		/* Pop directional override */
-  _FRIBIDI_PROP (EN),		/* European digit */
-  _FRIBIDI_PROP (AN),		/* Arabic digit */
-  _FRIBIDI_PROP (ES),		/* European number separator */
-  _FRIBIDI_PROP (ET),		/* European number terminator */
-  _FRIBIDI_PROP (CS),		/* Common Separator */
-  _FRIBIDI_PROP (NSM),		/* Non spacing mark */
-  _FRIBIDI_PROP (BN),		/* Boundary neutral */
-  _FRIBIDI_PROP (BS),		/* Block separator */
-  _FRIBIDI_PROP (SS),		/* Segment separator */
-  _FRIBIDI_PROP (WS),		/* Whitespace */
-  _FRIBIDI_PROP (ON),		/* Other Neutral */
-  _FRIBIDI_PROP (WL),		/* Weak left to right */
-  _FRIBIDI_PROP (WR),		/* Weak right to left */
-  _FRIBIDI_PROP (SOT),		/* Start of text */
-  _FRIBIDI_PROP (EOT)		/* End of text */
-};
-#undef _FRIBIDI_PROP
-
-/* The following type is used by fribidi_utils */
-typedef struct
-{
-  int length;
-  void *attribute;
-}
-FriBidiRunType;
-
-/* TBD: The following should be configuration parameters, once we can
-   figure out how to make configure set them... */
-#ifndef FRIBIDI_MAX_STRING_LENGTH
-#define FRIBIDI_MAX_STRING_LENGTH 65535
-#endif
+/*
+ * Define character types that char_type_tables use.
+ * define them to be 0, 1, 2, ... and then in _pango_fribidi_get_type.c map them
+ * to FriBidiCharTypes.
+ */
+  typedef char FriBidiPropCharType;
 
-FriBidiCharType _pango_fribidi_get_type(FriBidiChar uch);
+  enum FriBidiPropEnum
+  {
+#define _FRIBIDI_ADD_TYPE(TYPE) FRIBIDI_PROP_TYPE_##TYPE,
+#include "fribidi_types.i"
+#undef _FRIBIDI_ADD_TYPE
+    FRIBIDI_TYPES_COUNT		/* Number of different character types */
+  };
+
+/* Map fribidi_prop_types to fribidi_types */
+  extern FriBidiCharType *_pango_fribidi_prop_to_type;
+
+
+/*======================================================================
+ *  _pango_fribidi_get_type() returns bidi type of a character.
+ *----------------------------------------------------------------------*/
+  FriBidiCharType _pango_fribidi_get_type (FriBidiChar uch);
 
-#endif
+#endif  /* #ifndef FRIBIDI_TYPES_H */
Index: pango/mini-fribidi/fribidi_types.i
===================================================================
RCS file: pango/mini-fribidi/fribidi_types.i
diff -N pango/mini-fribidi/fribidi_types.i
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ pango/mini-fribidi/fribidi_types.i	14 Jul 2003 22:44:12 -0000
@@ -0,0 +1,21 @@
+_FRIBIDI_ADD_TYPE(LTR)		/* Strong left to right */
+_FRIBIDI_ADD_TYPE(RTL)		/* Right to left characters */
+_FRIBIDI_ADD_TYPE(AL)		/* Arabic characters */
+_FRIBIDI_ADD_TYPE(LRE)		/* Left-To-Right embedding */
+_FRIBIDI_ADD_TYPE(RLE)		/* Right-To-Left embedding */
+_FRIBIDI_ADD_TYPE(LRO)		/* Left-To-Right override */
+_FRIBIDI_ADD_TYPE(RLO)		/* Right-To-Left override */
+_FRIBIDI_ADD_TYPE(PDF)		/* Pop directional override */
+_FRIBIDI_ADD_TYPE(EN)		/* European digit */
+_FRIBIDI_ADD_TYPE(AN)		/* Arabic digit */
+_FRIBIDI_ADD_TYPE(ES)		/* European number separator */
+_FRIBIDI_ADD_TYPE(ET)		/* European number terminator */
+_FRIBIDI_ADD_TYPE(CS)		/* Common Separator */
+_FRIBIDI_ADD_TYPE(NSM)		/* Non spacing mark */
+_FRIBIDI_ADD_TYPE(BN)		/* Boundary neutral */
+_FRIBIDI_ADD_TYPE(BS)		/* Block separator */
+_FRIBIDI_ADD_TYPE(SS)		/* Segment separator */
+_FRIBIDI_ADD_TYPE(WS)		/* Whitespace */
+_FRIBIDI_ADD_TYPE(ON)		/* Other Neutral */
+_FRIBIDI_ADD_TYPE(WL)		/* Weak left to right */
+_FRIBIDI_ADD_TYPE(WR)		/* Weak right to left */
