packages feed

unicode-data-0.7.0: lib/Unicode/Internal/Char/UnicodeData/GeneralCategory.hs

-- autogenerated from https://www.unicode.org/Public/16.0.0/ucd/UnicodeData.txt
-- |
-- Module      : Unicode.Internal.Char.UnicodeData.GeneralCategory
-- Copyright   : (c) 2020 Composewell Technologies and Contributors
-- License     : Apache-2.0
-- Maintainer  : streamly@composewell.com
-- Stability   : experimental

{-# OPTIONS_HADDOCK hide #-}
{-# LANGUAGE PatternSynonyms #-}

module Unicode.Internal.Char.UnicodeData.GeneralCategory
( -- * Lookup functions
  generalCategory
, generalCategoryPlanes0To3

  -- * General categories
, pattern UppercaseLetter
, pattern LowercaseLetter
, pattern TitlecaseLetter
, pattern ModifierLetter
, pattern OtherLetter
, pattern NonSpacingMark
, pattern SpacingCombiningMark
, pattern EnclosingMark
, pattern DecimalNumber
, pattern LetterNumber
, pattern OtherNumber
, pattern ConnectorPunctuation
, pattern DashPunctuation
, pattern OpenPunctuation
, pattern ClosePunctuation
, pattern InitialQuote
, pattern FinalQuote
, pattern OtherPunctuation
, pattern MathSymbol
, pattern CurrencySymbol
, pattern ModifierSymbol
, pattern OtherSymbol
, pattern Space
, pattern LineSeparator
, pattern ParagraphSeparator
, pattern Control
, pattern Format
, pattern Surrogate
, pattern PrivateUse
, pattern NotAssigned

  -- * Characters bounds for predicates
, pattern MaxIsLetter
, pattern MaxIsAlphaNum
, pattern MaxIsLower
, pattern MaxIsUpper
, pattern MaxIsNumber
, pattern MaxIsSpace
, pattern MaxIsSeparator
) where

import Data.Bits (Bits(..))
import Data.Char (ord)
import Data.Int (Int8)
import Data.Word (Word16)
import GHC.Exts (Ptr(..))
import Unicode.Internal.Bits (lookupWord16AsInt, lookupWord8AsInt)

--------------------------------------------------------------------------------
-- General category patterns
--------------------------------------------------------------------------------

-- | General category Lu
pattern UppercaseLetter :: Int
pattern UppercaseLetter = 0

-- | General category Ll
pattern LowercaseLetter :: Int
pattern LowercaseLetter = 1

-- | General category Lt
pattern TitlecaseLetter :: Int
pattern TitlecaseLetter = 2

-- | General category Lm
pattern ModifierLetter :: Int
pattern ModifierLetter = 3

-- | General category Lo
pattern OtherLetter :: Int
pattern OtherLetter = 4

-- | General category Mn
pattern NonSpacingMark :: Int
pattern NonSpacingMark = 5

-- | General category Mc
pattern SpacingCombiningMark :: Int
pattern SpacingCombiningMark = 6

-- | General category Me
pattern EnclosingMark :: Int
pattern EnclosingMark = 7

-- | General category Nd
pattern DecimalNumber :: Int
pattern DecimalNumber = 8

-- | General category Nl
pattern LetterNumber :: Int
pattern LetterNumber = 9

-- | General category No
pattern OtherNumber :: Int
pattern OtherNumber = 10

-- | General category Pc
pattern ConnectorPunctuation :: Int
pattern ConnectorPunctuation = 11

-- | General category Pd
pattern DashPunctuation :: Int
pattern DashPunctuation = 12

-- | General category Ps
pattern OpenPunctuation :: Int
pattern OpenPunctuation = 13

-- | General category Pe
pattern ClosePunctuation :: Int
pattern ClosePunctuation = 14

-- | General category Pi
pattern InitialQuote :: Int
pattern InitialQuote = 15

-- | General category Pf
pattern FinalQuote :: Int
pattern FinalQuote = 16

-- | General category Po
pattern OtherPunctuation :: Int
pattern OtherPunctuation = 17

-- | General category Sm
pattern MathSymbol :: Int
pattern MathSymbol = 18

-- | General category Sc
pattern CurrencySymbol :: Int
pattern CurrencySymbol = 19

-- | General category Sk
pattern ModifierSymbol :: Int
pattern ModifierSymbol = 20

-- | General category So
pattern OtherSymbol :: Int
pattern OtherSymbol = 21

-- | General category Zs
pattern Space :: Int
pattern Space = 22

-- | General category Zl
pattern LineSeparator :: Int
pattern LineSeparator = 23

-- | General category Zp
pattern ParagraphSeparator :: Int
pattern ParagraphSeparator = 24

-- | General category Cc
pattern Control :: Int
pattern Control = 25

-- | General category Cf
pattern Format :: Int
pattern Format = 26

-- | General category Cs
pattern Surrogate :: Int
pattern Surrogate = 27

-- | General category Co
pattern PrivateUse :: Int
pattern PrivateUse = 28

-- | General category Cn
pattern NotAssigned :: Int
pattern NotAssigned = 29

--------------------------------------------------------------------------------
-- Characters bounds for predicates
--------------------------------------------------------------------------------

-- | Maximum codepoint satisfying @isLetter@
pattern MaxIsLetter :: Int
pattern MaxIsLetter = 0x323AF

-- | Maximum codepoint satisfying @isAlphaNum@
pattern MaxIsAlphaNum :: Int
pattern MaxIsAlphaNum = 0x323AF

-- | Maximum codepoint satisfying @isLower@
pattern MaxIsLower :: Int
pattern MaxIsLower = 0x1E943

-- | Maximum codepoint satisfying @isUpper@
pattern MaxIsUpper :: Int
pattern MaxIsUpper = 0x1E921

-- | Maximum codepoint satisfying @isNumber@
pattern MaxIsNumber :: Int
pattern MaxIsNumber = 0x1FBF9

-- | Maximum codepoint satisfying @isSpace@
pattern MaxIsSpace :: Int
pattern MaxIsSpace = 0x3000

-- | Maximum codepoint satisfying @isSeparator@
pattern MaxIsSeparator :: Int
pattern MaxIsSeparator = 0x3000

--------------------------------------------------------------------------------
-- Lookup functions
--------------------------------------------------------------------------------

-- | Return the general category of a code point in planes 0 to 3
--
-- The caller of this function must ensure its parameter is \< @0x40000@.
{-# INLINE generalCategoryPlanes0To3 #-}
generalCategoryPlanes0To3 :: Int -> Int
generalCategoryPlanes0To3 = lookupGeneralCategoryBitMap

-- | Return the general category of a character
{-# INLINE generalCategory #-}
generalCategory :: Char -> Int
generalCategory c
    -- Planes 0-3
    | cp < 0x323B0 = lookupGeneralCategoryBitMap cp
    -- Planes 4-13: Cn
    | cp < 0xE0000 = NotAssigned
    -- Plane 14
    | cp < 0xE01F0 = lookupGeneralCategoryBitMap (cp - 0xADC50)
    -- Plane 14: Cn
    | cp < 0xF0000 = NotAssigned
    -- Plane 15: Co
    | cp < 0xFFFFE = PrivateUse
    -- Plane 15: Cn
    | cp < 0x100000 = NotAssigned
    -- Plane 16: Co
    | cp < 0x10FFFE = PrivateUse
    -- Default: Cn
    | otherwise = NotAssigned
    where
    cp = ord c

{-# INLINE lookupGeneralCategoryBitMap #-}
lookupGeneralCategoryBitMap :: Int -> Int
lookupGeneralCategoryBitMap n =
    lookupWord8AsInt data# (
        lookupWord16AsInt offsets1# (
            lookupWord16AsInt offsets2# (
                n `shiftR` 8
            ) + ((n `shiftR` 3) .&. maskOffsets)
        ) + (n .&. maskData)
    )
    where
    maskData = (1 `shiftL` 3) - 1
    maskOffsets = (1 `shiftL` 5) - 1
    !(Ptr data#) = generalCategoryDataBitMap
    !(Ptr offsets1#) = generalCategoryOffsets1BitMap
    !(Ptr offsets2#) = generalCategoryOffsets2BitMap

generalCategoryDataBitMap :: Ptr Int8
generalCategoryDataBitMap = Ptr
    "\1\0\0\1\0\1\0\0\0\0\0\1\0\1\0\1\1\0\1\1\0\1\0\0\0\1\1\0\0\0\1\1\1\13\18\14\18\13\14\17\17\17\17\17\3\3\3\3\29\3\
    \\3\29\3\3\3\3\3\3\29\3\3\3\3\3\3\17\17\17\17\17\17\5\4\5\4\17\17\29\17\4\4\4\4\3\17\17\17\12\12\11\11\13\14\13\14\18\18\18\18\18\
    \\18\18\18\13\14\18\18\18\18\21\21\21\21\0\21\21\21\21\0\1\0\1\3\3\5\5\5\5\5\5\4\5\5\5\4\4\5\6\5\4\6\6\6\6\6\6\5\6\4\5\
    \\5\5\5\17\17\17\3\4\4\4\4\4\4\4\3\5\5\5\5\5\5\5\6\5\5\5\4\4\4\4\5\4\4\6\6\29\29\5\5\6\5\4\4\5\5\4\29\29\29\29\
    \\29\20\1\1\1\1\1\1\1\1\18\1\1\1\1\4\1\1\1\1\1\3\3\0\0\0\0\2\20\1\20\21\4\15\18\26\21\20\10\4\16\10\10\10\17\0\0\0\0\0\
    \\0\0\0\18\1\1\1\1\1\1\29\29\1\1\1\29\1\1\29\29\29\4\4\3\17\17\4\3\3\6\5\29\5\5\5\5\29\29\29\29\29\5\29\29\29\29\6\29\6\6\
    \\6\5\29\29\8\8\4\4\4\4\3\4\4\4\4\4\5\3\4\4\4\29\29\29\29\5\5\5\5\5\3\3\5\5\5\5\5\5\5\29\6\29\29\6\29\6\6\5\5\29\
    \\29\29\29\5\4\29\4\4\4\4\29\4\4\29\4\4\4\4\4\4\4\4\29\4\4\4\4\29\29\29\29\4\4\29\4\29\4\4\29\4\4\29\4\29\29\4\5\5\5\5\
    \\5\5\5\3\5\5\5\5\5\29\29\5\5\5\29\29\4\4\4\4\4\4\29\17\17\17\17\10\17\17\17\29\17\17\17\17\4\6\6\4\6\5\17\17\17\29\5\5\5\5\
    \\5\12\3\3\3\3\3\21\21\18\18\18\18\21\21\29\0\1\0\1\3\20\0\1\29\1\29\1\0\1\0\1\0\29\29\29\3\3\3\0\1\4\4\5\5\5\6\29\29\6\
    \\6\5\29\29\4\1\21\21\1\1\0\0\1\1\0\0\0\1\0\1\0\1\0\1\0\0\0\0\1\4\4\4\17\17\29\29\29\29\29\10\10\10\10\10\10\10\21\10\10\10\
    \\10\10\10\10\17\19\17\17\29\29\29\29\7\7\0\1\0\1\0\1\1\1\0\1\0\1\0\1\0\1\1\1\1\1\0\29\0\0\0\0\29\20\20\20\0\0\0\0\0\29\
    \\0\29\0\0\0\0\29\0\0\0\0\29\29\0\0\0\0\0\0\0\29\0\0\0\0\0\0\29\29\29\29\29\29\8\8\17\17\29\29\29\29\5\29\5\5\29\5\5\29\5\
    \\5\20\20\3\3\4\4\4\4\4\4\21\5\5\5\5\3\3\21\17\10\10\10\10\10\10\10\10\4\4\5\5\6\17\17\29\12\13\14\13\14\13\14\17\29\29\29\29\29\29\
    \\29\3\1\1\1\17\0\23\24\26\26\26\26\26\22\17\19\19\19\19\21\17\17\29\29\29\29\29\29\29\5\5\6\6\6\6\29\5\5\6\29\4\4\4\29\4\4\4\4\17\
    \\4\5\5\5\29\29\17\29\5\5\21\21\21\21\21\21\5\21\21\17\4\4\29\29\5\29\6\6\6\6\5\5\6\5\5\5\5\5\29\5\29\29\29\29\29\29\29\21\21\21\
    \\21\21\21\21\18\18\18\18\18\0\1\1\21\18\21\21\1\21\0\0\0\0\0\29\1\1\1\1\1\1\3\3\3\3\3\3\3\3\20\20\20\20\20\20\20\20\3\20\3\20\
    \\20\0\1\0\1\4\4\5\5\29\29\29\29\4\4\4\29\29\5\6\5\5\5\29\29\29\29\5\6\6\29\4\4\4\5\6\6\5\5\6\4\4\4\4\4\6\6\6\6\6\
    \\6\6\6\26\26\26\26\26\29\29\29\29\29\5\5\5\5\5\5\5\12\5\5\5\5\5\4\29\29\4\4\29\5\5\4\6\6\17\17\17\17\17\17\17\17\29\26\20\4\4\
    \\4\4\4\4\29\29\29\29\29\29\29\29\6\6\29\29\6\6\5\4\29\5\5\29\29\29\29\1\1\29\1\29\1\1\1\17\3\1\1\1\20\3\3\3\3\1\1\1\1\1\
    \\1\1\0\1\18\0\0\0\0\0\21\21\10\10\10\10\21\21\10\10\21\21\21\29\4\4\4\4\4\29\29\26\26\26\26\26\26\18\18\18\18\18\21\21\18\21\21\18\21\18\
    \\21\21\21\21\21\21\21\18\21\21\21\5\5\5\5\5\26\21\5\6\6\6\29\29\29\29\15\16\13\15\15\16\13\15\16\13\14\13\14\13\14\13\14\13\14\10\10\18\18\18\
    \\13\14\29\5\5\6\6\29\29\29\29\3\17\17\17\17\17\17\21\21\21\21\21\21\21\21\29\29\29\29\29\29\29\17\17\17\17\17\17\17\3\29\29\5\19\19\18\20\21\19\
    \\19\29\1\18\1\1\1\1\1\1\0\0\0\0\0\0\0\1\1\1\1\1\1\29\1\1\1\1\1\0\0\29\0\29\0\29\0\29\0\4\4\5\5\17\17\8\8\4\4\4\
    \\4\4\29\4\4\29\29\5\4\5\5\5\5\4\4\4\4\4\4\5\6\5\5\5\5\5\5\5\5\21\21\21\21\0\21\0\21\0\0\0\0\21\1\0\1\29\29\29\29\29\
    \\8\8\29\29\29\29\29\19\21\29\29\29\29\29\29\4\29\4\29\4\29\4\4\4\4\29\4\29\4\29\29\29\29\20\20\0\17\8\8\10\10\17\17\17\21\18\10\10\20\1\
    \\17\17\18\12\18\18\18\29\29\29\29\29\29\21\21\0\1\0\1\0\1\4\5\5\5\5\5\5\29\8\8\29\10\10\10\10\10\10\8\8\29\29\29\4\4\4\29\29\29\4\
    \\29\29\4\4\4\4\4\29\29\4\29\29\29\29\29\29\6\5\5\17\29\29\29\29\8\8\29\29\17\17\17\17\19\29\29\29\29\29\29\29\4\4\29\29\29\29\6\6\17\29\
    \\29\29\12\4\4\4\4\4\4\4\21\17\4\4\4\4\5\6\29\29\22\4\4\4\4\4\4\4\21\17\4\4\4\4\4\4\14\13\14\13\14\17\17\13\22\17\17\17\21\3\
    \\4\9\4\4\4\4\4\4\4\6\6\6\5\5\5\5\6\5\6\6\6\6\5\5\5\5\5\6\6\6\6\5\6\6\6\6\6\29\5\6\6\29\29\29\6\6\6\6\6\5\
    \\4\6\22\22\22\22\22\22\22\22\26\26\26\26\26\26\26\26\29\26\26\26\21\21\29\29\29\17\17\8\8\6\6\6\5\21\21\18\18\18\18\18\18\13\14\13\14\13\14\12\
    \\29\29\0\0\0\0\0\20\20\20\0\1\0\1\0\1\0\0\1\29\29\22\17\17\17\19\17\17\17\4\17\4\4\5\4\4\4\5\4\4\4\4\4\4\4\5\5\5\5\5\
    \\5\5\17\3\4\5\4\29\29\29\29\29\29\1\1\1\1\1\1\1\29\29\29\29\29\5\5\29\29\29\29\29\1\29\29\4\18\4\4\4\4\4\4\29\4\29\29\4\29\29\
    \\29\29\4\4\4\6\6\5\5\6\6\5\5\4\4\4\5\17\29\4\4\4\4\4\29\29\10\21\4\4\4\4\4\4\4\10\10\10\10\29\29\29\17\8\8\29\29\29\29\4\
    \\21\4\4\4\4\4\4\4\5\5\29\29\8\8\10\29\29\29\21\21\5\5\5\17\26\17\17\17\5\29\29\29\29\29\26\29\29\29\29\29\29\18\18\4\5\4\4\5\5\5\
    \\5\5\5\6\4\4\4\4\17\17\17\17\17\29\29\29\29\29\0\29\29\0\0\29\6\5\5\5\5\29\6\6\6\6\6\6\29\6\5\5\5\5\5\5\6\6\4\4\4\4\
    \\19\21\21\21\21\21\21\21\19\19\19\19\19\19\19\19\10\10\10\10\29\29\29\5\6\29\6\6\5\29\29\5\5\5\5\5\17\5\5\5\5\6\6\5\5\6\6\6\5\4\
    \\4\4\29\29\5\5\5\21\21\5\5\5\5\21\21\21\6\6\6\6\6\6\4\4\4\4\4\4\9\9\9\9\9\9\9\29\18\17\17\19\17\17\21\21\1\0\0\0\1\1\
    \\4\0\1\1\1\0\0\1\0\0\1\0\0\0\0\2\20\20\29\8\8\10\10\10\10\10\10\21\5\21\5\5\5\5\4\4\4\4\5\5\6\5\5\4\4\17\4\4\9\29\
    \\29\29\29\29\8\8\4\4\4\4\4\4\3\4\4\4\4\4\5\5\4\6\6\6\4\4\6\6\6\6\6\29\6\6\5\6\6\4\4\4\29\29\29\4\4\6\29\29\29\29\
    \\12\12\12\12\12\12\17\17\18\17\11\17\17\17\18\13\14\17\18\17\12\17\17\5\5\5\5\5\29\21\21\10\10\10\10\10\10\21\21\21\21\21\21\21\29\21\21\21\21\21\
    \\17\17\17\13\14\13\14\21\21\21\21\29\29\21\21\13\14\21\21\13\14\13\14\12\13\14\14\17\17\17\17\11\11\11\5\10\10\10\10\10\10\10\29\29\29\29\29\29\29\10\
    \\10\4\4\4\17\17\17\9\9\9\9\9\29\29\4\5\6\6\17\4\4\4\6\5\5\6\6\6\6\29\29\6\6\6\29\29\29\29\29\29\4\4\4\4\4\29\3\29\5\5\
    \\4\6\4\4\4\4\6\6\5\5\5\29\5\29\9\10\21\21\29\29\29\29\29\21\21\21\21\21\5\29\29\29\0\0\0\0\0\0\0\0\13\17\14\20\11\1\1\1\1\1\
    \\1\1\1\13\18\14\18\25\25\25\25\25\25\25\25\8\8\29\29\4\4\4\4\0\2\1\0\2\1\0\1\0\0\0\1\21\0\21\21\4\5\6\6\29\4\4\4\4\4\29\
    \\29\4\5\5\5\29\5\5\29\6\29\6\6\6\5\4\21\21\21\17\17\17\17\21\17\21\21\21\21\21\6\6\5\5\5\6\5\4\17\4\6\29\29\29\22\4\4\4\4\4\
    \\4\4\13\14\29\29\29\3\3\1\4\4\4\4\4\5\6\5\6\6\5\5\5\5\5\6\6\6\5\6\5\5\6\5\5\29\6\6\5\6\5\17\17\17\17\17\17\29\29\29\
    \\29\10\12\17\13\17\17\17\17\17\18\17\11\17\17\17\17\17\17\17\22\5\5\5\5\5\5\7\5\7\7\7\5\5\5\5\5\7\7\7\17\5\5\5\5\17\6\5\5\6\
    \\6\5\5\29\21\9\9\9\9\9\9\9\9\0\1\9\9\9\3\4\17\21\21\0\1\0\1\1\21\21\21\0\1\0\1\5\10\10\10\10\17\17\17\0\1\21\5\5\5\5\
    \\5\5\17\17\17\17\17\17\17\12\17\15\16\17\17\17\17\11\8\8\4\4\4\21\21\4\6\5\6\4\4\4\4\4\6\6\5\6\6\17\6\5\29\29\4\4\20\20\20\20\
    \\20\20\29\29\29\29\29\4\5\4\4\4\4\4\10\10\17\9\9\9\9\9\10\10\10\10\29\29\29\21\3\29\3\3\3\3\3\3\29\29\29\29\29\5\5\4\6\4\4\4\
    \\4\5\5\6\6\17\4\4\29\29\5\4\6\5\5\5\5\6\6\6\5\5\5\5\5\5\29\29\29\29\19\9\9\5\5\5\5\6\6\6\5\5\5\5\5\17\29\29\5\5\
    \\6\6\29\4\4\4\17\3\3\3\4\4\4\4\4\3\3\17\17\17\19\4\5\29\29\29\29\29\29\26\26\26\5\5\5\5\5\21\21\5\5\5\21\29\29\8\8\17\17\17\
    \\17\17\17\17\5\5\5\26\5\5\5\5\5\21\21\21\21\21\5\21\21\4\8\8\8\8\8\8\8\29\29\29\29\17\17\17\19\17\17\17\17\17\17\29\3\1\1\1\1\5\
    \\5\5\5\3\29\29\29\29\1\17\12\29\29\21\21\19\21\29\29\29\29\29\21\21\21\21\20\20\20\20\20\8\8\8\8\8\8\8\8\17\17\18\18\18\17\3\3\20\20\20\
    \\20\3\3\20\20\20\20\20\20\4\4\4\5\17\17\4\29\4\29\29\29\4\4\29\29\5\4\6\6\6\6\5\5\29\29\4\4\19\19\10\10\10\10\21\19\4\17\5\29\21\
    \\4\10\10\10\10\10\10\21\5\21\5\13\14\13\14\6\6\8\8\17\17\17\17\4\4\4\4\4\4\6\5\6\6\5\29\29\17\17\17\17\29\29\29\10\10\29\4\4\4\4\
    \\4\6\5\6\5\6\6\5\5\5\5\29\29\6\0\0\0\0\2\20\20\20\1\1\1\29\1\1\3\20\20\29\29\29\29\10\3\29\29\10\10\10\10\18\18\18\13\14\3\18\
    \\18\18\18\18\21\21\21\18\18\21\21\21\21\21\21\29\29\21\8\8\4\17\4\17\17\17\15\16\17\15\16\17\17\15\16\15\16\17\17\4\4\29\29\21\5\5\17\15\16\17\
    \\15\16\17\17\17\17\17\17\17\12\12\17\17\17\17\17\17\17\13\14\17\13\14\17\17\4\4\4\4\4\4\3\3\3\3\17\21\29\29\5\5\5\6\6\5\6\5\5\17\17\
    \\26\17\17\5\29\29\29\29\29\8\8\17\17\29\17\5\4\4\4\4\4\5\5\5\5\17\17\17\4\17\17\17\29\29\29\29\29\4\4\4\4\6\6\5\5\5\29\29\29\6\
    \\6\5\5\5\3\3\3\3\3\17\3\5\29\29\29\1\18\1\1\1\1\1\1\0\1\29\29\8\8\4\4\29\29\29\29\29\17\8\8\29\29\29\29\29\29\21\21\21\20\20\
    \\20\20\20\8\8\17\17\18\18\18\17\0\0\0\0\0\0\0\29\0\0\29\1\17\5\5\17\5\5\17\5\5\5\5\5\5\12\5\17\17\17\4\29\29\29\21\13\14\21\21\
    \\21\21\21\0\1\0\1\5\5\0\1\29\29\29\29\2\2\2\2\2\2\2\2\27\27\27\27\27\27\27\27\28\28\28\28\28\28\28\28\4\4\29\5\5\12\29\29\4\17\29\
    \\29\29\29\29\29\8\8\5\29\29\29\29\29\4\4\4\4\4\4\5\29"#

generalCategoryOffsets1BitMap :: Ptr Word16
generalCategoryOffsets1BitMap = Ptr
    "\87\8\108\1\108\1\108\1\108\1\108\1\107\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\109\1\242\3\94\4\108\1\108\1\108\1\108\1\94\4\94\4\94\4\94\4\96\4\22\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\115\1\109\1\115\1\108\1\108\1\108\1\108\1\108\1\115\1\108\1\108\1\
    \\108\1\108\1\115\1\109\1\115\1\108\1\109\1\108\1\108\1\108\1\108\1\108\1\108\1\59\6\90\4\165\11\186\3\171\10\49\5\27\11\108\1\108\1\87\8\108\1\108\1\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\47\10\108\1\108\1\108\1\108\1\52\10\171\10\15\12\186\3\186\3\186\3\
    \\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\245\0\245\0\245\0\245\0\202\0\202\0\202\0\202\0\158\2\158\2\35\2\224\6\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\58\6\186\4\108\1\108\1\108\1\108\1\56\6\146\0\87\10\186\3\210\6\172\0\108\1\
    \\108\1\108\1\108\1\108\1\57\6\165\0\207\11\224\6\186\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\185\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\54\0\
    \\44\0\108\1\108\1\165\7\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\
    \\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\96\4\186\3\186\3\186\3\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\171\10\15\12\108\1\108\1\108\1\108\1\108\1\
    \\108\1\108\1\184\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\186\3\186\3\186\3\186\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\
    \\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\180\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\108\1\108\1\244\9\181\2\
    \\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\182\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\109\1\100\1\108\1\109\1\68\5\100\1\108\1\108\1\108\1\
    \\244\6\184\0\182\1\186\3\171\10\15\12\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\108\1\158\1\108\1\108\1\108\1\108\1\178\5\216\2\238\8\186\3\186\3\186\3\108\1\112\1\108\1\108\1\109\1\108\1\108\1\101\1\108\1\180\3\108\1\180\3\186\3\186\3\186\3\186\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\
    \\108\1\108\1\108\1\108\1\108\1\108\1\108\1\183\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\197\6\186\3\186\3\186\3\230\5\230\5\230\5\230\5\230\5\230\5\108\1\108\1\108\1\108\1\108\1\108\1\230\5\230\5\188\4\197\4\
    \\10\10\186\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\183\3\108\1\181\3\108\1\185\3\108\1\123\11\136\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\
    \\186\3\186\3\186\3\186\3\186\3\186\3\186\3\108\1\108\1\108\1\108\1\108\1\172\5\39\11\8\3\147\9\169\3\169\3\168\6\186\3\186\3\186\3\186\3\108\1\108\1\108\1\180\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\
    \\108\1\108\1\108\1\108\1\108\1\184\3\186\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\180\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\184\3\186\3\186\3\186\3\186\3\108\1\108\1\108\1\109\1\194\5\44\4\199\5\101\3\243\5\171\10\108\1\
    \\108\1\108\1\180\3\181\3\186\3\108\1\108\1\108\1\108\1\108\1\182\3\108\1\108\1\108\1\184\3\171\10\176\6\94\4\94\4\94\4\94\4\94\4\94\4\95\0\95\0\13\4\83\11\94\4\94\4\94\4\94\4\9\8\94\4\94\4\94\4\246\7\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\26\4\
    \\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\26\4\94\4\24\4\94\4\94\4\94\4\94\4\94\4\94\4\95\0\159\8\159\8\159\8\159\8\35\6\223\7\171\10\177\10\244\0\245\0\245\0\139\8\201\0\202\0\202\0\152\8\159\8\159\8\
    \\159\8\159\8\202\2\230\0\14\5\237\0\245\0\245\0\246\0\136\4\202\0\202\0\203\0\202\0\213\0\202\0\77\6\72\6\81\6\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\
    \\186\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\19\2\186\3\108\1\108\1\108\1\108\1\183\3\186\3\77\5\186\3\186\3\186\3\74\5\186\3\88\8\186\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\
    \\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\182\3\186\3\108\1\108\1\109\1\89\8\108\1\108\1\108\1\108\1\108\1\182\3\108\1\108\1\108\1\108\1\108\1\181\3\140\1\228\9\171\10\157\6\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\
    \\186\3\186\3\186\3\186\3\108\1\108\1\108\1\141\12\186\3\186\3\108\1\108\1\108\1\108\1\108\1\55\6\171\10\226\4\108\1\108\1\165\7\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\
    \\181\3\94\4\94\4\94\4\94\4\94\4\94\4\95\4\186\3\108\1\108\1\108\1\108\1\108\1\59\0\101\9\101\9\101\9\101\9\101\9\101\9\101\9\101\9\101\9\101\9\101\9\101\9\101\9\86\7\222\6\186\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\
    \\184\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\108\1\108\1\108\1\181\3\108\1\108\1\108\1\108\1\108\1\108\1\185\3\186\3\36\8\158\2\158\2\40\8\245\0\245\0\245\0\245\0\141\4\202\0\202\0\202\0\135\10\140\10\171\10\117\10\186\3\186\3\186\3\186\3\186\3\
    \\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\26\2\158\2\158\2\158\2\158\2\158\2\158\2\30\2\23\7\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\
    \\108\1\108\1\108\1\161\0\171\10\15\12\26\2\158\2\158\2\158\2\158\2\28\2\158\2\38\8\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\26\2\158\2\158\2\158\2\158\2\158\2\158\2\30\2\23\7\186\3\186\3\186\3\
    \\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\108\1\108\1\108\1\53\6\111\10\116\10\122\5\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\
    \\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\125\5\108\1\108\1\140\5\108\1\108\1\251\8\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\53\8\171\5\185\3\94\4\94\4\94\4\95\4\158\2\243\7\94\4\94\4\94\4\158\2\34\2\158\2\94\4\94\4\94\4\94\4\158\2\243\7\94\4\94\4\
    \\94\4\94\4\34\2\158\2\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\26\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\63\4\65\4\158\2\158\2\158\2\241\7\94\4\94\4\94\4\94\4\94\4\98\0\95\0\95\0\
    \\95\0\97\0\63\4\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\4\6\62\4\62\4\94\0\95\0\95\0\95\0\95\0\95\0\95\0\95\0\91\0\95\0\95\0\95\0\
    \\99\0\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\63\4\65\4\158\2\158\2\158\2\241\7\94\4\94\4\94\4\94\4\94\4\98\0\95\0\95\0\95\0\97\0\63\4\
    \\95\0\95\0\151\4\96\2\103\2\50\3\202\0\202\0\202\0\92\2\82\2\99\2\54\3\202\0\202\0\132\4\245\0\245\0\137\4\202\0\202\0\202\0\245\0\245\0\245\0\141\4\202\0\202\0\132\4\245\0\245\0\137\4\202\0\202\0\202\0\245\0\245\0\245\0\141\4\202\0\202\0\254\0\245\0\245\0\245\0\252\0\202\0\202\0\207\0\134\4\
    \\245\0\245\0\250\0\108\1\108\1\108\1\108\1\55\6\186\3\171\10\15\12\171\10\48\1\245\0\245\0\109\2\189\1\202\0\202\0\254\0\199\6\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\158\2\158\2\158\2\37\8\108\1\108\1\108\1\108\1\108\1\117\12\184\3\186\3\61\5\186\3\186\3\
    \\186\3\186\3\186\3\186\3\141\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\184\3\186\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\
    \\108\1\108\1\108\1\108\1\108\1\185\3\186\3\108\1\108\1\53\6\145\1\143\1\147\1\169\3\170\3\108\1\108\1\108\1\238\2\108\1\183\3\108\1\108\1\108\1\179\3\138\3\197\4\108\1\108\1\108\1\108\1\108\1\163\0\197\4\197\4\95\10\197\4\197\4\197\4\197\4\197\4\10\10\197\4\197\4\76\1\186\3\94\4\94\4\94\4\94\4\
    \\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\98\4\186\3\186\3\186\3\186\3\186\3\186\3\186\3\230\5\230\5\230\5\230\5\230\5\230\5\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\197\4\197\4\197\4\197\4\197\4\197\4\197\4\197\4\197\4\197\4\
    \\197\4\197\4\197\4\197\4\197\4\197\4\197\4\197\4\197\4\197\4\210\1\187\2\255\4\84\2\135\4\245\0\106\2\139\4\202\0\202\0\202\0\227\3\25\0\4\2\4\2\4\2\230\3\253\1\101\9\101\9\101\9\101\9\101\9\101\9\101\9\101\9\101\9\101\9\101\9\101\9\101\9\86\7\222\6\186\3\108\1\108\1\108\1\108\1\108\1\108\1\
    \\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\182\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\108\1\108\1\108\1\180\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\
    \\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\184\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\186\3\108\1\
    \\108\1\108\1\108\1\108\1\108\1\182\3\102\4\245\0\105\2\245\0\105\2\43\12\202\0\147\4\202\0\147\4\7\1\108\1\108\1\108\1\108\1\108\1\108\1\182\3\186\3\245\0\245\0\245\0\245\0\245\0\245\0\202\0\202\0\202\0\202\0\202\0\202\0\4\2\4\2\4\2\4\2\139\9\50\2\4\2\4\2\4\2\4\2\4\2\4\2\3\2\
    \\61\2\4\2\4\2\4\2\4\2\4\2\4\2\100\2\245\0\245\0\245\0\101\2\86\4\202\0\202\0\202\0\202\0\202\0\148\10\144\3\197\4\197\4\197\4\197\4\146\3\51\12\186\3\108\1\108\1\108\1\118\1\17\2\186\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\
    \\108\1\108\1\108\1\108\1\108\1\197\6\186\3\186\3\186\3\230\5\230\5\230\5\230\5\230\5\230\5\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\197\4\197\4\197\4\197\4\197\4\197\4\197\4\197\4\197\4\197\4\198\4\34\4\197\4\197\4\197\4\197\4\197\4\200\4\249\2\
    \\94\4\250\2\223\6\186\3\142\3\144\3\197\4\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\77\6\186\3\74\6\198\9\108\1\99\6\109\1\102\6\102\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\190\9\70\3\195\9\186\3\89\8\108\1\108\1\108\1\108\1\108\1\108\1\
    \\108\1\150\5\94\4\94\4\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\158\1\108\1\108\1\108\1\108\1\108\1\108\1\22\3\186\3\186\3\186\3\186\3\108\1\4\7\94\4\5\8\94\4\94\4\91\11\73\12\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\29\4\94\4\94\4\94\4\33\3\95\0\95\0\105\0\94\4\
    \\94\4\94\4\94\4\32\3\91\11\94\4\94\4\94\4\94\4\94\4\100\4\186\3\186\3\94\4\99\4\186\3\186\3\158\2\158\2\158\2\158\2\158\2\158\2\158\2\241\7\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\237\7\158\2\158\2\108\1\108\1\143\6\149\6\108\1\108\1\108\1\7\12\186\3\186\3\186\3\186\3\186\3\
    \\186\3\186\3\186\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\47\8\158\2\158\2\25\2\158\2\158\2\158\2\158\2\158\2\240\7\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\96\4\186\3\186\3\186\3\186\3\186\3\186\3\27\5\94\4\94\4\94\4\
    \\94\4\94\4\98\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\98\4\186\3\94\4\95\4\28\3\94\4\28\3\94\4\28\3\94\4\94\4\94\4\96\4\186\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\183\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\
    \\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\180\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\122\5\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\
    \\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\115\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\57\7\169\3\157\2\158\2\39\8\108\1\108\1\94\4\100\4\245\0\245\0\245\0\245\0\245\0\245\0\245\0\245\0\245\0\245\0\
    \\109\2\254\0\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\185\3\186\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\180\3\186\3\186\3\186\3\186\3\186\3\186\3\
    \\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\62\2\228\3\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\5\2\5\2\58\2\4\2\
    \\4\2\4\2\4\2\4\2\9\0\0\0\21\0\113\7\109\7\6\2\16\0\1\2\105\7\171\8\176\8\5\2\11\0\4\2\4\2\177\8\4\2\4\2\4\2\4\2\4\2\4\2\64\2\111\7\9\2\4\2\202\0\202\0\202\0\202\0\202\0\202\0\202\0\202\0\211\0\202\0\202\0\202\0\62\3\62\3\185\10\62\3\68\3\70\3\65\3\74\3\
    \\70\3\70\3\71\3\62\3\22\6\4\2\58\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\226\3\25\6\4\2\80\3\54\2\4\2\4\2\4\0\6\0\4\2\8\2\27\6\216\1\222\1\186\3\186\3\228\1\3\9\108\1\108\1\108\1\144\6\159\2\186\3\108\1\108\1\53\6\197\4\131\9\209\2\186\3\186\3\108\1\108\1\203\11\209\2\
    \\186\3\186\3\186\3\186\3\108\1\108\1\144\6\40\8\186\3\186\3\108\1\108\1\109\1\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\158\2\158\2\158\2\37\8\108\1\108\1\108\1\108\1\108\1\117\12\184\3\186\3\61\5\186\3\186\3\186\3\186\3\186\3\186\3\141\3\108\1\108\1\108\1\108\1\108\1\
    \\108\1\108\1\108\1\108\1\62\1\126\3\127\3\127\3\127\3\127\3\127\3\127\3\211\2\235\11\62\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\241\11\186\3\84\8\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\245\0\245\0\245\0\245\0\202\0\202\0\202\0\202\0\158\2\158\2\35\2\224\6\186\3\186\3\186\3\186\3\
    \\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\7\4\94\7\197\4\184\6\108\1\108\1\108\1\108\1\156\0\56\6\197\4\197\4\171\10\1\11\51\6\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\233\2\37\4\69\1\136\7\171\10\164\9\169\3\171\3\50\6\108\1\108\1\108\1\197\4\197\4\197\4\155\1\
    \\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\53\6\197\4\69\6\186\3\171\10\162\7\108\1\108\1\108\1\56\6\150\2\114\4\214\6\108\1\108\1\108\1\108\1\108\1\108\1\134\0\196\4\196\5\58\6\108\1\165\4\171\10\155\0\108\1\191\8\72\5\69\5\108\1\108\1\106\1\205\10\211\10\40\11\195\3\187\3\121\1\
    \\170\6\171\10\225\10\231\10\224\2\118\1\69\5\108\1\108\1\106\1\128\1\2\3\90\1\152\1\20\3\246\4\115\2\171\10\125\6\186\3\224\2\110\1\105\1\108\1\108\1\106\1\103\1\211\10\14\3\31\7\185\3\186\3\170\6\171\10\101\5\138\1\108\3\72\5\69\5\108\1\108\1\106\1\103\1\252\9\40\11\240\1\213\2\121\1\170\6\171\10\
    \\239\10\186\3\95\1\195\7\115\1\124\1\107\5\195\7\108\1\110\5\208\5\40\1\79\5\186\3\115\2\171\10\242\7\154\10\52\7\111\1\106\1\108\1\108\1\106\1\108\1\179\4\219\2\24\1\84\6\74\5\170\6\171\10\102\4\27\2\66\8\111\1\106\1\108\1\108\1\106\1\112\1\252\9\202\5\87\1\189\3\105\5\170\6\171\10\200\7\186\3\
    \\0\7\111\1\106\1\108\1\108\1\108\1\108\1\173\7\238\6\211\8\112\6\159\2\170\6\171\10\158\2\140\6\108\3\108\1\109\1\158\1\108\1\108\1\105\1\103\6\109\1\33\1\108\8\127\3\115\2\171\10\114\5\186\3\107\1\108\1\108\1\108\1\108\1\108\1\207\6\13\10\158\0\59\6\171\10\121\2\186\3\186\3\186\3\186\3\124\1\113\1\
    \\108\1\108\1\247\4\108\1\207\6\153\3\92\8\76\1\171\10\167\8\186\3\186\3\186\3\186\3\217\8\169\3\222\8\246\2\171\10\127\7\131\7\249\10\108\1\107\1\108\1\108\1\108\1\181\3\144\3\165\0\39\7\54\6\197\4\144\3\197\4\197\4\197\4\231\7\248\2\247\7\89\4\208\2\186\3\186\3\186\3\186\3\108\1\108\1\108\1\108\1\
    \\108\1\105\8\195\4\120\6\171\10\85\10\173\5\140\7\177\7\74\7\184\4\108\1\114\3\214\5\171\10\249\5\245\0\245\0\245\0\245\0\102\2\227\6\202\0\202\0\202\0\202\0\202\0\214\3\108\1\108\1\235\1\103\5\108\1\108\1\166\2\186\3\108\1\108\1\87\3\186\3\108\1\111\1\201\3\186\3\108\1\108\1\108\1\108\1\108\1\108\1\
    \\142\7\252\6\140\0\196\4\149\0\57\10\171\10\15\12\158\2\42\8\149\9\91\10\171\10\15\12\108\1\108\1\108\1\108\1\167\7\108\1\108\1\108\1\108\1\108\1\108\1\185\3\171\7\108\1\108\1\108\1\108\1\68\6\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\180\3\186\3\108\1\108\1\52\6\14\11\108\1\108\1\108\1\108\1\
    \\108\1\108\1\8\11\76\1\11\9\192\5\189\5\148\1\171\10\15\12\171\10\15\12\109\4\37\9\197\4\67\9\197\4\76\1\186\3\186\3\186\3\186\3\186\3\186\3\213\6\108\1\108\1\108\1\108\1\108\1\191\4\183\5\190\7\161\1\171\10\85\10\93\4\34\4\201\4\253\7\119\3\108\1\108\1\108\1\1\10\170\0\171\10\162\7\108\1\108\1\
    \\108\1\108\1\189\4\19\9\79\4\105\4\108\1\108\1\108\1\108\1\123\3\188\5\45\7\106\4\171\10\58\5\171\10\162\7\108\1\108\1\108\1\59\0\202\0\218\4\245\0\245\0\245\0\245\0\245\0\96\2\169\3\186\3\41\7\197\4\195\4\175\0\176\0\193\0\202\0\202\0\202\0\202\0\202\0\58\3\62\3\62\3\62\3\62\3\62\3\62\3\
    \\62\3\224\3\202\0\226\3\202\0\202\0\202\0\59\3\62\3\62\3\62\3\62\3\197\4\197\4\197\4\197\4\197\4\197\4\197\4\197\4\202\0\245\0\254\0\109\2\202\0\245\0\202\0\245\0\254\0\109\2\202\0\157\4\202\0\245\0\202\0\254\0\202\0\93\12\202\0\93\12\202\0\93\12\144\4\223\0\54\11\48\11\0\1\74\2\202\0\16\6\
    \\4\1\119\7\222\5\227\5\208\7\52\4\169\3\195\2\169\3\156\9\218\7\169\3\214\7\59\9\233\5\230\5\69\11\75\11\158\2\71\4\62\3\229\9\16\7\16\7\16\7\16\7\102\5\186\3\197\4\78\9\73\9\197\4\21\3\186\3\111\0\100\7\183\8\236\3\205\4\211\4\12\2\248\1\36\3\42\3\158\2\158\2\101\9\101\9\101\9\101\9\
    \\106\9\116\8\83\11\89\11\17\4\27\4\94\4\94\4\94\4\30\3\21\4\94\4\94\4\94\4\32\3\95\0\245\0\245\0\245\0\245\0\245\0\245\0\202\0\202\0\202\0\202\0\202\0\202\0\20\0\7\2\12\0\217\0\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\4\2\119\9\124\9\85\12\166\1\202\0\202\0\
    \\202\0\202\0\143\4\91\6\108\1\108\1\108\1\108\1\108\1\108\1\108\1\182\2\181\2\211\2\108\1\108\1\109\1\186\3\109\1\109\1\109\1\109\1\109\1\109\1\109\1\109\1\197\4\197\4\197\4\197\4\115\11\109\11\148\9\153\9\59\4\37\0\169\3\141\11\48\9\169\3\0\8\8\6\186\3\186\3\186\3\186\3\94\4\94\4\94\4\250\7\
    \\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\98\4\186\3\164\5\63\4\17\8\21\8\100\9\21\10\195\1\111\9\107\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\109\1\136\2\122\5\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\43\10\108\1\79\0\108\1\108\1\171\10\5\12\
    \\186\3\186\3\4\2\4\2\4\2\4\2\4\2\35\5\83\9\60\6\4\2\4\2\4\2\118\0\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\80\7\101\9\146\9\186\3\45\6\48\6\108\1\108\1\116\6\126\8\239\7\233\4\108\1\108\1\108\1\108\1\108\1\108\1\218\6\186\3\78\7\108\1\108\1\108\1\108\1\108\1\123\3\127\3\
    \\217\10\103\4\171\10\15\12\197\4\197\4\187\4\40\6\171\10\162\7\108\1\108\1\53\6\142\9\108\1\108\1\52\6\197\4\79\4\102\4\108\1\108\1\108\1\181\3\214\6\108\1\108\1\108\1\108\1\108\1\113\3\47\7\168\3\127\10\171\10\117\10\55\1\108\1\171\10\171\4\108\1\108\1\108\1\108\1\108\1\210\6\92\9\186\3\48\6\132\5\
    \\171\10\94\5\108\1\108\1\142\2\169\9\108\1\108\1\108\1\108\1\108\1\108\1\129\0\199\11\68\6\186\3\186\3\12\1\108\1\71\8\18\1\186\3\159\1\159\1\159\1\186\3\109\1\109\1\202\0\202\0\202\0\202\0\202\0\219\3\202\0\61\11\202\0\202\0\202\0\202\0\202\0\202\0\202\0\202\0\202\0\202\0\108\1\108\1\108\1\108\1\
    \\177\9\182\9\171\10\15\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\101\12\109\12\109\12\109\12\109\12\109\12\109\12\109\12\109\12\109\12\109\12\109\12\109\12\109\12\109\12\
    \\109\12\109\12\109\12\109\12\109\12\109\12\109\12\109\12\109\12\109\12\109\12\109\12\109\12\109\12\109\12\109\12\109\12\109\12\197\4\197\4\145\11\180\2\197\4\197\4\86\0\62\4\156\5\28\8\172\1\174\2\20\5\42\2\111\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\0\4\
    \\122\10\223\7\171\10\177\10\244\0\245\0\245\0\139\8\201\0\202\0\202\0\30\0\153\11\108\1\156\0\108\1\108\1\108\1\108\1\159\11\108\1\108\1\108\1\109\1\158\1\158\1\158\1\61\5\120\4\202\1\186\3\238\5\40\9\158\2\158\2\158\2\158\2\158\2\218\9\94\4\101\9\101\9\101\9\101\9\101\9\101\9\213\9\244\7\94\4\248\3\
    \\94\4\97\4\101\4\186\3\186\3\186\3\186\3\186\3\94\4\94\4\94\4\94\4\94\4\125\8\108\1\108\1\108\1\108\1\40\8\87\8\108\1\108\1\170\5\154\7\108\1\108\1\108\1\108\1\53\6\27\1\108\1\108\1\108\1\160\1\108\1\108\1\108\1\108\1\182\3\108\1\58\8\186\3\186\3\186\3\186\3\186\3\245\0\245\0\245\0\245\0\
    \\245\0\202\0\202\0\202\0\202\0\202\0\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\180\3\171\10\15\12\245\0\245\0\245\0\245\0\111\2\202\0\202\0\202\0\202\0\80\6\108\1\108\1\108\1\108\1\108\1\108\1\109\1\186\3\108\1\108\1\180\3\186\3\108\1\186\3\186\3\186\3\52\0\62\3\62\3\62\3\62\3\62\3\
    \\50\0\231\9\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\180\3\106\1\108\1\108\1\108\1\108\1\110\1\65\5\108\1\108\1\160\1\158\2\108\1\108\1\123\5\34\2\108\1\108\1\108\1\109\1\44\8\158\2\186\3\186\3\186\3\186\3\186\3\186\3\108\1\108\1\175\4\24\2\203\8\141\3\112\1\107\1\108\1\108\1\180\3\102\3\
    \\158\2\43\8\169\3\181\2\108\1\108\1\108\1\205\9\108\1\108\1\108\1\144\6\186\3\186\3\186\3\186\3\108\1\141\6\108\1\108\1\167\6\24\2\170\3\186\3\108\1\108\1\108\1\108\1\108\1\108\1\180\3\108\4\108\1\108\1\180\3\158\2\108\1\108\1\183\3\158\2\108\1\108\1\184\3\19\11\186\3\26\2\186\3\186\3\186\3\186\3\
    \\186\3\186\3\186\3\186\3\186\3\186\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\185\3\186\3\186\3\186\3\186\3\186\3\186\3\245\0\245\0\245\0\245\0\245\0\245\0\112\2\186\3\202\0\202\0\202\0\202\0\202\0\202\0\81\6\25\2\172\9\108\1\108\1\108\1\108\1\108\1\108\1\197\4\59\6\37\9\25\2\158\2\
    \\52\5\171\10\190\0\211\2\119\3\108\1\108\1\108\1\108\1\108\1\179\5\179\11\190\6\193\6\108\1\108\1\108\1\185\3\171\10\15\12\186\4\108\1\108\1\108\1\52\6\168\0\43\5\171\10\176\1\186\3\108\1\108\1\108\1\108\1\199\10\186\3\119\3\108\1\108\1\108\1\108\1\108\1\176\5\165\0\217\6\86\9\171\10\102\11\26\2\158\2\
    \\39\8\186\3\108\1\108\1\105\1\108\1\108\1\175\5\174\11\65\0\61\10\186\3\186\3\186\3\186\3\186\3\186\3\186\3\109\1\98\1\108\1\110\1\108\1\125\12\108\1\108\1\108\1\108\1\108\1\52\6\189\5\27\1\171\10\15\12\38\10\72\5\69\5\108\1\108\1\106\1\103\1\161\3\76\8\80\8\79\5\87\8\181\0\11\10\11\10\186\3\
    \\108\1\105\6\108\1\108\1\108\1\108\1\110\1\189\5\82\1\186\7\71\0\181\2\88\6\186\3\186\3\186\3\108\1\108\1\108\1\108\1\108\1\108\1\174\5\197\4\232\8\219\6\171\10\193\11\184\3\186\3\186\3\186\3\108\1\108\1\108\1\108\1\108\1\108\1\189\5\185\5\147\7\186\3\171\10\15\12\186\3\186\3\186\3\186\3\108\1\108\1\
    \\108\1\108\1\108\1\108\1\189\5\173\11\65\12\186\3\171\10\15\12\169\3\222\6\186\3\186\3\108\1\108\1\108\1\108\1\108\1\8\9\166\0\125\12\171\10\15\12\171\10\171\10\115\10\186\3\186\3\186\3\108\1\108\1\108\1\95\3\180\5\12\10\171\10\7\5\109\1\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\
    \\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\108\1\108\1\108\1\108\1\108\1\175\5\197\4\86\5\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\245\0\245\0\245\0\245\0\202\0\202\0\202\0\202\0\171\10\127\7\41\8\103\5\169\3\209\2\186\3\186\3\186\3\186\3\
    \\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\108\1\108\1\108\1\108\1\125\12\186\3\171\10\15\12\108\1\106\1\108\1\108\1\108\1\172\5\76\1\166\0\221\6\186\3\171\10\127\7\158\2\39\8\5\11\108\1\108\1\108\1\143\3\197\4\197\4\250\6\24\9\186\3\
    \\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\109\1\105\1\108\1\108\1\108\1\108\1\41\5\127\2\124\0\186\3\171\10\15\12\110\1\106\1\108\1\108\1\108\1\182\7\29\9\185\3\171\10\15\12\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\100\8\108\1\106\1\108\1\108\1\108\1\104\8\227\11\34\9\169\3\
    \\171\10\133\12\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\185\3\186\3\158\2\158\2\240\7\11\7\8\7\94\4\100\4\102\4\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\109\1\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\
    \\186\3\186\3\186\3\186\3\108\1\108\1\108\1\53\6\197\4\5\10\171\10\15\12\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\185\3\108\1\108\1\108\1\109\1\171\10\117\10\
    \\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\109\1\171\10\15\12\108\1\108\1\108\1\180\3\30\10\186\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\180\3\186\3\186\3\186\3\186\3\103\5\
    \\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\98\4\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\
    \\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\96\4\186\3\94\4\94\4\94\4\94\4\95\4\28\3\94\4\94\4\94\4\94\4\94\4\94\4\227\8\69\7\132\3\69\10\62\7\201\4\94\4\94\4\94\4\65\7\94\4\94\4\94\4\94\4\94\4\94\4\94\4\99\4\186\3\186\3\94\4\94\4\94\4\94\4\
    \\94\4\94\4\94\4\94\4\77\10\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\158\2\158\2\40\8\186\3\158\2\158\2\40\8\186\3\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\95\4\186\3\158\2\158\2\158\2\43\8\186\3\186\3\186\3\186\3\186\3\186\3\
    \\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\245\0\245\0\245\0\141\4\202\0\202\0\132\4\245\0\245\0\137\4\144\4\202\0\202\0\245\0\245\0\245\0\141\4\202\0\202\0\68\2\230\6\89\2\137\4\209\3\145\4\202\0\245\0\245\0\245\0\141\4\202\0\202\0\202\0\202\0\205\0\132\4\245\0\245\0\248\0\202\0\
    \\202\0\203\0\130\4\245\0\245\0\246\0\202\0\202\0\202\0\128\4\245\0\245\0\245\0\252\0\202\0\202\0\207\0\255\11\171\10\171\10\171\10\171\10\171\10\171\10\76\1\197\4\197\4\36\7\131\2\27\1\62\3\62\3\62\3\62\3\62\3\62\3\62\3\228\9\186\3\186\3\186\3\211\2\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\
    \\186\3\186\3\186\3\186\3\186\3\186\3\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\108\1\133\6\158\2\76\1\186\3\186\3\186\3\186\3\186\3\112\1\108\1\108\1\108\1\132\1\107\1\113\1\251\4\109\6\242\4\132\1\240\4\
    \\132\1\113\1\113\1\246\4\108\1\105\1\108\1\182\3\228\2\105\1\108\1\182\3\186\3\186\3\186\3\186\3\186\3\186\3\25\5\186\3\99\4\186\3\94\4\94\4\94\4\94\4\94\4\98\4\94\4\101\4\100\4\186\3\96\4\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\186\3\
    \\186\3\186\3\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\163\10\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\
    \\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\25\3\94\4\97\4\94\4\97\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\95\4\26\3\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\100\4\94\4\98\4\101\4\186\3\94\4\98\4\
    \\94\4\94\4\94\4\94\4\94\4\94\4\94\4\186\3\94\4\100\4\94\4\94\4\94\4\94\4\94\4\186\3\94\4\94\4\94\4\96\4\94\4\98\4\100\4\186\3\186\3\186\3\186\3\186\3\186\3\186\3\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\98\4\186\3\94\4\96\4\94\4\97\4\94\4\118\8\94\4\94\4\
    \\94\4\94\4\94\4\94\4\95\4\27\5\94\4\94\11\94\4\100\4\94\4\101\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\249\7\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\94\4\171\10\15\12"#

generalCategoryOffsets2BitMap :: Ptr Word16
generalCategoryOffsets2BitMap = Ptr
    "\14\3\135\9\166\9\160\6\83\7\109\7\98\10\130\10\71\6\162\10\194\10\226\10\2\11\34\11\66\11\98\11\130\11\79\1\30\0\16\9\205\4\79\1\224\4\162\11\194\11\177\2\226\11\2\12\34\12\66\12\110\9\98\12\130\12\162\12\73\5\28\8\57\8\238\2\224\2\43\5\121\5\89\5\73\5\205\2\194\12\226\12\2\13\233\0\34\13\0\0\
    \\0\5\121\5\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\209\0\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\
    \\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\
    \\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\201\0\79\1\79\1\79\1\215\3\79\1\66\13\196\9\98\13\130\13\162\13\194\13\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\
    \\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\122\3\226\13\226\13\226\13\226\13\226\13\226\13\226\13\226\13\2\14\2\14\2\14\2\14\2\14\2\14\2\14\2\14\2\14\2\14\2\14\2\14\2\14\2\14\2\14\2\14\2\14\2\14\2\14\2\14\2\14\2\14\2\14\2\14\2\14\79\1\
    \\145\2\225\7\79\1\252\7\34\14\66\14\220\1\98\14\27\4\130\14\162\14\51\7\79\1\194\14\226\14\89\8\2\15\34\15\66\15\223\5\243\5\228\9\98\15\130\15\162\15\194\15\226\15\79\2\2\16\34\16\66\16\188\1\137\0\98\16\130\16\162\16\112\1\194\16\79\1\79\1\79\1\7\4\247\3\144\1\153\1\153\1\153\1\153\1\153\1\153\1\
    \\153\1\153\1\153\1\65\3\79\1\79\1\79\1\79\1\28\2\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\40\2\79\1\79\1\226\16\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\
    \\153\1\153\1\153\1\2\17\153\1\153\1\153\1\153\1\153\1\153\1\79\1\79\1\34\17\57\0\153\1\81\0\105\0\35\10\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\25\7\79\1\79\1\79\1\79\1\66\17\167\0\153\1\153\1\
    \\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\169\0\79\1\97\3\111\3\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\58\2\153\1\153\1\153\1\153\1\153\1\
    \\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\7\1\121\5\98\17\100\6\130\17\162\17\194\17\226\17\2\18\172\5\191\5\34\18\121\5\121\5\193\7\153\1\153\1\153\1\153\1\45\3\66\18\154\3\168\3\153\1\100\4\173\4\153\1\157\1\98\18\59\4\153\1\153\1\77\4\132\4\130\18\153\1\149\8\120\8\162\18\194\18\
    \\121\5\121\5\226\18\2\19\34\19\121\5\66\19\98\19\153\1\153\1\153\1\153\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\
    \\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\
    \\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\
    \\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\47\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\39\1\111\2\79\1\79\1\79\1\
    \\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\123\2\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\41\6\79\1\79\1\
    \\100\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\153\1\79\1\79\1\108\1\153\1\153\1\153\1\153\1\153\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\242\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\79\1\
    \\79\1\79\1\79\1\252\1\132\6\154\6"#