idna2008-1.0.0.0: internal/Text/IDNA2008/Internal/Bidi/Data.hs
-- |
-- Module : Text.IDNA2008.Internal.Bidi.Data
-- Description : Codegen'd Bidi_Class table for the per-label RFC 5893
-- check applied in "Text.IDNA2008.Internal.Parse".
-- Copyright : (c) Viktor Dukhovni, 2026
-- License : BSD-3-Clause
--
-- Maintainer : ietf-dane@dukhovni.org
-- Stability : unstable
--
-- AUTOMATICALLY GENERATED FROM DerivedBidiClass.txt. Do not edit by
-- hand. Regenerate with:
--
-- python3 internal/tools/genIdnaBidi.py <unicode-version> \\
-- <DerivedBidiClass.txt>
--
-- Source: https://www.unicode.org/Public/17.0.0/ucd/extracted/DerivedBidiClass.txt
-- Aligned with: Unicode 17.0.0
-- Range count: 1252
--
-- The table covers every Unicode codepoint in @[0, 0x10FFFF]@ with no
-- gaps: each entry says "from this start until the next entry's start
-- (or 0x10FFFF for the last), the resolved Bidi_Class is /T/". The
-- eleven classes relevant to RFC 5893 -- L, R, AL, AN, EN, ES, CS,
-- ET, ON, BN, NSM -- get distinct tags 0..10; every other class (B,
-- S, WS, the embedding\/override\/isolate format characters)
-- collapses to a single @Other@ tag (11), which the parser treats as
-- a Bidi-rule failure for any label in which it appears.
module Text.IDNA2008.Internal.Bidi.Data
( bidiRangeCount
, bidiRangeStarts
, bidiRangeTags
) where
import Data.Array.Byte (ByteArray)
import Data.Word (Word8, Word32)
import qualified Data.Primitive.ByteArray as PBA
-- | Number of (start, class) entries.
bidiRangeCount :: Int
bidiRangeCount = 1252
-- | Range starts; sorted ascending.
bidiRangeStarts :: ByteArray
bidiRangeStarts = PBA.byteArrayFromList
[ (0x000000 :: Word32), 0x000009, 0x00000E, 0x00001C, 0x000021, 0x000023, 0x000026, 0x00002B
, 0x00002C, 0x00002D, 0x00002E, 0x000030, 0x00003A, 0x00003B, 0x000041, 0x00005B
, 0x000061, 0x00007B, 0x00007F, 0x000085, 0x000086, 0x0000A0, 0x0000A1, 0x0000A2
, 0x0000A6, 0x0000AA, 0x0000AB, 0x0000AD, 0x0000AE, 0x0000B0, 0x0000B2, 0x0000B4
, 0x0000B5, 0x0000B6, 0x0000B9, 0x0000BA, 0x0000BB, 0x0000C0, 0x0000D7, 0x0000D8
, 0x0000F7, 0x0000F8, 0x0002B9, 0x0002BB, 0x0002C2, 0x0002D0, 0x0002D2, 0x0002E0
, 0x0002E5, 0x0002EE, 0x0002EF, 0x000300, 0x000370, 0x000374, 0x000376, 0x00037E
, 0x00037F, 0x000384, 0x000386, 0x000387, 0x000388, 0x0003F6, 0x0003F7, 0x000483
, 0x00048A, 0x00058A, 0x00058B, 0x00058D, 0x00058F, 0x000590, 0x000591, 0x0005BE
, 0x0005BF, 0x0005C0, 0x0005C1, 0x0005C3, 0x0005C4, 0x0005C6, 0x0005C7, 0x0005C8
, 0x000600, 0x000606, 0x000608, 0x000609, 0x00060B, 0x00060C, 0x00060D, 0x00060E
, 0x000610, 0x00061B, 0x00064B, 0x000660, 0x00066A, 0x00066B, 0x00066D, 0x000670
, 0x000671, 0x0006D6, 0x0006DD, 0x0006DE, 0x0006DF, 0x0006E5, 0x0006E7, 0x0006E9
, 0x0006EA, 0x0006EE, 0x0006F0, 0x0006FA, 0x000711, 0x000712, 0x000730, 0x00074B
, 0x0007A6, 0x0007B1, 0x0007C0, 0x0007EB, 0x0007F4, 0x0007F6, 0x0007FA, 0x0007FD
, 0x0007FE, 0x000816, 0x00081A, 0x00081B, 0x000824, 0x000825, 0x000828, 0x000829
, 0x00082E, 0x000859, 0x00085C, 0x000860, 0x000890, 0x000892, 0x000897, 0x0008A0
, 0x0008CA, 0x0008E2, 0x0008E3, 0x000903, 0x00093A, 0x00093B, 0x00093C, 0x00093D
, 0x000941, 0x000949, 0x00094D, 0x00094E, 0x000951, 0x000958, 0x000962, 0x000964
, 0x000981, 0x000982, 0x0009BC, 0x0009BD, 0x0009C1, 0x0009C5, 0x0009CD, 0x0009CE
, 0x0009E2, 0x0009E4, 0x0009F2, 0x0009F4, 0x0009FB, 0x0009FC, 0x0009FE, 0x0009FF
, 0x000A01, 0x000A03, 0x000A3C, 0x000A3D, 0x000A41, 0x000A43, 0x000A47, 0x000A49
, 0x000A4B, 0x000A4E, 0x000A51, 0x000A52, 0x000A70, 0x000A72, 0x000A75, 0x000A76
, 0x000A81, 0x000A83, 0x000ABC, 0x000ABD, 0x000AC1, 0x000AC6, 0x000AC7, 0x000AC9
, 0x000ACD, 0x000ACE, 0x000AE2, 0x000AE4, 0x000AF1, 0x000AF2, 0x000AFA, 0x000B00
, 0x000B01, 0x000B02, 0x000B3C, 0x000B3D, 0x000B3F, 0x000B40, 0x000B41, 0x000B45
, 0x000B4D, 0x000B4E, 0x000B55, 0x000B57, 0x000B62, 0x000B64, 0x000B82, 0x000B83
, 0x000BC0, 0x000BC1, 0x000BCD, 0x000BCE, 0x000BF3, 0x000BF9, 0x000BFA, 0x000BFB
, 0x000C00, 0x000C01, 0x000C04, 0x000C05, 0x000C3C, 0x000C3D, 0x000C3E, 0x000C41
, 0x000C46, 0x000C49, 0x000C4A, 0x000C4E, 0x000C55, 0x000C57, 0x000C62, 0x000C64
, 0x000C78, 0x000C7F, 0x000C81, 0x000C82, 0x000CBC, 0x000CBD, 0x000CCC, 0x000CCE
, 0x000CE2, 0x000CE4, 0x000D00, 0x000D02, 0x000D3B, 0x000D3D, 0x000D41, 0x000D45
, 0x000D4D, 0x000D4E, 0x000D62, 0x000D64, 0x000D81, 0x000D82, 0x000DCA, 0x000DCB
, 0x000DD2, 0x000DD5, 0x000DD6, 0x000DD7, 0x000E31, 0x000E32, 0x000E34, 0x000E3B
, 0x000E3F, 0x000E40, 0x000E47, 0x000E4F, 0x000EB1, 0x000EB2, 0x000EB4, 0x000EBD
, 0x000EC8, 0x000ECF, 0x000F18, 0x000F1A, 0x000F35, 0x000F36, 0x000F37, 0x000F38
, 0x000F39, 0x000F3A, 0x000F3E, 0x000F71, 0x000F7F, 0x000F80, 0x000F85, 0x000F86
, 0x000F88, 0x000F8D, 0x000F98, 0x000F99, 0x000FBD, 0x000FC6, 0x000FC7, 0x00102D
, 0x001031, 0x001032, 0x001038, 0x001039, 0x00103B, 0x00103D, 0x00103F, 0x001058
, 0x00105A, 0x00105E, 0x001061, 0x001071, 0x001075, 0x001082, 0x001083, 0x001085
, 0x001087, 0x00108D, 0x00108E, 0x00109D, 0x00109E, 0x00135D, 0x001360, 0x001390
, 0x00139A, 0x001400, 0x001401, 0x001680, 0x001681, 0x00169B, 0x00169D, 0x001712
, 0x001715, 0x001732, 0x001734, 0x001752, 0x001754, 0x001772, 0x001774, 0x0017B4
, 0x0017B6, 0x0017B7, 0x0017BE, 0x0017C6, 0x0017C7, 0x0017C9, 0x0017D4, 0x0017DB
, 0x0017DC, 0x0017DD, 0x0017DE, 0x0017F0, 0x0017FA, 0x001800, 0x00180B, 0x00180E
, 0x00180F, 0x001810, 0x001885, 0x001887, 0x0018A9, 0x0018AA, 0x001920, 0x001923
, 0x001927, 0x001929, 0x001932, 0x001933, 0x001939, 0x00193C, 0x001940, 0x001941
, 0x001944, 0x001946, 0x0019DE, 0x001A00, 0x001A17, 0x001A19, 0x001A1B, 0x001A1C
, 0x001A56, 0x001A57, 0x001A58, 0x001A5F, 0x001A60, 0x001A61, 0x001A62, 0x001A63
, 0x001A65, 0x001A6D, 0x001A73, 0x001A7D, 0x001A7F, 0x001A80, 0x001AB0, 0x001ADE
, 0x001AE0, 0x001AEC, 0x001B00, 0x001B04, 0x001B34, 0x001B35, 0x001B36, 0x001B3B
, 0x001B3C, 0x001B3D, 0x001B42, 0x001B43, 0x001B6B, 0x001B74, 0x001B80, 0x001B82
, 0x001BA2, 0x001BA6, 0x001BA8, 0x001BAA, 0x001BAB, 0x001BAE, 0x001BE6, 0x001BE7
, 0x001BE8, 0x001BEA, 0x001BED, 0x001BEE, 0x001BEF, 0x001BF2, 0x001C2C, 0x001C34
, 0x001C36, 0x001C38, 0x001CD0, 0x001CD3, 0x001CD4, 0x001CE1, 0x001CE2, 0x001CE9
, 0x001CED, 0x001CEE, 0x001CF4, 0x001CF5, 0x001CF8, 0x001CFA, 0x001DC0, 0x001E00
, 0x001FBD, 0x001FBE, 0x001FBF, 0x001FC2, 0x001FCD, 0x001FD0, 0x001FDD, 0x001FE0
, 0x001FED, 0x001FF0, 0x001FFD, 0x001FFF, 0x002000, 0x00200B, 0x00200E, 0x00200F
, 0x002010, 0x002028, 0x00202F, 0x002030, 0x002035, 0x002044, 0x002045, 0x00205F
, 0x002060, 0x002066, 0x00206A, 0x002070, 0x002071, 0x002074, 0x00207A, 0x00207C
, 0x00207F, 0x002080, 0x00208A, 0x00208C, 0x00208F, 0x0020A0, 0x0020D0, 0x0020F1
, 0x002100, 0x002102, 0x002103, 0x002107, 0x002108, 0x00210A, 0x002114, 0x002115
, 0x002116, 0x002119, 0x00211E, 0x002124, 0x002125, 0x002126, 0x002127, 0x002128
, 0x002129, 0x00212A, 0x00212E, 0x00212F, 0x00213A, 0x00213C, 0x002140, 0x002145
, 0x00214A, 0x00214E, 0x002150, 0x002160, 0x002189, 0x00218C, 0x002190, 0x002212
, 0x002213, 0x002214, 0x002336, 0x00237B, 0x002395, 0x002396, 0x00242A, 0x002440
, 0x00244B, 0x002460, 0x002488, 0x00249C, 0x0024EA, 0x0026AC, 0x0026AD, 0x002800
, 0x002900, 0x002B74, 0x002B76, 0x002C00, 0x002CE5, 0x002CEB, 0x002CEF, 0x002CF2
, 0x002CF9, 0x002D00, 0x002D7F, 0x002D80, 0x002DE0, 0x002E00, 0x002E5E, 0x002E80
, 0x002E9A, 0x002E9B, 0x002EF4, 0x002F00, 0x002FD6, 0x002FF0, 0x003000, 0x003001
, 0x003005, 0x003008, 0x003021, 0x00302A, 0x00302E, 0x003030, 0x003031, 0x003036
, 0x003038, 0x00303D, 0x003040, 0x003099, 0x00309B, 0x00309D, 0x0030A0, 0x0030A1
, 0x0030FB, 0x0030FC, 0x0031C0, 0x0031E6, 0x0031EF, 0x0031F0, 0x00321D, 0x00321F
, 0x003250, 0x003260, 0x00327C, 0x00327F, 0x0032B1, 0x0032C0, 0x0032CC, 0x0032D0
, 0x003377, 0x00337B, 0x0033DE, 0x0033E0, 0x0033FF, 0x003400, 0x004DC0, 0x004E00
, 0x00A490, 0x00A4C7, 0x00A60D, 0x00A610, 0x00A66F, 0x00A673, 0x00A674, 0x00A67E
, 0x00A680, 0x00A69E, 0x00A6A0, 0x00A6F0, 0x00A6F2, 0x00A700, 0x00A722, 0x00A788
, 0x00A789, 0x00A802, 0x00A803, 0x00A806, 0x00A807, 0x00A80B, 0x00A80C, 0x00A825
, 0x00A827, 0x00A828, 0x00A82C, 0x00A82D, 0x00A838, 0x00A83A, 0x00A874, 0x00A878
, 0x00A8C4, 0x00A8C6, 0x00A8E0, 0x00A8F2, 0x00A8FF, 0x00A900, 0x00A926, 0x00A92E
, 0x00A947, 0x00A952, 0x00A980, 0x00A983, 0x00A9B3, 0x00A9B4, 0x00A9B6, 0x00A9BA
, 0x00A9BC, 0x00A9BE, 0x00A9E5, 0x00A9E6, 0x00AA29, 0x00AA2F, 0x00AA31, 0x00AA33
, 0x00AA35, 0x00AA37, 0x00AA43, 0x00AA44, 0x00AA4C, 0x00AA4D, 0x00AA7C, 0x00AA7D
, 0x00AAB0, 0x00AAB1, 0x00AAB2, 0x00AAB5, 0x00AAB7, 0x00AAB9, 0x00AABE, 0x00AAC0
, 0x00AAC1, 0x00AAC2, 0x00AAEC, 0x00AAEE, 0x00AAF6, 0x00AAF7, 0x00AB6A, 0x00AB6C
, 0x00ABE5, 0x00ABE6, 0x00ABE8, 0x00ABE9, 0x00ABED, 0x00ABEE, 0x00FB1D, 0x00FB1E
, 0x00FB1F, 0x00FB29, 0x00FB2A, 0x00FB50, 0x00FBC3, 0x00FBD3, 0x00FD3E, 0x00FD50
, 0x00FD90, 0x00FD92, 0x00FDC8, 0x00FDD0, 0x00FDF0, 0x00FDFD, 0x00FE00, 0x00FE10
, 0x00FE1A, 0x00FE20, 0x00FE30, 0x00FE50, 0x00FE51, 0x00FE52, 0x00FE53, 0x00FE54
, 0x00FE55, 0x00FE56, 0x00FE5F, 0x00FE60, 0x00FE62, 0x00FE64, 0x00FE67, 0x00FE68
, 0x00FE69, 0x00FE6B, 0x00FE6C, 0x00FE70, 0x00FEFF, 0x00FF00, 0x00FF01, 0x00FF03
, 0x00FF06, 0x00FF0B, 0x00FF0C, 0x00FF0D, 0x00FF0E, 0x00FF10, 0x00FF1A, 0x00FF1B
, 0x00FF21, 0x00FF3B, 0x00FF41, 0x00FF5B, 0x00FF66, 0x00FFE0, 0x00FFE2, 0x00FFE5
, 0x00FFE7, 0x00FFE8, 0x00FFEF, 0x00FFF0, 0x00FFF9, 0x00FFFE, 0x010000, 0x010101
, 0x010102, 0x010140, 0x01018D, 0x010190, 0x01019D, 0x0101A0, 0x0101A1, 0x0101FD
, 0x0101FE, 0x0102E0, 0x0102E1, 0x0102FC, 0x010376, 0x01037B, 0x010800, 0x01091F
, 0x010920, 0x010A01, 0x010A04, 0x010A05, 0x010A07, 0x010A0C, 0x010A10, 0x010A38
, 0x010A3B, 0x010A3F, 0x010A40, 0x010AE5, 0x010AE7, 0x010B39, 0x010B40, 0x010D00
, 0x010D24, 0x010D28, 0x010D30, 0x010D3A, 0x010D40, 0x010D4A, 0x010D69, 0x010D6E
, 0x010D6F, 0x010E60, 0x010E7F, 0x010EAB, 0x010EAD, 0x010EC0, 0x010ED0, 0x010ED9
, 0x010EFA, 0x010F00, 0x010F30, 0x010F46, 0x010F51, 0x010F70, 0x010F82, 0x010F86
, 0x011000, 0x011001, 0x011002, 0x011038, 0x011047, 0x011052, 0x011066, 0x011070
, 0x011071, 0x011073, 0x011075, 0x01107F, 0x011082, 0x0110B3, 0x0110B7, 0x0110B9
, 0x0110BB, 0x0110C2, 0x0110C3, 0x011100, 0x011103, 0x011127, 0x01112C, 0x01112D
, 0x011135, 0x011173, 0x011174, 0x011180, 0x011182, 0x0111B6, 0x0111BF, 0x0111C9
, 0x0111CD, 0x0111CF, 0x0111D0, 0x01122F, 0x011232, 0x011234, 0x011235, 0x011236
, 0x011238, 0x01123E, 0x01123F, 0x011241, 0x011242, 0x0112DF, 0x0112E0, 0x0112E3
, 0x0112EB, 0x011300, 0x011302, 0x01133B, 0x01133D, 0x011340, 0x011341, 0x011366
, 0x01136D, 0x011370, 0x011375, 0x0113BB, 0x0113C1, 0x0113CE, 0x0113CF, 0x0113D0
, 0x0113D1, 0x0113D2, 0x0113D3, 0x0113E1, 0x0113E3, 0x011438, 0x011440, 0x011442
, 0x011445, 0x011446, 0x011447, 0x01145E, 0x01145F, 0x0114B3, 0x0114B9, 0x0114BA
, 0x0114BB, 0x0114BF, 0x0114C1, 0x0114C2, 0x0114C4, 0x0115B2, 0x0115B6, 0x0115BC
, 0x0115BE, 0x0115BF, 0x0115C1, 0x0115DC, 0x0115DE, 0x011633, 0x01163B, 0x01163D
, 0x01163E, 0x01163F, 0x011641, 0x011660, 0x01166D, 0x0116AB, 0x0116AC, 0x0116AD
, 0x0116AE, 0x0116B0, 0x0116B6, 0x0116B7, 0x0116B8, 0x01171D, 0x01171E, 0x01171F
, 0x011720, 0x011722, 0x011726, 0x011727, 0x01172C, 0x01182F, 0x011838, 0x011839
, 0x01183B, 0x01193B, 0x01193D, 0x01193E, 0x01193F, 0x011943, 0x011944, 0x0119D4
, 0x0119D8, 0x0119DA, 0x0119DC, 0x0119E0, 0x0119E1, 0x011A01, 0x011A07, 0x011A09
, 0x011A0B, 0x011A33, 0x011A39, 0x011A3B, 0x011A3F, 0x011A47, 0x011A48, 0x011A51
, 0x011A57, 0x011A59, 0x011A5C, 0x011A8A, 0x011A97, 0x011A98, 0x011A9A, 0x011B60
, 0x011B61, 0x011B62, 0x011B65, 0x011B66, 0x011B67, 0x011C30, 0x011C37, 0x011C38
, 0x011C3E, 0x011C92, 0x011CA8, 0x011CAA, 0x011CB1, 0x011CB2, 0x011CB4, 0x011CB5
, 0x011CB7, 0x011D31, 0x011D37, 0x011D3A, 0x011D3B, 0x011D3C, 0x011D3E, 0x011D3F
, 0x011D46, 0x011D47, 0x011D48, 0x011D90, 0x011D92, 0x011D95, 0x011D96, 0x011D97
, 0x011D98, 0x011EF3, 0x011EF5, 0x011F00, 0x011F02, 0x011F36, 0x011F3B, 0x011F40
, 0x011F41, 0x011F42, 0x011F43, 0x011F5A, 0x011F5B, 0x011FD5, 0x011FDD, 0x011FE1
, 0x011FF2, 0x013440, 0x013441, 0x013447, 0x013456, 0x01611E, 0x01612A, 0x01612D
, 0x016130, 0x016AF0, 0x016AF5, 0x016B30, 0x016B37, 0x016F4F, 0x016F50, 0x016F8F
, 0x016F93, 0x016FE2, 0x016FE3, 0x016FE4, 0x016FE5, 0x01BC9D, 0x01BC9F, 0x01BCA0
, 0x01BCA4, 0x01CC00, 0x01CCD6, 0x01CCF0, 0x01CCFA, 0x01CCFD, 0x01CD00, 0x01CEB4
, 0x01CEBA, 0x01CED1, 0x01CEE0, 0x01CEF1, 0x01CF00, 0x01CF2E, 0x01CF30, 0x01CF47
, 0x01D167, 0x01D16A, 0x01D173, 0x01D17B, 0x01D183, 0x01D185, 0x01D18C, 0x01D1AA
, 0x01D1AE, 0x01D1E9, 0x01D1EB, 0x01D200, 0x01D242, 0x01D245, 0x01D246, 0x01D300
, 0x01D357, 0x01D6C1, 0x01D6C2, 0x01D6DB, 0x01D6DC, 0x01D6FB, 0x01D6FC, 0x01D715
, 0x01D716, 0x01D735, 0x01D736, 0x01D74F, 0x01D750, 0x01D76F, 0x01D770, 0x01D789
, 0x01D78A, 0x01D7A9, 0x01D7AA, 0x01D7C3, 0x01D7C4, 0x01D7CE, 0x01D800, 0x01DA00
, 0x01DA37, 0x01DA3B, 0x01DA6D, 0x01DA75, 0x01DA76, 0x01DA84, 0x01DA85, 0x01DA9B
, 0x01DAA0, 0x01DAA1, 0x01DAB0, 0x01E000, 0x01E007, 0x01E008, 0x01E019, 0x01E01B
, 0x01E022, 0x01E023, 0x01E025, 0x01E026, 0x01E02B, 0x01E08F, 0x01E090, 0x01E130
, 0x01E137, 0x01E2AE, 0x01E2AF, 0x01E2EC, 0x01E2F0, 0x01E2FF, 0x01E300, 0x01E4EC
, 0x01E4F0, 0x01E5EE, 0x01E5F0, 0x01E6E3, 0x01E6E4, 0x01E6E6, 0x01E6E7, 0x01E6EE
, 0x01E6F0, 0x01E6F5, 0x01E6F6, 0x01E800, 0x01E8D0, 0x01E8D7, 0x01E944, 0x01E94B
, 0x01EC70, 0x01ECC0, 0x01ED00, 0x01ED50, 0x01EE00, 0x01EEF0, 0x01EEF2, 0x01EF00
, 0x01F000, 0x01F02C, 0x01F030, 0x01F094, 0x01F0A0, 0x01F0AF, 0x01F0B1, 0x01F0C0
, 0x01F0C1, 0x01F0D0, 0x01F0D1, 0x01F0F6, 0x01F100, 0x01F10B, 0x01F110, 0x01F12F
, 0x01F130, 0x01F16A, 0x01F170, 0x01F1AD, 0x01F1AE, 0x01F260, 0x01F266, 0x01F300
, 0x01F6D9, 0x01F6DC, 0x01F6ED, 0x01F6F0, 0x01F6FD, 0x01F700, 0x01F7DA, 0x01F7E0
, 0x01F7EC, 0x01F7F0, 0x01F7F1, 0x01F800, 0x01F80C, 0x01F810, 0x01F848, 0x01F850
, 0x01F85A, 0x01F860, 0x01F888, 0x01F890, 0x01F8AE, 0x01F8B0, 0x01F8BC, 0x01F8C0
, 0x01F8C2, 0x01F8D0, 0x01F8D9, 0x01F900, 0x01FA58, 0x01FA60, 0x01FA6E, 0x01FA70
, 0x01FA7D, 0x01FA80, 0x01FA8B, 0x01FA8E, 0x01FAC7, 0x01FAC8, 0x01FAC9, 0x01FACD
, 0x01FADD, 0x01FADF, 0x01FAEB, 0x01FAEF, 0x01FAF9, 0x01FB00, 0x01FB93, 0x01FB94
, 0x01FBF0, 0x01FBFA, 0x01FBFB, 0x01FFFE, 0x020000, 0x02FFFE, 0x030000, 0x03FFFE
, 0x040000, 0x04FFFE, 0x050000, 0x05FFFE, 0x060000, 0x06FFFE, 0x070000, 0x07FFFE
, 0x080000, 0x08FFFE, 0x090000, 0x09FFFE, 0x0A0000, 0x0AFFFE, 0x0B0000, 0x0BFFFE
, 0x0C0000, 0x0CFFFE, 0x0D0000, 0x0DFFFE, 0x0E0100, 0x0E01F0, 0x0E1000, 0x0EFFFE
, 0x0F0000, 0x0FFFFE, 0x100000, 0x10FFFE
]
-- | Class tags; parallel to 'bidiRangeStarts'.
--
-- * 0 -- L -- Left_To_Right
-- * 1 -- R -- Right_To_Left
-- * 2 -- AL -- Arabic_Letter
-- * 3 -- AN -- Arabic_Number
-- * 4 -- EN -- European_Number
-- * 5 -- ES -- European_Separator
-- * 6 -- CS -- Common_Separator
-- * 7 -- ET -- European_Terminator
-- * 8 -- ON -- Other_Neutral
-- * 9 -- BN -- Boundary_Neutral
-- * 10 -- NSM -- Nonspacing_Mark
-- * 11 -- Other -- everything else (B, S, WS, embedding\/override\/isolated format characters); rejected by the per-label Bidi check.
bidiRangeTags :: ByteArray
bidiRangeTags = PBA.byteArrayFromList @Word8
[ 9, 11, 9, 11, 8, 7, 8, 5, 6, 5, 6, 4, 6, 8, 0, 8, 0, 8, 9, 11, 9, 6, 8, 7, 8, 0, 8, 9, 8, 7, 4, 8
, 0, 8, 4, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 10, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 10
, 0, 8, 0, 8, 7, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 3, 8, 2, 7, 2, 6, 2, 8, 10, 2, 10, 3, 7, 3, 2, 10
, 2, 10, 3, 8, 10, 2, 10, 8, 10, 2, 4, 2, 10, 2, 10, 2, 10, 2, 1, 10, 1, 8, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10
, 1, 10, 1, 2, 3, 2, 10, 2, 10, 3, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0
, 10, 0, 7, 0, 7, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0
, 10, 0, 10, 0, 7, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 8, 7, 8, 0
, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 8, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0
, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 7, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0
, 10, 8, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10
, 0, 10, 0, 10, 0, 10, 0, 8, 0, 8, 0, 11, 0, 8, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 7
, 0, 10, 0, 8, 0, 8, 10, 9, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 8, 0, 8, 0, 8, 0, 10, 0, 10, 0
, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0
, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0
, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 11, 9, 0, 1, 8, 11, 6, 7, 8, 6, 8, 11, 9, 11, 9, 4, 0, 4, 5, 8
, 0, 4, 5, 8, 0, 7, 10, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 7, 0, 8, 0, 8, 0
, 8, 0, 8, 0, 8, 0, 8, 5, 7, 8, 0, 8, 0, 8, 0, 8, 0, 8, 4, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 10, 0
, 8, 0, 10, 0, 10, 8, 0, 8, 0, 8, 0, 8, 0, 8, 11, 8, 0, 8, 0, 10, 0, 8, 0, 8, 0, 8, 0, 10, 8, 0, 8, 0
, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 10, 8, 10, 8
, 0, 10, 0, 10, 0, 8, 0, 8, 0, 10, 0, 10, 0, 10, 0, 10, 0, 8, 10, 0, 7, 0, 8, 0, 10, 0, 10, 0, 10, 0, 10, 0
, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0
, 10, 0, 10, 0, 10, 0, 8, 0, 10, 0, 10, 0, 10, 0, 1, 10, 1, 5, 1, 2, 8, 2, 8, 2, 8, 2, 8, 9, 2, 8, 10, 8
, 0, 10, 8, 6, 8, 6, 0, 8, 6, 8, 7, 8, 5, 8, 0, 8, 7, 8, 0, 2, 9, 0, 8, 7, 8, 5, 6, 5, 6, 4, 6, 8
, 0, 8, 0, 8, 0, 7, 8, 7, 0, 8, 0, 9, 8, 9, 0, 8, 0, 8, 0, 8, 0, 8, 0, 10, 0, 10, 4, 0, 10, 0, 1, 8
, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 8, 1, 2, 10, 2, 3, 2, 3, 1, 10, 8, 1, 3, 1, 10, 1, 2, 8, 2
, 10, 1, 2, 10, 2, 1, 10, 1, 0, 10, 0, 10, 0, 8, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10
, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10
, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10
, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 8, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10
, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10
, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10
, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 8, 7, 8, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10
, 0, 8, 0, 10, 0, 10, 0, 9, 0, 8, 0, 4, 8, 0, 8, 0, 8, 0, 8, 0, 10, 0, 10, 0, 10, 0, 9, 10, 0, 10, 0, 10
, 0, 8, 0, 8, 10, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 4, 0, 10
, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 7, 0, 10
, 0, 10, 0, 10, 0, 10, 0, 10, 0, 10, 0, 1, 10, 1, 10, 1, 2, 1, 2, 1, 2, 8, 2, 1, 8, 0, 8, 0, 8, 0, 8, 0
, 8, 0, 8, 0, 4, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8
, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8
, 4, 8, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 10, 9, 0, 9
, 0, 9, 0, 9
]