//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //------------------------------------------------------------------------------ namespace System.Web.Security.AntiXss { using System; /// /// Values for the lowest section of the UTF8 Unicode code tables, from U0000 to U0FFF. /// [Flags] public enum LowerCodeCharts : long { /// /// No code charts from the lower region of the Unicode tables are safe-listed. /// None = 0, /// /// The Basic Latin code table. /// /// http://www.unicode.org/charts/PDF/U0000.pdf BasicLatin = 1 << 0x00, /// /// The C1 Controls and Latin-1 Supplement code table. /// /// http://www.unicode.org/charts/PDF/U0080.pdf C1ControlsAndLatin1Supplement = 1 << 0x01, /// /// The Latin Extended-A code table. /// /// http://www.unicode.org/charts/PDF/U0100.pdf LatinExtendedA = 1 << 0x02, /// /// The Latin Extended-B code table. /// /// http://www.unicode.org/charts/PDF/U0180.pdf LatinExtendedB = 1 << 0x03, /// /// The IPA Extensions code table. /// /// http://www.unicode.org/charts/PDF/U0250.pdf IpaExtensions = 1 << 0x04, /// /// The Spacing Modifier Letters code table. /// /// http://www.unicode.org/charts/PDF/U02B0.pdf SpacingModifierLetters = 1 << 0x05, /// /// The Combining Diacritical Marks code table. /// /// http://www.unicode.org/charts/PDF/U0300.pdf CombiningDiacriticalMarks = 1 << 0x06, /// /// The Greek and Coptic code table. /// /// http://www.unicode.org/charts/PDF/U0370.pdf GreekAndCoptic = 1 << 0x07, /// /// The Cyrillic code table. /// /// http://www.unicode.org/charts/PDF/U0400.pdf Cyrillic = 1 << 0x08, /// /// The Cyrillic Supplement code table. /// /// http://www.unicode.org/charts/PDF/U0500.pdf CyrillicSupplement = 1 << 0x09, /// /// The Armenian code table. /// /// http://www.unicode.org/charts/PDF/U0530.pdf Armenian = 1 << 0x0A, /// /// The Hebrew code table. /// /// http://www.unicode.org/charts/PDF/U0590.pdf Hebrew = 1 << 0x0B, /// /// The Arabic code table. /// /// http://www.unicode.org/charts/PDF/U0600.pdf Arabic = 1 << 0x0C, /// /// The Syriac code table. /// /// http://www.unicode.org/charts/PDF/U0700.pdf Syriac = 1 << 0x0D, /// /// The Arabic Supplement code table. /// /// http://www.unicode.org/charts/PDF/U0750.pdf ArabicSupplement = 1 << 0x0E, /// /// The Thaana code table. /// /// http://www.unicode.org/charts/PDF/U0780.pdf Thaana = 1 << 0x0F, /// /// The Nko code table. /// /// http://www.unicode.org/charts/PDF/U07C0.pdf Nko = 1 << 0x10, /// /// The Samaritan code table. /// /// http://www.unicode.org/charts/PDF/U0800.pdf Samaritan = 1 << 0x11, /// /// The Devanagari code table. /// /// http://www.unicode.org/charts/PDF/U0900.pdf Devanagari = 1 << 0x12, /// /// The Bengali code table. /// /// http://www.unicode.org/charts/PDF/U0980.pdf Bengali = 1 << 0x13, /// /// The Gurmukhi code table. /// /// http://www.unicode.org/charts/PDF/U0A00.pdf Gurmukhi = 1 << 0x14, /// /// The Gujarati code table. /// /// http://www.unicode.org/charts/PDF/U0A80.pdf Gujarati = 1 << 0x15, /// /// The Oriya code table. /// /// http://www.unicode.org/charts/PDF/U0B00.pdf Oriya = 1 << 0x16, /// /// The Tamil code table. /// /// http://www.unicode.org/charts/PDF/U0B80.pdf Tamil = 1 << 0x17, /// /// The Telugu code table. /// /// http://www.unicode.org/charts/PDF/U0C00.pdf Telugu = 1 << 0x18, /// /// The Kannada code table. /// /// http://www.unicode.org/charts/PDF/U0C80.pdf Kannada = 1 << 0x19, /// /// The Malayalam code table. /// /// http://www.unicode.org/charts/PDF/U0D00.pdf Malayalam = 1 << 0x1A, /// /// The Sinhala code table. /// /// http://www.unicode.org/charts/PDF/U0D80.pdf Sinhala = 1 << 0x1B, /// /// The Thai code table. /// /// http://www.unicode.org/charts/PDF/U0E00.pdf Thai = 1 << 0x1C, /// /// The Lao code table. /// /// http://www.unicode.org/charts/PDF/U0E80.pdf Lao = 1 << 0x1D, /// /// The Tibetan code table. /// /// http://www.unicode.org/charts/PDF/U0F00.pdf Tibetan = 1 << 0x1E, /// /// The default code tables marked as safe on initialisation. /// Default = BasicLatin | C1ControlsAndLatin1Supplement | LatinExtendedA | LatinExtendedB | SpacingModifierLetters | IpaExtensions | CombiningDiacriticalMarks } /// /// Values for the lower-mid section of the UTF8 Unicode code tables, from U1000 to U1EFF. /// [Flags] public enum LowerMidCodeCharts : long { /// /// No code charts from the lower-mid region of the Unicode tables are safe-listed. /// None = 0, /// /// The Myanmar code table. /// /// http://www.unicode.org/charts/PDF/U1000.pdf Myanmar = 1 << 0x00, /// /// The Georgian code table. /// /// http://www.unicode.org/charts/PDF/U10A0.pdf Georgian = 1 << 0x01, /// /// The Hangul Jamo code table. /// /// http://www.unicode.org/charts/PDF/U1100.pdf HangulJamo = 1 << 0x02, /// /// The Ethiopic code table. /// /// http://www.unicode.org/charts/PDF/U1200.pdf Ethiopic = 1 << 0x03, /// /// The Ethiopic supplement code table. /// /// http://www.unicode.org/charts/PDF/U1380.pdf EthiopicSupplement = 1 << 0x04, /// /// The Cherokee code table. /// /// http://www.unicode.org/charts/PDF/U13A0.pdf Cherokee = 1 << 0x05, /// /// The Unified Canadian Aboriginal Syllabics code table. /// /// http://www.unicode.org/charts/PDF/U1400.pdf UnifiedCanadianAboriginalSyllabics = 1 << 0x06, /// /// The Ogham code table. /// /// http://www.unicode.org/charts/PDF/U1680.pdf Ogham = 1 << 0x07, /// /// The Runic code table. /// /// http://www.unicode.org/charts/PDF/U16A0.pdf Runic = 1 << 0x08, /// /// The Tagalog code table. /// /// http://www.unicode.org/charts/PDF/U1700.pdf Tagalog = 1 << 0x09, /// /// The Hanunoo code table. /// /// http://www.unicode.org/charts/PDF/U1720.pdf Hanunoo = 1 << 0x0A, /// /// The Buhid code table. /// /// http://www.unicode.org/charts/PDF/U1740.pdf Buhid = 1 << 0x0B, /// /// The Tagbanwa code table. /// /// http://www.unicode.org/charts/PDF/U1760.pdf Tagbanwa = 1 << 0x0C, /// /// The Khmer code table. /// /// http://www.unicode.org/charts/PDF/U1780.pdf Khmer = 1 << 0x0D, /// /// The Mongolian code table. /// /// http://www.unicode.org/charts/PDF/U1800.pdf Mongolian = 1 << 0x0E, /// /// The Unified Canadian Aboriginal Syllabics Extended code table. /// /// http://www.unicode.org/charts/PDF/U18B0.pdf UnifiedCanadianAboriginalSyllabicsExtended = 1 << 0x0F, /// /// The Limbu code table. /// /// http://www.unicode.org/charts/PDF/U1900.pdf Limbu = 1 << 0x10, /// /// The Tai Le code table. /// /// http://www.unicode.org/charts/PDF/U1950.pdf TaiLe = 1 << 0x11, /// /// The New Tai Lue code table. /// /// http://www.unicode.org/charts/PDF/U1980.pdf NewTaiLue = 1 << 0x12, /// /// The Khmer Symbols code table /// /// http://www.unicode.org/charts/PDF/U19E0.pdf KhmerSymbols = 1 << 0x13, /// /// The Buginese code table. /// /// http://www.unicode.org/charts/PDF/U1A00.pdf Buginese = 1 << 0x14, /// /// The Tai Tham code table. /// /// http://www.unicode.org/charts/PDF/U1A20.pdf TaiTham = 1 << 0x15, /// /// The Balinese code table. /// /// http://www.unicode.org/charts/PDF/U1B00.pdf Balinese = 1 << 0x16, /// /// The Sudanese code table. /// /// http://www.unicode.org/charts/PDF/U1B80.pdf Sudanese = 1 << 0x17, /// /// The Lepcha code table. /// /// http://www.unicode.org/charts/PDF/U1C00.pdf Lepcha = 1 << 0x18, /// /// The Ol Chiki code table. /// /// http://www.unicode.org/charts/PDF/U1C50.pdf OlChiki = 1 << 0x19, /// /// The Vedic Extensions code table. /// /// http://www.unicode.org/charts/PDF/U1CD0.pdf VedicExtensions = 1 << 0x1A, /// /// The Phonetic Extensions code table. /// /// http://www.unicode.org/charts/PDF/U1D00.pdf PhoneticExtensions = 1 << 0x1B, /// /// The Phonetic Extensions Supplement code table. /// /// http://www.unicode.org/charts/PDF/U1D80.pdf PhoneticExtensionsSupplement = 1 << 0x1C, /// /// The Combining Diacritical Marks Supplement code table. /// /// http://www.unicode.org/charts/PDF/U1DC0.pdf CombiningDiacriticalMarksSupplement = 1 << 0x1D, /// /// The Latin Extended Additional code table. /// /// http://www.unicode.org/charts/PDF/U1E00.pdf LatinExtendedAdditional = 1 << 0x1E } /// /// Values for the middle section of the UTF8 Unicode code tables, from U1F00 to U2DDF /// [Flags] public enum MidCodeCharts : long { /// /// No code charts from the lower region of the Unicode tables are safe-listed. /// None = 0, /// /// The Greek Extended code table. /// /// http://www.unicode.org/charts/PDF/U1F00.pdf GreekExtended = 1 << 0x00, /// /// The General Punctuation code table. /// /// http://www.unicode.org/charts/PDF/U2000.pdf GeneralPunctuation = 1 << 0x01, /// /// The Superscripts and Subscripts code table. /// /// http://www.unicode.org/charts/PDF/U2070.pdf SuperscriptsAndSubscripts = 1 << 0x02, /// /// The Currency Symbols code table. /// /// http://www.unicode.org/charts/PDF/U20A0.pdf CurrencySymbols = 1 << 0x03, /// /// The Combining Diacritical Marks for Symbols code table. /// /// http://www.unicode.org/charts/PDF/U20D0.pdf CombiningDiacriticalMarksForSymbols = 1 << 0x04, /// /// The Letterlike Symbols code table. /// /// http://www.unicode.org/charts/PDF/U2100.pdf LetterlikeSymbols = 1 << 0x05, /// /// The Number Forms code table. /// /// http://www.unicode.org/charts/PDF/U2150.pdf NumberForms = 1 << 0x06, /// /// The Arrows code table. /// /// http://www.unicode.org/charts/PDF/U2190.pdf Arrows = 1 << 0x07, /// /// The Mathematical Operators code table. /// /// http://www.unicode.org/charts/PDF/U2200.pdf MathematicalOperators = 1 << 0x08, /// /// The Miscellaneous Technical code table. /// /// http://www.unicode.org/charts/PDF/U2300.pdf MiscellaneousTechnical = 1 << 0x09, /// /// The Control Pictures code table. /// /// http://www.unicode.org/charts/PDF/U2400.pdf ControlPictures = 1 << 0x0A, /// /// The Optical Character Recognition table. /// /// http://www.unicode.org/charts/PDF/U2440.pdf OpticalCharacterRecognition = 1 << 0x0B, /// /// The Enclosed Alphanumeric code table. /// /// http://www.unicode.org/charts/PDF/U2460.pdf EnclosedAlphanumerics = 1 << 0x0C, /// /// The Box Drawing code table. /// /// http://www.unicode.org/charts/PDF/U2500.pdf BoxDrawing = 1 << 0x0D, /// /// The Block Elements code table. /// /// http://www.unicode.org/charts/PDF/U2580.pdf BlockElements = 1 << 0x0E, /// /// The Geometric Shapes code table. /// /// http://www.unicode.org/charts/PDF/U25A0.pdf GeometricShapes = 1 << 0x0F, /// /// The Miscellaneous Symbols code table. /// /// http://www.unicode.org/charts/PDF/U2600.pdf MiscellaneousSymbols = 1 << 0x10, /// /// The Dingbats code table. /// /// http://www.unicode.org/charts/PDF/U2700.pdf Dingbats = 1 << 0x11, /// /// The Miscellaneous Mathematical Symbols-A code table. /// /// http://www.unicode.org/charts/PDF/U27C0.pdf MiscellaneousMathematicalSymbolsA = 1 << 0x12, /// /// The Supplemental Arrows-A code table. /// /// http://www.unicode.org/charts/PDF/U27F0.pdf SupplementalArrowsA = 1 << 0x13, /// /// The Braille Patterns code table. /// /// http://www.unicode.org/charts/PDF/U2800.pdf BraillePatterns = 1 << 0x14, /// /// The Supplemental Arrows-B code table. /// /// http://www.unicode.org/charts/PDF/U2900.pdf SupplementalArrowsB = 1 << 0x15, /// /// The Miscellaneous Mathematical Symbols-B code table. /// /// http://www.unicode.org/charts/PDF/U2980.pdf MiscellaneousMathematicalSymbolsB = 1 << 0x16, /// /// The Supplemental Mathematical Operators code table. /// /// http://www.unicode.org/charts/PDF/U2A00.pdf SupplementalMathematicalOperators = 1 << 0x17, /// /// The Miscellaneous Symbols and Arrows code table. /// /// http://www.unicode.org/charts/PDF/U2B00.pdf MiscellaneousSymbolsAndArrows = 1 << 0x18, /// /// The Glagolitic code table. /// /// http://www.unicode.org/charts/PDF/U2C00.pdf Glagolitic = 1 << 0x19, /// /// The Latin Extended-C code table. /// /// http://www.unicode.org/charts/PDF/U2C60.pdf LatinExtendedC = 1 << 0x1A, /// /// The Coptic code table. /// /// http://www.unicode.org/charts/PDF/U2C80.pdf Coptic = 1 << 0x1B, /// /// The Georgian Supplement code table. /// /// http://www.unicode.org/charts/PDF/U2D00.pdf GeorgianSupplement = 1 << 0x1C, /// /// The Tifinagh code table. /// /// http://www.unicode.org/charts/PDF/U2D30.pdf Tifinagh = 1 << 0x1D, /// /// The Ethiopic Extended code table. /// /// http://www.unicode.org/charts/PDF/U2D80.pdf EthiopicExtended = 1 << 0x0E, } /// /// Values for the upper middle section of the UTF8 Unicode code tables, from U2DE0 to UA8DF /// [Flags] public enum UpperMidCodeCharts : long { /// /// No code charts from the lower region of the Unicode tables are safe-listed. /// None = 0, /// /// The Cyrillic Extended-A code table. /// /// http://www.unicode.org/charts/PDF/U2DE0.pdf CyrillicExtendedA = 1 << 0x00, /// /// The Supplemental Punctuation code table. /// /// http://www.unicode.org/charts/PDF/U2E00.pdf SupplementalPunctuation = 1 << 0x01, /// /// The CJK Radicials Supplement code table. /// /// http://www.unicode.org/charts/PDF/U2E80.pdf CjkRadicalsSupplement = 1 << 0x02, /// /// The Kangxi Radicials code table. /// /// http://www.unicode.org/charts/PDF/U2F00.pdf KangxiRadicals = 1 << 0x03, /// /// The Ideographic Description Characters code table. /// /// http://www.unicode.org/charts/PDF/U2FF0.pdf IdeographicDescriptionCharacters = 1 << 0x04, /// /// The CJK Symbols and Punctuation code table. /// /// http://www.unicode.org/charts/PDF/U3000.pdf CjkSymbolsAndPunctuation = 1 << 0x05, /// /// The Hiragana code table. /// /// http://www.unicode.org/charts/PDF/U3040.pdf Hiragana = 1 << 0x06, /// /// The Katakana code table. /// /// http://www.unicode.org/charts/PDF/U30A0.pdf Katakana = 1 << 0x07, /// /// The Bopomofo code table. /// /// /// http://www.unicode.org/charts/PDF/U3100.pdf Bopomofo = 1 << 0x08, /// /// The Hangul Compatbility Jamo code table. /// /// http://www.unicode.org/charts/PDF/U3130.pdf HangulCompatibilityJamo = 1 << 0x09, /// /// The Kanbun code table. /// /// http://www.unicode.org/charts/PDF/U3190.pdf Kanbun = 1 << 0x0A, /// /// The Bopomofu Extended code table. /// /// /// http://www.unicode.org/charts/PDF/U31A0.pdf BopomofoExtended = 1 << 0x0B, /// /// The CJK Strokes code table. /// /// http://www.unicode.org/charts/PDF/U31C0.pdf CjkStrokes = 1 << 0x0C, /// /// The Katakana Phonetic Extensoins code table. /// /// http://www.unicode.org/charts/PDF/U31F0.pdf KatakanaPhoneticExtensions = 1 << 0x0D, /// /// The Enclosed CJK Letters and Months code table. /// /// http://www.unicode.org/charts/PDF/U3200.pdf EnclosedCjkLettersAndMonths = 1 << 0x0E, /// /// The CJK Compatibility code table. /// /// http://www.unicode.org/charts/PDF/U3300.pdf CjkCompatibility = 1 << 0x0F, /// /// The CJK Unified Ideographs Extension A code table. /// /// http://www.unicode.org/charts/PDF/U3400.pdf CjkUnifiedIdeographsExtensionA = 1 << 0x10, /// /// The Yijing Hexagram Symbols code table. /// /// http://www.unicode.org/charts/PDF/U4DC0.pdf YijingHexagramSymbols = 1 << 0x11, /// /// The CJK Unified Ideographs code table. /// /// http://www.unicode.org/charts/PDF/U4E00.pdf CjkUnifiedIdeographs = 1 << 0x12, /// /// The Yi Syllables code table. /// /// http://www.unicode.org/charts/PDF/UA000.pdf YiSyllables = 1 << 0x13, /// /// The Yi Radicals code table. /// /// http://www.unicode.org/charts/PDF/UA490.pdf YiRadicals = 1 << 0x14, /// /// The Lisu code table. /// /// http://www.unicode.org/charts/PDF/UA4D0.pdf Lisu = 1 << 0x15, /// /// The Vai code table. /// /// http://www.unicode.org/charts/PDF/UA500.pdf Vai = 1 << 0x16, /// /// The Cyrillic Extended-B code table. /// /// http://www.unicode.org/charts/PDF/UA640.pdf CyrillicExtendedB = 1 << 0x17, /// /// The Bamum code table. /// /// http://www.unicode.org/charts/PDF/UA6A0.pdf Bamum = 1 << 0x18, /// /// The Modifier Tone Letters code table. /// /// http://www.unicode.org/charts/PDF/UA700.pdf ModifierToneLetters = 1 << 0x19, /// /// The Latin Extended-D code table. /// /// http://www.unicode.org/charts/PDF/UA720.pdf LatinExtendedD = 1 << 0x1A, /// /// The Syloti Nagri code table. /// /// http://www.unicode.org/charts/PDF/UA800.pdf SylotiNagri = 1 << 0x1B, /// /// The Common Indic Number Forms code table. /// /// http://www.unicode.org/charts/PDF/UA830.pdf CommonIndicNumberForms = 1 << 0x1C, /// /// The Phags-pa code table. /// /// http://www.unicode.org/charts/PDF/UA840.pdf Phagspa = 1 << 0x1D, /// /// The Saurashtra code table. /// /// http://www.unicode.org/charts/PDF/UA880.pdf Saurashtra = 1 << 0x1E, } /// /// Values for the upper section of the UTF8 Unicode code tables, from UA8E0 to UFFFD /// [Flags] public enum UpperCodeCharts { /// /// No code charts from the upper region of the Unicode tables are safe-listed. /// None = 0, /// /// The Devanagari Extended code table. /// /// http://www.unicode.org/charts/PDF/UA8E0.pdf DevanagariExtended = 1 << 0x00, /// /// The Kayah Li code table. /// /// http://www.unicode.org/charts/PDF/UA900.pdf KayahLi = 1 << 0x01, /// /// The Rejang code table. /// /// http://www.unicode.org/charts/PDF/UA930.pdf Rejang = 1 << 0x02, /// /// The Hangul Jamo Extended-A code table. /// /// http://www.unicode.org/charts/PDF/UA960.pdf HangulJamoExtendedA = 1 << 0x03, /// /// The Javanese code table. /// /// http://www.unicode.org/charts/PDF/UA980.pdf Javanese = 1 << 0x04, /// /// The Cham code table. /// /// http://www.unicode.org/charts/PDF/UAA00.pdf Cham = 1 << 0x05, /// /// The Myanmar Extended-A code table. /// /// http://www.unicode.org/charts/PDF/UAA60.pdf MyanmarExtendedA = 1 << 0x06, /// /// The Tai Viet code table. /// /// http://www.unicode.org/charts/PDF/UAA80.pdf TaiViet = 1 << 0x07, /// /// The Meetei Mayek code table. /// /// http://www.unicode.org/charts/PDF/UABC0.pdf MeeteiMayek = 1 << 0x08, /// /// The Hangul Syllables code table. /// /// http://www.unicode.org/charts/PDF/UAC00.pdf HangulSyllables = 1 << 0x09, /// /// The Hangul Jamo Extended-B code table. /// /// http://www.unicode.org/charts/PDF/UD7B0.pdf HangulJamoExtendedB = 1 << 0x0A, /// /// The CJK Compatibility Ideographs code table. /// /// http://www.unicode.org/charts/PDF/UF900.pdf CjkCompatibilityIdeographs = 1 << 0x0B, /// /// The Alphabetic Presentation Forms code table. /// /// http://www.unicode.org/charts/PDF/UFB00.pdf AlphabeticPresentationForms = 1 << 0x0C, /// /// The Arabic Presentation Forms-A code table. /// /// http://www.unicode.org/charts/PDF/UFB50.pdf ArabicPresentationFormsA = 1 << 0x0D, /// /// The Variation Selectors code table. /// /// http://www.unicode.org/charts/PDF/UFE00.pdf VariationSelectors = 1 << 0x0E, /// /// The Vertical Forms code table. /// /// http://www.unicode.org/charts/PDF/UFE10.pdf VerticalForms = 1 << 0x0F, /// /// The Combining Half Marks code table. /// /// http://www.unicode.org/charts/PDF/UFE20.pdf CombiningHalfMarks = 1 << 0x10, /// /// The CJK Compatibility Forms code table. /// /// http://www.unicode.org/charts/PDF/UFE30.pdf CjkCompatibilityForms = 1 << 0x11, /// /// The Small Form Variants code table. /// /// http://www.unicode.org/charts/PDF/UFE50.pdf SmallFormVariants = 1 << 0x12, /// /// The Arabic Presentation Forms-B code table. /// /// http://www.unicode.org/charts/PDF/UFE70.pdf ArabicPresentationFormsB = 1 << 0x13, /// /// The half width and full width Forms code table. /// /// http://www.unicode.org/charts/PDF/UFF00.pdf HalfWidthAndFullWidthForms = 1 << 0x14, /// /// The Specials code table. /// /// http://www.unicode.org/charts/PDF/UFFF0.pdf Specials = 1 << 0x15, } }