/* Generated by re2c */
#line 1 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
// re2c $INPUT -o $OUTPUT -x --encoding-policy substitute
#include <stdint.h>
#include <stdio.h>
#include "utf16.h"
#define YYCTYPE uint16_t

enum Block {
	Basic_Latin,
	Latin_1_Supplement,
	Latin_Extended_A,
	Latin_Extended_B,
	IPA_Extensions,
	Spacing_Modifier_Letters,
	Combining_Diacritical_Marks,
	Greek_and_Coptic,
	Cyrillic,
	Cyrillic_Supplement,
	Armenian,
	Hebrew,
	Arabic,
	Syriac,
	Arabic_Supplement,
	Thaana,
	NKo,
	Samaritan,
	Mandaic,
	Syriac_Supplement,
	Arabic_Extended_B,
	Arabic_Extended_A,
	Devanagari,
	Bengali,
	Gurmukhi,
	Gujarati,
	Oriya,
	Tamil,
	Telugu,
	Kannada,
	Malayalam,
	Sinhala,
	Thai,
	Lao,
	Tibetan,
	Myanmar,
	Georgian,
	Hangul_Jamo,
	Ethiopic,
	Ethiopic_Supplement,
	Cherokee,
	Unified_Canadian_Aboriginal_Syllabics,
	Ogham,
	Runic,
	Tagalog,
	Hanunoo,
	Buhid,
	Tagbanwa,
	Khmer,
	Mongolian,
	Unified_Canadian_Aboriginal_Syllabics_Extended,
	Limbu,
	Tai_Le,
	New_Tai_Lue,
	Khmer_Symbols,
	Buginese,
	Tai_Tham,
	Combining_Diacritical_Marks_Extended,
	Balinese,
	Sundanese,
	Batak,
	Lepcha,
	Ol_Chiki,
	Cyrillic_Extended_C,
	Georgian_Extended,
	Sundanese_Supplement,
	Vedic_Extensions,
	Phonetic_Extensions,
	Phonetic_Extensions_Supplement,
	Combining_Diacritical_Marks_Supplement,
	Latin_Extended_Additional,
	Greek_Extended,
	General_Punctuation,
	Superscripts_and_Subscripts,
	Currency_Symbols,
	Combining_Diacritical_Marks_for_Symbols,
	Letterlike_Symbols,
	Number_Forms,
	Arrows,
	Mathematical_Operators,
	Miscellaneous_Technical,
	Control_Pictures,
	Optical_Character_Recognition,
	Enclosed_Alphanumerics,
	Box_Drawing,
	Block_Elements,
	Geometric_Shapes,
	Miscellaneous_Symbols,
	Dingbats,
	Miscellaneous_Mathematical_Symbols_A,
	Supplemental_Arrows_A,
	Braille_Patterns,
	Supplemental_Arrows_B,
	Miscellaneous_Mathematical_Symbols_B,
	Supplemental_Mathematical_Operators,
	Miscellaneous_Symbols_and_Arrows,
	Glagolitic,
	Latin_Extended_C,
	Coptic,
	Georgian_Supplement,
	Tifinagh,
	Ethiopic_Extended,
	Cyrillic_Extended_A,
	Supplemental_Punctuation,
	CJK_Radicals_Supplement,
	Kangxi_Radicals,
	Ideographic_Description_Characters,
	CJK_Symbols_and_Punctuation,
	Hiragana,
	Katakana,
	Bopomofo,
	Hangul_Compatibility_Jamo,
	Kanbun,
	Bopomofo_Extended,
	CJK_Strokes,
	Katakana_Phonetic_Extensions,
	Enclosed_CJK_Letters_and_Months,
	CJK_Compatibility,
	CJK_Unified_Ideographs_Extension_A,
	Yijing_Hexagram_Symbols,
	CJK_Unified_Ideographs,
	Yi_Syllables,
	Yi_Radicals,
	Lisu,
	Vai,
	Cyrillic_Extended_B,
	Bamum,
	Modifier_Tone_Letters,
	Latin_Extended_D,
	Syloti_Nagri,
	Common_Indic_Number_Forms,
	Phags_pa,
	Saurashtra,
	Devanagari_Extended,
	Kayah_Li,
	Rejang,
	Hangul_Jamo_Extended_A,
	Javanese,
	Myanmar_Extended_B,
	Cham,
	Myanmar_Extended_A,
	Tai_Viet,
	Meetei_Mayek_Extensions,
	Ethiopic_Extended_A,
	Latin_Extended_E,
	Cherokee_Supplement,
	Meetei_Mayek,
	Hangul_Syllables,
	Hangul_Jamo_Extended_B,
	High_Surrogates,
	High_Private_Use_Surrogates,
	Low_Surrogates,
	Private_Use_Area,
	CJK_Compatibility_Ideographs,
	Alphabetic_Presentation_Forms,
	Arabic_Presentation_Forms_A,
	Variation_Selectors,
	Vertical_Forms,
	Combining_Half_Marks,
	CJK_Compatibility_Forms,
	Small_Form_Variants,
	Arabic_Presentation_Forms_B,
	Halfwidth_and_Fullwidth_Forms,
	Specials,
	Linear_B_Syllabary,
	Linear_B_Ideograms,
	Aegean_Numbers,
	Ancient_Greek_Numbers,
	Ancient_Symbols,
	Phaistos_Disc,
	Lycian,
	Carian,
	Coptic_Epact_Numbers,
	Old_Italic,
	Gothic,
	Old_Permic,
	Ugaritic,
	Old_Persian,
	Deseret,
	Shavian,
	Osmanya,
	Osage,
	Elbasan,
	Caucasian_Albanian,
	Vithkuqi,
	Todhri,
	Linear_A,
	Latin_Extended_F,
	Cypriot_Syllabary,
	Imperial_Aramaic,
	Palmyrene,
	Nabataean,
	Hatran,
	Phoenician,
	Lydian,
	Sidetic,
	Meroitic_Hieroglyphs,
	Meroitic_Cursive,
	Kharoshthi,
	Old_South_Arabian,
	Old_North_Arabian,
	Manichaean,
	Avestan,
	Inscriptional_Parthian,
	Inscriptional_Pahlavi,
	Psalter_Pahlavi,
	Old_Turkic,
	Old_Hungarian,
	Hanifi_Rohingya,
	Garay,
	Rumi_Numeral_Symbols,
	Yezidi,
	Arabic_Extended_C,
	Old_Sogdian,
	Sogdian,
	Old_Uyghur,
	Chorasmian,
	Elymaic,
	Brahmi,
	Kaithi,
	Sora_Sompeng,
	Chakma,
	Mahajani,
	Sharada,
	Sinhala_Archaic_Numbers,
	Khojki,
	Multani,
	Khudawadi,
	Grantha,
	Tulu_Tigalari,
	Newa,
	Tirhuta,
	Siddham,
	Modi,
	Mongolian_Supplement,
	Takri,
	Myanmar_Extended_C,
	Ahom,
	Dogra,
	Warang_Citi,
	Dives_Akuru,
	Nandinagari,
	Zanabazar_Square,
	Soyombo,
	Unified_Canadian_Aboriginal_Syllabics_Extended_A,
	Pau_Cin_Hau,
	Devanagari_Extended_A,
	Sharada_Supplement,
	Sunuwar,
	Bhaiksuki,
	Marchen,
	Masaram_Gondi,
	Gunjala_Gondi,
	Tolong_Siki,
	Makasar,
	Kawi,
	Lisu_Supplement,
	Tamil_Supplement,
	Cuneiform,
	Cuneiform_Numbers_and_Punctuation,
	Early_Dynastic_Cuneiform,
	Cypro_Minoan,
	Egyptian_Hieroglyphs,
	Egyptian_Hieroglyph_Format_Controls,
	Egyptian_Hieroglyphs_Extended_A,
	Anatolian_Hieroglyphs,
	Gurung_Khema,
	Bamum_Supplement,
	Mro,
	Tangsa,
	Bassa_Vah,
	Pahawh_Hmong,
	Kirat_Rai,
	Medefaidrin,
	Beria_Erfe,
	Miao,
	Ideographic_Symbols_and_Punctuation,
	Tangut,
	Tangut_Components,
	Khitan_Small_Script,
	Tangut_Supplement,
	Tangut_Components_Supplement,
	Kana_Extended_B,
	Kana_Supplement,
	Kana_Extended_A,
	Small_Kana_Extension,
	Nushu,
	Duployan,
	Shorthand_Format_Controls,
	Symbols_for_Legacy_Computing_Supplement,
	Miscellaneous_Symbols_Supplement,
	Znamenny_Musical_Notation,
	Byzantine_Musical_Symbols,
	Musical_Symbols,
	Ancient_Greek_Musical_Notation,
	Kaktovik_Numerals,
	Mayan_Numerals,
	Tai_Xuan_Jing_Symbols,
	Counting_Rod_Numerals,
	Mathematical_Alphanumeric_Symbols,
	Sutton_SignWriting,
	Latin_Extended_G,
	Glagolitic_Supplement,
	Cyrillic_Extended_D,
	Nyiakeng_Puachue_Hmong,
	Toto,
	Wancho,
	Nag_Mundari,
	Ol_Onal,
	Tai_Yo,
	Ethiopic_Extended_B,
	Mende_Kikakui,
	Adlam,
	Indic_Siyaq_Numbers,
	Ottoman_Siyaq_Numbers,
	Arabic_Mathematical_Alphabetic_Symbols,
	Mahjong_Tiles,
	Domino_Tiles,
	Playing_Cards,
	Enclosed_Alphanumeric_Supplement,
	Enclosed_Ideographic_Supplement,
	Miscellaneous_Symbols_and_Pictographs,
	Emoticons,
	Ornamental_Dingbats,
	Transport_and_Map_Symbols,
	Alchemical_Symbols,
	Geometric_Shapes_Extended,
	Supplemental_Arrows_C,
	Supplemental_Symbols_and_Pictographs,
	Chess_Symbols,
	Symbols_and_Pictographs_Extended_A,
	Symbols_for_Legacy_Computing,
	CJK_Unified_Ideographs_Extension_B,
	CJK_Unified_Ideographs_Extension_C,
	CJK_Unified_Ideographs_Extension_D,
	CJK_Unified_Ideographs_Extension_E,
	CJK_Unified_Ideographs_Extension_F,
	CJK_Unified_Ideographs_Extension_I,
	CJK_Compatibility_Ideographs_Supplement,
	CJK_Unified_Ideographs_Extension_G,
	CJK_Unified_Ideographs_Extension_H,
	CJK_Unified_Ideographs_Extension_J,
	Tags,
	Variation_Selectors_Supplement,
	Supplementary_Private_Use_Area_A,
	Supplementary_Private_Use_Area_B,
	Error
};

Block scan(const YYCTYPE* start, const YYCTYPE* const limit, Block blk) {
	__attribute__((unused)) const YYCTYPE* YYMARKER;
#define YYCURSOR start
	switch (blk) {
		case Basic_Latin: goto Basic_Latin;
		case Latin_1_Supplement: goto Latin_1_Supplement;
		case Latin_Extended_A: goto Latin_Extended_A;
		case Latin_Extended_B: goto Latin_Extended_B;
		case IPA_Extensions: goto IPA_Extensions;
		case Spacing_Modifier_Letters: goto Spacing_Modifier_Letters;
		case Combining_Diacritical_Marks: goto Combining_Diacritical_Marks;
		case Greek_and_Coptic: goto Greek_and_Coptic;
		case Cyrillic: goto Cyrillic;
		case Cyrillic_Supplement: goto Cyrillic_Supplement;
		case Armenian: goto Armenian;
		case Hebrew: goto Hebrew;
		case Arabic: goto Arabic;
		case Syriac: goto Syriac;
		case Arabic_Supplement: goto Arabic_Supplement;
		case Thaana: goto Thaana;
		case NKo: goto NKo;
		case Samaritan: goto Samaritan;
		case Mandaic: goto Mandaic;
		case Syriac_Supplement: goto Syriac_Supplement;
		case Arabic_Extended_B: goto Arabic_Extended_B;
		case Arabic_Extended_A: goto Arabic_Extended_A;
		case Devanagari: goto Devanagari;
		case Bengali: goto Bengali;
		case Gurmukhi: goto Gurmukhi;
		case Gujarati: goto Gujarati;
		case Oriya: goto Oriya;
		case Tamil: goto Tamil;
		case Telugu: goto Telugu;
		case Kannada: goto Kannada;
		case Malayalam: goto Malayalam;
		case Sinhala: goto Sinhala;
		case Thai: goto Thai;
		case Lao: goto Lao;
		case Tibetan: goto Tibetan;
		case Myanmar: goto Myanmar;
		case Georgian: goto Georgian;
		case Hangul_Jamo: goto Hangul_Jamo;
		case Ethiopic: goto Ethiopic;
		case Ethiopic_Supplement: goto Ethiopic_Supplement;
		case Cherokee: goto Cherokee;
		case Unified_Canadian_Aboriginal_Syllabics: goto Unified_Canadian_Aboriginal_Syllabics;
		case Ogham: goto Ogham;
		case Runic: goto Runic;
		case Tagalog: goto Tagalog;
		case Hanunoo: goto Hanunoo;
		case Buhid: goto Buhid;
		case Tagbanwa: goto Tagbanwa;
		case Khmer: goto Khmer;
		case Mongolian: goto Mongolian;
		case Unified_Canadian_Aboriginal_Syllabics_Extended: goto Unified_Canadian_Aboriginal_Syllabics_Extended;
		case Limbu: goto Limbu;
		case Tai_Le: goto Tai_Le;
		case New_Tai_Lue: goto New_Tai_Lue;
		case Khmer_Symbols: goto Khmer_Symbols;
		case Buginese: goto Buginese;
		case Tai_Tham: goto Tai_Tham;
		case Combining_Diacritical_Marks_Extended: goto Combining_Diacritical_Marks_Extended;
		case Balinese: goto Balinese;
		case Sundanese: goto Sundanese;
		case Batak: goto Batak;
		case Lepcha: goto Lepcha;
		case Ol_Chiki: goto Ol_Chiki;
		case Cyrillic_Extended_C: goto Cyrillic_Extended_C;
		case Georgian_Extended: goto Georgian_Extended;
		case Sundanese_Supplement: goto Sundanese_Supplement;
		case Vedic_Extensions: goto Vedic_Extensions;
		case Phonetic_Extensions: goto Phonetic_Extensions;
		case Phonetic_Extensions_Supplement: goto Phonetic_Extensions_Supplement;
		case Combining_Diacritical_Marks_Supplement: goto Combining_Diacritical_Marks_Supplement;
		case Latin_Extended_Additional: goto Latin_Extended_Additional;
		case Greek_Extended: goto Greek_Extended;
		case General_Punctuation: goto General_Punctuation;
		case Superscripts_and_Subscripts: goto Superscripts_and_Subscripts;
		case Currency_Symbols: goto Currency_Symbols;
		case Combining_Diacritical_Marks_for_Symbols: goto Combining_Diacritical_Marks_for_Symbols;
		case Letterlike_Symbols: goto Letterlike_Symbols;
		case Number_Forms: goto Number_Forms;
		case Arrows: goto Arrows;
		case Mathematical_Operators: goto Mathematical_Operators;
		case Miscellaneous_Technical: goto Miscellaneous_Technical;
		case Control_Pictures: goto Control_Pictures;
		case Optical_Character_Recognition: goto Optical_Character_Recognition;
		case Enclosed_Alphanumerics: goto Enclosed_Alphanumerics;
		case Box_Drawing: goto Box_Drawing;
		case Block_Elements: goto Block_Elements;
		case Geometric_Shapes: goto Geometric_Shapes;
		case Miscellaneous_Symbols: goto Miscellaneous_Symbols;
		case Dingbats: goto Dingbats;
		case Miscellaneous_Mathematical_Symbols_A: goto Miscellaneous_Mathematical_Symbols_A;
		case Supplemental_Arrows_A: goto Supplemental_Arrows_A;
		case Braille_Patterns: goto Braille_Patterns;
		case Supplemental_Arrows_B: goto Supplemental_Arrows_B;
		case Miscellaneous_Mathematical_Symbols_B: goto Miscellaneous_Mathematical_Symbols_B;
		case Supplemental_Mathematical_Operators: goto Supplemental_Mathematical_Operators;
		case Miscellaneous_Symbols_and_Arrows: goto Miscellaneous_Symbols_and_Arrows;
		case Glagolitic: goto Glagolitic;
		case Latin_Extended_C: goto Latin_Extended_C;
		case Coptic: goto Coptic;
		case Georgian_Supplement: goto Georgian_Supplement;
		case Tifinagh: goto Tifinagh;
		case Ethiopic_Extended: goto Ethiopic_Extended;
		case Cyrillic_Extended_A: goto Cyrillic_Extended_A;
		case Supplemental_Punctuation: goto Supplemental_Punctuation;
		case CJK_Radicals_Supplement: goto CJK_Radicals_Supplement;
		case Kangxi_Radicals: goto Kangxi_Radicals;
		case Ideographic_Description_Characters: goto Ideographic_Description_Characters;
		case CJK_Symbols_and_Punctuation: goto CJK_Symbols_and_Punctuation;
		case Hiragana: goto Hiragana;
		case Katakana: goto Katakana;
		case Bopomofo: goto Bopomofo;
		case Hangul_Compatibility_Jamo: goto Hangul_Compatibility_Jamo;
		case Kanbun: goto Kanbun;
		case Bopomofo_Extended: goto Bopomofo_Extended;
		case CJK_Strokes: goto CJK_Strokes;
		case Katakana_Phonetic_Extensions: goto Katakana_Phonetic_Extensions;
		case Enclosed_CJK_Letters_and_Months: goto Enclosed_CJK_Letters_and_Months;
		case CJK_Compatibility: goto CJK_Compatibility;
		case CJK_Unified_Ideographs_Extension_A: goto CJK_Unified_Ideographs_Extension_A;
		case Yijing_Hexagram_Symbols: goto Yijing_Hexagram_Symbols;
		case CJK_Unified_Ideographs: goto CJK_Unified_Ideographs;
		case Yi_Syllables: goto Yi_Syllables;
		case Yi_Radicals: goto Yi_Radicals;
		case Lisu: goto Lisu;
		case Vai: goto Vai;
		case Cyrillic_Extended_B: goto Cyrillic_Extended_B;
		case Bamum: goto Bamum;
		case Modifier_Tone_Letters: goto Modifier_Tone_Letters;
		case Latin_Extended_D: goto Latin_Extended_D;
		case Syloti_Nagri: goto Syloti_Nagri;
		case Common_Indic_Number_Forms: goto Common_Indic_Number_Forms;
		case Phags_pa: goto Phags_pa;
		case Saurashtra: goto Saurashtra;
		case Devanagari_Extended: goto Devanagari_Extended;
		case Kayah_Li: goto Kayah_Li;
		case Rejang: goto Rejang;
		case Hangul_Jamo_Extended_A: goto Hangul_Jamo_Extended_A;
		case Javanese: goto Javanese;
		case Myanmar_Extended_B: goto Myanmar_Extended_B;
		case Cham: goto Cham;
		case Myanmar_Extended_A: goto Myanmar_Extended_A;
		case Tai_Viet: goto Tai_Viet;
		case Meetei_Mayek_Extensions: goto Meetei_Mayek_Extensions;
		case Ethiopic_Extended_A: goto Ethiopic_Extended_A;
		case Latin_Extended_E: goto Latin_Extended_E;
		case Cherokee_Supplement: goto Cherokee_Supplement;
		case Meetei_Mayek: goto Meetei_Mayek;
		case Hangul_Syllables: goto Hangul_Syllables;
		case Hangul_Jamo_Extended_B: goto Hangul_Jamo_Extended_B;
		case High_Surrogates: goto High_Surrogates;
		case High_Private_Use_Surrogates: goto High_Private_Use_Surrogates;
		case Low_Surrogates: goto Low_Surrogates;
		case Private_Use_Area: goto Private_Use_Area;
		case CJK_Compatibility_Ideographs: goto CJK_Compatibility_Ideographs;
		case Alphabetic_Presentation_Forms: goto Alphabetic_Presentation_Forms;
		case Arabic_Presentation_Forms_A: goto Arabic_Presentation_Forms_A;
		case Variation_Selectors: goto Variation_Selectors;
		case Vertical_Forms: goto Vertical_Forms;
		case Combining_Half_Marks: goto Combining_Half_Marks;
		case CJK_Compatibility_Forms: goto CJK_Compatibility_Forms;
		case Small_Form_Variants: goto Small_Form_Variants;
		case Arabic_Presentation_Forms_B: goto Arabic_Presentation_Forms_B;
		case Halfwidth_and_Fullwidth_Forms: goto Halfwidth_and_Fullwidth_Forms;
		case Specials: goto Specials;
		case Linear_B_Syllabary: goto Linear_B_Syllabary;
		case Linear_B_Ideograms: goto Linear_B_Ideograms;
		case Aegean_Numbers: goto Aegean_Numbers;
		case Ancient_Greek_Numbers: goto Ancient_Greek_Numbers;
		case Ancient_Symbols: goto Ancient_Symbols;
		case Phaistos_Disc: goto Phaistos_Disc;
		case Lycian: goto Lycian;
		case Carian: goto Carian;
		case Coptic_Epact_Numbers: goto Coptic_Epact_Numbers;
		case Old_Italic: goto Old_Italic;
		case Gothic: goto Gothic;
		case Old_Permic: goto Old_Permic;
		case Ugaritic: goto Ugaritic;
		case Old_Persian: goto Old_Persian;
		case Deseret: goto Deseret;
		case Shavian: goto Shavian;
		case Osmanya: goto Osmanya;
		case Osage: goto Osage;
		case Elbasan: goto Elbasan;
		case Caucasian_Albanian: goto Caucasian_Albanian;
		case Vithkuqi: goto Vithkuqi;
		case Todhri: goto Todhri;
		case Linear_A: goto Linear_A;
		case Latin_Extended_F: goto Latin_Extended_F;
		case Cypriot_Syllabary: goto Cypriot_Syllabary;
		case Imperial_Aramaic: goto Imperial_Aramaic;
		case Palmyrene: goto Palmyrene;
		case Nabataean: goto Nabataean;
		case Hatran: goto Hatran;
		case Phoenician: goto Phoenician;
		case Lydian: goto Lydian;
		case Sidetic: goto Sidetic;
		case Meroitic_Hieroglyphs: goto Meroitic_Hieroglyphs;
		case Meroitic_Cursive: goto Meroitic_Cursive;
		case Kharoshthi: goto Kharoshthi;
		case Old_South_Arabian: goto Old_South_Arabian;
		case Old_North_Arabian: goto Old_North_Arabian;
		case Manichaean: goto Manichaean;
		case Avestan: goto Avestan;
		case Inscriptional_Parthian: goto Inscriptional_Parthian;
		case Inscriptional_Pahlavi: goto Inscriptional_Pahlavi;
		case Psalter_Pahlavi: goto Psalter_Pahlavi;
		case Old_Turkic: goto Old_Turkic;
		case Old_Hungarian: goto Old_Hungarian;
		case Hanifi_Rohingya: goto Hanifi_Rohingya;
		case Garay: goto Garay;
		case Rumi_Numeral_Symbols: goto Rumi_Numeral_Symbols;
		case Yezidi: goto Yezidi;
		case Arabic_Extended_C: goto Arabic_Extended_C;
		case Old_Sogdian: goto Old_Sogdian;
		case Sogdian: goto Sogdian;
		case Old_Uyghur: goto Old_Uyghur;
		case Chorasmian: goto Chorasmian;
		case Elymaic: goto Elymaic;
		case Brahmi: goto Brahmi;
		case Kaithi: goto Kaithi;
		case Sora_Sompeng: goto Sora_Sompeng;
		case Chakma: goto Chakma;
		case Mahajani: goto Mahajani;
		case Sharada: goto Sharada;
		case Sinhala_Archaic_Numbers: goto Sinhala_Archaic_Numbers;
		case Khojki: goto Khojki;
		case Multani: goto Multani;
		case Khudawadi: goto Khudawadi;
		case Grantha: goto Grantha;
		case Tulu_Tigalari: goto Tulu_Tigalari;
		case Newa: goto Newa;
		case Tirhuta: goto Tirhuta;
		case Siddham: goto Siddham;
		case Modi: goto Modi;
		case Mongolian_Supplement: goto Mongolian_Supplement;
		case Takri: goto Takri;
		case Myanmar_Extended_C: goto Myanmar_Extended_C;
		case Ahom: goto Ahom;
		case Dogra: goto Dogra;
		case Warang_Citi: goto Warang_Citi;
		case Dives_Akuru: goto Dives_Akuru;
		case Nandinagari: goto Nandinagari;
		case Zanabazar_Square: goto Zanabazar_Square;
		case Soyombo: goto Soyombo;
		case Unified_Canadian_Aboriginal_Syllabics_Extended_A: goto Unified_Canadian_Aboriginal_Syllabics_Extended_A;
		case Pau_Cin_Hau: goto Pau_Cin_Hau;
		case Devanagari_Extended_A: goto Devanagari_Extended_A;
		case Sharada_Supplement: goto Sharada_Supplement;
		case Sunuwar: goto Sunuwar;
		case Bhaiksuki: goto Bhaiksuki;
		case Marchen: goto Marchen;
		case Masaram_Gondi: goto Masaram_Gondi;
		case Gunjala_Gondi: goto Gunjala_Gondi;
		case Tolong_Siki: goto Tolong_Siki;
		case Makasar: goto Makasar;
		case Kawi: goto Kawi;
		case Lisu_Supplement: goto Lisu_Supplement;
		case Tamil_Supplement: goto Tamil_Supplement;
		case Cuneiform: goto Cuneiform;
		case Cuneiform_Numbers_and_Punctuation: goto Cuneiform_Numbers_and_Punctuation;
		case Early_Dynastic_Cuneiform: goto Early_Dynastic_Cuneiform;
		case Cypro_Minoan: goto Cypro_Minoan;
		case Egyptian_Hieroglyphs: goto Egyptian_Hieroglyphs;
		case Egyptian_Hieroglyph_Format_Controls: goto Egyptian_Hieroglyph_Format_Controls;
		case Egyptian_Hieroglyphs_Extended_A: goto Egyptian_Hieroglyphs_Extended_A;
		case Anatolian_Hieroglyphs: goto Anatolian_Hieroglyphs;
		case Gurung_Khema: goto Gurung_Khema;
		case Bamum_Supplement: goto Bamum_Supplement;
		case Mro: goto Mro;
		case Tangsa: goto Tangsa;
		case Bassa_Vah: goto Bassa_Vah;
		case Pahawh_Hmong: goto Pahawh_Hmong;
		case Kirat_Rai: goto Kirat_Rai;
		case Medefaidrin: goto Medefaidrin;
		case Beria_Erfe: goto Beria_Erfe;
		case Miao: goto Miao;
		case Ideographic_Symbols_and_Punctuation: goto Ideographic_Symbols_and_Punctuation;
		case Tangut: goto Tangut;
		case Tangut_Components: goto Tangut_Components;
		case Khitan_Small_Script: goto Khitan_Small_Script;
		case Tangut_Supplement: goto Tangut_Supplement;
		case Tangut_Components_Supplement: goto Tangut_Components_Supplement;
		case Kana_Extended_B: goto Kana_Extended_B;
		case Kana_Supplement: goto Kana_Supplement;
		case Kana_Extended_A: goto Kana_Extended_A;
		case Small_Kana_Extension: goto Small_Kana_Extension;
		case Nushu: goto Nushu;
		case Duployan: goto Duployan;
		case Shorthand_Format_Controls: goto Shorthand_Format_Controls;
		case Symbols_for_Legacy_Computing_Supplement: goto Symbols_for_Legacy_Computing_Supplement;
		case Miscellaneous_Symbols_Supplement: goto Miscellaneous_Symbols_Supplement;
		case Znamenny_Musical_Notation: goto Znamenny_Musical_Notation;
		case Byzantine_Musical_Symbols: goto Byzantine_Musical_Symbols;
		case Musical_Symbols: goto Musical_Symbols;
		case Ancient_Greek_Musical_Notation: goto Ancient_Greek_Musical_Notation;
		case Kaktovik_Numerals: goto Kaktovik_Numerals;
		case Mayan_Numerals: goto Mayan_Numerals;
		case Tai_Xuan_Jing_Symbols: goto Tai_Xuan_Jing_Symbols;
		case Counting_Rod_Numerals: goto Counting_Rod_Numerals;
		case Mathematical_Alphanumeric_Symbols: goto Mathematical_Alphanumeric_Symbols;
		case Sutton_SignWriting: goto Sutton_SignWriting;
		case Latin_Extended_G: goto Latin_Extended_G;
		case Glagolitic_Supplement: goto Glagolitic_Supplement;
		case Cyrillic_Extended_D: goto Cyrillic_Extended_D;
		case Nyiakeng_Puachue_Hmong: goto Nyiakeng_Puachue_Hmong;
		case Toto: goto Toto;
		case Wancho: goto Wancho;
		case Nag_Mundari: goto Nag_Mundari;
		case Ol_Onal: goto Ol_Onal;
		case Tai_Yo: goto Tai_Yo;
		case Ethiopic_Extended_B: goto Ethiopic_Extended_B;
		case Mende_Kikakui: goto Mende_Kikakui;
		case Adlam: goto Adlam;
		case Indic_Siyaq_Numbers: goto Indic_Siyaq_Numbers;
		case Ottoman_Siyaq_Numbers: goto Ottoman_Siyaq_Numbers;
		case Arabic_Mathematical_Alphabetic_Symbols: goto Arabic_Mathematical_Alphabetic_Symbols;
		case Mahjong_Tiles: goto Mahjong_Tiles;
		case Domino_Tiles: goto Domino_Tiles;
		case Playing_Cards: goto Playing_Cards;
		case Enclosed_Alphanumeric_Supplement: goto Enclosed_Alphanumeric_Supplement;
		case Enclosed_Ideographic_Supplement: goto Enclosed_Ideographic_Supplement;
		case Miscellaneous_Symbols_and_Pictographs: goto Miscellaneous_Symbols_and_Pictographs;
		case Emoticons: goto Emoticons;
		case Ornamental_Dingbats: goto Ornamental_Dingbats;
		case Transport_and_Map_Symbols: goto Transport_and_Map_Symbols;
		case Alchemical_Symbols: goto Alchemical_Symbols;
		case Geometric_Shapes_Extended: goto Geometric_Shapes_Extended;
		case Supplemental_Arrows_C: goto Supplemental_Arrows_C;
		case Supplemental_Symbols_and_Pictographs: goto Supplemental_Symbols_and_Pictographs;
		case Chess_Symbols: goto Chess_Symbols;
		case Symbols_and_Pictographs_Extended_A: goto Symbols_and_Pictographs_Extended_A;
		case Symbols_for_Legacy_Computing: goto Symbols_for_Legacy_Computing;
		case CJK_Unified_Ideographs_Extension_B: goto CJK_Unified_Ideographs_Extension_B;
		case CJK_Unified_Ideographs_Extension_C: goto CJK_Unified_Ideographs_Extension_C;
		case CJK_Unified_Ideographs_Extension_D: goto CJK_Unified_Ideographs_Extension_D;
		case CJK_Unified_Ideographs_Extension_E: goto CJK_Unified_Ideographs_Extension_E;
		case CJK_Unified_Ideographs_Extension_F: goto CJK_Unified_Ideographs_Extension_F;
		case CJK_Unified_Ideographs_Extension_I: goto CJK_Unified_Ideographs_Extension_I;
		case CJK_Compatibility_Ideographs_Supplement: goto CJK_Compatibility_Ideographs_Supplement;
		case CJK_Unified_Ideographs_Extension_G: goto CJK_Unified_Ideographs_Extension_G;
		case CJK_Unified_Ideographs_Extension_H: goto CJK_Unified_Ideographs_Extension_H;
		case CJK_Unified_Ideographs_Extension_J: goto CJK_Unified_Ideographs_Extension_J;
		case Tags: goto Tags;
		case Variation_Selectors_Supplement: goto Variation_Selectors_Supplement;
		case Supplementary_Private_Use_Area_A: goto Supplementary_Private_Use_Area_A;
		case Supplementary_Private_Use_Area_B: goto Supplementary_Private_Use_Area_B;
		default: return Error;
	}
#line 1056 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Basic_Latin:
	
#line 716 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych >= 0x0080) goto yy1;
	++YYCURSOR;
#line 1060 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Basic_Latin; }
#line 724 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy1:
	++YYCURSOR;
#line 1061 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Basic_Latin; else return Error; }
#line 729 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1062 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Latin_1_Supplement:
	
#line 735 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x007F) goto yy3;
	if (yych <= 0x00FF) goto yy4;
yy3:
	++YYCURSOR;
#line 1067 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Latin_1_Supplement; else return Error; }
#line 745 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy4:
	++YYCURSOR;
#line 1066 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Latin_1_Supplement; }
#line 750 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1068 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Latin_Extended_A:
	
#line 756 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00FF) goto yy6;
	if (yych <= 0x017F) goto yy7;
yy6:
	++YYCURSOR;
#line 1073 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Latin_Extended_A; else return Error; }
#line 766 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy7:
	++YYCURSOR;
#line 1072 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Latin_Extended_A; }
#line 771 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1074 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Latin_Extended_B:
	
#line 777 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x017F) goto yy9;
	if (yych <= 0x024F) goto yy10;
yy9:
	++YYCURSOR;
#line 1079 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Latin_Extended_B; else return Error; }
#line 787 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy10:
	++YYCURSOR;
#line 1078 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Latin_Extended_B; }
#line 792 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1080 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

IPA_Extensions:
	
#line 798 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x024F) goto yy12;
	if (yych <= 0x02AF) goto yy13;
yy12:
	++YYCURSOR;
#line 1085 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return IPA_Extensions; else return Error; }
#line 808 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy13:
	++YYCURSOR;
#line 1084 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto IPA_Extensions; }
#line 813 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1086 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Spacing_Modifier_Letters:
	
#line 819 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x02AF) goto yy15;
	if (yych <= 0x02FF) goto yy16;
yy15:
	++YYCURSOR;
#line 1091 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Spacing_Modifier_Letters; else return Error; }
#line 829 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy16:
	++YYCURSOR;
#line 1090 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Spacing_Modifier_Letters; }
#line 834 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1092 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Combining_Diacritical_Marks:
	
#line 840 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x02FF) goto yy18;
	if (yych <= 0x036F) goto yy19;
yy18:
	++YYCURSOR;
#line 1097 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Combining_Diacritical_Marks; else return Error; }
#line 850 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy19:
	++YYCURSOR;
#line 1096 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Combining_Diacritical_Marks; }
#line 855 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1098 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Greek_and_Coptic:
	
#line 861 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x036F) goto yy21;
	if (yych <= 0x03FF) goto yy22;
yy21:
	++YYCURSOR;
#line 1103 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Greek_and_Coptic; else return Error; }
#line 871 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy22:
	++YYCURSOR;
#line 1102 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Greek_and_Coptic; }
#line 876 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1104 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Cyrillic:
	
#line 882 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x03FF) goto yy24;
	if (yych <= 0x04FF) goto yy25;
yy24:
	++YYCURSOR;
#line 1109 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cyrillic; else return Error; }
#line 892 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy25:
	++YYCURSOR;
#line 1108 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Cyrillic; }
#line 897 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1110 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Cyrillic_Supplement:
	
#line 903 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x04FF) goto yy27;
	if (yych <= 0x052F) goto yy28;
yy27:
	++YYCURSOR;
#line 1115 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cyrillic_Supplement; else return Error; }
#line 913 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy28:
	++YYCURSOR;
#line 1114 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Cyrillic_Supplement; }
#line 918 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1116 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Armenian:
	
#line 924 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x052F) goto yy30;
	if (yych <= 0x058F) goto yy31;
yy30:
	++YYCURSOR;
#line 1121 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Armenian; else return Error; }
#line 934 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy31:
	++YYCURSOR;
#line 1120 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Armenian; }
#line 939 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1122 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Hebrew:
	
#line 945 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x058F) goto yy33;
	if (yych <= 0x05FF) goto yy34;
yy33:
	++YYCURSOR;
#line 1127 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Hebrew; else return Error; }
#line 955 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy34:
	++YYCURSOR;
#line 1126 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Hebrew; }
#line 960 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1128 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Arabic:
	
#line 966 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x05FF) goto yy36;
	if (yych <= 0x06FF) goto yy37;
yy36:
	++YYCURSOR;
#line 1133 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Arabic; else return Error; }
#line 976 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy37:
	++YYCURSOR;
#line 1132 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Arabic; }
#line 981 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1134 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Syriac:
	
#line 987 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x06FF) goto yy39;
	if (yych <= 0x074F) goto yy40;
yy39:
	++YYCURSOR;
#line 1139 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Syriac; else return Error; }
#line 997 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy40:
	++YYCURSOR;
#line 1138 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Syriac; }
#line 1002 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1140 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Arabic_Supplement:
	
#line 1008 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x074F) goto yy42;
	if (yych <= 0x077F) goto yy43;
yy42:
	++YYCURSOR;
#line 1145 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Arabic_Supplement; else return Error; }
#line 1018 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy43:
	++YYCURSOR;
#line 1144 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Arabic_Supplement; }
#line 1023 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1146 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Thaana:
	
#line 1029 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x077F) goto yy45;
	if (yych <= 0x07BF) goto yy46;
yy45:
	++YYCURSOR;
#line 1151 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Thaana; else return Error; }
#line 1039 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy46:
	++YYCURSOR;
#line 1150 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Thaana; }
#line 1044 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1152 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

NKo:
	
#line 1050 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x07BF) goto yy48;
	if (yych <= 0x07FF) goto yy49;
yy48:
	++YYCURSOR;
#line 1157 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return NKo; else return Error; }
#line 1060 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy49:
	++YYCURSOR;
#line 1156 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto NKo; }
#line 1065 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1158 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Samaritan:
	
#line 1071 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x07FF) goto yy51;
	if (yych <= 0x083F) goto yy52;
yy51:
	++YYCURSOR;
#line 1163 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Samaritan; else return Error; }
#line 1081 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy52:
	++YYCURSOR;
#line 1162 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Samaritan; }
#line 1086 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1164 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Mandaic:
	
#line 1092 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x083F) goto yy54;
	if (yych <= 0x085F) goto yy55;
yy54:
	++YYCURSOR;
#line 1169 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Mandaic; else return Error; }
#line 1102 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy55:
	++YYCURSOR;
#line 1168 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Mandaic; }
#line 1107 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1170 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Syriac_Supplement:
	
#line 1113 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x085F) goto yy57;
	if (yych <= 0x086F) goto yy58;
yy57:
	++YYCURSOR;
#line 1175 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Syriac_Supplement; else return Error; }
#line 1123 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy58:
	++YYCURSOR;
#line 1174 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Syriac_Supplement; }
#line 1128 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1176 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Arabic_Extended_B:
	
#line 1134 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x086F) goto yy60;
	if (yych <= 0x089F) goto yy61;
yy60:
	++YYCURSOR;
#line 1181 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Arabic_Extended_B; else return Error; }
#line 1144 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy61:
	++YYCURSOR;
#line 1180 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Arabic_Extended_B; }
#line 1149 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1182 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Arabic_Extended_A:
	
#line 1155 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x089F) goto yy63;
	if (yych <= 0x08FF) goto yy64;
yy63:
	++YYCURSOR;
#line 1187 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Arabic_Extended_A; else return Error; }
#line 1165 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy64:
	++YYCURSOR;
#line 1186 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Arabic_Extended_A; }
#line 1170 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1188 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Devanagari:
	
#line 1176 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x08FF) goto yy66;
	if (yych <= 0x097F) goto yy67;
yy66:
	++YYCURSOR;
#line 1193 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Devanagari; else return Error; }
#line 1186 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy67:
	++YYCURSOR;
#line 1192 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Devanagari; }
#line 1191 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1194 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Bengali:
	
#line 1197 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x097F) goto yy69;
	if (yych <= 0x09FF) goto yy70;
yy69:
	++YYCURSOR;
#line 1199 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Bengali; else return Error; }
#line 1207 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy70:
	++YYCURSOR;
#line 1198 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Bengali; }
#line 1212 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1200 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Gurmukhi:
	
#line 1218 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x09FF) goto yy72;
	if (yych <= 0x0A7F) goto yy73;
yy72:
	++YYCURSOR;
#line 1205 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Gurmukhi; else return Error; }
#line 1228 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy73:
	++YYCURSOR;
#line 1204 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Gurmukhi; }
#line 1233 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1206 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Gujarati:
	
#line 1239 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0A7F) goto yy75;
	if (yych <= 0x0AFF) goto yy76;
yy75:
	++YYCURSOR;
#line 1211 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Gujarati; else return Error; }
#line 1249 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy76:
	++YYCURSOR;
#line 1210 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Gujarati; }
#line 1254 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1212 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Oriya:
	
#line 1260 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0AFF) goto yy78;
	if (yych <= 0x0B7F) goto yy79;
yy78:
	++YYCURSOR;
#line 1217 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Oriya; else return Error; }
#line 1270 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy79:
	++YYCURSOR;
#line 1216 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Oriya; }
#line 1275 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1218 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Tamil:
	
#line 1281 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0B7F) goto yy81;
	if (yych <= 0x0BFF) goto yy82;
yy81:
	++YYCURSOR;
#line 1223 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tamil; else return Error; }
#line 1291 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy82:
	++YYCURSOR;
#line 1222 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Tamil; }
#line 1296 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1224 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Telugu:
	
#line 1302 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0BFF) goto yy84;
	if (yych <= 0x0C7F) goto yy85;
yy84:
	++YYCURSOR;
#line 1229 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Telugu; else return Error; }
#line 1312 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy85:
	++YYCURSOR;
#line 1228 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Telugu; }
#line 1317 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1230 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Kannada:
	
#line 1323 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0C7F) goto yy87;
	if (yych <= 0x0CFF) goto yy88;
yy87:
	++YYCURSOR;
#line 1235 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kannada; else return Error; }
#line 1333 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy88:
	++YYCURSOR;
#line 1234 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Kannada; }
#line 1338 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1236 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Malayalam:
	
#line 1344 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0CFF) goto yy90;
	if (yych <= 0x0D7F) goto yy91;
yy90:
	++YYCURSOR;
#line 1241 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Malayalam; else return Error; }
#line 1354 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy91:
	++YYCURSOR;
#line 1240 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Malayalam; }
#line 1359 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1242 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Sinhala:
	
#line 1365 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0D7F) goto yy93;
	if (yych <= 0x0DFF) goto yy94;
yy93:
	++YYCURSOR;
#line 1247 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Sinhala; else return Error; }
#line 1375 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy94:
	++YYCURSOR;
#line 1246 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Sinhala; }
#line 1380 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1248 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Thai:
	
#line 1386 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0DFF) goto yy96;
	if (yych <= 0x0E7F) goto yy97;
yy96:
	++YYCURSOR;
#line 1253 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Thai; else return Error; }
#line 1396 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy97:
	++YYCURSOR;
#line 1252 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Thai; }
#line 1401 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1254 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Lao:
	
#line 1407 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0E7F) goto yy99;
	if (yych <= 0x0EFF) goto yy100;
yy99:
	++YYCURSOR;
#line 1259 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Lao; else return Error; }
#line 1417 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy100:
	++YYCURSOR;
#line 1258 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Lao; }
#line 1422 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1260 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Tibetan:
	
#line 1428 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0EFF) goto yy102;
	if (yych <= 0x0FFF) goto yy103;
yy102:
	++YYCURSOR;
#line 1265 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tibetan; else return Error; }
#line 1438 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy103:
	++YYCURSOR;
#line 1264 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Tibetan; }
#line 1443 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1266 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Myanmar:
	
#line 1449 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0FFF) goto yy105;
	if (yych <= 0x109F) goto yy106;
yy105:
	++YYCURSOR;
#line 1271 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Myanmar; else return Error; }
#line 1459 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy106:
	++YYCURSOR;
#line 1270 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Myanmar; }
#line 1464 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1272 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Georgian:
	
#line 1470 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x109F) goto yy108;
	if (yych <= 0x10FF) goto yy109;
yy108:
	++YYCURSOR;
#line 1277 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Georgian; else return Error; }
#line 1480 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy109:
	++YYCURSOR;
#line 1276 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Georgian; }
#line 1485 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1278 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Hangul_Jamo:
	
#line 1491 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x10FF) goto yy111;
	if (yych <= 0x11FF) goto yy112;
yy111:
	++YYCURSOR;
#line 1283 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Hangul_Jamo; else return Error; }
#line 1501 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy112:
	++YYCURSOR;
#line 1282 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Hangul_Jamo; }
#line 1506 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1284 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Ethiopic:
	
#line 1512 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x11FF) goto yy114;
	if (yych <= 0x137F) goto yy115;
yy114:
	++YYCURSOR;
#line 1289 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ethiopic; else return Error; }
#line 1522 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy115:
	++YYCURSOR;
#line 1288 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Ethiopic; }
#line 1527 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1290 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Ethiopic_Supplement:
	
#line 1533 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x137F) goto yy117;
	if (yych <= 0x139F) goto yy118;
yy117:
	++YYCURSOR;
#line 1295 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ethiopic_Supplement; else return Error; }
#line 1543 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy118:
	++YYCURSOR;
#line 1294 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Ethiopic_Supplement; }
#line 1548 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1296 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Cherokee:
	
#line 1554 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x139F) goto yy120;
	if (yych <= 0x13FF) goto yy121;
yy120:
	++YYCURSOR;
#line 1301 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cherokee; else return Error; }
#line 1564 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy121:
	++YYCURSOR;
#line 1300 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Cherokee; }
#line 1569 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1302 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Unified_Canadian_Aboriginal_Syllabics:
	
#line 1575 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x13FF) goto yy123;
	if (yych <= 0x167F) goto yy124;
yy123:
	++YYCURSOR;
#line 1307 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Unified_Canadian_Aboriginal_Syllabics; else return Error; }
#line 1585 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy124:
	++YYCURSOR;
#line 1306 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Unified_Canadian_Aboriginal_Syllabics; }
#line 1590 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1308 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Ogham:
	
#line 1596 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x167F) goto yy126;
	if (yych <= 0x169F) goto yy127;
yy126:
	++YYCURSOR;
#line 1313 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ogham; else return Error; }
#line 1606 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy127:
	++YYCURSOR;
#line 1312 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Ogham; }
#line 1611 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1314 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Runic:
	
#line 1617 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x169F) goto yy129;
	if (yych <= 0x16FF) goto yy130;
yy129:
	++YYCURSOR;
#line 1319 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Runic; else return Error; }
#line 1627 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy130:
	++YYCURSOR;
#line 1318 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Runic; }
#line 1632 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1320 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Tagalog:
	
#line 1638 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x16FF) goto yy132;
	if (yych <= 0x171F) goto yy133;
yy132:
	++YYCURSOR;
#line 1325 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tagalog; else return Error; }
#line 1648 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy133:
	++YYCURSOR;
#line 1324 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Tagalog; }
#line 1653 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1326 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Hanunoo:
	
#line 1659 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x171F) goto yy135;
	if (yych <= 0x173F) goto yy136;
yy135:
	++YYCURSOR;
#line 1331 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Hanunoo; else return Error; }
#line 1669 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy136:
	++YYCURSOR;
#line 1330 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Hanunoo; }
#line 1674 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1332 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Buhid:
	
#line 1680 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x173F) goto yy138;
	if (yych <= 0x175F) goto yy139;
yy138:
	++YYCURSOR;
#line 1337 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Buhid; else return Error; }
#line 1690 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy139:
	++YYCURSOR;
#line 1336 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Buhid; }
#line 1695 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1338 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Tagbanwa:
	
#line 1701 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x175F) goto yy141;
	if (yych <= 0x177F) goto yy142;
yy141:
	++YYCURSOR;
#line 1343 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tagbanwa; else return Error; }
#line 1711 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy142:
	++YYCURSOR;
#line 1342 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Tagbanwa; }
#line 1716 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1344 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Khmer:
	
#line 1722 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x177F) goto yy144;
	if (yych <= 0x17FF) goto yy145;
yy144:
	++YYCURSOR;
#line 1349 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Khmer; else return Error; }
#line 1732 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy145:
	++YYCURSOR;
#line 1348 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Khmer; }
#line 1737 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1350 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Mongolian:
	
#line 1743 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x17FF) goto yy147;
	if (yych <= 0x18AF) goto yy148;
yy147:
	++YYCURSOR;
#line 1355 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Mongolian; else return Error; }
#line 1753 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy148:
	++YYCURSOR;
#line 1354 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Mongolian; }
#line 1758 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1356 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Unified_Canadian_Aboriginal_Syllabics_Extended:
	
#line 1764 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x18AF) goto yy150;
	if (yych <= 0x18FF) goto yy151;
yy150:
	++YYCURSOR;
#line 1361 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Unified_Canadian_Aboriginal_Syllabics_Extended; else return Error; }
#line 1774 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy151:
	++YYCURSOR;
#line 1360 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Unified_Canadian_Aboriginal_Syllabics_Extended; }
#line 1779 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1362 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Limbu:
	
#line 1785 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x18FF) goto yy153;
	if (yych <= 0x194F) goto yy154;
yy153:
	++YYCURSOR;
#line 1367 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Limbu; else return Error; }
#line 1795 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy154:
	++YYCURSOR;
#line 1366 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Limbu; }
#line 1800 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1368 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Tai_Le:
	
#line 1806 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x194F) goto yy156;
	if (yych <= 0x197F) goto yy157;
yy156:
	++YYCURSOR;
#line 1373 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tai_Le; else return Error; }
#line 1816 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy157:
	++YYCURSOR;
#line 1372 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Tai_Le; }
#line 1821 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1374 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

New_Tai_Lue:
	
#line 1827 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x197F) goto yy159;
	if (yych <= 0x19DF) goto yy160;
yy159:
	++YYCURSOR;
#line 1379 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return New_Tai_Lue; else return Error; }
#line 1837 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy160:
	++YYCURSOR;
#line 1378 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto New_Tai_Lue; }
#line 1842 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1380 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Khmer_Symbols:
	
#line 1848 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x19DF) goto yy162;
	if (yych <= 0x19FF) goto yy163;
yy162:
	++YYCURSOR;
#line 1385 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Khmer_Symbols; else return Error; }
#line 1858 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy163:
	++YYCURSOR;
#line 1384 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Khmer_Symbols; }
#line 1863 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1386 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Buginese:
	
#line 1869 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x19FF) goto yy165;
	if (yych <= 0x1A1F) goto yy166;
yy165:
	++YYCURSOR;
#line 1391 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Buginese; else return Error; }
#line 1879 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy166:
	++YYCURSOR;
#line 1390 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Buginese; }
#line 1884 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1392 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Tai_Tham:
	
#line 1890 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x1A1F) goto yy168;
	if (yych <= 0x1AAF) goto yy169;
yy168:
	++YYCURSOR;
#line 1397 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tai_Tham; else return Error; }
#line 1900 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy169:
	++YYCURSOR;
#line 1396 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Tai_Tham; }
#line 1905 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1398 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Combining_Diacritical_Marks_Extended:
	
#line 1911 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x1AAF) goto yy171;
	if (yych <= 0x1AFF) goto yy172;
yy171:
	++YYCURSOR;
#line 1403 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Combining_Diacritical_Marks_Extended; else return Error; }
#line 1921 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy172:
	++YYCURSOR;
#line 1402 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Combining_Diacritical_Marks_Extended; }
#line 1926 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1404 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Balinese:
	
#line 1932 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x1AFF) goto yy174;
	if (yych <= 0x1B7F) goto yy175;
yy174:
	++YYCURSOR;
#line 1409 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Balinese; else return Error; }
#line 1942 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy175:
	++YYCURSOR;
#line 1408 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Balinese; }
#line 1947 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1410 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Sundanese:
	
#line 1953 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x1B7F) goto yy177;
	if (yych <= 0x1BBF) goto yy178;
yy177:
	++YYCURSOR;
#line 1415 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Sundanese; else return Error; }
#line 1963 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy178:
	++YYCURSOR;
#line 1414 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Sundanese; }
#line 1968 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1416 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Batak:
	
#line 1974 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x1BBF) goto yy180;
	if (yych <= 0x1BFF) goto yy181;
yy180:
	++YYCURSOR;
#line 1421 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Batak; else return Error; }
#line 1984 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy181:
	++YYCURSOR;
#line 1420 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Batak; }
#line 1989 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1422 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Lepcha:
	
#line 1995 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x1BFF) goto yy183;
	if (yych <= 0x1C4F) goto yy184;
yy183:
	++YYCURSOR;
#line 1427 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Lepcha; else return Error; }
#line 2005 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy184:
	++YYCURSOR;
#line 1426 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Lepcha; }
#line 2010 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1428 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Ol_Chiki:
	
#line 2016 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x1C4F) goto yy186;
	if (yych <= 0x1C7F) goto yy187;
yy186:
	++YYCURSOR;
#line 1433 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ol_Chiki; else return Error; }
#line 2026 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy187:
	++YYCURSOR;
#line 1432 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Ol_Chiki; }
#line 2031 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1434 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Cyrillic_Extended_C:
	
#line 2037 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x1C7F) goto yy189;
	if (yych <= 0x1C8F) goto yy190;
yy189:
	++YYCURSOR;
#line 1439 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cyrillic_Extended_C; else return Error; }
#line 2047 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy190:
	++YYCURSOR;
#line 1438 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Cyrillic_Extended_C; }
#line 2052 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1440 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Georgian_Extended:
	
#line 2058 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x1C8F) goto yy192;
	if (yych <= 0x1CBF) goto yy193;
yy192:
	++YYCURSOR;
#line 1445 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Georgian_Extended; else return Error; }
#line 2068 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy193:
	++YYCURSOR;
#line 1444 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Georgian_Extended; }
#line 2073 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1446 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Sundanese_Supplement:
	
#line 2079 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x1CBF) goto yy195;
	if (yych <= 0x1CCF) goto yy196;
yy195:
	++YYCURSOR;
#line 1451 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Sundanese_Supplement; else return Error; }
#line 2089 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy196:
	++YYCURSOR;
#line 1450 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Sundanese_Supplement; }
#line 2094 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1452 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Vedic_Extensions:
	
#line 2100 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x1CCF) goto yy198;
	if (yych <= 0x1CFF) goto yy199;
yy198:
	++YYCURSOR;
#line 1457 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Vedic_Extensions; else return Error; }
#line 2110 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy199:
	++YYCURSOR;
#line 1456 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Vedic_Extensions; }
#line 2115 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1458 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Phonetic_Extensions:
	
#line 2121 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x1CFF) goto yy201;
	if (yych <= 0x1D7F) goto yy202;
yy201:
	++YYCURSOR;
#line 1463 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Phonetic_Extensions; else return Error; }
#line 2131 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy202:
	++YYCURSOR;
#line 1462 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Phonetic_Extensions; }
#line 2136 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1464 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Phonetic_Extensions_Supplement:
	
#line 2142 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x1D7F) goto yy204;
	if (yych <= 0x1DBF) goto yy205;
yy204:
	++YYCURSOR;
#line 1469 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Phonetic_Extensions_Supplement; else return Error; }
#line 2152 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy205:
	++YYCURSOR;
#line 1468 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Phonetic_Extensions_Supplement; }
#line 2157 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1470 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Combining_Diacritical_Marks_Supplement:
	
#line 2163 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x1DBF) goto yy207;
	if (yych <= 0x1DFF) goto yy208;
yy207:
	++YYCURSOR;
#line 1475 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Combining_Diacritical_Marks_Supplement; else return Error; }
#line 2173 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy208:
	++YYCURSOR;
#line 1474 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Combining_Diacritical_Marks_Supplement; }
#line 2178 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1476 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Latin_Extended_Additional:
	
#line 2184 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x1DFF) goto yy210;
	if (yych <= 0x1EFF) goto yy211;
yy210:
	++YYCURSOR;
#line 1481 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Latin_Extended_Additional; else return Error; }
#line 2194 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy211:
	++YYCURSOR;
#line 1480 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Latin_Extended_Additional; }
#line 2199 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1482 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Greek_Extended:
	
#line 2205 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x1EFF) goto yy213;
	if (yych <= 0x1FFF) goto yy214;
yy213:
	++YYCURSOR;
#line 1487 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Greek_Extended; else return Error; }
#line 2215 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy214:
	++YYCURSOR;
#line 1486 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Greek_Extended; }
#line 2220 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1488 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

General_Punctuation:
	
#line 2226 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x1FFF) goto yy216;
	if (yych <= 0x206F) goto yy217;
yy216:
	++YYCURSOR;
#line 1493 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return General_Punctuation; else return Error; }
#line 2236 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy217:
	++YYCURSOR;
#line 1492 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto General_Punctuation; }
#line 2241 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1494 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Superscripts_and_Subscripts:
	
#line 2247 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x206F) goto yy219;
	if (yych <= 0x209F) goto yy220;
yy219:
	++YYCURSOR;
#line 1499 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Superscripts_and_Subscripts; else return Error; }
#line 2257 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy220:
	++YYCURSOR;
#line 1498 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Superscripts_and_Subscripts; }
#line 2262 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1500 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Currency_Symbols:
	
#line 2268 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x209F) goto yy222;
	if (yych <= 0x20CF) goto yy223;
yy222:
	++YYCURSOR;
#line 1505 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Currency_Symbols; else return Error; }
#line 2278 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy223:
	++YYCURSOR;
#line 1504 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Currency_Symbols; }
#line 2283 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1506 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Combining_Diacritical_Marks_for_Symbols:
	
#line 2289 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x20CF) goto yy225;
	if (yych <= 0x20FF) goto yy226;
yy225:
	++YYCURSOR;
#line 1511 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Combining_Diacritical_Marks_for_Symbols; else return Error; }
#line 2299 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy226:
	++YYCURSOR;
#line 1510 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Combining_Diacritical_Marks_for_Symbols; }
#line 2304 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1512 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Letterlike_Symbols:
	
#line 2310 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x20FF) goto yy228;
	if (yych <= 0x214F) goto yy229;
yy228:
	++YYCURSOR;
#line 1517 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Letterlike_Symbols; else return Error; }
#line 2320 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy229:
	++YYCURSOR;
#line 1516 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Letterlike_Symbols; }
#line 2325 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1518 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Number_Forms:
	
#line 2331 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x214F) goto yy231;
	if (yych <= 0x218F) goto yy232;
yy231:
	++YYCURSOR;
#line 1523 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Number_Forms; else return Error; }
#line 2341 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy232:
	++YYCURSOR;
#line 1522 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Number_Forms; }
#line 2346 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1524 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Arrows:
	
#line 2352 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x218F) goto yy234;
	if (yych <= 0x21FF) goto yy235;
yy234:
	++YYCURSOR;
#line 1529 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Arrows; else return Error; }
#line 2362 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy235:
	++YYCURSOR;
#line 1528 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Arrows; }
#line 2367 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1530 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Mathematical_Operators:
	
#line 2373 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x21FF) goto yy237;
	if (yych <= 0x22FF) goto yy238;
yy237:
	++YYCURSOR;
#line 1535 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Mathematical_Operators; else return Error; }
#line 2383 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy238:
	++YYCURSOR;
#line 1534 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Mathematical_Operators; }
#line 2388 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1536 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Miscellaneous_Technical:
	
#line 2394 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x22FF) goto yy240;
	if (yych <= 0x23FF) goto yy241;
yy240:
	++YYCURSOR;
#line 1541 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Miscellaneous_Technical; else return Error; }
#line 2404 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy241:
	++YYCURSOR;
#line 1540 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Miscellaneous_Technical; }
#line 2409 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1542 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Control_Pictures:
	
#line 2415 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x23FF) goto yy243;
	if (yych <= 0x243F) goto yy244;
yy243:
	++YYCURSOR;
#line 1547 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Control_Pictures; else return Error; }
#line 2425 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy244:
	++YYCURSOR;
#line 1546 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Control_Pictures; }
#line 2430 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1548 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Optical_Character_Recognition:
	
#line 2436 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x243F) goto yy246;
	if (yych <= 0x245F) goto yy247;
yy246:
	++YYCURSOR;
#line 1553 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Optical_Character_Recognition; else return Error; }
#line 2446 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy247:
	++YYCURSOR;
#line 1552 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Optical_Character_Recognition; }
#line 2451 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1554 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Enclosed_Alphanumerics:
	
#line 2457 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x245F) goto yy249;
	if (yych <= 0x24FF) goto yy250;
yy249:
	++YYCURSOR;
#line 1559 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Enclosed_Alphanumerics; else return Error; }
#line 2467 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy250:
	++YYCURSOR;
#line 1558 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Enclosed_Alphanumerics; }
#line 2472 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1560 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Box_Drawing:
	
#line 2478 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x24FF) goto yy252;
	if (yych <= 0x257F) goto yy253;
yy252:
	++YYCURSOR;
#line 1565 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Box_Drawing; else return Error; }
#line 2488 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy253:
	++YYCURSOR;
#line 1564 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Box_Drawing; }
#line 2493 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1566 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Block_Elements:
	
#line 2499 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x257F) goto yy255;
	if (yych <= 0x259F) goto yy256;
yy255:
	++YYCURSOR;
#line 1571 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Block_Elements; else return Error; }
#line 2509 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy256:
	++YYCURSOR;
#line 1570 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Block_Elements; }
#line 2514 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1572 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Geometric_Shapes:
	
#line 2520 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x259F) goto yy258;
	if (yych <= 0x25FF) goto yy259;
yy258:
	++YYCURSOR;
#line 1577 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Geometric_Shapes; else return Error; }
#line 2530 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy259:
	++YYCURSOR;
#line 1576 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Geometric_Shapes; }
#line 2535 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1578 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Miscellaneous_Symbols:
	
#line 2541 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x25FF) goto yy261;
	if (yych <= 0x26FF) goto yy262;
yy261:
	++YYCURSOR;
#line 1583 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Miscellaneous_Symbols; else return Error; }
#line 2551 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy262:
	++YYCURSOR;
#line 1582 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Miscellaneous_Symbols; }
#line 2556 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1584 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Dingbats:
	
#line 2562 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x26FF) goto yy264;
	if (yych <= 0x27BF) goto yy265;
yy264:
	++YYCURSOR;
#line 1589 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Dingbats; else return Error; }
#line 2572 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy265:
	++YYCURSOR;
#line 1588 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Dingbats; }
#line 2577 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1590 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Miscellaneous_Mathematical_Symbols_A:
	
#line 2583 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x27BF) goto yy267;
	if (yych <= 0x27EF) goto yy268;
yy267:
	++YYCURSOR;
#line 1595 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Miscellaneous_Mathematical_Symbols_A; else return Error; }
#line 2593 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy268:
	++YYCURSOR;
#line 1594 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Miscellaneous_Mathematical_Symbols_A; }
#line 2598 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1596 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Supplemental_Arrows_A:
	
#line 2604 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x27EF) goto yy270;
	if (yych <= 0x27FF) goto yy271;
yy270:
	++YYCURSOR;
#line 1601 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Supplemental_Arrows_A; else return Error; }
#line 2614 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy271:
	++YYCURSOR;
#line 1600 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Supplemental_Arrows_A; }
#line 2619 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1602 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Braille_Patterns:
	
#line 2625 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x27FF) goto yy273;
	if (yych <= 0x28FF) goto yy274;
yy273:
	++YYCURSOR;
#line 1607 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Braille_Patterns; else return Error; }
#line 2635 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy274:
	++YYCURSOR;
#line 1606 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Braille_Patterns; }
#line 2640 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1608 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Supplemental_Arrows_B:
	
#line 2646 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x28FF) goto yy276;
	if (yych <= 0x297F) goto yy277;
yy276:
	++YYCURSOR;
#line 1613 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Supplemental_Arrows_B; else return Error; }
#line 2656 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy277:
	++YYCURSOR;
#line 1612 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Supplemental_Arrows_B; }
#line 2661 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1614 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Miscellaneous_Mathematical_Symbols_B:
	
#line 2667 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x297F) goto yy279;
	if (yych <= 0x29FF) goto yy280;
yy279:
	++YYCURSOR;
#line 1619 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Miscellaneous_Mathematical_Symbols_B; else return Error; }
#line 2677 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy280:
	++YYCURSOR;
#line 1618 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Miscellaneous_Mathematical_Symbols_B; }
#line 2682 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1620 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Supplemental_Mathematical_Operators:
	
#line 2688 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x29FF) goto yy282;
	if (yych <= 0x2AFF) goto yy283;
yy282:
	++YYCURSOR;
#line 1625 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Supplemental_Mathematical_Operators; else return Error; }
#line 2698 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy283:
	++YYCURSOR;
#line 1624 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Supplemental_Mathematical_Operators; }
#line 2703 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1626 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Miscellaneous_Symbols_and_Arrows:
	
#line 2709 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x2AFF) goto yy285;
	if (yych <= 0x2BFF) goto yy286;
yy285:
	++YYCURSOR;
#line 1631 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Miscellaneous_Symbols_and_Arrows; else return Error; }
#line 2719 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy286:
	++YYCURSOR;
#line 1630 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Miscellaneous_Symbols_and_Arrows; }
#line 2724 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1632 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Glagolitic:
	
#line 2730 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x2BFF) goto yy288;
	if (yych <= 0x2C5F) goto yy289;
yy288:
	++YYCURSOR;
#line 1637 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Glagolitic; else return Error; }
#line 2740 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy289:
	++YYCURSOR;
#line 1636 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Glagolitic; }
#line 2745 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1638 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Latin_Extended_C:
	
#line 2751 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x2C5F) goto yy291;
	if (yych <= 0x2C7F) goto yy292;
yy291:
	++YYCURSOR;
#line 1643 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Latin_Extended_C; else return Error; }
#line 2761 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy292:
	++YYCURSOR;
#line 1642 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Latin_Extended_C; }
#line 2766 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1644 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Coptic:
	
#line 2772 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x2C7F) goto yy294;
	if (yych <= 0x2CFF) goto yy295;
yy294:
	++YYCURSOR;
#line 1649 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Coptic; else return Error; }
#line 2782 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy295:
	++YYCURSOR;
#line 1648 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Coptic; }
#line 2787 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1650 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Georgian_Supplement:
	
#line 2793 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x2CFF) goto yy297;
	if (yych <= 0x2D2F) goto yy298;
yy297:
	++YYCURSOR;
#line 1655 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Georgian_Supplement; else return Error; }
#line 2803 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy298:
	++YYCURSOR;
#line 1654 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Georgian_Supplement; }
#line 2808 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1656 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Tifinagh:
	
#line 2814 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x2D2F) goto yy300;
	if (yych <= 0x2D7F) goto yy301;
yy300:
	++YYCURSOR;
#line 1661 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tifinagh; else return Error; }
#line 2824 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy301:
	++YYCURSOR;
#line 1660 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Tifinagh; }
#line 2829 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1662 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Ethiopic_Extended:
	
#line 2835 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x2D7F) goto yy303;
	if (yych <= 0x2DDF) goto yy304;
yy303:
	++YYCURSOR;
#line 1667 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ethiopic_Extended; else return Error; }
#line 2845 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy304:
	++YYCURSOR;
#line 1666 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Ethiopic_Extended; }
#line 2850 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1668 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Cyrillic_Extended_A:
	
#line 2856 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x2DDF) goto yy306;
	if (yych <= 0x2DFF) goto yy307;
yy306:
	++YYCURSOR;
#line 1673 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cyrillic_Extended_A; else return Error; }
#line 2866 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy307:
	++YYCURSOR;
#line 1672 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Cyrillic_Extended_A; }
#line 2871 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1674 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Supplemental_Punctuation:
	
#line 2877 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x2DFF) goto yy309;
	if (yych <= 0x2E7F) goto yy310;
yy309:
	++YYCURSOR;
#line 1679 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Supplemental_Punctuation; else return Error; }
#line 2887 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy310:
	++YYCURSOR;
#line 1678 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Supplemental_Punctuation; }
#line 2892 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1680 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

CJK_Radicals_Supplement:
	
#line 2898 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x2E7F) goto yy312;
	if (yych <= 0x2EFF) goto yy313;
yy312:
	++YYCURSOR;
#line 1685 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Radicals_Supplement; else return Error; }
#line 2908 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy313:
	++YYCURSOR;
#line 1684 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto CJK_Radicals_Supplement; }
#line 2913 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1686 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Kangxi_Radicals:
	
#line 2919 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x2EFF) goto yy315;
	if (yych <= 0x2FDF) goto yy316;
yy315:
	++YYCURSOR;
#line 1691 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kangxi_Radicals; else return Error; }
#line 2929 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy316:
	++YYCURSOR;
#line 1690 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Kangxi_Radicals; }
#line 2934 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1692 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Ideographic_Description_Characters:
	
#line 2940 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x2FEF) goto yy318;
	if (yych <= 0x2FFF) goto yy319;
yy318:
	++YYCURSOR;
#line 1697 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ideographic_Description_Characters; else return Error; }
#line 2950 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy319:
	++YYCURSOR;
#line 1696 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Ideographic_Description_Characters; }
#line 2955 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1698 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

CJK_Symbols_and_Punctuation:
	
#line 2961 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x2FFF) goto yy321;
	if (yych <= 0x303F) goto yy322;
yy321:
	++YYCURSOR;
#line 1703 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Symbols_and_Punctuation; else return Error; }
#line 2971 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy322:
	++YYCURSOR;
#line 1702 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto CJK_Symbols_and_Punctuation; }
#line 2976 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1704 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Hiragana:
	
#line 2982 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x303F) goto yy324;
	if (yych <= 0x309F) goto yy325;
yy324:
	++YYCURSOR;
#line 1709 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Hiragana; else return Error; }
#line 2992 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy325:
	++YYCURSOR;
#line 1708 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Hiragana; }
#line 2997 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1710 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Katakana:
	
#line 3003 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x309F) goto yy327;
	if (yych <= 0x30FF) goto yy328;
yy327:
	++YYCURSOR;
#line 1715 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Katakana; else return Error; }
#line 3013 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy328:
	++YYCURSOR;
#line 1714 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Katakana; }
#line 3018 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1716 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Bopomofo:
	
#line 3024 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x30FF) goto yy330;
	if (yych <= 0x312F) goto yy331;
yy330:
	++YYCURSOR;
#line 1721 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Bopomofo; else return Error; }
#line 3034 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy331:
	++YYCURSOR;
#line 1720 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Bopomofo; }
#line 3039 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1722 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Hangul_Compatibility_Jamo:
	
#line 3045 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x312F) goto yy333;
	if (yych <= 0x318F) goto yy334;
yy333:
	++YYCURSOR;
#line 1727 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Hangul_Compatibility_Jamo; else return Error; }
#line 3055 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy334:
	++YYCURSOR;
#line 1726 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Hangul_Compatibility_Jamo; }
#line 3060 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1728 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Kanbun:
	
#line 3066 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x318F) goto yy336;
	if (yych <= 0x319F) goto yy337;
yy336:
	++YYCURSOR;
#line 1733 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kanbun; else return Error; }
#line 3076 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy337:
	++YYCURSOR;
#line 1732 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Kanbun; }
#line 3081 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1734 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Bopomofo_Extended:
	
#line 3087 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x319F) goto yy339;
	if (yych <= 0x31BF) goto yy340;
yy339:
	++YYCURSOR;
#line 1739 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Bopomofo_Extended; else return Error; }
#line 3097 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy340:
	++YYCURSOR;
#line 1738 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Bopomofo_Extended; }
#line 3102 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1740 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

CJK_Strokes:
	
#line 3108 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x31BF) goto yy342;
	if (yych <= 0x31EF) goto yy343;
yy342:
	++YYCURSOR;
#line 1745 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Strokes; else return Error; }
#line 3118 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy343:
	++YYCURSOR;
#line 1744 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto CJK_Strokes; }
#line 3123 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1746 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Katakana_Phonetic_Extensions:
	
#line 3129 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x31EF) goto yy345;
	if (yych <= 0x31FF) goto yy346;
yy345:
	++YYCURSOR;
#line 1751 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Katakana_Phonetic_Extensions; else return Error; }
#line 3139 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy346:
	++YYCURSOR;
#line 1750 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Katakana_Phonetic_Extensions; }
#line 3144 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1752 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Enclosed_CJK_Letters_and_Months:
	
#line 3150 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x31FF) goto yy348;
	if (yych <= 0x32FF) goto yy349;
yy348:
	++YYCURSOR;
#line 1757 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Enclosed_CJK_Letters_and_Months; else return Error; }
#line 3160 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy349:
	++YYCURSOR;
#line 1756 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Enclosed_CJK_Letters_and_Months; }
#line 3165 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1758 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

CJK_Compatibility:
	
#line 3171 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x32FF) goto yy351;
	if (yych <= 0x33FF) goto yy352;
yy351:
	++YYCURSOR;
#line 1763 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Compatibility; else return Error; }
#line 3181 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy352:
	++YYCURSOR;
#line 1762 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto CJK_Compatibility; }
#line 3186 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1764 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

CJK_Unified_Ideographs_Extension_A:
	
#line 3192 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x33FF) goto yy354;
	if (yych <= 0x4DBF) goto yy355;
yy354:
	++YYCURSOR;
#line 1769 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Unified_Ideographs_Extension_A; else return Error; }
#line 3202 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy355:
	++YYCURSOR;
#line 1768 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto CJK_Unified_Ideographs_Extension_A; }
#line 3207 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1770 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Yijing_Hexagram_Symbols:
	
#line 3213 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x4DBF) goto yy357;
	if (yych <= 0x4DFF) goto yy358;
yy357:
	++YYCURSOR;
#line 1775 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Yijing_Hexagram_Symbols; else return Error; }
#line 3223 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy358:
	++YYCURSOR;
#line 1774 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Yijing_Hexagram_Symbols; }
#line 3228 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1776 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

CJK_Unified_Ideographs:
	
#line 3234 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x4DFF) goto yy360;
	if (yych <= 0x9FFF) goto yy361;
yy360:
	++YYCURSOR;
#line 1781 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Unified_Ideographs; else return Error; }
#line 3244 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy361:
	++YYCURSOR;
#line 1780 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto CJK_Unified_Ideographs; }
#line 3249 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1782 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Yi_Syllables:
	
#line 3255 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x9FFF) goto yy363;
	if (yych <= 0xA48F) goto yy364;
yy363:
	++YYCURSOR;
#line 1787 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Yi_Syllables; else return Error; }
#line 3265 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy364:
	++YYCURSOR;
#line 1786 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Yi_Syllables; }
#line 3270 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1788 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Yi_Radicals:
	
#line 3276 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xA48F) goto yy366;
	if (yych <= 0xA4CF) goto yy367;
yy366:
	++YYCURSOR;
#line 1793 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Yi_Radicals; else return Error; }
#line 3286 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy367:
	++YYCURSOR;
#line 1792 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Yi_Radicals; }
#line 3291 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1794 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Lisu:
	
#line 3297 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xA4CF) goto yy369;
	if (yych <= 0xA4FF) goto yy370;
yy369:
	++YYCURSOR;
#line 1799 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Lisu; else return Error; }
#line 3307 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy370:
	++YYCURSOR;
#line 1798 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Lisu; }
#line 3312 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1800 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Vai:
	
#line 3318 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xA4FF) goto yy372;
	if (yych <= 0xA63F) goto yy373;
yy372:
	++YYCURSOR;
#line 1805 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Vai; else return Error; }
#line 3328 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy373:
	++YYCURSOR;
#line 1804 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Vai; }
#line 3333 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1806 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Cyrillic_Extended_B:
	
#line 3339 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xA63F) goto yy375;
	if (yych <= 0xA69F) goto yy376;
yy375:
	++YYCURSOR;
#line 1811 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cyrillic_Extended_B; else return Error; }
#line 3349 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy376:
	++YYCURSOR;
#line 1810 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Cyrillic_Extended_B; }
#line 3354 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1812 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Bamum:
	
#line 3360 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xA69F) goto yy378;
	if (yych <= 0xA6FF) goto yy379;
yy378:
	++YYCURSOR;
#line 1817 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Bamum; else return Error; }
#line 3370 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy379:
	++YYCURSOR;
#line 1816 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Bamum; }
#line 3375 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1818 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Modifier_Tone_Letters:
	
#line 3381 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xA6FF) goto yy381;
	if (yych <= 0xA71F) goto yy382;
yy381:
	++YYCURSOR;
#line 1823 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Modifier_Tone_Letters; else return Error; }
#line 3391 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy382:
	++YYCURSOR;
#line 1822 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Modifier_Tone_Letters; }
#line 3396 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1824 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Latin_Extended_D:
	
#line 3402 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xA71F) goto yy384;
	if (yych <= 0xA7FF) goto yy385;
yy384:
	++YYCURSOR;
#line 1829 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Latin_Extended_D; else return Error; }
#line 3412 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy385:
	++YYCURSOR;
#line 1828 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Latin_Extended_D; }
#line 3417 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1830 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Syloti_Nagri:
	
#line 3423 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xA7FF) goto yy387;
	if (yych <= 0xA82F) goto yy388;
yy387:
	++YYCURSOR;
#line 1835 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Syloti_Nagri; else return Error; }
#line 3433 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy388:
	++YYCURSOR;
#line 1834 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Syloti_Nagri; }
#line 3438 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1836 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Common_Indic_Number_Forms:
	
#line 3444 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xA82F) goto yy390;
	if (yych <= 0xA83F) goto yy391;
yy390:
	++YYCURSOR;
#line 1841 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Common_Indic_Number_Forms; else return Error; }
#line 3454 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy391:
	++YYCURSOR;
#line 1840 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Common_Indic_Number_Forms; }
#line 3459 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1842 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Phags_pa:
	
#line 3465 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xA83F) goto yy393;
	if (yych <= 0xA87F) goto yy394;
yy393:
	++YYCURSOR;
#line 1847 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Phags_pa; else return Error; }
#line 3475 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy394:
	++YYCURSOR;
#line 1846 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Phags_pa; }
#line 3480 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1848 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Saurashtra:
	
#line 3486 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xA87F) goto yy396;
	if (yych <= 0xA8DF) goto yy397;
yy396:
	++YYCURSOR;
#line 1853 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Saurashtra; else return Error; }
#line 3496 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy397:
	++YYCURSOR;
#line 1852 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Saurashtra; }
#line 3501 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1854 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Devanagari_Extended:
	
#line 3507 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xA8DF) goto yy399;
	if (yych <= 0xA8FF) goto yy400;
yy399:
	++YYCURSOR;
#line 1859 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Devanagari_Extended; else return Error; }
#line 3517 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy400:
	++YYCURSOR;
#line 1858 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Devanagari_Extended; }
#line 3522 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1860 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Kayah_Li:
	
#line 3528 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xA8FF) goto yy402;
	if (yych <= 0xA92F) goto yy403;
yy402:
	++YYCURSOR;
#line 1865 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kayah_Li; else return Error; }
#line 3538 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy403:
	++YYCURSOR;
#line 1864 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Kayah_Li; }
#line 3543 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1866 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Rejang:
	
#line 3549 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xA92F) goto yy405;
	if (yych <= 0xA95F) goto yy406;
yy405:
	++YYCURSOR;
#line 1871 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Rejang; else return Error; }
#line 3559 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy406:
	++YYCURSOR;
#line 1870 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Rejang; }
#line 3564 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1872 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Hangul_Jamo_Extended_A:
	
#line 3570 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xA95F) goto yy408;
	if (yych <= 0xA97F) goto yy409;
yy408:
	++YYCURSOR;
#line 1877 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Hangul_Jamo_Extended_A; else return Error; }
#line 3580 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy409:
	++YYCURSOR;
#line 1876 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Hangul_Jamo_Extended_A; }
#line 3585 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1878 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Javanese:
	
#line 3591 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xA97F) goto yy411;
	if (yych <= 0xA9DF) goto yy412;
yy411:
	++YYCURSOR;
#line 1883 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Javanese; else return Error; }
#line 3601 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy412:
	++YYCURSOR;
#line 1882 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Javanese; }
#line 3606 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1884 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Myanmar_Extended_B:
	
#line 3612 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xA9DF) goto yy414;
	if (yych <= 0xA9FF) goto yy415;
yy414:
	++YYCURSOR;
#line 1889 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Myanmar_Extended_B; else return Error; }
#line 3622 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy415:
	++YYCURSOR;
#line 1888 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Myanmar_Extended_B; }
#line 3627 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1890 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Cham:
	
#line 3633 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xA9FF) goto yy417;
	if (yych <= 0xAA5F) goto yy418;
yy417:
	++YYCURSOR;
#line 1895 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cham; else return Error; }
#line 3643 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy418:
	++YYCURSOR;
#line 1894 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Cham; }
#line 3648 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1896 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Myanmar_Extended_A:
	
#line 3654 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xAA5F) goto yy420;
	if (yych <= 0xAA7F) goto yy421;
yy420:
	++YYCURSOR;
#line 1901 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Myanmar_Extended_A; else return Error; }
#line 3664 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy421:
	++YYCURSOR;
#line 1900 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Myanmar_Extended_A; }
#line 3669 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1902 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Tai_Viet:
	
#line 3675 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xAA7F) goto yy423;
	if (yych <= 0xAADF) goto yy424;
yy423:
	++YYCURSOR;
#line 1907 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tai_Viet; else return Error; }
#line 3685 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy424:
	++YYCURSOR;
#line 1906 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Tai_Viet; }
#line 3690 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1908 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Meetei_Mayek_Extensions:
	
#line 3696 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xAADF) goto yy426;
	if (yych <= 0xAAFF) goto yy427;
yy426:
	++YYCURSOR;
#line 1913 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Meetei_Mayek_Extensions; else return Error; }
#line 3706 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy427:
	++YYCURSOR;
#line 1912 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Meetei_Mayek_Extensions; }
#line 3711 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1914 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Ethiopic_Extended_A:
	
#line 3717 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xAAFF) goto yy429;
	if (yych <= 0xAB2F) goto yy430;
yy429:
	++YYCURSOR;
#line 1919 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ethiopic_Extended_A; else return Error; }
#line 3727 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy430:
	++YYCURSOR;
#line 1918 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Ethiopic_Extended_A; }
#line 3732 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1920 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Latin_Extended_E:
	
#line 3738 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xAB2F) goto yy432;
	if (yych <= 0xAB6F) goto yy433;
yy432:
	++YYCURSOR;
#line 1925 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Latin_Extended_E; else return Error; }
#line 3748 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy433:
	++YYCURSOR;
#line 1924 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Latin_Extended_E; }
#line 3753 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1926 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Cherokee_Supplement:
	
#line 3759 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xAB6F) goto yy435;
	if (yych <= 0xABBF) goto yy436;
yy435:
	++YYCURSOR;
#line 1931 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cherokee_Supplement; else return Error; }
#line 3769 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy436:
	++YYCURSOR;
#line 1930 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Cherokee_Supplement; }
#line 3774 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1932 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Meetei_Mayek:
	
#line 3780 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xABBF) goto yy438;
	if (yych <= 0xABFF) goto yy439;
yy438:
	++YYCURSOR;
#line 1937 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Meetei_Mayek; else return Error; }
#line 3790 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy439:
	++YYCURSOR;
#line 1936 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Meetei_Mayek; }
#line 3795 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1938 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Hangul_Syllables:
	
#line 3801 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xABFF) goto yy441;
	if (yych <= 0xD7AF) goto yy442;
yy441:
	++YYCURSOR;
#line 1943 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Hangul_Syllables; else return Error; }
#line 3811 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy442:
	++YYCURSOR;
#line 1942 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Hangul_Syllables; }
#line 3816 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1944 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Hangul_Jamo_Extended_B:
	
#line 3822 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xD7AF) goto yy444;
	if (yych <= 0xD7FF) goto yy445;
yy444:
	++YYCURSOR;
#line 1949 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Hangul_Jamo_Extended_B; else return Error; }
#line 3832 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy445:
	++YYCURSOR;
#line 1948 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Hangul_Jamo_Extended_B; }
#line 3837 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1950 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

High_Surrogates:
	
#line 3843 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xFFFD) goto yy447;
	++YYCURSOR;
#line 1955 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return High_Surrogates; else return Error; }
#line 3851 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy447:
	++YYCURSOR;
#line 1954 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto High_Surrogates; }
#line 3856 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1956 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

High_Private_Use_Surrogates:
	
#line 3862 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xFFFD) goto yy449;
	++YYCURSOR;
#line 1961 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return High_Private_Use_Surrogates; else return Error; }
#line 3870 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy449:
	++YYCURSOR;
#line 1960 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto High_Private_Use_Surrogates; }
#line 3875 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1962 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Low_Surrogates:
	
#line 3881 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xFFFD) goto yy451;
	++YYCURSOR;
#line 1967 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Low_Surrogates; else return Error; }
#line 3889 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy451:
	++YYCURSOR;
#line 1966 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Low_Surrogates; }
#line 3894 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1968 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Private_Use_Area:
	
#line 3900 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xDFFF) goto yy453;
	if (yych <= 0xF8FF) goto yy454;
yy453:
	++YYCURSOR;
#line 1973 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Private_Use_Area; else return Error; }
#line 3910 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy454:
	++YYCURSOR;
#line 1972 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Private_Use_Area; }
#line 3915 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1974 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

CJK_Compatibility_Ideographs:
	
#line 3921 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xF8FF) goto yy456;
	if (yych <= 0xFAFF) goto yy457;
yy456:
	++YYCURSOR;
#line 1979 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Compatibility_Ideographs; else return Error; }
#line 3931 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy457:
	++YYCURSOR;
#line 1978 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto CJK_Compatibility_Ideographs; }
#line 3936 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1980 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Alphabetic_Presentation_Forms:
	
#line 3942 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xFAFF) goto yy459;
	if (yych <= 0xFB4F) goto yy460;
yy459:
	++YYCURSOR;
#line 1985 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Alphabetic_Presentation_Forms; else return Error; }
#line 3952 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy460:
	++YYCURSOR;
#line 1984 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Alphabetic_Presentation_Forms; }
#line 3957 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1986 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Arabic_Presentation_Forms_A:
	
#line 3963 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xFB4F) goto yy462;
	if (yych <= 0xFDFF) goto yy463;
yy462:
	++YYCURSOR;
#line 1991 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Arabic_Presentation_Forms_A; else return Error; }
#line 3973 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy463:
	++YYCURSOR;
#line 1990 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Arabic_Presentation_Forms_A; }
#line 3978 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1992 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Variation_Selectors:
	
#line 3984 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xFDFF) goto yy465;
	if (yych <= 0xFE0F) goto yy466;
yy465:
	++YYCURSOR;
#line 1997 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Variation_Selectors; else return Error; }
#line 3994 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy466:
	++YYCURSOR;
#line 1996 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Variation_Selectors; }
#line 3999 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 1998 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Vertical_Forms:
	
#line 4005 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xFE0F) goto yy468;
	if (yych <= 0xFE1F) goto yy469;
yy468:
	++YYCURSOR;
#line 2003 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Vertical_Forms; else return Error; }
#line 4015 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy469:
	++YYCURSOR;
#line 2002 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Vertical_Forms; }
#line 4020 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2004 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Combining_Half_Marks:
	
#line 4026 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xFE1F) goto yy471;
	if (yych <= 0xFE2F) goto yy472;
yy471:
	++YYCURSOR;
#line 2009 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Combining_Half_Marks; else return Error; }
#line 4036 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy472:
	++YYCURSOR;
#line 2008 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Combining_Half_Marks; }
#line 4041 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2010 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

CJK_Compatibility_Forms:
	
#line 4047 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xFE2F) goto yy474;
	if (yych <= 0xFE4F) goto yy475;
yy474:
	++YYCURSOR;
#line 2015 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Compatibility_Forms; else return Error; }
#line 4057 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy475:
	++YYCURSOR;
#line 2014 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto CJK_Compatibility_Forms; }
#line 4062 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2016 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Small_Form_Variants:
	
#line 4068 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xFE4F) goto yy477;
	if (yych <= 0xFE6F) goto yy478;
yy477:
	++YYCURSOR;
#line 2021 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Small_Form_Variants; else return Error; }
#line 4078 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy478:
	++YYCURSOR;
#line 2020 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Small_Form_Variants; }
#line 4083 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2022 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Arabic_Presentation_Forms_B:
	
#line 4089 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xFE6F) goto yy480;
	if (yych <= 0xFEFF) goto yy481;
yy480:
	++YYCURSOR;
#line 2027 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Arabic_Presentation_Forms_B; else return Error; }
#line 4099 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy481:
	++YYCURSOR;
#line 2026 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Arabic_Presentation_Forms_B; }
#line 4104 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2028 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Halfwidth_and_Fullwidth_Forms:
	
#line 4110 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xFEFF) goto yy483;
	if (yych <= 0xFFEF) goto yy484;
yy483:
	++YYCURSOR;
#line 2033 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Halfwidth_and_Fullwidth_Forms; else return Error; }
#line 4120 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy484:
	++YYCURSOR;
#line 2032 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Halfwidth_and_Fullwidth_Forms; }
#line 4125 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2034 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Specials:
	
#line 4131 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych >= 0xFFF0) goto yy486;
	++YYCURSOR;
#line 2039 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Specials; else return Error; }
#line 4139 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy486:
	++YYCURSOR;
#line 2038 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Specials; }
#line 4144 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2040 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Linear_B_Syllabary:
	
#line 4150 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD800) goto yy489;
	++YYCURSOR;
yy488:
#line 2045 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Linear_B_Syllabary; else return Error; }
#line 4159 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy489:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy488;
	if (yych >= 0xDC80) goto yy488;
	++YYCURSOR;
#line 2044 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Linear_B_Syllabary; }
#line 4167 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2046 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Linear_B_Ideograms:
	
#line 4173 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD800) goto yy492;
	++YYCURSOR;
yy491:
#line 2051 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Linear_B_Ideograms; else return Error; }
#line 4182 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy492:
	yych = *++YYCURSOR;
	if (yych <= 0xDC7F) goto yy491;
	if (yych >= 0xDD00) goto yy491;
	++YYCURSOR;
#line 2050 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Linear_B_Ideograms; }
#line 4190 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2052 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Aegean_Numbers:
	
#line 4196 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD800) goto yy495;
	++YYCURSOR;
yy494:
#line 2057 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Aegean_Numbers; else return Error; }
#line 4205 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy495:
	yych = *++YYCURSOR;
	if (yych <= 0xDCFF) goto yy494;
	if (yych >= 0xDD40) goto yy494;
	++YYCURSOR;
#line 2056 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Aegean_Numbers; }
#line 4213 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2058 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Ancient_Greek_Numbers:
	
#line 4219 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD800) goto yy498;
	++YYCURSOR;
yy497:
#line 2063 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ancient_Greek_Numbers; else return Error; }
#line 4228 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy498:
	yych = *++YYCURSOR;
	if (yych <= 0xDD3F) goto yy497;
	if (yych >= 0xDD90) goto yy497;
	++YYCURSOR;
#line 2062 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Ancient_Greek_Numbers; }
#line 4236 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2064 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Ancient_Symbols:
	
#line 4242 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD800) goto yy501;
	++YYCURSOR;
yy500:
#line 2069 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ancient_Symbols; else return Error; }
#line 4251 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy501:
	yych = *++YYCURSOR;
	if (yych <= 0xDD8F) goto yy500;
	if (yych >= 0xDDD0) goto yy500;
	++YYCURSOR;
#line 2068 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Ancient_Symbols; }
#line 4259 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2070 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Phaistos_Disc:
	
#line 4265 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD800) goto yy504;
	++YYCURSOR;
yy503:
#line 2075 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Phaistos_Disc; else return Error; }
#line 4274 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy504:
	yych = *++YYCURSOR;
	if (yych <= 0xDDCF) goto yy503;
	if (yych >= 0xDE00) goto yy503;
	++YYCURSOR;
#line 2074 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Phaistos_Disc; }
#line 4282 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2076 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Lycian:
	
#line 4288 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD800) goto yy507;
	++YYCURSOR;
yy506:
#line 2081 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Lycian; else return Error; }
#line 4297 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy507:
	yych = *++YYCURSOR;
	if (yych <= 0xDE7F) goto yy506;
	if (yych >= 0xDEA0) goto yy506;
	++YYCURSOR;
#line 2080 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Lycian; }
#line 4305 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2082 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Carian:
	
#line 4311 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD800) goto yy510;
	++YYCURSOR;
yy509:
#line 2087 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Carian; else return Error; }
#line 4320 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy510:
	yych = *++YYCURSOR;
	if (yych <= 0xDE9F) goto yy509;
	if (yych >= 0xDEE0) goto yy509;
	++YYCURSOR;
#line 2086 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Carian; }
#line 4328 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2088 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Coptic_Epact_Numbers:
	
#line 4334 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD800) goto yy513;
	++YYCURSOR;
yy512:
#line 2093 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Coptic_Epact_Numbers; else return Error; }
#line 4343 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy513:
	yych = *++YYCURSOR;
	if (yych <= 0xDEDF) goto yy512;
	if (yych >= 0xDF00) goto yy512;
	++YYCURSOR;
#line 2092 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Coptic_Epact_Numbers; }
#line 4351 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2094 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Old_Italic:
	
#line 4357 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD800) goto yy516;
	++YYCURSOR;
yy515:
#line 2099 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Old_Italic; else return Error; }
#line 4366 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy516:
	yych = *++YYCURSOR;
	if (yych <= 0xDEFF) goto yy515;
	if (yych >= 0xDF30) goto yy515;
	++YYCURSOR;
#line 2098 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Old_Italic; }
#line 4374 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2100 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Gothic:
	
#line 4380 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD800) goto yy519;
	++YYCURSOR;
yy518:
#line 2105 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Gothic; else return Error; }
#line 4389 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy519:
	yych = *++YYCURSOR;
	if (yych <= 0xDF2F) goto yy518;
	if (yych >= 0xDF50) goto yy518;
	++YYCURSOR;
#line 2104 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Gothic; }
#line 4397 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2106 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Old_Permic:
	
#line 4403 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD800) goto yy522;
	++YYCURSOR;
yy521:
#line 2111 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Old_Permic; else return Error; }
#line 4412 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy522:
	yych = *++YYCURSOR;
	if (yych <= 0xDF4F) goto yy521;
	if (yych >= 0xDF80) goto yy521;
	++YYCURSOR;
#line 2110 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Old_Permic; }
#line 4420 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2112 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Ugaritic:
	
#line 4426 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD800) goto yy525;
	++YYCURSOR;
yy524:
#line 2117 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ugaritic; else return Error; }
#line 4435 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy525:
	yych = *++YYCURSOR;
	if (yych <= 0xDF7F) goto yy524;
	if (yych >= 0xDFA0) goto yy524;
	++YYCURSOR;
#line 2116 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Ugaritic; }
#line 4443 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2118 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Old_Persian:
	
#line 4449 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD800) goto yy528;
	++YYCURSOR;
yy527:
#line 2123 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Old_Persian; else return Error; }
#line 4458 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy528:
	yych = *++YYCURSOR;
	if (yych <= 0xDF9F) goto yy527;
	if (yych >= 0xDFE0) goto yy527;
	++YYCURSOR;
#line 2122 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Old_Persian; }
#line 4466 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2124 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Deseret:
	
#line 4472 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD801) goto yy531;
	++YYCURSOR;
yy530:
#line 2129 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Deseret; else return Error; }
#line 4481 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy531:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy530;
	if (yych >= 0xDC50) goto yy530;
	++YYCURSOR;
#line 2128 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Deseret; }
#line 4489 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2130 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Shavian:
	
#line 4495 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD801) goto yy534;
	++YYCURSOR;
yy533:
#line 2135 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Shavian; else return Error; }
#line 4504 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy534:
	yych = *++YYCURSOR;
	if (yych <= 0xDC4F) goto yy533;
	if (yych >= 0xDC80) goto yy533;
	++YYCURSOR;
#line 2134 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Shavian; }
#line 4512 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2136 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Osmanya:
	
#line 4518 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD801) goto yy537;
	++YYCURSOR;
yy536:
#line 2141 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Osmanya; else return Error; }
#line 4527 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy537:
	yych = *++YYCURSOR;
	if (yych <= 0xDC7F) goto yy536;
	if (yych >= 0xDCB0) goto yy536;
	++YYCURSOR;
#line 2140 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Osmanya; }
#line 4535 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2142 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Osage:
	
#line 4541 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD801) goto yy540;
	++YYCURSOR;
yy539:
#line 2147 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Osage; else return Error; }
#line 4550 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy540:
	yych = *++YYCURSOR;
	if (yych <= 0xDCAF) goto yy539;
	if (yych >= 0xDD00) goto yy539;
	++YYCURSOR;
#line 2146 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Osage; }
#line 4558 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2148 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Elbasan:
	
#line 4564 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD801) goto yy543;
	++YYCURSOR;
yy542:
#line 2153 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Elbasan; else return Error; }
#line 4573 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy543:
	yych = *++YYCURSOR;
	if (yych <= 0xDCFF) goto yy542;
	if (yych >= 0xDD30) goto yy542;
	++YYCURSOR;
#line 2152 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Elbasan; }
#line 4581 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2154 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Caucasian_Albanian:
	
#line 4587 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD801) goto yy546;
	++YYCURSOR;
yy545:
#line 2159 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Caucasian_Albanian; else return Error; }
#line 4596 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy546:
	yych = *++YYCURSOR;
	if (yych <= 0xDD2F) goto yy545;
	if (yych >= 0xDD70) goto yy545;
	++YYCURSOR;
#line 2158 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Caucasian_Albanian; }
#line 4604 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2160 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Vithkuqi:
	
#line 4610 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD801) goto yy549;
	++YYCURSOR;
yy548:
#line 2165 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Vithkuqi; else return Error; }
#line 4619 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy549:
	yych = *++YYCURSOR;
	if (yych <= 0xDD6F) goto yy548;
	if (yych >= 0xDDC0) goto yy548;
	++YYCURSOR;
#line 2164 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Vithkuqi; }
#line 4627 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2166 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Todhri:
	
#line 4633 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD801) goto yy552;
	++YYCURSOR;
yy551:
#line 2171 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Todhri; else return Error; }
#line 4642 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy552:
	yych = *++YYCURSOR;
	if (yych <= 0xDDBF) goto yy551;
	if (yych >= 0xDE00) goto yy551;
	++YYCURSOR;
#line 2170 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Todhri; }
#line 4650 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2172 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Linear_A:
	
#line 4656 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD801) goto yy555;
	++YYCURSOR;
yy554:
#line 2177 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Linear_A; else return Error; }
#line 4665 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy555:
	yych = *++YYCURSOR;
	if (yych <= 0xDDFF) goto yy554;
	if (yych >= 0xDF80) goto yy554;
	++YYCURSOR;
#line 2176 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Linear_A; }
#line 4673 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2178 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Latin_Extended_F:
	
#line 4679 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD801) goto yy558;
	++YYCURSOR;
yy557:
#line 2183 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Latin_Extended_F; else return Error; }
#line 4688 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy558:
	yych = *++YYCURSOR;
	if (yych <= 0xDF7F) goto yy557;
	if (yych >= 0xDFC0) goto yy557;
	++YYCURSOR;
#line 2182 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Latin_Extended_F; }
#line 4696 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2184 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Cypriot_Syllabary:
	
#line 4702 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD802) goto yy561;
	++YYCURSOR;
yy560:
#line 2189 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cypriot_Syllabary; else return Error; }
#line 4711 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy561:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy560;
	if (yych >= 0xDC40) goto yy560;
	++YYCURSOR;
#line 2188 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Cypriot_Syllabary; }
#line 4719 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2190 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Imperial_Aramaic:
	
#line 4725 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD802) goto yy564;
	++YYCURSOR;
yy563:
#line 2195 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Imperial_Aramaic; else return Error; }
#line 4734 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy564:
	yych = *++YYCURSOR;
	if (yych <= 0xDC3F) goto yy563;
	if (yych >= 0xDC60) goto yy563;
	++YYCURSOR;
#line 2194 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Imperial_Aramaic; }
#line 4742 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2196 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Palmyrene:
	
#line 4748 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD802) goto yy567;
	++YYCURSOR;
yy566:
#line 2201 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Palmyrene; else return Error; }
#line 4757 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy567:
	yych = *++YYCURSOR;
	if (yych <= 0xDC5F) goto yy566;
	if (yych >= 0xDC80) goto yy566;
	++YYCURSOR;
#line 2200 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Palmyrene; }
#line 4765 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2202 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Nabataean:
	
#line 4771 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD802) goto yy570;
	++YYCURSOR;
yy569:
#line 2207 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Nabataean; else return Error; }
#line 4780 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy570:
	yych = *++YYCURSOR;
	if (yych <= 0xDC7F) goto yy569;
	if (yych >= 0xDCB0) goto yy569;
	++YYCURSOR;
#line 2206 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Nabataean; }
#line 4788 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2208 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Hatran:
	
#line 4794 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD802) goto yy573;
	++YYCURSOR;
yy572:
#line 2213 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Hatran; else return Error; }
#line 4803 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy573:
	yych = *++YYCURSOR;
	if (yych <= 0xDCDF) goto yy572;
	if (yych >= 0xDD00) goto yy572;
	++YYCURSOR;
#line 2212 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Hatran; }
#line 4811 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2214 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Phoenician:
	
#line 4817 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD802) goto yy576;
	++YYCURSOR;
yy575:
#line 2219 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Phoenician; else return Error; }
#line 4826 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy576:
	yych = *++YYCURSOR;
	if (yych <= 0xDCFF) goto yy575;
	if (yych >= 0xDD20) goto yy575;
	++YYCURSOR;
#line 2218 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Phoenician; }
#line 4834 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2220 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Lydian:
	
#line 4840 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD802) goto yy579;
	++YYCURSOR;
yy578:
#line 2225 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Lydian; else return Error; }
#line 4849 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy579:
	yych = *++YYCURSOR;
	if (yych <= 0xDD1F) goto yy578;
	if (yych >= 0xDD40) goto yy578;
	++YYCURSOR;
#line 2224 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Lydian; }
#line 4857 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2226 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Sidetic:
	
#line 4863 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD802) goto yy582;
	++YYCURSOR;
yy581:
#line 2231 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Sidetic; else return Error; }
#line 4872 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy582:
	yych = *++YYCURSOR;
	if (yych <= 0xDD3F) goto yy581;
	if (yych >= 0xDD60) goto yy581;
	++YYCURSOR;
#line 2230 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Sidetic; }
#line 4880 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2232 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Meroitic_Hieroglyphs:
	
#line 4886 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD802) goto yy585;
	++YYCURSOR;
yy584:
#line 2237 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Meroitic_Hieroglyphs; else return Error; }
#line 4895 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy585:
	yych = *++YYCURSOR;
	if (yych <= 0xDD7F) goto yy584;
	if (yych >= 0xDDA0) goto yy584;
	++YYCURSOR;
#line 2236 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Meroitic_Hieroglyphs; }
#line 4903 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2238 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Meroitic_Cursive:
	
#line 4909 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD802) goto yy588;
	++YYCURSOR;
yy587:
#line 2243 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Meroitic_Cursive; else return Error; }
#line 4918 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy588:
	yych = *++YYCURSOR;
	if (yych <= 0xDD9F) goto yy587;
	if (yych >= 0xDE00) goto yy587;
	++YYCURSOR;
#line 2242 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Meroitic_Cursive; }
#line 4926 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2244 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Kharoshthi:
	
#line 4932 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD802) goto yy591;
	++YYCURSOR;
yy590:
#line 2249 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kharoshthi; else return Error; }
#line 4941 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy591:
	yych = *++YYCURSOR;
	if (yych <= 0xDDFF) goto yy590;
	if (yych >= 0xDE60) goto yy590;
	++YYCURSOR;
#line 2248 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Kharoshthi; }
#line 4949 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2250 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Old_South_Arabian:
	
#line 4955 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD802) goto yy594;
	++YYCURSOR;
yy593:
#line 2255 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Old_South_Arabian; else return Error; }
#line 4964 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy594:
	yych = *++YYCURSOR;
	if (yych <= 0xDE5F) goto yy593;
	if (yych >= 0xDE80) goto yy593;
	++YYCURSOR;
#line 2254 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Old_South_Arabian; }
#line 4972 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2256 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Old_North_Arabian:
	
#line 4978 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD802) goto yy597;
	++YYCURSOR;
yy596:
#line 2261 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Old_North_Arabian; else return Error; }
#line 4987 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy597:
	yych = *++YYCURSOR;
	if (yych <= 0xDE7F) goto yy596;
	if (yych >= 0xDEA0) goto yy596;
	++YYCURSOR;
#line 2260 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Old_North_Arabian; }
#line 4995 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2262 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Manichaean:
	
#line 5001 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD802) goto yy600;
	++YYCURSOR;
yy599:
#line 2267 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Manichaean; else return Error; }
#line 5010 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy600:
	yych = *++YYCURSOR;
	if (yych <= 0xDEBF) goto yy599;
	if (yych >= 0xDF00) goto yy599;
	++YYCURSOR;
#line 2266 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Manichaean; }
#line 5018 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2268 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Avestan:
	
#line 5024 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD802) goto yy603;
	++YYCURSOR;
yy602:
#line 2273 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Avestan; else return Error; }
#line 5033 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy603:
	yych = *++YYCURSOR;
	if (yych <= 0xDEFF) goto yy602;
	if (yych >= 0xDF40) goto yy602;
	++YYCURSOR;
#line 2272 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Avestan; }
#line 5041 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2274 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Inscriptional_Parthian:
	
#line 5047 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD802) goto yy606;
	++YYCURSOR;
yy605:
#line 2279 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Inscriptional_Parthian; else return Error; }
#line 5056 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy606:
	yych = *++YYCURSOR;
	if (yych <= 0xDF3F) goto yy605;
	if (yych >= 0xDF60) goto yy605;
	++YYCURSOR;
#line 2278 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Inscriptional_Parthian; }
#line 5064 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2280 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Inscriptional_Pahlavi:
	
#line 5070 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD802) goto yy609;
	++YYCURSOR;
yy608:
#line 2285 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Inscriptional_Pahlavi; else return Error; }
#line 5079 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy609:
	yych = *++YYCURSOR;
	if (yych <= 0xDF5F) goto yy608;
	if (yych >= 0xDF80) goto yy608;
	++YYCURSOR;
#line 2284 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Inscriptional_Pahlavi; }
#line 5087 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2286 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Psalter_Pahlavi:
	
#line 5093 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD802) goto yy612;
	++YYCURSOR;
yy611:
#line 2291 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Psalter_Pahlavi; else return Error; }
#line 5102 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy612:
	yych = *++YYCURSOR;
	if (yych <= 0xDF7F) goto yy611;
	if (yych >= 0xDFB0) goto yy611;
	++YYCURSOR;
#line 2290 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Psalter_Pahlavi; }
#line 5110 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2292 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Old_Turkic:
	
#line 5116 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD803) goto yy615;
	++YYCURSOR;
yy614:
#line 2297 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Old_Turkic; else return Error; }
#line 5125 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy615:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy614;
	if (yych >= 0xDC50) goto yy614;
	++YYCURSOR;
#line 2296 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Old_Turkic; }
#line 5133 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2298 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Old_Hungarian:
	
#line 5139 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD803) goto yy618;
	++YYCURSOR;
yy617:
#line 2303 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Old_Hungarian; else return Error; }
#line 5148 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy618:
	yych = *++YYCURSOR;
	if (yych <= 0xDC7F) goto yy617;
	if (yych >= 0xDD00) goto yy617;
	++YYCURSOR;
#line 2302 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Old_Hungarian; }
#line 5156 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2304 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Hanifi_Rohingya:
	
#line 5162 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD803) goto yy621;
	++YYCURSOR;
yy620:
#line 2309 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Hanifi_Rohingya; else return Error; }
#line 5171 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy621:
	yych = *++YYCURSOR;
	if (yych <= 0xDCFF) goto yy620;
	if (yych >= 0xDD40) goto yy620;
	++YYCURSOR;
#line 2308 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Hanifi_Rohingya; }
#line 5179 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2310 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Garay:
	
#line 5185 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD803) goto yy624;
	++YYCURSOR;
yy623:
#line 2315 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Garay; else return Error; }
#line 5194 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy624:
	yych = *++YYCURSOR;
	if (yych <= 0xDD3F) goto yy623;
	if (yych >= 0xDD90) goto yy623;
	++YYCURSOR;
#line 2314 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Garay; }
#line 5202 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2316 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Rumi_Numeral_Symbols:
	
#line 5208 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD803) goto yy627;
	++YYCURSOR;
yy626:
#line 2321 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Rumi_Numeral_Symbols; else return Error; }
#line 5217 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy627:
	yych = *++YYCURSOR;
	if (yych <= 0xDE5F) goto yy626;
	if (yych >= 0xDE80) goto yy626;
	++YYCURSOR;
#line 2320 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Rumi_Numeral_Symbols; }
#line 5225 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2322 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Yezidi:
	
#line 5231 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD803) goto yy630;
	++YYCURSOR;
yy629:
#line 2327 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Yezidi; else return Error; }
#line 5240 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy630:
	yych = *++YYCURSOR;
	if (yych <= 0xDE7F) goto yy629;
	if (yych >= 0xDEC0) goto yy629;
	++YYCURSOR;
#line 2326 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Yezidi; }
#line 5248 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2328 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Arabic_Extended_C:
	
#line 5254 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD803) goto yy633;
	++YYCURSOR;
yy632:
#line 2333 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Arabic_Extended_C; else return Error; }
#line 5263 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy633:
	yych = *++YYCURSOR;
	if (yych <= 0xDEBF) goto yy632;
	if (yych >= 0xDF00) goto yy632;
	++YYCURSOR;
#line 2332 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Arabic_Extended_C; }
#line 5271 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2334 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Old_Sogdian:
	
#line 5277 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD803) goto yy636;
	++YYCURSOR;
yy635:
#line 2339 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Old_Sogdian; else return Error; }
#line 5286 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy636:
	yych = *++YYCURSOR;
	if (yych <= 0xDEFF) goto yy635;
	if (yych >= 0xDF30) goto yy635;
	++YYCURSOR;
#line 2338 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Old_Sogdian; }
#line 5294 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2340 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Sogdian:
	
#line 5300 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD803) goto yy639;
	++YYCURSOR;
yy638:
#line 2345 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Sogdian; else return Error; }
#line 5309 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy639:
	yych = *++YYCURSOR;
	if (yych <= 0xDF2F) goto yy638;
	if (yych >= 0xDF70) goto yy638;
	++YYCURSOR;
#line 2344 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Sogdian; }
#line 5317 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2346 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Old_Uyghur:
	
#line 5323 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD803) goto yy642;
	++YYCURSOR;
yy641:
#line 2351 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Old_Uyghur; else return Error; }
#line 5332 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy642:
	yych = *++YYCURSOR;
	if (yych <= 0xDF6F) goto yy641;
	if (yych >= 0xDFB0) goto yy641;
	++YYCURSOR;
#line 2350 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Old_Uyghur; }
#line 5340 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2352 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Chorasmian:
	
#line 5346 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD803) goto yy645;
	++YYCURSOR;
yy644:
#line 2357 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Chorasmian; else return Error; }
#line 5355 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy645:
	yych = *++YYCURSOR;
	if (yych <= 0xDFAF) goto yy644;
	if (yych >= 0xDFE0) goto yy644;
	++YYCURSOR;
#line 2356 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Chorasmian; }
#line 5363 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2358 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Elymaic:
	
#line 5369 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD803) goto yy648;
	++YYCURSOR;
yy647:
#line 2363 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Elymaic; else return Error; }
#line 5378 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy648:
	yych = *++YYCURSOR;
	if (yych <= 0xDFDF) goto yy647;
	if (yych >= 0xE000) goto yy647;
	++YYCURSOR;
#line 2362 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Elymaic; }
#line 5386 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2364 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Brahmi:
	
#line 5392 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD804) goto yy651;
	++YYCURSOR;
yy650:
#line 2369 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Brahmi; else return Error; }
#line 5401 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy651:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy650;
	if (yych >= 0xDC80) goto yy650;
	++YYCURSOR;
#line 2368 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Brahmi; }
#line 5409 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2370 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Kaithi:
	
#line 5415 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD804) goto yy654;
	++YYCURSOR;
yy653:
#line 2375 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kaithi; else return Error; }
#line 5424 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy654:
	yych = *++YYCURSOR;
	if (yych <= 0xDC7F) goto yy653;
	if (yych >= 0xDCD0) goto yy653;
	++YYCURSOR;
#line 2374 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Kaithi; }
#line 5432 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2376 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Sora_Sompeng:
	
#line 5438 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD804) goto yy657;
	++YYCURSOR;
yy656:
#line 2381 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Sora_Sompeng; else return Error; }
#line 5447 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy657:
	yych = *++YYCURSOR;
	if (yych <= 0xDCCF) goto yy656;
	if (yych >= 0xDD00) goto yy656;
	++YYCURSOR;
#line 2380 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Sora_Sompeng; }
#line 5455 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2382 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Chakma:
	
#line 5461 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD804) goto yy660;
	++YYCURSOR;
yy659:
#line 2387 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Chakma; else return Error; }
#line 5470 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy660:
	yych = *++YYCURSOR;
	if (yych <= 0xDCFF) goto yy659;
	if (yych >= 0xDD50) goto yy659;
	++YYCURSOR;
#line 2386 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Chakma; }
#line 5478 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2388 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Mahajani:
	
#line 5484 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD804) goto yy663;
	++YYCURSOR;
yy662:
#line 2393 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Mahajani; else return Error; }
#line 5493 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy663:
	yych = *++YYCURSOR;
	if (yych <= 0xDD4F) goto yy662;
	if (yych >= 0xDD80) goto yy662;
	++YYCURSOR;
#line 2392 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Mahajani; }
#line 5501 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2394 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Sharada:
	
#line 5507 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD804) goto yy666;
	++YYCURSOR;
yy665:
#line 2399 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Sharada; else return Error; }
#line 5516 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy666:
	yych = *++YYCURSOR;
	if (yych <= 0xDD7F) goto yy665;
	if (yych >= 0xDDE0) goto yy665;
	++YYCURSOR;
#line 2398 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Sharada; }
#line 5524 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2400 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Sinhala_Archaic_Numbers:
	
#line 5530 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD804) goto yy669;
	++YYCURSOR;
yy668:
#line 2405 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Sinhala_Archaic_Numbers; else return Error; }
#line 5539 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy669:
	yych = *++YYCURSOR;
	if (yych <= 0xDDDF) goto yy668;
	if (yych >= 0xDE00) goto yy668;
	++YYCURSOR;
#line 2404 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Sinhala_Archaic_Numbers; }
#line 5547 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2406 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Khojki:
	
#line 5553 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD804) goto yy672;
	++YYCURSOR;
yy671:
#line 2411 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Khojki; else return Error; }
#line 5562 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy672:
	yych = *++YYCURSOR;
	if (yych <= 0xDDFF) goto yy671;
	if (yych >= 0xDE50) goto yy671;
	++YYCURSOR;
#line 2410 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Khojki; }
#line 5570 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2412 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Multani:
	
#line 5576 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD804) goto yy675;
	++YYCURSOR;
yy674:
#line 2417 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Multani; else return Error; }
#line 5585 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy675:
	yych = *++YYCURSOR;
	if (yych <= 0xDE7F) goto yy674;
	if (yych >= 0xDEB0) goto yy674;
	++YYCURSOR;
#line 2416 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Multani; }
#line 5593 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2418 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Khudawadi:
	
#line 5599 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD804) goto yy678;
	++YYCURSOR;
yy677:
#line 2423 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Khudawadi; else return Error; }
#line 5608 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy678:
	yych = *++YYCURSOR;
	if (yych <= 0xDEAF) goto yy677;
	if (yych >= 0xDF00) goto yy677;
	++YYCURSOR;
#line 2422 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Khudawadi; }
#line 5616 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2424 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Grantha:
	
#line 5622 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD804) goto yy681;
	++YYCURSOR;
yy680:
#line 2429 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Grantha; else return Error; }
#line 5631 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy681:
	yych = *++YYCURSOR;
	if (yych <= 0xDEFF) goto yy680;
	if (yych >= 0xDF80) goto yy680;
	++YYCURSOR;
#line 2428 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Grantha; }
#line 5639 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2430 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Tulu_Tigalari:
	
#line 5645 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD804) goto yy684;
	++YYCURSOR;
yy683:
#line 2435 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tulu_Tigalari; else return Error; }
#line 5654 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy684:
	yych = *++YYCURSOR;
	if (yych <= 0xDF7F) goto yy683;
	if (yych >= 0xE000) goto yy683;
	++YYCURSOR;
#line 2434 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Tulu_Tigalari; }
#line 5662 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2436 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Newa:
	
#line 5668 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD805) goto yy687;
	++YYCURSOR;
yy686:
#line 2441 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Newa; else return Error; }
#line 5677 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy687:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy686;
	if (yych >= 0xDC80) goto yy686;
	++YYCURSOR;
#line 2440 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Newa; }
#line 5685 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2442 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Tirhuta:
	
#line 5691 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD805) goto yy690;
	++YYCURSOR;
yy689:
#line 2447 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tirhuta; else return Error; }
#line 5700 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy690:
	yych = *++YYCURSOR;
	if (yych <= 0xDC7F) goto yy689;
	if (yych >= 0xDCE0) goto yy689;
	++YYCURSOR;
#line 2446 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Tirhuta; }
#line 5708 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2448 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Siddham:
	
#line 5714 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD805) goto yy693;
	++YYCURSOR;
yy692:
#line 2453 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Siddham; else return Error; }
#line 5723 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy693:
	yych = *++YYCURSOR;
	if (yych <= 0xDD7F) goto yy692;
	if (yych >= 0xDE00) goto yy692;
	++YYCURSOR;
#line 2452 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Siddham; }
#line 5731 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2454 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Modi:
	
#line 5737 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD805) goto yy696;
	++YYCURSOR;
yy695:
#line 2459 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Modi; else return Error; }
#line 5746 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy696:
	yych = *++YYCURSOR;
	if (yych <= 0xDDFF) goto yy695;
	if (yych >= 0xDE60) goto yy695;
	++YYCURSOR;
#line 2458 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Modi; }
#line 5754 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2460 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Mongolian_Supplement:
	
#line 5760 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD805) goto yy699;
	++YYCURSOR;
yy698:
#line 2465 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Mongolian_Supplement; else return Error; }
#line 5769 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy699:
	yych = *++YYCURSOR;
	if (yych <= 0xDE5F) goto yy698;
	if (yych >= 0xDE80) goto yy698;
	++YYCURSOR;
#line 2464 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Mongolian_Supplement; }
#line 5777 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2466 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Takri:
	
#line 5783 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD805) goto yy702;
	++YYCURSOR;
yy701:
#line 2471 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Takri; else return Error; }
#line 5792 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy702:
	yych = *++YYCURSOR;
	if (yych <= 0xDE7F) goto yy701;
	if (yych >= 0xDED0) goto yy701;
	++YYCURSOR;
#line 2470 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Takri; }
#line 5800 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2472 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Myanmar_Extended_C:
	
#line 5806 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD805) goto yy705;
	++YYCURSOR;
yy704:
#line 2477 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Myanmar_Extended_C; else return Error; }
#line 5815 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy705:
	yych = *++YYCURSOR;
	if (yych <= 0xDECF) goto yy704;
	if (yych >= 0xDF00) goto yy704;
	++YYCURSOR;
#line 2476 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Myanmar_Extended_C; }
#line 5823 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2478 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Ahom:
	
#line 5829 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD805) goto yy708;
	++YYCURSOR;
yy707:
#line 2483 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ahom; else return Error; }
#line 5838 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy708:
	yych = *++YYCURSOR;
	if (yych <= 0xDEFF) goto yy707;
	if (yych >= 0xDF50) goto yy707;
	++YYCURSOR;
#line 2482 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Ahom; }
#line 5846 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2484 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Dogra:
	
#line 5852 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD806) goto yy711;
	++YYCURSOR;
yy710:
#line 2489 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Dogra; else return Error; }
#line 5861 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy711:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy710;
	if (yych >= 0xDC50) goto yy710;
	++YYCURSOR;
#line 2488 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Dogra; }
#line 5869 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2490 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Warang_Citi:
	
#line 5875 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD806) goto yy714;
	++YYCURSOR;
yy713:
#line 2495 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Warang_Citi; else return Error; }
#line 5884 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy714:
	yych = *++YYCURSOR;
	if (yych <= 0xDC9F) goto yy713;
	if (yych >= 0xDD00) goto yy713;
	++YYCURSOR;
#line 2494 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Warang_Citi; }
#line 5892 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2496 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Dives_Akuru:
	
#line 5898 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD806) goto yy717;
	++YYCURSOR;
yy716:
#line 2501 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Dives_Akuru; else return Error; }
#line 5907 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy717:
	yych = *++YYCURSOR;
	if (yych <= 0xDCFF) goto yy716;
	if (yych >= 0xDD60) goto yy716;
	++YYCURSOR;
#line 2500 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Dives_Akuru; }
#line 5915 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2502 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Nandinagari:
	
#line 5921 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD806) goto yy720;
	++YYCURSOR;
yy719:
#line 2507 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Nandinagari; else return Error; }
#line 5930 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy720:
	yych = *++YYCURSOR;
	if (yych <= 0xDD9F) goto yy719;
	if (yych >= 0xDE00) goto yy719;
	++YYCURSOR;
#line 2506 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Nandinagari; }
#line 5938 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2508 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Zanabazar_Square:
	
#line 5944 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD806) goto yy723;
	++YYCURSOR;
yy722:
#line 2513 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Zanabazar_Square; else return Error; }
#line 5953 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy723:
	yych = *++YYCURSOR;
	if (yych <= 0xDDFF) goto yy722;
	if (yych >= 0xDE50) goto yy722;
	++YYCURSOR;
#line 2512 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Zanabazar_Square; }
#line 5961 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2514 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Soyombo:
	
#line 5967 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD806) goto yy726;
	++YYCURSOR;
yy725:
#line 2519 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Soyombo; else return Error; }
#line 5976 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy726:
	yych = *++YYCURSOR;
	if (yych <= 0xDE4F) goto yy725;
	if (yych >= 0xDEB0) goto yy725;
	++YYCURSOR;
#line 2518 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Soyombo; }
#line 5984 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2520 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Unified_Canadian_Aboriginal_Syllabics_Extended_A:
	
#line 5990 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD806) goto yy729;
	++YYCURSOR;
yy728:
#line 2525 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Unified_Canadian_Aboriginal_Syllabics_Extended_A; else return Error; }
#line 5999 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy729:
	yych = *++YYCURSOR;
	if (yych <= 0xDEAF) goto yy728;
	if (yych >= 0xDEC0) goto yy728;
	++YYCURSOR;
#line 2524 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Unified_Canadian_Aboriginal_Syllabics_Extended_A; }
#line 6007 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2526 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Pau_Cin_Hau:
	
#line 6013 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD806) goto yy732;
	++YYCURSOR;
yy731:
#line 2531 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Pau_Cin_Hau; else return Error; }
#line 6022 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy732:
	yych = *++YYCURSOR;
	if (yych <= 0xDEBF) goto yy731;
	if (yych >= 0xDF00) goto yy731;
	++YYCURSOR;
#line 2530 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Pau_Cin_Hau; }
#line 6030 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2532 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Devanagari_Extended_A:
	
#line 6036 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD806) goto yy735;
	++YYCURSOR;
yy734:
#line 2537 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Devanagari_Extended_A; else return Error; }
#line 6045 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy735:
	yych = *++YYCURSOR;
	if (yych <= 0xDEFF) goto yy734;
	if (yych >= 0xDF60) goto yy734;
	++YYCURSOR;
#line 2536 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Devanagari_Extended_A; }
#line 6053 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2538 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Sharada_Supplement:
	
#line 6059 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD806) goto yy738;
	++YYCURSOR;
yy737:
#line 2543 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Sharada_Supplement; else return Error; }
#line 6068 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy738:
	yych = *++YYCURSOR;
	if (yych <= 0xDF5F) goto yy737;
	if (yych >= 0xDF80) goto yy737;
	++YYCURSOR;
#line 2542 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Sharada_Supplement; }
#line 6076 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2544 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Sunuwar:
	
#line 6082 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD806) goto yy741;
	++YYCURSOR;
yy740:
#line 2549 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Sunuwar; else return Error; }
#line 6091 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy741:
	yych = *++YYCURSOR;
	if (yych <= 0xDFBF) goto yy740;
	if (yych >= 0xE000) goto yy740;
	++YYCURSOR;
#line 2548 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Sunuwar; }
#line 6099 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2550 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Bhaiksuki:
	
#line 6105 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD807) goto yy744;
	++YYCURSOR;
yy743:
#line 2555 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Bhaiksuki; else return Error; }
#line 6114 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy744:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy743;
	if (yych >= 0xDC70) goto yy743;
	++YYCURSOR;
#line 2554 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Bhaiksuki; }
#line 6122 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2556 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Marchen:
	
#line 6128 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD807) goto yy747;
	++YYCURSOR;
yy746:
#line 2561 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Marchen; else return Error; }
#line 6137 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy747:
	yych = *++YYCURSOR;
	if (yych <= 0xDC6F) goto yy746;
	if (yych >= 0xDCC0) goto yy746;
	++YYCURSOR;
#line 2560 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Marchen; }
#line 6145 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2562 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Masaram_Gondi:
	
#line 6151 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD807) goto yy750;
	++YYCURSOR;
yy749:
#line 2567 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Masaram_Gondi; else return Error; }
#line 6160 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy750:
	yych = *++YYCURSOR;
	if (yych <= 0xDCFF) goto yy749;
	if (yych >= 0xDD60) goto yy749;
	++YYCURSOR;
#line 2566 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Masaram_Gondi; }
#line 6168 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2568 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Gunjala_Gondi:
	
#line 6174 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD807) goto yy753;
	++YYCURSOR;
yy752:
#line 2573 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Gunjala_Gondi; else return Error; }
#line 6183 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy753:
	yych = *++YYCURSOR;
	if (yych <= 0xDD5F) goto yy752;
	if (yych >= 0xDDB0) goto yy752;
	++YYCURSOR;
#line 2572 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Gunjala_Gondi; }
#line 6191 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2574 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Tolong_Siki:
	
#line 6197 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD807) goto yy756;
	++YYCURSOR;
yy755:
#line 2579 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tolong_Siki; else return Error; }
#line 6206 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy756:
	yych = *++YYCURSOR;
	if (yych <= 0xDDAF) goto yy755;
	if (yych >= 0xDDF0) goto yy755;
	++YYCURSOR;
#line 2578 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Tolong_Siki; }
#line 6214 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2580 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Makasar:
	
#line 6220 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD807) goto yy759;
	++YYCURSOR;
yy758:
#line 2585 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Makasar; else return Error; }
#line 6229 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy759:
	yych = *++YYCURSOR;
	if (yych <= 0xDEDF) goto yy758;
	if (yych >= 0xDF00) goto yy758;
	++YYCURSOR;
#line 2584 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Makasar; }
#line 6237 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2586 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Kawi:
	
#line 6243 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD807) goto yy762;
	++YYCURSOR;
yy761:
#line 2591 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kawi; else return Error; }
#line 6252 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy762:
	yych = *++YYCURSOR;
	if (yych <= 0xDEFF) goto yy761;
	if (yych >= 0xDF60) goto yy761;
	++YYCURSOR;
#line 2590 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Kawi; }
#line 6260 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2592 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Lisu_Supplement:
	
#line 6266 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD807) goto yy765;
	++YYCURSOR;
yy764:
#line 2597 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Lisu_Supplement; else return Error; }
#line 6275 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy765:
	yych = *++YYCURSOR;
	if (yych <= 0xDFAF) goto yy764;
	if (yych >= 0xDFC0) goto yy764;
	++YYCURSOR;
#line 2596 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Lisu_Supplement; }
#line 6283 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2598 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Tamil_Supplement:
	
#line 6289 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD807) goto yy768;
	++YYCURSOR;
yy767:
#line 2603 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tamil_Supplement; else return Error; }
#line 6298 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy768:
	yych = *++YYCURSOR;
	if (yych <= 0xDFBF) goto yy767;
	if (yych >= 0xE000) goto yy767;
	++YYCURSOR;
#line 2602 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Tamil_Supplement; }
#line 6306 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2604 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Cuneiform:
	
#line 6312 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD808) goto yy771;
	++YYCURSOR;
yy770:
#line 2609 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cuneiform; else return Error; }
#line 6321 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy771:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy770;
	if (yych >= 0xE000) goto yy770;
	++YYCURSOR;
#line 2608 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Cuneiform; }
#line 6329 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2610 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Cuneiform_Numbers_and_Punctuation:
	
#line 6335 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD809) goto yy774;
	++YYCURSOR;
yy773:
#line 2615 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cuneiform_Numbers_and_Punctuation; else return Error; }
#line 6344 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy774:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy773;
	if (yych >= 0xDC80) goto yy773;
	++YYCURSOR;
#line 2614 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Cuneiform_Numbers_and_Punctuation; }
#line 6352 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2616 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Early_Dynastic_Cuneiform:
	
#line 6358 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD809) goto yy777;
	++YYCURSOR;
yy776:
#line 2621 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Early_Dynastic_Cuneiform; else return Error; }
#line 6367 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy777:
	yych = *++YYCURSOR;
	if (yych <= 0xDC7F) goto yy776;
	if (yych >= 0xDD50) goto yy776;
	++YYCURSOR;
#line 2620 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Early_Dynastic_Cuneiform; }
#line 6375 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2622 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Cypro_Minoan:
	
#line 6381 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD80B) goto yy780;
	++YYCURSOR;
yy779:
#line 2627 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cypro_Minoan; else return Error; }
#line 6390 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy780:
	yych = *++YYCURSOR;
	if (yych <= 0xDF8F) goto yy779;
	if (yych >= 0xE000) goto yy779;
	++YYCURSOR;
#line 2626 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Cypro_Minoan; }
#line 6398 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2628 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Egyptian_Hieroglyphs:
	
#line 6404 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xD80B) goto yy782;
	if (yych <= 0xD80C) goto yy784;
	if (yych <= 0xD80D) goto yy785;
yy782:
	++YYCURSOR;
yy783:
#line 2633 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Egyptian_Hieroglyphs; else return Error; }
#line 6416 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy784:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy783;
	if (yych <= 0xDFFF) goto yy786;
	goto yy783;
yy785:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy783;
	if (yych >= 0xDC30) goto yy783;
yy786:
	++YYCURSOR;
#line 2632 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Egyptian_Hieroglyphs; }
#line 6430 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2634 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Egyptian_Hieroglyph_Format_Controls:
	
#line 6436 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD80D) goto yy789;
	++YYCURSOR;
yy788:
#line 2639 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Egyptian_Hieroglyph_Format_Controls; else return Error; }
#line 6445 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy789:
	yych = *++YYCURSOR;
	if (yych <= 0xDC2F) goto yy788;
	if (yych >= 0xDC60) goto yy788;
	++YYCURSOR;
#line 2638 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Egyptian_Hieroglyph_Format_Controls; }
#line 6453 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2640 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Egyptian_Hieroglyphs_Extended_A:
	
#line 6459 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xD80C) goto yy791;
	if (yych <= 0xD80D) goto yy793;
	if (yych <= 0xD810) goto yy794;
yy791:
	++YYCURSOR;
yy792:
#line 2645 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Egyptian_Hieroglyphs_Extended_A; else return Error; }
#line 6471 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy793:
	yych = *++YYCURSOR;
	if (yych <= 0xDC5F) goto yy792;
	if (yych <= 0xDFFF) goto yy795;
	goto yy792;
yy794:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy792;
	if (yych >= 0xE000) goto yy792;
yy795:
	++YYCURSOR;
#line 2644 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Egyptian_Hieroglyphs_Extended_A; }
#line 6485 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2646 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Anatolian_Hieroglyphs:
	
#line 6491 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD811) goto yy798;
	++YYCURSOR;
yy797:
#line 2651 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Anatolian_Hieroglyphs; else return Error; }
#line 6500 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy798:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy797;
	if (yych >= 0xDE80) goto yy797;
	++YYCURSOR;
#line 2650 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Anatolian_Hieroglyphs; }
#line 6508 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2652 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Gurung_Khema:
	
#line 6514 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD818) goto yy801;
	++YYCURSOR;
yy800:
#line 2657 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Gurung_Khema; else return Error; }
#line 6523 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy801:
	yych = *++YYCURSOR;
	if (yych <= 0xDCFF) goto yy800;
	if (yych >= 0xDD40) goto yy800;
	++YYCURSOR;
#line 2656 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Gurung_Khema; }
#line 6531 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2658 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Bamum_Supplement:
	
#line 6537 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD81A) goto yy804;
	++YYCURSOR;
yy803:
#line 2663 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Bamum_Supplement; else return Error; }
#line 6546 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy804:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy803;
	if (yych >= 0xDE40) goto yy803;
	++YYCURSOR;
#line 2662 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Bamum_Supplement; }
#line 6554 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2664 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Mro:
	
#line 6560 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD81A) goto yy807;
	++YYCURSOR;
yy806:
#line 2669 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Mro; else return Error; }
#line 6569 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy807:
	yych = *++YYCURSOR;
	if (yych <= 0xDE3F) goto yy806;
	if (yych >= 0xDE70) goto yy806;
	++YYCURSOR;
#line 2668 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Mro; }
#line 6577 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2670 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Tangsa:
	
#line 6583 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD81A) goto yy810;
	++YYCURSOR;
yy809:
#line 2675 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tangsa; else return Error; }
#line 6592 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy810:
	yych = *++YYCURSOR;
	if (yych <= 0xDE6F) goto yy809;
	if (yych >= 0xDED0) goto yy809;
	++YYCURSOR;
#line 2674 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Tangsa; }
#line 6600 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2676 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Bassa_Vah:
	
#line 6606 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD81A) goto yy813;
	++YYCURSOR;
yy812:
#line 2681 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Bassa_Vah; else return Error; }
#line 6615 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy813:
	yych = *++YYCURSOR;
	if (yych <= 0xDECF) goto yy812;
	if (yych >= 0xDF00) goto yy812;
	++YYCURSOR;
#line 2680 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Bassa_Vah; }
#line 6623 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2682 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Pahawh_Hmong:
	
#line 6629 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD81A) goto yy816;
	++YYCURSOR;
yy815:
#line 2687 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Pahawh_Hmong; else return Error; }
#line 6638 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy816:
	yych = *++YYCURSOR;
	if (yych <= 0xDEFF) goto yy815;
	if (yych >= 0xDF90) goto yy815;
	++YYCURSOR;
#line 2686 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Pahawh_Hmong; }
#line 6646 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2688 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Kirat_Rai:
	
#line 6652 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD81B) goto yy819;
	++YYCURSOR;
yy818:
#line 2693 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kirat_Rai; else return Error; }
#line 6661 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy819:
	yych = *++YYCURSOR;
	if (yych <= 0xDD3F) goto yy818;
	if (yych >= 0xDD80) goto yy818;
	++YYCURSOR;
#line 2692 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Kirat_Rai; }
#line 6669 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2694 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Medefaidrin:
	
#line 6675 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD81B) goto yy822;
	++YYCURSOR;
yy821:
#line 2699 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Medefaidrin; else return Error; }
#line 6684 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy822:
	yych = *++YYCURSOR;
	if (yych <= 0xDE3F) goto yy821;
	if (yych >= 0xDEA0) goto yy821;
	++YYCURSOR;
#line 2698 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Medefaidrin; }
#line 6692 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2700 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Beria_Erfe:
	
#line 6698 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD81B) goto yy825;
	++YYCURSOR;
yy824:
#line 2705 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Beria_Erfe; else return Error; }
#line 6707 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy825:
	yych = *++YYCURSOR;
	if (yych <= 0xDE9F) goto yy824;
	if (yych >= 0xDEE0) goto yy824;
	++YYCURSOR;
#line 2704 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Beria_Erfe; }
#line 6715 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2706 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Miao:
	
#line 6721 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD81B) goto yy828;
	++YYCURSOR;
yy827:
#line 2711 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Miao; else return Error; }
#line 6730 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy828:
	yych = *++YYCURSOR;
	if (yych <= 0xDEFF) goto yy827;
	if (yych >= 0xDFA0) goto yy827;
	++YYCURSOR;
#line 2710 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Miao; }
#line 6738 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2712 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Ideographic_Symbols_and_Punctuation:
	
#line 6744 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD81B) goto yy831;
	++YYCURSOR;
yy830:
#line 2717 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ideographic_Symbols_and_Punctuation; else return Error; }
#line 6753 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy831:
	yych = *++YYCURSOR;
	if (yych <= 0xDFDF) goto yy830;
	if (yych >= 0xE000) goto yy830;
	++YYCURSOR;
#line 2716 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Ideographic_Symbols_and_Punctuation; }
#line 6761 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2718 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Tangut:
	
#line 6767 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xD81B) goto yy833;
	if (yych <= 0xD821) goto yy835;
yy833:
	++YYCURSOR;
yy834:
#line 2723 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tangut; else return Error; }
#line 6778 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy835:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy834;
	if (yych >= 0xE000) goto yy834;
	++YYCURSOR;
#line 2722 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Tangut; }
#line 6786 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2724 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Tangut_Components:
	
#line 6792 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD822) goto yy838;
	++YYCURSOR;
yy837:
#line 2729 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tangut_Components; else return Error; }
#line 6801 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy838:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy837;
	if (yych >= 0xDF00) goto yy837;
	++YYCURSOR;
#line 2728 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Tangut_Components; }
#line 6809 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2730 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Khitan_Small_Script:
	
#line 6815 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xD821) goto yy840;
	if (yych <= 0xD822) goto yy842;
	if (yych <= 0xD823) goto yy843;
yy840:
	++YYCURSOR;
yy841:
#line 2735 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Khitan_Small_Script; else return Error; }
#line 6827 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy842:
	yych = *++YYCURSOR;
	if (yych <= 0xDEFF) goto yy841;
	if (yych <= 0xDFFF) goto yy844;
	goto yy841;
yy843:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy841;
	if (yych >= 0xDD00) goto yy841;
yy844:
	++YYCURSOR;
#line 2734 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Khitan_Small_Script; }
#line 6841 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2736 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Tangut_Supplement:
	
#line 6847 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD823) goto yy847;
	++YYCURSOR;
yy846:
#line 2741 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tangut_Supplement; else return Error; }
#line 6856 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy847:
	yych = *++YYCURSOR;
	if (yych <= 0xDCFF) goto yy846;
	if (yych >= 0xDD80) goto yy846;
	++YYCURSOR;
#line 2740 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Tangut_Supplement; }
#line 6864 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2742 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Tangut_Components_Supplement:
	
#line 6870 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD823) goto yy850;
	++YYCURSOR;
yy849:
#line 2747 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tangut_Components_Supplement; else return Error; }
#line 6879 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy850:
	yych = *++YYCURSOR;
	if (yych <= 0xDD7F) goto yy849;
	if (yych >= 0xDE00) goto yy849;
	++YYCURSOR;
#line 2746 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Tangut_Components_Supplement; }
#line 6887 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2748 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Kana_Extended_B:
	
#line 6893 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD82B) goto yy853;
	++YYCURSOR;
yy852:
#line 2753 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kana_Extended_B; else return Error; }
#line 6902 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy853:
	yych = *++YYCURSOR;
	if (yych <= 0xDFEF) goto yy852;
	if (yych >= 0xE000) goto yy852;
	++YYCURSOR;
#line 2752 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Kana_Extended_B; }
#line 6910 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2754 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Kana_Supplement:
	
#line 6916 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD82C) goto yy856;
	++YYCURSOR;
yy855:
#line 2759 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kana_Supplement; else return Error; }
#line 6925 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy856:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy855;
	if (yych >= 0xDD00) goto yy855;
	++YYCURSOR;
#line 2758 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Kana_Supplement; }
#line 6933 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2760 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Kana_Extended_A:
	
#line 6939 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD82C) goto yy859;
	++YYCURSOR;
yy858:
#line 2765 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kana_Extended_A; else return Error; }
#line 6948 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy859:
	yych = *++YYCURSOR;
	if (yych <= 0xDCFF) goto yy858;
	if (yych >= 0xDD30) goto yy858;
	++YYCURSOR;
#line 2764 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Kana_Extended_A; }
#line 6956 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2766 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Small_Kana_Extension:
	
#line 6962 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD82C) goto yy862;
	++YYCURSOR;
yy861:
#line 2771 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Small_Kana_Extension; else return Error; }
#line 6971 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy862:
	yych = *++YYCURSOR;
	if (yych <= 0xDD2F) goto yy861;
	if (yych >= 0xDD70) goto yy861;
	++YYCURSOR;
#line 2770 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Small_Kana_Extension; }
#line 6979 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2772 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Nushu:
	
#line 6985 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD82C) goto yy865;
	++YYCURSOR;
yy864:
#line 2777 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Nushu; else return Error; }
#line 6994 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy865:
	yych = *++YYCURSOR;
	if (yych <= 0xDD6F) goto yy864;
	if (yych >= 0xDF00) goto yy864;
	++YYCURSOR;
#line 2776 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Nushu; }
#line 7002 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2778 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Duployan:
	
#line 7008 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD82F) goto yy868;
	++YYCURSOR;
yy867:
#line 2783 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Duployan; else return Error; }
#line 7017 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy868:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy867;
	if (yych >= 0xDCA0) goto yy867;
	++YYCURSOR;
#line 2782 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Duployan; }
#line 7025 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2784 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Shorthand_Format_Controls:
	
#line 7031 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD82F) goto yy871;
	++YYCURSOR;
yy870:
#line 2789 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Shorthand_Format_Controls; else return Error; }
#line 7040 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy871:
	yych = *++YYCURSOR;
	if (yych <= 0xDC9F) goto yy870;
	if (yych >= 0xDCB0) goto yy870;
	++YYCURSOR;
#line 2788 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Shorthand_Format_Controls; }
#line 7048 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2790 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Symbols_for_Legacy_Computing_Supplement:
	
#line 7054 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD833) goto yy874;
	++YYCURSOR;
yy873:
#line 2795 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Symbols_for_Legacy_Computing_Supplement; else return Error; }
#line 7063 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy874:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy873;
	if (yych >= 0xDEC0) goto yy873;
	++YYCURSOR;
#line 2794 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Symbols_for_Legacy_Computing_Supplement; }
#line 7071 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2796 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Miscellaneous_Symbols_Supplement:
	
#line 7077 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD833) goto yy877;
	++YYCURSOR;
yy876:
#line 2801 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Miscellaneous_Symbols_Supplement; else return Error; }
#line 7086 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy877:
	yych = *++YYCURSOR;
	if (yych <= 0xDEBF) goto yy876;
	if (yych >= 0xDF00) goto yy876;
	++YYCURSOR;
#line 2800 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Miscellaneous_Symbols_Supplement; }
#line 7094 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2802 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Znamenny_Musical_Notation:
	
#line 7100 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD833) goto yy880;
	++YYCURSOR;
yy879:
#line 2807 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Znamenny_Musical_Notation; else return Error; }
#line 7109 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy880:
	yych = *++YYCURSOR;
	if (yych <= 0xDEFF) goto yy879;
	if (yych >= 0xDFD0) goto yy879;
	++YYCURSOR;
#line 2806 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Znamenny_Musical_Notation; }
#line 7117 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2808 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Byzantine_Musical_Symbols:
	
#line 7123 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD834) goto yy883;
	++YYCURSOR;
yy882:
#line 2813 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Byzantine_Musical_Symbols; else return Error; }
#line 7132 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy883:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy882;
	if (yych >= 0xDD00) goto yy882;
	++YYCURSOR;
#line 2812 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Byzantine_Musical_Symbols; }
#line 7140 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2814 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Musical_Symbols:
	
#line 7146 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD834) goto yy886;
	++YYCURSOR;
yy885:
#line 2819 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Musical_Symbols; else return Error; }
#line 7155 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy886:
	yych = *++YYCURSOR;
	if (yych <= 0xDCFF) goto yy885;
	if (yych >= 0xDE00) goto yy885;
	++YYCURSOR;
#line 2818 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Musical_Symbols; }
#line 7163 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2820 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Ancient_Greek_Musical_Notation:
	
#line 7169 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD834) goto yy889;
	++YYCURSOR;
yy888:
#line 2825 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ancient_Greek_Musical_Notation; else return Error; }
#line 7178 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy889:
	yych = *++YYCURSOR;
	if (yych <= 0xDDFF) goto yy888;
	if (yych >= 0xDE50) goto yy888;
	++YYCURSOR;
#line 2824 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Ancient_Greek_Musical_Notation; }
#line 7186 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2826 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Kaktovik_Numerals:
	
#line 7192 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD834) goto yy892;
	++YYCURSOR;
yy891:
#line 2831 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kaktovik_Numerals; else return Error; }
#line 7201 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy892:
	yych = *++YYCURSOR;
	if (yych <= 0xDEBF) goto yy891;
	if (yych >= 0xDEE0) goto yy891;
	++YYCURSOR;
#line 2830 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Kaktovik_Numerals; }
#line 7209 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2832 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Mayan_Numerals:
	
#line 7215 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD834) goto yy895;
	++YYCURSOR;
yy894:
#line 2837 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Mayan_Numerals; else return Error; }
#line 7224 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy895:
	yych = *++YYCURSOR;
	if (yych <= 0xDEDF) goto yy894;
	if (yych >= 0xDF00) goto yy894;
	++YYCURSOR;
#line 2836 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Mayan_Numerals; }
#line 7232 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2838 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Tai_Xuan_Jing_Symbols:
	
#line 7238 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD834) goto yy898;
	++YYCURSOR;
yy897:
#line 2843 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tai_Xuan_Jing_Symbols; else return Error; }
#line 7247 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy898:
	yych = *++YYCURSOR;
	if (yych <= 0xDEFF) goto yy897;
	if (yych >= 0xDF60) goto yy897;
	++YYCURSOR;
#line 2842 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Tai_Xuan_Jing_Symbols; }
#line 7255 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2844 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Counting_Rod_Numerals:
	
#line 7261 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD834) goto yy901;
	++YYCURSOR;
yy900:
#line 2849 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Counting_Rod_Numerals; else return Error; }
#line 7270 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy901:
	yych = *++YYCURSOR;
	if (yych <= 0xDF5F) goto yy900;
	if (yych >= 0xDF80) goto yy900;
	++YYCURSOR;
#line 2848 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Counting_Rod_Numerals; }
#line 7278 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2850 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Mathematical_Alphanumeric_Symbols:
	
#line 7284 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD835) goto yy904;
	++YYCURSOR;
yy903:
#line 2855 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Mathematical_Alphanumeric_Symbols; else return Error; }
#line 7293 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy904:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy903;
	if (yych >= 0xE000) goto yy903;
	++YYCURSOR;
#line 2854 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Mathematical_Alphanumeric_Symbols; }
#line 7301 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2856 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Sutton_SignWriting:
	
#line 7307 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD836) goto yy907;
	++YYCURSOR;
yy906:
#line 2861 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Sutton_SignWriting; else return Error; }
#line 7316 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy907:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy906;
	if (yych >= 0xDEB0) goto yy906;
	++YYCURSOR;
#line 2860 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Sutton_SignWriting; }
#line 7324 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2862 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Latin_Extended_G:
	
#line 7330 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD837) goto yy910;
	++YYCURSOR;
yy909:
#line 2867 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Latin_Extended_G; else return Error; }
#line 7339 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy910:
	yych = *++YYCURSOR;
	if (yych <= 0xDEFF) goto yy909;
	if (yych >= 0xE000) goto yy909;
	++YYCURSOR;
#line 2866 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Latin_Extended_G; }
#line 7347 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2868 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Glagolitic_Supplement:
	
#line 7353 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD838) goto yy913;
	++YYCURSOR;
yy912:
#line 2873 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Glagolitic_Supplement; else return Error; }
#line 7362 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy913:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy912;
	if (yych >= 0xDC30) goto yy912;
	++YYCURSOR;
#line 2872 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Glagolitic_Supplement; }
#line 7370 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2874 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Cyrillic_Extended_D:
	
#line 7376 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD838) goto yy916;
	++YYCURSOR;
yy915:
#line 2879 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cyrillic_Extended_D; else return Error; }
#line 7385 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy916:
	yych = *++YYCURSOR;
	if (yych <= 0xDC2F) goto yy915;
	if (yych >= 0xDC90) goto yy915;
	++YYCURSOR;
#line 2878 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Cyrillic_Extended_D; }
#line 7393 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2880 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Nyiakeng_Puachue_Hmong:
	
#line 7399 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD838) goto yy919;
	++YYCURSOR;
yy918:
#line 2885 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Nyiakeng_Puachue_Hmong; else return Error; }
#line 7408 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy919:
	yych = *++YYCURSOR;
	if (yych <= 0xDCFF) goto yy918;
	if (yych >= 0xDD50) goto yy918;
	++YYCURSOR;
#line 2884 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Nyiakeng_Puachue_Hmong; }
#line 7416 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2886 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Toto:
	
#line 7422 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD838) goto yy922;
	++YYCURSOR;
yy921:
#line 2891 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Toto; else return Error; }
#line 7431 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy922:
	yych = *++YYCURSOR;
	if (yych <= 0xDE8F) goto yy921;
	if (yych >= 0xDEC0) goto yy921;
	++YYCURSOR;
#line 2890 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Toto; }
#line 7439 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2892 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Wancho:
	
#line 7445 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD838) goto yy925;
	++YYCURSOR;
yy924:
#line 2897 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Wancho; else return Error; }
#line 7454 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy925:
	yych = *++YYCURSOR;
	if (yych <= 0xDEBF) goto yy924;
	if (yych >= 0xDF00) goto yy924;
	++YYCURSOR;
#line 2896 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Wancho; }
#line 7462 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2898 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Nag_Mundari:
	
#line 7468 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD839) goto yy928;
	++YYCURSOR;
yy927:
#line 2903 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Nag_Mundari; else return Error; }
#line 7477 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy928:
	yych = *++YYCURSOR;
	if (yych <= 0xDCCF) goto yy927;
	if (yych >= 0xDD00) goto yy927;
	++YYCURSOR;
#line 2902 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Nag_Mundari; }
#line 7485 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2904 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Ol_Onal:
	
#line 7491 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD839) goto yy931;
	++YYCURSOR;
yy930:
#line 2909 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ol_Onal; else return Error; }
#line 7500 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy931:
	yych = *++YYCURSOR;
	if (yych <= 0xDDCF) goto yy930;
	if (yych >= 0xDE00) goto yy930;
	++YYCURSOR;
#line 2908 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Ol_Onal; }
#line 7508 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2910 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Tai_Yo:
	
#line 7514 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD839) goto yy934;
	++YYCURSOR;
yy933:
#line 2915 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tai_Yo; else return Error; }
#line 7523 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy934:
	yych = *++YYCURSOR;
	if (yych <= 0xDEBF) goto yy933;
	if (yych >= 0xDF00) goto yy933;
	++YYCURSOR;
#line 2914 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Tai_Yo; }
#line 7531 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2916 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Ethiopic_Extended_B:
	
#line 7537 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD839) goto yy937;
	++YYCURSOR;
yy936:
#line 2921 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ethiopic_Extended_B; else return Error; }
#line 7546 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy937:
	yych = *++YYCURSOR;
	if (yych <= 0xDFDF) goto yy936;
	if (yych >= 0xE000) goto yy936;
	++YYCURSOR;
#line 2920 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Ethiopic_Extended_B; }
#line 7554 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2922 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Mende_Kikakui:
	
#line 7560 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD83A) goto yy940;
	++YYCURSOR;
yy939:
#line 2927 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Mende_Kikakui; else return Error; }
#line 7569 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy940:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy939;
	if (yych >= 0xDCE0) goto yy939;
	++YYCURSOR;
#line 2926 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Mende_Kikakui; }
#line 7577 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2928 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Adlam:
	
#line 7583 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD83A) goto yy943;
	++YYCURSOR;
yy942:
#line 2933 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Adlam; else return Error; }
#line 7592 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy943:
	yych = *++YYCURSOR;
	if (yych <= 0xDCFF) goto yy942;
	if (yych >= 0xDD60) goto yy942;
	++YYCURSOR;
#line 2932 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Adlam; }
#line 7600 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2934 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Indic_Siyaq_Numbers:
	
#line 7606 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD83B) goto yy946;
	++YYCURSOR;
yy945:
#line 2939 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Indic_Siyaq_Numbers; else return Error; }
#line 7615 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy946:
	yych = *++YYCURSOR;
	if (yych <= 0xDC6F) goto yy945;
	if (yych >= 0xDCC0) goto yy945;
	++YYCURSOR;
#line 2938 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Indic_Siyaq_Numbers; }
#line 7623 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2940 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Ottoman_Siyaq_Numbers:
	
#line 7629 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD83B) goto yy949;
	++YYCURSOR;
yy948:
#line 2945 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ottoman_Siyaq_Numbers; else return Error; }
#line 7638 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy949:
	yych = *++YYCURSOR;
	if (yych <= 0xDCFF) goto yy948;
	if (yych >= 0xDD50) goto yy948;
	++YYCURSOR;
#line 2944 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Ottoman_Siyaq_Numbers; }
#line 7646 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2946 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Arabic_Mathematical_Alphabetic_Symbols:
	
#line 7652 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD83B) goto yy952;
	++YYCURSOR;
yy951:
#line 2951 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Arabic_Mathematical_Alphabetic_Symbols; else return Error; }
#line 7661 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy952:
	yych = *++YYCURSOR;
	if (yych <= 0xDDFF) goto yy951;
	if (yych >= 0xDF00) goto yy951;
	++YYCURSOR;
#line 2950 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Arabic_Mathematical_Alphabetic_Symbols; }
#line 7669 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2952 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Mahjong_Tiles:
	
#line 7675 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD83C) goto yy955;
	++YYCURSOR;
yy954:
#line 2957 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Mahjong_Tiles; else return Error; }
#line 7684 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy955:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy954;
	if (yych >= 0xDC30) goto yy954;
	++YYCURSOR;
#line 2956 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Mahjong_Tiles; }
#line 7692 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2958 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Domino_Tiles:
	
#line 7698 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD83C) goto yy958;
	++YYCURSOR;
yy957:
#line 2963 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Domino_Tiles; else return Error; }
#line 7707 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy958:
	yych = *++YYCURSOR;
	if (yych <= 0xDC2F) goto yy957;
	if (yych >= 0xDCA0) goto yy957;
	++YYCURSOR;
#line 2962 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Domino_Tiles; }
#line 7715 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2964 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Playing_Cards:
	
#line 7721 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD83C) goto yy961;
	++YYCURSOR;
yy960:
#line 2969 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Playing_Cards; else return Error; }
#line 7730 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy961:
	yych = *++YYCURSOR;
	if (yych <= 0xDC9F) goto yy960;
	if (yych >= 0xDD00) goto yy960;
	++YYCURSOR;
#line 2968 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Playing_Cards; }
#line 7738 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2970 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Enclosed_Alphanumeric_Supplement:
	
#line 7744 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD83C) goto yy964;
	++YYCURSOR;
yy963:
#line 2975 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Enclosed_Alphanumeric_Supplement; else return Error; }
#line 7753 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy964:
	yych = *++YYCURSOR;
	if (yych <= 0xDCFF) goto yy963;
	if (yych >= 0xDE00) goto yy963;
	++YYCURSOR;
#line 2974 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Enclosed_Alphanumeric_Supplement; }
#line 7761 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2976 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Enclosed_Ideographic_Supplement:
	
#line 7767 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD83C) goto yy967;
	++YYCURSOR;
yy966:
#line 2981 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Enclosed_Ideographic_Supplement; else return Error; }
#line 7776 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy967:
	yych = *++YYCURSOR;
	if (yych <= 0xDDFF) goto yy966;
	if (yych >= 0xDF00) goto yy966;
	++YYCURSOR;
#line 2980 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Enclosed_Ideographic_Supplement; }
#line 7784 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2982 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Miscellaneous_Symbols_and_Pictographs:
	
#line 7790 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xD83B) goto yy969;
	if (yych <= 0xD83C) goto yy971;
	if (yych <= 0xD83D) goto yy972;
yy969:
	++YYCURSOR;
yy970:
#line 2987 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Miscellaneous_Symbols_and_Pictographs; else return Error; }
#line 7802 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy971:
	yych = *++YYCURSOR;
	if (yych <= 0xDEFF) goto yy970;
	if (yych <= 0xDFFF) goto yy973;
	goto yy970;
yy972:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy970;
	if (yych >= 0xDE00) goto yy970;
yy973:
	++YYCURSOR;
#line 2986 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Miscellaneous_Symbols_and_Pictographs; }
#line 7816 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2988 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Emoticons:
	
#line 7822 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD83D) goto yy976;
	++YYCURSOR;
yy975:
#line 2993 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Emoticons; else return Error; }
#line 7831 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy976:
	yych = *++YYCURSOR;
	if (yych <= 0xDDFF) goto yy975;
	if (yych >= 0xDE50) goto yy975;
	++YYCURSOR;
#line 2992 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Emoticons; }
#line 7839 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 2994 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Ornamental_Dingbats:
	
#line 7845 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD83D) goto yy979;
	++YYCURSOR;
yy978:
#line 2999 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ornamental_Dingbats; else return Error; }
#line 7854 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy979:
	yych = *++YYCURSOR;
	if (yych <= 0xDE4F) goto yy978;
	if (yych >= 0xDE80) goto yy978;
	++YYCURSOR;
#line 2998 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Ornamental_Dingbats; }
#line 7862 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3000 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Transport_and_Map_Symbols:
	
#line 7868 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD83D) goto yy982;
	++YYCURSOR;
yy981:
#line 3005 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Transport_and_Map_Symbols; else return Error; }
#line 7877 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy982:
	yych = *++YYCURSOR;
	if (yych <= 0xDE7F) goto yy981;
	if (yych >= 0xDF00) goto yy981;
	++YYCURSOR;
#line 3004 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Transport_and_Map_Symbols; }
#line 7885 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3006 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Alchemical_Symbols:
	
#line 7891 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD83D) goto yy985;
	++YYCURSOR;
yy984:
#line 3011 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Alchemical_Symbols; else return Error; }
#line 7900 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy985:
	yych = *++YYCURSOR;
	if (yych <= 0xDEFF) goto yy984;
	if (yych >= 0xDF80) goto yy984;
	++YYCURSOR;
#line 3010 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Alchemical_Symbols; }
#line 7908 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3012 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Geometric_Shapes_Extended:
	
#line 7914 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD83D) goto yy988;
	++YYCURSOR;
yy987:
#line 3017 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Geometric_Shapes_Extended; else return Error; }
#line 7923 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy988:
	yych = *++YYCURSOR;
	if (yych <= 0xDF7F) goto yy987;
	if (yych >= 0xE000) goto yy987;
	++YYCURSOR;
#line 3016 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Geometric_Shapes_Extended; }
#line 7931 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3018 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Supplemental_Arrows_C:
	
#line 7937 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD83E) goto yy991;
	++YYCURSOR;
yy990:
#line 3023 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Supplemental_Arrows_C; else return Error; }
#line 7946 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy991:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy990;
	if (yych >= 0xDD00) goto yy990;
	++YYCURSOR;
#line 3022 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Supplemental_Arrows_C; }
#line 7954 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3024 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Supplemental_Symbols_and_Pictographs:
	
#line 7960 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD83E) goto yy994;
	++YYCURSOR;
yy993:
#line 3029 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Supplemental_Symbols_and_Pictographs; else return Error; }
#line 7969 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy994:
	yych = *++YYCURSOR;
	if (yych <= 0xDCFF) goto yy993;
	if (yych >= 0xDE00) goto yy993;
	++YYCURSOR;
#line 3028 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Supplemental_Symbols_and_Pictographs; }
#line 7977 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3030 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Chess_Symbols:
	
#line 7983 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD83E) goto yy997;
	++YYCURSOR;
yy996:
#line 3035 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Chess_Symbols; else return Error; }
#line 7992 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy997:
	yych = *++YYCURSOR;
	if (yych <= 0xDDFF) goto yy996;
	if (yych >= 0xDE70) goto yy996;
	++YYCURSOR;
#line 3034 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Chess_Symbols; }
#line 8000 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3036 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Symbols_and_Pictographs_Extended_A:
	
#line 8006 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD83E) goto yy1000;
	++YYCURSOR;
yy999:
#line 3041 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Symbols_and_Pictographs_Extended_A; else return Error; }
#line 8015 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy1000:
	yych = *++YYCURSOR;
	if (yych <= 0xDE6F) goto yy999;
	if (yych >= 0xDF00) goto yy999;
	++YYCURSOR;
#line 3040 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Symbols_and_Pictographs_Extended_A; }
#line 8023 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3042 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Symbols_for_Legacy_Computing:
	
#line 8029 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD83E) goto yy1003;
	++YYCURSOR;
yy1002:
#line 3047 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Symbols_for_Legacy_Computing; else return Error; }
#line 8038 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy1003:
	yych = *++YYCURSOR;
	if (yych <= 0xDEFF) goto yy1002;
	if (yych >= 0xE000) goto yy1002;
	++YYCURSOR;
#line 3046 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Symbols_for_Legacy_Computing; }
#line 8046 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3048 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

CJK_Unified_Ideographs_Extension_B:
	
#line 8052 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xD83F) goto yy1005;
	if (yych <= 0xD868) goto yy1007;
	if (yych <= 0xD869) goto yy1008;
yy1005:
	++YYCURSOR;
yy1006:
#line 3053 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Unified_Ideographs_Extension_B; else return Error; }
#line 8064 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy1007:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy1006;
	if (yych <= 0xDFFF) goto yy1009;
	goto yy1006;
yy1008:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy1006;
	if (yych >= 0xDEE0) goto yy1006;
yy1009:
	++YYCURSOR;
#line 3052 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto CJK_Unified_Ideographs_Extension_B; }
#line 8078 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3054 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

CJK_Unified_Ideographs_Extension_C:
	
#line 8084 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xD868) goto yy1011;
	if (yych <= 0xD869) goto yy1013;
	if (yych <= 0xD86C) goto yy1014;
	if (yych <= 0xD86D) goto yy1015;
yy1011:
	++YYCURSOR;
yy1012:
#line 3059 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Unified_Ideographs_Extension_C; else return Error; }
#line 8097 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy1013:
	yych = *++YYCURSOR;
	if (yych <= 0xDEFF) goto yy1012;
	if (yych <= 0xDFFF) goto yy1016;
	goto yy1012;
yy1014:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy1012;
	if (yych <= 0xDFFF) goto yy1016;
	goto yy1012;
yy1015:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy1012;
	if (yych >= 0xDF40) goto yy1012;
yy1016:
	++YYCURSOR;
#line 3058 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto CJK_Unified_Ideographs_Extension_C; }
#line 8116 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3060 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

CJK_Unified_Ideographs_Extension_D:
	
#line 8122 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xD86C) goto yy1018;
	if (yych <= 0xD86D) goto yy1020;
	if (yych <= 0xD86E) goto yy1021;
yy1018:
	++YYCURSOR;
yy1019:
#line 3065 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Unified_Ideographs_Extension_D; else return Error; }
#line 8134 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy1020:
	yych = *++YYCURSOR;
	if (yych <= 0xDF3F) goto yy1019;
	if (yych <= 0xDFFF) goto yy1022;
	goto yy1019;
yy1021:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy1019;
	if (yych >= 0xDC20) goto yy1019;
yy1022:
	++YYCURSOR;
#line 3064 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto CJK_Unified_Ideographs_Extension_D; }
#line 8148 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3066 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

CJK_Unified_Ideographs_Extension_E:
	
#line 8154 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xD86D) goto yy1024;
	if (yych <= 0xD86E) goto yy1026;
	if (yych <= 0xD872) goto yy1027;
	if (yych <= 0xD873) goto yy1028;
yy1024:
	++YYCURSOR;
yy1025:
#line 3071 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Unified_Ideographs_Extension_E; else return Error; }
#line 8167 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy1026:
	yych = *++YYCURSOR;
	if (yych <= 0xDC1F) goto yy1025;
	if (yych <= 0xDFFF) goto yy1029;
	goto yy1025;
yy1027:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy1025;
	if (yych <= 0xDFFF) goto yy1029;
	goto yy1025;
yy1028:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy1025;
	if (yych >= 0xDEB0) goto yy1025;
yy1029:
	++YYCURSOR;
#line 3070 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto CJK_Unified_Ideographs_Extension_E; }
#line 8186 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3072 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

CJK_Unified_Ideographs_Extension_F:
	
#line 8192 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xD872) goto yy1031;
	if (yych <= 0xD873) goto yy1033;
	if (yych <= 0xD879) goto yy1034;
	if (yych <= 0xD87A) goto yy1035;
yy1031:
	++YYCURSOR;
yy1032:
#line 3077 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Unified_Ideographs_Extension_F; else return Error; }
#line 8205 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy1033:
	yych = *++YYCURSOR;
	if (yych <= 0xDEAF) goto yy1032;
	if (yych <= 0xDFFF) goto yy1036;
	goto yy1032;
yy1034:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy1032;
	if (yych <= 0xDFFF) goto yy1036;
	goto yy1032;
yy1035:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy1032;
	if (yych >= 0xDFF0) goto yy1032;
yy1036:
	++YYCURSOR;
#line 3076 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto CJK_Unified_Ideographs_Extension_F; }
#line 8224 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3078 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

CJK_Unified_Ideographs_Extension_I:
	
#line 8230 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xD879) goto yy1038;
	if (yych <= 0xD87A) goto yy1040;
	if (yych <= 0xD87B) goto yy1041;
yy1038:
	++YYCURSOR;
yy1039:
#line 3083 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Unified_Ideographs_Extension_I; else return Error; }
#line 8242 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy1040:
	yych = *++YYCURSOR;
	if (yych <= 0xDFEF) goto yy1039;
	if (yych <= 0xDFFF) goto yy1042;
	goto yy1039;
yy1041:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy1039;
	if (yych >= 0xDE60) goto yy1039;
yy1042:
	++YYCURSOR;
#line 3082 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto CJK_Unified_Ideographs_Extension_I; }
#line 8256 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3084 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

CJK_Compatibility_Ideographs_Supplement:
	
#line 8262 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xD87E) goto yy1045;
	++YYCURSOR;
yy1044:
#line 3089 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Compatibility_Ideographs_Supplement; else return Error; }
#line 8271 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy1045:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy1044;
	if (yych >= 0xDE20) goto yy1044;
	++YYCURSOR;
#line 3088 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto CJK_Compatibility_Ideographs_Supplement; }
#line 8279 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3090 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

CJK_Unified_Ideographs_Extension_G:
	
#line 8285 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xD87F) goto yy1047;
	if (yych <= 0xD883) goto yy1049;
	if (yych <= 0xD884) goto yy1050;
yy1047:
	++YYCURSOR;
yy1048:
#line 3095 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Unified_Ideographs_Extension_G; else return Error; }
#line 8297 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy1049:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy1048;
	if (yych <= 0xDFFF) goto yy1051;
	goto yy1048;
yy1050:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy1048;
	if (yych >= 0xDF50) goto yy1048;
yy1051:
	++YYCURSOR;
#line 3094 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto CJK_Unified_Ideographs_Extension_G; }
#line 8311 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3096 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

CJK_Unified_Ideographs_Extension_H:
	
#line 8317 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xD883) goto yy1053;
	if (yych <= 0xD884) goto yy1055;
	if (yych <= 0xD887) goto yy1056;
	if (yych <= 0xD888) goto yy1057;
yy1053:
	++YYCURSOR;
yy1054:
#line 3101 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Unified_Ideographs_Extension_H; else return Error; }
#line 8330 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy1055:
	yych = *++YYCURSOR;
	if (yych <= 0xDF4F) goto yy1054;
	if (yych <= 0xDFFF) goto yy1058;
	goto yy1054;
yy1056:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy1054;
	if (yych <= 0xDFFF) goto yy1058;
	goto yy1054;
yy1057:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy1054;
	if (yych >= 0xDFB0) goto yy1054;
yy1058:
	++YYCURSOR;
#line 3100 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto CJK_Unified_Ideographs_Extension_H; }
#line 8349 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3102 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

CJK_Unified_Ideographs_Extension_J:
	
#line 8355 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xD887) goto yy1060;
	if (yych <= 0xD888) goto yy1062;
	if (yych <= 0xD88C) goto yy1063;
	if (yych <= 0xD88D) goto yy1064;
yy1060:
	++YYCURSOR;
yy1061:
#line 3107 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Unified_Ideographs_Extension_J; else return Error; }
#line 8368 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy1062:
	yych = *++YYCURSOR;
	if (yych <= 0xDFAF) goto yy1061;
	if (yych <= 0xDFFF) goto yy1065;
	goto yy1061;
yy1063:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy1061;
	if (yych <= 0xDFFF) goto yy1065;
	goto yy1061;
yy1064:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy1061;
	if (yych >= 0xDC80) goto yy1061;
yy1065:
	++YYCURSOR;
#line 3106 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto CJK_Unified_Ideographs_Extension_J; }
#line 8387 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3108 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Tags:
	
#line 8393 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xDB40) goto yy1068;
	++YYCURSOR;
yy1067:
#line 3113 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tags; else return Error; }
#line 8402 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy1068:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy1067;
	if (yych >= 0xDC80) goto yy1067;
	++YYCURSOR;
#line 3112 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Tags; }
#line 8410 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3114 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Variation_Selectors_Supplement:
	
#line 8416 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0xDB40) goto yy1071;
	++YYCURSOR;
yy1070:
#line 3119 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Variation_Selectors_Supplement; else return Error; }
#line 8425 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy1071:
	yych = *++YYCURSOR;
	if (yych <= 0xDCFF) goto yy1070;
	if (yych >= 0xDDF0) goto yy1070;
	++YYCURSOR;
#line 3118 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Variation_Selectors_Supplement; }
#line 8433 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3120 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Supplementary_Private_Use_Area_A:
	
#line 8439 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xDB7F) goto yy1073;
	if (yych <= 0xDBBF) goto yy1075;
yy1073:
	++YYCURSOR;
yy1074:
#line 3125 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Supplementary_Private_Use_Area_A; else return Error; }
#line 8450 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy1075:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy1074;
	if (yych >= 0xE000) goto yy1074;
	++YYCURSOR;
#line 3124 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Supplementary_Private_Use_Area_A; }
#line 8458 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3126 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

Supplementary_Private_Use_Area_B:
	
#line 8464 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0xDBBF) goto yy1077;
	if (yych <= 0xDBFF) goto yy1079;
yy1077:
	++YYCURSOR;
yy1078:
#line 3131 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Supplementary_Private_Use_Area_B; else return Error; }
#line 8475 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
yy1079:
	yych = *++YYCURSOR;
	if (yych <= 0xDBFF) goto yy1078;
	if (yych >= 0xE000) goto yy1078;
	++YYCURSOR;
#line 3130 "encodings/unicode_blocks_x_encoding_policy_substitute.re"
	{ goto Supplementary_Private_Use_Area_B; }
#line 8483 "encodings/unicode_blocks_x_encoding_policy_substitute.c"
}
#line 3132 "encodings/unicode_blocks_x_encoding_policy_substitute.re"

}

static const uint32_t chars_Basic_Latin[] = {0x0,0x7f};
static const uint32_t chars_Latin_1_Supplement[] = {0x80,0xff};
static const uint32_t chars_Latin_Extended_A[] = {0x100,0x17f};
static const uint32_t chars_Latin_Extended_B[] = {0x180,0x24f};
static const uint32_t chars_IPA_Extensions[] = {0x250,0x2af};
static const uint32_t chars_Spacing_Modifier_Letters[] = {0x2b0,0x2ff};
static const uint32_t chars_Combining_Diacritical_Marks[] = {0x300,0x36f};
static const uint32_t chars_Greek_and_Coptic[] = {0x370,0x3ff};
static const uint32_t chars_Cyrillic[] = {0x400,0x4ff};
static const uint32_t chars_Cyrillic_Supplement[] = {0x500,0x52f};
static const uint32_t chars_Armenian[] = {0x530,0x58f};
static const uint32_t chars_Hebrew[] = {0x590,0x5ff};
static const uint32_t chars_Arabic[] = {0x600,0x6ff};
static const uint32_t chars_Syriac[] = {0x700,0x74f};
static const uint32_t chars_Arabic_Supplement[] = {0x750,0x77f};
static const uint32_t chars_Thaana[] = {0x780,0x7bf};
static const uint32_t chars_NKo[] = {0x7c0,0x7ff};
static const uint32_t chars_Samaritan[] = {0x800,0x83f};
static const uint32_t chars_Mandaic[] = {0x840,0x85f};
static const uint32_t chars_Syriac_Supplement[] = {0x860,0x86f};
static const uint32_t chars_Arabic_Extended_B[] = {0x870,0x89f};
static const uint32_t chars_Arabic_Extended_A[] = {0x8a0,0x8ff};
static const uint32_t chars_Devanagari[] = {0x900,0x97f};
static const uint32_t chars_Bengali[] = {0x980,0x9ff};
static const uint32_t chars_Gurmukhi[] = {0xa00,0xa7f};
static const uint32_t chars_Gujarati[] = {0xa80,0xaff};
static const uint32_t chars_Oriya[] = {0xb00,0xb7f};
static const uint32_t chars_Tamil[] = {0xb80,0xbff};
static const uint32_t chars_Telugu[] = {0xc00,0xc7f};
static const uint32_t chars_Kannada[] = {0xc80,0xcff};
static const uint32_t chars_Malayalam[] = {0xd00,0xd7f};
static const uint32_t chars_Sinhala[] = {0xd80,0xdff};
static const uint32_t chars_Thai[] = {0xe00,0xe7f};
static const uint32_t chars_Lao[] = {0xe80,0xeff};
static const uint32_t chars_Tibetan[] = {0xf00,0xfff};
static const uint32_t chars_Myanmar[] = {0x1000,0x109f};
static const uint32_t chars_Georgian[] = {0x10a0,0x10ff};
static const uint32_t chars_Hangul_Jamo[] = {0x1100,0x11ff};
static const uint32_t chars_Ethiopic[] = {0x1200,0x137f};
static const uint32_t chars_Ethiopic_Supplement[] = {0x1380,0x139f};
static const uint32_t chars_Cherokee[] = {0x13a0,0x13ff};
static const uint32_t chars_Unified_Canadian_Aboriginal_Syllabics[] = {0x1400,0x167f};
static const uint32_t chars_Ogham[] = {0x1680,0x169f};
static const uint32_t chars_Runic[] = {0x16a0,0x16ff};
static const uint32_t chars_Tagalog[] = {0x1700,0x171f};
static const uint32_t chars_Hanunoo[] = {0x1720,0x173f};
static const uint32_t chars_Buhid[] = {0x1740,0x175f};
static const uint32_t chars_Tagbanwa[] = {0x1760,0x177f};
static const uint32_t chars_Khmer[] = {0x1780,0x17ff};
static const uint32_t chars_Mongolian[] = {0x1800,0x18af};
static const uint32_t chars_Unified_Canadian_Aboriginal_Syllabics_Extended[] = {0x18b0,0x18ff};
static const uint32_t chars_Limbu[] = {0x1900,0x194f};
static const uint32_t chars_Tai_Le[] = {0x1950,0x197f};
static const uint32_t chars_New_Tai_Lue[] = {0x1980,0x19df};
static const uint32_t chars_Khmer_Symbols[] = {0x19e0,0x19ff};
static const uint32_t chars_Buginese[] = {0x1a00,0x1a1f};
static const uint32_t chars_Tai_Tham[] = {0x1a20,0x1aaf};
static const uint32_t chars_Combining_Diacritical_Marks_Extended[] = {0x1ab0,0x1aff};
static const uint32_t chars_Balinese[] = {0x1b00,0x1b7f};
static const uint32_t chars_Sundanese[] = {0x1b80,0x1bbf};
static const uint32_t chars_Batak[] = {0x1bc0,0x1bff};
static const uint32_t chars_Lepcha[] = {0x1c00,0x1c4f};
static const uint32_t chars_Ol_Chiki[] = {0x1c50,0x1c7f};
static const uint32_t chars_Cyrillic_Extended_C[] = {0x1c80,0x1c8f};
static const uint32_t chars_Georgian_Extended[] = {0x1c90,0x1cbf};
static const uint32_t chars_Sundanese_Supplement[] = {0x1cc0,0x1ccf};
static const uint32_t chars_Vedic_Extensions[] = {0x1cd0,0x1cff};
static const uint32_t chars_Phonetic_Extensions[] = {0x1d00,0x1d7f};
static const uint32_t chars_Phonetic_Extensions_Supplement[] = {0x1d80,0x1dbf};
static const uint32_t chars_Combining_Diacritical_Marks_Supplement[] = {0x1dc0,0x1dff};
static const uint32_t chars_Latin_Extended_Additional[] = {0x1e00,0x1eff};
static const uint32_t chars_Greek_Extended[] = {0x1f00,0x1fff};
static const uint32_t chars_General_Punctuation[] = {0x2000,0x206f};
static const uint32_t chars_Superscripts_and_Subscripts[] = {0x2070,0x209f};
static const uint32_t chars_Currency_Symbols[] = {0x20a0,0x20cf};
static const uint32_t chars_Combining_Diacritical_Marks_for_Symbols[] = {0x20d0,0x20ff};
static const uint32_t chars_Letterlike_Symbols[] = {0x2100,0x214f};
static const uint32_t chars_Number_Forms[] = {0x2150,0x218f};
static const uint32_t chars_Arrows[] = {0x2190,0x21ff};
static const uint32_t chars_Mathematical_Operators[] = {0x2200,0x22ff};
static const uint32_t chars_Miscellaneous_Technical[] = {0x2300,0x23ff};
static const uint32_t chars_Control_Pictures[] = {0x2400,0x243f};
static const uint32_t chars_Optical_Character_Recognition[] = {0x2440,0x245f};
static const uint32_t chars_Enclosed_Alphanumerics[] = {0x2460,0x24ff};
static const uint32_t chars_Box_Drawing[] = {0x2500,0x257f};
static const uint32_t chars_Block_Elements[] = {0x2580,0x259f};
static const uint32_t chars_Geometric_Shapes[] = {0x25a0,0x25ff};
static const uint32_t chars_Miscellaneous_Symbols[] = {0x2600,0x26ff};
static const uint32_t chars_Dingbats[] = {0x2700,0x27bf};
static const uint32_t chars_Miscellaneous_Mathematical_Symbols_A[] = {0x27c0,0x27ef};
static const uint32_t chars_Supplemental_Arrows_A[] = {0x27f0,0x27ff};
static const uint32_t chars_Braille_Patterns[] = {0x2800,0x28ff};
static const uint32_t chars_Supplemental_Arrows_B[] = {0x2900,0x297f};
static const uint32_t chars_Miscellaneous_Mathematical_Symbols_B[] = {0x2980,0x29ff};
static const uint32_t chars_Supplemental_Mathematical_Operators[] = {0x2a00,0x2aff};
static const uint32_t chars_Miscellaneous_Symbols_and_Arrows[] = {0x2b00,0x2bff};
static const uint32_t chars_Glagolitic[] = {0x2c00,0x2c5f};
static const uint32_t chars_Latin_Extended_C[] = {0x2c60,0x2c7f};
static const uint32_t chars_Coptic[] = {0x2c80,0x2cff};
static const uint32_t chars_Georgian_Supplement[] = {0x2d00,0x2d2f};
static const uint32_t chars_Tifinagh[] = {0x2d30,0x2d7f};
static const uint32_t chars_Ethiopic_Extended[] = {0x2d80,0x2ddf};
static const uint32_t chars_Cyrillic_Extended_A[] = {0x2de0,0x2dff};
static const uint32_t chars_Supplemental_Punctuation[] = {0x2e00,0x2e7f};
static const uint32_t chars_CJK_Radicals_Supplement[] = {0x2e80,0x2eff};
static const uint32_t chars_Kangxi_Radicals[] = {0x2f00,0x2fdf};
static const uint32_t chars_Ideographic_Description_Characters[] = {0x2ff0,0x2fff};
static const uint32_t chars_CJK_Symbols_and_Punctuation[] = {0x3000,0x303f};
static const uint32_t chars_Hiragana[] = {0x3040,0x309f};
static const uint32_t chars_Katakana[] = {0x30a0,0x30ff};
static const uint32_t chars_Bopomofo[] = {0x3100,0x312f};
static const uint32_t chars_Hangul_Compatibility_Jamo[] = {0x3130,0x318f};
static const uint32_t chars_Kanbun[] = {0x3190,0x319f};
static const uint32_t chars_Bopomofo_Extended[] = {0x31a0,0x31bf};
static const uint32_t chars_CJK_Strokes[] = {0x31c0,0x31ef};
static const uint32_t chars_Katakana_Phonetic_Extensions[] = {0x31f0,0x31ff};
static const uint32_t chars_Enclosed_CJK_Letters_and_Months[] = {0x3200,0x32ff};
static const uint32_t chars_CJK_Compatibility[] = {0x3300,0x33ff};
static const uint32_t chars_CJK_Unified_Ideographs_Extension_A[] = {0x3400,0x4dbf};
static const uint32_t chars_Yijing_Hexagram_Symbols[] = {0x4dc0,0x4dff};
static const uint32_t chars_CJK_Unified_Ideographs[] = {0x4e00,0x9fff};
static const uint32_t chars_Yi_Syllables[] = {0xa000,0xa48f};
static const uint32_t chars_Yi_Radicals[] = {0xa490,0xa4cf};
static const uint32_t chars_Lisu[] = {0xa4d0,0xa4ff};
static const uint32_t chars_Vai[] = {0xa500,0xa63f};
static const uint32_t chars_Cyrillic_Extended_B[] = {0xa640,0xa69f};
static const uint32_t chars_Bamum[] = {0xa6a0,0xa6ff};
static const uint32_t chars_Modifier_Tone_Letters[] = {0xa700,0xa71f};
static const uint32_t chars_Latin_Extended_D[] = {0xa720,0xa7ff};
static const uint32_t chars_Syloti_Nagri[] = {0xa800,0xa82f};
static const uint32_t chars_Common_Indic_Number_Forms[] = {0xa830,0xa83f};
static const uint32_t chars_Phags_pa[] = {0xa840,0xa87f};
static const uint32_t chars_Saurashtra[] = {0xa880,0xa8df};
static const uint32_t chars_Devanagari_Extended[] = {0xa8e0,0xa8ff};
static const uint32_t chars_Kayah_Li[] = {0xa900,0xa92f};
static const uint32_t chars_Rejang[] = {0xa930,0xa95f};
static const uint32_t chars_Hangul_Jamo_Extended_A[] = {0xa960,0xa97f};
static const uint32_t chars_Javanese[] = {0xa980,0xa9df};
static const uint32_t chars_Myanmar_Extended_B[] = {0xa9e0,0xa9ff};
static const uint32_t chars_Cham[] = {0xaa00,0xaa5f};
static const uint32_t chars_Myanmar_Extended_A[] = {0xaa60,0xaa7f};
static const uint32_t chars_Tai_Viet[] = {0xaa80,0xaadf};
static const uint32_t chars_Meetei_Mayek_Extensions[] = {0xaae0,0xaaff};
static const uint32_t chars_Ethiopic_Extended_A[] = {0xab00,0xab2f};
static const uint32_t chars_Latin_Extended_E[] = {0xab30,0xab6f};
static const uint32_t chars_Cherokee_Supplement[] = {0xab70,0xabbf};
static const uint32_t chars_Meetei_Mayek[] = {0xabc0,0xabff};
static const uint32_t chars_Hangul_Syllables[] = {0xac00,0xd7af};
static const uint32_t chars_Hangul_Jamo_Extended_B[] = {0xd7b0,0xd7ff};
static const uint32_t chars_High_Surrogates[] = {0xd800,0xdb7f};
static const uint32_t chars_High_Private_Use_Surrogates[] = {0xdb80,0xdbff};
static const uint32_t chars_Low_Surrogates[] = {0xdc00,0xdfff};
static const uint32_t chars_Private_Use_Area[] = {0xe000,0xf8ff};
static const uint32_t chars_CJK_Compatibility_Ideographs[] = {0xf900,0xfaff};
static const uint32_t chars_Alphabetic_Presentation_Forms[] = {0xfb00,0xfb4f};
static const uint32_t chars_Arabic_Presentation_Forms_A[] = {0xfb50,0xfdff};
static const uint32_t chars_Variation_Selectors[] = {0xfe00,0xfe0f};
static const uint32_t chars_Vertical_Forms[] = {0xfe10,0xfe1f};
static const uint32_t chars_Combining_Half_Marks[] = {0xfe20,0xfe2f};
static const uint32_t chars_CJK_Compatibility_Forms[] = {0xfe30,0xfe4f};
static const uint32_t chars_Small_Form_Variants[] = {0xfe50,0xfe6f};
static const uint32_t chars_Arabic_Presentation_Forms_B[] = {0xfe70,0xfeff};
static const uint32_t chars_Halfwidth_and_Fullwidth_Forms[] = {0xff00,0xffef};
static const uint32_t chars_Specials[] = {0xfff0,0xffff};
static const uint32_t chars_Linear_B_Syllabary[] = {0x10000,0x1007f};
static const uint32_t chars_Linear_B_Ideograms[] = {0x10080,0x100ff};
static const uint32_t chars_Aegean_Numbers[] = {0x10100,0x1013f};
static const uint32_t chars_Ancient_Greek_Numbers[] = {0x10140,0x1018f};
static const uint32_t chars_Ancient_Symbols[] = {0x10190,0x101cf};
static const uint32_t chars_Phaistos_Disc[] = {0x101d0,0x101ff};
static const uint32_t chars_Lycian[] = {0x10280,0x1029f};
static const uint32_t chars_Carian[] = {0x102a0,0x102df};
static const uint32_t chars_Coptic_Epact_Numbers[] = {0x102e0,0x102ff};
static const uint32_t chars_Old_Italic[] = {0x10300,0x1032f};
static const uint32_t chars_Gothic[] = {0x10330,0x1034f};
static const uint32_t chars_Old_Permic[] = {0x10350,0x1037f};
static const uint32_t chars_Ugaritic[] = {0x10380,0x1039f};
static const uint32_t chars_Old_Persian[] = {0x103a0,0x103df};
static const uint32_t chars_Deseret[] = {0x10400,0x1044f};
static const uint32_t chars_Shavian[] = {0x10450,0x1047f};
static const uint32_t chars_Osmanya[] = {0x10480,0x104af};
static const uint32_t chars_Osage[] = {0x104b0,0x104ff};
static const uint32_t chars_Elbasan[] = {0x10500,0x1052f};
static const uint32_t chars_Caucasian_Albanian[] = {0x10530,0x1056f};
static const uint32_t chars_Vithkuqi[] = {0x10570,0x105bf};
static const uint32_t chars_Todhri[] = {0x105c0,0x105ff};
static const uint32_t chars_Linear_A[] = {0x10600,0x1077f};
static const uint32_t chars_Latin_Extended_F[] = {0x10780,0x107bf};
static const uint32_t chars_Cypriot_Syllabary[] = {0x10800,0x1083f};
static const uint32_t chars_Imperial_Aramaic[] = {0x10840,0x1085f};
static const uint32_t chars_Palmyrene[] = {0x10860,0x1087f};
static const uint32_t chars_Nabataean[] = {0x10880,0x108af};
static const uint32_t chars_Hatran[] = {0x108e0,0x108ff};
static const uint32_t chars_Phoenician[] = {0x10900,0x1091f};
static const uint32_t chars_Lydian[] = {0x10920,0x1093f};
static const uint32_t chars_Sidetic[] = {0x10940,0x1095f};
static const uint32_t chars_Meroitic_Hieroglyphs[] = {0x10980,0x1099f};
static const uint32_t chars_Meroitic_Cursive[] = {0x109a0,0x109ff};
static const uint32_t chars_Kharoshthi[] = {0x10a00,0x10a5f};
static const uint32_t chars_Old_South_Arabian[] = {0x10a60,0x10a7f};
static const uint32_t chars_Old_North_Arabian[] = {0x10a80,0x10a9f};
static const uint32_t chars_Manichaean[] = {0x10ac0,0x10aff};
static const uint32_t chars_Avestan[] = {0x10b00,0x10b3f};
static const uint32_t chars_Inscriptional_Parthian[] = {0x10b40,0x10b5f};
static const uint32_t chars_Inscriptional_Pahlavi[] = {0x10b60,0x10b7f};
static const uint32_t chars_Psalter_Pahlavi[] = {0x10b80,0x10baf};
static const uint32_t chars_Old_Turkic[] = {0x10c00,0x10c4f};
static const uint32_t chars_Old_Hungarian[] = {0x10c80,0x10cff};
static const uint32_t chars_Hanifi_Rohingya[] = {0x10d00,0x10d3f};
static const uint32_t chars_Garay[] = {0x10d40,0x10d8f};
static const uint32_t chars_Rumi_Numeral_Symbols[] = {0x10e60,0x10e7f};
static const uint32_t chars_Yezidi[] = {0x10e80,0x10ebf};
static const uint32_t chars_Arabic_Extended_C[] = {0x10ec0,0x10eff};
static const uint32_t chars_Old_Sogdian[] = {0x10f00,0x10f2f};
static const uint32_t chars_Sogdian[] = {0x10f30,0x10f6f};
static const uint32_t chars_Old_Uyghur[] = {0x10f70,0x10faf};
static const uint32_t chars_Chorasmian[] = {0x10fb0,0x10fdf};
static const uint32_t chars_Elymaic[] = {0x10fe0,0x10fff};
static const uint32_t chars_Brahmi[] = {0x11000,0x1107f};
static const uint32_t chars_Kaithi[] = {0x11080,0x110cf};
static const uint32_t chars_Sora_Sompeng[] = {0x110d0,0x110ff};
static const uint32_t chars_Chakma[] = {0x11100,0x1114f};
static const uint32_t chars_Mahajani[] = {0x11150,0x1117f};
static const uint32_t chars_Sharada[] = {0x11180,0x111df};
static const uint32_t chars_Sinhala_Archaic_Numbers[] = {0x111e0,0x111ff};
static const uint32_t chars_Khojki[] = {0x11200,0x1124f};
static const uint32_t chars_Multani[] = {0x11280,0x112af};
static const uint32_t chars_Khudawadi[] = {0x112b0,0x112ff};
static const uint32_t chars_Grantha[] = {0x11300,0x1137f};
static const uint32_t chars_Tulu_Tigalari[] = {0x11380,0x113ff};
static const uint32_t chars_Newa[] = {0x11400,0x1147f};
static const uint32_t chars_Tirhuta[] = {0x11480,0x114df};
static const uint32_t chars_Siddham[] = {0x11580,0x115ff};
static const uint32_t chars_Modi[] = {0x11600,0x1165f};
static const uint32_t chars_Mongolian_Supplement[] = {0x11660,0x1167f};
static const uint32_t chars_Takri[] = {0x11680,0x116cf};
static const uint32_t chars_Myanmar_Extended_C[] = {0x116d0,0x116ff};
static const uint32_t chars_Ahom[] = {0x11700,0x1174f};
static const uint32_t chars_Dogra[] = {0x11800,0x1184f};
static const uint32_t chars_Warang_Citi[] = {0x118a0,0x118ff};
static const uint32_t chars_Dives_Akuru[] = {0x11900,0x1195f};
static const uint32_t chars_Nandinagari[] = {0x119a0,0x119ff};
static const uint32_t chars_Zanabazar_Square[] = {0x11a00,0x11a4f};
static const uint32_t chars_Soyombo[] = {0x11a50,0x11aaf};
static const uint32_t chars_Unified_Canadian_Aboriginal_Syllabics_Extended_A[] = {0x11ab0,0x11abf};
static const uint32_t chars_Pau_Cin_Hau[] = {0x11ac0,0x11aff};
static const uint32_t chars_Devanagari_Extended_A[] = {0x11b00,0x11b5f};
static const uint32_t chars_Sharada_Supplement[] = {0x11b60,0x11b7f};
static const uint32_t chars_Sunuwar[] = {0x11bc0,0x11bff};
static const uint32_t chars_Bhaiksuki[] = {0x11c00,0x11c6f};
static const uint32_t chars_Marchen[] = {0x11c70,0x11cbf};
static const uint32_t chars_Masaram_Gondi[] = {0x11d00,0x11d5f};
static const uint32_t chars_Gunjala_Gondi[] = {0x11d60,0x11daf};
static const uint32_t chars_Tolong_Siki[] = {0x11db0,0x11def};
static const uint32_t chars_Makasar[] = {0x11ee0,0x11eff};
static const uint32_t chars_Kawi[] = {0x11f00,0x11f5f};
static const uint32_t chars_Lisu_Supplement[] = {0x11fb0,0x11fbf};
static const uint32_t chars_Tamil_Supplement[] = {0x11fc0,0x11fff};
static const uint32_t chars_Cuneiform[] = {0x12000,0x123ff};
static const uint32_t chars_Cuneiform_Numbers_and_Punctuation[] = {0x12400,0x1247f};
static const uint32_t chars_Early_Dynastic_Cuneiform[] = {0x12480,0x1254f};
static const uint32_t chars_Cypro_Minoan[] = {0x12f90,0x12fff};
static const uint32_t chars_Egyptian_Hieroglyphs[] = {0x13000,0x1342f};
static const uint32_t chars_Egyptian_Hieroglyph_Format_Controls[] = {0x13430,0x1345f};
static const uint32_t chars_Egyptian_Hieroglyphs_Extended_A[] = {0x13460,0x143ff};
static const uint32_t chars_Anatolian_Hieroglyphs[] = {0x14400,0x1467f};
static const uint32_t chars_Gurung_Khema[] = {0x16100,0x1613f};
static const uint32_t chars_Bamum_Supplement[] = {0x16800,0x16a3f};
static const uint32_t chars_Mro[] = {0x16a40,0x16a6f};
static const uint32_t chars_Tangsa[] = {0x16a70,0x16acf};
static const uint32_t chars_Bassa_Vah[] = {0x16ad0,0x16aff};
static const uint32_t chars_Pahawh_Hmong[] = {0x16b00,0x16b8f};
static const uint32_t chars_Kirat_Rai[] = {0x16d40,0x16d7f};
static const uint32_t chars_Medefaidrin[] = {0x16e40,0x16e9f};
static const uint32_t chars_Beria_Erfe[] = {0x16ea0,0x16edf};
static const uint32_t chars_Miao[] = {0x16f00,0x16f9f};
static const uint32_t chars_Ideographic_Symbols_and_Punctuation[] = {0x16fe0,0x16fff};
static const uint32_t chars_Tangut[] = {0x17000,0x187ff};
static const uint32_t chars_Tangut_Components[] = {0x18800,0x18aff};
static const uint32_t chars_Khitan_Small_Script[] = {0x18b00,0x18cff};
static const uint32_t chars_Tangut_Supplement[] = {0x18d00,0x18d7f};
static const uint32_t chars_Tangut_Components_Supplement[] = {0x18d80,0x18dff};
static const uint32_t chars_Kana_Extended_B[] = {0x1aff0,0x1afff};
static const uint32_t chars_Kana_Supplement[] = {0x1b000,0x1b0ff};
static const uint32_t chars_Kana_Extended_A[] = {0x1b100,0x1b12f};
static const uint32_t chars_Small_Kana_Extension[] = {0x1b130,0x1b16f};
static const uint32_t chars_Nushu[] = {0x1b170,0x1b2ff};
static const uint32_t chars_Duployan[] = {0x1bc00,0x1bc9f};
static const uint32_t chars_Shorthand_Format_Controls[] = {0x1bca0,0x1bcaf};
static const uint32_t chars_Symbols_for_Legacy_Computing_Supplement[] = {0x1cc00,0x1cebf};
static const uint32_t chars_Miscellaneous_Symbols_Supplement[] = {0x1cec0,0x1ceff};
static const uint32_t chars_Znamenny_Musical_Notation[] = {0x1cf00,0x1cfcf};
static const uint32_t chars_Byzantine_Musical_Symbols[] = {0x1d000,0x1d0ff};
static const uint32_t chars_Musical_Symbols[] = {0x1d100,0x1d1ff};
static const uint32_t chars_Ancient_Greek_Musical_Notation[] = {0x1d200,0x1d24f};
static const uint32_t chars_Kaktovik_Numerals[] = {0x1d2c0,0x1d2df};
static const uint32_t chars_Mayan_Numerals[] = {0x1d2e0,0x1d2ff};
static const uint32_t chars_Tai_Xuan_Jing_Symbols[] = {0x1d300,0x1d35f};
static const uint32_t chars_Counting_Rod_Numerals[] = {0x1d360,0x1d37f};
static const uint32_t chars_Mathematical_Alphanumeric_Symbols[] = {0x1d400,0x1d7ff};
static const uint32_t chars_Sutton_SignWriting[] = {0x1d800,0x1daaf};
static const uint32_t chars_Latin_Extended_G[] = {0x1df00,0x1dfff};
static const uint32_t chars_Glagolitic_Supplement[] = {0x1e000,0x1e02f};
static const uint32_t chars_Cyrillic_Extended_D[] = {0x1e030,0x1e08f};
static const uint32_t chars_Nyiakeng_Puachue_Hmong[] = {0x1e100,0x1e14f};
static const uint32_t chars_Toto[] = {0x1e290,0x1e2bf};
static const uint32_t chars_Wancho[] = {0x1e2c0,0x1e2ff};
static const uint32_t chars_Nag_Mundari[] = {0x1e4d0,0x1e4ff};
static const uint32_t chars_Ol_Onal[] = {0x1e5d0,0x1e5ff};
static const uint32_t chars_Tai_Yo[] = {0x1e6c0,0x1e6ff};
static const uint32_t chars_Ethiopic_Extended_B[] = {0x1e7e0,0x1e7ff};
static const uint32_t chars_Mende_Kikakui[] = {0x1e800,0x1e8df};
static const uint32_t chars_Adlam[] = {0x1e900,0x1e95f};
static const uint32_t chars_Indic_Siyaq_Numbers[] = {0x1ec70,0x1ecbf};
static const uint32_t chars_Ottoman_Siyaq_Numbers[] = {0x1ed00,0x1ed4f};
static const uint32_t chars_Arabic_Mathematical_Alphabetic_Symbols[] = {0x1ee00,0x1eeff};
static const uint32_t chars_Mahjong_Tiles[] = {0x1f000,0x1f02f};
static const uint32_t chars_Domino_Tiles[] = {0x1f030,0x1f09f};
static const uint32_t chars_Playing_Cards[] = {0x1f0a0,0x1f0ff};
static const uint32_t chars_Enclosed_Alphanumeric_Supplement[] = {0x1f100,0x1f1ff};
static const uint32_t chars_Enclosed_Ideographic_Supplement[] = {0x1f200,0x1f2ff};
static const uint32_t chars_Miscellaneous_Symbols_and_Pictographs[] = {0x1f300,0x1f5ff};
static const uint32_t chars_Emoticons[] = {0x1f600,0x1f64f};
static const uint32_t chars_Ornamental_Dingbats[] = {0x1f650,0x1f67f};
static const uint32_t chars_Transport_and_Map_Symbols[] = {0x1f680,0x1f6ff};
static const uint32_t chars_Alchemical_Symbols[] = {0x1f700,0x1f77f};
static const uint32_t chars_Geometric_Shapes_Extended[] = {0x1f780,0x1f7ff};
static const uint32_t chars_Supplemental_Arrows_C[] = {0x1f800,0x1f8ff};
static const uint32_t chars_Supplemental_Symbols_and_Pictographs[] = {0x1f900,0x1f9ff};
static const uint32_t chars_Chess_Symbols[] = {0x1fa00,0x1fa6f};
static const uint32_t chars_Symbols_and_Pictographs_Extended_A[] = {0x1fa70,0x1faff};
static const uint32_t chars_Symbols_for_Legacy_Computing[] = {0x1fb00,0x1fbff};
static const uint32_t chars_CJK_Unified_Ideographs_Extension_B[] = {0x20000,0x2a6df};
static const uint32_t chars_CJK_Unified_Ideographs_Extension_C[] = {0x2a700,0x2b73f};
static const uint32_t chars_CJK_Unified_Ideographs_Extension_D[] = {0x2b740,0x2b81f};
static const uint32_t chars_CJK_Unified_Ideographs_Extension_E[] = {0x2b820,0x2ceaf};
static const uint32_t chars_CJK_Unified_Ideographs_Extension_F[] = {0x2ceb0,0x2ebef};
static const uint32_t chars_CJK_Unified_Ideographs_Extension_I[] = {0x2ebf0,0x2ee5f};
static const uint32_t chars_CJK_Compatibility_Ideographs_Supplement[] = {0x2f800,0x2fa1f};
static const uint32_t chars_CJK_Unified_Ideographs_Extension_G[] = {0x30000,0x3134f};
static const uint32_t chars_CJK_Unified_Ideographs_Extension_H[] = {0x31350,0x323af};
static const uint32_t chars_CJK_Unified_Ideographs_Extension_J[] = {0x323b0,0x3347f};
static const uint32_t chars_Tags[] = {0xe0000,0xe007f};
static const uint32_t chars_Variation_Selectors_Supplement[] = {0xe0100,0xe01ef};
static const uint32_t chars_Supplementary_Private_Use_Area_A[] = {0xf0000,0xfffff};
static const uint32_t chars_Supplementary_Private_Use_Area_B[] = {0x100000,0x10ffff};

static uint32_t encode_utf16(uint32_t first, uint32_t last, uint16_t* s) {
	uint16_t* const s0 = s;
	for (uint32_t i = first; i <= last; ++i) {
		if (i <= re2c::utf16::MAX_1WORD_RUNE) {
			*s++ = i;
		} else {
			*s++ = re2c::utf16::lead_surr(i);
			*s++ = re2c::utf16::trail_surr(i);
		}
	}
	for (uint32_t i = 0; i < 2; ++i) *s++ = (first == 0) ? 0xFFFF : 0;
	return s - s0;
}

int main() {
	YYCTYPE *buffer_Basic_Latin = new YYCTYPE[258];
	uint32_t buffer_Basic_Latin_len = encode_utf16(chars_Basic_Latin[0], chars_Basic_Latin[1], buffer_Basic_Latin) - 2;
	if (scan(buffer_Basic_Latin, buffer_Basic_Latin + buffer_Basic_Latin_len, Basic_Latin) != Basic_Latin)
		printf("test 'Basic_Latin' failed\n");
	delete[] buffer_Basic_Latin;

	YYCTYPE *buffer_Latin_1_Supplement = new YYCTYPE[258];
	uint32_t buffer_Latin_1_Supplement_len = encode_utf16(chars_Latin_1_Supplement[0], chars_Latin_1_Supplement[1], buffer_Latin_1_Supplement) - 2;
	if (scan(buffer_Latin_1_Supplement, buffer_Latin_1_Supplement + buffer_Latin_1_Supplement_len, Latin_1_Supplement) != Latin_1_Supplement)
		printf("test 'Latin_1_Supplement' failed\n");
	delete[] buffer_Latin_1_Supplement;

	YYCTYPE *buffer_Latin_Extended_A = new YYCTYPE[258];
	uint32_t buffer_Latin_Extended_A_len = encode_utf16(chars_Latin_Extended_A[0], chars_Latin_Extended_A[1], buffer_Latin_Extended_A) - 2;
	if (scan(buffer_Latin_Extended_A, buffer_Latin_Extended_A + buffer_Latin_Extended_A_len, Latin_Extended_A) != Latin_Extended_A)
		printf("test 'Latin_Extended_A' failed\n");
	delete[] buffer_Latin_Extended_A;

	YYCTYPE *buffer_Latin_Extended_B = new YYCTYPE[418];
	uint32_t buffer_Latin_Extended_B_len = encode_utf16(chars_Latin_Extended_B[0], chars_Latin_Extended_B[1], buffer_Latin_Extended_B) - 2;
	if (scan(buffer_Latin_Extended_B, buffer_Latin_Extended_B + buffer_Latin_Extended_B_len, Latin_Extended_B) != Latin_Extended_B)
		printf("test 'Latin_Extended_B' failed\n");
	delete[] buffer_Latin_Extended_B;

	YYCTYPE *buffer_IPA_Extensions = new YYCTYPE[194];
	uint32_t buffer_IPA_Extensions_len = encode_utf16(chars_IPA_Extensions[0], chars_IPA_Extensions[1], buffer_IPA_Extensions) - 2;
	if (scan(buffer_IPA_Extensions, buffer_IPA_Extensions + buffer_IPA_Extensions_len, IPA_Extensions) != IPA_Extensions)
		printf("test 'IPA_Extensions' failed\n");
	delete[] buffer_IPA_Extensions;

	YYCTYPE *buffer_Spacing_Modifier_Letters = new YYCTYPE[162];
	uint32_t buffer_Spacing_Modifier_Letters_len = encode_utf16(chars_Spacing_Modifier_Letters[0], chars_Spacing_Modifier_Letters[1], buffer_Spacing_Modifier_Letters) - 2;
	if (scan(buffer_Spacing_Modifier_Letters, buffer_Spacing_Modifier_Letters + buffer_Spacing_Modifier_Letters_len, Spacing_Modifier_Letters) != Spacing_Modifier_Letters)
		printf("test 'Spacing_Modifier_Letters' failed\n");
	delete[] buffer_Spacing_Modifier_Letters;

	YYCTYPE *buffer_Combining_Diacritical_Marks = new YYCTYPE[226];
	uint32_t buffer_Combining_Diacritical_Marks_len = encode_utf16(chars_Combining_Diacritical_Marks[0], chars_Combining_Diacritical_Marks[1], buffer_Combining_Diacritical_Marks) - 2;
	if (scan(buffer_Combining_Diacritical_Marks, buffer_Combining_Diacritical_Marks + buffer_Combining_Diacritical_Marks_len, Combining_Diacritical_Marks) != Combining_Diacritical_Marks)
		printf("test 'Combining_Diacritical_Marks' failed\n");
	delete[] buffer_Combining_Diacritical_Marks;

	YYCTYPE *buffer_Greek_and_Coptic = new YYCTYPE[290];
	uint32_t buffer_Greek_and_Coptic_len = encode_utf16(chars_Greek_and_Coptic[0], chars_Greek_and_Coptic[1], buffer_Greek_and_Coptic) - 2;
	if (scan(buffer_Greek_and_Coptic, buffer_Greek_and_Coptic + buffer_Greek_and_Coptic_len, Greek_and_Coptic) != Greek_and_Coptic)
		printf("test 'Greek_and_Coptic' failed\n");
	delete[] buffer_Greek_and_Coptic;

	YYCTYPE *buffer_Cyrillic = new YYCTYPE[514];
	uint32_t buffer_Cyrillic_len = encode_utf16(chars_Cyrillic[0], chars_Cyrillic[1], buffer_Cyrillic) - 2;
	if (scan(buffer_Cyrillic, buffer_Cyrillic + buffer_Cyrillic_len, Cyrillic) != Cyrillic)
		printf("test 'Cyrillic' failed\n");
	delete[] buffer_Cyrillic;

	YYCTYPE *buffer_Cyrillic_Supplement = new YYCTYPE[98];
	uint32_t buffer_Cyrillic_Supplement_len = encode_utf16(chars_Cyrillic_Supplement[0], chars_Cyrillic_Supplement[1], buffer_Cyrillic_Supplement) - 2;
	if (scan(buffer_Cyrillic_Supplement, buffer_Cyrillic_Supplement + buffer_Cyrillic_Supplement_len, Cyrillic_Supplement) != Cyrillic_Supplement)
		printf("test 'Cyrillic_Supplement' failed\n");
	delete[] buffer_Cyrillic_Supplement;

	YYCTYPE *buffer_Armenian = new YYCTYPE[194];
	uint32_t buffer_Armenian_len = encode_utf16(chars_Armenian[0], chars_Armenian[1], buffer_Armenian) - 2;
	if (scan(buffer_Armenian, buffer_Armenian + buffer_Armenian_len, Armenian) != Armenian)
		printf("test 'Armenian' failed\n");
	delete[] buffer_Armenian;

	YYCTYPE *buffer_Hebrew = new YYCTYPE[226];
	uint32_t buffer_Hebrew_len = encode_utf16(chars_Hebrew[0], chars_Hebrew[1], buffer_Hebrew) - 2;
	if (scan(buffer_Hebrew, buffer_Hebrew + buffer_Hebrew_len, Hebrew) != Hebrew)
		printf("test 'Hebrew' failed\n");
	delete[] buffer_Hebrew;

	YYCTYPE *buffer_Arabic = new YYCTYPE[514];
	uint32_t buffer_Arabic_len = encode_utf16(chars_Arabic[0], chars_Arabic[1], buffer_Arabic) - 2;
	if (scan(buffer_Arabic, buffer_Arabic + buffer_Arabic_len, Arabic) != Arabic)
		printf("test 'Arabic' failed\n");
	delete[] buffer_Arabic;

	YYCTYPE *buffer_Syriac = new YYCTYPE[162];
	uint32_t buffer_Syriac_len = encode_utf16(chars_Syriac[0], chars_Syriac[1], buffer_Syriac) - 2;
	if (scan(buffer_Syriac, buffer_Syriac + buffer_Syriac_len, Syriac) != Syriac)
		printf("test 'Syriac' failed\n");
	delete[] buffer_Syriac;

	YYCTYPE *buffer_Arabic_Supplement = new YYCTYPE[98];
	uint32_t buffer_Arabic_Supplement_len = encode_utf16(chars_Arabic_Supplement[0], chars_Arabic_Supplement[1], buffer_Arabic_Supplement) - 2;
	if (scan(buffer_Arabic_Supplement, buffer_Arabic_Supplement + buffer_Arabic_Supplement_len, Arabic_Supplement) != Arabic_Supplement)
		printf("test 'Arabic_Supplement' failed\n");
	delete[] buffer_Arabic_Supplement;

	YYCTYPE *buffer_Thaana = new YYCTYPE[130];
	uint32_t buffer_Thaana_len = encode_utf16(chars_Thaana[0], chars_Thaana[1], buffer_Thaana) - 2;
	if (scan(buffer_Thaana, buffer_Thaana + buffer_Thaana_len, Thaana) != Thaana)
		printf("test 'Thaana' failed\n");
	delete[] buffer_Thaana;

	YYCTYPE *buffer_NKo = new YYCTYPE[130];
	uint32_t buffer_NKo_len = encode_utf16(chars_NKo[0], chars_NKo[1], buffer_NKo) - 2;
	if (scan(buffer_NKo, buffer_NKo + buffer_NKo_len, NKo) != NKo)
		printf("test 'NKo' failed\n");
	delete[] buffer_NKo;

	YYCTYPE *buffer_Samaritan = new YYCTYPE[130];
	uint32_t buffer_Samaritan_len = encode_utf16(chars_Samaritan[0], chars_Samaritan[1], buffer_Samaritan) - 2;
	if (scan(buffer_Samaritan, buffer_Samaritan + buffer_Samaritan_len, Samaritan) != Samaritan)
		printf("test 'Samaritan' failed\n");
	delete[] buffer_Samaritan;

	YYCTYPE *buffer_Mandaic = new YYCTYPE[66];
	uint32_t buffer_Mandaic_len = encode_utf16(chars_Mandaic[0], chars_Mandaic[1], buffer_Mandaic) - 2;
	if (scan(buffer_Mandaic, buffer_Mandaic + buffer_Mandaic_len, Mandaic) != Mandaic)
		printf("test 'Mandaic' failed\n");
	delete[] buffer_Mandaic;

	YYCTYPE *buffer_Syriac_Supplement = new YYCTYPE[34];
	uint32_t buffer_Syriac_Supplement_len = encode_utf16(chars_Syriac_Supplement[0], chars_Syriac_Supplement[1], buffer_Syriac_Supplement) - 2;
	if (scan(buffer_Syriac_Supplement, buffer_Syriac_Supplement + buffer_Syriac_Supplement_len, Syriac_Supplement) != Syriac_Supplement)
		printf("test 'Syriac_Supplement' failed\n");
	delete[] buffer_Syriac_Supplement;

	YYCTYPE *buffer_Arabic_Extended_B = new YYCTYPE[98];
	uint32_t buffer_Arabic_Extended_B_len = encode_utf16(chars_Arabic_Extended_B[0], chars_Arabic_Extended_B[1], buffer_Arabic_Extended_B) - 2;
	if (scan(buffer_Arabic_Extended_B, buffer_Arabic_Extended_B + buffer_Arabic_Extended_B_len, Arabic_Extended_B) != Arabic_Extended_B)
		printf("test 'Arabic_Extended_B' failed\n");
	delete[] buffer_Arabic_Extended_B;

	YYCTYPE *buffer_Arabic_Extended_A = new YYCTYPE[194];
	uint32_t buffer_Arabic_Extended_A_len = encode_utf16(chars_Arabic_Extended_A[0], chars_Arabic_Extended_A[1], buffer_Arabic_Extended_A) - 2;
	if (scan(buffer_Arabic_Extended_A, buffer_Arabic_Extended_A + buffer_Arabic_Extended_A_len, Arabic_Extended_A) != Arabic_Extended_A)
		printf("test 'Arabic_Extended_A' failed\n");
	delete[] buffer_Arabic_Extended_A;

	YYCTYPE *buffer_Devanagari = new YYCTYPE[258];
	uint32_t buffer_Devanagari_len = encode_utf16(chars_Devanagari[0], chars_Devanagari[1], buffer_Devanagari) - 2;
	if (scan(buffer_Devanagari, buffer_Devanagari + buffer_Devanagari_len, Devanagari) != Devanagari)
		printf("test 'Devanagari' failed\n");
	delete[] buffer_Devanagari;

	YYCTYPE *buffer_Bengali = new YYCTYPE[258];
	uint32_t buffer_Bengali_len = encode_utf16(chars_Bengali[0], chars_Bengali[1], buffer_Bengali) - 2;
	if (scan(buffer_Bengali, buffer_Bengali + buffer_Bengali_len, Bengali) != Bengali)
		printf("test 'Bengali' failed\n");
	delete[] buffer_Bengali;

	YYCTYPE *buffer_Gurmukhi = new YYCTYPE[258];
	uint32_t buffer_Gurmukhi_len = encode_utf16(chars_Gurmukhi[0], chars_Gurmukhi[1], buffer_Gurmukhi) - 2;
	if (scan(buffer_Gurmukhi, buffer_Gurmukhi + buffer_Gurmukhi_len, Gurmukhi) != Gurmukhi)
		printf("test 'Gurmukhi' failed\n");
	delete[] buffer_Gurmukhi;

	YYCTYPE *buffer_Gujarati = new YYCTYPE[258];
	uint32_t buffer_Gujarati_len = encode_utf16(chars_Gujarati[0], chars_Gujarati[1], buffer_Gujarati) - 2;
	if (scan(buffer_Gujarati, buffer_Gujarati + buffer_Gujarati_len, Gujarati) != Gujarati)
		printf("test 'Gujarati' failed\n");
	delete[] buffer_Gujarati;

	YYCTYPE *buffer_Oriya = new YYCTYPE[258];
	uint32_t buffer_Oriya_len = encode_utf16(chars_Oriya[0], chars_Oriya[1], buffer_Oriya) - 2;
	if (scan(buffer_Oriya, buffer_Oriya + buffer_Oriya_len, Oriya) != Oriya)
		printf("test 'Oriya' failed\n");
	delete[] buffer_Oriya;

	YYCTYPE *buffer_Tamil = new YYCTYPE[258];
	uint32_t buffer_Tamil_len = encode_utf16(chars_Tamil[0], chars_Tamil[1], buffer_Tamil) - 2;
	if (scan(buffer_Tamil, buffer_Tamil + buffer_Tamil_len, Tamil) != Tamil)
		printf("test 'Tamil' failed\n");
	delete[] buffer_Tamil;

	YYCTYPE *buffer_Telugu = new YYCTYPE[258];
	uint32_t buffer_Telugu_len = encode_utf16(chars_Telugu[0], chars_Telugu[1], buffer_Telugu) - 2;
	if (scan(buffer_Telugu, buffer_Telugu + buffer_Telugu_len, Telugu) != Telugu)
		printf("test 'Telugu' failed\n");
	delete[] buffer_Telugu;

	YYCTYPE *buffer_Kannada = new YYCTYPE[258];
	uint32_t buffer_Kannada_len = encode_utf16(chars_Kannada[0], chars_Kannada[1], buffer_Kannada) - 2;
	if (scan(buffer_Kannada, buffer_Kannada + buffer_Kannada_len, Kannada) != Kannada)
		printf("test 'Kannada' failed\n");
	delete[] buffer_Kannada;

	YYCTYPE *buffer_Malayalam = new YYCTYPE[258];
	uint32_t buffer_Malayalam_len = encode_utf16(chars_Malayalam[0], chars_Malayalam[1], buffer_Malayalam) - 2;
	if (scan(buffer_Malayalam, buffer_Malayalam + buffer_Malayalam_len, Malayalam) != Malayalam)
		printf("test 'Malayalam' failed\n");
	delete[] buffer_Malayalam;

	YYCTYPE *buffer_Sinhala = new YYCTYPE[258];
	uint32_t buffer_Sinhala_len = encode_utf16(chars_Sinhala[0], chars_Sinhala[1], buffer_Sinhala) - 2;
	if (scan(buffer_Sinhala, buffer_Sinhala + buffer_Sinhala_len, Sinhala) != Sinhala)
		printf("test 'Sinhala' failed\n");
	delete[] buffer_Sinhala;

	YYCTYPE *buffer_Thai = new YYCTYPE[258];
	uint32_t buffer_Thai_len = encode_utf16(chars_Thai[0], chars_Thai[1], buffer_Thai) - 2;
	if (scan(buffer_Thai, buffer_Thai + buffer_Thai_len, Thai) != Thai)
		printf("test 'Thai' failed\n");
	delete[] buffer_Thai;

	YYCTYPE *buffer_Lao = new YYCTYPE[258];
	uint32_t buffer_Lao_len = encode_utf16(chars_Lao[0], chars_Lao[1], buffer_Lao) - 2;
	if (scan(buffer_Lao, buffer_Lao + buffer_Lao_len, Lao) != Lao)
		printf("test 'Lao' failed\n");
	delete[] buffer_Lao;

	YYCTYPE *buffer_Tibetan = new YYCTYPE[514];
	uint32_t buffer_Tibetan_len = encode_utf16(chars_Tibetan[0], chars_Tibetan[1], buffer_Tibetan) - 2;
	if (scan(buffer_Tibetan, buffer_Tibetan + buffer_Tibetan_len, Tibetan) != Tibetan)
		printf("test 'Tibetan' failed\n");
	delete[] buffer_Tibetan;

	YYCTYPE *buffer_Myanmar = new YYCTYPE[322];
	uint32_t buffer_Myanmar_len = encode_utf16(chars_Myanmar[0], chars_Myanmar[1], buffer_Myanmar) - 2;
	if (scan(buffer_Myanmar, buffer_Myanmar + buffer_Myanmar_len, Myanmar) != Myanmar)
		printf("test 'Myanmar' failed\n");
	delete[] buffer_Myanmar;

	YYCTYPE *buffer_Georgian = new YYCTYPE[194];
	uint32_t buffer_Georgian_len = encode_utf16(chars_Georgian[0], chars_Georgian[1], buffer_Georgian) - 2;
	if (scan(buffer_Georgian, buffer_Georgian + buffer_Georgian_len, Georgian) != Georgian)
		printf("test 'Georgian' failed\n");
	delete[] buffer_Georgian;

	YYCTYPE *buffer_Hangul_Jamo = new YYCTYPE[514];
	uint32_t buffer_Hangul_Jamo_len = encode_utf16(chars_Hangul_Jamo[0], chars_Hangul_Jamo[1], buffer_Hangul_Jamo) - 2;
	if (scan(buffer_Hangul_Jamo, buffer_Hangul_Jamo + buffer_Hangul_Jamo_len, Hangul_Jamo) != Hangul_Jamo)
		printf("test 'Hangul_Jamo' failed\n");
	delete[] buffer_Hangul_Jamo;

	YYCTYPE *buffer_Ethiopic = new YYCTYPE[770];
	uint32_t buffer_Ethiopic_len = encode_utf16(chars_Ethiopic[0], chars_Ethiopic[1], buffer_Ethiopic) - 2;
	if (scan(buffer_Ethiopic, buffer_Ethiopic + buffer_Ethiopic_len, Ethiopic) != Ethiopic)
		printf("test 'Ethiopic' failed\n");
	delete[] buffer_Ethiopic;

	YYCTYPE *buffer_Ethiopic_Supplement = new YYCTYPE[66];
	uint32_t buffer_Ethiopic_Supplement_len = encode_utf16(chars_Ethiopic_Supplement[0], chars_Ethiopic_Supplement[1], buffer_Ethiopic_Supplement) - 2;
	if (scan(buffer_Ethiopic_Supplement, buffer_Ethiopic_Supplement + buffer_Ethiopic_Supplement_len, Ethiopic_Supplement) != Ethiopic_Supplement)
		printf("test 'Ethiopic_Supplement' failed\n");
	delete[] buffer_Ethiopic_Supplement;

	YYCTYPE *buffer_Cherokee = new YYCTYPE[194];
	uint32_t buffer_Cherokee_len = encode_utf16(chars_Cherokee[0], chars_Cherokee[1], buffer_Cherokee) - 2;
	if (scan(buffer_Cherokee, buffer_Cherokee + buffer_Cherokee_len, Cherokee) != Cherokee)
		printf("test 'Cherokee' failed\n");
	delete[] buffer_Cherokee;

	YYCTYPE *buffer_Unified_Canadian_Aboriginal_Syllabics = new YYCTYPE[1282];
	uint32_t buffer_Unified_Canadian_Aboriginal_Syllabics_len = encode_utf16(chars_Unified_Canadian_Aboriginal_Syllabics[0], chars_Unified_Canadian_Aboriginal_Syllabics[1], buffer_Unified_Canadian_Aboriginal_Syllabics) - 2;
	if (scan(buffer_Unified_Canadian_Aboriginal_Syllabics, buffer_Unified_Canadian_Aboriginal_Syllabics + buffer_Unified_Canadian_Aboriginal_Syllabics_len, Unified_Canadian_Aboriginal_Syllabics) != Unified_Canadian_Aboriginal_Syllabics)
		printf("test 'Unified_Canadian_Aboriginal_Syllabics' failed\n");
	delete[] buffer_Unified_Canadian_Aboriginal_Syllabics;

	YYCTYPE *buffer_Ogham = new YYCTYPE[66];
	uint32_t buffer_Ogham_len = encode_utf16(chars_Ogham[0], chars_Ogham[1], buffer_Ogham) - 2;
	if (scan(buffer_Ogham, buffer_Ogham + buffer_Ogham_len, Ogham) != Ogham)
		printf("test 'Ogham' failed\n");
	delete[] buffer_Ogham;

	YYCTYPE *buffer_Runic = new YYCTYPE[194];
	uint32_t buffer_Runic_len = encode_utf16(chars_Runic[0], chars_Runic[1], buffer_Runic) - 2;
	if (scan(buffer_Runic, buffer_Runic + buffer_Runic_len, Runic) != Runic)
		printf("test 'Runic' failed\n");
	delete[] buffer_Runic;

	YYCTYPE *buffer_Tagalog = new YYCTYPE[66];
	uint32_t buffer_Tagalog_len = encode_utf16(chars_Tagalog[0], chars_Tagalog[1], buffer_Tagalog) - 2;
	if (scan(buffer_Tagalog, buffer_Tagalog + buffer_Tagalog_len, Tagalog) != Tagalog)
		printf("test 'Tagalog' failed\n");
	delete[] buffer_Tagalog;

	YYCTYPE *buffer_Hanunoo = new YYCTYPE[66];
	uint32_t buffer_Hanunoo_len = encode_utf16(chars_Hanunoo[0], chars_Hanunoo[1], buffer_Hanunoo) - 2;
	if (scan(buffer_Hanunoo, buffer_Hanunoo + buffer_Hanunoo_len, Hanunoo) != Hanunoo)
		printf("test 'Hanunoo' failed\n");
	delete[] buffer_Hanunoo;

	YYCTYPE *buffer_Buhid = new YYCTYPE[66];
	uint32_t buffer_Buhid_len = encode_utf16(chars_Buhid[0], chars_Buhid[1], buffer_Buhid) - 2;
	if (scan(buffer_Buhid, buffer_Buhid + buffer_Buhid_len, Buhid) != Buhid)
		printf("test 'Buhid' failed\n");
	delete[] buffer_Buhid;

	YYCTYPE *buffer_Tagbanwa = new YYCTYPE[66];
	uint32_t buffer_Tagbanwa_len = encode_utf16(chars_Tagbanwa[0], chars_Tagbanwa[1], buffer_Tagbanwa) - 2;
	if (scan(buffer_Tagbanwa, buffer_Tagbanwa + buffer_Tagbanwa_len, Tagbanwa) != Tagbanwa)
		printf("test 'Tagbanwa' failed\n");
	delete[] buffer_Tagbanwa;

	YYCTYPE *buffer_Khmer = new YYCTYPE[258];
	uint32_t buffer_Khmer_len = encode_utf16(chars_Khmer[0], chars_Khmer[1], buffer_Khmer) - 2;
	if (scan(buffer_Khmer, buffer_Khmer + buffer_Khmer_len, Khmer) != Khmer)
		printf("test 'Khmer' failed\n");
	delete[] buffer_Khmer;

	YYCTYPE *buffer_Mongolian = new YYCTYPE[354];
	uint32_t buffer_Mongolian_len = encode_utf16(chars_Mongolian[0], chars_Mongolian[1], buffer_Mongolian) - 2;
	if (scan(buffer_Mongolian, buffer_Mongolian + buffer_Mongolian_len, Mongolian) != Mongolian)
		printf("test 'Mongolian' failed\n");
	delete[] buffer_Mongolian;

	YYCTYPE *buffer_Unified_Canadian_Aboriginal_Syllabics_Extended = new YYCTYPE[162];
	uint32_t buffer_Unified_Canadian_Aboriginal_Syllabics_Extended_len = encode_utf16(chars_Unified_Canadian_Aboriginal_Syllabics_Extended[0], chars_Unified_Canadian_Aboriginal_Syllabics_Extended[1], buffer_Unified_Canadian_Aboriginal_Syllabics_Extended) - 2;
	if (scan(buffer_Unified_Canadian_Aboriginal_Syllabics_Extended, buffer_Unified_Canadian_Aboriginal_Syllabics_Extended + buffer_Unified_Canadian_Aboriginal_Syllabics_Extended_len, Unified_Canadian_Aboriginal_Syllabics_Extended) != Unified_Canadian_Aboriginal_Syllabics_Extended)
		printf("test 'Unified_Canadian_Aboriginal_Syllabics_Extended' failed\n");
	delete[] buffer_Unified_Canadian_Aboriginal_Syllabics_Extended;

	YYCTYPE *buffer_Limbu = new YYCTYPE[162];
	uint32_t buffer_Limbu_len = encode_utf16(chars_Limbu[0], chars_Limbu[1], buffer_Limbu) - 2;
	if (scan(buffer_Limbu, buffer_Limbu + buffer_Limbu_len, Limbu) != Limbu)
		printf("test 'Limbu' failed\n");
	delete[] buffer_Limbu;

	YYCTYPE *buffer_Tai_Le = new YYCTYPE[98];
	uint32_t buffer_Tai_Le_len = encode_utf16(chars_Tai_Le[0], chars_Tai_Le[1], buffer_Tai_Le) - 2;
	if (scan(buffer_Tai_Le, buffer_Tai_Le + buffer_Tai_Le_len, Tai_Le) != Tai_Le)
		printf("test 'Tai_Le' failed\n");
	delete[] buffer_Tai_Le;

	YYCTYPE *buffer_New_Tai_Lue = new YYCTYPE[194];
	uint32_t buffer_New_Tai_Lue_len = encode_utf16(chars_New_Tai_Lue[0], chars_New_Tai_Lue[1], buffer_New_Tai_Lue) - 2;
	if (scan(buffer_New_Tai_Lue, buffer_New_Tai_Lue + buffer_New_Tai_Lue_len, New_Tai_Lue) != New_Tai_Lue)
		printf("test 'New_Tai_Lue' failed\n");
	delete[] buffer_New_Tai_Lue;

	YYCTYPE *buffer_Khmer_Symbols = new YYCTYPE[66];
	uint32_t buffer_Khmer_Symbols_len = encode_utf16(chars_Khmer_Symbols[0], chars_Khmer_Symbols[1], buffer_Khmer_Symbols) - 2;
	if (scan(buffer_Khmer_Symbols, buffer_Khmer_Symbols + buffer_Khmer_Symbols_len, Khmer_Symbols) != Khmer_Symbols)
		printf("test 'Khmer_Symbols' failed\n");
	delete[] buffer_Khmer_Symbols;

	YYCTYPE *buffer_Buginese = new YYCTYPE[66];
	uint32_t buffer_Buginese_len = encode_utf16(chars_Buginese[0], chars_Buginese[1], buffer_Buginese) - 2;
	if (scan(buffer_Buginese, buffer_Buginese + buffer_Buginese_len, Buginese) != Buginese)
		printf("test 'Buginese' failed\n");
	delete[] buffer_Buginese;

	YYCTYPE *buffer_Tai_Tham = new YYCTYPE[290];
	uint32_t buffer_Tai_Tham_len = encode_utf16(chars_Tai_Tham[0], chars_Tai_Tham[1], buffer_Tai_Tham) - 2;
	if (scan(buffer_Tai_Tham, buffer_Tai_Tham + buffer_Tai_Tham_len, Tai_Tham) != Tai_Tham)
		printf("test 'Tai_Tham' failed\n");
	delete[] buffer_Tai_Tham;

	YYCTYPE *buffer_Combining_Diacritical_Marks_Extended = new YYCTYPE[162];
	uint32_t buffer_Combining_Diacritical_Marks_Extended_len = encode_utf16(chars_Combining_Diacritical_Marks_Extended[0], chars_Combining_Diacritical_Marks_Extended[1], buffer_Combining_Diacritical_Marks_Extended) - 2;
	if (scan(buffer_Combining_Diacritical_Marks_Extended, buffer_Combining_Diacritical_Marks_Extended + buffer_Combining_Diacritical_Marks_Extended_len, Combining_Diacritical_Marks_Extended) != Combining_Diacritical_Marks_Extended)
		printf("test 'Combining_Diacritical_Marks_Extended' failed\n");
	delete[] buffer_Combining_Diacritical_Marks_Extended;

	YYCTYPE *buffer_Balinese = new YYCTYPE[258];
	uint32_t buffer_Balinese_len = encode_utf16(chars_Balinese[0], chars_Balinese[1], buffer_Balinese) - 2;
	if (scan(buffer_Balinese, buffer_Balinese + buffer_Balinese_len, Balinese) != Balinese)
		printf("test 'Balinese' failed\n");
	delete[] buffer_Balinese;

	YYCTYPE *buffer_Sundanese = new YYCTYPE[130];
	uint32_t buffer_Sundanese_len = encode_utf16(chars_Sundanese[0], chars_Sundanese[1], buffer_Sundanese) - 2;
	if (scan(buffer_Sundanese, buffer_Sundanese + buffer_Sundanese_len, Sundanese) != Sundanese)
		printf("test 'Sundanese' failed\n");
	delete[] buffer_Sundanese;

	YYCTYPE *buffer_Batak = new YYCTYPE[130];
	uint32_t buffer_Batak_len = encode_utf16(chars_Batak[0], chars_Batak[1], buffer_Batak) - 2;
	if (scan(buffer_Batak, buffer_Batak + buffer_Batak_len, Batak) != Batak)
		printf("test 'Batak' failed\n");
	delete[] buffer_Batak;

	YYCTYPE *buffer_Lepcha = new YYCTYPE[162];
	uint32_t buffer_Lepcha_len = encode_utf16(chars_Lepcha[0], chars_Lepcha[1], buffer_Lepcha) - 2;
	if (scan(buffer_Lepcha, buffer_Lepcha + buffer_Lepcha_len, Lepcha) != Lepcha)
		printf("test 'Lepcha' failed\n");
	delete[] buffer_Lepcha;

	YYCTYPE *buffer_Ol_Chiki = new YYCTYPE[98];
	uint32_t buffer_Ol_Chiki_len = encode_utf16(chars_Ol_Chiki[0], chars_Ol_Chiki[1], buffer_Ol_Chiki) - 2;
	if (scan(buffer_Ol_Chiki, buffer_Ol_Chiki + buffer_Ol_Chiki_len, Ol_Chiki) != Ol_Chiki)
		printf("test 'Ol_Chiki' failed\n");
	delete[] buffer_Ol_Chiki;

	YYCTYPE *buffer_Cyrillic_Extended_C = new YYCTYPE[34];
	uint32_t buffer_Cyrillic_Extended_C_len = encode_utf16(chars_Cyrillic_Extended_C[0], chars_Cyrillic_Extended_C[1], buffer_Cyrillic_Extended_C) - 2;
	if (scan(buffer_Cyrillic_Extended_C, buffer_Cyrillic_Extended_C + buffer_Cyrillic_Extended_C_len, Cyrillic_Extended_C) != Cyrillic_Extended_C)
		printf("test 'Cyrillic_Extended_C' failed\n");
	delete[] buffer_Cyrillic_Extended_C;

	YYCTYPE *buffer_Georgian_Extended = new YYCTYPE[98];
	uint32_t buffer_Georgian_Extended_len = encode_utf16(chars_Georgian_Extended[0], chars_Georgian_Extended[1], buffer_Georgian_Extended) - 2;
	if (scan(buffer_Georgian_Extended, buffer_Georgian_Extended + buffer_Georgian_Extended_len, Georgian_Extended) != Georgian_Extended)
		printf("test 'Georgian_Extended' failed\n");
	delete[] buffer_Georgian_Extended;

	YYCTYPE *buffer_Sundanese_Supplement = new YYCTYPE[34];
	uint32_t buffer_Sundanese_Supplement_len = encode_utf16(chars_Sundanese_Supplement[0], chars_Sundanese_Supplement[1], buffer_Sundanese_Supplement) - 2;
	if (scan(buffer_Sundanese_Supplement, buffer_Sundanese_Supplement + buffer_Sundanese_Supplement_len, Sundanese_Supplement) != Sundanese_Supplement)
		printf("test 'Sundanese_Supplement' failed\n");
	delete[] buffer_Sundanese_Supplement;

	YYCTYPE *buffer_Vedic_Extensions = new YYCTYPE[98];
	uint32_t buffer_Vedic_Extensions_len = encode_utf16(chars_Vedic_Extensions[0], chars_Vedic_Extensions[1], buffer_Vedic_Extensions) - 2;
	if (scan(buffer_Vedic_Extensions, buffer_Vedic_Extensions + buffer_Vedic_Extensions_len, Vedic_Extensions) != Vedic_Extensions)
		printf("test 'Vedic_Extensions' failed\n");
	delete[] buffer_Vedic_Extensions;

	YYCTYPE *buffer_Phonetic_Extensions = new YYCTYPE[258];
	uint32_t buffer_Phonetic_Extensions_len = encode_utf16(chars_Phonetic_Extensions[0], chars_Phonetic_Extensions[1], buffer_Phonetic_Extensions) - 2;
	if (scan(buffer_Phonetic_Extensions, buffer_Phonetic_Extensions + buffer_Phonetic_Extensions_len, Phonetic_Extensions) != Phonetic_Extensions)
		printf("test 'Phonetic_Extensions' failed\n");
	delete[] buffer_Phonetic_Extensions;

	YYCTYPE *buffer_Phonetic_Extensions_Supplement = new YYCTYPE[130];
	uint32_t buffer_Phonetic_Extensions_Supplement_len = encode_utf16(chars_Phonetic_Extensions_Supplement[0], chars_Phonetic_Extensions_Supplement[1], buffer_Phonetic_Extensions_Supplement) - 2;
	if (scan(buffer_Phonetic_Extensions_Supplement, buffer_Phonetic_Extensions_Supplement + buffer_Phonetic_Extensions_Supplement_len, Phonetic_Extensions_Supplement) != Phonetic_Extensions_Supplement)
		printf("test 'Phonetic_Extensions_Supplement' failed\n");
	delete[] buffer_Phonetic_Extensions_Supplement;

	YYCTYPE *buffer_Combining_Diacritical_Marks_Supplement = new YYCTYPE[130];
	uint32_t buffer_Combining_Diacritical_Marks_Supplement_len = encode_utf16(chars_Combining_Diacritical_Marks_Supplement[0], chars_Combining_Diacritical_Marks_Supplement[1], buffer_Combining_Diacritical_Marks_Supplement) - 2;
	if (scan(buffer_Combining_Diacritical_Marks_Supplement, buffer_Combining_Diacritical_Marks_Supplement + buffer_Combining_Diacritical_Marks_Supplement_len, Combining_Diacritical_Marks_Supplement) != Combining_Diacritical_Marks_Supplement)
		printf("test 'Combining_Diacritical_Marks_Supplement' failed\n");
	delete[] buffer_Combining_Diacritical_Marks_Supplement;

	YYCTYPE *buffer_Latin_Extended_Additional = new YYCTYPE[514];
	uint32_t buffer_Latin_Extended_Additional_len = encode_utf16(chars_Latin_Extended_Additional[0], chars_Latin_Extended_Additional[1], buffer_Latin_Extended_Additional) - 2;
	if (scan(buffer_Latin_Extended_Additional, buffer_Latin_Extended_Additional + buffer_Latin_Extended_Additional_len, Latin_Extended_Additional) != Latin_Extended_Additional)
		printf("test 'Latin_Extended_Additional' failed\n");
	delete[] buffer_Latin_Extended_Additional;

	YYCTYPE *buffer_Greek_Extended = new YYCTYPE[514];
	uint32_t buffer_Greek_Extended_len = encode_utf16(chars_Greek_Extended[0], chars_Greek_Extended[1], buffer_Greek_Extended) - 2;
	if (scan(buffer_Greek_Extended, buffer_Greek_Extended + buffer_Greek_Extended_len, Greek_Extended) != Greek_Extended)
		printf("test 'Greek_Extended' failed\n");
	delete[] buffer_Greek_Extended;

	YYCTYPE *buffer_General_Punctuation = new YYCTYPE[226];
	uint32_t buffer_General_Punctuation_len = encode_utf16(chars_General_Punctuation[0], chars_General_Punctuation[1], buffer_General_Punctuation) - 2;
	if (scan(buffer_General_Punctuation, buffer_General_Punctuation + buffer_General_Punctuation_len, General_Punctuation) != General_Punctuation)
		printf("test 'General_Punctuation' failed\n");
	delete[] buffer_General_Punctuation;

	YYCTYPE *buffer_Superscripts_and_Subscripts = new YYCTYPE[98];
	uint32_t buffer_Superscripts_and_Subscripts_len = encode_utf16(chars_Superscripts_and_Subscripts[0], chars_Superscripts_and_Subscripts[1], buffer_Superscripts_and_Subscripts) - 2;
	if (scan(buffer_Superscripts_and_Subscripts, buffer_Superscripts_and_Subscripts + buffer_Superscripts_and_Subscripts_len, Superscripts_and_Subscripts) != Superscripts_and_Subscripts)
		printf("test 'Superscripts_and_Subscripts' failed\n");
	delete[] buffer_Superscripts_and_Subscripts;

	YYCTYPE *buffer_Currency_Symbols = new YYCTYPE[98];
	uint32_t buffer_Currency_Symbols_len = encode_utf16(chars_Currency_Symbols[0], chars_Currency_Symbols[1], buffer_Currency_Symbols) - 2;
	if (scan(buffer_Currency_Symbols, buffer_Currency_Symbols + buffer_Currency_Symbols_len, Currency_Symbols) != Currency_Symbols)
		printf("test 'Currency_Symbols' failed\n");
	delete[] buffer_Currency_Symbols;

	YYCTYPE *buffer_Combining_Diacritical_Marks_for_Symbols = new YYCTYPE[98];
	uint32_t buffer_Combining_Diacritical_Marks_for_Symbols_len = encode_utf16(chars_Combining_Diacritical_Marks_for_Symbols[0], chars_Combining_Diacritical_Marks_for_Symbols[1], buffer_Combining_Diacritical_Marks_for_Symbols) - 2;
	if (scan(buffer_Combining_Diacritical_Marks_for_Symbols, buffer_Combining_Diacritical_Marks_for_Symbols + buffer_Combining_Diacritical_Marks_for_Symbols_len, Combining_Diacritical_Marks_for_Symbols) != Combining_Diacritical_Marks_for_Symbols)
		printf("test 'Combining_Diacritical_Marks_for_Symbols' failed\n");
	delete[] buffer_Combining_Diacritical_Marks_for_Symbols;

	YYCTYPE *buffer_Letterlike_Symbols = new YYCTYPE[162];
	uint32_t buffer_Letterlike_Symbols_len = encode_utf16(chars_Letterlike_Symbols[0], chars_Letterlike_Symbols[1], buffer_Letterlike_Symbols) - 2;
	if (scan(buffer_Letterlike_Symbols, buffer_Letterlike_Symbols + buffer_Letterlike_Symbols_len, Letterlike_Symbols) != Letterlike_Symbols)
		printf("test 'Letterlike_Symbols' failed\n");
	delete[] buffer_Letterlike_Symbols;

	YYCTYPE *buffer_Number_Forms = new YYCTYPE[130];
	uint32_t buffer_Number_Forms_len = encode_utf16(chars_Number_Forms[0], chars_Number_Forms[1], buffer_Number_Forms) - 2;
	if (scan(buffer_Number_Forms, buffer_Number_Forms + buffer_Number_Forms_len, Number_Forms) != Number_Forms)
		printf("test 'Number_Forms' failed\n");
	delete[] buffer_Number_Forms;

	YYCTYPE *buffer_Arrows = new YYCTYPE[226];
	uint32_t buffer_Arrows_len = encode_utf16(chars_Arrows[0], chars_Arrows[1], buffer_Arrows) - 2;
	if (scan(buffer_Arrows, buffer_Arrows + buffer_Arrows_len, Arrows) != Arrows)
		printf("test 'Arrows' failed\n");
	delete[] buffer_Arrows;

	YYCTYPE *buffer_Mathematical_Operators = new YYCTYPE[514];
	uint32_t buffer_Mathematical_Operators_len = encode_utf16(chars_Mathematical_Operators[0], chars_Mathematical_Operators[1], buffer_Mathematical_Operators) - 2;
	if (scan(buffer_Mathematical_Operators, buffer_Mathematical_Operators + buffer_Mathematical_Operators_len, Mathematical_Operators) != Mathematical_Operators)
		printf("test 'Mathematical_Operators' failed\n");
	delete[] buffer_Mathematical_Operators;

	YYCTYPE *buffer_Miscellaneous_Technical = new YYCTYPE[514];
	uint32_t buffer_Miscellaneous_Technical_len = encode_utf16(chars_Miscellaneous_Technical[0], chars_Miscellaneous_Technical[1], buffer_Miscellaneous_Technical) - 2;
	if (scan(buffer_Miscellaneous_Technical, buffer_Miscellaneous_Technical + buffer_Miscellaneous_Technical_len, Miscellaneous_Technical) != Miscellaneous_Technical)
		printf("test 'Miscellaneous_Technical' failed\n");
	delete[] buffer_Miscellaneous_Technical;

	YYCTYPE *buffer_Control_Pictures = new YYCTYPE[130];
	uint32_t buffer_Control_Pictures_len = encode_utf16(chars_Control_Pictures[0], chars_Control_Pictures[1], buffer_Control_Pictures) - 2;
	if (scan(buffer_Control_Pictures, buffer_Control_Pictures + buffer_Control_Pictures_len, Control_Pictures) != Control_Pictures)
		printf("test 'Control_Pictures' failed\n");
	delete[] buffer_Control_Pictures;

	YYCTYPE *buffer_Optical_Character_Recognition = new YYCTYPE[66];
	uint32_t buffer_Optical_Character_Recognition_len = encode_utf16(chars_Optical_Character_Recognition[0], chars_Optical_Character_Recognition[1], buffer_Optical_Character_Recognition) - 2;
	if (scan(buffer_Optical_Character_Recognition, buffer_Optical_Character_Recognition + buffer_Optical_Character_Recognition_len, Optical_Character_Recognition) != Optical_Character_Recognition)
		printf("test 'Optical_Character_Recognition' failed\n");
	delete[] buffer_Optical_Character_Recognition;

	YYCTYPE *buffer_Enclosed_Alphanumerics = new YYCTYPE[322];
	uint32_t buffer_Enclosed_Alphanumerics_len = encode_utf16(chars_Enclosed_Alphanumerics[0], chars_Enclosed_Alphanumerics[1], buffer_Enclosed_Alphanumerics) - 2;
	if (scan(buffer_Enclosed_Alphanumerics, buffer_Enclosed_Alphanumerics + buffer_Enclosed_Alphanumerics_len, Enclosed_Alphanumerics) != Enclosed_Alphanumerics)
		printf("test 'Enclosed_Alphanumerics' failed\n");
	delete[] buffer_Enclosed_Alphanumerics;

	YYCTYPE *buffer_Box_Drawing = new YYCTYPE[258];
	uint32_t buffer_Box_Drawing_len = encode_utf16(chars_Box_Drawing[0], chars_Box_Drawing[1], buffer_Box_Drawing) - 2;
	if (scan(buffer_Box_Drawing, buffer_Box_Drawing + buffer_Box_Drawing_len, Box_Drawing) != Box_Drawing)
		printf("test 'Box_Drawing' failed\n");
	delete[] buffer_Box_Drawing;

	YYCTYPE *buffer_Block_Elements = new YYCTYPE[66];
	uint32_t buffer_Block_Elements_len = encode_utf16(chars_Block_Elements[0], chars_Block_Elements[1], buffer_Block_Elements) - 2;
	if (scan(buffer_Block_Elements, buffer_Block_Elements + buffer_Block_Elements_len, Block_Elements) != Block_Elements)
		printf("test 'Block_Elements' failed\n");
	delete[] buffer_Block_Elements;

	YYCTYPE *buffer_Geometric_Shapes = new YYCTYPE[194];
	uint32_t buffer_Geometric_Shapes_len = encode_utf16(chars_Geometric_Shapes[0], chars_Geometric_Shapes[1], buffer_Geometric_Shapes) - 2;
	if (scan(buffer_Geometric_Shapes, buffer_Geometric_Shapes + buffer_Geometric_Shapes_len, Geometric_Shapes) != Geometric_Shapes)
		printf("test 'Geometric_Shapes' failed\n");
	delete[] buffer_Geometric_Shapes;

	YYCTYPE *buffer_Miscellaneous_Symbols = new YYCTYPE[514];
	uint32_t buffer_Miscellaneous_Symbols_len = encode_utf16(chars_Miscellaneous_Symbols[0], chars_Miscellaneous_Symbols[1], buffer_Miscellaneous_Symbols) - 2;
	if (scan(buffer_Miscellaneous_Symbols, buffer_Miscellaneous_Symbols + buffer_Miscellaneous_Symbols_len, Miscellaneous_Symbols) != Miscellaneous_Symbols)
		printf("test 'Miscellaneous_Symbols' failed\n");
	delete[] buffer_Miscellaneous_Symbols;

	YYCTYPE *buffer_Dingbats = new YYCTYPE[386];
	uint32_t buffer_Dingbats_len = encode_utf16(chars_Dingbats[0], chars_Dingbats[1], buffer_Dingbats) - 2;
	if (scan(buffer_Dingbats, buffer_Dingbats + buffer_Dingbats_len, Dingbats) != Dingbats)
		printf("test 'Dingbats' failed\n");
	delete[] buffer_Dingbats;

	YYCTYPE *buffer_Miscellaneous_Mathematical_Symbols_A = new YYCTYPE[98];
	uint32_t buffer_Miscellaneous_Mathematical_Symbols_A_len = encode_utf16(chars_Miscellaneous_Mathematical_Symbols_A[0], chars_Miscellaneous_Mathematical_Symbols_A[1], buffer_Miscellaneous_Mathematical_Symbols_A) - 2;
	if (scan(buffer_Miscellaneous_Mathematical_Symbols_A, buffer_Miscellaneous_Mathematical_Symbols_A + buffer_Miscellaneous_Mathematical_Symbols_A_len, Miscellaneous_Mathematical_Symbols_A) != Miscellaneous_Mathematical_Symbols_A)
		printf("test 'Miscellaneous_Mathematical_Symbols_A' failed\n");
	delete[] buffer_Miscellaneous_Mathematical_Symbols_A;

	YYCTYPE *buffer_Supplemental_Arrows_A = new YYCTYPE[34];
	uint32_t buffer_Supplemental_Arrows_A_len = encode_utf16(chars_Supplemental_Arrows_A[0], chars_Supplemental_Arrows_A[1], buffer_Supplemental_Arrows_A) - 2;
	if (scan(buffer_Supplemental_Arrows_A, buffer_Supplemental_Arrows_A + buffer_Supplemental_Arrows_A_len, Supplemental_Arrows_A) != Supplemental_Arrows_A)
		printf("test 'Supplemental_Arrows_A' failed\n");
	delete[] buffer_Supplemental_Arrows_A;

	YYCTYPE *buffer_Braille_Patterns = new YYCTYPE[514];
	uint32_t buffer_Braille_Patterns_len = encode_utf16(chars_Braille_Patterns[0], chars_Braille_Patterns[1], buffer_Braille_Patterns) - 2;
	if (scan(buffer_Braille_Patterns, buffer_Braille_Patterns + buffer_Braille_Patterns_len, Braille_Patterns) != Braille_Patterns)
		printf("test 'Braille_Patterns' failed\n");
	delete[] buffer_Braille_Patterns;

	YYCTYPE *buffer_Supplemental_Arrows_B = new YYCTYPE[258];
	uint32_t buffer_Supplemental_Arrows_B_len = encode_utf16(chars_Supplemental_Arrows_B[0], chars_Supplemental_Arrows_B[1], buffer_Supplemental_Arrows_B) - 2;
	if (scan(buffer_Supplemental_Arrows_B, buffer_Supplemental_Arrows_B + buffer_Supplemental_Arrows_B_len, Supplemental_Arrows_B) != Supplemental_Arrows_B)
		printf("test 'Supplemental_Arrows_B' failed\n");
	delete[] buffer_Supplemental_Arrows_B;

	YYCTYPE *buffer_Miscellaneous_Mathematical_Symbols_B = new YYCTYPE[258];
	uint32_t buffer_Miscellaneous_Mathematical_Symbols_B_len = encode_utf16(chars_Miscellaneous_Mathematical_Symbols_B[0], chars_Miscellaneous_Mathematical_Symbols_B[1], buffer_Miscellaneous_Mathematical_Symbols_B) - 2;
	if (scan(buffer_Miscellaneous_Mathematical_Symbols_B, buffer_Miscellaneous_Mathematical_Symbols_B + buffer_Miscellaneous_Mathematical_Symbols_B_len, Miscellaneous_Mathematical_Symbols_B) != Miscellaneous_Mathematical_Symbols_B)
		printf("test 'Miscellaneous_Mathematical_Symbols_B' failed\n");
	delete[] buffer_Miscellaneous_Mathematical_Symbols_B;

	YYCTYPE *buffer_Supplemental_Mathematical_Operators = new YYCTYPE[514];
	uint32_t buffer_Supplemental_Mathematical_Operators_len = encode_utf16(chars_Supplemental_Mathematical_Operators[0], chars_Supplemental_Mathematical_Operators[1], buffer_Supplemental_Mathematical_Operators) - 2;
	if (scan(buffer_Supplemental_Mathematical_Operators, buffer_Supplemental_Mathematical_Operators + buffer_Supplemental_Mathematical_Operators_len, Supplemental_Mathematical_Operators) != Supplemental_Mathematical_Operators)
		printf("test 'Supplemental_Mathematical_Operators' failed\n");
	delete[] buffer_Supplemental_Mathematical_Operators;

	YYCTYPE *buffer_Miscellaneous_Symbols_and_Arrows = new YYCTYPE[514];
	uint32_t buffer_Miscellaneous_Symbols_and_Arrows_len = encode_utf16(chars_Miscellaneous_Symbols_and_Arrows[0], chars_Miscellaneous_Symbols_and_Arrows[1], buffer_Miscellaneous_Symbols_and_Arrows) - 2;
	if (scan(buffer_Miscellaneous_Symbols_and_Arrows, buffer_Miscellaneous_Symbols_and_Arrows + buffer_Miscellaneous_Symbols_and_Arrows_len, Miscellaneous_Symbols_and_Arrows) != Miscellaneous_Symbols_and_Arrows)
		printf("test 'Miscellaneous_Symbols_and_Arrows' failed\n");
	delete[] buffer_Miscellaneous_Symbols_and_Arrows;

	YYCTYPE *buffer_Glagolitic = new YYCTYPE[194];
	uint32_t buffer_Glagolitic_len = encode_utf16(chars_Glagolitic[0], chars_Glagolitic[1], buffer_Glagolitic) - 2;
	if (scan(buffer_Glagolitic, buffer_Glagolitic + buffer_Glagolitic_len, Glagolitic) != Glagolitic)
		printf("test 'Glagolitic' failed\n");
	delete[] buffer_Glagolitic;

	YYCTYPE *buffer_Latin_Extended_C = new YYCTYPE[66];
	uint32_t buffer_Latin_Extended_C_len = encode_utf16(chars_Latin_Extended_C[0], chars_Latin_Extended_C[1], buffer_Latin_Extended_C) - 2;
	if (scan(buffer_Latin_Extended_C, buffer_Latin_Extended_C + buffer_Latin_Extended_C_len, Latin_Extended_C) != Latin_Extended_C)
		printf("test 'Latin_Extended_C' failed\n");
	delete[] buffer_Latin_Extended_C;

	YYCTYPE *buffer_Coptic = new YYCTYPE[258];
	uint32_t buffer_Coptic_len = encode_utf16(chars_Coptic[0], chars_Coptic[1], buffer_Coptic) - 2;
	if (scan(buffer_Coptic, buffer_Coptic + buffer_Coptic_len, Coptic) != Coptic)
		printf("test 'Coptic' failed\n");
	delete[] buffer_Coptic;

	YYCTYPE *buffer_Georgian_Supplement = new YYCTYPE[98];
	uint32_t buffer_Georgian_Supplement_len = encode_utf16(chars_Georgian_Supplement[0], chars_Georgian_Supplement[1], buffer_Georgian_Supplement) - 2;
	if (scan(buffer_Georgian_Supplement, buffer_Georgian_Supplement + buffer_Georgian_Supplement_len, Georgian_Supplement) != Georgian_Supplement)
		printf("test 'Georgian_Supplement' failed\n");
	delete[] buffer_Georgian_Supplement;

	YYCTYPE *buffer_Tifinagh = new YYCTYPE[162];
	uint32_t buffer_Tifinagh_len = encode_utf16(chars_Tifinagh[0], chars_Tifinagh[1], buffer_Tifinagh) - 2;
	if (scan(buffer_Tifinagh, buffer_Tifinagh + buffer_Tifinagh_len, Tifinagh) != Tifinagh)
		printf("test 'Tifinagh' failed\n");
	delete[] buffer_Tifinagh;

	YYCTYPE *buffer_Ethiopic_Extended = new YYCTYPE[194];
	uint32_t buffer_Ethiopic_Extended_len = encode_utf16(chars_Ethiopic_Extended[0], chars_Ethiopic_Extended[1], buffer_Ethiopic_Extended) - 2;
	if (scan(buffer_Ethiopic_Extended, buffer_Ethiopic_Extended + buffer_Ethiopic_Extended_len, Ethiopic_Extended) != Ethiopic_Extended)
		printf("test 'Ethiopic_Extended' failed\n");
	delete[] buffer_Ethiopic_Extended;

	YYCTYPE *buffer_Cyrillic_Extended_A = new YYCTYPE[66];
	uint32_t buffer_Cyrillic_Extended_A_len = encode_utf16(chars_Cyrillic_Extended_A[0], chars_Cyrillic_Extended_A[1], buffer_Cyrillic_Extended_A) - 2;
	if (scan(buffer_Cyrillic_Extended_A, buffer_Cyrillic_Extended_A + buffer_Cyrillic_Extended_A_len, Cyrillic_Extended_A) != Cyrillic_Extended_A)
		printf("test 'Cyrillic_Extended_A' failed\n");
	delete[] buffer_Cyrillic_Extended_A;

	YYCTYPE *buffer_Supplemental_Punctuation = new YYCTYPE[258];
	uint32_t buffer_Supplemental_Punctuation_len = encode_utf16(chars_Supplemental_Punctuation[0], chars_Supplemental_Punctuation[1], buffer_Supplemental_Punctuation) - 2;
	if (scan(buffer_Supplemental_Punctuation, buffer_Supplemental_Punctuation + buffer_Supplemental_Punctuation_len, Supplemental_Punctuation) != Supplemental_Punctuation)
		printf("test 'Supplemental_Punctuation' failed\n");
	delete[] buffer_Supplemental_Punctuation;

	YYCTYPE *buffer_CJK_Radicals_Supplement = new YYCTYPE[258];
	uint32_t buffer_CJK_Radicals_Supplement_len = encode_utf16(chars_CJK_Radicals_Supplement[0], chars_CJK_Radicals_Supplement[1], buffer_CJK_Radicals_Supplement) - 2;
	if (scan(buffer_CJK_Radicals_Supplement, buffer_CJK_Radicals_Supplement + buffer_CJK_Radicals_Supplement_len, CJK_Radicals_Supplement) != CJK_Radicals_Supplement)
		printf("test 'CJK_Radicals_Supplement' failed\n");
	delete[] buffer_CJK_Radicals_Supplement;

	YYCTYPE *buffer_Kangxi_Radicals = new YYCTYPE[450];
	uint32_t buffer_Kangxi_Radicals_len = encode_utf16(chars_Kangxi_Radicals[0], chars_Kangxi_Radicals[1], buffer_Kangxi_Radicals) - 2;
	if (scan(buffer_Kangxi_Radicals, buffer_Kangxi_Radicals + buffer_Kangxi_Radicals_len, Kangxi_Radicals) != Kangxi_Radicals)
		printf("test 'Kangxi_Radicals' failed\n");
	delete[] buffer_Kangxi_Radicals;

	YYCTYPE *buffer_Ideographic_Description_Characters = new YYCTYPE[34];
	uint32_t buffer_Ideographic_Description_Characters_len = encode_utf16(chars_Ideographic_Description_Characters[0], chars_Ideographic_Description_Characters[1], buffer_Ideographic_Description_Characters) - 2;
	if (scan(buffer_Ideographic_Description_Characters, buffer_Ideographic_Description_Characters + buffer_Ideographic_Description_Characters_len, Ideographic_Description_Characters) != Ideographic_Description_Characters)
		printf("test 'Ideographic_Description_Characters' failed\n");
	delete[] buffer_Ideographic_Description_Characters;

	YYCTYPE *buffer_CJK_Symbols_and_Punctuation = new YYCTYPE[130];
	uint32_t buffer_CJK_Symbols_and_Punctuation_len = encode_utf16(chars_CJK_Symbols_and_Punctuation[0], chars_CJK_Symbols_and_Punctuation[1], buffer_CJK_Symbols_and_Punctuation) - 2;
	if (scan(buffer_CJK_Symbols_and_Punctuation, buffer_CJK_Symbols_and_Punctuation + buffer_CJK_Symbols_and_Punctuation_len, CJK_Symbols_and_Punctuation) != CJK_Symbols_and_Punctuation)
		printf("test 'CJK_Symbols_and_Punctuation' failed\n");
	delete[] buffer_CJK_Symbols_and_Punctuation;

	YYCTYPE *buffer_Hiragana = new YYCTYPE[194];
	uint32_t buffer_Hiragana_len = encode_utf16(chars_Hiragana[0], chars_Hiragana[1], buffer_Hiragana) - 2;
	if (scan(buffer_Hiragana, buffer_Hiragana + buffer_Hiragana_len, Hiragana) != Hiragana)
		printf("test 'Hiragana' failed\n");
	delete[] buffer_Hiragana;

	YYCTYPE *buffer_Katakana = new YYCTYPE[194];
	uint32_t buffer_Katakana_len = encode_utf16(chars_Katakana[0], chars_Katakana[1], buffer_Katakana) - 2;
	if (scan(buffer_Katakana, buffer_Katakana + buffer_Katakana_len, Katakana) != Katakana)
		printf("test 'Katakana' failed\n");
	delete[] buffer_Katakana;

	YYCTYPE *buffer_Bopomofo = new YYCTYPE[98];
	uint32_t buffer_Bopomofo_len = encode_utf16(chars_Bopomofo[0], chars_Bopomofo[1], buffer_Bopomofo) - 2;
	if (scan(buffer_Bopomofo, buffer_Bopomofo + buffer_Bopomofo_len, Bopomofo) != Bopomofo)
		printf("test 'Bopomofo' failed\n");
	delete[] buffer_Bopomofo;

	YYCTYPE *buffer_Hangul_Compatibility_Jamo = new YYCTYPE[194];
	uint32_t buffer_Hangul_Compatibility_Jamo_len = encode_utf16(chars_Hangul_Compatibility_Jamo[0], chars_Hangul_Compatibility_Jamo[1], buffer_Hangul_Compatibility_Jamo) - 2;
	if (scan(buffer_Hangul_Compatibility_Jamo, buffer_Hangul_Compatibility_Jamo + buffer_Hangul_Compatibility_Jamo_len, Hangul_Compatibility_Jamo) != Hangul_Compatibility_Jamo)
		printf("test 'Hangul_Compatibility_Jamo' failed\n");
	delete[] buffer_Hangul_Compatibility_Jamo;

	YYCTYPE *buffer_Kanbun = new YYCTYPE[34];
	uint32_t buffer_Kanbun_len = encode_utf16(chars_Kanbun[0], chars_Kanbun[1], buffer_Kanbun) - 2;
	if (scan(buffer_Kanbun, buffer_Kanbun + buffer_Kanbun_len, Kanbun) != Kanbun)
		printf("test 'Kanbun' failed\n");
	delete[] buffer_Kanbun;

	YYCTYPE *buffer_Bopomofo_Extended = new YYCTYPE[66];
	uint32_t buffer_Bopomofo_Extended_len = encode_utf16(chars_Bopomofo_Extended[0], chars_Bopomofo_Extended[1], buffer_Bopomofo_Extended) - 2;
	if (scan(buffer_Bopomofo_Extended, buffer_Bopomofo_Extended + buffer_Bopomofo_Extended_len, Bopomofo_Extended) != Bopomofo_Extended)
		printf("test 'Bopomofo_Extended' failed\n");
	delete[] buffer_Bopomofo_Extended;

	YYCTYPE *buffer_CJK_Strokes = new YYCTYPE[98];
	uint32_t buffer_CJK_Strokes_len = encode_utf16(chars_CJK_Strokes[0], chars_CJK_Strokes[1], buffer_CJK_Strokes) - 2;
	if (scan(buffer_CJK_Strokes, buffer_CJK_Strokes + buffer_CJK_Strokes_len, CJK_Strokes) != CJK_Strokes)
		printf("test 'CJK_Strokes' failed\n");
	delete[] buffer_CJK_Strokes;

	YYCTYPE *buffer_Katakana_Phonetic_Extensions = new YYCTYPE[34];
	uint32_t buffer_Katakana_Phonetic_Extensions_len = encode_utf16(chars_Katakana_Phonetic_Extensions[0], chars_Katakana_Phonetic_Extensions[1], buffer_Katakana_Phonetic_Extensions) - 2;
	if (scan(buffer_Katakana_Phonetic_Extensions, buffer_Katakana_Phonetic_Extensions + buffer_Katakana_Phonetic_Extensions_len, Katakana_Phonetic_Extensions) != Katakana_Phonetic_Extensions)
		printf("test 'Katakana_Phonetic_Extensions' failed\n");
	delete[] buffer_Katakana_Phonetic_Extensions;

	YYCTYPE *buffer_Enclosed_CJK_Letters_and_Months = new YYCTYPE[514];
	uint32_t buffer_Enclosed_CJK_Letters_and_Months_len = encode_utf16(chars_Enclosed_CJK_Letters_and_Months[0], chars_Enclosed_CJK_Letters_and_Months[1], buffer_Enclosed_CJK_Letters_and_Months) - 2;
	if (scan(buffer_Enclosed_CJK_Letters_and_Months, buffer_Enclosed_CJK_Letters_and_Months + buffer_Enclosed_CJK_Letters_and_Months_len, Enclosed_CJK_Letters_and_Months) != Enclosed_CJK_Letters_and_Months)
		printf("test 'Enclosed_CJK_Letters_and_Months' failed\n");
	delete[] buffer_Enclosed_CJK_Letters_and_Months;

	YYCTYPE *buffer_CJK_Compatibility = new YYCTYPE[514];
	uint32_t buffer_CJK_Compatibility_len = encode_utf16(chars_CJK_Compatibility[0], chars_CJK_Compatibility[1], buffer_CJK_Compatibility) - 2;
	if (scan(buffer_CJK_Compatibility, buffer_CJK_Compatibility + buffer_CJK_Compatibility_len, CJK_Compatibility) != CJK_Compatibility)
		printf("test 'CJK_Compatibility' failed\n");
	delete[] buffer_CJK_Compatibility;

	YYCTYPE *buffer_CJK_Unified_Ideographs_Extension_A = new YYCTYPE[13186];
	uint32_t buffer_CJK_Unified_Ideographs_Extension_A_len = encode_utf16(chars_CJK_Unified_Ideographs_Extension_A[0], chars_CJK_Unified_Ideographs_Extension_A[1], buffer_CJK_Unified_Ideographs_Extension_A) - 2;
	if (scan(buffer_CJK_Unified_Ideographs_Extension_A, buffer_CJK_Unified_Ideographs_Extension_A + buffer_CJK_Unified_Ideographs_Extension_A_len, CJK_Unified_Ideographs_Extension_A) != CJK_Unified_Ideographs_Extension_A)
		printf("test 'CJK_Unified_Ideographs_Extension_A' failed\n");
	delete[] buffer_CJK_Unified_Ideographs_Extension_A;

	YYCTYPE *buffer_Yijing_Hexagram_Symbols = new YYCTYPE[130];
	uint32_t buffer_Yijing_Hexagram_Symbols_len = encode_utf16(chars_Yijing_Hexagram_Symbols[0], chars_Yijing_Hexagram_Symbols[1], buffer_Yijing_Hexagram_Symbols) - 2;
	if (scan(buffer_Yijing_Hexagram_Symbols, buffer_Yijing_Hexagram_Symbols + buffer_Yijing_Hexagram_Symbols_len, Yijing_Hexagram_Symbols) != Yijing_Hexagram_Symbols)
		printf("test 'Yijing_Hexagram_Symbols' failed\n");
	delete[] buffer_Yijing_Hexagram_Symbols;

	YYCTYPE *buffer_CJK_Unified_Ideographs = new YYCTYPE[41986];
	uint32_t buffer_CJK_Unified_Ideographs_len = encode_utf16(chars_CJK_Unified_Ideographs[0], chars_CJK_Unified_Ideographs[1], buffer_CJK_Unified_Ideographs) - 2;
	if (scan(buffer_CJK_Unified_Ideographs, buffer_CJK_Unified_Ideographs + buffer_CJK_Unified_Ideographs_len, CJK_Unified_Ideographs) != CJK_Unified_Ideographs)
		printf("test 'CJK_Unified_Ideographs' failed\n");
	delete[] buffer_CJK_Unified_Ideographs;

	YYCTYPE *buffer_Yi_Syllables = new YYCTYPE[2338];
	uint32_t buffer_Yi_Syllables_len = encode_utf16(chars_Yi_Syllables[0], chars_Yi_Syllables[1], buffer_Yi_Syllables) - 2;
	if (scan(buffer_Yi_Syllables, buffer_Yi_Syllables + buffer_Yi_Syllables_len, Yi_Syllables) != Yi_Syllables)
		printf("test 'Yi_Syllables' failed\n");
	delete[] buffer_Yi_Syllables;

	YYCTYPE *buffer_Yi_Radicals = new YYCTYPE[130];
	uint32_t buffer_Yi_Radicals_len = encode_utf16(chars_Yi_Radicals[0], chars_Yi_Radicals[1], buffer_Yi_Radicals) - 2;
	if (scan(buffer_Yi_Radicals, buffer_Yi_Radicals + buffer_Yi_Radicals_len, Yi_Radicals) != Yi_Radicals)
		printf("test 'Yi_Radicals' failed\n");
	delete[] buffer_Yi_Radicals;

	YYCTYPE *buffer_Lisu = new YYCTYPE[98];
	uint32_t buffer_Lisu_len = encode_utf16(chars_Lisu[0], chars_Lisu[1], buffer_Lisu) - 2;
	if (scan(buffer_Lisu, buffer_Lisu + buffer_Lisu_len, Lisu) != Lisu)
		printf("test 'Lisu' failed\n");
	delete[] buffer_Lisu;

	YYCTYPE *buffer_Vai = new YYCTYPE[642];
	uint32_t buffer_Vai_len = encode_utf16(chars_Vai[0], chars_Vai[1], buffer_Vai) - 2;
	if (scan(buffer_Vai, buffer_Vai + buffer_Vai_len, Vai) != Vai)
		printf("test 'Vai' failed\n");
	delete[] buffer_Vai;

	YYCTYPE *buffer_Cyrillic_Extended_B = new YYCTYPE[194];
	uint32_t buffer_Cyrillic_Extended_B_len = encode_utf16(chars_Cyrillic_Extended_B[0], chars_Cyrillic_Extended_B[1], buffer_Cyrillic_Extended_B) - 2;
	if (scan(buffer_Cyrillic_Extended_B, buffer_Cyrillic_Extended_B + buffer_Cyrillic_Extended_B_len, Cyrillic_Extended_B) != Cyrillic_Extended_B)
		printf("test 'Cyrillic_Extended_B' failed\n");
	delete[] buffer_Cyrillic_Extended_B;

	YYCTYPE *buffer_Bamum = new YYCTYPE[194];
	uint32_t buffer_Bamum_len = encode_utf16(chars_Bamum[0], chars_Bamum[1], buffer_Bamum) - 2;
	if (scan(buffer_Bamum, buffer_Bamum + buffer_Bamum_len, Bamum) != Bamum)
		printf("test 'Bamum' failed\n");
	delete[] buffer_Bamum;

	YYCTYPE *buffer_Modifier_Tone_Letters = new YYCTYPE[66];
	uint32_t buffer_Modifier_Tone_Letters_len = encode_utf16(chars_Modifier_Tone_Letters[0], chars_Modifier_Tone_Letters[1], buffer_Modifier_Tone_Letters) - 2;
	if (scan(buffer_Modifier_Tone_Letters, buffer_Modifier_Tone_Letters + buffer_Modifier_Tone_Letters_len, Modifier_Tone_Letters) != Modifier_Tone_Letters)
		printf("test 'Modifier_Tone_Letters' failed\n");
	delete[] buffer_Modifier_Tone_Letters;

	YYCTYPE *buffer_Latin_Extended_D = new YYCTYPE[450];
	uint32_t buffer_Latin_Extended_D_len = encode_utf16(chars_Latin_Extended_D[0], chars_Latin_Extended_D[1], buffer_Latin_Extended_D) - 2;
	if (scan(buffer_Latin_Extended_D, buffer_Latin_Extended_D + buffer_Latin_Extended_D_len, Latin_Extended_D) != Latin_Extended_D)
		printf("test 'Latin_Extended_D' failed\n");
	delete[] buffer_Latin_Extended_D;

	YYCTYPE *buffer_Syloti_Nagri = new YYCTYPE[98];
	uint32_t buffer_Syloti_Nagri_len = encode_utf16(chars_Syloti_Nagri[0], chars_Syloti_Nagri[1], buffer_Syloti_Nagri) - 2;
	if (scan(buffer_Syloti_Nagri, buffer_Syloti_Nagri + buffer_Syloti_Nagri_len, Syloti_Nagri) != Syloti_Nagri)
		printf("test 'Syloti_Nagri' failed\n");
	delete[] buffer_Syloti_Nagri;

	YYCTYPE *buffer_Common_Indic_Number_Forms = new YYCTYPE[34];
	uint32_t buffer_Common_Indic_Number_Forms_len = encode_utf16(chars_Common_Indic_Number_Forms[0], chars_Common_Indic_Number_Forms[1], buffer_Common_Indic_Number_Forms) - 2;
	if (scan(buffer_Common_Indic_Number_Forms, buffer_Common_Indic_Number_Forms + buffer_Common_Indic_Number_Forms_len, Common_Indic_Number_Forms) != Common_Indic_Number_Forms)
		printf("test 'Common_Indic_Number_Forms' failed\n");
	delete[] buffer_Common_Indic_Number_Forms;

	YYCTYPE *buffer_Phags_pa = new YYCTYPE[130];
	uint32_t buffer_Phags_pa_len = encode_utf16(chars_Phags_pa[0], chars_Phags_pa[1], buffer_Phags_pa) - 2;
	if (scan(buffer_Phags_pa, buffer_Phags_pa + buffer_Phags_pa_len, Phags_pa) != Phags_pa)
		printf("test 'Phags_pa' failed\n");
	delete[] buffer_Phags_pa;

	YYCTYPE *buffer_Saurashtra = new YYCTYPE[194];
	uint32_t buffer_Saurashtra_len = encode_utf16(chars_Saurashtra[0], chars_Saurashtra[1], buffer_Saurashtra) - 2;
	if (scan(buffer_Saurashtra, buffer_Saurashtra + buffer_Saurashtra_len, Saurashtra) != Saurashtra)
		printf("test 'Saurashtra' failed\n");
	delete[] buffer_Saurashtra;

	YYCTYPE *buffer_Devanagari_Extended = new YYCTYPE[66];
	uint32_t buffer_Devanagari_Extended_len = encode_utf16(chars_Devanagari_Extended[0], chars_Devanagari_Extended[1], buffer_Devanagari_Extended) - 2;
	if (scan(buffer_Devanagari_Extended, buffer_Devanagari_Extended + buffer_Devanagari_Extended_len, Devanagari_Extended) != Devanagari_Extended)
		printf("test 'Devanagari_Extended' failed\n");
	delete[] buffer_Devanagari_Extended;

	YYCTYPE *buffer_Kayah_Li = new YYCTYPE[98];
	uint32_t buffer_Kayah_Li_len = encode_utf16(chars_Kayah_Li[0], chars_Kayah_Li[1], buffer_Kayah_Li) - 2;
	if (scan(buffer_Kayah_Li, buffer_Kayah_Li + buffer_Kayah_Li_len, Kayah_Li) != Kayah_Li)
		printf("test 'Kayah_Li' failed\n");
	delete[] buffer_Kayah_Li;

	YYCTYPE *buffer_Rejang = new YYCTYPE[98];
	uint32_t buffer_Rejang_len = encode_utf16(chars_Rejang[0], chars_Rejang[1], buffer_Rejang) - 2;
	if (scan(buffer_Rejang, buffer_Rejang + buffer_Rejang_len, Rejang) != Rejang)
		printf("test 'Rejang' failed\n");
	delete[] buffer_Rejang;

	YYCTYPE *buffer_Hangul_Jamo_Extended_A = new YYCTYPE[66];
	uint32_t buffer_Hangul_Jamo_Extended_A_len = encode_utf16(chars_Hangul_Jamo_Extended_A[0], chars_Hangul_Jamo_Extended_A[1], buffer_Hangul_Jamo_Extended_A) - 2;
	if (scan(buffer_Hangul_Jamo_Extended_A, buffer_Hangul_Jamo_Extended_A + buffer_Hangul_Jamo_Extended_A_len, Hangul_Jamo_Extended_A) != Hangul_Jamo_Extended_A)
		printf("test 'Hangul_Jamo_Extended_A' failed\n");
	delete[] buffer_Hangul_Jamo_Extended_A;

	YYCTYPE *buffer_Javanese = new YYCTYPE[194];
	uint32_t buffer_Javanese_len = encode_utf16(chars_Javanese[0], chars_Javanese[1], buffer_Javanese) - 2;
	if (scan(buffer_Javanese, buffer_Javanese + buffer_Javanese_len, Javanese) != Javanese)
		printf("test 'Javanese' failed\n");
	delete[] buffer_Javanese;

	YYCTYPE *buffer_Myanmar_Extended_B = new YYCTYPE[66];
	uint32_t buffer_Myanmar_Extended_B_len = encode_utf16(chars_Myanmar_Extended_B[0], chars_Myanmar_Extended_B[1], buffer_Myanmar_Extended_B) - 2;
	if (scan(buffer_Myanmar_Extended_B, buffer_Myanmar_Extended_B + buffer_Myanmar_Extended_B_len, Myanmar_Extended_B) != Myanmar_Extended_B)
		printf("test 'Myanmar_Extended_B' failed\n");
	delete[] buffer_Myanmar_Extended_B;

	YYCTYPE *buffer_Cham = new YYCTYPE[194];
	uint32_t buffer_Cham_len = encode_utf16(chars_Cham[0], chars_Cham[1], buffer_Cham) - 2;
	if (scan(buffer_Cham, buffer_Cham + buffer_Cham_len, Cham) != Cham)
		printf("test 'Cham' failed\n");
	delete[] buffer_Cham;

	YYCTYPE *buffer_Myanmar_Extended_A = new YYCTYPE[66];
	uint32_t buffer_Myanmar_Extended_A_len = encode_utf16(chars_Myanmar_Extended_A[0], chars_Myanmar_Extended_A[1], buffer_Myanmar_Extended_A) - 2;
	if (scan(buffer_Myanmar_Extended_A, buffer_Myanmar_Extended_A + buffer_Myanmar_Extended_A_len, Myanmar_Extended_A) != Myanmar_Extended_A)
		printf("test 'Myanmar_Extended_A' failed\n");
	delete[] buffer_Myanmar_Extended_A;

	YYCTYPE *buffer_Tai_Viet = new YYCTYPE[194];
	uint32_t buffer_Tai_Viet_len = encode_utf16(chars_Tai_Viet[0], chars_Tai_Viet[1], buffer_Tai_Viet) - 2;
	if (scan(buffer_Tai_Viet, buffer_Tai_Viet + buffer_Tai_Viet_len, Tai_Viet) != Tai_Viet)
		printf("test 'Tai_Viet' failed\n");
	delete[] buffer_Tai_Viet;

	YYCTYPE *buffer_Meetei_Mayek_Extensions = new YYCTYPE[66];
	uint32_t buffer_Meetei_Mayek_Extensions_len = encode_utf16(chars_Meetei_Mayek_Extensions[0], chars_Meetei_Mayek_Extensions[1], buffer_Meetei_Mayek_Extensions) - 2;
	if (scan(buffer_Meetei_Mayek_Extensions, buffer_Meetei_Mayek_Extensions + buffer_Meetei_Mayek_Extensions_len, Meetei_Mayek_Extensions) != Meetei_Mayek_Extensions)
		printf("test 'Meetei_Mayek_Extensions' failed\n");
	delete[] buffer_Meetei_Mayek_Extensions;

	YYCTYPE *buffer_Ethiopic_Extended_A = new YYCTYPE[98];
	uint32_t buffer_Ethiopic_Extended_A_len = encode_utf16(chars_Ethiopic_Extended_A[0], chars_Ethiopic_Extended_A[1], buffer_Ethiopic_Extended_A) - 2;
	if (scan(buffer_Ethiopic_Extended_A, buffer_Ethiopic_Extended_A + buffer_Ethiopic_Extended_A_len, Ethiopic_Extended_A) != Ethiopic_Extended_A)
		printf("test 'Ethiopic_Extended_A' failed\n");
	delete[] buffer_Ethiopic_Extended_A;

	YYCTYPE *buffer_Latin_Extended_E = new YYCTYPE[130];
	uint32_t buffer_Latin_Extended_E_len = encode_utf16(chars_Latin_Extended_E[0], chars_Latin_Extended_E[1], buffer_Latin_Extended_E) - 2;
	if (scan(buffer_Latin_Extended_E, buffer_Latin_Extended_E + buffer_Latin_Extended_E_len, Latin_Extended_E) != Latin_Extended_E)
		printf("test 'Latin_Extended_E' failed\n");
	delete[] buffer_Latin_Extended_E;

	YYCTYPE *buffer_Cherokee_Supplement = new YYCTYPE[162];
	uint32_t buffer_Cherokee_Supplement_len = encode_utf16(chars_Cherokee_Supplement[0], chars_Cherokee_Supplement[1], buffer_Cherokee_Supplement) - 2;
	if (scan(buffer_Cherokee_Supplement, buffer_Cherokee_Supplement + buffer_Cherokee_Supplement_len, Cherokee_Supplement) != Cherokee_Supplement)
		printf("test 'Cherokee_Supplement' failed\n");
	delete[] buffer_Cherokee_Supplement;

	YYCTYPE *buffer_Meetei_Mayek = new YYCTYPE[130];
	uint32_t buffer_Meetei_Mayek_len = encode_utf16(chars_Meetei_Mayek[0], chars_Meetei_Mayek[1], buffer_Meetei_Mayek) - 2;
	if (scan(buffer_Meetei_Mayek, buffer_Meetei_Mayek + buffer_Meetei_Mayek_len, Meetei_Mayek) != Meetei_Mayek)
		printf("test 'Meetei_Mayek' failed\n");
	delete[] buffer_Meetei_Mayek;

	YYCTYPE *buffer_Hangul_Syllables = new YYCTYPE[22370];
	uint32_t buffer_Hangul_Syllables_len = encode_utf16(chars_Hangul_Syllables[0], chars_Hangul_Syllables[1], buffer_Hangul_Syllables) - 2;
	if (scan(buffer_Hangul_Syllables, buffer_Hangul_Syllables + buffer_Hangul_Syllables_len, Hangul_Syllables) != Hangul_Syllables)
		printf("test 'Hangul_Syllables' failed\n");
	delete[] buffer_Hangul_Syllables;

	YYCTYPE *buffer_Hangul_Jamo_Extended_B = new YYCTYPE[162];
	uint32_t buffer_Hangul_Jamo_Extended_B_len = encode_utf16(chars_Hangul_Jamo_Extended_B[0], chars_Hangul_Jamo_Extended_B[1], buffer_Hangul_Jamo_Extended_B) - 2;
	if (scan(buffer_Hangul_Jamo_Extended_B, buffer_Hangul_Jamo_Extended_B + buffer_Hangul_Jamo_Extended_B_len, Hangul_Jamo_Extended_B) != Hangul_Jamo_Extended_B)
		printf("test 'Hangul_Jamo_Extended_B' failed\n");
	delete[] buffer_Hangul_Jamo_Extended_B;

	YYCTYPE *buffer_High_Surrogates = new YYCTYPE[1794];
	uint32_t buffer_High_Surrogates_len = encode_utf16(chars_High_Surrogates[0], chars_High_Surrogates[1], buffer_High_Surrogates) - 2;
	if (scan(buffer_High_Surrogates, buffer_High_Surrogates + buffer_High_Surrogates_len, High_Surrogates) != High_Surrogates)
		printf("test 'High_Surrogates' failed\n");
	delete[] buffer_High_Surrogates;

	YYCTYPE *buffer_High_Private_Use_Surrogates = new YYCTYPE[258];
	uint32_t buffer_High_Private_Use_Surrogates_len = encode_utf16(chars_High_Private_Use_Surrogates[0], chars_High_Private_Use_Surrogates[1], buffer_High_Private_Use_Surrogates) - 2;
	if (scan(buffer_High_Private_Use_Surrogates, buffer_High_Private_Use_Surrogates + buffer_High_Private_Use_Surrogates_len, High_Private_Use_Surrogates) != High_Private_Use_Surrogates)
		printf("test 'High_Private_Use_Surrogates' failed\n");
	delete[] buffer_High_Private_Use_Surrogates;

	YYCTYPE *buffer_Low_Surrogates = new YYCTYPE[2050];
	uint32_t buffer_Low_Surrogates_len = encode_utf16(chars_Low_Surrogates[0], chars_Low_Surrogates[1], buffer_Low_Surrogates) - 2;
	if (scan(buffer_Low_Surrogates, buffer_Low_Surrogates + buffer_Low_Surrogates_len, Low_Surrogates) != Low_Surrogates)
		printf("test 'Low_Surrogates' failed\n");
	delete[] buffer_Low_Surrogates;

	YYCTYPE *buffer_Private_Use_Area = new YYCTYPE[12802];
	uint32_t buffer_Private_Use_Area_len = encode_utf16(chars_Private_Use_Area[0], chars_Private_Use_Area[1], buffer_Private_Use_Area) - 2;
	if (scan(buffer_Private_Use_Area, buffer_Private_Use_Area + buffer_Private_Use_Area_len, Private_Use_Area) != Private_Use_Area)
		printf("test 'Private_Use_Area' failed\n");
	delete[] buffer_Private_Use_Area;

	YYCTYPE *buffer_CJK_Compatibility_Ideographs = new YYCTYPE[1026];
	uint32_t buffer_CJK_Compatibility_Ideographs_len = encode_utf16(chars_CJK_Compatibility_Ideographs[0], chars_CJK_Compatibility_Ideographs[1], buffer_CJK_Compatibility_Ideographs) - 2;
	if (scan(buffer_CJK_Compatibility_Ideographs, buffer_CJK_Compatibility_Ideographs + buffer_CJK_Compatibility_Ideographs_len, CJK_Compatibility_Ideographs) != CJK_Compatibility_Ideographs)
		printf("test 'CJK_Compatibility_Ideographs' failed\n");
	delete[] buffer_CJK_Compatibility_Ideographs;

	YYCTYPE *buffer_Alphabetic_Presentation_Forms = new YYCTYPE[162];
	uint32_t buffer_Alphabetic_Presentation_Forms_len = encode_utf16(chars_Alphabetic_Presentation_Forms[0], chars_Alphabetic_Presentation_Forms[1], buffer_Alphabetic_Presentation_Forms) - 2;
	if (scan(buffer_Alphabetic_Presentation_Forms, buffer_Alphabetic_Presentation_Forms + buffer_Alphabetic_Presentation_Forms_len, Alphabetic_Presentation_Forms) != Alphabetic_Presentation_Forms)
		printf("test 'Alphabetic_Presentation_Forms' failed\n");
	delete[] buffer_Alphabetic_Presentation_Forms;

	YYCTYPE *buffer_Arabic_Presentation_Forms_A = new YYCTYPE[1378];
	uint32_t buffer_Arabic_Presentation_Forms_A_len = encode_utf16(chars_Arabic_Presentation_Forms_A[0], chars_Arabic_Presentation_Forms_A[1], buffer_Arabic_Presentation_Forms_A) - 2;
	if (scan(buffer_Arabic_Presentation_Forms_A, buffer_Arabic_Presentation_Forms_A + buffer_Arabic_Presentation_Forms_A_len, Arabic_Presentation_Forms_A) != Arabic_Presentation_Forms_A)
		printf("test 'Arabic_Presentation_Forms_A' failed\n");
	delete[] buffer_Arabic_Presentation_Forms_A;

	YYCTYPE *buffer_Variation_Selectors = new YYCTYPE[34];
	uint32_t buffer_Variation_Selectors_len = encode_utf16(chars_Variation_Selectors[0], chars_Variation_Selectors[1], buffer_Variation_Selectors) - 2;
	if (scan(buffer_Variation_Selectors, buffer_Variation_Selectors + buffer_Variation_Selectors_len, Variation_Selectors) != Variation_Selectors)
		printf("test 'Variation_Selectors' failed\n");
	delete[] buffer_Variation_Selectors;

	YYCTYPE *buffer_Vertical_Forms = new YYCTYPE[34];
	uint32_t buffer_Vertical_Forms_len = encode_utf16(chars_Vertical_Forms[0], chars_Vertical_Forms[1], buffer_Vertical_Forms) - 2;
	if (scan(buffer_Vertical_Forms, buffer_Vertical_Forms + buffer_Vertical_Forms_len, Vertical_Forms) != Vertical_Forms)
		printf("test 'Vertical_Forms' failed\n");
	delete[] buffer_Vertical_Forms;

	YYCTYPE *buffer_Combining_Half_Marks = new YYCTYPE[34];
	uint32_t buffer_Combining_Half_Marks_len = encode_utf16(chars_Combining_Half_Marks[0], chars_Combining_Half_Marks[1], buffer_Combining_Half_Marks) - 2;
	if (scan(buffer_Combining_Half_Marks, buffer_Combining_Half_Marks + buffer_Combining_Half_Marks_len, Combining_Half_Marks) != Combining_Half_Marks)
		printf("test 'Combining_Half_Marks' failed\n");
	delete[] buffer_Combining_Half_Marks;

	YYCTYPE *buffer_CJK_Compatibility_Forms = new YYCTYPE[66];
	uint32_t buffer_CJK_Compatibility_Forms_len = encode_utf16(chars_CJK_Compatibility_Forms[0], chars_CJK_Compatibility_Forms[1], buffer_CJK_Compatibility_Forms) - 2;
	if (scan(buffer_CJK_Compatibility_Forms, buffer_CJK_Compatibility_Forms + buffer_CJK_Compatibility_Forms_len, CJK_Compatibility_Forms) != CJK_Compatibility_Forms)
		printf("test 'CJK_Compatibility_Forms' failed\n");
	delete[] buffer_CJK_Compatibility_Forms;

	YYCTYPE *buffer_Small_Form_Variants = new YYCTYPE[66];
	uint32_t buffer_Small_Form_Variants_len = encode_utf16(chars_Small_Form_Variants[0], chars_Small_Form_Variants[1], buffer_Small_Form_Variants) - 2;
	if (scan(buffer_Small_Form_Variants, buffer_Small_Form_Variants + buffer_Small_Form_Variants_len, Small_Form_Variants) != Small_Form_Variants)
		printf("test 'Small_Form_Variants' failed\n");
	delete[] buffer_Small_Form_Variants;

	YYCTYPE *buffer_Arabic_Presentation_Forms_B = new YYCTYPE[290];
	uint32_t buffer_Arabic_Presentation_Forms_B_len = encode_utf16(chars_Arabic_Presentation_Forms_B[0], chars_Arabic_Presentation_Forms_B[1], buffer_Arabic_Presentation_Forms_B) - 2;
	if (scan(buffer_Arabic_Presentation_Forms_B, buffer_Arabic_Presentation_Forms_B + buffer_Arabic_Presentation_Forms_B_len, Arabic_Presentation_Forms_B) != Arabic_Presentation_Forms_B)
		printf("test 'Arabic_Presentation_Forms_B' failed\n");
	delete[] buffer_Arabic_Presentation_Forms_B;

	YYCTYPE *buffer_Halfwidth_and_Fullwidth_Forms = new YYCTYPE[482];
	uint32_t buffer_Halfwidth_and_Fullwidth_Forms_len = encode_utf16(chars_Halfwidth_and_Fullwidth_Forms[0], chars_Halfwidth_and_Fullwidth_Forms[1], buffer_Halfwidth_and_Fullwidth_Forms) - 2;
	if (scan(buffer_Halfwidth_and_Fullwidth_Forms, buffer_Halfwidth_and_Fullwidth_Forms + buffer_Halfwidth_and_Fullwidth_Forms_len, Halfwidth_and_Fullwidth_Forms) != Halfwidth_and_Fullwidth_Forms)
		printf("test 'Halfwidth_and_Fullwidth_Forms' failed\n");
	delete[] buffer_Halfwidth_and_Fullwidth_Forms;

	YYCTYPE *buffer_Specials = new YYCTYPE[34];
	uint32_t buffer_Specials_len = encode_utf16(chars_Specials[0], chars_Specials[1], buffer_Specials) - 2;
	if (scan(buffer_Specials, buffer_Specials + buffer_Specials_len, Specials) != Specials)
		printf("test 'Specials' failed\n");
	delete[] buffer_Specials;

	YYCTYPE *buffer_Linear_B_Syllabary = new YYCTYPE[258];
	uint32_t buffer_Linear_B_Syllabary_len = encode_utf16(chars_Linear_B_Syllabary[0], chars_Linear_B_Syllabary[1], buffer_Linear_B_Syllabary) - 2;
	if (scan(buffer_Linear_B_Syllabary, buffer_Linear_B_Syllabary + buffer_Linear_B_Syllabary_len, Linear_B_Syllabary) != Linear_B_Syllabary)
		printf("test 'Linear_B_Syllabary' failed\n");
	delete[] buffer_Linear_B_Syllabary;

	YYCTYPE *buffer_Linear_B_Ideograms = new YYCTYPE[258];
	uint32_t buffer_Linear_B_Ideograms_len = encode_utf16(chars_Linear_B_Ideograms[0], chars_Linear_B_Ideograms[1], buffer_Linear_B_Ideograms) - 2;
	if (scan(buffer_Linear_B_Ideograms, buffer_Linear_B_Ideograms + buffer_Linear_B_Ideograms_len, Linear_B_Ideograms) != Linear_B_Ideograms)
		printf("test 'Linear_B_Ideograms' failed\n");
	delete[] buffer_Linear_B_Ideograms;

	YYCTYPE *buffer_Aegean_Numbers = new YYCTYPE[130];
	uint32_t buffer_Aegean_Numbers_len = encode_utf16(chars_Aegean_Numbers[0], chars_Aegean_Numbers[1], buffer_Aegean_Numbers) - 2;
	if (scan(buffer_Aegean_Numbers, buffer_Aegean_Numbers + buffer_Aegean_Numbers_len, Aegean_Numbers) != Aegean_Numbers)
		printf("test 'Aegean_Numbers' failed\n");
	delete[] buffer_Aegean_Numbers;

	YYCTYPE *buffer_Ancient_Greek_Numbers = new YYCTYPE[162];
	uint32_t buffer_Ancient_Greek_Numbers_len = encode_utf16(chars_Ancient_Greek_Numbers[0], chars_Ancient_Greek_Numbers[1], buffer_Ancient_Greek_Numbers) - 2;
	if (scan(buffer_Ancient_Greek_Numbers, buffer_Ancient_Greek_Numbers + buffer_Ancient_Greek_Numbers_len, Ancient_Greek_Numbers) != Ancient_Greek_Numbers)
		printf("test 'Ancient_Greek_Numbers' failed\n");
	delete[] buffer_Ancient_Greek_Numbers;

	YYCTYPE *buffer_Ancient_Symbols = new YYCTYPE[130];
	uint32_t buffer_Ancient_Symbols_len = encode_utf16(chars_Ancient_Symbols[0], chars_Ancient_Symbols[1], buffer_Ancient_Symbols) - 2;
	if (scan(buffer_Ancient_Symbols, buffer_Ancient_Symbols + buffer_Ancient_Symbols_len, Ancient_Symbols) != Ancient_Symbols)
		printf("test 'Ancient_Symbols' failed\n");
	delete[] buffer_Ancient_Symbols;

	YYCTYPE *buffer_Phaistos_Disc = new YYCTYPE[98];
	uint32_t buffer_Phaistos_Disc_len = encode_utf16(chars_Phaistos_Disc[0], chars_Phaistos_Disc[1], buffer_Phaistos_Disc) - 2;
	if (scan(buffer_Phaistos_Disc, buffer_Phaistos_Disc + buffer_Phaistos_Disc_len, Phaistos_Disc) != Phaistos_Disc)
		printf("test 'Phaistos_Disc' failed\n");
	delete[] buffer_Phaistos_Disc;

	YYCTYPE *buffer_Lycian = new YYCTYPE[66];
	uint32_t buffer_Lycian_len = encode_utf16(chars_Lycian[0], chars_Lycian[1], buffer_Lycian) - 2;
	if (scan(buffer_Lycian, buffer_Lycian + buffer_Lycian_len, Lycian) != Lycian)
		printf("test 'Lycian' failed\n");
	delete[] buffer_Lycian;

	YYCTYPE *buffer_Carian = new YYCTYPE[130];
	uint32_t buffer_Carian_len = encode_utf16(chars_Carian[0], chars_Carian[1], buffer_Carian) - 2;
	if (scan(buffer_Carian, buffer_Carian + buffer_Carian_len, Carian) != Carian)
		printf("test 'Carian' failed\n");
	delete[] buffer_Carian;

	YYCTYPE *buffer_Coptic_Epact_Numbers = new YYCTYPE[66];
	uint32_t buffer_Coptic_Epact_Numbers_len = encode_utf16(chars_Coptic_Epact_Numbers[0], chars_Coptic_Epact_Numbers[1], buffer_Coptic_Epact_Numbers) - 2;
	if (scan(buffer_Coptic_Epact_Numbers, buffer_Coptic_Epact_Numbers + buffer_Coptic_Epact_Numbers_len, Coptic_Epact_Numbers) != Coptic_Epact_Numbers)
		printf("test 'Coptic_Epact_Numbers' failed\n");
	delete[] buffer_Coptic_Epact_Numbers;

	YYCTYPE *buffer_Old_Italic = new YYCTYPE[98];
	uint32_t buffer_Old_Italic_len = encode_utf16(chars_Old_Italic[0], chars_Old_Italic[1], buffer_Old_Italic) - 2;
	if (scan(buffer_Old_Italic, buffer_Old_Italic + buffer_Old_Italic_len, Old_Italic) != Old_Italic)
		printf("test 'Old_Italic' failed\n");
	delete[] buffer_Old_Italic;

	YYCTYPE *buffer_Gothic = new YYCTYPE[66];
	uint32_t buffer_Gothic_len = encode_utf16(chars_Gothic[0], chars_Gothic[1], buffer_Gothic) - 2;
	if (scan(buffer_Gothic, buffer_Gothic + buffer_Gothic_len, Gothic) != Gothic)
		printf("test 'Gothic' failed\n");
	delete[] buffer_Gothic;

	YYCTYPE *buffer_Old_Permic = new YYCTYPE[98];
	uint32_t buffer_Old_Permic_len = encode_utf16(chars_Old_Permic[0], chars_Old_Permic[1], buffer_Old_Permic) - 2;
	if (scan(buffer_Old_Permic, buffer_Old_Permic + buffer_Old_Permic_len, Old_Permic) != Old_Permic)
		printf("test 'Old_Permic' failed\n");
	delete[] buffer_Old_Permic;

	YYCTYPE *buffer_Ugaritic = new YYCTYPE[66];
	uint32_t buffer_Ugaritic_len = encode_utf16(chars_Ugaritic[0], chars_Ugaritic[1], buffer_Ugaritic) - 2;
	if (scan(buffer_Ugaritic, buffer_Ugaritic + buffer_Ugaritic_len, Ugaritic) != Ugaritic)
		printf("test 'Ugaritic' failed\n");
	delete[] buffer_Ugaritic;

	YYCTYPE *buffer_Old_Persian = new YYCTYPE[130];
	uint32_t buffer_Old_Persian_len = encode_utf16(chars_Old_Persian[0], chars_Old_Persian[1], buffer_Old_Persian) - 2;
	if (scan(buffer_Old_Persian, buffer_Old_Persian + buffer_Old_Persian_len, Old_Persian) != Old_Persian)
		printf("test 'Old_Persian' failed\n");
	delete[] buffer_Old_Persian;

	YYCTYPE *buffer_Deseret = new YYCTYPE[162];
	uint32_t buffer_Deseret_len = encode_utf16(chars_Deseret[0], chars_Deseret[1], buffer_Deseret) - 2;
	if (scan(buffer_Deseret, buffer_Deseret + buffer_Deseret_len, Deseret) != Deseret)
		printf("test 'Deseret' failed\n");
	delete[] buffer_Deseret;

	YYCTYPE *buffer_Shavian = new YYCTYPE[98];
	uint32_t buffer_Shavian_len = encode_utf16(chars_Shavian[0], chars_Shavian[1], buffer_Shavian) - 2;
	if (scan(buffer_Shavian, buffer_Shavian + buffer_Shavian_len, Shavian) != Shavian)
		printf("test 'Shavian' failed\n");
	delete[] buffer_Shavian;

	YYCTYPE *buffer_Osmanya = new YYCTYPE[98];
	uint32_t buffer_Osmanya_len = encode_utf16(chars_Osmanya[0], chars_Osmanya[1], buffer_Osmanya) - 2;
	if (scan(buffer_Osmanya, buffer_Osmanya + buffer_Osmanya_len, Osmanya) != Osmanya)
		printf("test 'Osmanya' failed\n");
	delete[] buffer_Osmanya;

	YYCTYPE *buffer_Osage = new YYCTYPE[162];
	uint32_t buffer_Osage_len = encode_utf16(chars_Osage[0], chars_Osage[1], buffer_Osage) - 2;
	if (scan(buffer_Osage, buffer_Osage + buffer_Osage_len, Osage) != Osage)
		printf("test 'Osage' failed\n");
	delete[] buffer_Osage;

	YYCTYPE *buffer_Elbasan = new YYCTYPE[98];
	uint32_t buffer_Elbasan_len = encode_utf16(chars_Elbasan[0], chars_Elbasan[1], buffer_Elbasan) - 2;
	if (scan(buffer_Elbasan, buffer_Elbasan + buffer_Elbasan_len, Elbasan) != Elbasan)
		printf("test 'Elbasan' failed\n");
	delete[] buffer_Elbasan;

	YYCTYPE *buffer_Caucasian_Albanian = new YYCTYPE[130];
	uint32_t buffer_Caucasian_Albanian_len = encode_utf16(chars_Caucasian_Albanian[0], chars_Caucasian_Albanian[1], buffer_Caucasian_Albanian) - 2;
	if (scan(buffer_Caucasian_Albanian, buffer_Caucasian_Albanian + buffer_Caucasian_Albanian_len, Caucasian_Albanian) != Caucasian_Albanian)
		printf("test 'Caucasian_Albanian' failed\n");
	delete[] buffer_Caucasian_Albanian;

	YYCTYPE *buffer_Vithkuqi = new YYCTYPE[162];
	uint32_t buffer_Vithkuqi_len = encode_utf16(chars_Vithkuqi[0], chars_Vithkuqi[1], buffer_Vithkuqi) - 2;
	if (scan(buffer_Vithkuqi, buffer_Vithkuqi + buffer_Vithkuqi_len, Vithkuqi) != Vithkuqi)
		printf("test 'Vithkuqi' failed\n");
	delete[] buffer_Vithkuqi;

	YYCTYPE *buffer_Todhri = new YYCTYPE[130];
	uint32_t buffer_Todhri_len = encode_utf16(chars_Todhri[0], chars_Todhri[1], buffer_Todhri) - 2;
	if (scan(buffer_Todhri, buffer_Todhri + buffer_Todhri_len, Todhri) != Todhri)
		printf("test 'Todhri' failed\n");
	delete[] buffer_Todhri;

	YYCTYPE *buffer_Linear_A = new YYCTYPE[770];
	uint32_t buffer_Linear_A_len = encode_utf16(chars_Linear_A[0], chars_Linear_A[1], buffer_Linear_A) - 2;
	if (scan(buffer_Linear_A, buffer_Linear_A + buffer_Linear_A_len, Linear_A) != Linear_A)
		printf("test 'Linear_A' failed\n");
	delete[] buffer_Linear_A;

	YYCTYPE *buffer_Latin_Extended_F = new YYCTYPE[130];
	uint32_t buffer_Latin_Extended_F_len = encode_utf16(chars_Latin_Extended_F[0], chars_Latin_Extended_F[1], buffer_Latin_Extended_F) - 2;
	if (scan(buffer_Latin_Extended_F, buffer_Latin_Extended_F + buffer_Latin_Extended_F_len, Latin_Extended_F) != Latin_Extended_F)
		printf("test 'Latin_Extended_F' failed\n");
	delete[] buffer_Latin_Extended_F;

	YYCTYPE *buffer_Cypriot_Syllabary = new YYCTYPE[130];
	uint32_t buffer_Cypriot_Syllabary_len = encode_utf16(chars_Cypriot_Syllabary[0], chars_Cypriot_Syllabary[1], buffer_Cypriot_Syllabary) - 2;
	if (scan(buffer_Cypriot_Syllabary, buffer_Cypriot_Syllabary + buffer_Cypriot_Syllabary_len, Cypriot_Syllabary) != Cypriot_Syllabary)
		printf("test 'Cypriot_Syllabary' failed\n");
	delete[] buffer_Cypriot_Syllabary;

	YYCTYPE *buffer_Imperial_Aramaic = new YYCTYPE[66];
	uint32_t buffer_Imperial_Aramaic_len = encode_utf16(chars_Imperial_Aramaic[0], chars_Imperial_Aramaic[1], buffer_Imperial_Aramaic) - 2;
	if (scan(buffer_Imperial_Aramaic, buffer_Imperial_Aramaic + buffer_Imperial_Aramaic_len, Imperial_Aramaic) != Imperial_Aramaic)
		printf("test 'Imperial_Aramaic' failed\n");
	delete[] buffer_Imperial_Aramaic;

	YYCTYPE *buffer_Palmyrene = new YYCTYPE[66];
	uint32_t buffer_Palmyrene_len = encode_utf16(chars_Palmyrene[0], chars_Palmyrene[1], buffer_Palmyrene) - 2;
	if (scan(buffer_Palmyrene, buffer_Palmyrene + buffer_Palmyrene_len, Palmyrene) != Palmyrene)
		printf("test 'Palmyrene' failed\n");
	delete[] buffer_Palmyrene;

	YYCTYPE *buffer_Nabataean = new YYCTYPE[98];
	uint32_t buffer_Nabataean_len = encode_utf16(chars_Nabataean[0], chars_Nabataean[1], buffer_Nabataean) - 2;
	if (scan(buffer_Nabataean, buffer_Nabataean + buffer_Nabataean_len, Nabataean) != Nabataean)
		printf("test 'Nabataean' failed\n");
	delete[] buffer_Nabataean;

	YYCTYPE *buffer_Hatran = new YYCTYPE[66];
	uint32_t buffer_Hatran_len = encode_utf16(chars_Hatran[0], chars_Hatran[1], buffer_Hatran) - 2;
	if (scan(buffer_Hatran, buffer_Hatran + buffer_Hatran_len, Hatran) != Hatran)
		printf("test 'Hatran' failed\n");
	delete[] buffer_Hatran;

	YYCTYPE *buffer_Phoenician = new YYCTYPE[66];
	uint32_t buffer_Phoenician_len = encode_utf16(chars_Phoenician[0], chars_Phoenician[1], buffer_Phoenician) - 2;
	if (scan(buffer_Phoenician, buffer_Phoenician + buffer_Phoenician_len, Phoenician) != Phoenician)
		printf("test 'Phoenician' failed\n");
	delete[] buffer_Phoenician;

	YYCTYPE *buffer_Lydian = new YYCTYPE[66];
	uint32_t buffer_Lydian_len = encode_utf16(chars_Lydian[0], chars_Lydian[1], buffer_Lydian) - 2;
	if (scan(buffer_Lydian, buffer_Lydian + buffer_Lydian_len, Lydian) != Lydian)
		printf("test 'Lydian' failed\n");
	delete[] buffer_Lydian;

	YYCTYPE *buffer_Sidetic = new YYCTYPE[66];
	uint32_t buffer_Sidetic_len = encode_utf16(chars_Sidetic[0], chars_Sidetic[1], buffer_Sidetic) - 2;
	if (scan(buffer_Sidetic, buffer_Sidetic + buffer_Sidetic_len, Sidetic) != Sidetic)
		printf("test 'Sidetic' failed\n");
	delete[] buffer_Sidetic;

	YYCTYPE *buffer_Meroitic_Hieroglyphs = new YYCTYPE[66];
	uint32_t buffer_Meroitic_Hieroglyphs_len = encode_utf16(chars_Meroitic_Hieroglyphs[0], chars_Meroitic_Hieroglyphs[1], buffer_Meroitic_Hieroglyphs) - 2;
	if (scan(buffer_Meroitic_Hieroglyphs, buffer_Meroitic_Hieroglyphs + buffer_Meroitic_Hieroglyphs_len, Meroitic_Hieroglyphs) != Meroitic_Hieroglyphs)
		printf("test 'Meroitic_Hieroglyphs' failed\n");
	delete[] buffer_Meroitic_Hieroglyphs;

	YYCTYPE *buffer_Meroitic_Cursive = new YYCTYPE[194];
	uint32_t buffer_Meroitic_Cursive_len = encode_utf16(chars_Meroitic_Cursive[0], chars_Meroitic_Cursive[1], buffer_Meroitic_Cursive) - 2;
	if (scan(buffer_Meroitic_Cursive, buffer_Meroitic_Cursive + buffer_Meroitic_Cursive_len, Meroitic_Cursive) != Meroitic_Cursive)
		printf("test 'Meroitic_Cursive' failed\n");
	delete[] buffer_Meroitic_Cursive;

	YYCTYPE *buffer_Kharoshthi = new YYCTYPE[194];
	uint32_t buffer_Kharoshthi_len = encode_utf16(chars_Kharoshthi[0], chars_Kharoshthi[1], buffer_Kharoshthi) - 2;
	if (scan(buffer_Kharoshthi, buffer_Kharoshthi + buffer_Kharoshthi_len, Kharoshthi) != Kharoshthi)
		printf("test 'Kharoshthi' failed\n");
	delete[] buffer_Kharoshthi;

	YYCTYPE *buffer_Old_South_Arabian = new YYCTYPE[66];
	uint32_t buffer_Old_South_Arabian_len = encode_utf16(chars_Old_South_Arabian[0], chars_Old_South_Arabian[1], buffer_Old_South_Arabian) - 2;
	if (scan(buffer_Old_South_Arabian, buffer_Old_South_Arabian + buffer_Old_South_Arabian_len, Old_South_Arabian) != Old_South_Arabian)
		printf("test 'Old_South_Arabian' failed\n");
	delete[] buffer_Old_South_Arabian;

	YYCTYPE *buffer_Old_North_Arabian = new YYCTYPE[66];
	uint32_t buffer_Old_North_Arabian_len = encode_utf16(chars_Old_North_Arabian[0], chars_Old_North_Arabian[1], buffer_Old_North_Arabian) - 2;
	if (scan(buffer_Old_North_Arabian, buffer_Old_North_Arabian + buffer_Old_North_Arabian_len, Old_North_Arabian) != Old_North_Arabian)
		printf("test 'Old_North_Arabian' failed\n");
	delete[] buffer_Old_North_Arabian;

	YYCTYPE *buffer_Manichaean = new YYCTYPE[130];
	uint32_t buffer_Manichaean_len = encode_utf16(chars_Manichaean[0], chars_Manichaean[1], buffer_Manichaean) - 2;
	if (scan(buffer_Manichaean, buffer_Manichaean + buffer_Manichaean_len, Manichaean) != Manichaean)
		printf("test 'Manichaean' failed\n");
	delete[] buffer_Manichaean;

	YYCTYPE *buffer_Avestan = new YYCTYPE[130];
	uint32_t buffer_Avestan_len = encode_utf16(chars_Avestan[0], chars_Avestan[1], buffer_Avestan) - 2;
	if (scan(buffer_Avestan, buffer_Avestan + buffer_Avestan_len, Avestan) != Avestan)
		printf("test 'Avestan' failed\n");
	delete[] buffer_Avestan;

	YYCTYPE *buffer_Inscriptional_Parthian = new YYCTYPE[66];
	uint32_t buffer_Inscriptional_Parthian_len = encode_utf16(chars_Inscriptional_Parthian[0], chars_Inscriptional_Parthian[1], buffer_Inscriptional_Parthian) - 2;
	if (scan(buffer_Inscriptional_Parthian, buffer_Inscriptional_Parthian + buffer_Inscriptional_Parthian_len, Inscriptional_Parthian) != Inscriptional_Parthian)
		printf("test 'Inscriptional_Parthian' failed\n");
	delete[] buffer_Inscriptional_Parthian;

	YYCTYPE *buffer_Inscriptional_Pahlavi = new YYCTYPE[66];
	uint32_t buffer_Inscriptional_Pahlavi_len = encode_utf16(chars_Inscriptional_Pahlavi[0], chars_Inscriptional_Pahlavi[1], buffer_Inscriptional_Pahlavi) - 2;
	if (scan(buffer_Inscriptional_Pahlavi, buffer_Inscriptional_Pahlavi + buffer_Inscriptional_Pahlavi_len, Inscriptional_Pahlavi) != Inscriptional_Pahlavi)
		printf("test 'Inscriptional_Pahlavi' failed\n");
	delete[] buffer_Inscriptional_Pahlavi;

	YYCTYPE *buffer_Psalter_Pahlavi = new YYCTYPE[98];
	uint32_t buffer_Psalter_Pahlavi_len = encode_utf16(chars_Psalter_Pahlavi[0], chars_Psalter_Pahlavi[1], buffer_Psalter_Pahlavi) - 2;
	if (scan(buffer_Psalter_Pahlavi, buffer_Psalter_Pahlavi + buffer_Psalter_Pahlavi_len, Psalter_Pahlavi) != Psalter_Pahlavi)
		printf("test 'Psalter_Pahlavi' failed\n");
	delete[] buffer_Psalter_Pahlavi;

	YYCTYPE *buffer_Old_Turkic = new YYCTYPE[162];
	uint32_t buffer_Old_Turkic_len = encode_utf16(chars_Old_Turkic[0], chars_Old_Turkic[1], buffer_Old_Turkic) - 2;
	if (scan(buffer_Old_Turkic, buffer_Old_Turkic + buffer_Old_Turkic_len, Old_Turkic) != Old_Turkic)
		printf("test 'Old_Turkic' failed\n");
	delete[] buffer_Old_Turkic;

	YYCTYPE *buffer_Old_Hungarian = new YYCTYPE[258];
	uint32_t buffer_Old_Hungarian_len = encode_utf16(chars_Old_Hungarian[0], chars_Old_Hungarian[1], buffer_Old_Hungarian) - 2;
	if (scan(buffer_Old_Hungarian, buffer_Old_Hungarian + buffer_Old_Hungarian_len, Old_Hungarian) != Old_Hungarian)
		printf("test 'Old_Hungarian' failed\n");
	delete[] buffer_Old_Hungarian;

	YYCTYPE *buffer_Hanifi_Rohingya = new YYCTYPE[130];
	uint32_t buffer_Hanifi_Rohingya_len = encode_utf16(chars_Hanifi_Rohingya[0], chars_Hanifi_Rohingya[1], buffer_Hanifi_Rohingya) - 2;
	if (scan(buffer_Hanifi_Rohingya, buffer_Hanifi_Rohingya + buffer_Hanifi_Rohingya_len, Hanifi_Rohingya) != Hanifi_Rohingya)
		printf("test 'Hanifi_Rohingya' failed\n");
	delete[] buffer_Hanifi_Rohingya;

	YYCTYPE *buffer_Garay = new YYCTYPE[162];
	uint32_t buffer_Garay_len = encode_utf16(chars_Garay[0], chars_Garay[1], buffer_Garay) - 2;
	if (scan(buffer_Garay, buffer_Garay + buffer_Garay_len, Garay) != Garay)
		printf("test 'Garay' failed\n");
	delete[] buffer_Garay;

	YYCTYPE *buffer_Rumi_Numeral_Symbols = new YYCTYPE[66];
	uint32_t buffer_Rumi_Numeral_Symbols_len = encode_utf16(chars_Rumi_Numeral_Symbols[0], chars_Rumi_Numeral_Symbols[1], buffer_Rumi_Numeral_Symbols) - 2;
	if (scan(buffer_Rumi_Numeral_Symbols, buffer_Rumi_Numeral_Symbols + buffer_Rumi_Numeral_Symbols_len, Rumi_Numeral_Symbols) != Rumi_Numeral_Symbols)
		printf("test 'Rumi_Numeral_Symbols' failed\n");
	delete[] buffer_Rumi_Numeral_Symbols;

	YYCTYPE *buffer_Yezidi = new YYCTYPE[130];
	uint32_t buffer_Yezidi_len = encode_utf16(chars_Yezidi[0], chars_Yezidi[1], buffer_Yezidi) - 2;
	if (scan(buffer_Yezidi, buffer_Yezidi + buffer_Yezidi_len, Yezidi) != Yezidi)
		printf("test 'Yezidi' failed\n");
	delete[] buffer_Yezidi;

	YYCTYPE *buffer_Arabic_Extended_C = new YYCTYPE[130];
	uint32_t buffer_Arabic_Extended_C_len = encode_utf16(chars_Arabic_Extended_C[0], chars_Arabic_Extended_C[1], buffer_Arabic_Extended_C) - 2;
	if (scan(buffer_Arabic_Extended_C, buffer_Arabic_Extended_C + buffer_Arabic_Extended_C_len, Arabic_Extended_C) != Arabic_Extended_C)
		printf("test 'Arabic_Extended_C' failed\n");
	delete[] buffer_Arabic_Extended_C;

	YYCTYPE *buffer_Old_Sogdian = new YYCTYPE[98];
	uint32_t buffer_Old_Sogdian_len = encode_utf16(chars_Old_Sogdian[0], chars_Old_Sogdian[1], buffer_Old_Sogdian) - 2;
	if (scan(buffer_Old_Sogdian, buffer_Old_Sogdian + buffer_Old_Sogdian_len, Old_Sogdian) != Old_Sogdian)
		printf("test 'Old_Sogdian' failed\n");
	delete[] buffer_Old_Sogdian;

	YYCTYPE *buffer_Sogdian = new YYCTYPE[130];
	uint32_t buffer_Sogdian_len = encode_utf16(chars_Sogdian[0], chars_Sogdian[1], buffer_Sogdian) - 2;
	if (scan(buffer_Sogdian, buffer_Sogdian + buffer_Sogdian_len, Sogdian) != Sogdian)
		printf("test 'Sogdian' failed\n");
	delete[] buffer_Sogdian;

	YYCTYPE *buffer_Old_Uyghur = new YYCTYPE[130];
	uint32_t buffer_Old_Uyghur_len = encode_utf16(chars_Old_Uyghur[0], chars_Old_Uyghur[1], buffer_Old_Uyghur) - 2;
	if (scan(buffer_Old_Uyghur, buffer_Old_Uyghur + buffer_Old_Uyghur_len, Old_Uyghur) != Old_Uyghur)
		printf("test 'Old_Uyghur' failed\n");
	delete[] buffer_Old_Uyghur;

	YYCTYPE *buffer_Chorasmian = new YYCTYPE[98];
	uint32_t buffer_Chorasmian_len = encode_utf16(chars_Chorasmian[0], chars_Chorasmian[1], buffer_Chorasmian) - 2;
	if (scan(buffer_Chorasmian, buffer_Chorasmian + buffer_Chorasmian_len, Chorasmian) != Chorasmian)
		printf("test 'Chorasmian' failed\n");
	delete[] buffer_Chorasmian;

	YYCTYPE *buffer_Elymaic = new YYCTYPE[66];
	uint32_t buffer_Elymaic_len = encode_utf16(chars_Elymaic[0], chars_Elymaic[1], buffer_Elymaic) - 2;
	if (scan(buffer_Elymaic, buffer_Elymaic + buffer_Elymaic_len, Elymaic) != Elymaic)
		printf("test 'Elymaic' failed\n");
	delete[] buffer_Elymaic;

	YYCTYPE *buffer_Brahmi = new YYCTYPE[258];
	uint32_t buffer_Brahmi_len = encode_utf16(chars_Brahmi[0], chars_Brahmi[1], buffer_Brahmi) - 2;
	if (scan(buffer_Brahmi, buffer_Brahmi + buffer_Brahmi_len, Brahmi) != Brahmi)
		printf("test 'Brahmi' failed\n");
	delete[] buffer_Brahmi;

	YYCTYPE *buffer_Kaithi = new YYCTYPE[162];
	uint32_t buffer_Kaithi_len = encode_utf16(chars_Kaithi[0], chars_Kaithi[1], buffer_Kaithi) - 2;
	if (scan(buffer_Kaithi, buffer_Kaithi + buffer_Kaithi_len, Kaithi) != Kaithi)
		printf("test 'Kaithi' failed\n");
	delete[] buffer_Kaithi;

	YYCTYPE *buffer_Sora_Sompeng = new YYCTYPE[98];
	uint32_t buffer_Sora_Sompeng_len = encode_utf16(chars_Sora_Sompeng[0], chars_Sora_Sompeng[1], buffer_Sora_Sompeng) - 2;
	if (scan(buffer_Sora_Sompeng, buffer_Sora_Sompeng + buffer_Sora_Sompeng_len, Sora_Sompeng) != Sora_Sompeng)
		printf("test 'Sora_Sompeng' failed\n");
	delete[] buffer_Sora_Sompeng;

	YYCTYPE *buffer_Chakma = new YYCTYPE[162];
	uint32_t buffer_Chakma_len = encode_utf16(chars_Chakma[0], chars_Chakma[1], buffer_Chakma) - 2;
	if (scan(buffer_Chakma, buffer_Chakma + buffer_Chakma_len, Chakma) != Chakma)
		printf("test 'Chakma' failed\n");
	delete[] buffer_Chakma;

	YYCTYPE *buffer_Mahajani = new YYCTYPE[98];
	uint32_t buffer_Mahajani_len = encode_utf16(chars_Mahajani[0], chars_Mahajani[1], buffer_Mahajani) - 2;
	if (scan(buffer_Mahajani, buffer_Mahajani + buffer_Mahajani_len, Mahajani) != Mahajani)
		printf("test 'Mahajani' failed\n");
	delete[] buffer_Mahajani;

	YYCTYPE *buffer_Sharada = new YYCTYPE[194];
	uint32_t buffer_Sharada_len = encode_utf16(chars_Sharada[0], chars_Sharada[1], buffer_Sharada) - 2;
	if (scan(buffer_Sharada, buffer_Sharada + buffer_Sharada_len, Sharada) != Sharada)
		printf("test 'Sharada' failed\n");
	delete[] buffer_Sharada;

	YYCTYPE *buffer_Sinhala_Archaic_Numbers = new YYCTYPE[66];
	uint32_t buffer_Sinhala_Archaic_Numbers_len = encode_utf16(chars_Sinhala_Archaic_Numbers[0], chars_Sinhala_Archaic_Numbers[1], buffer_Sinhala_Archaic_Numbers) - 2;
	if (scan(buffer_Sinhala_Archaic_Numbers, buffer_Sinhala_Archaic_Numbers + buffer_Sinhala_Archaic_Numbers_len, Sinhala_Archaic_Numbers) != Sinhala_Archaic_Numbers)
		printf("test 'Sinhala_Archaic_Numbers' failed\n");
	delete[] buffer_Sinhala_Archaic_Numbers;

	YYCTYPE *buffer_Khojki = new YYCTYPE[162];
	uint32_t buffer_Khojki_len = encode_utf16(chars_Khojki[0], chars_Khojki[1], buffer_Khojki) - 2;
	if (scan(buffer_Khojki, buffer_Khojki + buffer_Khojki_len, Khojki) != Khojki)
		printf("test 'Khojki' failed\n");
	delete[] buffer_Khojki;

	YYCTYPE *buffer_Multani = new YYCTYPE[98];
	uint32_t buffer_Multani_len = encode_utf16(chars_Multani[0], chars_Multani[1], buffer_Multani) - 2;
	if (scan(buffer_Multani, buffer_Multani + buffer_Multani_len, Multani) != Multani)
		printf("test 'Multani' failed\n");
	delete[] buffer_Multani;

	YYCTYPE *buffer_Khudawadi = new YYCTYPE[162];
	uint32_t buffer_Khudawadi_len = encode_utf16(chars_Khudawadi[0], chars_Khudawadi[1], buffer_Khudawadi) - 2;
	if (scan(buffer_Khudawadi, buffer_Khudawadi + buffer_Khudawadi_len, Khudawadi) != Khudawadi)
		printf("test 'Khudawadi' failed\n");
	delete[] buffer_Khudawadi;

	YYCTYPE *buffer_Grantha = new YYCTYPE[258];
	uint32_t buffer_Grantha_len = encode_utf16(chars_Grantha[0], chars_Grantha[1], buffer_Grantha) - 2;
	if (scan(buffer_Grantha, buffer_Grantha + buffer_Grantha_len, Grantha) != Grantha)
		printf("test 'Grantha' failed\n");
	delete[] buffer_Grantha;

	YYCTYPE *buffer_Tulu_Tigalari = new YYCTYPE[258];
	uint32_t buffer_Tulu_Tigalari_len = encode_utf16(chars_Tulu_Tigalari[0], chars_Tulu_Tigalari[1], buffer_Tulu_Tigalari) - 2;
	if (scan(buffer_Tulu_Tigalari, buffer_Tulu_Tigalari + buffer_Tulu_Tigalari_len, Tulu_Tigalari) != Tulu_Tigalari)
		printf("test 'Tulu_Tigalari' failed\n");
	delete[] buffer_Tulu_Tigalari;

	YYCTYPE *buffer_Newa = new YYCTYPE[258];
	uint32_t buffer_Newa_len = encode_utf16(chars_Newa[0], chars_Newa[1], buffer_Newa) - 2;
	if (scan(buffer_Newa, buffer_Newa + buffer_Newa_len, Newa) != Newa)
		printf("test 'Newa' failed\n");
	delete[] buffer_Newa;

	YYCTYPE *buffer_Tirhuta = new YYCTYPE[194];
	uint32_t buffer_Tirhuta_len = encode_utf16(chars_Tirhuta[0], chars_Tirhuta[1], buffer_Tirhuta) - 2;
	if (scan(buffer_Tirhuta, buffer_Tirhuta + buffer_Tirhuta_len, Tirhuta) != Tirhuta)
		printf("test 'Tirhuta' failed\n");
	delete[] buffer_Tirhuta;

	YYCTYPE *buffer_Siddham = new YYCTYPE[258];
	uint32_t buffer_Siddham_len = encode_utf16(chars_Siddham[0], chars_Siddham[1], buffer_Siddham) - 2;
	if (scan(buffer_Siddham, buffer_Siddham + buffer_Siddham_len, Siddham) != Siddham)
		printf("test 'Siddham' failed\n");
	delete[] buffer_Siddham;

	YYCTYPE *buffer_Modi = new YYCTYPE[194];
	uint32_t buffer_Modi_len = encode_utf16(chars_Modi[0], chars_Modi[1], buffer_Modi) - 2;
	if (scan(buffer_Modi, buffer_Modi + buffer_Modi_len, Modi) != Modi)
		printf("test 'Modi' failed\n");
	delete[] buffer_Modi;

	YYCTYPE *buffer_Mongolian_Supplement = new YYCTYPE[66];
	uint32_t buffer_Mongolian_Supplement_len = encode_utf16(chars_Mongolian_Supplement[0], chars_Mongolian_Supplement[1], buffer_Mongolian_Supplement) - 2;
	if (scan(buffer_Mongolian_Supplement, buffer_Mongolian_Supplement + buffer_Mongolian_Supplement_len, Mongolian_Supplement) != Mongolian_Supplement)
		printf("test 'Mongolian_Supplement' failed\n");
	delete[] buffer_Mongolian_Supplement;

	YYCTYPE *buffer_Takri = new YYCTYPE[162];
	uint32_t buffer_Takri_len = encode_utf16(chars_Takri[0], chars_Takri[1], buffer_Takri) - 2;
	if (scan(buffer_Takri, buffer_Takri + buffer_Takri_len, Takri) != Takri)
		printf("test 'Takri' failed\n");
	delete[] buffer_Takri;

	YYCTYPE *buffer_Myanmar_Extended_C = new YYCTYPE[98];
	uint32_t buffer_Myanmar_Extended_C_len = encode_utf16(chars_Myanmar_Extended_C[0], chars_Myanmar_Extended_C[1], buffer_Myanmar_Extended_C) - 2;
	if (scan(buffer_Myanmar_Extended_C, buffer_Myanmar_Extended_C + buffer_Myanmar_Extended_C_len, Myanmar_Extended_C) != Myanmar_Extended_C)
		printf("test 'Myanmar_Extended_C' failed\n");
	delete[] buffer_Myanmar_Extended_C;

	YYCTYPE *buffer_Ahom = new YYCTYPE[162];
	uint32_t buffer_Ahom_len = encode_utf16(chars_Ahom[0], chars_Ahom[1], buffer_Ahom) - 2;
	if (scan(buffer_Ahom, buffer_Ahom + buffer_Ahom_len, Ahom) != Ahom)
		printf("test 'Ahom' failed\n");
	delete[] buffer_Ahom;

	YYCTYPE *buffer_Dogra = new YYCTYPE[162];
	uint32_t buffer_Dogra_len = encode_utf16(chars_Dogra[0], chars_Dogra[1], buffer_Dogra) - 2;
	if (scan(buffer_Dogra, buffer_Dogra + buffer_Dogra_len, Dogra) != Dogra)
		printf("test 'Dogra' failed\n");
	delete[] buffer_Dogra;

	YYCTYPE *buffer_Warang_Citi = new YYCTYPE[194];
	uint32_t buffer_Warang_Citi_len = encode_utf16(chars_Warang_Citi[0], chars_Warang_Citi[1], buffer_Warang_Citi) - 2;
	if (scan(buffer_Warang_Citi, buffer_Warang_Citi + buffer_Warang_Citi_len, Warang_Citi) != Warang_Citi)
		printf("test 'Warang_Citi' failed\n");
	delete[] buffer_Warang_Citi;

	YYCTYPE *buffer_Dives_Akuru = new YYCTYPE[194];
	uint32_t buffer_Dives_Akuru_len = encode_utf16(chars_Dives_Akuru[0], chars_Dives_Akuru[1], buffer_Dives_Akuru) - 2;
	if (scan(buffer_Dives_Akuru, buffer_Dives_Akuru + buffer_Dives_Akuru_len, Dives_Akuru) != Dives_Akuru)
		printf("test 'Dives_Akuru' failed\n");
	delete[] buffer_Dives_Akuru;

	YYCTYPE *buffer_Nandinagari = new YYCTYPE[194];
	uint32_t buffer_Nandinagari_len = encode_utf16(chars_Nandinagari[0], chars_Nandinagari[1], buffer_Nandinagari) - 2;
	if (scan(buffer_Nandinagari, buffer_Nandinagari + buffer_Nandinagari_len, Nandinagari) != Nandinagari)
		printf("test 'Nandinagari' failed\n");
	delete[] buffer_Nandinagari;

	YYCTYPE *buffer_Zanabazar_Square = new YYCTYPE[162];
	uint32_t buffer_Zanabazar_Square_len = encode_utf16(chars_Zanabazar_Square[0], chars_Zanabazar_Square[1], buffer_Zanabazar_Square) - 2;
	if (scan(buffer_Zanabazar_Square, buffer_Zanabazar_Square + buffer_Zanabazar_Square_len, Zanabazar_Square) != Zanabazar_Square)
		printf("test 'Zanabazar_Square' failed\n");
	delete[] buffer_Zanabazar_Square;

	YYCTYPE *buffer_Soyombo = new YYCTYPE[194];
	uint32_t buffer_Soyombo_len = encode_utf16(chars_Soyombo[0], chars_Soyombo[1], buffer_Soyombo) - 2;
	if (scan(buffer_Soyombo, buffer_Soyombo + buffer_Soyombo_len, Soyombo) != Soyombo)
		printf("test 'Soyombo' failed\n");
	delete[] buffer_Soyombo;

	YYCTYPE *buffer_Unified_Canadian_Aboriginal_Syllabics_Extended_A = new YYCTYPE[34];
	uint32_t buffer_Unified_Canadian_Aboriginal_Syllabics_Extended_A_len = encode_utf16(chars_Unified_Canadian_Aboriginal_Syllabics_Extended_A[0], chars_Unified_Canadian_Aboriginal_Syllabics_Extended_A[1], buffer_Unified_Canadian_Aboriginal_Syllabics_Extended_A) - 2;
	if (scan(buffer_Unified_Canadian_Aboriginal_Syllabics_Extended_A, buffer_Unified_Canadian_Aboriginal_Syllabics_Extended_A + buffer_Unified_Canadian_Aboriginal_Syllabics_Extended_A_len, Unified_Canadian_Aboriginal_Syllabics_Extended_A) != Unified_Canadian_Aboriginal_Syllabics_Extended_A)
		printf("test 'Unified_Canadian_Aboriginal_Syllabics_Extended_A' failed\n");
	delete[] buffer_Unified_Canadian_Aboriginal_Syllabics_Extended_A;

	YYCTYPE *buffer_Pau_Cin_Hau = new YYCTYPE[130];
	uint32_t buffer_Pau_Cin_Hau_len = encode_utf16(chars_Pau_Cin_Hau[0], chars_Pau_Cin_Hau[1], buffer_Pau_Cin_Hau) - 2;
	if (scan(buffer_Pau_Cin_Hau, buffer_Pau_Cin_Hau + buffer_Pau_Cin_Hau_len, Pau_Cin_Hau) != Pau_Cin_Hau)
		printf("test 'Pau_Cin_Hau' failed\n");
	delete[] buffer_Pau_Cin_Hau;

	YYCTYPE *buffer_Devanagari_Extended_A = new YYCTYPE[194];
	uint32_t buffer_Devanagari_Extended_A_len = encode_utf16(chars_Devanagari_Extended_A[0], chars_Devanagari_Extended_A[1], buffer_Devanagari_Extended_A) - 2;
	if (scan(buffer_Devanagari_Extended_A, buffer_Devanagari_Extended_A + buffer_Devanagari_Extended_A_len, Devanagari_Extended_A) != Devanagari_Extended_A)
		printf("test 'Devanagari_Extended_A' failed\n");
	delete[] buffer_Devanagari_Extended_A;

	YYCTYPE *buffer_Sharada_Supplement = new YYCTYPE[66];
	uint32_t buffer_Sharada_Supplement_len = encode_utf16(chars_Sharada_Supplement[0], chars_Sharada_Supplement[1], buffer_Sharada_Supplement) - 2;
	if (scan(buffer_Sharada_Supplement, buffer_Sharada_Supplement + buffer_Sharada_Supplement_len, Sharada_Supplement) != Sharada_Supplement)
		printf("test 'Sharada_Supplement' failed\n");
	delete[] buffer_Sharada_Supplement;

	YYCTYPE *buffer_Sunuwar = new YYCTYPE[130];
	uint32_t buffer_Sunuwar_len = encode_utf16(chars_Sunuwar[0], chars_Sunuwar[1], buffer_Sunuwar) - 2;
	if (scan(buffer_Sunuwar, buffer_Sunuwar + buffer_Sunuwar_len, Sunuwar) != Sunuwar)
		printf("test 'Sunuwar' failed\n");
	delete[] buffer_Sunuwar;

	YYCTYPE *buffer_Bhaiksuki = new YYCTYPE[226];
	uint32_t buffer_Bhaiksuki_len = encode_utf16(chars_Bhaiksuki[0], chars_Bhaiksuki[1], buffer_Bhaiksuki) - 2;
	if (scan(buffer_Bhaiksuki, buffer_Bhaiksuki + buffer_Bhaiksuki_len, Bhaiksuki) != Bhaiksuki)
		printf("test 'Bhaiksuki' failed\n");
	delete[] buffer_Bhaiksuki;

	YYCTYPE *buffer_Marchen = new YYCTYPE[162];
	uint32_t buffer_Marchen_len = encode_utf16(chars_Marchen[0], chars_Marchen[1], buffer_Marchen) - 2;
	if (scan(buffer_Marchen, buffer_Marchen + buffer_Marchen_len, Marchen) != Marchen)
		printf("test 'Marchen' failed\n");
	delete[] buffer_Marchen;

	YYCTYPE *buffer_Masaram_Gondi = new YYCTYPE[194];
	uint32_t buffer_Masaram_Gondi_len = encode_utf16(chars_Masaram_Gondi[0], chars_Masaram_Gondi[1], buffer_Masaram_Gondi) - 2;
	if (scan(buffer_Masaram_Gondi, buffer_Masaram_Gondi + buffer_Masaram_Gondi_len, Masaram_Gondi) != Masaram_Gondi)
		printf("test 'Masaram_Gondi' failed\n");
	delete[] buffer_Masaram_Gondi;

	YYCTYPE *buffer_Gunjala_Gondi = new YYCTYPE[162];
	uint32_t buffer_Gunjala_Gondi_len = encode_utf16(chars_Gunjala_Gondi[0], chars_Gunjala_Gondi[1], buffer_Gunjala_Gondi) - 2;
	if (scan(buffer_Gunjala_Gondi, buffer_Gunjala_Gondi + buffer_Gunjala_Gondi_len, Gunjala_Gondi) != Gunjala_Gondi)
		printf("test 'Gunjala_Gondi' failed\n");
	delete[] buffer_Gunjala_Gondi;

	YYCTYPE *buffer_Tolong_Siki = new YYCTYPE[130];
	uint32_t buffer_Tolong_Siki_len = encode_utf16(chars_Tolong_Siki[0], chars_Tolong_Siki[1], buffer_Tolong_Siki) - 2;
	if (scan(buffer_Tolong_Siki, buffer_Tolong_Siki + buffer_Tolong_Siki_len, Tolong_Siki) != Tolong_Siki)
		printf("test 'Tolong_Siki' failed\n");
	delete[] buffer_Tolong_Siki;

	YYCTYPE *buffer_Makasar = new YYCTYPE[66];
	uint32_t buffer_Makasar_len = encode_utf16(chars_Makasar[0], chars_Makasar[1], buffer_Makasar) - 2;
	if (scan(buffer_Makasar, buffer_Makasar + buffer_Makasar_len, Makasar) != Makasar)
		printf("test 'Makasar' failed\n");
	delete[] buffer_Makasar;

	YYCTYPE *buffer_Kawi = new YYCTYPE[194];
	uint32_t buffer_Kawi_len = encode_utf16(chars_Kawi[0], chars_Kawi[1], buffer_Kawi) - 2;
	if (scan(buffer_Kawi, buffer_Kawi + buffer_Kawi_len, Kawi) != Kawi)
		printf("test 'Kawi' failed\n");
	delete[] buffer_Kawi;

	YYCTYPE *buffer_Lisu_Supplement = new YYCTYPE[34];
	uint32_t buffer_Lisu_Supplement_len = encode_utf16(chars_Lisu_Supplement[0], chars_Lisu_Supplement[1], buffer_Lisu_Supplement) - 2;
	if (scan(buffer_Lisu_Supplement, buffer_Lisu_Supplement + buffer_Lisu_Supplement_len, Lisu_Supplement) != Lisu_Supplement)
		printf("test 'Lisu_Supplement' failed\n");
	delete[] buffer_Lisu_Supplement;

	YYCTYPE *buffer_Tamil_Supplement = new YYCTYPE[130];
	uint32_t buffer_Tamil_Supplement_len = encode_utf16(chars_Tamil_Supplement[0], chars_Tamil_Supplement[1], buffer_Tamil_Supplement) - 2;
	if (scan(buffer_Tamil_Supplement, buffer_Tamil_Supplement + buffer_Tamil_Supplement_len, Tamil_Supplement) != Tamil_Supplement)
		printf("test 'Tamil_Supplement' failed\n");
	delete[] buffer_Tamil_Supplement;

	YYCTYPE *buffer_Cuneiform = new YYCTYPE[2050];
	uint32_t buffer_Cuneiform_len = encode_utf16(chars_Cuneiform[0], chars_Cuneiform[1], buffer_Cuneiform) - 2;
	if (scan(buffer_Cuneiform, buffer_Cuneiform + buffer_Cuneiform_len, Cuneiform) != Cuneiform)
		printf("test 'Cuneiform' failed\n");
	delete[] buffer_Cuneiform;

	YYCTYPE *buffer_Cuneiform_Numbers_and_Punctuation = new YYCTYPE[258];
	uint32_t buffer_Cuneiform_Numbers_and_Punctuation_len = encode_utf16(chars_Cuneiform_Numbers_and_Punctuation[0], chars_Cuneiform_Numbers_and_Punctuation[1], buffer_Cuneiform_Numbers_and_Punctuation) - 2;
	if (scan(buffer_Cuneiform_Numbers_and_Punctuation, buffer_Cuneiform_Numbers_and_Punctuation + buffer_Cuneiform_Numbers_and_Punctuation_len, Cuneiform_Numbers_and_Punctuation) != Cuneiform_Numbers_and_Punctuation)
		printf("test 'Cuneiform_Numbers_and_Punctuation' failed\n");
	delete[] buffer_Cuneiform_Numbers_and_Punctuation;

	YYCTYPE *buffer_Early_Dynastic_Cuneiform = new YYCTYPE[418];
	uint32_t buffer_Early_Dynastic_Cuneiform_len = encode_utf16(chars_Early_Dynastic_Cuneiform[0], chars_Early_Dynastic_Cuneiform[1], buffer_Early_Dynastic_Cuneiform) - 2;
	if (scan(buffer_Early_Dynastic_Cuneiform, buffer_Early_Dynastic_Cuneiform + buffer_Early_Dynastic_Cuneiform_len, Early_Dynastic_Cuneiform) != Early_Dynastic_Cuneiform)
		printf("test 'Early_Dynastic_Cuneiform' failed\n");
	delete[] buffer_Early_Dynastic_Cuneiform;

	YYCTYPE *buffer_Cypro_Minoan = new YYCTYPE[226];
	uint32_t buffer_Cypro_Minoan_len = encode_utf16(chars_Cypro_Minoan[0], chars_Cypro_Minoan[1], buffer_Cypro_Minoan) - 2;
	if (scan(buffer_Cypro_Minoan, buffer_Cypro_Minoan + buffer_Cypro_Minoan_len, Cypro_Minoan) != Cypro_Minoan)
		printf("test 'Cypro_Minoan' failed\n");
	delete[] buffer_Cypro_Minoan;

	YYCTYPE *buffer_Egyptian_Hieroglyphs = new YYCTYPE[2146];
	uint32_t buffer_Egyptian_Hieroglyphs_len = encode_utf16(chars_Egyptian_Hieroglyphs[0], chars_Egyptian_Hieroglyphs[1], buffer_Egyptian_Hieroglyphs) - 2;
	if (scan(buffer_Egyptian_Hieroglyphs, buffer_Egyptian_Hieroglyphs + buffer_Egyptian_Hieroglyphs_len, Egyptian_Hieroglyphs) != Egyptian_Hieroglyphs)
		printf("test 'Egyptian_Hieroglyphs' failed\n");
	delete[] buffer_Egyptian_Hieroglyphs;

	YYCTYPE *buffer_Egyptian_Hieroglyph_Format_Controls = new YYCTYPE[98];
	uint32_t buffer_Egyptian_Hieroglyph_Format_Controls_len = encode_utf16(chars_Egyptian_Hieroglyph_Format_Controls[0], chars_Egyptian_Hieroglyph_Format_Controls[1], buffer_Egyptian_Hieroglyph_Format_Controls) - 2;
	if (scan(buffer_Egyptian_Hieroglyph_Format_Controls, buffer_Egyptian_Hieroglyph_Format_Controls + buffer_Egyptian_Hieroglyph_Format_Controls_len, Egyptian_Hieroglyph_Format_Controls) != Egyptian_Hieroglyph_Format_Controls)
		printf("test 'Egyptian_Hieroglyph_Format_Controls' failed\n");
	delete[] buffer_Egyptian_Hieroglyph_Format_Controls;

	YYCTYPE *buffer_Egyptian_Hieroglyphs_Extended_A = new YYCTYPE[8002];
	uint32_t buffer_Egyptian_Hieroglyphs_Extended_A_len = encode_utf16(chars_Egyptian_Hieroglyphs_Extended_A[0], chars_Egyptian_Hieroglyphs_Extended_A[1], buffer_Egyptian_Hieroglyphs_Extended_A) - 2;
	if (scan(buffer_Egyptian_Hieroglyphs_Extended_A, buffer_Egyptian_Hieroglyphs_Extended_A + buffer_Egyptian_Hieroglyphs_Extended_A_len, Egyptian_Hieroglyphs_Extended_A) != Egyptian_Hieroglyphs_Extended_A)
		printf("test 'Egyptian_Hieroglyphs_Extended_A' failed\n");
	delete[] buffer_Egyptian_Hieroglyphs_Extended_A;

	YYCTYPE *buffer_Anatolian_Hieroglyphs = new YYCTYPE[1282];
	uint32_t buffer_Anatolian_Hieroglyphs_len = encode_utf16(chars_Anatolian_Hieroglyphs[0], chars_Anatolian_Hieroglyphs[1], buffer_Anatolian_Hieroglyphs) - 2;
	if (scan(buffer_Anatolian_Hieroglyphs, buffer_Anatolian_Hieroglyphs + buffer_Anatolian_Hieroglyphs_len, Anatolian_Hieroglyphs) != Anatolian_Hieroglyphs)
		printf("test 'Anatolian_Hieroglyphs' failed\n");
	delete[] buffer_Anatolian_Hieroglyphs;

	YYCTYPE *buffer_Gurung_Khema = new YYCTYPE[130];
	uint32_t buffer_Gurung_Khema_len = encode_utf16(chars_Gurung_Khema[0], chars_Gurung_Khema[1], buffer_Gurung_Khema) - 2;
	if (scan(buffer_Gurung_Khema, buffer_Gurung_Khema + buffer_Gurung_Khema_len, Gurung_Khema) != Gurung_Khema)
		printf("test 'Gurung_Khema' failed\n");
	delete[] buffer_Gurung_Khema;

	YYCTYPE *buffer_Bamum_Supplement = new YYCTYPE[1154];
	uint32_t buffer_Bamum_Supplement_len = encode_utf16(chars_Bamum_Supplement[0], chars_Bamum_Supplement[1], buffer_Bamum_Supplement) - 2;
	if (scan(buffer_Bamum_Supplement, buffer_Bamum_Supplement + buffer_Bamum_Supplement_len, Bamum_Supplement) != Bamum_Supplement)
		printf("test 'Bamum_Supplement' failed\n");
	delete[] buffer_Bamum_Supplement;

	YYCTYPE *buffer_Mro = new YYCTYPE[98];
	uint32_t buffer_Mro_len = encode_utf16(chars_Mro[0], chars_Mro[1], buffer_Mro) - 2;
	if (scan(buffer_Mro, buffer_Mro + buffer_Mro_len, Mro) != Mro)
		printf("test 'Mro' failed\n");
	delete[] buffer_Mro;

	YYCTYPE *buffer_Tangsa = new YYCTYPE[194];
	uint32_t buffer_Tangsa_len = encode_utf16(chars_Tangsa[0], chars_Tangsa[1], buffer_Tangsa) - 2;
	if (scan(buffer_Tangsa, buffer_Tangsa + buffer_Tangsa_len, Tangsa) != Tangsa)
		printf("test 'Tangsa' failed\n");
	delete[] buffer_Tangsa;

	YYCTYPE *buffer_Bassa_Vah = new YYCTYPE[98];
	uint32_t buffer_Bassa_Vah_len = encode_utf16(chars_Bassa_Vah[0], chars_Bassa_Vah[1], buffer_Bassa_Vah) - 2;
	if (scan(buffer_Bassa_Vah, buffer_Bassa_Vah + buffer_Bassa_Vah_len, Bassa_Vah) != Bassa_Vah)
		printf("test 'Bassa_Vah' failed\n");
	delete[] buffer_Bassa_Vah;

	YYCTYPE *buffer_Pahawh_Hmong = new YYCTYPE[290];
	uint32_t buffer_Pahawh_Hmong_len = encode_utf16(chars_Pahawh_Hmong[0], chars_Pahawh_Hmong[1], buffer_Pahawh_Hmong) - 2;
	if (scan(buffer_Pahawh_Hmong, buffer_Pahawh_Hmong + buffer_Pahawh_Hmong_len, Pahawh_Hmong) != Pahawh_Hmong)
		printf("test 'Pahawh_Hmong' failed\n");
	delete[] buffer_Pahawh_Hmong;

	YYCTYPE *buffer_Kirat_Rai = new YYCTYPE[130];
	uint32_t buffer_Kirat_Rai_len = encode_utf16(chars_Kirat_Rai[0], chars_Kirat_Rai[1], buffer_Kirat_Rai) - 2;
	if (scan(buffer_Kirat_Rai, buffer_Kirat_Rai + buffer_Kirat_Rai_len, Kirat_Rai) != Kirat_Rai)
		printf("test 'Kirat_Rai' failed\n");
	delete[] buffer_Kirat_Rai;

	YYCTYPE *buffer_Medefaidrin = new YYCTYPE[194];
	uint32_t buffer_Medefaidrin_len = encode_utf16(chars_Medefaidrin[0], chars_Medefaidrin[1], buffer_Medefaidrin) - 2;
	if (scan(buffer_Medefaidrin, buffer_Medefaidrin + buffer_Medefaidrin_len, Medefaidrin) != Medefaidrin)
		printf("test 'Medefaidrin' failed\n");
	delete[] buffer_Medefaidrin;

	YYCTYPE *buffer_Beria_Erfe = new YYCTYPE[130];
	uint32_t buffer_Beria_Erfe_len = encode_utf16(chars_Beria_Erfe[0], chars_Beria_Erfe[1], buffer_Beria_Erfe) - 2;
	if (scan(buffer_Beria_Erfe, buffer_Beria_Erfe + buffer_Beria_Erfe_len, Beria_Erfe) != Beria_Erfe)
		printf("test 'Beria_Erfe' failed\n");
	delete[] buffer_Beria_Erfe;

	YYCTYPE *buffer_Miao = new YYCTYPE[322];
	uint32_t buffer_Miao_len = encode_utf16(chars_Miao[0], chars_Miao[1], buffer_Miao) - 2;
	if (scan(buffer_Miao, buffer_Miao + buffer_Miao_len, Miao) != Miao)
		printf("test 'Miao' failed\n");
	delete[] buffer_Miao;

	YYCTYPE *buffer_Ideographic_Symbols_and_Punctuation = new YYCTYPE[66];
	uint32_t buffer_Ideographic_Symbols_and_Punctuation_len = encode_utf16(chars_Ideographic_Symbols_and_Punctuation[0], chars_Ideographic_Symbols_and_Punctuation[1], buffer_Ideographic_Symbols_and_Punctuation) - 2;
	if (scan(buffer_Ideographic_Symbols_and_Punctuation, buffer_Ideographic_Symbols_and_Punctuation + buffer_Ideographic_Symbols_and_Punctuation_len, Ideographic_Symbols_and_Punctuation) != Ideographic_Symbols_and_Punctuation)
		printf("test 'Ideographic_Symbols_and_Punctuation' failed\n");
	delete[] buffer_Ideographic_Symbols_and_Punctuation;

	YYCTYPE *buffer_Tangut = new YYCTYPE[12290];
	uint32_t buffer_Tangut_len = encode_utf16(chars_Tangut[0], chars_Tangut[1], buffer_Tangut) - 2;
	if (scan(buffer_Tangut, buffer_Tangut + buffer_Tangut_len, Tangut) != Tangut)
		printf("test 'Tangut' failed\n");
	delete[] buffer_Tangut;

	YYCTYPE *buffer_Tangut_Components = new YYCTYPE[1538];
	uint32_t buffer_Tangut_Components_len = encode_utf16(chars_Tangut_Components[0], chars_Tangut_Components[1], buffer_Tangut_Components) - 2;
	if (scan(buffer_Tangut_Components, buffer_Tangut_Components + buffer_Tangut_Components_len, Tangut_Components) != Tangut_Components)
		printf("test 'Tangut_Components' failed\n");
	delete[] buffer_Tangut_Components;

	YYCTYPE *buffer_Khitan_Small_Script = new YYCTYPE[1026];
	uint32_t buffer_Khitan_Small_Script_len = encode_utf16(chars_Khitan_Small_Script[0], chars_Khitan_Small_Script[1], buffer_Khitan_Small_Script) - 2;
	if (scan(buffer_Khitan_Small_Script, buffer_Khitan_Small_Script + buffer_Khitan_Small_Script_len, Khitan_Small_Script) != Khitan_Small_Script)
		printf("test 'Khitan_Small_Script' failed\n");
	delete[] buffer_Khitan_Small_Script;

	YYCTYPE *buffer_Tangut_Supplement = new YYCTYPE[258];
	uint32_t buffer_Tangut_Supplement_len = encode_utf16(chars_Tangut_Supplement[0], chars_Tangut_Supplement[1], buffer_Tangut_Supplement) - 2;
	if (scan(buffer_Tangut_Supplement, buffer_Tangut_Supplement + buffer_Tangut_Supplement_len, Tangut_Supplement) != Tangut_Supplement)
		printf("test 'Tangut_Supplement' failed\n");
	delete[] buffer_Tangut_Supplement;

	YYCTYPE *buffer_Tangut_Components_Supplement = new YYCTYPE[258];
	uint32_t buffer_Tangut_Components_Supplement_len = encode_utf16(chars_Tangut_Components_Supplement[0], chars_Tangut_Components_Supplement[1], buffer_Tangut_Components_Supplement) - 2;
	if (scan(buffer_Tangut_Components_Supplement, buffer_Tangut_Components_Supplement + buffer_Tangut_Components_Supplement_len, Tangut_Components_Supplement) != Tangut_Components_Supplement)
		printf("test 'Tangut_Components_Supplement' failed\n");
	delete[] buffer_Tangut_Components_Supplement;

	YYCTYPE *buffer_Kana_Extended_B = new YYCTYPE[34];
	uint32_t buffer_Kana_Extended_B_len = encode_utf16(chars_Kana_Extended_B[0], chars_Kana_Extended_B[1], buffer_Kana_Extended_B) - 2;
	if (scan(buffer_Kana_Extended_B, buffer_Kana_Extended_B + buffer_Kana_Extended_B_len, Kana_Extended_B) != Kana_Extended_B)
		printf("test 'Kana_Extended_B' failed\n");
	delete[] buffer_Kana_Extended_B;

	YYCTYPE *buffer_Kana_Supplement = new YYCTYPE[514];
	uint32_t buffer_Kana_Supplement_len = encode_utf16(chars_Kana_Supplement[0], chars_Kana_Supplement[1], buffer_Kana_Supplement) - 2;
	if (scan(buffer_Kana_Supplement, buffer_Kana_Supplement + buffer_Kana_Supplement_len, Kana_Supplement) != Kana_Supplement)
		printf("test 'Kana_Supplement' failed\n");
	delete[] buffer_Kana_Supplement;

	YYCTYPE *buffer_Kana_Extended_A = new YYCTYPE[98];
	uint32_t buffer_Kana_Extended_A_len = encode_utf16(chars_Kana_Extended_A[0], chars_Kana_Extended_A[1], buffer_Kana_Extended_A) - 2;
	if (scan(buffer_Kana_Extended_A, buffer_Kana_Extended_A + buffer_Kana_Extended_A_len, Kana_Extended_A) != Kana_Extended_A)
		printf("test 'Kana_Extended_A' failed\n");
	delete[] buffer_Kana_Extended_A;

	YYCTYPE *buffer_Small_Kana_Extension = new YYCTYPE[130];
	uint32_t buffer_Small_Kana_Extension_len = encode_utf16(chars_Small_Kana_Extension[0], chars_Small_Kana_Extension[1], buffer_Small_Kana_Extension) - 2;
	if (scan(buffer_Small_Kana_Extension, buffer_Small_Kana_Extension + buffer_Small_Kana_Extension_len, Small_Kana_Extension) != Small_Kana_Extension)
		printf("test 'Small_Kana_Extension' failed\n");
	delete[] buffer_Small_Kana_Extension;

	YYCTYPE *buffer_Nushu = new YYCTYPE[802];
	uint32_t buffer_Nushu_len = encode_utf16(chars_Nushu[0], chars_Nushu[1], buffer_Nushu) - 2;
	if (scan(buffer_Nushu, buffer_Nushu + buffer_Nushu_len, Nushu) != Nushu)
		printf("test 'Nushu' failed\n");
	delete[] buffer_Nushu;

	YYCTYPE *buffer_Duployan = new YYCTYPE[322];
	uint32_t buffer_Duployan_len = encode_utf16(chars_Duployan[0], chars_Duployan[1], buffer_Duployan) - 2;
	if (scan(buffer_Duployan, buffer_Duployan + buffer_Duployan_len, Duployan) != Duployan)
		printf("test 'Duployan' failed\n");
	delete[] buffer_Duployan;

	YYCTYPE *buffer_Shorthand_Format_Controls = new YYCTYPE[34];
	uint32_t buffer_Shorthand_Format_Controls_len = encode_utf16(chars_Shorthand_Format_Controls[0], chars_Shorthand_Format_Controls[1], buffer_Shorthand_Format_Controls) - 2;
	if (scan(buffer_Shorthand_Format_Controls, buffer_Shorthand_Format_Controls + buffer_Shorthand_Format_Controls_len, Shorthand_Format_Controls) != Shorthand_Format_Controls)
		printf("test 'Shorthand_Format_Controls' failed\n");
	delete[] buffer_Shorthand_Format_Controls;

	YYCTYPE *buffer_Symbols_for_Legacy_Computing_Supplement = new YYCTYPE[1410];
	uint32_t buffer_Symbols_for_Legacy_Computing_Supplement_len = encode_utf16(chars_Symbols_for_Legacy_Computing_Supplement[0], chars_Symbols_for_Legacy_Computing_Supplement[1], buffer_Symbols_for_Legacy_Computing_Supplement) - 2;
	if (scan(buffer_Symbols_for_Legacy_Computing_Supplement, buffer_Symbols_for_Legacy_Computing_Supplement + buffer_Symbols_for_Legacy_Computing_Supplement_len, Symbols_for_Legacy_Computing_Supplement) != Symbols_for_Legacy_Computing_Supplement)
		printf("test 'Symbols_for_Legacy_Computing_Supplement' failed\n");
	delete[] buffer_Symbols_for_Legacy_Computing_Supplement;

	YYCTYPE *buffer_Miscellaneous_Symbols_Supplement = new YYCTYPE[130];
	uint32_t buffer_Miscellaneous_Symbols_Supplement_len = encode_utf16(chars_Miscellaneous_Symbols_Supplement[0], chars_Miscellaneous_Symbols_Supplement[1], buffer_Miscellaneous_Symbols_Supplement) - 2;
	if (scan(buffer_Miscellaneous_Symbols_Supplement, buffer_Miscellaneous_Symbols_Supplement + buffer_Miscellaneous_Symbols_Supplement_len, Miscellaneous_Symbols_Supplement) != Miscellaneous_Symbols_Supplement)
		printf("test 'Miscellaneous_Symbols_Supplement' failed\n");
	delete[] buffer_Miscellaneous_Symbols_Supplement;

	YYCTYPE *buffer_Znamenny_Musical_Notation = new YYCTYPE[418];
	uint32_t buffer_Znamenny_Musical_Notation_len = encode_utf16(chars_Znamenny_Musical_Notation[0], chars_Znamenny_Musical_Notation[1], buffer_Znamenny_Musical_Notation) - 2;
	if (scan(buffer_Znamenny_Musical_Notation, buffer_Znamenny_Musical_Notation + buffer_Znamenny_Musical_Notation_len, Znamenny_Musical_Notation) != Znamenny_Musical_Notation)
		printf("test 'Znamenny_Musical_Notation' failed\n");
	delete[] buffer_Znamenny_Musical_Notation;

	YYCTYPE *buffer_Byzantine_Musical_Symbols = new YYCTYPE[514];
	uint32_t buffer_Byzantine_Musical_Symbols_len = encode_utf16(chars_Byzantine_Musical_Symbols[0], chars_Byzantine_Musical_Symbols[1], buffer_Byzantine_Musical_Symbols) - 2;
	if (scan(buffer_Byzantine_Musical_Symbols, buffer_Byzantine_Musical_Symbols + buffer_Byzantine_Musical_Symbols_len, Byzantine_Musical_Symbols) != Byzantine_Musical_Symbols)
		printf("test 'Byzantine_Musical_Symbols' failed\n");
	delete[] buffer_Byzantine_Musical_Symbols;

	YYCTYPE *buffer_Musical_Symbols = new YYCTYPE[514];
	uint32_t buffer_Musical_Symbols_len = encode_utf16(chars_Musical_Symbols[0], chars_Musical_Symbols[1], buffer_Musical_Symbols) - 2;
	if (scan(buffer_Musical_Symbols, buffer_Musical_Symbols + buffer_Musical_Symbols_len, Musical_Symbols) != Musical_Symbols)
		printf("test 'Musical_Symbols' failed\n");
	delete[] buffer_Musical_Symbols;

	YYCTYPE *buffer_Ancient_Greek_Musical_Notation = new YYCTYPE[162];
	uint32_t buffer_Ancient_Greek_Musical_Notation_len = encode_utf16(chars_Ancient_Greek_Musical_Notation[0], chars_Ancient_Greek_Musical_Notation[1], buffer_Ancient_Greek_Musical_Notation) - 2;
	if (scan(buffer_Ancient_Greek_Musical_Notation, buffer_Ancient_Greek_Musical_Notation + buffer_Ancient_Greek_Musical_Notation_len, Ancient_Greek_Musical_Notation) != Ancient_Greek_Musical_Notation)
		printf("test 'Ancient_Greek_Musical_Notation' failed\n");
	delete[] buffer_Ancient_Greek_Musical_Notation;

	YYCTYPE *buffer_Kaktovik_Numerals = new YYCTYPE[66];
	uint32_t buffer_Kaktovik_Numerals_len = encode_utf16(chars_Kaktovik_Numerals[0], chars_Kaktovik_Numerals[1], buffer_Kaktovik_Numerals) - 2;
	if (scan(buffer_Kaktovik_Numerals, buffer_Kaktovik_Numerals + buffer_Kaktovik_Numerals_len, Kaktovik_Numerals) != Kaktovik_Numerals)
		printf("test 'Kaktovik_Numerals' failed\n");
	delete[] buffer_Kaktovik_Numerals;

	YYCTYPE *buffer_Mayan_Numerals = new YYCTYPE[66];
	uint32_t buffer_Mayan_Numerals_len = encode_utf16(chars_Mayan_Numerals[0], chars_Mayan_Numerals[1], buffer_Mayan_Numerals) - 2;
	if (scan(buffer_Mayan_Numerals, buffer_Mayan_Numerals + buffer_Mayan_Numerals_len, Mayan_Numerals) != Mayan_Numerals)
		printf("test 'Mayan_Numerals' failed\n");
	delete[] buffer_Mayan_Numerals;

	YYCTYPE *buffer_Tai_Xuan_Jing_Symbols = new YYCTYPE[194];
	uint32_t buffer_Tai_Xuan_Jing_Symbols_len = encode_utf16(chars_Tai_Xuan_Jing_Symbols[0], chars_Tai_Xuan_Jing_Symbols[1], buffer_Tai_Xuan_Jing_Symbols) - 2;
	if (scan(buffer_Tai_Xuan_Jing_Symbols, buffer_Tai_Xuan_Jing_Symbols + buffer_Tai_Xuan_Jing_Symbols_len, Tai_Xuan_Jing_Symbols) != Tai_Xuan_Jing_Symbols)
		printf("test 'Tai_Xuan_Jing_Symbols' failed\n");
	delete[] buffer_Tai_Xuan_Jing_Symbols;

	YYCTYPE *buffer_Counting_Rod_Numerals = new YYCTYPE[66];
	uint32_t buffer_Counting_Rod_Numerals_len = encode_utf16(chars_Counting_Rod_Numerals[0], chars_Counting_Rod_Numerals[1], buffer_Counting_Rod_Numerals) - 2;
	if (scan(buffer_Counting_Rod_Numerals, buffer_Counting_Rod_Numerals + buffer_Counting_Rod_Numerals_len, Counting_Rod_Numerals) != Counting_Rod_Numerals)
		printf("test 'Counting_Rod_Numerals' failed\n");
	delete[] buffer_Counting_Rod_Numerals;

	YYCTYPE *buffer_Mathematical_Alphanumeric_Symbols = new YYCTYPE[2050];
	uint32_t buffer_Mathematical_Alphanumeric_Symbols_len = encode_utf16(chars_Mathematical_Alphanumeric_Symbols[0], chars_Mathematical_Alphanumeric_Symbols[1], buffer_Mathematical_Alphanumeric_Symbols) - 2;
	if (scan(buffer_Mathematical_Alphanumeric_Symbols, buffer_Mathematical_Alphanumeric_Symbols + buffer_Mathematical_Alphanumeric_Symbols_len, Mathematical_Alphanumeric_Symbols) != Mathematical_Alphanumeric_Symbols)
		printf("test 'Mathematical_Alphanumeric_Symbols' failed\n");
	delete[] buffer_Mathematical_Alphanumeric_Symbols;

	YYCTYPE *buffer_Sutton_SignWriting = new YYCTYPE[1378];
	uint32_t buffer_Sutton_SignWriting_len = encode_utf16(chars_Sutton_SignWriting[0], chars_Sutton_SignWriting[1], buffer_Sutton_SignWriting) - 2;
	if (scan(buffer_Sutton_SignWriting, buffer_Sutton_SignWriting + buffer_Sutton_SignWriting_len, Sutton_SignWriting) != Sutton_SignWriting)
		printf("test 'Sutton_SignWriting' failed\n");
	delete[] buffer_Sutton_SignWriting;

	YYCTYPE *buffer_Latin_Extended_G = new YYCTYPE[514];
	uint32_t buffer_Latin_Extended_G_len = encode_utf16(chars_Latin_Extended_G[0], chars_Latin_Extended_G[1], buffer_Latin_Extended_G) - 2;
	if (scan(buffer_Latin_Extended_G, buffer_Latin_Extended_G + buffer_Latin_Extended_G_len, Latin_Extended_G) != Latin_Extended_G)
		printf("test 'Latin_Extended_G' failed\n");
	delete[] buffer_Latin_Extended_G;

	YYCTYPE *buffer_Glagolitic_Supplement = new YYCTYPE[98];
	uint32_t buffer_Glagolitic_Supplement_len = encode_utf16(chars_Glagolitic_Supplement[0], chars_Glagolitic_Supplement[1], buffer_Glagolitic_Supplement) - 2;
	if (scan(buffer_Glagolitic_Supplement, buffer_Glagolitic_Supplement + buffer_Glagolitic_Supplement_len, Glagolitic_Supplement) != Glagolitic_Supplement)
		printf("test 'Glagolitic_Supplement' failed\n");
	delete[] buffer_Glagolitic_Supplement;

	YYCTYPE *buffer_Cyrillic_Extended_D = new YYCTYPE[194];
	uint32_t buffer_Cyrillic_Extended_D_len = encode_utf16(chars_Cyrillic_Extended_D[0], chars_Cyrillic_Extended_D[1], buffer_Cyrillic_Extended_D) - 2;
	if (scan(buffer_Cyrillic_Extended_D, buffer_Cyrillic_Extended_D + buffer_Cyrillic_Extended_D_len, Cyrillic_Extended_D) != Cyrillic_Extended_D)
		printf("test 'Cyrillic_Extended_D' failed\n");
	delete[] buffer_Cyrillic_Extended_D;

	YYCTYPE *buffer_Nyiakeng_Puachue_Hmong = new YYCTYPE[162];
	uint32_t buffer_Nyiakeng_Puachue_Hmong_len = encode_utf16(chars_Nyiakeng_Puachue_Hmong[0], chars_Nyiakeng_Puachue_Hmong[1], buffer_Nyiakeng_Puachue_Hmong) - 2;
	if (scan(buffer_Nyiakeng_Puachue_Hmong, buffer_Nyiakeng_Puachue_Hmong + buffer_Nyiakeng_Puachue_Hmong_len, Nyiakeng_Puachue_Hmong) != Nyiakeng_Puachue_Hmong)
		printf("test 'Nyiakeng_Puachue_Hmong' failed\n");
	delete[] buffer_Nyiakeng_Puachue_Hmong;

	YYCTYPE *buffer_Toto = new YYCTYPE[98];
	uint32_t buffer_Toto_len = encode_utf16(chars_Toto[0], chars_Toto[1], buffer_Toto) - 2;
	if (scan(buffer_Toto, buffer_Toto + buffer_Toto_len, Toto) != Toto)
		printf("test 'Toto' failed\n");
	delete[] buffer_Toto;

	YYCTYPE *buffer_Wancho = new YYCTYPE[130];
	uint32_t buffer_Wancho_len = encode_utf16(chars_Wancho[0], chars_Wancho[1], buffer_Wancho) - 2;
	if (scan(buffer_Wancho, buffer_Wancho + buffer_Wancho_len, Wancho) != Wancho)
		printf("test 'Wancho' failed\n");
	delete[] buffer_Wancho;

	YYCTYPE *buffer_Nag_Mundari = new YYCTYPE[98];
	uint32_t buffer_Nag_Mundari_len = encode_utf16(chars_Nag_Mundari[0], chars_Nag_Mundari[1], buffer_Nag_Mundari) - 2;
	if (scan(buffer_Nag_Mundari, buffer_Nag_Mundari + buffer_Nag_Mundari_len, Nag_Mundari) != Nag_Mundari)
		printf("test 'Nag_Mundari' failed\n");
	delete[] buffer_Nag_Mundari;

	YYCTYPE *buffer_Ol_Onal = new YYCTYPE[98];
	uint32_t buffer_Ol_Onal_len = encode_utf16(chars_Ol_Onal[0], chars_Ol_Onal[1], buffer_Ol_Onal) - 2;
	if (scan(buffer_Ol_Onal, buffer_Ol_Onal + buffer_Ol_Onal_len, Ol_Onal) != Ol_Onal)
		printf("test 'Ol_Onal' failed\n");
	delete[] buffer_Ol_Onal;

	YYCTYPE *buffer_Tai_Yo = new YYCTYPE[130];
	uint32_t buffer_Tai_Yo_len = encode_utf16(chars_Tai_Yo[0], chars_Tai_Yo[1], buffer_Tai_Yo) - 2;
	if (scan(buffer_Tai_Yo, buffer_Tai_Yo + buffer_Tai_Yo_len, Tai_Yo) != Tai_Yo)
		printf("test 'Tai_Yo' failed\n");
	delete[] buffer_Tai_Yo;

	YYCTYPE *buffer_Ethiopic_Extended_B = new YYCTYPE[66];
	uint32_t buffer_Ethiopic_Extended_B_len = encode_utf16(chars_Ethiopic_Extended_B[0], chars_Ethiopic_Extended_B[1], buffer_Ethiopic_Extended_B) - 2;
	if (scan(buffer_Ethiopic_Extended_B, buffer_Ethiopic_Extended_B + buffer_Ethiopic_Extended_B_len, Ethiopic_Extended_B) != Ethiopic_Extended_B)
		printf("test 'Ethiopic_Extended_B' failed\n");
	delete[] buffer_Ethiopic_Extended_B;

	YYCTYPE *buffer_Mende_Kikakui = new YYCTYPE[450];
	uint32_t buffer_Mende_Kikakui_len = encode_utf16(chars_Mende_Kikakui[0], chars_Mende_Kikakui[1], buffer_Mende_Kikakui) - 2;
	if (scan(buffer_Mende_Kikakui, buffer_Mende_Kikakui + buffer_Mende_Kikakui_len, Mende_Kikakui) != Mende_Kikakui)
		printf("test 'Mende_Kikakui' failed\n");
	delete[] buffer_Mende_Kikakui;

	YYCTYPE *buffer_Adlam = new YYCTYPE[194];
	uint32_t buffer_Adlam_len = encode_utf16(chars_Adlam[0], chars_Adlam[1], buffer_Adlam) - 2;
	if (scan(buffer_Adlam, buffer_Adlam + buffer_Adlam_len, Adlam) != Adlam)
		printf("test 'Adlam' failed\n");
	delete[] buffer_Adlam;

	YYCTYPE *buffer_Indic_Siyaq_Numbers = new YYCTYPE[162];
	uint32_t buffer_Indic_Siyaq_Numbers_len = encode_utf16(chars_Indic_Siyaq_Numbers[0], chars_Indic_Siyaq_Numbers[1], buffer_Indic_Siyaq_Numbers) - 2;
	if (scan(buffer_Indic_Siyaq_Numbers, buffer_Indic_Siyaq_Numbers + buffer_Indic_Siyaq_Numbers_len, Indic_Siyaq_Numbers) != Indic_Siyaq_Numbers)
		printf("test 'Indic_Siyaq_Numbers' failed\n");
	delete[] buffer_Indic_Siyaq_Numbers;

	YYCTYPE *buffer_Ottoman_Siyaq_Numbers = new YYCTYPE[162];
	uint32_t buffer_Ottoman_Siyaq_Numbers_len = encode_utf16(chars_Ottoman_Siyaq_Numbers[0], chars_Ottoman_Siyaq_Numbers[1], buffer_Ottoman_Siyaq_Numbers) - 2;
	if (scan(buffer_Ottoman_Siyaq_Numbers, buffer_Ottoman_Siyaq_Numbers + buffer_Ottoman_Siyaq_Numbers_len, Ottoman_Siyaq_Numbers) != Ottoman_Siyaq_Numbers)
		printf("test 'Ottoman_Siyaq_Numbers' failed\n");
	delete[] buffer_Ottoman_Siyaq_Numbers;

	YYCTYPE *buffer_Arabic_Mathematical_Alphabetic_Symbols = new YYCTYPE[514];
	uint32_t buffer_Arabic_Mathematical_Alphabetic_Symbols_len = encode_utf16(chars_Arabic_Mathematical_Alphabetic_Symbols[0], chars_Arabic_Mathematical_Alphabetic_Symbols[1], buffer_Arabic_Mathematical_Alphabetic_Symbols) - 2;
	if (scan(buffer_Arabic_Mathematical_Alphabetic_Symbols, buffer_Arabic_Mathematical_Alphabetic_Symbols + buffer_Arabic_Mathematical_Alphabetic_Symbols_len, Arabic_Mathematical_Alphabetic_Symbols) != Arabic_Mathematical_Alphabetic_Symbols)
		printf("test 'Arabic_Mathematical_Alphabetic_Symbols' failed\n");
	delete[] buffer_Arabic_Mathematical_Alphabetic_Symbols;

	YYCTYPE *buffer_Mahjong_Tiles = new YYCTYPE[98];
	uint32_t buffer_Mahjong_Tiles_len = encode_utf16(chars_Mahjong_Tiles[0], chars_Mahjong_Tiles[1], buffer_Mahjong_Tiles) - 2;
	if (scan(buffer_Mahjong_Tiles, buffer_Mahjong_Tiles + buffer_Mahjong_Tiles_len, Mahjong_Tiles) != Mahjong_Tiles)
		printf("test 'Mahjong_Tiles' failed\n");
	delete[] buffer_Mahjong_Tiles;

	YYCTYPE *buffer_Domino_Tiles = new YYCTYPE[226];
	uint32_t buffer_Domino_Tiles_len = encode_utf16(chars_Domino_Tiles[0], chars_Domino_Tiles[1], buffer_Domino_Tiles) - 2;
	if (scan(buffer_Domino_Tiles, buffer_Domino_Tiles + buffer_Domino_Tiles_len, Domino_Tiles) != Domino_Tiles)
		printf("test 'Domino_Tiles' failed\n");
	delete[] buffer_Domino_Tiles;

	YYCTYPE *buffer_Playing_Cards = new YYCTYPE[194];
	uint32_t buffer_Playing_Cards_len = encode_utf16(chars_Playing_Cards[0], chars_Playing_Cards[1], buffer_Playing_Cards) - 2;
	if (scan(buffer_Playing_Cards, buffer_Playing_Cards + buffer_Playing_Cards_len, Playing_Cards) != Playing_Cards)
		printf("test 'Playing_Cards' failed\n");
	delete[] buffer_Playing_Cards;

	YYCTYPE *buffer_Enclosed_Alphanumeric_Supplement = new YYCTYPE[514];
	uint32_t buffer_Enclosed_Alphanumeric_Supplement_len = encode_utf16(chars_Enclosed_Alphanumeric_Supplement[0], chars_Enclosed_Alphanumeric_Supplement[1], buffer_Enclosed_Alphanumeric_Supplement) - 2;
	if (scan(buffer_Enclosed_Alphanumeric_Supplement, buffer_Enclosed_Alphanumeric_Supplement + buffer_Enclosed_Alphanumeric_Supplement_len, Enclosed_Alphanumeric_Supplement) != Enclosed_Alphanumeric_Supplement)
		printf("test 'Enclosed_Alphanumeric_Supplement' failed\n");
	delete[] buffer_Enclosed_Alphanumeric_Supplement;

	YYCTYPE *buffer_Enclosed_Ideographic_Supplement = new YYCTYPE[514];
	uint32_t buffer_Enclosed_Ideographic_Supplement_len = encode_utf16(chars_Enclosed_Ideographic_Supplement[0], chars_Enclosed_Ideographic_Supplement[1], buffer_Enclosed_Ideographic_Supplement) - 2;
	if (scan(buffer_Enclosed_Ideographic_Supplement, buffer_Enclosed_Ideographic_Supplement + buffer_Enclosed_Ideographic_Supplement_len, Enclosed_Ideographic_Supplement) != Enclosed_Ideographic_Supplement)
		printf("test 'Enclosed_Ideographic_Supplement' failed\n");
	delete[] buffer_Enclosed_Ideographic_Supplement;

	YYCTYPE *buffer_Miscellaneous_Symbols_and_Pictographs = new YYCTYPE[1538];
	uint32_t buffer_Miscellaneous_Symbols_and_Pictographs_len = encode_utf16(chars_Miscellaneous_Symbols_and_Pictographs[0], chars_Miscellaneous_Symbols_and_Pictographs[1], buffer_Miscellaneous_Symbols_and_Pictographs) - 2;
	if (scan(buffer_Miscellaneous_Symbols_and_Pictographs, buffer_Miscellaneous_Symbols_and_Pictographs + buffer_Miscellaneous_Symbols_and_Pictographs_len, Miscellaneous_Symbols_and_Pictographs) != Miscellaneous_Symbols_and_Pictographs)
		printf("test 'Miscellaneous_Symbols_and_Pictographs' failed\n");
	delete[] buffer_Miscellaneous_Symbols_and_Pictographs;

	YYCTYPE *buffer_Emoticons = new YYCTYPE[162];
	uint32_t buffer_Emoticons_len = encode_utf16(chars_Emoticons[0], chars_Emoticons[1], buffer_Emoticons) - 2;
	if (scan(buffer_Emoticons, buffer_Emoticons + buffer_Emoticons_len, Emoticons) != Emoticons)
		printf("test 'Emoticons' failed\n");
	delete[] buffer_Emoticons;

	YYCTYPE *buffer_Ornamental_Dingbats = new YYCTYPE[98];
	uint32_t buffer_Ornamental_Dingbats_len = encode_utf16(chars_Ornamental_Dingbats[0], chars_Ornamental_Dingbats[1], buffer_Ornamental_Dingbats) - 2;
	if (scan(buffer_Ornamental_Dingbats, buffer_Ornamental_Dingbats + buffer_Ornamental_Dingbats_len, Ornamental_Dingbats) != Ornamental_Dingbats)
		printf("test 'Ornamental_Dingbats' failed\n");
	delete[] buffer_Ornamental_Dingbats;

	YYCTYPE *buffer_Transport_and_Map_Symbols = new YYCTYPE[258];
	uint32_t buffer_Transport_and_Map_Symbols_len = encode_utf16(chars_Transport_and_Map_Symbols[0], chars_Transport_and_Map_Symbols[1], buffer_Transport_and_Map_Symbols) - 2;
	if (scan(buffer_Transport_and_Map_Symbols, buffer_Transport_and_Map_Symbols + buffer_Transport_and_Map_Symbols_len, Transport_and_Map_Symbols) != Transport_and_Map_Symbols)
		printf("test 'Transport_and_Map_Symbols' failed\n");
	delete[] buffer_Transport_and_Map_Symbols;

	YYCTYPE *buffer_Alchemical_Symbols = new YYCTYPE[258];
	uint32_t buffer_Alchemical_Symbols_len = encode_utf16(chars_Alchemical_Symbols[0], chars_Alchemical_Symbols[1], buffer_Alchemical_Symbols) - 2;
	if (scan(buffer_Alchemical_Symbols, buffer_Alchemical_Symbols + buffer_Alchemical_Symbols_len, Alchemical_Symbols) != Alchemical_Symbols)
		printf("test 'Alchemical_Symbols' failed\n");
	delete[] buffer_Alchemical_Symbols;

	YYCTYPE *buffer_Geometric_Shapes_Extended = new YYCTYPE[258];
	uint32_t buffer_Geometric_Shapes_Extended_len = encode_utf16(chars_Geometric_Shapes_Extended[0], chars_Geometric_Shapes_Extended[1], buffer_Geometric_Shapes_Extended) - 2;
	if (scan(buffer_Geometric_Shapes_Extended, buffer_Geometric_Shapes_Extended + buffer_Geometric_Shapes_Extended_len, Geometric_Shapes_Extended) != Geometric_Shapes_Extended)
		printf("test 'Geometric_Shapes_Extended' failed\n");
	delete[] buffer_Geometric_Shapes_Extended;

	YYCTYPE *buffer_Supplemental_Arrows_C = new YYCTYPE[514];
	uint32_t buffer_Supplemental_Arrows_C_len = encode_utf16(chars_Supplemental_Arrows_C[0], chars_Supplemental_Arrows_C[1], buffer_Supplemental_Arrows_C) - 2;
	if (scan(buffer_Supplemental_Arrows_C, buffer_Supplemental_Arrows_C + buffer_Supplemental_Arrows_C_len, Supplemental_Arrows_C) != Supplemental_Arrows_C)
		printf("test 'Supplemental_Arrows_C' failed\n");
	delete[] buffer_Supplemental_Arrows_C;

	YYCTYPE *buffer_Supplemental_Symbols_and_Pictographs = new YYCTYPE[514];
	uint32_t buffer_Supplemental_Symbols_and_Pictographs_len = encode_utf16(chars_Supplemental_Symbols_and_Pictographs[0], chars_Supplemental_Symbols_and_Pictographs[1], buffer_Supplemental_Symbols_and_Pictographs) - 2;
	if (scan(buffer_Supplemental_Symbols_and_Pictographs, buffer_Supplemental_Symbols_and_Pictographs + buffer_Supplemental_Symbols_and_Pictographs_len, Supplemental_Symbols_and_Pictographs) != Supplemental_Symbols_and_Pictographs)
		printf("test 'Supplemental_Symbols_and_Pictographs' failed\n");
	delete[] buffer_Supplemental_Symbols_and_Pictographs;

	YYCTYPE *buffer_Chess_Symbols = new YYCTYPE[226];
	uint32_t buffer_Chess_Symbols_len = encode_utf16(chars_Chess_Symbols[0], chars_Chess_Symbols[1], buffer_Chess_Symbols) - 2;
	if (scan(buffer_Chess_Symbols, buffer_Chess_Symbols + buffer_Chess_Symbols_len, Chess_Symbols) != Chess_Symbols)
		printf("test 'Chess_Symbols' failed\n");
	delete[] buffer_Chess_Symbols;

	YYCTYPE *buffer_Symbols_and_Pictographs_Extended_A = new YYCTYPE[290];
	uint32_t buffer_Symbols_and_Pictographs_Extended_A_len = encode_utf16(chars_Symbols_and_Pictographs_Extended_A[0], chars_Symbols_and_Pictographs_Extended_A[1], buffer_Symbols_and_Pictographs_Extended_A) - 2;
	if (scan(buffer_Symbols_and_Pictographs_Extended_A, buffer_Symbols_and_Pictographs_Extended_A + buffer_Symbols_and_Pictographs_Extended_A_len, Symbols_and_Pictographs_Extended_A) != Symbols_and_Pictographs_Extended_A)
		printf("test 'Symbols_and_Pictographs_Extended_A' failed\n");
	delete[] buffer_Symbols_and_Pictographs_Extended_A;

	YYCTYPE *buffer_Symbols_for_Legacy_Computing = new YYCTYPE[514];
	uint32_t buffer_Symbols_for_Legacy_Computing_len = encode_utf16(chars_Symbols_for_Legacy_Computing[0], chars_Symbols_for_Legacy_Computing[1], buffer_Symbols_for_Legacy_Computing) - 2;
	if (scan(buffer_Symbols_for_Legacy_Computing, buffer_Symbols_for_Legacy_Computing + buffer_Symbols_for_Legacy_Computing_len, Symbols_for_Legacy_Computing) != Symbols_for_Legacy_Computing)
		printf("test 'Symbols_for_Legacy_Computing' failed\n");
	delete[] buffer_Symbols_for_Legacy_Computing;

	YYCTYPE *buffer_CJK_Unified_Ideographs_Extension_B = new YYCTYPE[85442];
	uint32_t buffer_CJK_Unified_Ideographs_Extension_B_len = encode_utf16(chars_CJK_Unified_Ideographs_Extension_B[0], chars_CJK_Unified_Ideographs_Extension_B[1], buffer_CJK_Unified_Ideographs_Extension_B) - 2;
	if (scan(buffer_CJK_Unified_Ideographs_Extension_B, buffer_CJK_Unified_Ideographs_Extension_B + buffer_CJK_Unified_Ideographs_Extension_B_len, CJK_Unified_Ideographs_Extension_B) != CJK_Unified_Ideographs_Extension_B)
		printf("test 'CJK_Unified_Ideographs_Extension_B' failed\n");
	delete[] buffer_CJK_Unified_Ideographs_Extension_B;

	YYCTYPE *buffer_CJK_Unified_Ideographs_Extension_C = new YYCTYPE[8322];
	uint32_t buffer_CJK_Unified_Ideographs_Extension_C_len = encode_utf16(chars_CJK_Unified_Ideographs_Extension_C[0], chars_CJK_Unified_Ideographs_Extension_C[1], buffer_CJK_Unified_Ideographs_Extension_C) - 2;
	if (scan(buffer_CJK_Unified_Ideographs_Extension_C, buffer_CJK_Unified_Ideographs_Extension_C + buffer_CJK_Unified_Ideographs_Extension_C_len, CJK_Unified_Ideographs_Extension_C) != CJK_Unified_Ideographs_Extension_C)
		printf("test 'CJK_Unified_Ideographs_Extension_C' failed\n");
	delete[] buffer_CJK_Unified_Ideographs_Extension_C;

	YYCTYPE *buffer_CJK_Unified_Ideographs_Extension_D = new YYCTYPE[450];
	uint32_t buffer_CJK_Unified_Ideographs_Extension_D_len = encode_utf16(chars_CJK_Unified_Ideographs_Extension_D[0], chars_CJK_Unified_Ideographs_Extension_D[1], buffer_CJK_Unified_Ideographs_Extension_D) - 2;
	if (scan(buffer_CJK_Unified_Ideographs_Extension_D, buffer_CJK_Unified_Ideographs_Extension_D + buffer_CJK_Unified_Ideographs_Extension_D_len, CJK_Unified_Ideographs_Extension_D) != CJK_Unified_Ideographs_Extension_D)
		printf("test 'CJK_Unified_Ideographs_Extension_D' failed\n");
	delete[] buffer_CJK_Unified_Ideographs_Extension_D;

	YYCTYPE *buffer_CJK_Unified_Ideographs_Extension_E = new YYCTYPE[11554];
	uint32_t buffer_CJK_Unified_Ideographs_Extension_E_len = encode_utf16(chars_CJK_Unified_Ideographs_Extension_E[0], chars_CJK_Unified_Ideographs_Extension_E[1], buffer_CJK_Unified_Ideographs_Extension_E) - 2;
	if (scan(buffer_CJK_Unified_Ideographs_Extension_E, buffer_CJK_Unified_Ideographs_Extension_E + buffer_CJK_Unified_Ideographs_Extension_E_len, CJK_Unified_Ideographs_Extension_E) != CJK_Unified_Ideographs_Extension_E)
		printf("test 'CJK_Unified_Ideographs_Extension_E' failed\n");
	delete[] buffer_CJK_Unified_Ideographs_Extension_E;

	YYCTYPE *buffer_CJK_Unified_Ideographs_Extension_F = new YYCTYPE[14978];
	uint32_t buffer_CJK_Unified_Ideographs_Extension_F_len = encode_utf16(chars_CJK_Unified_Ideographs_Extension_F[0], chars_CJK_Unified_Ideographs_Extension_F[1], buffer_CJK_Unified_Ideographs_Extension_F) - 2;
	if (scan(buffer_CJK_Unified_Ideographs_Extension_F, buffer_CJK_Unified_Ideographs_Extension_F + buffer_CJK_Unified_Ideographs_Extension_F_len, CJK_Unified_Ideographs_Extension_F) != CJK_Unified_Ideographs_Extension_F)
		printf("test 'CJK_Unified_Ideographs_Extension_F' failed\n");
	delete[] buffer_CJK_Unified_Ideographs_Extension_F;

	YYCTYPE *buffer_CJK_Unified_Ideographs_Extension_I = new YYCTYPE[1250];
	uint32_t buffer_CJK_Unified_Ideographs_Extension_I_len = encode_utf16(chars_CJK_Unified_Ideographs_Extension_I[0], chars_CJK_Unified_Ideographs_Extension_I[1], buffer_CJK_Unified_Ideographs_Extension_I) - 2;
	if (scan(buffer_CJK_Unified_Ideographs_Extension_I, buffer_CJK_Unified_Ideographs_Extension_I + buffer_CJK_Unified_Ideographs_Extension_I_len, CJK_Unified_Ideographs_Extension_I) != CJK_Unified_Ideographs_Extension_I)
		printf("test 'CJK_Unified_Ideographs_Extension_I' failed\n");
	delete[] buffer_CJK_Unified_Ideographs_Extension_I;

	YYCTYPE *buffer_CJK_Compatibility_Ideographs_Supplement = new YYCTYPE[1090];
	uint32_t buffer_CJK_Compatibility_Ideographs_Supplement_len = encode_utf16(chars_CJK_Compatibility_Ideographs_Supplement[0], chars_CJK_Compatibility_Ideographs_Supplement[1], buffer_CJK_Compatibility_Ideographs_Supplement) - 2;
	if (scan(buffer_CJK_Compatibility_Ideographs_Supplement, buffer_CJK_Compatibility_Ideographs_Supplement + buffer_CJK_Compatibility_Ideographs_Supplement_len, CJK_Compatibility_Ideographs_Supplement) != CJK_Compatibility_Ideographs_Supplement)
		printf("test 'CJK_Compatibility_Ideographs_Supplement' failed\n");
	delete[] buffer_CJK_Compatibility_Ideographs_Supplement;

	YYCTYPE *buffer_CJK_Unified_Ideographs_Extension_G = new YYCTYPE[9890];
	uint32_t buffer_CJK_Unified_Ideographs_Extension_G_len = encode_utf16(chars_CJK_Unified_Ideographs_Extension_G[0], chars_CJK_Unified_Ideographs_Extension_G[1], buffer_CJK_Unified_Ideographs_Extension_G) - 2;
	if (scan(buffer_CJK_Unified_Ideographs_Extension_G, buffer_CJK_Unified_Ideographs_Extension_G + buffer_CJK_Unified_Ideographs_Extension_G_len, CJK_Unified_Ideographs_Extension_G) != CJK_Unified_Ideographs_Extension_G)
		printf("test 'CJK_Unified_Ideographs_Extension_G' failed\n");
	delete[] buffer_CJK_Unified_Ideographs_Extension_G;

	YYCTYPE *buffer_CJK_Unified_Ideographs_Extension_H = new YYCTYPE[8386];
	uint32_t buffer_CJK_Unified_Ideographs_Extension_H_len = encode_utf16(chars_CJK_Unified_Ideographs_Extension_H[0], chars_CJK_Unified_Ideographs_Extension_H[1], buffer_CJK_Unified_Ideographs_Extension_H) - 2;
	if (scan(buffer_CJK_Unified_Ideographs_Extension_H, buffer_CJK_Unified_Ideographs_Extension_H + buffer_CJK_Unified_Ideographs_Extension_H_len, CJK_Unified_Ideographs_Extension_H) != CJK_Unified_Ideographs_Extension_H)
		printf("test 'CJK_Unified_Ideographs_Extension_H' failed\n");
	delete[] buffer_CJK_Unified_Ideographs_Extension_H;

	YYCTYPE *buffer_CJK_Unified_Ideographs_Extension_J = new YYCTYPE[8610];
	uint32_t buffer_CJK_Unified_Ideographs_Extension_J_len = encode_utf16(chars_CJK_Unified_Ideographs_Extension_J[0], chars_CJK_Unified_Ideographs_Extension_J[1], buffer_CJK_Unified_Ideographs_Extension_J) - 2;
	if (scan(buffer_CJK_Unified_Ideographs_Extension_J, buffer_CJK_Unified_Ideographs_Extension_J + buffer_CJK_Unified_Ideographs_Extension_J_len, CJK_Unified_Ideographs_Extension_J) != CJK_Unified_Ideographs_Extension_J)
		printf("test 'CJK_Unified_Ideographs_Extension_J' failed\n");
	delete[] buffer_CJK_Unified_Ideographs_Extension_J;

	YYCTYPE *buffer_Tags = new YYCTYPE[258];
	uint32_t buffer_Tags_len = encode_utf16(chars_Tags[0], chars_Tags[1], buffer_Tags) - 2;
	if (scan(buffer_Tags, buffer_Tags + buffer_Tags_len, Tags) != Tags)
		printf("test 'Tags' failed\n");
	delete[] buffer_Tags;

	YYCTYPE *buffer_Variation_Selectors_Supplement = new YYCTYPE[482];
	uint32_t buffer_Variation_Selectors_Supplement_len = encode_utf16(chars_Variation_Selectors_Supplement[0], chars_Variation_Selectors_Supplement[1], buffer_Variation_Selectors_Supplement) - 2;
	if (scan(buffer_Variation_Selectors_Supplement, buffer_Variation_Selectors_Supplement + buffer_Variation_Selectors_Supplement_len, Variation_Selectors_Supplement) != Variation_Selectors_Supplement)
		printf("test 'Variation_Selectors_Supplement' failed\n");
	delete[] buffer_Variation_Selectors_Supplement;

	YYCTYPE *buffer_Supplementary_Private_Use_Area_A = new YYCTYPE[131074];
	uint32_t buffer_Supplementary_Private_Use_Area_A_len = encode_utf16(chars_Supplementary_Private_Use_Area_A[0], chars_Supplementary_Private_Use_Area_A[1], buffer_Supplementary_Private_Use_Area_A) - 2;
	if (scan(buffer_Supplementary_Private_Use_Area_A, buffer_Supplementary_Private_Use_Area_A + buffer_Supplementary_Private_Use_Area_A_len, Supplementary_Private_Use_Area_A) != Supplementary_Private_Use_Area_A)
		printf("test 'Supplementary_Private_Use_Area_A' failed\n");
	delete[] buffer_Supplementary_Private_Use_Area_A;

	YYCTYPE *buffer_Supplementary_Private_Use_Area_B = new YYCTYPE[131074];
	uint32_t buffer_Supplementary_Private_Use_Area_B_len = encode_utf16(chars_Supplementary_Private_Use_Area_B[0], chars_Supplementary_Private_Use_Area_B[1], buffer_Supplementary_Private_Use_Area_B) - 2;
	if (scan(buffer_Supplementary_Private_Use_Area_B, buffer_Supplementary_Private_Use_Area_B + buffer_Supplementary_Private_Use_Area_B_len, Supplementary_Private_Use_Area_B) != Supplementary_Private_Use_Area_B)
		printf("test 'Supplementary_Private_Use_Area_B' failed\n");
	delete[] buffer_Supplementary_Private_Use_Area_B;

	return 0;
}
