summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/xelatex/ucharclasses
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-12-21 23:57:50 +0000
committerKarl Berry <karl@freefriends.org>2010-12-21 23:57:50 +0000
commitacc3b35eec6064cf6c468aeed3a19f83813dde8d (patch)
treee814a6649caa14203f67e6ddf96f7d2212ce7bda /Master/texmf-dist/tex/xelatex/ucharclasses
parentbbaaccee05e7f1de7db31d4d2b56b8fff1f28d85 (diff)
new xelatex package ucharclasses 1.0 (21dec10)
git-svn-id: svn://tug.org/texlive/trunk@20821 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/ucharclasses')
-rw-r--r--Master/texmf-dist/tex/xelatex/ucharclasses/ucharclasses.sty1587
1 files changed, 1587 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/xelatex/ucharclasses/ucharclasses.sty b/Master/texmf-dist/tex/xelatex/ucharclasses/ucharclasses.sty
new file mode 100644
index 00000000000..62059349ad0
--- /dev/null
+++ b/Master/texmf-dist/tex/xelatex/ucharclasses/ucharclasses.sty
@@ -0,0 +1,1587 @@
+% ----------------------------------------------------------------------------
+% This "ucharclasses" package sets up XeTeX character classes based on which
+% unicode block a character is found in. It then allows transition rules to be defined
+% when entering or leaving particular unicode blocks, the code of which gets inserted
+% automatically when a transition from a character from one unicode block to a
+% character from another unicode block is encountered by XeTeX
+%
+% Current compatibility should be Unicode 6.0, although I may have missed one or
+% more blocks that were added between 5 and 6.
+%
+% This package was written by Mike "Pomax" Kamermans, from nihongoresources
+% and is © 2010, Michiel Kamermans. You may freely use this package, but you are
+% discouraged from modifying this package and then redistributing it. Instead, please
+% contact me (ideally on the XeTeX mailing list) and we can discuss the changes
+% you wish to make. If they benefit everyone, they will be worked in as a new version.
+%
+% ----------------------------------------------------------------------------
+
+\ProvidesPackage{ucharclasses}[2010/12/19 v1.0 Unicode block character classes for XeLaTeX]
+
+% ----------------------------------------------------------------------------
+% The package options allow you to selectively enable certain unicode blocks
+% ----------------------------------------------------------------------------
+
+% load indicator "flags" - master flag
+
+\newcommand{\loadAllClasses}{1}
+\newcommand{\overrideClassLoading}{\renewcommand{\loadAllClasses}{0}}
+
+% load indicator "flags" - block flags
+
+% Unicode 5.1 blocks:
+
+\newcommand{\enableAegeanNumbers}{0}
+\newcommand{\enableAlphabeticPresentationForms}{0}
+\newcommand{\enableAncientGreekMusicalNotation}{0}
+\newcommand{\enableAncientGreekNumbers}{0}
+\newcommand{\enableAncientSymbols}{0}
+\newcommand{\enableArabic}{0}
+\newcommand{\enableArabicPresentationFormsA}{0}
+\newcommand{\enableArabicPresentationFormsB}{0}
+\newcommand{\enableArabicSupplement}{0}
+\newcommand{\enableArmenian}{0}
+\newcommand{\enableArrows}{0}
+\newcommand{\enableBalinese}{0}
+\newcommand{\enableBasicLatin}{0}
+\newcommand{\enableBengali}{0}
+\newcommand{\enableBlockElements}{0}
+\newcommand{\enableBopomofo}{0}
+\newcommand{\enableBopomofoExtended}{0}
+\newcommand{\enableBoxDrawing}{0}
+\newcommand{\enableBraillePatterns}{0}
+\newcommand{\enableBuginese}{0}
+\newcommand{\enableBuhid}{0}
+\newcommand{\enableByzantineMusicalSymbols}{0}
+\newcommand{\enableCarian}{0}
+\newcommand{\enableCham}{0}
+\newcommand{\enableCherokee}{0}
+\newcommand{\enableCJKCompatibility}{0}
+\newcommand{\enableCJKCompatibilityForms}{0}
+\newcommand{\enableCJKCompatibilityIdeographs}{0}
+\newcommand{\enableCJKCompatibilityIdeographsSupplement}{0}
+\newcommand{\enableCJKRadicalsSupplement}{0}
+\newcommand{\enableCJKStrokes}{0}
+\newcommand{\enableCJKSymbolsAndPunctuation}{0}
+\newcommand{\enableCJKUnifiedIdeographs}{0}
+\newcommand{\enableCJKUnifiedIdeographsExtensionA}{0}
+\newcommand{\enableCJKUnifiedIdeographsExtensionB}{0}
+\newcommand{\enableCJKUnifiedIdeographsExtensionC}{0}
+\newcommand{\enableCombiningDiacriticalMarks}{0}
+\newcommand{\enableCombiningDiacriticalMarksforSymbols}{0}
+\newcommand{\enableCombiningDiacriticalMarksSupplement}{0}
+\newcommand{\enableCombiningHalfMarks}{0}
+\newcommand{\enableControlPictures}{0}
+\newcommand{\enableCoptic}{0}
+\newcommand{\enableCountingRodNumerals}{0}
+\newcommand{\enableCuneiform}{0}
+\newcommand{\enableCuneiformNumbersAndPunctuation}{0}
+\newcommand{\enableCurrencySymbols}{0}
+\newcommand{\enableCypriotSyllabary}{0}
+\newcommand{\enableCyrillic}{0}
+\newcommand{\enableCyrillicExtendedA}{0}
+\newcommand{\enableCyrillicExtendedB}{0}
+\newcommand{\enableCyrillicSupplement}{0}
+\newcommand{\enableDeseret}{0}
+\newcommand{\enableDevanagari}{0}
+\newcommand{\enableDingbats}{0}
+\newcommand{\enableDominoTiles}{0}
+\newcommand{\enableEnclosedAlphanumerics}{0}
+\newcommand{\enableEnclosedCJKLettersAndMonths}{0}
+\newcommand{\enableEthiopic}{0}
+\newcommand{\enableEthiopicExtended}{0}
+\newcommand{\enableEthiopicSupplement}{0}
+\newcommand{\enableGeneralPunctuation}{0}
+\newcommand{\enableGeometricShapes}{0}
+\newcommand{\enableGeorgian}{0}
+\newcommand{\enableGeorgianSupplement}{0}
+\newcommand{\enableGlagolitic}{0}
+\newcommand{\enableGothic}{0}
+\newcommand{\enableGreekAndCoptic}{0}
+\newcommand{\enableGreekExtended}{0}
+\newcommand{\enableGujarati}{0}
+\newcommand{\enableGurmukhi}{0}
+\newcommand{\enableHalfwidthAndFullwidthForms}{0}
+\newcommand{\enableHangulCompatibilityJamo}{0}
+\newcommand{\enableHangulJamo}{0}
+\newcommand{\enableHangulSyllables}{0}
+\newcommand{\enableHanunoo}{0}
+\newcommand{\enableHebrew}{0}
+\newcommand{\enableHiragana}{0}
+\newcommand{\enableIdeographicDescriptionCharacters}{0}
+\newcommand{\enableIPAExtensions}{0}
+\newcommand{\enableKanbun}{0}
+\newcommand{\enableKangxiRadicals}{0}
+\newcommand{\enableKannada}{0}
+\newcommand{\enableKatakana}{0}
+\newcommand{\enableKatakanaPhoneticExtensions}{0}
+\newcommand{\enableKayahLi}{0}
+\newcommand{\enableKharoshthi}{0}
+\newcommand{\enableKhmer}{0}
+\newcommand{\enableKhmerSymbols}{0}
+\newcommand{\enableLao}{0}
+\newcommand{\enableLatinExtendedAdditional}{0}
+\newcommand{\enableLatinExtendedA}{0}
+\newcommand{\enableLatinExtendedB}{0}
+\newcommand{\enableLatinExtendedC}{0}
+\newcommand{\enableLatinExtendedD}{0}
+\newcommand{\enableLatinSupplement}{0}
+\newcommand{\enableLepcha}{0}
+\newcommand{\enableLetterlikeSymbols}{0}
+\newcommand{\enableLimbu}{0}
+\newcommand{\enableLinearBIdeograms}{0}
+\newcommand{\enableLinearBSyllabary}{0}
+\newcommand{\enableLycian}{0}
+\newcommand{\enableLydian}{0}
+\newcommand{\enableMahjongTiles}{0}
+\newcommand{\enableMalayalam}{0}
+\newcommand{\enableMathematicalAlphanumericSymbols}{0}
+\newcommand{\enableMathematicalOperators}{0}
+\newcommand{\enableMiscellaneousMathematicalSymbolsA}{0}
+\newcommand{\enableMiscellaneousMathematicalSymbolsB}{0}
+\newcommand{\enableMiscellaneousSymbols}{0}
+\newcommand{\enableMiscellaneousSymbolsAndArrows}{0}
+\newcommand{\enableMiscellaneousTechnical}{0}
+\newcommand{\enableModifierToneLetters}{0}
+\newcommand{\enableMongolian}{0}
+\newcommand{\enableMusicalSymbols}{0}
+\newcommand{\enableMyanmar}{0}
+\newcommand{\enableNewTaiLue}{0}
+\newcommand{\enableNKo}{0}
+\newcommand{\enableNumberForms}{0}
+\newcommand{\enableOgham}{0}
+\newcommand{\enableOldChiki}{0}
+\newcommand{\enableOldItalic}{0}
+\newcommand{\enableOldPersian}{0}
+\newcommand{\enableOpticalCharacterRecognition}{0}
+\newcommand{\enableOriya}{0}
+\newcommand{\enableOsmanya}{0}
+\newcommand{\enablePhagsPa}{0}
+\newcommand{\enablePhaistosDisc}{0}
+\newcommand{\enablePhoenician}{0}
+\newcommand{\enablePhoneticExtensions}{0}
+\newcommand{\enablePhoneticExtensionsSupplement}{0}
+\newcommand{\enablePrivateUseArea}{0}
+\newcommand{\enableRejang}{0}
+\newcommand{\enableRunic}{0}
+\newcommand{\enableSaurashtra}{0}
+\newcommand{\enableShavian}{0}
+\newcommand{\enableSinhala}{0}
+\newcommand{\enableSmallFormVariants}{0}
+\newcommand{\enableSpacingModifierLetters}{0}
+\newcommand{\enableSpecials}{0}
+\newcommand{\enableSuperscriptsAndSubscripts}{0}
+\newcommand{\enableSupplementalArrowsA}{0}
+\newcommand{\enableSupplementalArrowsB}{0}
+\newcommand{\enableSupplementalMathematicalOperators}{0}
+\newcommand{\enableSupplementalPunctuation}{0}
+\newcommand{\enableSupplementaryPrivateUseAreaA}{0}
+\newcommand{\enableSupplementaryPrivateUseAreaB}{0}
+\newcommand{\enableSylotiNagri}{0}
+\newcommand{\enableSyriac}{0}
+\newcommand{\enableTagalog}{0}
+\newcommand{\enableTagbanwa}{0}
+\newcommand{\enableTags}{0}
+\newcommand{\enableTaiLe}{0}
+\newcommand{\enableTaiXuanJingSymbols}{0}
+\newcommand{\enableTamil}{0}
+\newcommand{\enableTelugu}{0}
+\newcommand{\enableThaana}{0}
+\newcommand{\enableThai}{0}
+\newcommand{\enableTibetan}{0}
+\newcommand{\enableTifinagh}{0}
+\newcommand{\enableUgaritic}{0}
+\newcommand{\enableUnifiedCanadianAboriginalSyllabics}{0}
+\newcommand{\enableVai}{0}
+\newcommand{\enableVariationSelectors}{0}
+\newcommand{\enableVariationSelectorsSupplement}{0}
+\newcommand{\enableVerticalForms}{0}
+\newcommand{\enableYiRadicals}{0}
+\newcommand{\enableYiSyllables}{0}
+\newcommand{\enableYijingHexagramSymbols}{0}
+
+% New blocks in Unicode 6.0:
+
+\newcommand{\enableMandaic}{0}
+\newcommand{\enableBatak}{0}
+\newcommand{\enableEthiopicExtendedA}{0}
+\newcommand{\enableBrahmi}{0}
+\newcommand{\enableBamumSupplement}{0}
+\newcommand{\enableKanaSupplement}{0}
+\newcommand{\enablePlayingCards}{0}
+\newcommand{\enableMiscellaneousSymbolsAndPictographs}{0}
+\newcommand{\enableEmoticons}{0}
+\newcommand{\enableTransportAndMapSymbols}{0}
+\newcommand{\enableAlchemicalSymbols}{0}
+\newcommand{\enableCJKUnifiedIdeographsExtensionD}{0}
+
+% ----------------------------------------------------------------------------
+% Option handling lets the user turn off "load all" and selectively enable only those blocks
+% they are interested in
+% ----------------------------------------------------------------------------
+
+\DeclareOption{AegeanNumbers}{\overrideClassLoading\renewcommand{\enableAegeanNumbers}{1}}
+\DeclareOption{AlphabeticPresentationForms}{\overrideClassLoading\renewcommand{\enableAlphabeticPresentationForms}{1}}
+\DeclareOption{AncientGreekMusicalNotation}{\overrideClassLoading\renewcommand{\enableAncientGreekMusicalNotation}{1}}
+\DeclareOption{AncientGreekNumbers}{\overrideClassLoading\renewcommand{\enableAncientGreekNumbers}{1}}
+\DeclareOption{AncientSymbols}{\overrideClassLoading\renewcommand{\enableAncientSymbols}{1}}
+\DeclareOption{Arabic}{\overrideClassLoading\renewcommand{\enableArabic}{1}}
+\DeclareOption{ArabicPresentationFormsA}{\overrideClassLoading\renewcommand{\enableArabicPresentationFormsA}{1}}
+\DeclareOption{ArabicPresentationFormsB}{\overrideClassLoading\renewcommand{\enableArabicPresentationFormsB}{1}}
+\DeclareOption{ArabicSupplement}{\overrideClassLoading\renewcommand{\enableArabicSupplement}{1}}
+\DeclareOption{Armenian}{\overrideClassLoading\renewcommand{\enableArmenian}{1}}
+\DeclareOption{Arrows}{\overrideClassLoading\renewcommand{\enableArrows}{1}}
+\DeclareOption{Balinese}{\overrideClassLoading\renewcommand{\enableBalinese}{1}}
+\DeclareOption{BasicLatin}{\overrideClassLoading\renewcommand{\enableBasicLatin}{1}}
+\DeclareOption{Bengali}{\overrideClassLoading\renewcommand{\enableBengali}{1}}
+\DeclareOption{BlockElements}{\overrideClassLoading\renewcommand{\enableBlockElements}{1}}
+\DeclareOption{Bopomofo}{\overrideClassLoading\renewcommand{\enableBopomofo}{1}}
+\DeclareOption{BopomofoExtended}{\overrideClassLoading\renewcommand{\enableBopomofoExtended}{1}}
+\DeclareOption{BoxDrawing}{\overrideClassLoading\renewcommand{\enableBoxDrawing}{1}}
+\DeclareOption{BraillePatterns}{\overrideClassLoading\renewcommand{\enableBraillePatterns}{1}}
+\DeclareOption{Buginese}{\overrideClassLoading\renewcommand{\enableBuginese}{1}}
+\DeclareOption{Buhid}{\overrideClassLoading\renewcommand{\enableBuhid}{1}}
+\DeclareOption{ByzantineMusicalSymbols}{\overrideClassLoading\renewcommand{\enableByzantineMusicalSymbols}{1}}
+\DeclareOption{Carian}{\overrideClassLoading\renewcommand{\enableCarian}{1}}
+\DeclareOption{Cham}{\overrideClassLoading\renewcommand{\enableCham}{1}}
+\DeclareOption{Cherokee}{\overrideClassLoading\renewcommand{\enableCherokee}{1}}
+\DeclareOption{CJKCompatibility}{\overrideClassLoading\renewcommand{\enableCJKCompatibility}{1}}
+\DeclareOption{CJKCompatibilityForms}{\overrideClassLoading\renewcommand{\enableCJKCompatibilityForms}{1}}
+\DeclareOption{CJKCompatibilityIdeographs}{\overrideClassLoading\renewcommand{\enableCJKCompatibilityIdeographs}{1}}
+\DeclareOption{CJKCompatibilityIdeographsSupplement}{\overrideClassLoading\renewcommand{\enableCJKCompatibilityIdeographsSupplement}{1}}
+\DeclareOption{CJKRadicalsSupplement}{\overrideClassLoading\renewcommand{\enableCJKRadicalsSupplement}{1}}
+\DeclareOption{CJKStrokes}{\overrideClassLoading\renewcommand{\enableCJKStrokes}{1}}
+\DeclareOption{CJKSymbolsAndPunctuation}{\overrideClassLoading\renewcommand{\enableCJKSymbolsAndPunctuation}{1}}
+\DeclareOption{CJKUnifiedIdeographs}{\overrideClassLoading\renewcommand{\enableCJKUnifiedIdeographs}{1}}
+\DeclareOption{CJKUnifiedIdeographsExtensionA}{\overrideClassLoading\renewcommand{\enableCJKUnifiedIdeographsExtensionA}{1}}
+\DeclareOption{CJKUnifiedIdeographsExtensionB}{\overrideClassLoading\renewcommand{\enableCJKUnifiedIdeographsExtensionB}{1}}
+\DeclareOption{CJKUnifiedIdeographsExtensionC}{\overrideClassLoading\renewcommand{\enableCJKUnifiedIdeographsExtensionC}{1}}
+\DeclareOption{CombiningDiacriticalMarks}{\overrideClassLoading\renewcommand{\enableCombiningDiacriticalMarks}{1}}
+\DeclareOption{CombiningDiacriticalMarksforSymbols}{\overrideClassLoading\renewcommand{\enableCombiningDiacriticalMarksforSymbols}{1}}
+\DeclareOption{CombiningDiacriticalMarksSupplement}{\overrideClassLoading\renewcommand{\enableCombiningDiacriticalMarksSupplement}{1}}
+\DeclareOption{CombiningHalfMarks}{\overrideClassLoading\renewcommand{\enableCombiningHalfMarks}{1}}
+\DeclareOption{ControlPictures}{\overrideClassLoading\renewcommand{\enableControlPictures}{1}}
+\DeclareOption{Coptic}{\overrideClassLoading\renewcommand{\enableCoptic}{1}}
+\DeclareOption{CountingRodNumerals}{\overrideClassLoading\renewcommand{\enableCountingRodNumerals}{1}}
+\DeclareOption{Cuneiform}{\overrideClassLoading\renewcommand{\enableCuneiform}{1}}
+\DeclareOption{CuneiformNumbersAndPunctuation}{\overrideClassLoading\renewcommand{\enableCuneiformNumbersAndPunctuation}{1}}
+\DeclareOption{CurrencySymbols}{\overrideClassLoading\renewcommand{\enableCurrencySymbols}{1}}
+\DeclareOption{CypriotSyllabary}{\overrideClassLoading\renewcommand{\enableCypriotSyllabary}{1}}
+\DeclareOption{Cyrillic}{\overrideClassLoading\renewcommand{\enableCyrillic}{1}}
+\DeclareOption{CyrillicExtendedA}{\overrideClassLoading\renewcommand{\enableCyrillicExtendedA}{1}}
+\DeclareOption{CyrillicExtendedB}{\overrideClassLoading\renewcommand{\enableCyrillicExtendedB}{1}}
+\DeclareOption{CyrillicSupplement}{\overrideClassLoading\renewcommand{\enableCyrillicSupplement}{1}}
+\DeclareOption{Deseret}{\overrideClassLoading\renewcommand{\enableDeseret}{1}}
+\DeclareOption{Devanagari}{\overrideClassLoading\renewcommand{\enableDevanagari}{1}}
+\DeclareOption{Dingbats}{\overrideClassLoading\renewcommand{\enableDingbats}{1}}
+\DeclareOption{DominoTiles}{\overrideClassLoading\renewcommand{\enableDominoTiles}{1}}
+\DeclareOption{EnclosedAlphanumerics}{\overrideClassLoading\renewcommand{\enableEnclosedAlphanumerics}{1}}
+\DeclareOption{EnclosedCJKLettersAndMonths}{\overrideClassLoading\renewcommand{\enableEnclosedCJKLettersAndMonths}{1}}
+\DeclareOption{Ethiopic}{\overrideClassLoading\renewcommand{\enableEthiopic}{1}}
+\DeclareOption{EthiopicExtended}{\overrideClassLoading\renewcommand{\enableEthiopicExtended}{1}}
+\DeclareOption{EthiopicSupplement}{\overrideClassLoading\renewcommand{\enableEthiopicSupplement}{1}}
+\DeclareOption{GeneralPunctuation}{\overrideClassLoading\renewcommand{\enableGeneralPunctuation}{1}}
+\DeclareOption{GeometricShapes}{\overrideClassLoading\renewcommand{\enableGeometricShapes}{1}}
+\DeclareOption{Georgian}{\overrideClassLoading\renewcommand{\enableGeorgian}{1}}
+\DeclareOption{GeorgianSupplement}{\overrideClassLoading\renewcommand{\enableGeorgianSupplement}{1}}
+\DeclareOption{Glagolitic}{\overrideClassLoading\renewcommand{\enableGlagolitic}{1}}
+\DeclareOption{Gothic}{\overrideClassLoading\renewcommand{\enableGothic}{1}}
+\DeclareOption{GreekAndCoptic}{\overrideClassLoading\renewcommand{\enableGreekAndCoptic}{1}}
+\DeclareOption{GreekExtended}{\overrideClassLoading\renewcommand{\enableGreekExtended}{1}}
+\DeclareOption{Gujarati}{\overrideClassLoading\renewcommand{\enableGujarati}{1}}
+\DeclareOption{Gurmukhi}{\overrideClassLoading\renewcommand{\enableGurmukhi}{1}}
+\DeclareOption{HalfwidthAndFullwidthForms}{\overrideClassLoading\renewcommand{\enableHalfwidthAndFullwidthForms}{1}}
+\DeclareOption{HangulCompatibilityJamo}{\overrideClassLoading\renewcommand{\enableHangulCompatibilityJamo}{1}}
+\DeclareOption{HangulJamo}{\overrideClassLoading\renewcommand{\enableHangulJamo}{1}}
+\DeclareOption{HangulSyllables}{\overrideClassLoading\renewcommand{\enableHangulSyllables}{1}}
+\DeclareOption{Hanunoo}{\overrideClassLoading\renewcommand{\enableHanunoo}{1}}
+\DeclareOption{Hebrew}{\overrideClassLoading\renewcommand{\enableHebrew}{1}}
+\DeclareOption{Hiragana}{\overrideClassLoading\renewcommand{\enableHiragana}{1}}
+\DeclareOption{IdeographicDescriptionCharacters}{\overrideClassLoading\renewcommand{\enableIdeographicDescriptionCharacters}{1}}
+\DeclareOption{IPAExtensions}{\overrideClassLoading\renewcommand{\enableIPAExtensions}{1}}
+\DeclareOption{Kanbun}{\overrideClassLoading\renewcommand{\enableKanbun}{1}}
+\DeclareOption{KangxiRadicals}{\overrideClassLoading\renewcommand{\enableKangxiRadicals}{1}}
+\DeclareOption{Kannada}{\overrideClassLoading\renewcommand{\enableKannada}{1}}
+\DeclareOption{Katakana}{\overrideClassLoading\renewcommand{\enableKatakana}{1}}
+\DeclareOption{KatakanaPhoneticExtensions}{\overrideClassLoading\renewcommand{\enableKatakanaPhoneticExtensions}{1}}
+\DeclareOption{KayahLi}{\overrideClassLoading\renewcommand{\enableKayahLi}{1}}
+\DeclareOption{Kharoshthi}{\overrideClassLoading\renewcommand{\enableKharoshthi}{1}}
+\DeclareOption{Khmer}{\overrideClassLoading\renewcommand{\enableKhmer}{1}}
+\DeclareOption{KhmerSymbols}{\overrideClassLoading\renewcommand{\enableKhmerSymbols}{1}}
+\DeclareOption{Lao}{\overrideClassLoading\renewcommand{\enableLao}{1}}
+\DeclareOption{LatinExtendedAdditional}{\overrideClassLoading\renewcommand{\enableLatinExtendedAdditional}{1}}
+\DeclareOption{LatinExtendedA}{\overrideClassLoading\renewcommand{\enableLatinExtendedA}{1}}
+\DeclareOption{LatinExtendedB}{\overrideClassLoading\renewcommand{\enableLatinExtendedB}{1}}
+\DeclareOption{LatinExtendedC}{\overrideClassLoading\renewcommand{\enableLatinExtendedC}{1}}
+\DeclareOption{LatinExtendedD}{\overrideClassLoading\renewcommand{\enableLatinExtendedD}{1}}
+\DeclareOption{LatinSupplement}{\overrideClassLoading\renewcommand{\enableLatinSupplement}{1}}
+\DeclareOption{Lepcha}{\overrideClassLoading\renewcommand{\enableLepcha}{1}}
+\DeclareOption{LetterlikeSymbols}{\overrideClassLoading\renewcommand{\enableLetterlikeSymbols}{1}}
+\DeclareOption{Limbu}{\overrideClassLoading\renewcommand{\enableLimbu}{1}}
+\DeclareOption{LinearBIdeograms}{\overrideClassLoading\renewcommand{\enableLinearBIdeograms}{1}}
+\DeclareOption{LinearBSyllabary}{\overrideClassLoading\renewcommand{\enableLinearBSyllabary}{1}}
+\DeclareOption{Lycian}{\overrideClassLoading\renewcommand{\enableLycian}{1}}
+\DeclareOption{Lydian}{\overrideClassLoading\renewcommand{\enableLydian}{1}}
+\DeclareOption{MahjongTiles}{\overrideClassLoading\renewcommand{\enableMahjongTiles}{1}}
+\DeclareOption{Malayalam}{\overrideClassLoading\renewcommand{\enableMalayalam}{1}}
+\DeclareOption{MathematicalAlphanumericSymbols}{\overrideClassLoading\renewcommand{\enableMathematicalAlphanumericSymbols}{1}}
+\DeclareOption{MathematicalOperators}{\overrideClassLoading\renewcommand{\enableMathematicalOperators}{1}}
+\DeclareOption{MiscellaneousMathematicalSymbolsA}{\overrideClassLoading\renewcommand{\enableMiscellaneousMathematicalSymbolsA}{1}}
+\DeclareOption{MiscellaneousMathematicalSymbolsB}{\overrideClassLoading\renewcommand{\enableMiscellaneousMathematicalSymbolsB}{1}}
+\DeclareOption{MiscellaneousSymbols}{\overrideClassLoading\renewcommand{\enableMiscellaneousSymbols}{1}}
+\DeclareOption{MiscellaneousSymbolsAndArrows}{\overrideClassLoading\renewcommand{\enableMiscellaneousSymbolsAndArrows}{1}}
+\DeclareOption{MiscellaneousTechnical}{\overrideClassLoading\renewcommand{\enableMiscellaneousTechnical}{1}}
+\DeclareOption{ModifierToneLetters}{\overrideClassLoading\renewcommand{\enableModifierToneLetters}{1}}
+\DeclareOption{Mongolian}{\overrideClassLoading\renewcommand{\enableMongolian}{1}}
+\DeclareOption{MusicalSymbols}{\overrideClassLoading\renewcommand{\enableMusicalSymbols}{1}}
+\DeclareOption{Myanmar}{\overrideClassLoading\renewcommand{\enableMyanmar}{1}}
+\DeclareOption{NewTaiLue}{\overrideClassLoading\renewcommand{\enableNewTaiLue}{1}}
+\DeclareOption{NKo}{\overrideClassLoading\renewcommand{\enableNKo}{1}}
+\DeclareOption{NumberForms}{\overrideClassLoading\renewcommand{\enableNumberForms}{1}}
+\DeclareOption{Ogham}{\overrideClassLoading\renewcommand{\enableOgham}{1}}
+\DeclareOption{OldChiki}{\overrideClassLoading\renewcommand{\enableOldChiki}{1}}
+\DeclareOption{OldItalic}{\overrideClassLoading\renewcommand{\enableOldItalic}{1}}
+\DeclareOption{OldPersian}{\overrideClassLoading\renewcommand{\enableOldPersian}{1}}
+\DeclareOption{OpticalCharacterRecognition}{\overrideClassLoading\renewcommand{\enableOpticalCharacterRecognition}{1}}
+\DeclareOption{Oriya}{\overrideClassLoading\renewcommand{\enableOriya}{1}}
+\DeclareOption{Osmanya}{\overrideClassLoading\renewcommand{\enableOsmanya}{1}}
+\DeclareOption{PhagsPa}{\overrideClassLoading\renewcommand{\enablePhagsPa}{1}}
+\DeclareOption{PhaistosDisc}{\overrideClassLoading\renewcommand{\enablePhaistosDisc}{1}}
+\DeclareOption{Phoenician}{\overrideClassLoading\renewcommand{\enablePhoenician}{1}}
+\DeclareOption{PhoneticExtensions}{\overrideClassLoading\renewcommand{\enablePhoneticExtensions}{1}}
+\DeclareOption{PhoneticExtensionsSupplement}{\overrideClassLoading\renewcommand{\enablePhoneticExtensionsSupplement}{1}}
+\DeclareOption{PrivateUseArea}{\overrideClassLoading\renewcommand{\enablePrivateUseArea}{1}}
+\DeclareOption{Rejang}{\overrideClassLoading\renewcommand{\enableRejang}{1}}
+\DeclareOption{Runic}{\overrideClassLoading\renewcommand{\enableRunic}{1}}
+\DeclareOption{Saurashtra}{\overrideClassLoading\renewcommand{\enableSaurashtra}{1}}
+\DeclareOption{Shavian}{\overrideClassLoading\renewcommand{\enableShavian}{1}}
+\DeclareOption{Sinhala}{\overrideClassLoading\renewcommand{\enableSinhala}{1}}
+\DeclareOption{SmallFormVariants}{\overrideClassLoading\renewcommand{\enableSmallFormVariants}{1}}
+\DeclareOption{SpacingModifierLetters}{\overrideClassLoading\renewcommand{\enableSpacingModifierLetters}{1}}
+\DeclareOption{Specials}{\overrideClassLoading\renewcommand{\enableSpecials}{1}}
+\DeclareOption{SuperscriptsAndSubscripts}{\overrideClassLoading\renewcommand{\enableSuperscriptsAndSubscripts}{1}}
+\DeclareOption{SupplementalArrowsA}{\overrideClassLoading\renewcommand{\enableSupplementalArrowsA}{1}}
+\DeclareOption{SupplementalArrowsB}{\overrideClassLoading\renewcommand{\enableSupplementalArrowsB}{1}}
+\DeclareOption{SupplementalMathematicalOperators}{\overrideClassLoading\renewcommand{\enableSupplementalMathematicalOperators}{1}}
+\DeclareOption{SupplementalPunctuation}{\overrideClassLoading\renewcommand{\enableSupplementalPunctuation}{1}}
+\DeclareOption{SupplementaryPrivateUseAreaA}{\overrideClassLoading\renewcommand{\enableSupplementaryPrivateUseAreaA}{1}}
+\DeclareOption{SupplementaryPrivateUseAreaB}{\overrideClassLoading\renewcommand{\enableSupplementaryPrivateUseAreaB}{1}}
+\DeclareOption{SylotiNagri}{\overrideClassLoading\renewcommand{\enableSylotiNagri}{1}}
+\DeclareOption{Syriac}{\overrideClassLoading\renewcommand{\enableSyriac}{1}}
+\DeclareOption{Tagalog}{\overrideClassLoading\renewcommand{\enableTagalog}{1}}
+\DeclareOption{Tagbanwa}{\overrideClassLoading\renewcommand{\enableTagbanwa}{1}}
+\DeclareOption{Tags}{\overrideClassLoading\renewcommand{\enableTags}{1}}
+\DeclareOption{TaiLe}{\overrideClassLoading\renewcommand{\enableTaiLe}{1}}
+\DeclareOption{TaiXuanJingSymbols}{\overrideClassLoading\renewcommand{\enableTaiXuanJingSymbols}{1}}
+\DeclareOption{Tamil}{\overrideClassLoading\renewcommand{\enableTamil}{1}}
+\DeclareOption{Telugu}{\overrideClassLoading\renewcommand{\enableTelugu}{1}}
+\DeclareOption{Thaana}{\overrideClassLoading\renewcommand{\enableThaana}{1}}
+\DeclareOption{Thai}{\overrideClassLoading\renewcommand{\enableThai}{1}}
+\DeclareOption{Tibetan}{\overrideClassLoading\renewcommand{\enableTibetan}{1}}
+\DeclareOption{Tifinagh}{\overrideClassLoading\renewcommand{\enableTifinagh}{1}}
+\DeclareOption{Ugaritic}{\overrideClassLoading\renewcommand{\enableUgaritic}{1}}
+\DeclareOption{UnifiedCanadianAboriginalSyllabics}{\overrideClassLoading\renewcommand{\enableUnifiedCanadianAboriginalSyllabics}{1}}
+\DeclareOption{Vai}{\overrideClassLoading\renewcommand{\enableVai}{1}}
+\DeclareOption{VariationSelectors}{\overrideClassLoading\renewcommand{\enableVariationSelectors}{1}}
+\DeclareOption{VariationSelectorsSupplement}{\overrideClassLoading\renewcommand{\enableVariationSelectorsSupplement}{1}}
+\DeclareOption{VerticalForms}{\overrideClassLoading\renewcommand{\enableVerticalForms}{1}}
+\DeclareOption{YiRadicals}{\overrideClassLoading\renewcommand{\enableYiRadicals}{1}}
+\DeclareOption{YiSyllables}{\overrideClassLoading\renewcommand{\enableYiSyllables}{1}}
+\DeclareOption{YijingHexagramSymbols}{\overrideClassLoading\renewcommand{\enableYijingHexagramSymbols}{1}}
+\DeclareOption{Mandaic}{\overrideClassLoading\renewcommand{\enableMandaic}{1}}
+\DeclareOption{Batak}{\overrideClassLoading\renewcommand{\enableBatak}{1}}
+\DeclareOption{EthiopicExtendedA}{\overrideClassLoading\renewcommand{\enableEthiopicExtendedA}{1}}
+\DeclareOption{Brahmi}{\overrideClassLoading\renewcommand{\enableBrahmi}{1}}
+\DeclareOption{BamumSupplement}{\overrideClassLoading\renewcommand{\enableBamumSupplement}{1}}
+\DeclareOption{KanaSupplement}{\overrideClassLoading\renewcommand{\enableKanaSupplement}{1}}
+\DeclareOption{PlayingCards}{\overrideClassLoading\renewcommand{\enablePlayingCards}{1}}
+\DeclareOption{MiscellaneousSymbolsAndPictographs}{\overrideClassLoading\renewcommand{\enableMiscellaneousSymbolsAndPictographs}{1}}
+\DeclareOption{Emoticons}{\overrideClassLoading\renewcommand{\enableEmoticons}{1}}
+\DeclareOption{TransportAndMapSymbols}{\overrideClassLoading\renewcommand{\enableTransportAndMapSymbols}{1}}
+\DeclareOption{AlchemicalSymbols}{\overrideClassLoading\renewcommand{\enableAlchemicalSymbols}{1}}
+\DeclareOption{CJKUnifiedIdeographsExtensionD}{\overrideClassLoading\renewcommand{\enableCJKUnifiedIdeographsExtensionD}{1}}
+
+% informal groups
+
+\DeclareOption{Arabic}{
+ \overrideClassLoading
+ \renewcommand{\enableArabic}{1}
+ \renewcommand{\enableArabicPresentationFormsA}{1}
+ \renewcommand{\enableArabicPresentationFormsB}{1}
+ \renewcommand{\enableArabicSupplement}{1}}
+
+\DeclareOption{Chinese}{
+ \overrideClassLoading
+ \renewcommand{\enableBopomofo}{1}
+ \renewcommand{\enableBopomofoExtended}{1}
+ \renewcommand{\enableCJKCompatibility}{1}
+ \renewcommand{\enableCJKCompatibilityForms}{1}
+ \renewcommand{\enableCJKCompatibilityIdeographs}{1}
+ \renewcommand{\enableCJKCompatibilityIdeographsSupplement}{1}
+ \renewcommand{\enableCJKRadicalsSupplement}{1}
+ \renewcommand{\enableCJKStrokes}{1}
+ \renewcommand{\enableCJKSymbolsAndPunctuation}{1}
+ \renewcommand{\enableCJKUnifiedIdeographs}{1}
+ \renewcommand{\enableCJKUnifiedIdeographsExtensionA}{1}
+ \renewcommand{\enableCJKUnifiedIdeographsExtensionB}{1}
+ \renewcommand{\enableCJKUnifiedIdeographsExtensionC}{1}
+ \renewcommand{\enableCJKUnifiedIdeographsExtensionD}{1}
+ \renewcommand{\enableEnclosedCJKLettersAndMonths}{1}
+ \renewcommand{\enableIdeographicDescriptionCharacters}{1}
+ \renewcommand{\enableKangxiRadicals}{1}
+}
+
+\DeclareOption{CJK}{
+ \overrideClassLoading
+ \renewcommand{\enableBopomofo}{1}
+ \renewcommand{\enableBopomofoExtended}{1}
+ \renewcommand{\enableCJKCompatibility}{1}
+ \renewcommand{\enableCJKCompatibilityForms}{1}
+ \renewcommand{\enableCJKCompatibilityIdeographs}{1}
+ \renewcommand{\enableCJKCompatibilityIdeographsSupplement}{1}
+ \renewcommand{\enableCJKRadicalsSupplement}{1}
+ \renewcommand{\enableCJKStrokes}{1}
+ \renewcommand{\enableCJKSymbolsAndPunctuation}{1}
+ \renewcommand{\enableCJKUnifiedIdeographs}{1}
+ \renewcommand{\enableCJKUnifiedIdeographsExtensionA}{1}
+ \renewcommand{\enableCJKUnifiedIdeographsExtensionB}{1}
+ \renewcommand{\enableCJKUnifiedIdeographsExtensionC}{1}
+ \renewcommand{\enableCJKUnifiedIdeographsExtensionD}{1}
+ \renewcommand{\enableEnclosedCJKLettersAndMonths}{1}
+ \renewcommand{\enableHalfwidthAndFullwidthForms}{1}
+ \renewcommand{\enableHangulCompatibilityJamo}{1}
+ \renewcommand{\enableHangulJamo}{1}
+ \renewcommand{\enableHangulSyllables}{1}
+ \renewcommand{\enableHiragana}{1}
+ \renewcommand{\enableIdeographicDescriptionCharacters}{1}
+ \renewcommand{\enableKanbun}{1}
+ \renewcommand{\enableKangxiRadicals}{1}
+ \renewcommand{\enableKatakana}{1}
+ \renewcommand{\enableKatakanaPhoneticExtensions}{1}
+ \renewcommand{\enableKanaSupplement}{1}
+}
+
+\DeclareOption{Cyrillic}{
+ \overrideClassLoading
+ \renewcommand{\enableCyrillic}{1}
+ \renewcommand{\enableCyrillicExtendedA}{1}
+ \renewcommand{\enableCyrillicExtendedB}{1}
+ \renewcommand{\enableCyrillicSupplement}{1}
+}
+
+\DeclareOption{Diacritics}{
+ \overrideClassLoading
+ \renewcommand{\enableCombiningDiacriticalMarks}{1}
+ \renewcommand{\enableCombiningDiacriticalMarksforSymbols}{1}
+ \renewcommand{\enableCombiningDiacriticalMarksSupplement}{1}
+ \renewcommand{\enableCombiningHalfMarks}{1}
+}
+
+\DeclareOption{Greek}{
+ \overrideClassLoading
+ \renewcommand{\enableCoptic}{1}
+ \renewcommand{\enableGreekAndCoptic}{1}
+ \renewcommand{\enableGreekExtended}{1}
+}
+
+\DeclareOption{Korean}{
+ \overrideClassLoading
+ \renewcommand{\enableHangulCompatibilityJamo}{1}
+ \renewcommand{\enableHangulJamo}{1}
+ \renewcommand{\enableHangulSyllables}{1}
+}
+
+\DeclareOption{Japanese}{
+ \overrideClassLoading
+ \renewcommand{\enableHalfwidthAndFullwidthForms}{1}
+ \renewcommand{\enableHiragana}{1}
+ \renewcommand{\enableKanbun}{1}
+ \renewcommand{\enableKangxiRadicals}{1}
+ \renewcommand{\enableKatakana}{1}
+ \renewcommand{\enableKatakanaPhoneticExtensions}{1}
+ \renewcommand{\enableKanaSupplement}{1}
+ \renewcommand{\enableCJKUnifiedIdeographs}{1}
+}
+
+\DeclareOption{Latin}{
+ \overrideClassLoading
+ \renewcommand{\enableBasicLatin}{1}
+ \renewcommand{\enableLatinExtendedAdditional}{1}
+ \renewcommand{\enableLatinExtendedA}{1}
+ \renewcommand{\enableLatinExtendedB}{1}
+ \renewcommand{\enableLatinExtendedC}{1}
+ \renewcommand{\enableLatinExtendedD}{1}
+ \renewcommand{\enableLatinSupplement}{1}
+ \renewcommand{\enableAlphabeticPresentationForms}{1}
+}
+
+\DeclareOption{Mathematics}{
+ \overrideClassLoading
+ \renewcommand{\enableMathematicalAlphanumericSymbols}{1}
+ \renewcommand{\enableMathematicalOperators}{1}
+ \renewcommand{\enableMiscellaneousMathematicalSymbolsA}{1}
+ \renewcommand{\enableMiscellaneousMathematicalSymbolsB}{1}
+ \renewcommand{\enableSupplementalMathematicalOperators}{1}
+}
+
+\DeclareOption{Phonetics}{
+ \overrideClassLoading
+ \renewcommand{\enableIPAExtensions}{1}
+ \renewcommand{\enablePhoneticExtensions}{1}
+ \renewcommand{\enablePhoneticExtensionsSupplement}{1}
+}
+
+\DeclareOption{Punctuation}{
+ \overrideClassLoading
+ \renewcommand{\enableGeneralPunctuation}{1}
+ \renewcommand{\enableSupplementalPunctuation}{1}
+}
+
+\DeclareOption{Symbols}{
+ \overrideClassLoading
+ \renewcommand{\enableArrows}{1}
+ \renewcommand{\enableBoxDrawing}{1}
+ \renewcommand{\enableByzantineMusicalSymbols}{1}
+ \renewcommand{\enableControlPictures}{1}
+ \renewcommand{\enableCurrencySymbols}{1}
+ \renewcommand{\enableGeometricShapes}{1}
+ \renewcommand{\enableLetterlikeSymbols}{1}
+ \renewcommand{\enableMiscellaneousSymbols}{1}
+ \renewcommand{\enableMiscellaneousSymbolsAndArrows}{1}
+ \renewcommand{\enableMiscellaneousTechnical}{1}
+ \renewcommand{\enableSupplementalArrowsA}{1}
+ \renewcommand{\enableSupplementalArrowsB}{1}
+ \renewcommand{\enableVariationSelectors}{1}
+ \renewcommand{\enableVariationSelectorsSupplement}{1}
+ \renewcommand{\enableMiscellaneousSymbolsAndPictographs}{1}
+ \renewcommand{\enableEmoticons}{1}
+ \renewcommand{\enableTransportAndMapSymbols}{1}
+ \renewcommand{\enableAlchemicalSymbols}{1}
+}
+
+\DeclareOption{Yi}{
+ \overrideClassLoading
+ \renewcommand{\enableYiRadicals}{1}
+ \renewcommand{\enableYiSyllables}{1}
+}
+
+\DeclareOption{Other}{
+ \overrideClassLoading
+ \renewcommand{\enableAegeanNumbers}{1}
+ \renewcommand{\enableAncientGreekMusicalNotation}{1}
+ \renewcommand{\enableAncientGreekNumbers}{1}
+ \renewcommand{\enableArmenian}{1}
+ \renewcommand{\enableBalinese}{1}
+ \renewcommand{\enableBengali}{1}
+ \renewcommand{\enableBlockElements}{1}
+ \renewcommand{\enableBraillePatterns}{1}
+ \renewcommand{\enableBuginese}{1}
+ \renewcommand{\enableBuhid}{1}
+ \renewcommand{\enableCherokee}{1}
+ \renewcommand{\enableCoptic}{1}
+ \renewcommand{\enableCountingRodNumerals}{1}
+ \renewcommand{\enableCuneiform}{1}
+ \renewcommand{\enableCuneiformNumbersAndPunctuation}{1}
+ \renewcommand{\enableCypriotSyllabary}{1}
+ \renewcommand{\enableDeseret}{1}
+ \renewcommand{\enableDevanagari}{1}
+ \renewcommand{\enableDingbats}{1}
+ \renewcommand{\enableDominoTiles}{1}
+ \renewcommand{\enableEnclosedAlphanumerics}{1}
+ \renewcommand{\enableEthiopic}{1}
+ \renewcommand{\enableEthiopicExtended}{1}
+ \renewcommand{\enableEthiopicSupplement}{1}
+ \renewcommand{\enableGeorgian}{1}
+ \renewcommand{\enableGeorgianSupplement}{1}
+ \renewcommand{\enableGlagolitic}{1}
+ \renewcommand{\enableGothic}{1}
+ \renewcommand{\enableGujarati}{1}
+ \renewcommand{\enableGurmukhi}{1}
+ \renewcommand{\enableHanunoo}{1}
+ \renewcommand{\enableHebrew}{1}
+ \renewcommand{\enableKannada}{1}
+ \renewcommand{\enableKharoshthi}{1}
+ \renewcommand{\enableKhmer}{1}
+ \renewcommand{\enableKhmerSymbols}{1}
+ \renewcommand{\enableLao}{1}
+ \renewcommand{\enableLimbu}{1}
+ \renewcommand{\enableLinearBIdeograms}{1}
+ \renewcommand{\enableLinearBSyllabary}{1}
+ \renewcommand{\enableMahjongTiles}{1}
+ \renewcommand{\enableMalayalam}{1}
+ \renewcommand{\enableModifierToneLetters}{1}
+ \renewcommand{\enableMongolian}{1}
+ \renewcommand{\enableMusicalSymbols}{1}
+ \renewcommand{\enableMyanmar}{1}
+ \renewcommand{\enableNewTaiLue}{1}
+ \renewcommand{\enableNKo}{1}
+ \renewcommand{\enableNumberForms}{1}
+ \renewcommand{\enableOgham}{1}
+ \renewcommand{\enableOldItalic}{1}
+ \renewcommand{\enableOldPersian}{1}
+ \renewcommand{\enableOpticalCharacterRecognition}{1}
+ \renewcommand{\enableOriya}{1}
+ \renewcommand{\enableOsmanya}{1}
+ \renewcommand{\enablePhagsPa}{1}
+ \renewcommand{\enablePhoenician}{1}
+ \renewcommand{\enablePrivateUseArea}{1}
+ \renewcommand{\enableRunic}{1}
+ \renewcommand{\enableShavian}{1}
+ \renewcommand{\enableSinhala}{1}
+ \renewcommand{\enableSmallFormVariants}{1}
+ \renewcommand{\enableSpacingModifierLetters}{1}
+ \renewcommand{\enableSpecials}{1}
+ \renewcommand{\enableSuperscriptsAndSubscripts}{1}
+ \renewcommand{\enableSupplementaryPrivateUseAreaA}{1}
+ \renewcommand{\enableSupplementaryPrivateUseAreaB}{1}
+ \renewcommand{\enableSylotiNagri}{1}
+ \renewcommand{\enableSyriac}{1}
+ \renewcommand{\enableTagalog}{1}
+ \renewcommand{\enableTagbanwa}{1}
+ \renewcommand{\enableTags}{1}
+ \renewcommand{\enableTaiLe}{1}
+ \renewcommand{\enableTaiXuanJingSymbols}{1}
+ \renewcommand{\enableTamil}{1}
+ \renewcommand{\enableTelugu}{1}
+ \renewcommand{\enableThaana}{1}
+ \renewcommand{\enableThai}{1}
+ \renewcommand{\enableTibetan}{1}
+ \renewcommand{\enableTifinagh}{1}
+ \renewcommand{\enableUgaritic}{1}
+ \renewcommand{\enableUnifiedCanadianAboriginalSyllabics}{1}
+ \renewcommand{\enableVerticalForms}{1}
+ \renewcommand{\enableYijingHexagramSymbols}{1}
+}
+
+\ProcessOptions
+
+% ----------------------------------------------------------------------------
+% After dealing with the options, make sure we have the necessary packages available
+% ----------------------------------------------------------------------------
+
+% because this package relies on XeTeX's intercharclass sytem, better require XeTeX
+\RequirePackage{ifxetex}
+\RequireXeTeX
+
+% I like a slightly more intuitive programming interface than vanilla TeX
+\RequirePackage{ifthen}
+\RequirePackage{forloop}
+
+% ----------------------------------------------------------------------------
+% This package heavily exploits XeTeX's intercharclass system!
+% ----------------------------------------------------------------------------
+
+% enable/disable commands
+\newcommand{\disableTransitionRules}{\XeTeXinterchartokenstate = 0}
+\newcommand{\enableTransitionRules}{\XeTeXinterchartokenstate = 1}
+
+% shorthand commands
+\newcommand{\uccoff}{\disableTransitionRules}
+\newcommand{\uccon}{\enableTransitionRules}
+
+% make sure it's turned on
+\enableTransitionRules
+
+% ----------------------------------------------------------------------------
+% Block compatibility for version: Unicode 6.0
+% ----------------------------------------------------------------------------
+
+\newcounter{glyphcounter}
+\newcommand{\@defineUnicodeClass}[3]{%
+ \newXeTeXintercharclass#1
+ %\message{Package ucharclasses Message: #1 was assigned \the#1}
+ \forloop{glyphcounter}{#2}{\value{glyphcounter}<#3}{\XeTeXcharclass\value{glyphcounter}=#1}
+ \XeTeXcharclass#3=#1}
+
+% Unicode 5.1 block definitions
+\newcommand{\@loadAegeanNumbers}{\@defineUnicodeClass{\AegeanNumbersClass}{65792}{65855}}
+\newcommand{\@loadAlphabeticPresentationForms}{\@defineUnicodeClass{\AlphabeticPresentationFormsClass}{64256}{64335}}
+\newcommand{\@loadAncientGreekMusicalNotation}{\@defineUnicodeClass{\AncientGreekMusicalNotationClass}{119296}{119375}}
+\newcommand{\@loadAncientGreekNumbers}{\@defineUnicodeClass{\AncientGreekNumbersClass}{65856}{65935}}
+\newcommand{\@loadAncientSymbols}{\@defineUnicodeClass{\AncientSymbolsClass}{65936}{65999}}
+\newcommand{\@loadArabic}{\@defineUnicodeClass{\ArabicClass}{1536}{1791}}
+\newcommand{\@loadArabicPresentationFormsA}{\@defineUnicodeClass{\ArabicPresentationFormsAClass}{64336}{65023}}
+\newcommand{\@loadArabicPresentationFormsB}{\@defineUnicodeClass{\ArabicPresentationFormsBClass}{65136}{65279}}
+\newcommand{\@loadArabicSupplement}{\@defineUnicodeClass{\ArabicSupplementClass}{1872}{1919}}
+\newcommand{\@loadArmenian}{\@defineUnicodeClass{\ArmenianClass}{1328}{1423}}
+\newcommand{\@loadArrows}{\@defineUnicodeClass{\ArrowsClass}{8592}{8703}}
+\newcommand{\@loadBalinese}{\@defineUnicodeClass{\BalineseClass}{6912}{7039}}
+\newcommand{\@loadBasicLatin}{\@defineUnicodeClass{\BasicLatinClass}{32}{127}}
+\newcommand{\@loadBengali}{\@defineUnicodeClass{\BengaliClass}{2432}{2559}}
+\newcommand{\@loadBlockElements}{\@defineUnicodeClass{\BlockElementsClass}{9600}{9631}}
+\newcommand{\@loadBopomofo}{\@defineUnicodeClass{\BopomofoClass}{12544}{12591}}
+\newcommand{\@loadBopomofoExtended}{\@defineUnicodeClass{\BopomofoExtendedClass}{12704}{12735}}
+\newcommand{\@loadBoxDrawing}{\@defineUnicodeClass{\BoxDrawingClass}{9472}{9599}}
+\newcommand{\@loadBraillePatterns}{\@defineUnicodeClass{\BraillePatternsClass}{10240}{10495}}
+\newcommand{\@loadBuginese}{\@defineUnicodeClass{\BugineseClass}{6656}{6687}}
+\newcommand{\@loadBuhid}{\@defineUnicodeClass{\BuhidClass}{5952}{5983}}
+\newcommand{\@loadByzantineMusicalSymbols}{\@defineUnicodeClass{\ByzantineMusicalSymbolsClass}{118784}{119039}}
+\newcommand{\@loadCarian}{\@defineUnicodeClass{\CarianClass}{66208}{66271}}
+\newcommand{\@loadCham}{\@defineUnicodeClass{\ChamClass}{43520}{43615}}
+\newcommand{\@loadCherokee}{\@defineUnicodeClass{\CherokeeClass}{5024}{5119}}
+\newcommand{\@loadCJKCompatibility}{\@defineUnicodeClass{\CJKCompatibilityClass}{13056}{13311}}
+\newcommand{\@loadCJKCompatibilityForms}{\@defineUnicodeClass{\CJKCompatibilityFormsClass}{65072}{65103}}
+\newcommand{\@loadCJKCompatibilityIdeographs}{\@defineUnicodeClass{\CJKCompatibilityIdeographsClass}{63744}{64255}}
+\newcommand{\@loadCJKCompatibilityIdeographsSupplement}{\@defineUnicodeClass{\CJKCompatibilityIdeographsSupplementClass}{194560}{195103}}
+\newcommand{\@loadCJKRadicalsSupplement}{\@defineUnicodeClass{\CJKRadicalsSupplementClass}{11904}{12031}}
+\newcommand{\@loadCJKStrokes}{\@defineUnicodeClass{\CJKStrokesClass}{12736}{12783}}
+\newcommand{\@loadCJKSymbolsAndPunctuation}{\@defineUnicodeClass{\CJKSymbolsAndPunctuationClass}{12288}{12351}}
+\newcommand{\@loadCJKUnifiedIdeographs}{\@defineUnicodeClass{\CJKUnifiedIdeographsClass}{19968}{40959}}
+\newcommand{\@loadCJKUnifiedIdeographsExtensionA}{\@defineUnicodeClass{\CJKUnifiedIdeographsExtensionAClass}{13312}{19903}}
+\newcommand{\@loadCJKUnifiedIdeographsExtensionB}{\@defineUnicodeClass{\CJKUnifiedIdeographsExtensionBClass}{131072}{173791}}
+\newcommand{\@loadCombiningDiacriticalMarks}{\@defineUnicodeClass{\CombiningDiacriticalMarksClass}{768}{879}}
+\newcommand{\@loadCombiningDiacriticalMarksforSymbols}{\@defineUnicodeClass{\CombiningDiacriticalMarksforSymbolsClass}{8400}{8447}}
+\newcommand{\@loadCombiningDiacriticalMarksSupplement}{\@defineUnicodeClass{\CombiningDiacriticalMarksSupplementClass}{7616}{7679}}
+\newcommand{\@loadCombiningHalfMarks}{\@defineUnicodeClass{\CombiningHalfMarksClass}{65056}{65071}}
+\newcommand{\@loadControlPictures}{\@defineUnicodeClass{\ControlPicturesClass}{9216}{9279}}
+\newcommand{\@loadCoptic}{\@defineUnicodeClass{\CopticClass}{11392}{11519}}
+\newcommand{\@loadCountingRodNumerals}{\@defineUnicodeClass{\CountingRodNumeralsClass}{119648}{119679}}
+\newcommand{\@loadCuneiform}{\@defineUnicodeClass{\CuneiformClass}{73728}{74751}}
+\newcommand{\@loadCuneiformNumbersAndPunctuation}{\@defineUnicodeClass{\CuneiformNumbersAndPunctuationClass}{74752}{74879}}
+\newcommand{\@loadCurrencySymbols}{\@defineUnicodeClass{\CurrencySymbolsClass}{8352}{8399}}
+\newcommand{\@loadCypriotSyllabary}{\@defineUnicodeClass{\CypriotSyllabaryClass}{67584}{67647}}
+\newcommand{\@loadCyrillic}{\@defineUnicodeClass{\CyrillicClass}{1024}{1279}}
+\newcommand{\@loadCyrillicExtendedA}{\@defineUnicodeClass{\CyrillicExtendedAClass}{11744}{11775}}
+\newcommand{\@loadCyrillicExtendedB}{\@defineUnicodeClass{\CyrillicExtendedBClass}{42560}{42655}}
+\newcommand{\@loadCyrillicSupplement}{\@defineUnicodeClass{\CyrillicSupplementClass}{1280}{1327}}
+\newcommand{\@loadDeseret}{\@defineUnicodeClass{\DeseretClass}{66560}{66639}}
+\newcommand{\@loadDevanagari}{\@defineUnicodeClass{\DevanagariClass}{2304}{2431}}
+\newcommand{\@loadDingbats}{\@defineUnicodeClass{\DingbatsClass}{9984}{10175}}
+\newcommand{\@loadDominoTiles}{\@defineUnicodeClass{\DominoTilesClass}{127024}{127135}}
+\newcommand{\@loadEnclosedAlphanumerics}{\@defineUnicodeClass{\EnclosedAlphanumericsClass}{9312}{9471}}
+\newcommand{\@loadEnclosedCJKLettersAndMonths}{\@defineUnicodeClass{\EnclosedCJKLettersAndMonthsClass}{12800}{13055}}
+\newcommand{\@loadEthiopic}{\@defineUnicodeClass{\EthiopicClass}{4608}{4991}}
+\newcommand{\@loadEthiopicExtended}{\@defineUnicodeClass{\EthiopicExtendedClass}{11648}{11743}}
+\newcommand{\@loadEthiopicSupplement}{\@defineUnicodeClass{\EthiopicSupplementClass}{4992}{5023}}
+\newcommand{\@loadGeneralPunctuation}{\@defineUnicodeClass{\GeneralPunctuationClass}{8192}{8303}}
+\newcommand{\@loadGeometricShapes}{\@defineUnicodeClass{\GeometricShapesClass}{9632}{9727}}
+\newcommand{\@loadGeorgian}{\@defineUnicodeClass{\GeorgianClass}{4256}{4351}}
+\newcommand{\@loadGeorgianSupplement}{\@defineUnicodeClass{\GeorgianSupplementClass}{11520}{11567}}
+\newcommand{\@loadGlagolitic}{\@defineUnicodeClass{\GlagoliticClass}{11264}{11359}}
+\newcommand{\@loadGothic}{\@defineUnicodeClass{\GothicClass}{66352}{66383}}
+\newcommand{\@loadGreekAndCoptic}{\@defineUnicodeClass{\GreekAndCopticClass}{880}{1023}}
+\newcommand{\@loadGreekExtended}{\@defineUnicodeClass{\GreekExtendedClass}{7936}{8191}}
+\newcommand{\@loadGujarati}{\@defineUnicodeClass{\GujaratiClass}{2688}{2815}}
+\newcommand{\@loadGurmukhi}{\@defineUnicodeClass{\GurmukhiClass}{2560}{2687}}
+\newcommand{\@loadHalfwidthAndFullwidthForms}{\@defineUnicodeClass{\HalfwidthAndFullwidthFormsClass}{65280}{65519}}
+\newcommand{\@loadHangulCompatibilityJamo}{\@defineUnicodeClass{\HangulCompatibilityJamoClass}{12592}{12687}}
+\newcommand{\@loadHangulJamo}{\@defineUnicodeClass{\HangulJamoClass}{4352}{4607}}
+\newcommand{\@loadHangulSyllables}{\@defineUnicodeClass{\HangulSyllablesClass}{44032}{55215}}
+\newcommand{\@loadHanunoo}{\@defineUnicodeClass{\HanunooClass}{5920}{5951}}
+\newcommand{\@loadHebrew}{\@defineUnicodeClass{\HebrewClass}{1424}{1535}}
+\newcommand{\@loadHiragana}{\@defineUnicodeClass{\HiraganaClass}{12352}{12447}}
+\newcommand{\@loadIdeographicDescriptionCharacters}{\@defineUnicodeClass{\IdeographicDescriptionCharactersClass}{12272}{12287}}
+\newcommand{\@loadIPAExtensions}{\@defineUnicodeClass{\IPAExtensionsClass}{592}{687}}
+\newcommand{\@loadKanbun}{\@defineUnicodeClass{\KanbunClass}{12688}{12703}}
+\newcommand{\@loadKangxiRadicals}{\@defineUnicodeClass{\KangxiRadicalsClass}{12032}{12255}}
+\newcommand{\@loadKannada}{\@defineUnicodeClass{\KannadaClass}{3200}{3327}}
+\newcommand{\@loadKatakana}{\@defineUnicodeClass{\KatakanaClass}{12448}{12543}}
+\newcommand{\@loadKatakanaPhoneticExtensions}{\@defineUnicodeClass{\KatakanaPhoneticExtensionsClass}{12784}{12799}}
+\newcommand{\@loadKayahLi}{\@defineUnicodeClass{\KayahLiClass}{43264}{43311}}
+\newcommand{\@loadKharoshthi}{\@defineUnicodeClass{\KharoshthiClass}{68096}{68191}}
+\newcommand{\@loadKhmer}{\@defineUnicodeClass{\KhmerClass}{6016}{6143}}
+\newcommand{\@loadKhmerSymbols}{\@defineUnicodeClass{\KhmerSymbolsClass}{6624}{6655}}
+\newcommand{\@loadLao}{\@defineUnicodeClass{\LaoClass}{3712}{3839}}
+\newcommand{\@loadLatinExtendedAdditional}{\@defineUnicodeClass{\LatinExtendedAdditionalClass}{7680}{7935}}
+\newcommand{\@loadLatinExtendedA}{\@defineUnicodeClass{\LatinExtendedAClass}{256}{383}}
+\newcommand{\@loadLatinExtendedB}{\@defineUnicodeClass{\LatinExtendedBClass}{384}{591}}
+\newcommand{\@loadLatinExtendedC}{\@defineUnicodeClass{\LatinExtendedCClass}{11360}{11391}}
+\newcommand{\@loadLatinExtendedD}{\@defineUnicodeClass{\LatinExtendedDClass}{42784}{43007}}
+\newcommand{\@loadLatinSupplement}{\@defineUnicodeClass{\LatinSupplementClass}{128}{255}}
+\newcommand{\@loadLepcha}{\@defineUnicodeClass{\LepchaClass}{7168}{7247}}
+\newcommand{\@loadLetterlikeSymbols}{\@defineUnicodeClass{\LetterlikeSymbolsClass}{8448}{8527}}
+\newcommand{\@loadLimbu}{\@defineUnicodeClass{\LimbuClass}{6400}{6479}}
+\newcommand{\@loadLinearBIdeograms}{\@defineUnicodeClass{\LinearBIdeogramsClass}{65664}{65791}}
+\newcommand{\@loadLinearBSyllabary}{\@defineUnicodeClass{\LinearBSyllabaryClass}{65536}{65663}}
+\newcommand{\@loadLycian}{\@defineUnicodeClass{\LycianClass}{66176}{66207}}
+\newcommand{\@loadLydian}{\@defineUnicodeClass{\LydianClass}{67872}{67903}}
+\newcommand{\@loadMahjongTiles}{\@defineUnicodeClass{\MahjongTilesClass}{126976}{127023}}
+\newcommand{\@loadMalayalam}{\@defineUnicodeClass{\MalayalamClass}{3328}{3455}}
+\newcommand{\@loadMathematicalAlphanumericSymbols}{\@defineUnicodeClass{\MathematicalAlphanumericSymbolsClass}{119808}{120831}}
+\newcommand{\@loadMathematicalOperators}{\@defineUnicodeClass{\MathematicalOperatorsClass}{8704}{8959}}
+\newcommand{\@loadMiscellaneousMathematicalSymbolsA}{\@defineUnicodeClass{\MiscellaneousMathematicalSymbolsAClass}{10176}{10223}}
+\newcommand{\@loadMiscellaneousMathematicalSymbolsB}{\@defineUnicodeClass{\MiscellaneousMathematicalSymbolsBClass}{10624}{10751}}
+\newcommand{\@loadMiscellaneousSymbols}{\@defineUnicodeClass{\MiscellaneousSymbolsClass}{9728}{9983}}
+\newcommand{\@loadMiscellaneousSymbolsAndArrows}{\@defineUnicodeClass{\MiscellaneousSymbolsAndArrowsClass}{11008}{11263}}
+\newcommand{\@loadMiscellaneousTechnical}{\@defineUnicodeClass{\MiscellaneousTechnicalClass}{8960}{9215}}
+\newcommand{\@loadModifierToneLetters}{\@defineUnicodeClass{\ModifierToneLettersClass}{42752}{42783}}
+\newcommand{\@loadMongolian}{\@defineUnicodeClass{\MongolianClass}{6144}{6319}}
+\newcommand{\@loadMusicalSymbols}{\@defineUnicodeClass{\MusicalSymbolsClass}{119040}{119295}}
+\newcommand{\@loadMyanmar}{\@defineUnicodeClass{\MyanmarClass}{4096}{4255}}
+\newcommand{\@loadNewTaiLue}{\@defineUnicodeClass{\NewTaiLueClass}{6528}{6623}}
+\newcommand{\@loadNKo}{\@defineUnicodeClass{\NKoClass}{1984}{2047}}
+\newcommand{\@loadNumberForms}{\@defineUnicodeClass{\NumberFormsClass}{8528}{8591}}
+\newcommand{\@loadOgham}{\@defineUnicodeClass{\OghamClass}{5760}{5791}}
+\newcommand{\@loadOldChiki}{\@defineUnicodeClass{\OldChikiClass}{7248}{7295}}
+\newcommand{\@loadOldItalic}{\@defineUnicodeClass{\OldItalicClass}{66304}{66351}}
+\newcommand{\@loadOldPersian}{\@defineUnicodeClass{\OldPersianClass}{66464}{66527}}
+\newcommand{\@loadOpticalCharacterRecognition}{\@defineUnicodeClass{\OpticalCharacterRecognitionClass}{9280}{9311}}
+\newcommand{\@loadOriya}{\@defineUnicodeClass{\OriyaClass}{2816}{2943}}
+\newcommand{\@loadOsmanya}{\@defineUnicodeClass{\OsmanyaClass}{66688}{66735}}
+\newcommand{\@loadPhagsPa}{\@defineUnicodeClass{\PhagsPaClass}{43072}{43135}}
+\newcommand{\@loadPhaistosDisc}{\@defineUnicodeClass{\PhaistosDiscClass}{66000}{66047}}
+\newcommand{\@loadPhoenician}{\@defineUnicodeClass{\PhoenicianClass}{67840}{67871}}
+\newcommand{\@loadPhoneticExtensions}{\@defineUnicodeClass{\PhoneticExtensionsClass}{7424}{7551}}
+\newcommand{\@loadPhoneticExtensionsSupplement}{\@defineUnicodeClass{\PhoneticExtensionsSupplementClass}{7552}{7615}}
+\newcommand{\@loadPrivateUseArea}{\@defineUnicodeClass{\PrivateUseAreaClass}{57344}{63743}}
+\newcommand{\@loadRejang}{\@defineUnicodeClass{\RejangClass}{43312}{43359}}
+\newcommand{\@loadRunic}{\@defineUnicodeClass{\RunicClass}{5792}{5887}}
+\newcommand{\@loadSaurashtra}{\@defineUnicodeClass{\SaurashtraClass}{43136}{43231}}
+\newcommand{\@loadShavian}{\@defineUnicodeClass{\ShavianClass}{66640}{66687}}
+\newcommand{\@loadSinhala}{\@defineUnicodeClass{\SinhalaClass}{3456}{3583}}
+\newcommand{\@loadSmallFormVariants}{\@defineUnicodeClass{\SmallFormVariantsClass}{65104}{65135}}
+\newcommand{\@loadSpacingModifierLetters}{\@defineUnicodeClass{\SpacingModifierLettersClass}{688}{767}}
+\newcommand{\@loadSpecials}{\@defineUnicodeClass{\SpecialsClass}{65520}{65535}}
+\newcommand{\@loadSuperscriptsAndSubscripts}{\@defineUnicodeClass{\SuperscriptsAndSubscriptsClass}{8304}{8351}}
+\newcommand{\@loadSupplementalArrowsA}{\@defineUnicodeClass{\SupplementalArrowsAClass}{10224}{10239}}
+\newcommand{\@loadSupplementalArrowsB}{\@defineUnicodeClass{\SupplementalArrowsBClass}{10496}{10623}}
+\newcommand{\@loadSupplementalMathematicalOperators}{\@defineUnicodeClass{\SupplementalMathematicalOperatorsClass}{10752}{11007}}
+\newcommand{\@loadSupplementalPunctuation}{\@defineUnicodeClass{\SupplementalPunctuationClass}{11776}{11903}}
+\newcommand{\@loadSupplementaryPrivateUseAreaA}{\@defineUnicodeClass{\SupplementaryPrivateUseAreaAClass}{983040}{1048575}}
+\newcommand{\@loadSupplementaryPrivateUseAreaB}{\@defineUnicodeClass{\SupplementaryPrivateUseAreaBClass}{1048576}{1114111}}
+\newcommand{\@loadSylotiNagri}{\@defineUnicodeClass{\SylotiNagriClass}{43008}{43055}}
+\newcommand{\@loadSyriac}{\@defineUnicodeClass{\SyriacClass}{1792}{1871}}
+\newcommand{\@loadTagalog}{\@defineUnicodeClass{\TagalogClass}{5888}{5919}}
+\newcommand{\@loadTagbanwa}{\@defineUnicodeClass{\TagbanwaClass}{5984}{6015}}
+\newcommand{\@loadTags}{\@defineUnicodeClass{\TagsClass}{917504}{917631}}
+\newcommand{\@loadTaiLe}{\@defineUnicodeClass{\TaiLeClass}{6480}{6527}}
+\newcommand{\@loadTaiXuanJingSymbols}{\@defineUnicodeClass{\TaiXuanJingSymbolsClass}{119552}{119647}}
+\newcommand{\@loadTamil}{\@defineUnicodeClass{\TamilClass}{2944}{3071}}
+\newcommand{\@loadTelugu}{\@defineUnicodeClass{\TeluguClass}{3072}{3199}}
+\newcommand{\@loadThaana}{\@defineUnicodeClass{\ThaanaClass}{1920}{1983}}
+\newcommand{\@loadThai}{\@defineUnicodeClass{\ThaiClass}{3584}{3711}}
+\newcommand{\@loadTibetan}{\@defineUnicodeClass{\TibetanClass}{3840}{4095}}
+\newcommand{\@loadTifinagh}{\@defineUnicodeClass{\TifinaghClass}{11568}{11647}}
+\newcommand{\@loadUgaritic}{\@defineUnicodeClass{\UgariticClass}{66432}{66463}}
+\newcommand{\@loadUnifiedCanadianAboriginalSyllabics}{\@defineUnicodeClass{\UnifiedCanadianAboriginalSyllabicsClass}{5120}{5759}}
+\newcommand{\@loadVai}{\@defineUnicodeClass{\VaiClass}{42240}{42559}}
+\newcommand{\@loadVariationSelectors}{\@defineUnicodeClass{\VariationSelectorsClass}{65024}{65039}}
+\newcommand{\@loadVariationSelectorsSupplement}{\@defineUnicodeClass{\VariationSelectorsSupplementClass}{917760}{917999}}
+\newcommand{\@loadVerticalForms}{\@defineUnicodeClass{\VerticalFormsClass}{65040}{65055}}
+\newcommand{\@loadYiRadicals}{\@defineUnicodeClass{\YiRadicalsClass}{42128}{42191}}
+\newcommand{\@loadYiSyllables}{\@defineUnicodeClass{\YiSyllablesClass}{40960}{42127}}
+\newcommand{\@loadYijingHexagramSymbols}{\@defineUnicodeClass{\YijingHexagramSymbolsClass}{19904}{19967}}
+
+% Unicode 6.0 block definitions
+\newcommand{\@loadMandaic}{\@defineUnicodeClass{\MandaicClass}{2112}{2143}}
+\newcommand{\@loadBatak}{\@defineUnicodeClass{\BatakClass}{7104}{7167}}
+\newcommand{\@loadEthiopicExtendedA}{\@defineUnicodeClass{\EthiopicExtendedAClass}{43776}{43823}}
+\newcommand{\@loadBrahmi}{\@defineUnicodeClass{\BrahmiClass}{69632}{69759}}
+\newcommand{\@loadBamumSupplement}{\@defineUnicodeClass{\BamumSupplementClass}{92160}{92735}}
+\newcommand{\@loadKanaSupplement}{\@defineUnicodeClass{\KanaSupplementClass}{110592}{110847}}
+\newcommand{\@loadPlayingCards}{\@defineUnicodeClass{\PlayingCardsClass}{127136}{127231}}
+\newcommand{\@loadMiscellaneousSymbolsAndPictographs}{\@defineUnicodeClass{\MiscellaneousSymbolsAndPictographsClass}{127744}{128511}}
+\newcommand{\@loadEmoticons}{\@defineUnicodeClass{\EmoticonsClass}{128512}{128591}}
+\newcommand{\@loadTransportAndMapSymbols}{\@defineUnicodeClass{\TransportAndMapSymbolsClass}{128640}{128767}}
+\newcommand{\@loadAlchemicalSymbols}{\@defineUnicodeClass{\AlchemicalSymbolsClass}{128768}{128895}}
+\newcommand{\@loadCJKUnifiedIdeographsExtensionD}{\@defineUnicodeClass{\CJKUnifiedIdeographsExtensionDClass}{177984}{178207}}
+
+
+% ----------------------------------------------------------------------------
+% And now, finally, we can start loading all the requested blocks
+% ----------------------------------------------------------------------------
+
+\message{Package ucharclasses Message: Assigning character classes per unicode block (this may take a while)}
+
+% first, we record the start our of charclass range
+\newXeTeXintercharclass\@classstart
+
+% then we check if we should load everything, or just the indicated blocks
+\ifthenelse{\equal{\loadAllClasses}{1}}{%
+ % if loadAllClasses is "1", we load every class that we know
+ \@loadAegeanNumbers
+ \@loadAlphabeticPresentationForms
+ \@loadAncientGreekMusicalNotation
+ \@loadAncientGreekNumbers
+ \@loadAncientSymbols
+ \@loadArabic
+ \@loadArabicPresentationFormsA
+ \@loadArabicPresentationFormsB
+ \@loadArabicSupplement
+ \@loadArmenian
+ \@loadArrows
+ \@loadBalinese
+ \@loadBasicLatin
+ \@loadBengali
+ \@loadBlockElements
+ \@loadBopomofo
+ \@loadBopomofoExtended
+ \@loadBoxDrawing
+ \@loadBraillePatterns
+ \@loadBuginese
+ \@loadBuhid
+ \@loadByzantineMusicalSymbols
+ \@loadCarian
+ \@loadCham
+ \@loadCherokee
+ \@loadCJKCompatibility
+ \@loadCJKCompatibilityForms
+ \@loadCJKCompatibilityIdeographs
+ \@loadCJKCompatibilityIdeographsSupplement
+ \@loadCJKRadicalsSupplement
+ \@loadCJKStrokes
+ \@loadCJKSymbolsAndPunctuation
+ \@loadCJKUnifiedIdeographs
+ \@loadCJKUnifiedIdeographsExtensionA
+ \@loadCJKUnifiedIdeographsExtensionB
+ \@loadCombiningDiacriticalMarks
+ \@loadCombiningDiacriticalMarksforSymbols
+ \@loadCombiningDiacriticalMarksSupplement
+ \@loadCombiningHalfMarks
+ \@loadControlPictures
+ \@loadCoptic
+ \@loadCountingRodNumerals
+ \@loadCuneiform
+ \@loadCuneiformNumbersAndPunctuation
+ \@loadCurrencySymbols
+ \@loadCypriotSyllabary
+ \@loadCyrillic
+ \@loadCyrillicExtendedA
+ \@loadCyrillicExtendedB
+ \@loadCyrillicSupplement
+ \@loadDeseret
+ \@loadDevanagari
+ \@loadDingbats
+ \@loadDominoTiles
+ \@loadEnclosedAlphanumerics
+ \@loadEnclosedCJKLettersAndMonths
+ \@loadEthiopic
+ \@loadEthiopicExtended
+ \@loadEthiopicSupplement
+ \@loadGeneralPunctuation
+ \@loadGeometricShapes
+ \@loadGeorgian
+ \@loadGeorgianSupplement
+ \@loadGlagolitic
+ \@loadGothic
+ \@loadGreekAndCoptic
+ \@loadGreekExtended
+ \@loadGujarati
+ \@loadGurmukhi
+ \@loadHalfwidthAndFullwidthForms
+ \@loadHangulCompatibilityJamo
+ \@loadHangulJamo
+ \@loadHangulSyllables
+ \@loadHanunoo
+ \@loadHebrew
+ \@loadHiragana
+ \@loadIdeographicDescriptionCharacters
+ \@loadIPAExtensions
+ \@loadKanbun
+ \@loadKangxiRadicals
+ \@loadKannada
+ \@loadKatakana
+ \@loadKatakanaPhoneticExtensions
+ \@loadKayahLi
+ \@loadKharoshthi
+ \@loadKhmer
+ \@loadKhmerSymbols
+ \@loadLao
+ \@loadLatinExtendedAdditional
+ \@loadLatinExtendedA
+ \@loadLatinExtendedB
+ \@loadLatinExtendedC
+ \@loadLatinExtendedD
+ \@loadLatinSupplement
+ \@loadLepcha
+ \@loadLetterlikeSymbols
+ \@loadLimbu
+ \@loadLinearBIdeograms
+ \@loadLinearBSyllabary
+ \@loadLycian
+ \@loadLydian
+ \@loadMahjongTiles
+ \@loadMalayalam
+ \@loadMathematicalAlphanumericSymbols
+ \@loadMathematicalOperators
+ \@loadMiscellaneousMathematicalSymbolsA
+ \@loadMiscellaneousMathematicalSymbolsB
+ \@loadMiscellaneousSymbols
+ \@loadMiscellaneousSymbolsAndArrows
+ \@loadMiscellaneousTechnical
+ \@loadModifierToneLetters
+ \@loadMongolian
+ \@loadMusicalSymbols
+ \@loadMyanmar
+ \@loadNewTaiLue
+ \@loadNKo
+ \@loadNumberForms
+ \@loadOgham
+ \@loadOldChiki
+ \@loadOldItalic
+ \@loadOldPersian
+ \@loadOpticalCharacterRecognition
+ \@loadOriya
+ \@loadOsmanya
+ \@loadPhagsPa
+ \@loadPhaistosDisc
+ \@loadPhoenician
+ \@loadPhoneticExtensions
+ \@loadPhoneticExtensionsSupplement
+ \@loadPrivateUseArea
+ \@loadRejang
+ \@loadRunic
+ \@loadSaurashtra
+ \@loadShavian
+ \@loadSinhala
+ \@loadSmallFormVariants
+ \@loadSpacingModifierLetters
+ \@loadSpecials
+ \@loadSuperscriptsAndSubscripts
+ \@loadSupplementalArrowsA
+ \@loadSupplementalArrowsB
+ \@loadSupplementalMathematicalOperators
+ \@loadSupplementalPunctuation
+ \@loadSupplementaryPrivateUseAreaA
+ \@loadSupplementaryPrivateUseAreaB
+ \@loadSylotiNagri
+ \@loadSyriac
+ \@loadTagalog
+ \@loadTagbanwa
+ \@loadTags
+ \@loadTaiLe
+ \@loadTaiXuanJingSymbols
+ \@loadTamil
+ \@loadTelugu
+ \@loadThaana
+ \@loadThai
+ \@loadTibetan
+ \@loadTifinagh
+ \@loadUgaritic
+ \@loadUnifiedCanadianAboriginalSyllabics
+ \@loadVai
+ \@loadVariationSelectors
+ \@loadVariationSelectorsSupplement
+ \@loadVerticalForms
+ \@loadYiRadicals
+ \@loadYiSyllables
+ \@loadYijingHexagramSymbols
+ \@loadMandaic
+ \@loadBatak
+ \@loadEthiopicExtendedA
+ \@loadBrahmi
+ \@loadBamumSupplement
+ \@loadKanaSupplement
+ \@loadPlayingCards
+ \@loadMiscellaneousSymbolsAndPictographs
+ \@loadEmoticons
+ \@loadTransportAndMapSymbols
+ \@loadAlchemicalSymbols
+ \@loadCJKUnifiedIdeographsExtensionD
+}
+% if loadAllClasses is not "1" (it will be "0", but this is irrelevant to the conditional)
+% we only load those blocks for which a load option was declared
+{
+ \ifthenelse{\equal{\enableAegeanNumbers}{1}}{\@loadAegeanNumbers}{}
+ \ifthenelse{\equal{\enableAlphabeticPresentationForms}{1}}{\@loadAlphabeticPresentationForms}{}
+ \ifthenelse{\equal{\enableAncientGreekMusicalNotation}{1}}{\@loadAncientGreekMusicalNotation}{}
+ \ifthenelse{\equal{\enableAncientGreekNumbers}{1}}{\@loadAncientGreekNumbers}{}
+ \ifthenelse{\equal{\enableAncientSymbols}{1}}{\@loadAncientSymbols}{}
+ \ifthenelse{\equal{\enableArabic}{1}}{\@loadArabic}{}
+ \ifthenelse{\equal{\enableArabicPresentationFormsA}{1}}{\@loadArabicPresentationFormsA}{}
+ \ifthenelse{\equal{\enableArabicPresentationFormsB}{1}}{\@loadArabicPresentationFormsB}{}
+ \ifthenelse{\equal{\enableArabicSupplement}{1}}{\@loadArabicSupplement}{}
+ \ifthenelse{\equal{\enableArmenian}{1}}{\@loadArmenian}{}
+ \ifthenelse{\equal{\enableArrows}{1}}{\@loadArrows}{}
+ \ifthenelse{\equal{\enableBalinese}{1}}{\@loadBalinese}{}
+ \ifthenelse{\equal{\enableBasicLatin}{1}}{\@loadBasicLatin}{}
+ \ifthenelse{\equal{\enableBengali}{1}}{\@loadBengali}{}
+ \ifthenelse{\equal{\enableBlockElements}{1}}{\@loadBlockElements}{}
+ \ifthenelse{\equal{\enableBopomofo}{1}}{\@loadBopomofo}{}
+ \ifthenelse{\equal{\enableBopomofoExtended}{1}}{\@loadBopomofoExtended}{}
+ \ifthenelse{\equal{\enableBoxDrawing}{1}}{\@loadBoxDrawing}{}
+ \ifthenelse{\equal{\enableBraillePatterns}{1}}{\@loadBraillePatterns}{}
+ \ifthenelse{\equal{\enableBuginese}{1}}{\@loadBuginese}{}
+ \ifthenelse{\equal{\enableBuhid}{1}}{\@loadBuhid}{}
+ \ifthenelse{\equal{\enableByzantineMusicalSymbols}{1}}{\@loadByzantineMusicalSymbols}{}
+ \ifthenelse{\equal{\enableCarian}{1}}{\@loadCarian}{}
+ \ifthenelse{\equal{\enableCham}{1}}{\@loadCham}{}
+ \ifthenelse{\equal{\enableCherokee}{1}}{\@loadCherokee}{}
+ \ifthenelse{\equal{\enableCJKCompatibility}{1}}{\@loadCJKCompatibility}{}
+ \ifthenelse{\equal{\enableCJKCompatibilityForms}{1}}{\@loadCJKCompatibilityForms}{}
+ \ifthenelse{\equal{\enableCJKCompatibilityIdeographs}{1}}{\@loadCJKCompatibilityIdeographs}{}
+ \ifthenelse{\equal{\enableCJKCompatibilityIdeographsSupplement}{1}}{\@loadCJKCompatibilityIdeographsSupplement}{}
+ \ifthenelse{\equal{\enableCJKRadicalsSupplement}{1}}{\@loadCJKRadicalsSupplement}{}
+ \ifthenelse{\equal{\enableCJKStrokes}{1}}{\@loadCJKStrokes}{}
+ \ifthenelse{\equal{\enableCJKSymbolsAndPunctuation}{1}}{\@loadCJKSymbolsAndPunctuation}{}
+ \ifthenelse{\equal{\enableCJKUnifiedIdeographs}{1}}{\@loadCJKUnifiedIdeographs}{}
+ \ifthenelse{\equal{\enableCJKUnifiedIdeographsExtensionA}{1}}{\@loadCJKUnifiedIdeographsExtensionA}{}
+ \ifthenelse{\equal{\enableCJKUnifiedIdeographsExtensionB}{1}}{\@loadCJKUnifiedIdeographsExtensionB}{}
+ \ifthenelse{\equal{\enableCombiningDiacriticalMarks}{1}}{\@loadCombiningDiacriticalMarks}{}
+ \ifthenelse{\equal{\enableCombiningDiacriticalMarksforSymbols}{1}}{\@loadCombiningDiacriticalMarksforSymbols}{}
+ \ifthenelse{\equal{\enableCombiningDiacriticalMarksSupplement}{1}}{\@loadCombiningDiacriticalMarksSupplement}{}
+ \ifthenelse{\equal{\enableCombiningHalfMarks}{1}}{\@loadCombiningHalfMarks}{}
+ \ifthenelse{\equal{\enableControlPictures}{1}}{\@loadControlPictures}{}
+ \ifthenelse{\equal{\enableCoptic}{1}}{\@loadCoptic}{}
+ \ifthenelse{\equal{\enableCountingRodNumerals}{1}}{\@loadCountingRodNumerals}{}
+ \ifthenelse{\equal{\enableCuneiform}{1}}{\@loadCuneiform}{}
+ \ifthenelse{\equal{\enableCuneiformNumbersAndPunctuation}{1}}{\@loadCuneiformNumbersAndPunctuation}{}
+ \ifthenelse{\equal{\enableCurrencySymbols}{1}}{\@loadCurrencySymbols}{}
+ \ifthenelse{\equal{\enableCypriotSyllabary}{1}}{\@loadCypriotSyllabary}{}
+ \ifthenelse{\equal{\enableCyrillic}{1}}{\@loadCyrillic}{}
+ \ifthenelse{\equal{\enableCyrillicExtendedA}{1}}{\@loadCyrillicExtendedA}{}
+ \ifthenelse{\equal{\enableCyrillicExtendedB}{1}}{\@loadCyrillicExtendedB}{}
+ \ifthenelse{\equal{\enableCyrillicSupplement}{1}}{\@loadCyrillicSupplement}{}
+ \ifthenelse{\equal{\enableDeseret}{1}}{\@loadDeseret}{}
+ \ifthenelse{\equal{\enableDevanagari}{1}}{\@loadDevanagari}{}
+ \ifthenelse{\equal{\enableDingbats}{1}}{\@loadDingbats}{}
+ \ifthenelse{\equal{\enableDominoTiles}{1}}{\@loadDominoTiles}{}
+ \ifthenelse{\equal{\enableEnclosedAlphanumerics}{1}}{\@loadEnclosedAlphanumerics}{}
+ \ifthenelse{\equal{\enableEnclosedCJKLettersAndMonths}{1}}{\@loadEnclosedCJKLettersAndMonths}{}
+ \ifthenelse{\equal{\enableEthiopic}{1}}{\@loadEthiopic}{}
+ \ifthenelse{\equal{\enableEthiopicExtended}{1}}{\@loadEthiopicExtended}{}
+ \ifthenelse{\equal{\enableEthiopicSupplement}{1}}{\@loadEthiopicSupplement}{}
+ \ifthenelse{\equal{\enableGeneralPunctuation}{1}}{\@loadGeneralPunctuation}{}
+ \ifthenelse{\equal{\enableGeometricShapes}{1}}{\@loadGeometricShapes}{}
+ \ifthenelse{\equal{\enableGeorgian}{1}}{\@loadGeorgian}{}
+ \ifthenelse{\equal{\enableGeorgianSupplement}{1}}{\@loadGeorgianSupplement}{}
+ \ifthenelse{\equal{\enableGlagolitic}{1}}{\@loadGlagolitic}{}
+ \ifthenelse{\equal{\enableGothic}{1}}{\@loadGothic}{}
+ \ifthenelse{\equal{\enableGreekAndCoptic}{1}}{\@loadGreekAndCoptic}{}
+ \ifthenelse{\equal{\enableGreekExtended}{1}}{\@loadGreekExtended}{}
+ \ifthenelse{\equal{\enableGujarati}{1}}{\@loadGujarati}{}
+ \ifthenelse{\equal{\enableGurmukhi}{1}}{\@loadGurmukhi}{}
+ \ifthenelse{\equal{\enableHalfwidthAndFullwidthForms}{1}}{\@loadHalfwidthAndFullwidthForms}{}
+ \ifthenelse{\equal{\enableHangulCompatibilityJamo}{1}}{\@loadHangulCompatibilityJamo}{}
+ \ifthenelse{\equal{\enableHangulJamo}{1}}{\@loadHangulJamo}{}
+ \ifthenelse{\equal{\enableHangulSyllables}{1}}{\@loadHangulSyllables}{}
+ \ifthenelse{\equal{\enableHanunoo}{1}}{\@loadHanunoo}{}
+ \ifthenelse{\equal{\enableHebrew}{1}}{\@loadHebrew}{}
+ \ifthenelse{\equal{\enableHiragana}{1}}{\@loadHiragana}{}
+ \ifthenelse{\equal{\enableIdeographicDescriptionCharacters}{1}}{\@loadIdeographicDescriptionCharacters}{}
+ \ifthenelse{\equal{\enableIPAExtensions}{1}}{\@loadIPAExtensions}{}
+ \ifthenelse{\equal{\enableKanbun}{1}}{\@loadKanbun}{}
+ \ifthenelse{\equal{\enableKangxiRadicals}{1}}{\@loadKangxiRadicals}{}
+ \ifthenelse{\equal{\enableKannada}{1}}{\@loadKannada}{}
+ \ifthenelse{\equal{\enableKatakana}{1}}{\@loadKatakana}{}
+ \ifthenelse{\equal{\enableKatakanaPhoneticExtensions}{1}}{\@loadKatakanaPhoneticExtensions}{}
+ \ifthenelse{\equal{\enableKayahLi}{1}}{\@loadKayahLi}{}
+ \ifthenelse{\equal{\enableKharoshthi}{1}}{\@loadKharoshthi}{}
+ \ifthenelse{\equal{\enableKhmer}{1}}{\@loadKhmer}{}
+ \ifthenelse{\equal{\enableKhmerSymbols}{1}}{\@loadKhmerSymbols}{}
+ \ifthenelse{\equal{\enableLao}{1}}{\@loadLao}{}
+ \ifthenelse{\equal{\enableLatinExtendedAdditional}{1}}{\@loadLatinExtendedAdditional}{}
+ \ifthenelse{\equal{\enableLatinExtendedA}{1}}{\@loadLatinExtendedA}{}
+ \ifthenelse{\equal{\enableLatinExtendedB}{1}}{\@loadLatinExtendedB}{}
+ \ifthenelse{\equal{\enableLatinExtendedC}{1}}{\@loadLatinExtendedC}{}
+ \ifthenelse{\equal{\enableLatinExtendedD}{1}}{\@loadLatinExtendedD}{}
+ \ifthenelse{\equal{\enableLatinSupplement}{1}}{\@loadLatinSupplement}{}
+ \ifthenelse{\equal{\enableLepcha}{1}}{\@loadLepcha}{}
+ \ifthenelse{\equal{\enableLetterlikeSymbols}{1}}{\@loadLetterlikeSymbols}{}
+ \ifthenelse{\equal{\enableLimbu}{1}}{\@loadLimbu}{}
+ \ifthenelse{\equal{\enableLinearBIdeograms}{1}}{\@loadLinearBIdeograms}{}
+ \ifthenelse{\equal{\enableLinearBSyllabary}{1}}{\@loadLinearBSyllabary}{}
+ \ifthenelse{\equal{\enableLycian}{1}}{\@loadLycian}{}
+ \ifthenelse{\equal{\enableLydian}{1}}{\@loadLydian}{}
+ \ifthenelse{\equal{\enableMahjongTiles}{1}}{\@loadMahjongTiles}{}
+ \ifthenelse{\equal{\enableMalayalam}{1}}{\@loadMalayalam}{}
+ \ifthenelse{\equal{\enableMathematicalAlphanumericSymbols}{1}}{\@loadMathematicalAlphanumericSymbols}{}
+ \ifthenelse{\equal{\enableMathematicalOperators}{1}}{\@loadMathematicalOperators}{}
+ \ifthenelse{\equal{\enableMiscellaneousMathematicalSymbolsA}{1}}{\@loadMiscellaneousMathematicalSymbolsA}{}
+ \ifthenelse{\equal{\enableMiscellaneousMathematicalSymbolsB}{1}}{\@loadMiscellaneousMathematicalSymbolsB}{}
+ \ifthenelse{\equal{\enableMiscellaneousSymbols}{1}}{\@loadMiscellaneousSymbols}{}
+ \ifthenelse{\equal{\enableMiscellaneousSymbolsAndArrows}{1}}{\@loadMiscellaneousSymbolsAndArrows}{}
+ \ifthenelse{\equal{\enableMiscellaneousTechnical}{1}}{\@loadMiscellaneousTechnical}{}
+ \ifthenelse{\equal{\enableModifierToneLetters}{1}}{\@loadModifierToneLetters}{}
+ \ifthenelse{\equal{\enableMongolian}{1}}{\@loadMongolian}{}
+ \ifthenelse{\equal{\enableMusicalSymbols}{1}}{\@loadMusicalSymbols}{}
+ \ifthenelse{\equal{\enableMyanmar}{1}}{\@loadMyanmar}{}
+ \ifthenelse{\equal{\enableNewTaiLue}{1}}{\@loadNewTaiLue}{}
+ \ifthenelse{\equal{\enableNKo}{1}}{\@loadNKo}{}
+ \ifthenelse{\equal{\enableNumberForms}{1}}{\@loadNumberForms}{}
+ \ifthenelse{\equal{\enableOgham}{1}}{\@loadOgham}{}
+ \ifthenelse{\equal{\enableOldChiki}{1}}{\@loadOldChiki}{}
+ \ifthenelse{\equal{\enableOldItalic}{1}}{\@loadOldItalic}{}
+ \ifthenelse{\equal{\enableOldPersian}{1}}{\@loadOldPersian}{}
+ \ifthenelse{\equal{\enableOpticalCharacterRecognition}{1}}{\@loadOpticalCharacterRecognition}{}
+ \ifthenelse{\equal{\enableOriya}{1}}{\@loadOriya}{}
+ \ifthenelse{\equal{\enableOsmanya}{1}}{\@loadOsmanya}{}
+ \ifthenelse{\equal{\enablePhagsPa}{1}}{\@loadPhagsPa}{}
+ \ifthenelse{\equal{\enablePhaistosDisc}{1}}{\@loadPhaistosDisc}{}
+ \ifthenelse{\equal{\enablePhoenician}{1}}{\@loadPhoenician}{}
+ \ifthenelse{\equal{\enablePhoneticExtensions}{1}}{\@loadPhoneticExtensions}{}
+ \ifthenelse{\equal{\enablePhoneticExtensionsSupplement}{1}}{\@loadPhoneticExtensionsSupplement}{}
+ \ifthenelse{\equal{\enablePrivateUseArea}{1}}{\@loadPrivateUseArea}{}
+ \ifthenelse{\equal{\enableRejang}{1}}{\@loadRejang}{}
+ \ifthenelse{\equal{\enableRunic}{1}}{\@loadRunic}{}
+ \ifthenelse{\equal{\enableSaurashtra}{1}}{\@loadSaurashtra}{}
+ \ifthenelse{\equal{\enableShavian}{1}}{\@loadShavian}{}
+ \ifthenelse{\equal{\enableSinhala}{1}}{\@loadSinhala}{}
+ \ifthenelse{\equal{\enableSmallFormVariants}{1}}{\@loadSmallFormVariants}{}
+ \ifthenelse{\equal{\enableSpacingModifierLetters}{1}}{\@loadSpacingModifierLetters}{}
+ \ifthenelse{\equal{\enableSpecials}{1}}{\@loadSpecials}{}
+ \ifthenelse{\equal{\enableSuperscriptsAndSubscripts}{1}}{\@loadSuperscriptsAndSubscripts}{}
+ \ifthenelse{\equal{\enableSupplementalArrowsA}{1}}{\@loadSupplementalArrowsA}{}
+ \ifthenelse{\equal{\enableSupplementalArrowsB}{1}}{\@loadSupplementalArrowsB}{}
+ \ifthenelse{\equal{\enableSupplementalMathematicalOperators}{1}}{\@loadSupplementalMathematicalOperators}{}
+ \ifthenelse{\equal{\enableSupplementalPunctuation}{1}}{\@loadSupplementalPunctuation}{}
+ \ifthenelse{\equal{\enableSupplementaryPrivateUseAreaA}{1}}{\@loadSupplementaryPrivateUseAreaA}{}
+ \ifthenelse{\equal{\enableSupplementaryPrivateUseAreaB}{1}}{\@loadSupplementaryPrivateUseAreaB}{}
+ \ifthenelse{\equal{\enableSylotiNagri}{1}}{\@loadSylotiNagri}{}
+ \ifthenelse{\equal{\enableSyriac}{1}}{\@loadSyriac}{}
+ \ifthenelse{\equal{\enableTagalog}{1}}{\@loadTagalog}{}
+ \ifthenelse{\equal{\enableTagbanwa}{1}}{\@loadTagbanwa}{}
+ \ifthenelse{\equal{\enableTags}{1}}{\@loadTags}{}
+ \ifthenelse{\equal{\enableTaiLe}{1}}{\@loadTaiLe}{}
+ \ifthenelse{\equal{\enableTaiXuanJingSymbols}{1}}{\@loadTaiXuanJingSymbols}{}
+ \ifthenelse{\equal{\enableTamil}{1}}{\@loadTamil}{}
+ \ifthenelse{\equal{\enableTelugu}{1}}{\@loadTelugu}{}
+ \ifthenelse{\equal{\enableThaana}{1}}{\@loadThaana}{}
+ \ifthenelse{\equal{\enableThai}{1}}{\@loadThai}{}
+ \ifthenelse{\equal{\enableTibetan}{1}}{\@loadTibetan}{}
+ \ifthenelse{\equal{\enableTifinagh}{1}}{\@loadTifinagh}{}
+ \ifthenelse{\equal{\enableUgaritic}{1}}{\@loadUgaritic}{}
+ \ifthenelse{\equal{\enableUnifiedCanadianAboriginalSyllabics}{1}}{\@loadUnifiedCanadianAboriginalSyllabics}{}
+ \ifthenelse{\equal{\enableVai}{1}}{\@loadVai}{}
+ \ifthenelse{\equal{\enableVariationSelectors}{1}}{\@loadVariationSelectors}{}
+ \ifthenelse{\equal{\enableVariationSelectorsSupplement}{1}}{\@loadVariationSelectorsSupplement}{}
+ \ifthenelse{\equal{\enableVerticalForms}{1}}{\@loadVerticalForms}{}
+ \ifthenelse{\equal{\enableYiRadicals}{1}}{\@loadYiRadicals}{}
+ \ifthenelse{\equal{\enableYiSyllables}{1}}{\@loadYiSyllables}{}
+ \ifthenelse{\equal{\enableYijingHexagramSymbols}{1}}{\@loadYijingHexagramSymbols}{}
+ \ifthenelse{\equal{\enableMandaic}{1}}{\@loadMandaic}{}
+ \ifthenelse{\equal{\enableBatak}{1}}{\@loadBatak}{}
+ \ifthenelse{\equal{\enableEthiopicExtendedA}{1}}{\@loadEthiopicExtendedA}{}
+ \ifthenelse{\equal{\enableBrahmi}{1}}{\@loadBrahmi}{}
+ \ifthenelse{\equal{\enableBamumSupplement}{1}}{\@loadBamumSupplement}{}
+ \ifthenelse{\equal{\enableKanaSupplement}{1}}{\@loadKanaSupplement}{}
+ \ifthenelse{\equal{\enablePlayingCards}{1}}{\@loadPlayingCards}{}
+ \ifthenelse{\equal{\enableMiscellaneousSymbolsAndPictographs}{1}}{\@loadMiscellaneousSymbolsAndPictographs}{}
+ \ifthenelse{\equal{\enableEmoticons}{1}}{\@loadEmoticons}{}
+ \ifthenelse{\equal{\enableTransportAndMapSymbols}{1}}{\@loadTransportAndMapSymbols}{}
+ \ifthenelse{\equal{\enableAlchemicalSymbols}{1}}{\@loadAlchemicalSymbols}{}
+ \ifthenelse{\equal{\enableCJKUnifiedIdeographsExtensionD}{1}}{\@loadCJKUnifiedIdeographsExtensionD}{}
+}
+
+% finally, we record the end of our charclass range
+\newXeTeXintercharclass\@classend
+
+% ----------------------------------------------------------------------------
+%
+% The transition master commands
+%
+% ----------------------------------------------------------------------------
+
+\newcounter{iclass}
+
+\newcommand{\@transition}[3]{
+ %\PackageWarning{ucharclasses}{#1 #2 #3}
+ \XeTeXinterchartoks #1 #2=#3
+}
+
+% ----------------------------------------------------------------------------
+% Use: \setTransitionsFor{block name}{when entering this block}{when leaving this block}
+% ----------------------------------------------------------------------------
+
+\newcommand{\setTransitionsFor}[3]{
+ \forloop{iclass}{\the\@classstart}{\value{iclass} < \@nameuse{#1Class}}{
+ \@transition{\the\value{iclass}}{\@nameuse{#1Class}}{{#2}}
+ \@transition{\@nameuse{#1Class}}{\the\value{iclass}}{{#3}}}
+ \addtocounter{iclass}{2}
+ \forloop{iclass}{\value{iclass}}{\value{iclass} < \the\@classend}{
+ \@transition{\the\value{iclass}}{\@nameuse{#1Class}}{{#2}}
+ \@transition{\@nameuse{#1Class}}{\the\value{iclass}}{{#3}}}
+ % and a binding for the transitions to and from boundary characters
+ \@transition{255}{\@nameuse{#1Class}}{{#2}}
+ \@transition{\@nameuse{#1Class}}{255}{{#3}}}
+
+% ----------------------------------------------------------------------------
+% Use: \setTransitionTo{block name}{what to do when entering this block}
+% ----------------------------------------------------------------------------
+
+\newcommand{\setTransitionTo}[2] {
+ \forloop{iclass}{\the\@classstart}{\value{iclass} < \@nameuse{#1Class}}{
+ \@transition{\the\value{iclass}}{\@nameuse{#1Class}}{{#2}}}
+ \addtocounter{iclass}{2}
+ \forloop{iclass}{\value{iclass}}{\value{iclass} < \the\@classend}{
+ \@transition{\the\value{iclass}}{\@nameuse{#1Class}}{{#2}}}
+ % and a binding for the transition from boundary characters
+ \@transition{255}{\@nameuse{#1Class}}{{#2}}}
+
+% ----------------------------------------------------------------------------
+% Use: \setTransitionFrom{block name }{what to do when leaving this block}
+% ----------------------------------------------------------------------------
+
+\newcommand{\setTransitionFrom}[2]{
+ \forloop{iclass}{\the\@classstart}{\value{iclass} < \@nameuse{#1Class}}{
+ \@transition{\@nameuse{#1Class}}{\the\value{iclass}}{{#2}}}
+ \addtocounter{iclass}{2}
+ \forloop{iclass}{\value{iclass}}{\value{iclass} < \the\@classend}{
+ \@transition{\@nameuse{#1Class}}{\the\value{iclass}}{{#2}}}
+ % and a binding for the transition to boundary characters
+ \@transition{\@nameuse{#1Class}}{255}{{#2}}}
+
+
+% ----------------------------------------------------------------------------
+% Informal Block Rules - for these, to/from must always be defined
+%
+% Available informal groups are:
+%
+% - Arabic
+% - Chinese (including bopomofo)
+% - CJK (Chinese/Japanese/Korean)
+% - Cyrillic
+% - Diacritics
+% - Greek
+% - Japanese (it is advised to set CJK first to a catch-all, then set Japanese for specifics)
+% - Korean (=Hangul) (same comment as for Japanese)
+% - Latin
+% - Mathematics
+% - Phonetics
+% - Punctuation
+% - Symbols
+% - Yi
+% - Other (I am not a fan of lump groups. I hope to un-lump most of it)
+%
+% ----------------------------------------------------------------------------
+
+\newcommand{\setTransitionsForArabic}[2]{
+\setTransitionsFor{Arabic}{#1}{#2}
+\setTransitionsFor{ArabicPresentationFormsA}{#1}{#2}
+\setTransitionsFor{ArabicPresentationFormsB}{#1}{#2}
+\setTransitionsFor{ArabicSupplement}{#1}{#2}
+}
+
+\newcommand{\setTransitionsForChinese}[2]{
+\setTransitionsFor{Bopomofo}{#1}{#2}
+\setTransitionsFor{BopomofoExtended}{#1}{#2}
+\setTransitionsFor{CJKCompatibility}{#1}{#2}
+\setTransitionsFor{CJKCompatibilityForms}{#1}{#2}
+\setTransitionsFor{CJKCompatibilityIdeographs}{#1}{#2}
+\setTransitionsFor{CJKCompatibilityIdeographsSupplement}{#1}{#2}
+\setTransitionsFor{CJKRadicalsSupplement}{#1}{#2}
+\setTransitionsFor{CJKStrokes}{#1}{#2}
+\setTransitionsFor{CJKSymbolsAndPunctuation}{#1}{#2}
+\setTransitionsFor{CJKUnifiedIdeographs}{#1}{#2}
+\setTransitionsFor{CJKUnifiedIdeographsExtensionA}{#1}{#2}
+\setTransitionsFor{CJKUnifiedIdeographsExtensionB}{#1}{#2}
+\setTransitionsFor{EnclosedCJKLettersAndMonths}{#1}{#2}
+\setTransitionsFor{IdeographicDescriptionCharacters}{#1}{#2}
+\setTransitionsFor{KangxiRadicals}{#1}{#2}
+}
+
+\newcommand{\setTransitionsForCJK}[2]{
+\setTransitionsFor{Bopomofo}{#1}{#2}
+\setTransitionsFor{BopomofoExtended}{#1}{#2}
+\setTransitionsFor{CJKCompatibility}{#1}{#2}
+\setTransitionsFor{CJKCompatibilityForms}{#1}{#2}
+\setTransitionsFor{CJKCompatibilityIdeographs}{#1}{#2}
+\setTransitionsFor{CJKCompatibilityIdeographsSupplement}{#1}{#2}
+\setTransitionsFor{CJKRadicalsSupplement}{#1}{#2}
+\setTransitionsFor{CJKStrokes}{#1}{#2}
+\setTransitionsFor{CJKSymbolsAndPunctuation}{#1}{#2}
+\setTransitionsFor{CJKUnifiedIdeographs}{#1}{#2}
+\setTransitionsFor{CJKUnifiedIdeographsExtensionA}{#1}{#2}
+\setTransitionsFor{CJKUnifiedIdeographsExtensionB}{#1}{#2}
+\setTransitionsFor{EnclosedCJKLettersAndMonths}{#1}{#2}
+\setTransitionsFor{HalfwidthAndFullwidthForms}{#1}{#2}
+\setTransitionsFor{HangulCompatibilityJamo}{#1}{#2}
+\setTransitionsFor{HangulJamo}{#1}{#2}
+\setTransitionsFor{HangulSyllables}{#1}{#2}
+\setTransitionsFor{Hiragana}{#1}{#2}
+\setTransitionsFor{IdeographicDescriptionCharacters}{#1}{#2}
+\setTransitionsFor{Kanbun}{#1}{#2}
+\setTransitionsFor{KangxiRadicals}{#1}{#2}
+\setTransitionsFor{Katakana}{#1}{#2}
+\setTransitionsFor{KatakanaPhoneticExtensions}{#1}{#2}
+}
+
+\newcommand{\setTransitionsForCyrillic}[2]{
+\setTransitionsFor{Cyrillic}{#1}{#2}
+\setTransitionsFor{CyrillicExtendedA}{#1}{#2}
+\setTransitionsFor{CyrillicExtendedB}{#1}{#2}
+\setTransitionsFor{CyrillicSupplement}{#1}{#2}
+}
+
+\newcommand{\setTransitionsForDiacritics}[2]{
+\setTransitionsFor{CombiningDiacriticalMarks}{#1}{#2}
+\setTransitionsFor{CombiningDiacriticalMarksforSymbols}{#1}{#2}
+\setTransitionsFor{CombiningDiacriticalMarksSupplement}{#1}{#2}
+\setTransitionsFor{CombiningHalfMarks}{#1}{#2}
+}
+
+\newcommand{\setTransitionsForGreek}[2]{
+\setTransitionsFor{Coptic}{#1}{#2}
+\setTransitionsFor{GreekAndCoptic}{#1}{#2}
+\setTransitionsFor{GreekExtended}{#1}{#2}
+}
+
+\newcommand{\setTransitionsForKorean}[2]{
+\setTransitionsFor{HangulCompatibilityJamo}{#1}{#2}
+\setTransitionsFor{HangulJamo}{#1}{#2}
+\setTransitionsFor{HangulSyllables}{#1}{#2}
+}
+
+\newcommand{\setTransitionsForJapanese}[2]{
+\setTransitionsFor{HalfwidthAndFullwidthForms}{#1}{#2}
+\setTransitionsFor{Hiragana}{#1}{#2}
+\setTransitionsFor{Kanbun}{#1}{#2}
+\setTransitionsFor{Katakana}{#1}{#2}
+\setTransitionsFor{KatakanaPhoneticExtensions}{#1}{#2}
+\setTransitionsFor{KangxiRadicals}{#1}{#2}
+}
+
+\newcommand{\setTransitionsForLatin}[2]{
+\setTransitionsFor{BasicLatin}{#1}{#2}
+\setTransitionsFor{LatinExtendedAdditional}{#1}{#2}
+\setTransitionsFor{LatinExtendedA}{#1}{#2}
+\setTransitionsFor{LatinExtendedB}{#1}{#2}
+\setTransitionsFor{LatinExtendedC}{#1}{#2}
+\setTransitionsFor{LatinExtendedD}{#1}{#2}
+\setTransitionsFor{LatinSupplement}{#1}{#2}
+\setTransitionsFor{AlphabeticPresentationForms}{#1}{#2}
+}
+
+\newcommand{\setTransitionsForMathematics}[2]{
+\setTransitionsFor{MathematicalAlphanumericSymbols}{#1}{#2}
+\setTransitionsFor{MathematicalOperators}{#1}{#2}
+\setTransitionsFor{MiscellaneousMathematicalSymbolsA}{#1}{#2}
+\setTransitionsFor{MiscellaneousMathematicalSymbolsB}{#1}{#2}
+\setTransitionsFor{SupplementalMathematicalOperators}{#1}{#2}
+}
+
+\newcommand{\setTransitionsForPhonetics}[2]{
+\setTransitionsFor{IPAExtensions}{#1}{#2}
+\setTransitionsFor{PhoneticExtensions}{#1}{#2}
+\setTransitionsFor{PhoneticExtensionsSupplement}{#1}{#2}
+}
+
+\newcommand{\setTransitionsForPunctuation}[2]{
+\setTransitionsFor{GeneralPunctuation}{#1}{#2}
+\setTransitionsFor{SupplementalPunctuation}{#1}{#2}
+}
+
+\newcommand{\setTransitionsForSymbols}[2]{
+\setTransitionsFor{Arrows}{#1}{#2}
+\setTransitionsFor{BoxDrawing}{#1}{#2}
+\setTransitionsFor{ByzantineMusicalSymbols}{#1}{#2}
+\setTransitionsFor{ControlPictures}{#1}{#2}
+\setTransitionsFor{CurrencySymbols}{#1}{#2}
+\setTransitionsFor{GeometricShapes}{#1}{#2}
+\setTransitionsFor{LetterlikeSymbols}{#1}{#2}
+\setTransitionsFor{MiscellaneousSymbols}{#1}{#2}
+\setTransitionsFor{MiscellaneousSymbolsAndArrows}{#1}{#2}
+\setTransitionsFor{MiscellaneousTechnical}{#1}{#2}
+\setTransitionsFor{SupplementalArrowsA}{#1}{#2}
+\setTransitionsFor{SupplementalArrowsB}{#1}{#2}
+\setTransitionsFor{VariationSelectors}{#1}{#2}
+\setTransitionsFor{VariationSelectorsSupplement}{#1}{#2}
+}
+
+\newcommand{\setTransitionsForYi}[2]{
+\setTransitionsFor{YiRadicals}{#1}{#2}
+\setTransitionsFor{YiSyllables}{#1}{#2}
+}
+
+\newcommand{\setTransitionsForOther}[2]{
+\setTransitionsFor{AegeanNumbers}{#1}{#2}
+\setTransitionsFor{AncientGreekMusicalNotation}{#1}{#2}
+\setTransitionsFor{AncientGreekNumbers}{#1}{#2}
+\setTransitionsFor{Armenian}{#1}{#2}
+\setTransitionsFor{Balinese}{#1}{#2}
+\setTransitionsFor{Bengali}{#1}{#2}
+\setTransitionsFor{BlockElements}{#1}{#2}
+\setTransitionsFor{BraillePatterns}{#1}{#2}
+\setTransitionsFor{Buginese}{#1}{#2}
+\setTransitionsFor{Buhid}{#1}{#2}
+\setTransitionsFor{Cherokee}{#1}{#2}
+\setTransitionsFor{Coptic}{#1}{#2}
+\setTransitionsFor{CountingRodNumerals}{#1}{#2}
+\setTransitionsFor{Cuneiform}{#1}{#2}
+\setTransitionsFor{CuneiformNumbersAndPunctuation}{#1}{#2}
+\setTransitionsFor{CypriotSyllabary}{#1}{#2}
+\setTransitionsFor{Deseret}{#1}{#2}
+\setTransitionsFor{Devanagari}{#1}{#2}
+\setTransitionsFor{Dingbats}{#1}{#2}
+\setTransitionsFor{DominoTiles}{#1}{#2}
+\setTransitionsFor{EnclosedAlphanumerics}{#1}{#2}
+\setTransitionsFor{Ethiopic}{#1}{#2}
+\setTransitionsFor{EthiopicExtended}{#1}{#2}
+\setTransitionsFor{EthiopicSupplement}{#1}{#2}
+\setTransitionsFor{Georgian}{#1}{#2}
+\setTransitionsFor{GeorgianSupplement}{#1}{#2}
+\setTransitionsFor{Glagolitic}{#1}{#2}
+\setTransitionsFor{Gothic}{#1}{#2}
+\setTransitionsFor{Gujarati}{#1}{#2}
+\setTransitionsFor{Gurmukhi}{#1}{#2}
+\setTransitionsFor{Hanunoo}{#1}{#2}
+\setTransitionsFor{Hebrew}{#1}{#2}
+\setTransitionsFor{Kannada}{#1}{#2}
+\setTransitionsFor{Kharoshthi}{#1}{#2}
+\setTransitionsFor{Khmer}{#1}{#2}
+\setTransitionsFor{KhmerSymbols}{#1}{#2}
+\setTransitionsFor{Lao}{#1}{#2}
+\setTransitionsFor{Limbu}{#1}{#2}
+\setTransitionsFor{LinearBIdeograms}{#1}{#2}
+\setTransitionsFor{LinearBSyllabary}{#1}{#2}
+\setTransitionsFor{MahjongTiles}{#1}{#2}
+\setTransitionsFor{Malayalam}{#1}{#2}
+\setTransitionsFor{ModifierToneLetters}{#1}{#2}
+\setTransitionsFor{Mongolian}{#1}{#2}
+\setTransitionsFor{MusicalSymbols}{#1}{#2}
+\setTransitionsFor{Myanmar}{#1}{#2}
+\setTransitionsFor{NewTaiLue}{#1}{#2}
+\setTransitionsFor{NKo}{#1}{#2}
+\setTransitionsFor{NumberForms}{#1}{#2}
+\setTransitionsFor{Ogham}{#1}{#2}
+\setTransitionsFor{OldItalic}{#1}{#2}
+\setTransitionsFor{OldPersian}{#1}{#2}
+\setTransitionsFor{OpticalCharacterRecognition}{#1}{#2}
+\setTransitionsFor{Oriya}{#1}{#2}
+\setTransitionsFor{Osmanya}{#1}{#2}
+\setTransitionsFor{PhagsPa}{#1}{#2}
+\setTransitionsFor{Phoenician}{#1}{#2}
+\setTransitionsFor{PrivateUseArea}{#1}{#2}
+\setTransitionsFor{Runic}{#1}{#2}
+\setTransitionsFor{Shavian}{#1}{#2}
+\setTransitionsFor{Sinhala}{#1}{#2}
+\setTransitionsFor{SmallFormVariants}{#1}{#2}
+\setTransitionsFor{SpacingModifierLetters}{#1}{#2}
+\setTransitionsFor{Specials}{#1}{#2}
+\setTransitionsFor{SuperscriptsAndSubscripts}{#1}{#2}
+\setTransitionsFor{SupplementaryPrivateUseAreaA}{#1}{#2}
+\setTransitionsFor{SupplementaryPrivateUseAreaB}{#1}{#2}
+\setTransitionsFor{SylotiNagri}{#1}{#2}
+\setTransitionsFor{Syriac}{#1}{#2}
+\setTransitionsFor{Tagalog}{#1}{#2}
+\setTransitionsFor{Tagbanwa}{#1}{#2}
+\setTransitionsFor{Tags}{#1}{#2}
+\setTransitionsFor{TaiLe}{#1}{#2}
+\setTransitionsFor{TaiXuanJingSymbols}{#1}{#2}
+\setTransitionsFor{Tamil}{#1}{#2}
+\setTransitionsFor{Telugu}{#1}{#2}
+\setTransitionsFor{Thaana}{#1}{#2}
+\setTransitionsFor{Thai}{#1}{#2}
+\setTransitionsFor{Tibetan}{#1}{#2}
+\setTransitionsFor{Tifinagh}{#1}{#2}
+\setTransitionsFor{Ugaritic}{#1}{#2}
+\setTransitionsFor{UnifiedCanadianAboriginalSyllabics}{#1}{#2}
+\setTransitionsFor{VerticalForms}{#1}{#2}
+\setTransitionsFor{YijingHexagramSymbols}{#1}{#2}
+}
+
+% ----------------------------------------------------------------------------
+%
+% based on the previous informal groups, we can define a catch-all transition command
+%
+% ----------------------------------------------------------------------------
+
+\newcommand{\setDefaultTransitions}[2]{
+\setTransitionsForArabic{#1}{#2}
+\setTransitionsForCJK{#1}{#2}
+\setTransitionsForCyrillic{#1}{#2}
+\setTransitionsForDiacritics{#1}{#2}
+\setTransitionsForGreek{#1}{#2}
+\setTransitionsForLatin{#1}{#2}
+\setTransitionsForMathematics{#1}{#2}
+\setTransitionsForPhonetics{#1}{#2}
+\setTransitionsForPunctuation{#1}{#2}
+\setTransitionsForSymbols{#1}{#2}
+\setTransitionsForYi{#1}{#2}
+\setTransitionsForOther{#1}{#2}
+}
+
+% ----------------------------------------------------------------------------
+\endinput
+%
+% End of file `ucharclasses.sty'. \ No newline at end of file