]> www.wagner.pp.ru Git - oss/catdoc.git/blob - charsets/mac-arabic.txt
Fix resource leaks found by cppcheck
[oss/catdoc.git] / charsets / mac-arabic.txt
1 #=======================================================================
2 #   File name:  ARABIC.TXT
3 #
4 #   Contents:   Map (external version) from Mac OS Arabic
5 #               character set to Unicode 2.1 and later.
6 #
7 #   Copyright:  (c) 1994-2002, 2005 by Apple Computer, Inc., all rights
8 #               reserved.
9 #
10 #   Contact:    charsets@apple.com
11 #
12 #   Changes:
13 #
14 #       c02  2005-Apr-04    Update header comments. Matches internal xml
15 #                           <c1.2> and Text Encoding Converter 2.0.
16 #      b3,c1 2002-Dec-19    Add comments about character display and
17 #                           direction overrides. Update URLs, notes.
18 #                           Matches internal utom<b4>.
19 #       b02  1999-Sep-22    Update contact e-mail address. Matches
20 #                           internal utom<b1>, ufrm<b1>, and Text
21 #                           Encoding Converter version 1.5.
22 #       n10  1998-Feb-05    Show required Unicode character
23 #                           directionality in a different way. Matches
24 #                           internal utom<n4>, ufrm<n21>, and Text
25 #                           Encoding Converter version 1.3. Update
26 #                           header comments; include information on
27 #                           loose mapping of digits.
28 #       n07  1997-Jul-17    Update to match internal utom<n2>, ufrm<n17>:
29 #                           Change standard mapping for 0xC0 from U+066D
30 #                           to U+274A. Add direction overrides to
31 #                           mappings for 0x25, 0x2C, 0x3B, 0x3F. Add
32 #                           information on variants.
33 #       n03  1995-Apr-18    First version (after fixing some typos).
34 #                           Matches internal ufrm<n11>.
35 #
36 # Standard header:
37 # ----------------
38 #
39 #   Apple, the Apple logo, and Macintosh are trademarks of Apple
40 #   Computer, Inc., registered in the United States and other countries.
41 #   Unicode is a trademark of Unicode Inc. For the sake of brevity,
42 #   throughout this document, "Macintosh" can be used to refer to
43 #   Macintosh computers and "Unicode" can be used to refer to the
44 #   Unicode standard.
45 #
46 #   Apple Computer, Inc. ("Apple") makes no warranty or representation,
47 #   either express or implied, with respect to this document and the
48 #   included data, its quality, accuracy, or fitness for a particular
49 #   purpose. In no event will Apple be liable for direct, indirect, 
50 #   special, incidental, or consequential damages resulting from any
51 #   defect or inaccuracy in this document or the included data.
52 #
53 #   These mapping tables and character lists are subject to change.
54 #   The latest tables should be available from the following:
55 #
56 #   <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
57 #
58 #   For general information about Mac OS encodings and these mapping
59 #   tables, see the file "README.TXT".
60 #
61 # Format:
62 # -------
63 #
64 #   Three tab-separated columns;
65 #   '#' begins a comment which continues to the end of the line.
66 #     Column #1 is the Mac OS Arabic code (in hex as 0xNN).
67 #     Column #2 is the corresponding Unicode (in hex as 0xNNNN),
68 #       possibly preceded by a tag indicating required directionality
69 #       (i.e. <LR>+0xNNNN or <RL>+0xNNNN).
70 #     Column #3 is a comment containing the Unicode name.
71 #
72 #   The entries are in Mac OS Arabic code order.
73 #
74 #   Control character mappings are not shown in this table, following
75 #   the conventions of the standard UTC mapping tables. However, the
76 #   Mac OS Arabic character set uses the standard control characters at
77 #   0x00-0x1F and 0x7F.
78 #
79 # Notes on Mac OS Arabic:
80 # -----------------------
81 #
82 #   This is a legacy Mac OS encoding; in the Mac OS X Carbon and Cocoa
83 #   environments, it is only supported via transcoding to and from
84 #   Unicode.
85 #
86 #   1. General
87 #
88 #   The Mac OS Arabic character set is intended to cover Arabic as
89 #   used in North Africa, the Arabian peninsula, and the Levant. It
90 #   also contains several characters needed for Urdu and/or Farsi.
91 #
92 #   The Mac OS Arabic character set is essentially a superset of ISO
93 #   8859-6. The 8859-6 code points that are interpreted differently
94 #   in the Mac OS Arabic set are as follows:
95 #    0xA0 is NO-BREAK SPACE in 8859-6 and right-left SPACE in Mac OS
96 #         Arabic; NO-BREAK is 0x81 in Mac OS Arabic.
97 #    0xA4 is CURRENCY SIGN in 8859-6 and right-left DOLLAR SIGN in
98 #         Mac OS Arabic.
99 #    0xAD is SOFT HYPHEN in 8859-6 and right-left HYPHEN-MINUS in
100 #         Mac OS Arabic.
101 #   ISO 8859-6 specifies that codes 0x30-0x39 can be rendered either
102 #   with European digit shapes or Arabic digit shapes. This is also
103 #   true in Mac OS Arabic, which determines from context which digit
104 #   shapes to use (see below).
105 #
106 #   The Mac OS Arabic character set uses the C1 controls area and other
107 #   code points which are undefined in ISO 8859-6 for additional
108 #   graphic characters: additional Arabic letters for Farsi and Urdu,
109 #   some accented Roman letters for European languages (such as French),
110 #   and duplicates of some of the punctuation, symbols, and digits in
111 #   the ASCII block. The duplicate punctuation, symbol, and digit
112 #   characters have right-left directionality, while the ASCII versions
113 #   have left-right directionality. See the next section for more
114 #   information on this.
115 #
116 #   Mac OS Arabic characters 0xEB-0xF2 are non-spacing/combining marks.
117 #
118 #   2. Directional characters and roundtrip fidelity
119 #
120 #   The Mac OS Arabic character set was developed in 1986-1987. At that
121 #   time the bidirectional line layout algorithm used in the Mac OS
122 #   Arabic system was fairly simple; it used only a few direction
123 #   classes (instead of the 19 now used in the Unicode bidirectional
124 #   algorithm). In order to permit users to handle some tricky layout
125 #   problems, certain punctuation and symbol characters were encoded
126 #   twice, one with a left-right direction attribute and the other with
127 #   a right-left direction attribute.
128 #
129 #   For example, plus sign is encoded at 0x2B with a left-right
130 #   attribute, and at 0xAB with a right-left attribute. However, there
131 #   is only one PLUS SIGN character in Unicode. This leads to some
132 #   interesting problems when mapping between Mac OS Arabic and Unicode;
133 #   see below.
134 #
135 #   A related problem is that even when a particular character is
136 #   encoded only once in Mac OS Arabic, it may have a different
137 #   direction attribute than the corresponding Unicode character.
138 #
139 #   For example, the Mac OS Arabic character at 0x93 is HORIZONTAL
140 #   ELLIPSIS with strong right-left direction. However, the Unicode
141 #   character HORIZONTAL ELLIPSIS has direction class neutral.
142 #
143 #   3. Behavior of ASCII-range numbers in WorldScript
144 #
145 #   Mac OS Arabic also has two sets of digit codes.
146 #
147 #   The digits at 0x30-0x39 may be displayed using either European
148 #   digit forms or Arabic digit forms, depending on context. If there
149 #   is a "strong European" character such as a Latin letter on either
150 #   side of a sequence consisting of digits 0x30-0x39 and possibly comma
151 #   0x2C or period 0x2E, then the characters will be displayed using
152 #   European forms (This will happen even if there are neutral characters
153 #   between the digits and the strong European character). Otherwise, the
154 #   digits will be displayed using Arabic forms, the comma will be
155 #   displayed as Arabic thousands separator, and the period as Arabic
156 #   decimal separator. In any case, 0x2C, 0x2E, and 0x30-0x39 are always
157 #   left-right.
158 #
159 #   The digits at 0xB0-0xB9 are always displayed using Arabic digit
160 #   shapes, and moreover, these digits always have strong right-left
161 #   directionality. These are mainly intended for special layout
162 #   purposes such as part numbers, etc.
163 #
164 #   4. Font variants
165 #
166 #   The table in this file gives the Unicode mappings for the standard
167 #   Mac OS Arabic encoding. This encoding is supported by the Cairo font
168 #   (the system font for Arabic), and is the encoding supported by the
169 #   text processing utilities. However, the other Arabic fonts actually
170 #   implement slightly different encodings; this mainly affects the code
171 #   points 0xAA and 0xC0. For these code points the standard Mac OS
172 #   Arabic encoding has the following mappings:
173 #     0xAA -> <RL>+0x002A ASTERISK, right-left
174 #     0xC0 -> <RL>+0x274A EIGHT TEARDROP-SPOKED PROPELLER ASTERISK,
175 #                         right-left
176 #   This mapping of 0xAA is consistent with the normal convention for
177 #   Mac OS Arabic and Hebrew that the right-left duplicates have codes
178 #   that are equal to the ASCII code of the left-right character plus
179 #   0x80. However, in all of the other fonts, 0xAA is MULTIPLY SIGN, and
180 #   right-left ASTERISK may be at a different code point. The other
181 #   variants are described below.
182 #
183 #   The TrueType variant is used for most of the Arabic TrueType fonts:
184 #   Baghdad, Geeza, Kufi, Nadeem.  It differs from the standard variant
185 #   in the following way:
186 #     0xAA -> <RL>+0x00D7 MULTIPLICATION SIGN, right-left
187 #     0xC0 -> <RL>+0x002A ASTERISK, right-left
188 #
189 #   The Thuluth variant is used for the Arabic Postscript-only fonts:
190 #   Thuluth and Thuluth bold. It differs from the standard variant in
191 #   the following way:
192 #     0xAA -> <RL>+0x00D7 MULTIPLICATION SIGN, right-left
193 #     0xC0 -> 0x066D ARABIC FIVE POINTED STAR
194 #
195 #   The AlBayan variant is used for the Arabic TrueType font Al Bayan.
196 #   It differs from the standard variant in the following way:
197 #     0x81 -> no mapping (glyph just has authorship information, etc.)
198 #     0xA3 -> 0xFDFA ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
199 #     0xA4 -> 0xFDF2 ARABIC LIGATURE ALLAH ISOLATED FORM
200 #     0xAA -> <RL>+0x00D7 MULTIPLICATION SIGN, right-left
201 #     0xDC -> <RL>+0x25CF BLACK CIRCLE, right-left
202 #     0xFC -> <RL>+0x25A0 BLACK SQUARE, right-left
203 #
204 # Unicode mapping issues and notes:
205 # ---------------------------------
206 #
207 #   1. Matching the direction of Mac OS Arabic characters
208 #
209 #   When Mac OS Arabic encodes a character twice but with different
210 #   direction attributes for the two code points - as in the case of
211 #   plus sign mentioned above - we need a way to map both Mac OS Arabic
212 #   code points to Unicode and back again without loss of information.
213 #   With the plus sign, for example, mapping one of the Mac OS Arabic
214 #   characters to a code in the Unicode corporate use zone is
215 #   undesirable, since both of the plus sign characters are likely to
216 #   be used in text that is interchanged.
217 #
218 #   The problem is solved with the use of direction override characters
219 #   and direction-dependent mappings. When mapping from Mac OS Arabic
220 #   to Unicode, we use direction overrides as necessary to force the
221 #   direction of the resulting Unicode characters.
222 #
223 #   The required direction is indicated by a direction tag in the
224 #   mappings. A tag of <LR> means the corresponding Unicode character
225 #   must have a strong left-right context, and a tag of <RL> indicates
226 #   a right-left context.
227 #
228 #   For example, the mapping of 0x2B is given as <LR>+0x002B; the
229 #   mapping of 0xAB is given as <RL>+0x002B. If we map an isolated
230 #   instance of 0x2B to Unicode, it should be mapped as follows (LRO
231 #   indicates LEFT-RIGHT OVERRIDE, PDF indicates POP DIRECTION
232 #   FORMATTING):
233 #
234 #     0x2B ->  0x202D (LRO) + 0x002B (PLUS SIGN) + 0x202C (PDF)
235 #
236 #   When mapping several characters in a row that require direction
237 #   forcing, the overrides need only be used at the beginning and end.
238 #   For example:
239 #
240 #     0x24 0x20 0x28 0x29 -> 0x202D 0x0024 0x0020 0x0028 0x0029 0x202C
241 #
242 #   If neutral characters that require direction forcing are already
243 #   between strong-direction characters with matching directionality,
244 #   then direction overrides need not be used. Direction overrides are
245 #   always needed to map the right-left digits at 0xB0-0xB9.
246 #
247 #   When mapping from Unicode to Mac OS Arabic, the Unicode
248 #   bidirectional algorithm should be used to determine resolved
249 #   direction of the Unicode characters. The mapping from Unicode to
250 #   Mac OS Arabic can then be disambiguated by the use of the resolved
251 #   direction:
252 #
253 #     Unicode 0x002B -> Mac OS Arabic 0x2B (if L) or 0xAB (if R)
254 #
255 #   However, this also means the direction override characters should
256 #   be discarded when mapping from Unicode to Mac OS Arabic (after
257 #   they have been used to determine resolved direction), since the
258 #   direction override information is carried by the code point itself.
259 #
260 #   Even when direction overrides are not needed for roundtrip
261 #   fidelity, they are sometimes used when mapping Mac OS Arabic
262 #   characters to Unicode in order to achieve similar text layout with
263 #   the resulting Unicode text. For example, the single Mac OS Arabic
264 #   ellipsis character has direction class right-left,and there is no
265 #   left-right version. However, the Unicode HORIZONTAL ELLIPSIS
266 #   character has direction class neutral (which means it may end up
267 #   with a resolved direction of left-right if surrounded by left-right
268 #   characters). When mapping the Mac OS Arabic ellipsis to Unicode, it
269 #   is surrounded with a direction override to help preserve proper
270 #   text layout. The resolved direction is not needed or used when
271 #   mapping the Unicode HORIZONTAL ELLIPSIS back to Mac OS Arabic.
272 #
273 #   2. Mapping the Mac OS Arabic digits
274 #
275 #   The main table below contains mappings that should be used when
276 #   strict round-trip fidelity is required. However, for numeric
277 #   values, the mappings in that table will produce Unicode characters
278 #   that may appear different than the Mac OS Arabic text displayed on
279 #   a Mac OS system using WorldScript. This is because WorldScript
280 #   uses context-dependent display for the 0x30-0x39 digits.
281 #
282 #   If roundtrip fidelity is not required, then the following
283 #   alternate mappings should be used when a sequence of 0x30-0x39
284 #   digits - possibly including 0x2C and 0x2E - occurs in an Arabic
285 #   context (that is, when the first "strong" character on either side
286 #   of the digit sequence is Arabic, or there is no strong character):
287 #
288 #     0x2C      0x066C  # ARABIC THOUSANDS SEPARATOR
289 #     0x2E      0x066B  # ARABIC DECIMAL SEPARATOR
290 #     0x30      0x0660  # ARABIC-INDIC DIGIT ZERO
291 #     0x31      0x0661  # ARABIC-INDIC DIGIT ONE
292 #     0x32      0x0662  # ARABIC-INDIC DIGIT TWO
293 #     0x33      0x0663  # ARABIC-INDIC DIGIT THREE
294 #     0x34      0x0664  # ARABIC-INDIC DIGIT FOUR
295 #     0x35      0x0665  # ARABIC-INDIC DIGIT FIVE
296 #     0x36      0x0666  # ARABIC-INDIC DIGIT SIX
297 #     0x37      0x0667  # ARABIC-INDIC DIGIT SEVEN
298 #     0x38      0x0668  # ARABIC-INDIC DIGIT EIGHT
299 #     0x39      0x0669  # ARABIC-INDIC DIGIT NINE
300 #
301 # Details of mapping changes in each version:
302 # -------------------------------------------
303 #
304 #   Changes from version n03 to version n07:
305 #
306 #   - Change mapping for 0xC0 from U+066D to U+274A.
307 #
308 #   - Add direction overrides (required directionality) to mappings
309 #     for 0x25, 0x2C, 0x3B, 0x3F.
310 #
311 ##################
312
313 0x20    <LR>+0x0020     # SPACE, left-right
314 0x21    <LR>+0x0021     # EXCLAMATION MARK, left-right
315 0x22    <LR>+0x0022     # QUOTATION MARK, left-right
316 0x23    <LR>+0x0023     # NUMBER SIGN, left-right
317 0x24    <LR>+0x0024     # DOLLAR SIGN, left-right
318 0x25    <LR>+0x0025     # PERCENT SIGN, left-right
319 0x26    <LR>+0x0026     # AMPERSAND, left-right
320 0x27    <LR>+0x0027     # APOSTROPHE, left-right
321 0x28    <LR>+0x0028     # LEFT PARENTHESIS, left-right
322 0x29    <LR>+0x0029     # RIGHT PARENTHESIS, left-right
323 0x2A    <LR>+0x002A     # ASTERISK, left-right
324 0x2B    <LR>+0x002B     # PLUS SIGN, left-right
325 0x2C    <LR>+0x002C     # COMMA, left-right; in Arabic-script context, displayed as 0x066C ARABIC THOUSANDS SEPARATOR
326 0x2D    <LR>+0x002D     # HYPHEN-MINUS, left-right
327 0x2E    <LR>+0x002E     # FULL STOP, left-right; in Arabic-script context, displayed as 0x066B ARABIC DECIMAL SEPARATOR
328 0x2F    <LR>+0x002F     # SOLIDUS, left-right
329 0x30    0x0030  # DIGIT ZERO;  in Arabic-script context, displayed as 0x0660 ARABIC-INDIC DIGIT ZERO
330 0x31    0x0031  # DIGIT ONE;   in Arabic-script context, displayed as 0x0661 ARABIC-INDIC DIGIT ONE
331 0x32    0x0032  # DIGIT TWO;   in Arabic-script context, displayed as 0x0662 ARABIC-INDIC DIGIT TWO
332 0x33    0x0033  # DIGIT THREE; in Arabic-script context, displayed as 0x0663 ARABIC-INDIC DIGIT THREE
333 0x34    0x0034  # DIGIT FOUR;  in Arabic-script context, displayed as 0x0664 ARABIC-INDIC DIGIT FOUR
334 0x35    0x0035  # DIGIT FIVE;  in Arabic-script context, displayed as 0x0665 ARABIC-INDIC DIGIT FIVE
335 0x36    0x0036  # DIGIT SIX;   in Arabic-script context, displayed as 0x0666 ARABIC-INDIC DIGIT SIX
336 0x37    0x0037  # DIGIT SEVEN; in Arabic-script context, displayed as 0x0667 ARABIC-INDIC DIGIT SEVEN
337 0x38    0x0038  # DIGIT EIGHT; in Arabic-script context, displayed as 0x0668 ARABIC-INDIC DIGIT EIGHT
338 0x39    0x0039  # DIGIT NINE;  in Arabic-script context, displayed as 0x0669 ARABIC-INDIC DIGIT NINE
339 0x3A    <LR>+0x003A     # COLON, left-right
340 0x3B    <LR>+0x003B     # SEMICOLON, left-right
341 0x3C    <LR>+0x003C     # LESS-THAN SIGN, left-right
342 0x3D    <LR>+0x003D     # EQUALS SIGN, left-right
343 0x3E    <LR>+0x003E     # GREATER-THAN SIGN, left-right
344 0x3F    <LR>+0x003F     # QUESTION MARK, left-right
345 0x40    0x0040  # COMMERCIAL AT
346 0x41    0x0041  # LATIN CAPITAL LETTER A
347 0x42    0x0042  # LATIN CAPITAL LETTER B
348 0x43    0x0043  # LATIN CAPITAL LETTER C
349 0x44    0x0044  # LATIN CAPITAL LETTER D
350 0x45    0x0045  # LATIN CAPITAL LETTER E
351 0x46    0x0046  # LATIN CAPITAL LETTER F
352 0x47    0x0047  # LATIN CAPITAL LETTER G
353 0x48    0x0048  # LATIN CAPITAL LETTER H
354 0x49    0x0049  # LATIN CAPITAL LETTER I
355 0x4A    0x004A  # LATIN CAPITAL LETTER J
356 0x4B    0x004B  # LATIN CAPITAL LETTER K
357 0x4C    0x004C  # LATIN CAPITAL LETTER L
358 0x4D    0x004D  # LATIN CAPITAL LETTER M
359 0x4E    0x004E  # LATIN CAPITAL LETTER N
360 0x4F    0x004F  # LATIN CAPITAL LETTER O
361 0x50    0x0050  # LATIN CAPITAL LETTER P
362 0x51    0x0051  # LATIN CAPITAL LETTER Q
363 0x52    0x0052  # LATIN CAPITAL LETTER R
364 0x53    0x0053  # LATIN CAPITAL LETTER S
365 0x54    0x0054  # LATIN CAPITAL LETTER T
366 0x55    0x0055  # LATIN CAPITAL LETTER U
367 0x56    0x0056  # LATIN CAPITAL LETTER V
368 0x57    0x0057  # LATIN CAPITAL LETTER W
369 0x58    0x0058  # LATIN CAPITAL LETTER X
370 0x59    0x0059  # LATIN CAPITAL LETTER Y
371 0x5A    0x005A  # LATIN CAPITAL LETTER Z
372 0x5B    <LR>+0x005B     # LEFT SQUARE BRACKET, left-right
373 0x5C    <LR>+0x005C     # REVERSE SOLIDUS, left-right
374 0x5D    <LR>+0x005D     # RIGHT SQUARE BRACKET, left-right
375 0x5E    <LR>+0x005E     # CIRCUMFLEX ACCENT, left-right
376 0x5F    <LR>+0x005F     # LOW LINE, left-right
377 0x60    0x0060  # GRAVE ACCENT
378 0x61    0x0061  # LATIN SMALL LETTER A
379 0x62    0x0062  # LATIN SMALL LETTER B
380 0x63    0x0063  # LATIN SMALL LETTER C
381 0x64    0x0064  # LATIN SMALL LETTER D
382 0x65    0x0065  # LATIN SMALL LETTER E
383 0x66    0x0066  # LATIN SMALL LETTER F
384 0x67    0x0067  # LATIN SMALL LETTER G
385 0x68    0x0068  # LATIN SMALL LETTER H
386 0x69    0x0069  # LATIN SMALL LETTER I
387 0x6A    0x006A  # LATIN SMALL LETTER J
388 0x6B    0x006B  # LATIN SMALL LETTER K
389 0x6C    0x006C  # LATIN SMALL LETTER L
390 0x6D    0x006D  # LATIN SMALL LETTER M
391 0x6E    0x006E  # LATIN SMALL LETTER N
392 0x6F    0x006F  # LATIN SMALL LETTER O
393 0x70    0x0070  # LATIN SMALL LETTER P
394 0x71    0x0071  # LATIN SMALL LETTER Q
395 0x72    0x0072  # LATIN SMALL LETTER R
396 0x73    0x0073  # LATIN SMALL LETTER S
397 0x74    0x0074  # LATIN SMALL LETTER T
398 0x75    0x0075  # LATIN SMALL LETTER U
399 0x76    0x0076  # LATIN SMALL LETTER V
400 0x77    0x0077  # LATIN SMALL LETTER W
401 0x78    0x0078  # LATIN SMALL LETTER X
402 0x79    0x0079  # LATIN SMALL LETTER Y
403 0x7A    0x007A  # LATIN SMALL LETTER Z
404 0x7B    <LR>+0x007B     # LEFT CURLY BRACKET, left-right
405 0x7C    <LR>+0x007C     # VERTICAL LINE, left-right
406 0x7D    <LR>+0x007D     # RIGHT CURLY BRACKET, left-right
407 0x7E    0x007E  # TILDE
408 #
409 0x80    0x00C4  # LATIN CAPITAL LETTER A WITH DIAERESIS
410 0x81    <RL>+0x00A0     # NO-BREAK SPACE, right-left
411 0x82    0x00C7  # LATIN CAPITAL LETTER C WITH CEDILLA
412 0x83    0x00C9  # LATIN CAPITAL LETTER E WITH ACUTE
413 0x84    0x00D1  # LATIN CAPITAL LETTER N WITH TILDE
414 0x85    0x00D6  # LATIN CAPITAL LETTER O WITH DIAERESIS
415 0x86    0x00DC  # LATIN CAPITAL LETTER U WITH DIAERESIS
416 0x87    0x00E1  # LATIN SMALL LETTER A WITH ACUTE
417 0x88    0x00E0  # LATIN SMALL LETTER A WITH GRAVE
418 0x89    0x00E2  # LATIN SMALL LETTER A WITH CIRCUMFLEX
419 0x8A    0x00E4  # LATIN SMALL LETTER A WITH DIAERESIS
420 0x8B    0x06BA  # ARABIC LETTER NOON GHUNNA
421 0x8C    <RL>+0x00AB     # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
422 0x8D    0x00E7  # LATIN SMALL LETTER C WITH CEDILLA
423 0x8E    0x00E9  # LATIN SMALL LETTER E WITH ACUTE
424 0x8F    0x00E8  # LATIN SMALL LETTER E WITH GRAVE
425 0x90    0x00EA  # LATIN SMALL LETTER E WITH CIRCUMFLEX
426 0x91    0x00EB  # LATIN SMALL LETTER E WITH DIAERESIS
427 0x92    0x00ED  # LATIN SMALL LETTER I WITH ACUTE
428 0x93    <RL>+0x2026     # HORIZONTAL ELLIPSIS, right-left
429 0x94    0x00EE  # LATIN SMALL LETTER I WITH CIRCUMFLEX
430 0x95    0x00EF  # LATIN SMALL LETTER I WITH DIAERESIS
431 0x96    0x00F1  # LATIN SMALL LETTER N WITH TILDE
432 0x97    0x00F3  # LATIN SMALL LETTER O WITH ACUTE
433 0x98    <RL>+0x00BB     # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
434 0x99    0x00F4  # LATIN SMALL LETTER O WITH CIRCUMFLEX
435 0x9A    0x00F6  # LATIN SMALL LETTER O WITH DIAERESIS
436 0x9B    <RL>+0x00F7     # DIVISION SIGN, right-left
437 0x9C    0x00FA  # LATIN SMALL LETTER U WITH ACUTE
438 0x9D    0x00F9  # LATIN SMALL LETTER U WITH GRAVE
439 0x9E    0x00FB  # LATIN SMALL LETTER U WITH CIRCUMFLEX
440 0x9F    0x00FC  # LATIN SMALL LETTER U WITH DIAERESIS
441 0xA0    <RL>+0x0020     # SPACE, right-left
442 0xA1    <RL>+0x0021     # EXCLAMATION MARK, right-left
443 0xA2    <RL>+0x0022     # QUOTATION MARK, right-left
444 0xA3    <RL>+0x0023     # NUMBER SIGN, right-left
445 0xA4    <RL>+0x0024     # DOLLAR SIGN, right-left
446 0xA5    0x066A  # ARABIC PERCENT SIGN
447 0xA6    <RL>+0x0026     # AMPERSAND, right-left
448 0xA7    <RL>+0x0027     # APOSTROPHE, right-left
449 0xA8    <RL>+0x0028     # LEFT PARENTHESIS, right-left
450 0xA9    <RL>+0x0029     # RIGHT PARENTHESIS, right-left
451 0xAA    <RL>+0x002A     # ASTERISK, right-left
452 0xAB    <RL>+0x002B     # PLUS SIGN, right-left
453 0xAC    0x060C  # ARABIC COMMA
454 0xAD    <RL>+0x002D     # HYPHEN-MINUS, right-left
455 0xAE    <RL>+0x002E     # FULL STOP, right-left
456 0xAF    <RL>+0x002F     # SOLIDUS, right-left
457 0xB0    <RL>+0x0660     # ARABIC-INDIC DIGIT ZERO, right-left (need override)
458 0xB1    <RL>+0x0661     # ARABIC-INDIC DIGIT ONE, right-left (need override)
459 0xB2    <RL>+0x0662     # ARABIC-INDIC DIGIT TWO, right-left (need override)
460 0xB3    <RL>+0x0663     # ARABIC-INDIC DIGIT THREE, right-left (need override)
461 0xB4    <RL>+0x0664     # ARABIC-INDIC DIGIT FOUR, right-left (need override)
462 0xB5    <RL>+0x0665     # ARABIC-INDIC DIGIT FIVE, right-left (need override)
463 0xB6    <RL>+0x0666     # ARABIC-INDIC DIGIT SIX, right-left (need override)
464 0xB7    <RL>+0x0667     # ARABIC-INDIC DIGIT SEVEN, right-left (need override)
465 0xB8    <RL>+0x0668     # ARABIC-INDIC DIGIT EIGHT, right-left (need override)
466 0xB9    <RL>+0x0669     # ARABIC-INDIC DIGIT NINE, right-left (need override)
467 0xBA    <RL>+0x003A     # COLON, right-left
468 0xBB    0x061B  # ARABIC SEMICOLON
469 0xBC    <RL>+0x003C     # LESS-THAN SIGN, right-left
470 0xBD    <RL>+0x003D     # EQUALS SIGN, right-left
471 0xBE    <RL>+0x003E     # GREATER-THAN SIGN, right-left
472 0xBF    0x061F  # ARABIC QUESTION MARK
473 0xC0    <RL>+0x274A     # EIGHT TEARDROP-SPOKED PROPELLER ASTERISK, right-left
474 0xC1    0x0621  # ARABIC LETTER HAMZA
475 0xC2    0x0622  # ARABIC LETTER ALEF WITH MADDA ABOVE
476 0xC3    0x0623  # ARABIC LETTER ALEF WITH HAMZA ABOVE
477 0xC4    0x0624  # ARABIC LETTER WAW WITH HAMZA ABOVE
478 0xC5    0x0625  # ARABIC LETTER ALEF WITH HAMZA BELOW
479 0xC6    0x0626  # ARABIC LETTER YEH WITH HAMZA ABOVE
480 0xC7    0x0627  # ARABIC LETTER ALEF
481 0xC8    0x0628  # ARABIC LETTER BEH
482 0xC9    0x0629  # ARABIC LETTER TEH MARBUTA
483 0xCA    0x062A  # ARABIC LETTER TEH
484 0xCB    0x062B  # ARABIC LETTER THEH
485 0xCC    0x062C  # ARABIC LETTER JEEM
486 0xCD    0x062D  # ARABIC LETTER HAH
487 0xCE    0x062E  # ARABIC LETTER KHAH
488 0xCF    0x062F  # ARABIC LETTER DAL
489 0xD0    0x0630  # ARABIC LETTER THAL
490 0xD1    0x0631  # ARABIC LETTER REH
491 0xD2    0x0632  # ARABIC LETTER ZAIN
492 0xD3    0x0633  # ARABIC LETTER SEEN
493 0xD4    0x0634  # ARABIC LETTER SHEEN
494 0xD5    0x0635  # ARABIC LETTER SAD
495 0xD6    0x0636  # ARABIC LETTER DAD
496 0xD7    0x0637  # ARABIC LETTER TAH
497 0xD8    0x0638  # ARABIC LETTER ZAH
498 0xD9    0x0639  # ARABIC LETTER AIN
499 0xDA    0x063A  # ARABIC LETTER GHAIN
500 0xDB    <RL>+0x005B     # LEFT SQUARE BRACKET, right-left
501 0xDC    <RL>+0x005C     # REVERSE SOLIDUS, right-left
502 0xDD    <RL>+0x005D     # RIGHT SQUARE BRACKET, right-left
503 0xDE    <RL>+0x005E     # CIRCUMFLEX ACCENT, right-left
504 0xDF    <RL>+0x005F     # LOW LINE, right-left
505 0xE0    0x0640  # ARABIC TATWEEL
506 0xE1    0x0641  # ARABIC LETTER FEH
507 0xE2    0x0642  # ARABIC LETTER QAF
508 0xE3    0x0643  # ARABIC LETTER KAF
509 0xE4    0x0644  # ARABIC LETTER LAM
510 0xE5    0x0645  # ARABIC LETTER MEEM
511 0xE6    0x0646  # ARABIC LETTER NOON
512 0xE7    0x0647  # ARABIC LETTER HEH
513 0xE8    0x0648  # ARABIC LETTER WAW
514 0xE9    0x0649  # ARABIC LETTER ALEF MAKSURA
515 0xEA    0x064A  # ARABIC LETTER YEH
516 0xEB    0x064B  # ARABIC FATHATAN
517 0xEC    0x064C  # ARABIC DAMMATAN
518 0xED    0x064D  # ARABIC KASRATAN
519 0xEE    0x064E  # ARABIC FATHA
520 0xEF    0x064F  # ARABIC DAMMA
521 0xF0    0x0650  # ARABIC KASRA
522 0xF1    0x0651  # ARABIC SHADDA
523 0xF2    0x0652  # ARABIC SUKUN
524 0xF3    0x067E  # ARABIC LETTER PEH
525 0xF4    0x0679  # ARABIC LETTER TTEH
526 0xF5    0x0686  # ARABIC LETTER TCHEH
527 0xF6    0x06D5  # ARABIC LETTER AE
528 0xF7    0x06A4  # ARABIC LETTER VEH
529 0xF8    0x06AF  # ARABIC LETTER GAF
530 0xF9    0x0688  # ARABIC LETTER DDAL
531 0xFA    0x0691  # ARABIC LETTER RREH
532 0xFB    <RL>+0x007B     # LEFT CURLY BRACKET, right-left
533 0xFC    <RL>+0x007C     # VERTICAL LINE, right-left
534 0xFD    <RL>+0x007D     # RIGHT CURLY BRACKET, right-left
535 0xFE    0x0698  # ARABIC LETTER JEH
536 0xFF    0x06D2  # ARABIC LETTER YEH BARREE