From 80b93ae98a5796762f518e8f88797a888c8f7dd1 Mon Sep 17 00:00:00 2001 From: Makoto Kato Date: Tue, 17 Oct 2023 13:58:19 +0900 Subject: [PATCH 1/2] Support Indic_Syllabic_Category in icu_properties. --- components/properties/data/data/macros.rs | 20 + .../macros/propnames_from_insc_v1.data.rs | 32 + .../propnames_to_long_linear_insc_v1.data.rs | 27 + .../propnames_to_short_linear_insc_v1.data.rs | 27 + .../data/data/macros/props_insc_v1.data.rs | 27 + components/properties/data/data/mod.rs | 8 + components/properties/src/lib.rs | 2 +- components/properties/src/maps.rs | 25 + components/properties/src/props.rs | 119 + components/properties/src/provider.rs | 14 + components/properties/src/trievalue.rs | 14 +- provider/datagen/src/registry.rs | 6 + .../icuexport/uprops/enum_codepointtrie.rs | 9 + .../data/icuexport/uprops/small/InSC.toml | 1490 +++++ .../data/json/propnames/from/InSC@1/und.json | 40 + .../propnames/to/long/linear/InSC@1/und.json | 40 + .../propnames/to/short/linear/InSC@1/und.json | 40 + .../tests/data/json/props/InSC@1/und.json | 5079 +++++++++++++++++ .../tests/data/postcard/fingerprints.csv | 4 + tools/testdata-scripts/globs.rs.data | 1 + 20 files changed, 7022 insertions(+), 2 deletions(-) create mode 100644 components/properties/data/data/macros/propnames_from_insc_v1.data.rs create mode 100644 components/properties/data/data/macros/propnames_to_long_linear_insc_v1.data.rs create mode 100644 components/properties/data/data/macros/propnames_to_short_linear_insc_v1.data.rs create mode 100644 components/properties/data/data/macros/props_insc_v1.data.rs create mode 100644 provider/datagen/tests/data/icuexport/uprops/small/InSC.toml create mode 100644 provider/datagen/tests/data/json/propnames/from/InSC@1/und.json create mode 100644 provider/datagen/tests/data/json/propnames/to/long/linear/InSC@1/und.json create mode 100644 provider/datagen/tests/data/json/propnames/to/short/linear/InSC@1/und.json create mode 100644 provider/datagen/tests/data/json/props/InSC@1/und.json diff --git a/components/properties/data/data/macros.rs b/components/properties/data/data/macros.rs index f2ebbcd218d..591ac93daf8 100644 --- a/components/properties/data/data/macros.rs +++ b/components/properties/data/data/macros.rs @@ -30,6 +30,11 @@ mod propnames_from_gcb_v1; #[doc(inline)] pub use __impl_propnames_from_gcb_v1 as impl_propnames_from_gcb_v1; #[macro_use] +#[path = "macros/propnames_from_insc_v1.data.rs"] +mod propnames_from_insc_v1; +#[doc(inline)] +pub use __impl_propnames_from_insc_v1 as impl_propnames_from_insc_v1; +#[macro_use] #[path = "macros/propnames_from_sb_v1.data.rs"] mod propnames_from_sb_v1; #[doc(inline)] @@ -80,6 +85,11 @@ mod propnames_to_long_linear_gcb_v1; #[doc(inline)] pub use __impl_propnames_to_long_linear_gcb_v1 as impl_propnames_to_long_linear_gcb_v1; #[macro_use] +#[path = "macros/propnames_to_long_linear_insc_v1.data.rs"] +mod propnames_to_long_linear_insc_v1; +#[doc(inline)] +pub use __impl_propnames_to_long_linear_insc_v1 as impl_propnames_to_long_linear_insc_v1; +#[macro_use] #[path = "macros/propnames_to_long_linear_sb_v1.data.rs"] mod propnames_to_long_linear_sb_v1; #[doc(inline)] @@ -125,6 +135,11 @@ mod propnames_to_short_linear_gcb_v1; #[doc(inline)] pub use __impl_propnames_to_short_linear_gcb_v1 as impl_propnames_to_short_linear_gcb_v1; #[macro_use] +#[path = "macros/propnames_to_short_linear_insc_v1.data.rs"] +mod propnames_to_short_linear_insc_v1; +#[doc(inline)] +pub use __impl_propnames_to_short_linear_insc_v1 as impl_propnames_to_short_linear_insc_v1; +#[macro_use] #[path = "macros/propnames_to_short_linear_sb_v1.data.rs"] mod propnames_to_short_linear_sb_v1; #[doc(inline)] @@ -345,6 +360,11 @@ mod props_ideo_v1; #[doc(inline)] pub use __impl_props_ideo_v1 as impl_props_ideo_v1; #[macro_use] +#[path = "macros/props_insc_v1.data.rs"] +mod props_insc_v1; +#[doc(inline)] +pub use __impl_props_insc_v1 as impl_props_insc_v1; +#[macro_use] #[path = "macros/props_join_c_v1.data.rs"] mod props_join_c_v1; #[doc(inline)] diff --git a/components/properties/data/data/macros/propnames_from_insc_v1.data.rs b/components/properties/data/data/macros/propnames_from_insc_v1.data.rs new file mode 100644 index 00000000000..cb1acffc82d --- /dev/null +++ b/components/properties/data/data/macros/propnames_from_insc_v1.data.rs @@ -0,0 +1,32 @@ +// @generated +/// Implement `DataProvider` on the given struct using the data +/// hardcoded in this file. This allows the struct to be used with +/// `icu`'s `_unstable` constructors. +#[doc(hidden)] +#[macro_export] +macro_rules! __impl_propnames_from_insc_v1 { + ($ provider : ty) => { + #[clippy::msrv = "1.67"] + const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; + #[clippy::msrv = "1.67"] + impl $provider { + #[doc(hidden)] + pub const SINGLETON_PROPNAMES_FROM_INSC_V1: &'static ::Yokeable = &icu::properties::provider::names::PropertyValueNameToEnumMapV1 { + map: unsafe { + #[allow(unused_unsafe)] + zerovec::ZeroMap::from_parts_unchecked(unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"$\0\0\0\0\0\x08\0\r\0\"\x003\0<\0J\0Y\0n\0\x89\0\x99\0\xA9\0\xBE\0\xD7\0\xE9\0\xFC\0\x16\x01,\x01;\x01L\x01R\x01b\x01l\x01q\x01w\x01\x84\x01\x89\x01\x94\x01\xA4\x01\xB5\x01\xC0\x01\xC9\x01\xCF\x01\xD6\x01\xDB\x01\xEA\x01AvagrahaBinduBrahmi_Joining_NumberCantillation_MarkConsonantConsonant_DeadConsonant_FinalConsonant_Head_LetterConsonant_Initial_PostfixedConsonant_KillerConsonant_MedialConsonant_PlaceholderConsonant_Preceding_RephaConsonant_PrefixedConsonant_SubjoinedConsonant_Succeeding_RephaConsonant_With_StackerGemination_MarkInvisible_StackerJoinerModifying_LetterNon_JoinerNuktaNumberNumber_JoinerOtherPure_KillerRegister_ShifterSyllable_ModifierTone_LetterTone_MarkViramaVisargaVowelVowel_DependentVowel_Independent") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\x01\0\x02\0\x03\0\x04\0\x05\0\x06\0\x07\0\x08\0\t\0\n\0\x0B\0\x0C\0\r\0\x0E\0\x0F\0\x10\0\x11\0\x12\0\x13\0\x14\0\x15\0\x16\0\x17\0\x18\0\x19\0\0\0\x1A\0\x1B\0\x1C\0\x1D\0\x1E\0\x1F\0 \0!\0\"\0#\0") }) + }, + }; + } + #[clippy::msrv = "1.67"] + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + if req.locale.is_empty() { + Ok(icu_provider::DataResponse { payload: Some(icu_provider::DataPayload::from_static_ref(Self::SINGLETON_PROPNAMES_FROM_INSC_V1)), metadata: Default::default() }) + } else { + Err(icu_provider::DataErrorKind::ExtraneousLocale.with_req(::KEY, req)) + } + } + } + }; +} diff --git a/components/properties/data/data/macros/propnames_to_long_linear_insc_v1.data.rs b/components/properties/data/data/macros/propnames_to_long_linear_insc_v1.data.rs new file mode 100644 index 00000000000..758ba49aa38 --- /dev/null +++ b/components/properties/data/data/macros/propnames_to_long_linear_insc_v1.data.rs @@ -0,0 +1,27 @@ +// @generated +/// Implement `DataProvider` on the given struct using the data +/// hardcoded in this file. This allows the struct to be used with +/// `icu`'s `_unstable` constructors. +#[doc(hidden)] +#[macro_export] +macro_rules! __impl_propnames_to_long_linear_insc_v1 { + ($ provider : ty) => { + #[clippy::msrv = "1.67"] + const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; + #[clippy::msrv = "1.67"] + impl $provider { + #[doc(hidden)] + pub const SINGLETON_PROPNAMES_TO_LONG_LINEAR_INSC_V1: &'static ::Yokeable = &icu::properties::provider::names::PropertyEnumToValueNameLinearMapV1 { map: unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"$\0\0\0\0\0\x05\0\r\0\x12\0'\08\0A\0O\0^\0s\0\x8E\0\x9E\0\xAE\0\xC3\0\xDC\0\xEE\0\x01\x01\x1B\x011\x01@\x01Q\x01W\x01g\x01q\x01v\x01|\x01\x89\x01\x94\x01\xA4\x01\xB5\x01\xC0\x01\xC9\x01\xCF\x01\xD6\x01\xDB\x01\xEA\x01OtherAvagrahaBinduBrahmi_Joining_NumberCantillation_MarkConsonantConsonant_DeadConsonant_FinalConsonant_Head_LetterConsonant_Initial_PostfixedConsonant_KillerConsonant_MedialConsonant_PlaceholderConsonant_Preceding_RephaConsonant_PrefixedConsonant_SubjoinedConsonant_Succeeding_RephaConsonant_With_StackerGemination_MarkInvisible_StackerJoinerModifying_LetterNon_JoinerNuktaNumberNumber_JoinerPure_KillerRegister_ShifterSyllable_ModifierTone_LetterTone_MarkViramaVisargaVowelVowel_DependentVowel_Independent") } }; + } + #[clippy::msrv = "1.67"] + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + if req.locale.is_empty() { + Ok(icu_provider::DataResponse { payload: Some(icu_provider::DataPayload::from_static_ref(Self::SINGLETON_PROPNAMES_TO_LONG_LINEAR_INSC_V1)), metadata: Default::default() }) + } else { + Err(icu_provider::DataErrorKind::ExtraneousLocale.with_req(::KEY, req)) + } + } + } + }; +} diff --git a/components/properties/data/data/macros/propnames_to_short_linear_insc_v1.data.rs b/components/properties/data/data/macros/propnames_to_short_linear_insc_v1.data.rs new file mode 100644 index 00000000000..11d3e7b4ab5 --- /dev/null +++ b/components/properties/data/data/macros/propnames_to_short_linear_insc_v1.data.rs @@ -0,0 +1,27 @@ +// @generated +/// Implement `DataProvider` on the given struct using the data +/// hardcoded in this file. This allows the struct to be used with +/// `icu`'s `_unstable` constructors. +#[doc(hidden)] +#[macro_export] +macro_rules! __impl_propnames_to_short_linear_insc_v1 { + ($ provider : ty) => { + #[clippy::msrv = "1.67"] + const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; + #[clippy::msrv = "1.67"] + impl $provider { + #[doc(hidden)] + pub const SINGLETON_PROPNAMES_TO_SHORT_LINEAR_INSC_V1: &'static ::Yokeable = &icu::properties::provider::names::PropertyEnumToValueNameLinearMapV1 { map: unsafe { zerovec::VarZeroVec::from_bytes_unchecked(b"$\0\0\0\0\0\x05\0\r\0\x12\0'\08\0A\0O\0^\0s\0\x8E\0\x9E\0\xAE\0\xC3\0\xDC\0\xEE\0\x01\x01\x1B\x011\x01@\x01Q\x01W\x01g\x01q\x01v\x01|\x01\x89\x01\x94\x01\xA4\x01\xB5\x01\xC0\x01\xC9\x01\xCF\x01\xD6\x01\xDB\x01\xEA\x01OtherAvagrahaBinduBrahmi_Joining_NumberCantillation_MarkConsonantConsonant_DeadConsonant_FinalConsonant_Head_LetterConsonant_Initial_PostfixedConsonant_KillerConsonant_MedialConsonant_PlaceholderConsonant_Preceding_RephaConsonant_PrefixedConsonant_SubjoinedConsonant_Succeeding_RephaConsonant_With_StackerGemination_MarkInvisible_StackerJoinerModifying_LetterNon_JoinerNuktaNumberNumber_JoinerPure_KillerRegister_ShifterSyllable_ModifierTone_LetterTone_MarkViramaVisargaVowelVowel_DependentVowel_Independent") } }; + } + #[clippy::msrv = "1.67"] + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + if req.locale.is_empty() { + Ok(icu_provider::DataResponse { payload: Some(icu_provider::DataPayload::from_static_ref(Self::SINGLETON_PROPNAMES_TO_SHORT_LINEAR_INSC_V1)), metadata: Default::default() }) + } else { + Err(icu_provider::DataErrorKind::ExtraneousLocale.with_req(::KEY, req)) + } + } + } + }; +} diff --git a/components/properties/data/data/macros/props_insc_v1.data.rs b/components/properties/data/data/macros/props_insc_v1.data.rs new file mode 100644 index 00000000000..68b82a2edfc --- /dev/null +++ b/components/properties/data/data/macros/props_insc_v1.data.rs @@ -0,0 +1,27 @@ +// @generated +/// Implement `DataProvider` on the given struct using the data +/// hardcoded in this file. This allows the struct to be used with +/// `icu`'s `_unstable` constructors. +#[doc(hidden)] +#[macro_export] +macro_rules! __impl_props_insc_v1 { + ($ provider : ty) => { + #[clippy::msrv = "1.67"] + const _: () = <$provider>::MUST_USE_MAKE_PROVIDER_MACRO; + #[clippy::msrv = "1.67"] + impl $provider { + #[doc(hidden)] + pub const SINGLETON_PROPS_INSC_V1: &'static ::Yokeable = &icu::properties::provider::PropertyCodePointMapV1::CodePointTrie(icu::collections::codepointtrie::CodePointTrie::from_parts(icu::collections::codepointtrie::CodePointTrieHeader { high_start: 73728u32, shifted12_high_start: 18u16, index3_null_offset: 4u16, data_null_offset: 64u32, null_value: 0u32, trie_type: icu::collections::codepointtrie::TrieType::Small }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\0\0@\0`\0\x94\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0\xD4\0\x12\x01R\x01\x90\x01\xCF\x01\r\x02L\x02\x8A\x02\xCA\x02\x08\x03F\x03\x84\x03\xC4\x03\x02\x04B\x04\x80\x04\xC0\x04\xFE\x04>\x05~\x05\xBD\x05\xFD\x05<\x06|\x06\x9C\x06\xDC\x06\x1C\x07Y\x07\xFF\x02\x12\x03\x1E\x03\x12\x039\x03\0\0\x10\0 \x000\0@\0P\0`\0p\0`\0p\0\x80\0\x90\0\x94\0\xA4\0\xB4\0\xC4\0@\0P\0`\0p\0@\0P\0`\0p\0@\0P\0`\0p\0@\0P\0`\0p\0@\0P\0`\0p\0@\0P\0`\0p\0@\0P\0`\0p\0@\0P\0`\0p\0\xD4\0\xE4\0\xF4\0\x04\x01\x12\x01\"\x012\x01B\x01R\x01b\x01r\x01\x82\x01\x90\x01\xA0\x01\xB0\x01\xC0\x01\xCF\x01\xDF\x01\xEF\x01\xFF\x01\r\x02\x1D\x02-\x02=\x02L\x02\\\x02l\x02|\x02\x8A\x02\x9A\x02\xAA\x02\xBA\x02\xCA\x02\xDA\x02\xEA\x02\xFA\x02\x08\x03\x18\x03(\x038\x03F\x03V\x03f\x03v\x03\x84\x03\x94\x03\xA4\x03\xB4\x03\xC4\x03\xD4\x03\xE4\x03\xF4\x03\x02\x04\x12\x04\"\x042\x04B\x04R\x04b\x04r\x04\x80\x04\x90\x04\xA0\x04\xB0\x04\xC0\x04\xD0\x04\xE0\x04\xF0\x04\xFE\x04\x0E\x05\x1E\x05.\x05>\x05N\x05^\x05n\x05~\x05\x8E\x05\x9E\x05\xAE\x05\xBD\x05\xCD\x05\xDD\x05\xED\x05\xFD\x05\r\x06\x1D\x06-\x06<\x06L\x06\\\x06l\x06|\x06\x8C\x06\x9C\x06\xAC\x06\x9C\x06\xAC\x06\xBC\x06\xCC\x06\xDC\x06\xEC\x06\xFC\x06\x0C\x07\x1C\x07,\x07<\x07L\x07Y\x07i\x07y\x07\x89\x07\xE9\0\xE9\0\x99\x07\xA4\x07\xB4\x07\xC4\x07\xD3\x07\xE2\x07\xF0\x07\0\x08@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0\xE6\0\x10\x08\xE6\0\x1F\x08\xE6\0/\x08?\x08N\x08\xE9\0\xE9\0^\x08j\x08t\x08\x83\x080\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0\x93\x08l\x01\xA3\x08\xB3\x08-\x02\xE9\0\xC3\x08\xD3\x08\xE9\0\xE9\0t\x03\xE3\x08\xF2\x08\x02\t@\0@\0\xE9\0\x12\t\xE9\0\xE9\0\"\t/\t?\tK\t0\x000\0@\0@\0@\0@\0@\0@\0[\t\xE6\0\xE9\0k\tw\t0\0@\0@\0\x87\t\xE9\0\x96\t\xA6\t\xE9\0\xE9\0\xB6\t\xC6\t\xE9\0\xE9\0\xD6\t\xE3\t\xF3\t@\0@\0@\0@\0@\0@\0@\0@\0\x03\n\x11\n\x1F\n@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0*\n6\nF\n@\0@\0@\0@\0@\0[\x07T\n@\0@\0@\0@\0@\0@\0d\n@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0t\0@\0@\0@\0t\n\xE9\0\x81\n@\0\xE9\0\x91\n\x9F\n\xAE\n\xD6\0\xE7\0\xE9\0\xBE\n\xCA\n0\0\xDA\n\xE8\n\xF8\n\xE9\0\x06\x0B\xE9\0\x16\x0B%\x0B@\0@\x005\x0B\xE9\0\xE9\0D\x0B\x97\x020\0T\x0Bd\x0B\xE3\0\xE9\0\x9A\x08t\x0B\x84\x0B0\0\xE9\0\x93\x0B\xE9\0\xE9\0\xE9\0\xA3\x0B\xB3\x0B@\0\xC3\x0B\xD3\x0B@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0\xE3\x0B\xF3\x0B\0\x0C0\0\x10\x0C \x0C\xE9\0*\x0C1\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0:\x0C\xE6\0\xE9\0\x9B\x08J\x0CX\x0Cb\x0Cr\x0C\x82\x0C\xE9\0\xE9\0\x92\x0C\x99\x03@\0@\0@\0\xA2\x0C\xE9\0\x9C\x08\xB2\x0C\xC2\x0C\xD2\x0C\xE9\0\xDF\x0C\xD5\0\xE8\0\xE9\0\xEF\x0C\xFF\x0C0\0\xBB\x065\0\xE1\0\xEB\x03\x97\x08\x0F\r\x1F\r@\0@\0@\0/\rm\x01>\r\xDF\0\xE9\0N\r^\r0\0n\rb\x01r\x01~\r\x08\x03\x8E\r\x9E\r\x0E\n@\0@\0@\0@\0@\0@\0@\0@\0\xDB\0\xE9\0\xE9\0\xAE\r\xBC\r\xCC\r\xDC\r@\0\xEB\r\xE9\0\xE9\0@\t\xFB\r0\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0\xDB\0\xE9\0\xFF\0\x0B\x0E\x1B\x0E#\x0E@\0@\0\xDB\0\xE9\0\xE9\x003\x0EC\x0E0\0@\0@\0\xDF\0\xE9\0S\x0E`\x0E0\0@\0@\0@\0\xE9\0p\x0E\x80\x0E\x90\x0E\xA0\x0E@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0\xDF\0\xE9\0\x97\x08\xB0\x0E@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0\xC0\x0E\xCC\x0E\xE9\0\xDC\x0E\xEC\x0E0\0@\0@\0@\0@\0\xFC\x0E\xE9\0\xE9\0\x0B\x0F\x1B\x0F@\0+\x0F\xE9\0\xE9\08\x0FH\x0FX\x0F\xE9\0\xE9\0d\x0Fn\x0F@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0~\x0F\xE9\0\xFF\0\x8E\x0F\x9E\x0F\xBC\x06\xAE\x0FV\x05\xE9\0\xBC\x0F,\x07\xCC\x0F@\0@\0@\0@\0\xDC\x0F\xE9\0\xE9\0\xEB\x0F\xFB\x0F0\0\x0B\x10\xE9\0\x17\x10$\x100\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0\xE9\x004\x10D\x10S\x10\xE9\0_\x10n\x100\0@\0@\0@\0@\0@\0@\0@\0@\0@\0@\0E\0U\0U\0U\0e\0\x85\0\xA5\0\xC5\0\xE5\0\x04\0\x04\0\xF5\0\x14\x014\x01T\x01\x04\0t\x01\x04\0\x84\x01\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\xA4\x01\xC4\x01\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\x04\0\xE4\x01\x04\0\x04\0\x04\x02$\x02D\x02d\x02\x84\x02\xA4\x02\xC4\x02\xDF\x02") }, unsafe { zerovec::ZeroVec::from_bytes_unchecked(b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x0C\0\0\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x0C\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1C\x1C\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x0C\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x02\x02 #################\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\"\"\x17\x01\"\"\"\"\"\"\"\"\"\"\"\"\"\x1F\"\"\0\x04\x04\0\0\"\"\"\x05\x05\x05\x05\x05\x05\x05\x05##\"\"\0\0\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\0\0######\x05\x05\x05\x05\x05\x05\x05\x05\x0C\x02\x02 \0########\0\0##\0\0##\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\0\x05\x05\x05\x05\x05\x05\x05\0\x05\0\0\0\x05\x05\x05\x05\0\0\x17\x01\"\"\"\"\"\0\0\"\"\0\0\"\"\x1F\x06\0\0\0\0\0\0\0\0\"\0\0\0\0\x05\x05\0\x05##\"\"\0\0\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x05\x05\0\0\0\0\0\0\0\0\0\0\x02\0\x1C\0\x02\x02 \0######\0\0\0\0##\0\0##\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\0\x05\x05\x05\x05\x05\x05\x05\0\x05\x05\0\x05\x05\0\x05\x05\0\0\x17\0\"\"\"\0\0\0\0\"\"\0\0\"\"\x1F\0\0\0\x04\0\0\0\0\0\0\0\x05\x05\x05\x05\0\x05\0\0\0\0\0\0\0\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x02\x12\x0C\x0C\0\x0B\0\0\0\0\0\0\0\0\0\0\x02\x02 \0#########\0###\0##\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\0\x05\x05\x05\x05\x05\x05\x05\0\x05\x05\0\x05\x05\x05\x05\x05\0\0\x17\x01\"\"\"\"\"\"\0\"\"\"\0\"\"\x1F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0##\"\"\0\0\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\0\0\0\0\0\0\0\0\0\x05\x04\x12\x04\x17\x17\x17\0\x02\x02 \0########\0\0##\0\0##\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\0\x05\x05\x05\x05\x05\x05\x05\0\x05\x05\0\x05\x05\x05\x05\x05\0\0\x17\x01\"\"\"\"\"\0\0\"\"\0\0\"\"\x1F\0\0\0\0\0\0\0\"\"\"\0\0\0\0\x05\x05\0\x05##\"\"\0\0\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\0\x05\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x15\0######\0\0\0###\0###\x05\0\0\0\x05\x05\0\x05\0\x05\x05\0\0\0\x05\x05\0\0\0\x05\x05\x05\0\0\0\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\0\0\0\0\"\"\"\0\0\0\"\"\"\0\"\"\"\x1F\0\0\0\0\0\0\0\0\0\"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x02\x02 \x02########\0###\0###\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\0\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\0\0\x17\x01\"\"\"\"\"\0\"\"\"\0\"\"\"\x1F\0\0\0\0\0\0\0\"\"\0\x05\x05\x05\0\0\x06\0\0##\"\"\0\0\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x02\x02 \0########\0###\0###\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\0\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\0\x05\x05\x05\x05\x05\0\0\x17\x01\"\"\"\"\"\0\"\"\"\0\"\"\"\x1F\0\0\0\0\0\0\0\"\"\0\0\0\0\0\0\x06\x05\0##\"\"\0\0\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\0\x11\x11\x02\0\0\0\0\0\0\0\0\0\0\0\0\x02\x02\x02 \x02########\0###\0###\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x1A\x1A\x01\"\"\"\"\"\0\"\"\"\0\"\"\"\x1F\r\0\0\0\0\0\x06\x06\x06\"\0\0\0\0\0\0\0###\"\"\0\0\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\0\0\0\0\0\0\0\0\0\0\x06\x06\x06\x06\x06\x06\0\x02\x02 \0##################\0\0\0\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\0\x05\x05\x05\x05\x05\x05\x05\x05\x05\0\x05\0\0\x05\x05\x05\x05\x05\x05\x05\0\0\0\x1F\0\0\0\0\"\"\"\"\"\"\0\"\0\"\"\"\"\"\"\"\"\0\0\0\0\0\0\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\0\0\"\"\0\0\0\0\0\0\0\0\0\0\0\0\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\0\"\"\"\"\"\"\"\"\"\"\x1A\0\0\0\0\0\"\"\"\"\"\"\0\"\x1E\x1E\x1E\x1E\n\x02\x1A\0\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x05\x05\0\x05\0\x05\x05\x05\x05\x05\0\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\0\x05\0\x05\x05\x05\x05\x05\x05\x05\x05\0\"\"\"\"\"\"\"\"\"\"\x1A\"\x0B\x0B\0\0\"\"\"\"\"\0\0\0\x1E\x1E\x1E\x1E\0\x02\x1C\0\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\0\0\x05\x05\x05\x05\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\0\x1C\0\x1C\0\x17\0\0\0\0\0\0\x05\x05\x05\x05\x05\x05\x05\x05\0\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\0\0\0\0\"\"\"\"\"\"\"\"\"\"\"\"\"\x02 \"\"\x02\x02\x1A\x01\0\0\x08\x08\x08\x08\x08\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\0\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\0\0\0\0\0\0\x1C\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x05##########\"\"\"\"\"\"\x02\x1E \x13\x1A\x0B\x0B\x0B\x0B\x05\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\0\x0C\0\0\x0C\0\x05\x05####\"\"\"\"\x05\x05\x05\x05\x0B\x0B\x05\"\x1E\x1E\x05\x05\"\"\x1E\x1E\x1E\x1E\x1E\x05\x05\"\"\"\"\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x0B\"\"\"\"\x1E\x1E\x1E\x1E\x1E\x1E\x1E\x05\x1E\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x1E\x1E\"\"\0\0\x05\x05\"\"\x1A\x1A\0\0\0\0\0\0\0\0\0\x05\x05\"\"\x1A\0\0\0\0\0\0\0\0\0\0\0\x05\x05\"\"\0\0\0\0\0\0\0\0\0\0\0\0###\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\0\x05\x05\0\"\"\0\0\0\0\0\0\0\0\0\0\0\0\x05\x05\x05#############\0\0\"\"\"\"\"\"\"\"\"\"\x02 \"\x1B\x1B\x1C\x10\n\x1C\x1C\x1A\x13\x1C\0\0\0\0\0\0\0\0\x01\x1C\0\0\x0C\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\"\"\"\"\"\"\"\"\"\x0F\x0F\x0F\0\0\0\0\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\"\x1C\0\0\0\0\x05\x05\x05!!!!!!!!!!!\0\0\x1D\x1D\x1D\x1D\x1D\0\0\0\0\0\0\0\0\0\0\0\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\x07\x07\x07\x07\x07\x07\x07\x1E\x1E\0\0\0\0\0\0\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\0\0\0\0\0\x05\x05\x05\x05\x05\x05\x05\"\"\"\"\"\0\0\0\0\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05###\x05\x05\x0B\x0B\x0F\x07\x07\t\x0F\x0F\x0F\x0F\0\x13\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\x02\x1E\x1E\x1E\x1E\x1E\x1A\x1C\x1C\0\0\x1C\x02\x02\x02\x07 ###########\x05\x05\x05\x05\x17\"\"\"\"\"\"\"\"\"\"\"\x1F\x05\x05\x05\x05\x05\x05\x05\x05\0\0\0\x02\x07 #######\x05\x05\x05\x05\x05\x05\x0F\x0F\x0F\"\"\"\"\"\"\x1A\x13\x0F\x0F\x05\x05\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x01\x05\x05\x05\x07\x07\x05\x05\x05\x05##\x17\"\"\"\"\"\"\"\"\"\x07\x07\x1A\x1A\0\0\0\0\0\0\0\0\0\0\0\0\x05\x05\x05\x05\x0F\x0F\"\"\"\"\"\"\"\x07\x07\x07\x07\x02\x02\x1C\x17\0\0\0\0\0\0\0\0\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\0\0\0\x05\x05\x05\x04\x04\x04\0\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\x06\x04\x11\x11\x04\x04\x04\x0C\0\0\0\0\0\0\0\0\0\0\0\x1C\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\0\0\x0C\x0C\x0C\x0C\x0C\0\0\0\0\0\0\0\0\0\0\0\x1C\x1C\x1C\0\0\0\0\0\0\0\0\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0##\"###\x1F\x05\x05\x05\x05\x02\x05\x05\x05\x05\"\"\"\"\"\0\0\0\0\x1A\0\0\0\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05!!\x05\x05\x05\x05!\x0F\x0F\x05\x05\x05\x05\x05\x05\x05\x0F\x05\x02\0\0\0\0\0\0\0\0\0\0\0\0\x05\x05\x05\x05\x0B\"\"\"\"\"\"\"\"\"\"\"\x1F\x02\0\0\0\0\0\0\0\0\0\0\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x02\x02\0\0\0\0\0\0\0\0\0\0#\"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x05\x05\x05\x05\x05\x05!!!!!!!!!\x1E\x1E\x1E\0\0\x05\x05\x05\x05\x05\x05\x05\"\"\"\"\"\"\"\"\x07\x07\x07\x1A\0\0\0\0\0\0\0\0\0\0\0\0\x02\x02\x07 #####\x05\x05\x05###\x05\x05\x05\x17\"\"\"\"\"\"\"\"\"\x0B\x0B\x0B\x05\x05\x05\x05\x05\"\0\x05\x05\x05\x05\x05\x05\x05\x05\x05\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x05\x05\x05\x05\x05\0\"\"\"\x0B\x0B\x0B\x0B\0\0\0\0\0\0\0\0\0\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\0\0\x05\x05\x05\x0C\x0C\x0C\0\0\0\x05\x1E\x1E\x1E\x05\x05\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\x1E\x1D\x1E\x1D\0\0\0\0\0\0\0\0\0\0\0\0\0##\x05\x05\x05\x05\x05\x05\x05\x05\x05\"\"\"\"\"\0\0\0\0\0 \x13\0\0\0\0\0\0\0\0\0\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05##\x05#\x05\x05\x05\x05\x05\x05\x05\x05\x05\x07\x07\x07\x07\x07\"\"\"\"\"\"\"\"\0\x1E\x1A\0\0\x05\"\"\"\0\"\"\0\0\0\0\0\"\"\x02 \x05\x05\x05\x05\0\x05\x05\x05\0\x05\x05\x05\x05\x05\x05\x05\0\0\x17\x17\x17\0\0\0\0\x13\x02\x02 \x11\x11###########\"\"\"\"\"\"\x1F\0\0\0\0\0\0\0\0\0\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x1A##\"\"\x05\0\0\0\0\0\0\0\0\0\x19\x02\x02 ##########\x05\x05\x05\"\"\"\"\"\"\"\"\"\x1F\x17\0\0\0\0\0\x02\x02 ####\x05\x05\x05\x05\x05\x05\x05\x05\x05\"\"\"\x13\x1A\0\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\0\0\0\0\x05\"\"\x05\0\0\0\0\0\0\0\0!!!!!\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x17\0\0\0\0\0\0\0\0\0\0\0\0\x05\x05\x05\"\"\"\"\"\"\"\"\"\"\"\"\"\x1F\x01\x0E\x0E\0\0\0\0\0\x1C\x17\"\"\0\"\x02\"\"\"\"\x02\x1F\x17\x12\0\0\0\0\0\0\x04\x05#\"\0\0\0\0\0\0\0\0\0\0\0\0\0\0####\x05\x05\x05\0\x05\0\x05\x05\x05\x05\0\x05\x05\x05\x05\x05\x05\x05\x05\x05\0\0\0\0\0\0\0\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x02\"\"\"\"\"\"\"\"\"\x17\x1A\0\0\0\0\0\x02\x02\x02 \0########\0\0#\x05\0\x05\x05\0\x05\x05\x05\x05\x05\0\x17\x17\x01\"\"\0\0\0\0\0\0\0\"\0\0\0\0\0\0\x02\x02##\"\"\0\0\x04\x04\x04\x04\x04\x04\x04\0\0\0\x05\x05\x05\x05\x05\"\"\"\"\"\"\"\"\"\"\"\x1F\x02\x02 \x17\x01\0\0\0\0\0\0\0\0\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\0\0\0\0\x1C\x02\x11\x11\0\0\0\0\0\0\0\0\0\0\0\0\0\0##############\x05\x02 \x1F\x17\x01\0\0\0\0\0\0\0\0\0\0\0\"\"\"\"\"\"\0\0\"\"\"\"\x02\x02 \x1F\x17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0####\"\"\0\0\"\"\"\"\"\"\"\"\"\"\"\"\"\x02 \x1F\"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x02 \"\"\"\"\"\"\x1F\x17\x05\0\0\0\0\0\0\0\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\0\0\x0B\x0B\x0B\"\"\"\"\"\"\"\"\"\"\"\x1A\0\0\0\0\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\0\0\0\0\x05\x05\x05\x05\x05\x05\x05\0\0\0\0\0\0\0\0\0\"\"\"\"\"\"\"\x02 \x1F\x17\0\0\0\0\0#######\0\0#\0\0\x05\x05\x05\x05\0\x05\x05\0\x05\x05\x05\x05\x05\x05\x05\x05\"\"\"\"\"\"\0\"\"\0\0\x02\x02\x1A\x13\x0E\x0B\r\x0B\x17\0\0\0\0\0\0\0\0\0\0\0\0########\0\0####\x05\x05\"\"\"\"\"\"\"\0\0\"\"\"\"\x02 \x1F\x01\0\0\"\0\0\0\0\0\0\0\0\0\0\0#\"\"\"\"\"\"\"\"\"\"\x05\x05\x05\x05\x05\x1C\x1A\x02\x02\x02\x02 \x0E\x0B\x0B\x0B\x0B\x0C\0\0\0\0\0\x0C\0\x13\0\0\0\0\0\0\0\0#\"\"\"\"\"\"\"\"\"\"\"\x05\x05\x05\x05\x0E\x0E\x0E\x0E\x0E\x0E\x07\x07\x07\x07\x07\x07\x02 \x12\x13\0\0\0\x01\0\0#########\0####\x05\x05\"\"\"\"\"\"\"\0\"\"\"\"\x02\x02 \x1F\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\0\0\0\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\x0F\"\"\"\"\"\x02\x02\0\0\0\0\0\0\0\0\0#######\0##\0#\x05\x05\x05\x05\"\"\"\"\"\"\0\0\0\"\0\"\"\0\"\x02 \x17\"\x1A\x13\r\x0B\0\0\0\0\0\0\0\0######\0##\0##\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\"\"\"\"\"\0\"\"\x02 \x13\0\0\0\0\0\0\0\0\x05\x05\x0C\"\"\"\"\0\0\0\0\0\0\0\0\0\x02\x02\r ############\0\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\"\"\"\"\"\"\"\0\0\0\"\"\x1A\x13\0\0\0\0\0\0\0\0\0\0\0\0\0") }, icu::properties::IndicSyllabicCategory(0u8))); + } + #[clippy::msrv = "1.67"] + impl icu_provider::DataProvider for $provider { + fn load(&self, req: icu_provider::DataRequest) -> Result, icu_provider::DataError> { + if req.locale.is_empty() { + Ok(icu_provider::DataResponse { payload: Some(icu_provider::DataPayload::from_static_ref(Self::SINGLETON_PROPS_INSC_V1)), metadata: Default::default() }) + } else { + Err(icu_provider::DataErrorKind::ExtraneousLocale.with_req(::KEY, req)) + } + } + } + }; +} diff --git a/components/properties/data/data/mod.rs b/components/properties/data/data/mod.rs index a32b876e2d3..3bef537f60e 100644 --- a/components/properties/data/data/mod.rs +++ b/components/properties/data/data/mod.rs @@ -4,6 +4,7 @@ macro_rules! impl_data_provider { ($ provider : ty) => { make_provider!($provider); impl_propnames_from_gcb_v1!($provider); + impl_propnames_from_insc_v1!($provider); impl_propnames_from_sb_v1!($provider); impl_propnames_from_wb_v1!($provider); impl_propnames_from_bc_v1!($provider); @@ -14,6 +15,7 @@ macro_rules! impl_data_provider { impl_propnames_from_lb_v1!($provider); impl_propnames_from_sc_v1!($provider); impl_propnames_to_long_linear_gcb_v1!($provider); + impl_propnames_to_long_linear_insc_v1!($provider); impl_propnames_to_long_linear_sb_v1!($provider); impl_propnames_to_long_linear_wb_v1!($provider); impl_propnames_to_long_linear_bc_v1!($provider); @@ -23,6 +25,7 @@ macro_rules! impl_data_provider { impl_propnames_to_long_linear_sc_v1!($provider); impl_propnames_to_long_sparse_ccc_v1!($provider); impl_propnames_to_short_linear_gcb_v1!($provider); + impl_propnames_to_short_linear_insc_v1!($provider); impl_propnames_to_short_linear_sb_v1!($provider); impl_propnames_to_short_linear_wb_v1!($provider); impl_propnames_to_short_linear_bc_v1!($provider); @@ -67,6 +70,7 @@ macro_rules! impl_data_provider { impl_props_idsb_v1!($provider); impl_props_idst_v1!($provider); impl_props_ideo_v1!($provider); + impl_props_insc_v1!($provider); impl_props_join_c_v1!($provider); impl_props_loe_v1!($provider); impl_props_lower_v1!($provider); @@ -123,6 +127,7 @@ macro_rules! impl_any_provider { fn load_any(&self, key: icu_provider::DataKey, req: icu_provider::DataRequest) -> Result { match key.hashed() { h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), @@ -133,6 +138,7 @@ macro_rules! impl_any_provider { h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), @@ -142,6 +148,7 @@ macro_rules! impl_any_provider { h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), @@ -186,6 +193,7 @@ macro_rules! impl_any_provider { h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), + h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), h if h == ::KEY.hashed() => icu_provider::DataProvider::::load(self, req).map(icu_provider::DataResponse::wrap_into_any_response), diff --git a/components/properties/src/lib.rs b/components/properties/src/lib.rs index e9da7da4c3d..3b9a236e238 100644 --- a/components/properties/src/lib.rs +++ b/components/properties/src/lib.rs @@ -92,7 +92,7 @@ mod trievalue; pub use props::{ BidiClass, CanonicalCombiningClass, EastAsianWidth, GeneralCategory, GeneralCategoryGroup, - GraphemeClusterBreak, LineBreak, Script, SentenceBreak, WordBreak, + GraphemeClusterBreak, IndicSyllabicCategory, LineBreak, Script, SentenceBreak, WordBreak, }; /// Module for working with the names of property values diff --git a/components/properties/src/maps.rs b/components/properties/src/maps.rs index e993313b625..478ef5f2c1f 100644 --- a/components/properties/src/maps.rs +++ b/components/properties/src/maps.rs @@ -575,3 +575,28 @@ make_map_property! { pub const canonical_combining_class => SINGLETON_PROPS_CCC_V1; pub fn load_canonical_combining_class(); } + +make_map_property! { + property: "Indic_Syllabic_Category"; + marker: IndicSyllabicCategoryProperty; + value: crate::IndicSyllabicCategory; + keyed_data_marker: IndicSyllabicCategoryV1Marker; + func: + /// Return a [`CodePointMapData`] for the Indic_Syllabic_Category Unicode property. See + /// [`IndicSyllabicCategory`]. + /// + /// ✨ *Enabled with the `compiled_data` Cargo feature.* + /// + /// [📚 Help choosing a constructor](icu_provider::constructors) + /// + /// # Example + /// + /// ``` + /// use icu::properties::{maps, IndicSyllabicCategory}; + /// + /// assert_eq!(maps::indic_syllabic_category().get('a'), IndicSyllabicCategory::Other); + /// assert_eq!(maps::indic_syllabic_category().get32(0x0900), IndicSyllabicCategory::Bindu); // U+0900: DEVANAGARI SIGN INVERTED CANDRABINDU + /// ``` + pub const indic_syllabic_category => SINGLETON_PROPS_INSC_V1; + pub fn load_indic_syllabic_category(); +} diff --git a/components/properties/src/props.rs b/components/properties/src/props.rs index 719d4b19fd4..b6f721bc4be 100644 --- a/components/properties/src/props.rs +++ b/components/properties/src/props.rs @@ -2237,3 +2237,122 @@ impl_value_getter! { pub fn get_enum_to_long_name_mapper() / enum_to_long_name_mapper() -> PropertyEnumToValueNameSparseMapper / PropertyEnumToValueNameSparseMapperBorrowed; } } + +/// Property Indic_Syllabic_Category. +/// See UAX #44: +/// . +/// +/// The numeric value is compatible with `UIndicSyllabicCategory` in ICU4C. +#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "datagen", derive(databake::Bake))] +#[cfg_attr(feature = "datagen", databake(path = icu_properties))] +#[allow(clippy::exhaustive_structs)] // newtype +#[repr(transparent)] +#[zerovec::make_ule(IndicSyllabicCategoryULE)] +pub struct IndicSyllabicCategory(pub u8); + +#[allow(missing_docs)] // These constants don't need individual documentation. +#[allow(non_upper_case_globals)] +impl IndicSyllabicCategory { + pub const Other: IndicSyllabicCategory = IndicSyllabicCategory(0); + pub const Avagraha: IndicSyllabicCategory = IndicSyllabicCategory(1); + pub const Bindu: IndicSyllabicCategory = IndicSyllabicCategory(2); + pub const BrahmiJoiningNumber: IndicSyllabicCategory = IndicSyllabicCategory(3); + pub const CantillationMark: IndicSyllabicCategory = IndicSyllabicCategory(4); + pub const Consonant: IndicSyllabicCategory = IndicSyllabicCategory(5); + pub const ConsonantDead: IndicSyllabicCategory = IndicSyllabicCategory(6); + pub const ConsonantFinal: IndicSyllabicCategory = IndicSyllabicCategory(7); + pub const ConsonantHeadLetter: IndicSyllabicCategory = IndicSyllabicCategory(8); + pub const ConsonantInitialPostfixed: IndicSyllabicCategory = IndicSyllabicCategory(9); + pub const ConsonantKiller: IndicSyllabicCategory = IndicSyllabicCategory(10); + pub const ConsonantMedial: IndicSyllabicCategory = IndicSyllabicCategory(11); + pub const ConsonantPlaceholder: IndicSyllabicCategory = IndicSyllabicCategory(12); + pub const ConsonantPrecedingRepha: IndicSyllabicCategory = IndicSyllabicCategory(13); + pub const ConsonantPrefixed: IndicSyllabicCategory = IndicSyllabicCategory(14); + pub const ConsonantSucceedingRepha: IndicSyllabicCategory = IndicSyllabicCategory(15); + pub const ConsonantSubjoined: IndicSyllabicCategory = IndicSyllabicCategory(16); + pub const ConsonantWithStacker: IndicSyllabicCategory = IndicSyllabicCategory(17); + pub const GeminationMark: IndicSyllabicCategory = IndicSyllabicCategory(18); + pub const InvisibleStacker: IndicSyllabicCategory = IndicSyllabicCategory(19); + pub const Joiner: IndicSyllabicCategory = IndicSyllabicCategory(20); + pub const ModifyingLetter: IndicSyllabicCategory = IndicSyllabicCategory(21); + pub const NonJoiner: IndicSyllabicCategory = IndicSyllabicCategory(22); + pub const Nukta: IndicSyllabicCategory = IndicSyllabicCategory(23); + pub const Number: IndicSyllabicCategory = IndicSyllabicCategory(24); + pub const NumberJoiner: IndicSyllabicCategory = IndicSyllabicCategory(25); + pub const PureKiller: IndicSyllabicCategory = IndicSyllabicCategory(26); + pub const RegisterShifter: IndicSyllabicCategory = IndicSyllabicCategory(27); + pub const SyllableModifier: IndicSyllabicCategory = IndicSyllabicCategory(28); + pub const ToneLetter: IndicSyllabicCategory = IndicSyllabicCategory(29); + pub const ToneMark: IndicSyllabicCategory = IndicSyllabicCategory(30); + pub const Virama: IndicSyllabicCategory = IndicSyllabicCategory(31); + pub const Visarga: IndicSyllabicCategory = IndicSyllabicCategory(32); + pub const Vowel: IndicSyllabicCategory = IndicSyllabicCategory(33); + pub const VowelDependent: IndicSyllabicCategory = IndicSyllabicCategory(34); + pub const VowelIndependent: IndicSyllabicCategory = IndicSyllabicCategory(35); +} + +impl_value_getter! { + markers: IndicSyllabicCategoryNameToValueV1Marker / SINGLETON_PROPNAMES_FROM_INSC_V1, IndicSyllabicCategoryValueToShortNameV1Marker / SINGLETON_PROPNAMES_TO_SHORT_LINEAR_INSC_V1, IndicSyllabicCategoryValueToLongNameV1Marker / SINGLETON_PROPNAMES_TO_LONG_LINEAR_INSC_V1; + impl IndicSyllabicCategory { + /// Return a [`PropertyValueNameToEnumMapper`], capable of looking up values + /// from strings for the `Indic_Syllabic_Category` enumerated property. + /// + /// ✨ *Enabled with the `compiled_data` Cargo feature.* + /// + /// [📚 Help choosing a constructor](icu_provider::constructors) + /// + /// # Example + /// + /// ``` + /// use icu::properties::IndicSyllabicCategory; + /// + /// let lookup = IndicSyllabicCategory::name_to_enum_mapper(); + /// // long/short name for value + /// assert_eq!(lookup.get_strict("Brahmi_Joining_Number"), Some(IndicSyllabicCategory::BrahmiJoiningNumber)); + /// assert_eq!(lookup.get_strict("Vowel_Independent"), Some(IndicSyllabicCategory::VowelIndependent)); + /// // name has incorrect casing and hyphens + /// assert_eq!(lookup.get_strict("brahmi-joining-number"), None); + /// // loose matching of name + /// assert_eq!(lookup.get_loose("brahmi-joining-number"), Some(IndicSyllabicCategory::BrahmiJoiningNumber)); + /// // fake property + /// assert_eq!(lookup.get_strict("Tone_Number"), None); + /// ``` + pub fn get_name_to_enum_mapper() / name_to_enum_mapper(); + /// Return a [`PropertyEnumToValueNameLinearMapper`], capable of looking up short names + /// for values of the `Indic_Syllabic_Category` enumerated property. + /// + /// ✨ *Enabled with the `compiled_data` Cargo feature.* + /// + /// [📚 Help choosing a constructor](icu_provider::constructors) + /// + /// # Example + /// + /// ``` + /// use icu::properties::IndicSyllabicCategory; + /// + /// let lookup = IndicSyllabicCategory::enum_to_short_name_mapper(); + /// assert_eq!(lookup.get(IndicSyllabicCategory::BrahmiJoiningNumber), Some("Brahmi_Joining_Number")); + /// assert_eq!(lookup.get(IndicSyllabicCategory::VowelIndependent), Some("Vowel_Independent")); + /// ``` + pub fn get_enum_to_short_name_mapper() / enum_to_short_name_mapper() -> PropertyEnumToValueNameLinearMapper / PropertyEnumToValueNameLinearMapperBorrowed; + /// Return a [`PropertyEnumToValueNameLinearMapper`], capable of looking up long names + /// for values of the `Indic_Syllabic_Category` enumerated property. + /// + /// ✨ *Enabled with the `compiled_data` Cargo feature.* + /// + /// [📚 Help choosing a constructor](icu_provider::constructors) + /// + /// # Example + /// + /// ``` + /// use icu::properties::IndicSyllabicCategory; + /// + /// let lookup = IndicSyllabicCategory::enum_to_long_name_mapper(); + /// assert_eq!(lookup.get(IndicSyllabicCategory::BrahmiJoiningNumber), Some("Brahmi_Joining_Number")); + /// assert_eq!(lookup.get(IndicSyllabicCategory::VowelIndependent), Some("Vowel_Independent")); + /// ``` + pub fn get_enum_to_long_name_mapper() / enum_to_long_name_mapper() -> PropertyEnumToValueNameLinearMapper / PropertyEnumToValueNameLinearMapperBorrowed; + } +} diff --git a/components/properties/src/provider.rs b/components/properties/src/provider.rs index cb1ada3fe47..53fb2d5fd78 100644 --- a/components/properties/src/provider.rs +++ b/components/properties/src/provider.rs @@ -56,6 +56,7 @@ const _: () = { icu_properties_data::impl_propnames_from_ea_v1!(Baked); icu_properties_data::impl_propnames_from_gc_v1!(Baked); icu_properties_data::impl_propnames_from_gcm_v1!(Baked); + icu_properties_data::impl_propnames_from_insc_v1!(Baked); icu_properties_data::impl_propnames_from_lb_v1!(Baked); icu_properties_data::impl_propnames_from_sb_v1!(Baked); icu_properties_data::impl_propnames_from_sc_v1!(Baked); @@ -64,6 +65,7 @@ const _: () = { icu_properties_data::impl_propnames_to_long_linear_ea_v1!(Baked); icu_properties_data::impl_propnames_to_long_linear_gc_v1!(Baked); icu_properties_data::impl_propnames_to_long_linear_gcb_v1!(Baked); + icu_properties_data::impl_propnames_to_long_linear_insc_v1!(Baked); icu_properties_data::impl_propnames_to_long_linear_lb_v1!(Baked); icu_properties_data::impl_propnames_to_long_linear_sb_v1!(Baked); icu_properties_data::impl_propnames_to_long_linear_sc_v1!(Baked); @@ -73,6 +75,7 @@ const _: () = { icu_properties_data::impl_propnames_to_short_linear_ea_v1!(Baked); icu_properties_data::impl_propnames_to_short_linear_gc_v1!(Baked); icu_properties_data::impl_propnames_to_short_linear_gcb_v1!(Baked); + icu_properties_data::impl_propnames_to_short_linear_insc_v1!(Baked); icu_properties_data::impl_propnames_to_short_linear_lb_v1!(Baked); icu_properties_data::impl_propnames_to_short_linear_sb_v1!(Baked); icu_properties_data::impl_propnames_to_short_linear_wb_v1!(Baked); @@ -127,6 +130,7 @@ const _: () = { icu_properties_data::impl_props_ids_v1!(Baked); icu_properties_data::impl_props_idsb_v1!(Baked); icu_properties_data::impl_props_idst_v1!(Baked); + icu_properties_data::impl_props_insc_v1!(Baked); icu_properties_data::impl_props_join_c_v1!(Baked); icu_properties_data::impl_props_lb_v1!(Baked); icu_properties_data::impl_props_loe_v1!(Baked); @@ -881,6 +885,16 @@ expand!( "SB", SentenceBreak ), + ( + IndicSyllabicCategoryV1Marker, + IndicSyllabicCategoryNameToValueV1Marker, + ( + linear: IndicSyllabicCategoryValueToShortNameV1Marker, + IndicSyllabicCategoryValueToLongNameV1Marker + ), + "InSC", + IndicSyllabicCategory + ), // note: the names key for the GCM mask is handled above ) ); diff --git a/components/properties/src/trievalue.rs b/components/properties/src/trievalue.rs index d2a2817ca36..d8b65e4aa91 100644 --- a/components/properties/src/trievalue.rs +++ b/components/properties/src/trievalue.rs @@ -8,7 +8,7 @@ use crate::provider::bidi_data::{ use crate::script::ScriptWithExt; use crate::{ BidiClass, CanonicalCombiningClass, EastAsianWidth, GeneralCategory, GeneralCategoryGroup, - GraphemeClusterBreak, LineBreak, Script, SentenceBreak, WordBreak, + GraphemeClusterBreak, IndicSyllabicCategory, LineBreak, Script, SentenceBreak, WordBreak, }; use core::convert::TryInto; use core::num::TryFromIntError; @@ -152,6 +152,18 @@ impl TrieValue for CheckedBidiPairedBracketType { } } +impl TrieValue for IndicSyllabicCategory { + type TryFromU32Error = TryFromIntError; + + fn try_from_u32(i: u32) -> Result { + u8::try_from(i).map(Self) + } + + fn to_u32(self) -> u32 { + u32::from(self.0) + } +} + // GCG is not used inside tries, but it is used in the name lookup type, and we want // to squeeze it into a u16 for storage. Its named mask values are specced so we can // do this in code. diff --git a/provider/datagen/src/registry.rs b/provider/datagen/src/registry.rs index 99fc6b2a72d..6f6c6a8b127 100644 --- a/provider/datagen/src/registry.rs +++ b/provider/datagen/src/registry.rs @@ -322,6 +322,12 @@ registry!( icu_properties::provider::IdsBinaryOperatorV1Marker = "props/IDSB@1", icu_properties::provider::IdStartV1Marker = "props/IDS@1", icu_properties::provider::IdsTrinaryOperatorV1Marker = "props/IDST@1", + icu_properties::provider::IndicSyllabicCategoryV1Marker = "props/InSC@1", + icu_properties::provider::IndicSyllabicCategoryNameToValueV1Marker = "propnames/from/InSC@1", + icu_properties::provider::IndicSyllabicCategoryValueToLongNameV1Marker = + "propnames/to/long/linear/InSC@1", + icu_properties::provider::IndicSyllabicCategoryValueToShortNameV1Marker = + "propnames/to/short/linear/InSC@1", icu_properties::provider::GraphV1Marker = "props/graph@1", icu_properties::provider::JoinControlV1Marker = "props/Join_C@1", icu_properties::provider::LineBreakV1Marker = "props/lb@1", diff --git a/provider/datagen/src/transform/icuexport/uprops/enum_codepointtrie.rs b/provider/datagen/src/transform/icuexport/uprops/enum_codepointtrie.rs index af744c7ed6f..9d32eb8147a 100644 --- a/provider/datagen/src/transform/icuexport/uprops/enum_codepointtrie.rs +++ b/provider/datagen/src/transform/icuexport/uprops/enum_codepointtrie.rs @@ -472,6 +472,15 @@ expand!( ), "ea" ), + ( + IndicSyllabicCategoryV1Marker, + IndicSyllabicCategoryNameToValueV1Marker, + ( + linear: IndicSyllabicCategoryValueToShortNameV1Marker, + IndicSyllabicCategoryValueToLongNameV1Marker + ), + "InSC" + ), ( LineBreakV1Marker, LineBreakNameToValueV1Marker, diff --git a/provider/datagen/tests/data/icuexport/uprops/small/InSC.toml b/provider/datagen/tests/data/icuexport/uprops/small/InSC.toml new file mode 100644 index 00000000000..4d1a8a9e54e --- /dev/null +++ b/provider/datagen/tests/data/icuexport/uprops/small/InSC.toml @@ -0,0 +1,1490 @@ +# Copyright (C) 2021 and later: Unicode, Inc. and others. +# License & terms of use: http://www.unicode.org/copyright.html +# +# file name: InSC +# +# machine-generated by: icuexportdata.cpp + +icu_version = "73.1" +unicode_version = "15.0" + +[[enum_property]] +long_name = "Indic_Syllabic_Category" +short_name = "InSC" +uproperty_discr = 0x1017 +values = [ + {discr = 0, long = "Other", short = "Other"}, + {discr = 1, long = "Avagraha", short = "Avagraha"}, + {discr = 2, long = "Bindu", short = "Bindu"}, + {discr = 3, long = "Brahmi_Joining_Number", short = "Brahmi_Joining_Number"}, + {discr = 4, long = "Cantillation_Mark", short = "Cantillation_Mark"}, + {discr = 5, long = "Consonant", short = "Consonant"}, + {discr = 6, long = "Consonant_Dead", short = "Consonant_Dead"}, + {discr = 7, long = "Consonant_Final", short = "Consonant_Final"}, + {discr = 8, long = "Consonant_Head_Letter", short = "Consonant_Head_Letter"}, + {discr = 9, long = "Consonant_Initial_Postfixed", short = "Consonant_Initial_Postfixed"}, + {discr = 10, long = "Consonant_Killer", short = "Consonant_Killer"}, + {discr = 11, long = "Consonant_Medial", short = "Consonant_Medial"}, + {discr = 12, long = "Consonant_Placeholder", short = "Consonant_Placeholder"}, + {discr = 13, long = "Consonant_Preceding_Repha", short = "Consonant_Preceding_Repha"}, + {discr = 14, long = "Consonant_Prefixed", short = "Consonant_Prefixed"}, + {discr = 15, long = "Consonant_Subjoined", short = "Consonant_Subjoined"}, + {discr = 16, long = "Consonant_Succeeding_Repha", short = "Consonant_Succeeding_Repha"}, + {discr = 17, long = "Consonant_With_Stacker", short = "Consonant_With_Stacker"}, + {discr = 18, long = "Gemination_Mark", short = "Gemination_Mark"}, + {discr = 19, long = "Invisible_Stacker", short = "Invisible_Stacker"}, + {discr = 20, long = "Joiner", short = "Joiner"}, + {discr = 21, long = "Modifying_Letter", short = "Modifying_Letter"}, + {discr = 22, long = "Non_Joiner", short = "Non_Joiner"}, + {discr = 23, long = "Nukta", short = "Nukta"}, + {discr = 24, long = "Number", short = "Number"}, + {discr = 25, long = "Number_Joiner", short = "Number_Joiner"}, + {discr = 26, long = "Pure_Killer", short = "Pure_Killer"}, + {discr = 27, long = "Register_Shifter", short = "Register_Shifter"}, + {discr = 28, long = "Syllable_Modifier", short = "Syllable_Modifier"}, + {discr = 29, long = "Tone_Letter", short = "Tone_Letter"}, + {discr = 30, long = "Tone_Mark", short = "Tone_Mark"}, + {discr = 31, long = "Virama", short = "Virama"}, + {discr = 32, long = "Visarga", short = "Visarga"}, + {discr = 33, long = "Vowel", short = "Vowel"}, + {discr = 34, long = "Vowel_Dependent", short = "Vowel_Dependent"}, + {discr = 35, long = "Vowel_Independent", short = "Vowel_Independent"}, +] +# Code points `a` through `b` have value `v`, corresponding to `name`. +ranges = [ + {a=0x0, b=0x2c, v=0, name="Other"}, + {a=0x2d, b=0x2d, v=12, name="Consonant_Placeholder"}, + {a=0x2e, b=0x2f, v=0, name="Other"}, + {a=0x30, b=0x39, v=24, name="Number"}, + {a=0x3a, b=0x9f, v=0, name="Other"}, + {a=0xa0, b=0xa0, v=12, name="Consonant_Placeholder"}, + {a=0xa1, b=0xb1, v=0, name="Other"}, + {a=0xb2, b=0xb3, v=28, name="Syllable_Modifier"}, + {a=0xb4, b=0xd6, v=0, name="Other"}, + {a=0xd7, b=0xd7, v=12, name="Consonant_Placeholder"}, + {a=0xd8, b=0x8ff, v=0, name="Other"}, + {a=0x900, b=0x902, v=2, name="Bindu"}, + {a=0x903, b=0x903, v=32, name="Visarga"}, + {a=0x904, b=0x914, v=35, name="Vowel_Independent"}, + {a=0x915, b=0x939, v=5, name="Consonant"}, + {a=0x93a, b=0x93b, v=34, name="Vowel_Dependent"}, + {a=0x93c, b=0x93c, v=23, name="Nukta"}, + {a=0x93d, b=0x93d, v=1, name="Avagraha"}, + {a=0x93e, b=0x94c, v=34, name="Vowel_Dependent"}, + {a=0x94d, b=0x94d, v=31, name="Virama"}, + {a=0x94e, b=0x94f, v=34, name="Vowel_Dependent"}, + {a=0x950, b=0x950, v=0, name="Other"}, + {a=0x951, b=0x952, v=4, name="Cantillation_Mark"}, + {a=0x953, b=0x954, v=0, name="Other"}, + {a=0x955, b=0x957, v=34, name="Vowel_Dependent"}, + {a=0x958, b=0x95f, v=5, name="Consonant"}, + {a=0x960, b=0x961, v=35, name="Vowel_Independent"}, + {a=0x962, b=0x963, v=34, name="Vowel_Dependent"}, + {a=0x964, b=0x965, v=0, name="Other"}, + {a=0x966, b=0x96f, v=24, name="Number"}, + {a=0x970, b=0x971, v=0, name="Other"}, + {a=0x972, b=0x977, v=35, name="Vowel_Independent"}, + {a=0x978, b=0x97f, v=5, name="Consonant"}, + {a=0x980, b=0x980, v=12, name="Consonant_Placeholder"}, + {a=0x981, b=0x982, v=2, name="Bindu"}, + {a=0x983, b=0x983, v=32, name="Visarga"}, + {a=0x984, b=0x984, v=0, name="Other"}, + {a=0x985, b=0x98c, v=35, name="Vowel_Independent"}, + {a=0x98d, b=0x98e, v=0, name="Other"}, + {a=0x98f, b=0x990, v=35, name="Vowel_Independent"}, + {a=0x991, b=0x992, v=0, name="Other"}, + {a=0x993, b=0x994, v=35, name="Vowel_Independent"}, + {a=0x995, b=0x9a8, v=5, name="Consonant"}, + {a=0x9a9, b=0x9a9, v=0, name="Other"}, + {a=0x9aa, b=0x9b0, v=5, name="Consonant"}, + {a=0x9b1, b=0x9b1, v=0, name="Other"}, + {a=0x9b2, b=0x9b2, v=5, name="Consonant"}, + {a=0x9b3, b=0x9b5, v=0, name="Other"}, + {a=0x9b6, b=0x9b9, v=5, name="Consonant"}, + {a=0x9ba, b=0x9bb, v=0, name="Other"}, + {a=0x9bc, b=0x9bc, v=23, name="Nukta"}, + {a=0x9bd, b=0x9bd, v=1, name="Avagraha"}, + {a=0x9be, b=0x9c4, v=34, name="Vowel_Dependent"}, + {a=0x9c5, b=0x9c6, v=0, name="Other"}, + {a=0x9c7, b=0x9c8, v=34, name="Vowel_Dependent"}, + {a=0x9c9, b=0x9ca, v=0, name="Other"}, + {a=0x9cb, b=0x9cc, v=34, name="Vowel_Dependent"}, + {a=0x9cd, b=0x9cd, v=31, name="Virama"}, + {a=0x9ce, b=0x9ce, v=6, name="Consonant_Dead"}, + {a=0x9cf, b=0x9d6, v=0, name="Other"}, + {a=0x9d7, b=0x9d7, v=34, name="Vowel_Dependent"}, + {a=0x9d8, b=0x9db, v=0, name="Other"}, + {a=0x9dc, b=0x9dd, v=5, name="Consonant"}, + {a=0x9de, b=0x9de, v=0, name="Other"}, + {a=0x9df, b=0x9df, v=5, name="Consonant"}, + {a=0x9e0, b=0x9e1, v=35, name="Vowel_Independent"}, + {a=0x9e2, b=0x9e3, v=34, name="Vowel_Dependent"}, + {a=0x9e4, b=0x9e5, v=0, name="Other"}, + {a=0x9e6, b=0x9ef, v=24, name="Number"}, + {a=0x9f0, b=0x9f1, v=5, name="Consonant"}, + {a=0x9f2, b=0x9fb, v=0, name="Other"}, + {a=0x9fc, b=0x9fc, v=2, name="Bindu"}, + {a=0x9fd, b=0x9fd, v=0, name="Other"}, + {a=0x9fe, b=0x9fe, v=28, name="Syllable_Modifier"}, + {a=0x9ff, b=0xa00, v=0, name="Other"}, + {a=0xa01, b=0xa02, v=2, name="Bindu"}, + {a=0xa03, b=0xa03, v=32, name="Visarga"}, + {a=0xa04, b=0xa04, v=0, name="Other"}, + {a=0xa05, b=0xa0a, v=35, name="Vowel_Independent"}, + {a=0xa0b, b=0xa0e, v=0, name="Other"}, + {a=0xa0f, b=0xa10, v=35, name="Vowel_Independent"}, + {a=0xa11, b=0xa12, v=0, name="Other"}, + {a=0xa13, b=0xa14, v=35, name="Vowel_Independent"}, + {a=0xa15, b=0xa28, v=5, name="Consonant"}, + {a=0xa29, b=0xa29, v=0, name="Other"}, + {a=0xa2a, b=0xa30, v=5, name="Consonant"}, + {a=0xa31, b=0xa31, v=0, name="Other"}, + {a=0xa32, b=0xa33, v=5, name="Consonant"}, + {a=0xa34, b=0xa34, v=0, name="Other"}, + {a=0xa35, b=0xa36, v=5, name="Consonant"}, + {a=0xa37, b=0xa37, v=0, name="Other"}, + {a=0xa38, b=0xa39, v=5, name="Consonant"}, + {a=0xa3a, b=0xa3b, v=0, name="Other"}, + {a=0xa3c, b=0xa3c, v=23, name="Nukta"}, + {a=0xa3d, b=0xa3d, v=0, name="Other"}, + {a=0xa3e, b=0xa42, v=34, name="Vowel_Dependent"}, + {a=0xa43, b=0xa46, v=0, name="Other"}, + {a=0xa47, b=0xa48, v=34, name="Vowel_Dependent"}, + {a=0xa49, b=0xa4a, v=0, name="Other"}, + {a=0xa4b, b=0xa4c, v=34, name="Vowel_Dependent"}, + {a=0xa4d, b=0xa4d, v=31, name="Virama"}, + {a=0xa4e, b=0xa50, v=0, name="Other"}, + {a=0xa51, b=0xa51, v=4, name="Cantillation_Mark"}, + {a=0xa52, b=0xa58, v=0, name="Other"}, + {a=0xa59, b=0xa5c, v=5, name="Consonant"}, + {a=0xa5d, b=0xa5d, v=0, name="Other"}, + {a=0xa5e, b=0xa5e, v=5, name="Consonant"}, + {a=0xa5f, b=0xa65, v=0, name="Other"}, + {a=0xa66, b=0xa6f, v=24, name="Number"}, + {a=0xa70, b=0xa70, v=2, name="Bindu"}, + {a=0xa71, b=0xa71, v=18, name="Gemination_Mark"}, + {a=0xa72, b=0xa73, v=12, name="Consonant_Placeholder"}, + {a=0xa74, b=0xa74, v=0, name="Other"}, + {a=0xa75, b=0xa75, v=11, name="Consonant_Medial"}, + {a=0xa76, b=0xa80, v=0, name="Other"}, + {a=0xa81, b=0xa82, v=2, name="Bindu"}, + {a=0xa83, b=0xa83, v=32, name="Visarga"}, + {a=0xa84, b=0xa84, v=0, name="Other"}, + {a=0xa85, b=0xa8d, v=35, name="Vowel_Independent"}, + {a=0xa8e, b=0xa8e, v=0, name="Other"}, + {a=0xa8f, b=0xa91, v=35, name="Vowel_Independent"}, + {a=0xa92, b=0xa92, v=0, name="Other"}, + {a=0xa93, b=0xa94, v=35, name="Vowel_Independent"}, + {a=0xa95, b=0xaa8, v=5, name="Consonant"}, + {a=0xaa9, b=0xaa9, v=0, name="Other"}, + {a=0xaaa, b=0xab0, v=5, name="Consonant"}, + {a=0xab1, b=0xab1, v=0, name="Other"}, + {a=0xab2, b=0xab3, v=5, name="Consonant"}, + {a=0xab4, b=0xab4, v=0, name="Other"}, + {a=0xab5, b=0xab9, v=5, name="Consonant"}, + {a=0xaba, b=0xabb, v=0, name="Other"}, + {a=0xabc, b=0xabc, v=23, name="Nukta"}, + {a=0xabd, b=0xabd, v=1, name="Avagraha"}, + {a=0xabe, b=0xac5, v=34, name="Vowel_Dependent"}, + {a=0xac6, b=0xac6, v=0, name="Other"}, + {a=0xac7, b=0xac9, v=34, name="Vowel_Dependent"}, + {a=0xaca, b=0xaca, v=0, name="Other"}, + {a=0xacb, b=0xacc, v=34, name="Vowel_Dependent"}, + {a=0xacd, b=0xacd, v=31, name="Virama"}, + {a=0xace, b=0xadf, v=0, name="Other"}, + {a=0xae0, b=0xae1, v=35, name="Vowel_Independent"}, + {a=0xae2, b=0xae3, v=34, name="Vowel_Dependent"}, + {a=0xae4, b=0xae5, v=0, name="Other"}, + {a=0xae6, b=0xaef, v=24, name="Number"}, + {a=0xaf0, b=0xaf8, v=0, name="Other"}, + {a=0xaf9, b=0xaf9, v=5, name="Consonant"}, + {a=0xafa, b=0xafa, v=4, name="Cantillation_Mark"}, + {a=0xafb, b=0xafb, v=18, name="Gemination_Mark"}, + {a=0xafc, b=0xafc, v=4, name="Cantillation_Mark"}, + {a=0xafd, b=0xaff, v=23, name="Nukta"}, + {a=0xb00, b=0xb00, v=0, name="Other"}, + {a=0xb01, b=0xb02, v=2, name="Bindu"}, + {a=0xb03, b=0xb03, v=32, name="Visarga"}, + {a=0xb04, b=0xb04, v=0, name="Other"}, + {a=0xb05, b=0xb0c, v=35, name="Vowel_Independent"}, + {a=0xb0d, b=0xb0e, v=0, name="Other"}, + {a=0xb0f, b=0xb10, v=35, name="Vowel_Independent"}, + {a=0xb11, b=0xb12, v=0, name="Other"}, + {a=0xb13, b=0xb14, v=35, name="Vowel_Independent"}, + {a=0xb15, b=0xb28, v=5, name="Consonant"}, + {a=0xb29, b=0xb29, v=0, name="Other"}, + {a=0xb2a, b=0xb30, v=5, name="Consonant"}, + {a=0xb31, b=0xb31, v=0, name="Other"}, + {a=0xb32, b=0xb33, v=5, name="Consonant"}, + {a=0xb34, b=0xb34, v=0, name="Other"}, + {a=0xb35, b=0xb39, v=5, name="Consonant"}, + {a=0xb3a, b=0xb3b, v=0, name="Other"}, + {a=0xb3c, b=0xb3c, v=23, name="Nukta"}, + {a=0xb3d, b=0xb3d, v=1, name="Avagraha"}, + {a=0xb3e, b=0xb44, v=34, name="Vowel_Dependent"}, + {a=0xb45, b=0xb46, v=0, name="Other"}, + {a=0xb47, b=0xb48, v=34, name="Vowel_Dependent"}, + {a=0xb49, b=0xb4a, v=0, name="Other"}, + {a=0xb4b, b=0xb4c, v=34, name="Vowel_Dependent"}, + {a=0xb4d, b=0xb4d, v=31, name="Virama"}, + {a=0xb4e, b=0xb54, v=0, name="Other"}, + {a=0xb55, b=0xb57, v=34, name="Vowel_Dependent"}, + {a=0xb58, b=0xb5b, v=0, name="Other"}, + {a=0xb5c, b=0xb5d, v=5, name="Consonant"}, + {a=0xb5e, b=0xb5e, v=0, name="Other"}, + {a=0xb5f, b=0xb5f, v=5, name="Consonant"}, + {a=0xb60, b=0xb61, v=35, name="Vowel_Independent"}, + {a=0xb62, b=0xb63, v=34, name="Vowel_Dependent"}, + {a=0xb64, b=0xb65, v=0, name="Other"}, + {a=0xb66, b=0xb6f, v=24, name="Number"}, + {a=0xb70, b=0xb70, v=0, name="Other"}, + {a=0xb71, b=0xb71, v=5, name="Consonant"}, + {a=0xb72, b=0xb81, v=0, name="Other"}, + {a=0xb82, b=0xb82, v=2, name="Bindu"}, + {a=0xb83, b=0xb83, v=21, name="Modifying_Letter"}, + {a=0xb84, b=0xb84, v=0, name="Other"}, + {a=0xb85, b=0xb8a, v=35, name="Vowel_Independent"}, + {a=0xb8b, b=0xb8d, v=0, name="Other"}, + {a=0xb8e, b=0xb90, v=35, name="Vowel_Independent"}, + {a=0xb91, b=0xb91, v=0, name="Other"}, + {a=0xb92, b=0xb94, v=35, name="Vowel_Independent"}, + {a=0xb95, b=0xb95, v=5, name="Consonant"}, + {a=0xb96, b=0xb98, v=0, name="Other"}, + {a=0xb99, b=0xb9a, v=5, name="Consonant"}, + {a=0xb9b, b=0xb9b, v=0, name="Other"}, + {a=0xb9c, b=0xb9c, v=5, name="Consonant"}, + {a=0xb9d, b=0xb9d, v=0, name="Other"}, + {a=0xb9e, b=0xb9f, v=5, name="Consonant"}, + {a=0xba0, b=0xba2, v=0, name="Other"}, + {a=0xba3, b=0xba4, v=5, name="Consonant"}, + {a=0xba5, b=0xba7, v=0, name="Other"}, + {a=0xba8, b=0xbaa, v=5, name="Consonant"}, + {a=0xbab, b=0xbad, v=0, name="Other"}, + {a=0xbae, b=0xbb9, v=5, name="Consonant"}, + {a=0xbba, b=0xbbd, v=0, name="Other"}, + {a=0xbbe, b=0xbc2, v=34, name="Vowel_Dependent"}, + {a=0xbc3, b=0xbc5, v=0, name="Other"}, + {a=0xbc6, b=0xbc8, v=34, name="Vowel_Dependent"}, + {a=0xbc9, b=0xbc9, v=0, name="Other"}, + {a=0xbca, b=0xbcc, v=34, name="Vowel_Dependent"}, + {a=0xbcd, b=0xbcd, v=31, name="Virama"}, + {a=0xbce, b=0xbd6, v=0, name="Other"}, + {a=0xbd7, b=0xbd7, v=34, name="Vowel_Dependent"}, + {a=0xbd8, b=0xbe5, v=0, name="Other"}, + {a=0xbe6, b=0xbef, v=24, name="Number"}, + {a=0xbf0, b=0xbff, v=0, name="Other"}, + {a=0xc00, b=0xc02, v=2, name="Bindu"}, + {a=0xc03, b=0xc03, v=32, name="Visarga"}, + {a=0xc04, b=0xc04, v=2, name="Bindu"}, + {a=0xc05, b=0xc0c, v=35, name="Vowel_Independent"}, + {a=0xc0d, b=0xc0d, v=0, name="Other"}, + {a=0xc0e, b=0xc10, v=35, name="Vowel_Independent"}, + {a=0xc11, b=0xc11, v=0, name="Other"}, + {a=0xc12, b=0xc14, v=35, name="Vowel_Independent"}, + {a=0xc15, b=0xc28, v=5, name="Consonant"}, + {a=0xc29, b=0xc29, v=0, name="Other"}, + {a=0xc2a, b=0xc39, v=5, name="Consonant"}, + {a=0xc3a, b=0xc3b, v=0, name="Other"}, + {a=0xc3c, b=0xc3c, v=23, name="Nukta"}, + {a=0xc3d, b=0xc3d, v=1, name="Avagraha"}, + {a=0xc3e, b=0xc44, v=34, name="Vowel_Dependent"}, + {a=0xc45, b=0xc45, v=0, name="Other"}, + {a=0xc46, b=0xc48, v=34, name="Vowel_Dependent"}, + {a=0xc49, b=0xc49, v=0, name="Other"}, + {a=0xc4a, b=0xc4c, v=34, name="Vowel_Dependent"}, + {a=0xc4d, b=0xc4d, v=31, name="Virama"}, + {a=0xc4e, b=0xc54, v=0, name="Other"}, + {a=0xc55, b=0xc56, v=34, name="Vowel_Dependent"}, + {a=0xc57, b=0xc57, v=0, name="Other"}, + {a=0xc58, b=0xc5a, v=5, name="Consonant"}, + {a=0xc5b, b=0xc5c, v=0, name="Other"}, + {a=0xc5d, b=0xc5d, v=6, name="Consonant_Dead"}, + {a=0xc5e, b=0xc5f, v=0, name="Other"}, + {a=0xc60, b=0xc61, v=35, name="Vowel_Independent"}, + {a=0xc62, b=0xc63, v=34, name="Vowel_Dependent"}, + {a=0xc64, b=0xc65, v=0, name="Other"}, + {a=0xc66, b=0xc6f, v=24, name="Number"}, + {a=0xc70, b=0xc7f, v=0, name="Other"}, + {a=0xc80, b=0xc82, v=2, name="Bindu"}, + {a=0xc83, b=0xc83, v=32, name="Visarga"}, + {a=0xc84, b=0xc84, v=0, name="Other"}, + {a=0xc85, b=0xc8c, v=35, name="Vowel_Independent"}, + {a=0xc8d, b=0xc8d, v=0, name="Other"}, + {a=0xc8e, b=0xc90, v=35, name="Vowel_Independent"}, + {a=0xc91, b=0xc91, v=0, name="Other"}, + {a=0xc92, b=0xc94, v=35, name="Vowel_Independent"}, + {a=0xc95, b=0xca8, v=5, name="Consonant"}, + {a=0xca9, b=0xca9, v=0, name="Other"}, + {a=0xcaa, b=0xcb3, v=5, name="Consonant"}, + {a=0xcb4, b=0xcb4, v=0, name="Other"}, + {a=0xcb5, b=0xcb9, v=5, name="Consonant"}, + {a=0xcba, b=0xcbb, v=0, name="Other"}, + {a=0xcbc, b=0xcbc, v=23, name="Nukta"}, + {a=0xcbd, b=0xcbd, v=1, name="Avagraha"}, + {a=0xcbe, b=0xcc4, v=34, name="Vowel_Dependent"}, + {a=0xcc5, b=0xcc5, v=0, name="Other"}, + {a=0xcc6, b=0xcc8, v=34, name="Vowel_Dependent"}, + {a=0xcc9, b=0xcc9, v=0, name="Other"}, + {a=0xcca, b=0xccc, v=34, name="Vowel_Dependent"}, + {a=0xccd, b=0xccd, v=31, name="Virama"}, + {a=0xcce, b=0xcd4, v=0, name="Other"}, + {a=0xcd5, b=0xcd6, v=34, name="Vowel_Dependent"}, + {a=0xcd7, b=0xcdc, v=0, name="Other"}, + {a=0xcdd, b=0xcdd, v=6, name="Consonant_Dead"}, + {a=0xcde, b=0xcde, v=5, name="Consonant"}, + {a=0xcdf, b=0xcdf, v=0, name="Other"}, + {a=0xce0, b=0xce1, v=35, name="Vowel_Independent"}, + {a=0xce2, b=0xce3, v=34, name="Vowel_Dependent"}, + {a=0xce4, b=0xce5, v=0, name="Other"}, + {a=0xce6, b=0xcef, v=24, name="Number"}, + {a=0xcf0, b=0xcf0, v=0, name="Other"}, + {a=0xcf1, b=0xcf2, v=17, name="Consonant_With_Stacker"}, + {a=0xcf3, b=0xcf3, v=2, name="Bindu"}, + {a=0xcf4, b=0xcff, v=0, name="Other"}, + {a=0xd00, b=0xd02, v=2, name="Bindu"}, + {a=0xd03, b=0xd03, v=32, name="Visarga"}, + {a=0xd04, b=0xd04, v=2, name="Bindu"}, + {a=0xd05, b=0xd0c, v=35, name="Vowel_Independent"}, + {a=0xd0d, b=0xd0d, v=0, name="Other"}, + {a=0xd0e, b=0xd10, v=35, name="Vowel_Independent"}, + {a=0xd11, b=0xd11, v=0, name="Other"}, + {a=0xd12, b=0xd14, v=35, name="Vowel_Independent"}, + {a=0xd15, b=0xd3a, v=5, name="Consonant"}, + {a=0xd3b, b=0xd3c, v=26, name="Pure_Killer"}, + {a=0xd3d, b=0xd3d, v=1, name="Avagraha"}, + {a=0xd3e, b=0xd44, v=34, name="Vowel_Dependent"}, + {a=0xd45, b=0xd45, v=0, name="Other"}, + {a=0xd46, b=0xd48, v=34, name="Vowel_Dependent"}, + {a=0xd49, b=0xd49, v=0, name="Other"}, + {a=0xd4a, b=0xd4c, v=34, name="Vowel_Dependent"}, + {a=0xd4d, b=0xd4d, v=31, name="Virama"}, + {a=0xd4e, b=0xd4e, v=13, name="Consonant_Preceding_Repha"}, + {a=0xd4f, b=0xd53, v=0, name="Other"}, + {a=0xd54, b=0xd56, v=6, name="Consonant_Dead"}, + {a=0xd57, b=0xd57, v=34, name="Vowel_Dependent"}, + {a=0xd58, b=0xd5e, v=0, name="Other"}, + {a=0xd5f, b=0xd61, v=35, name="Vowel_Independent"}, + {a=0xd62, b=0xd63, v=34, name="Vowel_Dependent"}, + {a=0xd64, b=0xd65, v=0, name="Other"}, + {a=0xd66, b=0xd6f, v=24, name="Number"}, + {a=0xd70, b=0xd79, v=0, name="Other"}, + {a=0xd7a, b=0xd7f, v=6, name="Consonant_Dead"}, + {a=0xd80, b=0xd80, v=0, name="Other"}, + {a=0xd81, b=0xd82, v=2, name="Bindu"}, + {a=0xd83, b=0xd83, v=32, name="Visarga"}, + {a=0xd84, b=0xd84, v=0, name="Other"}, + {a=0xd85, b=0xd96, v=35, name="Vowel_Independent"}, + {a=0xd97, b=0xd99, v=0, name="Other"}, + {a=0xd9a, b=0xdb1, v=5, name="Consonant"}, + {a=0xdb2, b=0xdb2, v=0, name="Other"}, + {a=0xdb3, b=0xdbb, v=5, name="Consonant"}, + {a=0xdbc, b=0xdbc, v=0, name="Other"}, + {a=0xdbd, b=0xdbd, v=5, name="Consonant"}, + {a=0xdbe, b=0xdbf, v=0, name="Other"}, + {a=0xdc0, b=0xdc6, v=5, name="Consonant"}, + {a=0xdc7, b=0xdc9, v=0, name="Other"}, + {a=0xdca, b=0xdca, v=31, name="Virama"}, + {a=0xdcb, b=0xdce, v=0, name="Other"}, + {a=0xdcf, b=0xdd4, v=34, name="Vowel_Dependent"}, + {a=0xdd5, b=0xdd5, v=0, name="Other"}, + {a=0xdd6, b=0xdd6, v=34, name="Vowel_Dependent"}, + {a=0xdd7, b=0xdd7, v=0, name="Other"}, + {a=0xdd8, b=0xddf, v=34, name="Vowel_Dependent"}, + {a=0xde0, b=0xde5, v=0, name="Other"}, + {a=0xde6, b=0xdef, v=24, name="Number"}, + {a=0xdf0, b=0xdf1, v=0, name="Other"}, + {a=0xdf2, b=0xdf3, v=34, name="Vowel_Dependent"}, + {a=0xdf4, b=0xe00, v=0, name="Other"}, + {a=0xe01, b=0xe2e, v=5, name="Consonant"}, + {a=0xe2f, b=0xe2f, v=0, name="Other"}, + {a=0xe30, b=0xe39, v=34, name="Vowel_Dependent"}, + {a=0xe3a, b=0xe3a, v=26, name="Pure_Killer"}, + {a=0xe3b, b=0xe3f, v=0, name="Other"}, + {a=0xe40, b=0xe45, v=34, name="Vowel_Dependent"}, + {a=0xe46, b=0xe46, v=0, name="Other"}, + {a=0xe47, b=0xe47, v=34, name="Vowel_Dependent"}, + {a=0xe48, b=0xe4b, v=30, name="Tone_Mark"}, + {a=0xe4c, b=0xe4c, v=10, name="Consonant_Killer"}, + {a=0xe4d, b=0xe4d, v=2, name="Bindu"}, + {a=0xe4e, b=0xe4e, v=26, name="Pure_Killer"}, + {a=0xe4f, b=0xe4f, v=0, name="Other"}, + {a=0xe50, b=0xe59, v=24, name="Number"}, + {a=0xe5a, b=0xe80, v=0, name="Other"}, + {a=0xe81, b=0xe82, v=5, name="Consonant"}, + {a=0xe83, b=0xe83, v=0, name="Other"}, + {a=0xe84, b=0xe84, v=5, name="Consonant"}, + {a=0xe85, b=0xe85, v=0, name="Other"}, + {a=0xe86, b=0xe8a, v=5, name="Consonant"}, + {a=0xe8b, b=0xe8b, v=0, name="Other"}, + {a=0xe8c, b=0xea3, v=5, name="Consonant"}, + {a=0xea4, b=0xea4, v=0, name="Other"}, + {a=0xea5, b=0xea5, v=5, name="Consonant"}, + {a=0xea6, b=0xea6, v=0, name="Other"}, + {a=0xea7, b=0xeae, v=5, name="Consonant"}, + {a=0xeaf, b=0xeaf, v=0, name="Other"}, + {a=0xeb0, b=0xeb9, v=34, name="Vowel_Dependent"}, + {a=0xeba, b=0xeba, v=26, name="Pure_Killer"}, + {a=0xebb, b=0xebb, v=34, name="Vowel_Dependent"}, + {a=0xebc, b=0xebd, v=11, name="Consonant_Medial"}, + {a=0xebe, b=0xebf, v=0, name="Other"}, + {a=0xec0, b=0xec4, v=34, name="Vowel_Dependent"}, + {a=0xec5, b=0xec7, v=0, name="Other"}, + {a=0xec8, b=0xecb, v=30, name="Tone_Mark"}, + {a=0xecc, b=0xecc, v=0, name="Other"}, + {a=0xecd, b=0xecd, v=2, name="Bindu"}, + {a=0xece, b=0xece, v=28, name="Syllable_Modifier"}, + {a=0xecf, b=0xecf, v=0, name="Other"}, + {a=0xed0, b=0xed9, v=24, name="Number"}, + {a=0xeda, b=0xedb, v=0, name="Other"}, + {a=0xedc, b=0xedf, v=5, name="Consonant"}, + {a=0xee0, b=0xf1f, v=0, name="Other"}, + {a=0xf20, b=0xf33, v=24, name="Number"}, + {a=0xf34, b=0xf34, v=0, name="Other"}, + {a=0xf35, b=0xf35, v=28, name="Syllable_Modifier"}, + {a=0xf36, b=0xf36, v=0, name="Other"}, + {a=0xf37, b=0xf37, v=28, name="Syllable_Modifier"}, + {a=0xf38, b=0xf38, v=0, name="Other"}, + {a=0xf39, b=0xf39, v=23, name="Nukta"}, + {a=0xf3a, b=0xf3f, v=0, name="Other"}, + {a=0xf40, b=0xf47, v=5, name="Consonant"}, + {a=0xf48, b=0xf48, v=0, name="Other"}, + {a=0xf49, b=0xf6c, v=5, name="Consonant"}, + {a=0xf6d, b=0xf70, v=0, name="Other"}, + {a=0xf71, b=0xf7d, v=34, name="Vowel_Dependent"}, + {a=0xf7e, b=0xf7e, v=2, name="Bindu"}, + {a=0xf7f, b=0xf7f, v=32, name="Visarga"}, + {a=0xf80, b=0xf81, v=34, name="Vowel_Dependent"}, + {a=0xf82, b=0xf83, v=2, name="Bindu"}, + {a=0xf84, b=0xf84, v=26, name="Pure_Killer"}, + {a=0xf85, b=0xf85, v=1, name="Avagraha"}, + {a=0xf86, b=0xf87, v=0, name="Other"}, + {a=0xf88, b=0xf8c, v=8, name="Consonant_Head_Letter"}, + {a=0xf8d, b=0xf97, v=15, name="Consonant_Subjoined"}, + {a=0xf98, b=0xf98, v=0, name="Other"}, + {a=0xf99, b=0xfbc, v=15, name="Consonant_Subjoined"}, + {a=0xfbd, b=0xfc5, v=0, name="Other"}, + {a=0xfc6, b=0xfc6, v=28, name="Syllable_Modifier"}, + {a=0xfc7, b=0xfff, v=0, name="Other"}, + {a=0x1000, b=0x1020, v=5, name="Consonant"}, + {a=0x1021, b=0x102a, v=35, name="Vowel_Independent"}, + {a=0x102b, b=0x1035, v=34, name="Vowel_Dependent"}, + {a=0x1036, b=0x1036, v=2, name="Bindu"}, + {a=0x1037, b=0x1037, v=30, name="Tone_Mark"}, + {a=0x1038, b=0x1038, v=32, name="Visarga"}, + {a=0x1039, b=0x1039, v=19, name="Invisible_Stacker"}, + {a=0x103a, b=0x103a, v=26, name="Pure_Killer"}, + {a=0x103b, b=0x103e, v=11, name="Consonant_Medial"}, + {a=0x103f, b=0x103f, v=5, name="Consonant"}, + {a=0x1040, b=0x1049, v=24, name="Number"}, + {a=0x104a, b=0x104a, v=0, name="Other"}, + {a=0x104b, b=0x104b, v=12, name="Consonant_Placeholder"}, + {a=0x104c, b=0x104d, v=0, name="Other"}, + {a=0x104e, b=0x104e, v=12, name="Consonant_Placeholder"}, + {a=0x104f, b=0x104f, v=0, name="Other"}, + {a=0x1050, b=0x1051, v=5, name="Consonant"}, + {a=0x1052, b=0x1055, v=35, name="Vowel_Independent"}, + {a=0x1056, b=0x1059, v=34, name="Vowel_Dependent"}, + {a=0x105a, b=0x105d, v=5, name="Consonant"}, + {a=0x105e, b=0x1060, v=11, name="Consonant_Medial"}, + {a=0x1061, b=0x1061, v=5, name="Consonant"}, + {a=0x1062, b=0x1062, v=34, name="Vowel_Dependent"}, + {a=0x1063, b=0x1064, v=30, name="Tone_Mark"}, + {a=0x1065, b=0x1066, v=5, name="Consonant"}, + {a=0x1067, b=0x1068, v=34, name="Vowel_Dependent"}, + {a=0x1069, b=0x106d, v=30, name="Tone_Mark"}, + {a=0x106e, b=0x1070, v=5, name="Consonant"}, + {a=0x1071, b=0x1074, v=34, name="Vowel_Dependent"}, + {a=0x1075, b=0x1081, v=5, name="Consonant"}, + {a=0x1082, b=0x1082, v=11, name="Consonant_Medial"}, + {a=0x1083, b=0x1086, v=34, name="Vowel_Dependent"}, + {a=0x1087, b=0x108d, v=30, name="Tone_Mark"}, + {a=0x108e, b=0x108e, v=5, name="Consonant"}, + {a=0x108f, b=0x108f, v=30, name="Tone_Mark"}, + {a=0x1090, b=0x1099, v=24, name="Number"}, + {a=0x109a, b=0x109b, v=30, name="Tone_Mark"}, + {a=0x109c, b=0x109d, v=34, name="Vowel_Dependent"}, + {a=0x109e, b=0x16ff, v=0, name="Other"}, + {a=0x1700, b=0x1702, v=35, name="Vowel_Independent"}, + {a=0x1703, b=0x1711, v=5, name="Consonant"}, + {a=0x1712, b=0x1713, v=34, name="Vowel_Dependent"}, + {a=0x1714, b=0x1715, v=26, name="Pure_Killer"}, + {a=0x1716, b=0x171e, v=0, name="Other"}, + {a=0x171f, b=0x171f, v=5, name="Consonant"}, + {a=0x1720, b=0x1722, v=35, name="Vowel_Independent"}, + {a=0x1723, b=0x1731, v=5, name="Consonant"}, + {a=0x1732, b=0x1733, v=34, name="Vowel_Dependent"}, + {a=0x1734, b=0x1734, v=26, name="Pure_Killer"}, + {a=0x1735, b=0x173f, v=0, name="Other"}, + {a=0x1740, b=0x1742, v=35, name="Vowel_Independent"}, + {a=0x1743, b=0x1751, v=5, name="Consonant"}, + {a=0x1752, b=0x1753, v=34, name="Vowel_Dependent"}, + {a=0x1754, b=0x175f, v=0, name="Other"}, + {a=0x1760, b=0x1762, v=35, name="Vowel_Independent"}, + {a=0x1763, b=0x176c, v=5, name="Consonant"}, + {a=0x176d, b=0x176d, v=0, name="Other"}, + {a=0x176e, b=0x1770, v=5, name="Consonant"}, + {a=0x1771, b=0x1771, v=0, name="Other"}, + {a=0x1772, b=0x1773, v=34, name="Vowel_Dependent"}, + {a=0x1774, b=0x177f, v=0, name="Other"}, + {a=0x1780, b=0x17a2, v=5, name="Consonant"}, + {a=0x17a3, b=0x17b3, v=35, name="Vowel_Independent"}, + {a=0x17b4, b=0x17b5, v=0, name="Other"}, + {a=0x17b6, b=0x17c5, v=34, name="Vowel_Dependent"}, + {a=0x17c6, b=0x17c6, v=2, name="Bindu"}, + {a=0x17c7, b=0x17c7, v=32, name="Visarga"}, + {a=0x17c8, b=0x17c8, v=34, name="Vowel_Dependent"}, + {a=0x17c9, b=0x17ca, v=27, name="Register_Shifter"}, + {a=0x17cb, b=0x17cb, v=28, name="Syllable_Modifier"}, + {a=0x17cc, b=0x17cc, v=16, name="Consonant_Succeeding_Repha"}, + {a=0x17cd, b=0x17cd, v=10, name="Consonant_Killer"}, + {a=0x17ce, b=0x17d0, v=28, name="Syllable_Modifier"}, + {a=0x17d1, b=0x17d1, v=26, name="Pure_Killer"}, + {a=0x17d2, b=0x17d2, v=19, name="Invisible_Stacker"}, + {a=0x17d3, b=0x17d3, v=28, name="Syllable_Modifier"}, + {a=0x17d4, b=0x17db, v=0, name="Other"}, + {a=0x17dc, b=0x17dc, v=1, name="Avagraha"}, + {a=0x17dd, b=0x17dd, v=28, name="Syllable_Modifier"}, + {a=0x17de, b=0x17df, v=0, name="Other"}, + {a=0x17e0, b=0x17e9, v=24, name="Number"}, + {a=0x17ea, b=0x18ff, v=0, name="Other"}, + {a=0x1900, b=0x1900, v=12, name="Consonant_Placeholder"}, + {a=0x1901, b=0x191e, v=5, name="Consonant"}, + {a=0x191f, b=0x191f, v=0, name="Other"}, + {a=0x1920, b=0x1928, v=34, name="Vowel_Dependent"}, + {a=0x1929, b=0x192b, v=15, name="Consonant_Subjoined"}, + {a=0x192c, b=0x192f, v=0, name="Other"}, + {a=0x1930, b=0x1931, v=7, name="Consonant_Final"}, + {a=0x1932, b=0x1932, v=2, name="Bindu"}, + {a=0x1933, b=0x1939, v=7, name="Consonant_Final"}, + {a=0x193a, b=0x193a, v=34, name="Vowel_Dependent"}, + {a=0x193b, b=0x193b, v=28, name="Syllable_Modifier"}, + {a=0x193c, b=0x1945, v=0, name="Other"}, + {a=0x1946, b=0x194f, v=24, name="Number"}, + {a=0x1950, b=0x1962, v=5, name="Consonant"}, + {a=0x1963, b=0x196d, v=33, name="Vowel"}, + {a=0x196e, b=0x196f, v=0, name="Other"}, + {a=0x1970, b=0x1974, v=29, name="Tone_Letter"}, + {a=0x1975, b=0x197f, v=0, name="Other"}, + {a=0x1980, b=0x19ab, v=5, name="Consonant"}, + {a=0x19ac, b=0x19af, v=0, name="Other"}, + {a=0x19b0, b=0x19c0, v=34, name="Vowel_Dependent"}, + {a=0x19c1, b=0x19c7, v=7, name="Consonant_Final"}, + {a=0x19c8, b=0x19c9, v=30, name="Tone_Mark"}, + {a=0x19ca, b=0x19cf, v=0, name="Other"}, + {a=0x19d0, b=0x19da, v=24, name="Number"}, + {a=0x19db, b=0x19ff, v=0, name="Other"}, + {a=0x1a00, b=0x1a16, v=5, name="Consonant"}, + {a=0x1a17, b=0x1a1b, v=34, name="Vowel_Dependent"}, + {a=0x1a1c, b=0x1a1f, v=0, name="Other"}, + {a=0x1a20, b=0x1a4c, v=5, name="Consonant"}, + {a=0x1a4d, b=0x1a52, v=35, name="Vowel_Independent"}, + {a=0x1a53, b=0x1a54, v=5, name="Consonant"}, + {a=0x1a55, b=0x1a56, v=11, name="Consonant_Medial"}, + {a=0x1a57, b=0x1a57, v=15, name="Consonant_Subjoined"}, + {a=0x1a58, b=0x1a59, v=7, name="Consonant_Final"}, + {a=0x1a5a, b=0x1a5a, v=9, name="Consonant_Initial_Postfixed"}, + {a=0x1a5b, b=0x1a5e, v=15, name="Consonant_Subjoined"}, + {a=0x1a5f, b=0x1a5f, v=0, name="Other"}, + {a=0x1a60, b=0x1a60, v=19, name="Invisible_Stacker"}, + {a=0x1a61, b=0x1a73, v=34, name="Vowel_Dependent"}, + {a=0x1a74, b=0x1a74, v=2, name="Bindu"}, + {a=0x1a75, b=0x1a79, v=30, name="Tone_Mark"}, + {a=0x1a7a, b=0x1a7a, v=26, name="Pure_Killer"}, + {a=0x1a7b, b=0x1a7c, v=28, name="Syllable_Modifier"}, + {a=0x1a7d, b=0x1a7e, v=0, name="Other"}, + {a=0x1a7f, b=0x1a7f, v=28, name="Syllable_Modifier"}, + {a=0x1a80, b=0x1a89, v=24, name="Number"}, + {a=0x1a8a, b=0x1a8f, v=0, name="Other"}, + {a=0x1a90, b=0x1a99, v=24, name="Number"}, + {a=0x1a9a, b=0x1aff, v=0, name="Other"}, + {a=0x1b00, b=0x1b02, v=2, name="Bindu"}, + {a=0x1b03, b=0x1b03, v=7, name="Consonant_Final"}, + {a=0x1b04, b=0x1b04, v=32, name="Visarga"}, + {a=0x1b05, b=0x1b12, v=35, name="Vowel_Independent"}, + {a=0x1b13, b=0x1b33, v=5, name="Consonant"}, + {a=0x1b34, b=0x1b34, v=23, name="Nukta"}, + {a=0x1b35, b=0x1b43, v=34, name="Vowel_Dependent"}, + {a=0x1b44, b=0x1b44, v=31, name="Virama"}, + {a=0x1b45, b=0x1b4c, v=5, name="Consonant"}, + {a=0x1b4d, b=0x1b4f, v=0, name="Other"}, + {a=0x1b50, b=0x1b59, v=24, name="Number"}, + {a=0x1b5a, b=0x1b7f, v=0, name="Other"}, + {a=0x1b80, b=0x1b80, v=2, name="Bindu"}, + {a=0x1b81, b=0x1b81, v=7, name="Consonant_Final"}, + {a=0x1b82, b=0x1b82, v=32, name="Visarga"}, + {a=0x1b83, b=0x1b89, v=35, name="Vowel_Independent"}, + {a=0x1b8a, b=0x1ba0, v=5, name="Consonant"}, + {a=0x1ba1, b=0x1ba3, v=15, name="Consonant_Subjoined"}, + {a=0x1ba4, b=0x1ba9, v=34, name="Vowel_Dependent"}, + {a=0x1baa, b=0x1baa, v=26, name="Pure_Killer"}, + {a=0x1bab, b=0x1bab, v=19, name="Invisible_Stacker"}, + {a=0x1bac, b=0x1bad, v=15, name="Consonant_Subjoined"}, + {a=0x1bae, b=0x1baf, v=5, name="Consonant"}, + {a=0x1bb0, b=0x1bb9, v=24, name="Number"}, + {a=0x1bba, b=0x1bba, v=1, name="Avagraha"}, + {a=0x1bbb, b=0x1bbd, v=5, name="Consonant"}, + {a=0x1bbe, b=0x1bbf, v=7, name="Consonant_Final"}, + {a=0x1bc0, b=0x1be3, v=5, name="Consonant"}, + {a=0x1be4, b=0x1be5, v=35, name="Vowel_Independent"}, + {a=0x1be6, b=0x1be6, v=23, name="Nukta"}, + {a=0x1be7, b=0x1bef, v=34, name="Vowel_Dependent"}, + {a=0x1bf0, b=0x1bf1, v=7, name="Consonant_Final"}, + {a=0x1bf2, b=0x1bf3, v=26, name="Pure_Killer"}, + {a=0x1bf4, b=0x1bff, v=0, name="Other"}, + {a=0x1c00, b=0x1c23, v=5, name="Consonant"}, + {a=0x1c24, b=0x1c25, v=15, name="Consonant_Subjoined"}, + {a=0x1c26, b=0x1c2c, v=34, name="Vowel_Dependent"}, + {a=0x1c2d, b=0x1c33, v=7, name="Consonant_Final"}, + {a=0x1c34, b=0x1c35, v=2, name="Bindu"}, + {a=0x1c36, b=0x1c36, v=28, name="Syllable_Modifier"}, + {a=0x1c37, b=0x1c37, v=23, name="Nukta"}, + {a=0x1c38, b=0x1c3f, v=0, name="Other"}, + {a=0x1c40, b=0x1c49, v=24, name="Number"}, + {a=0x1c4a, b=0x1c4c, v=0, name="Other"}, + {a=0x1c4d, b=0x1c4f, v=5, name="Consonant"}, + {a=0x1c50, b=0x1ccf, v=0, name="Other"}, + {a=0x1cd0, b=0x1cd2, v=4, name="Cantillation_Mark"}, + {a=0x1cd3, b=0x1cd3, v=0, name="Other"}, + {a=0x1cd4, b=0x1ce1, v=4, name="Cantillation_Mark"}, + {a=0x1ce2, b=0x1cf1, v=0, name="Other"}, + {a=0x1cf2, b=0x1cf3, v=6, name="Consonant_Dead"}, + {a=0x1cf4, b=0x1cf4, v=4, name="Cantillation_Mark"}, + {a=0x1cf5, b=0x1cf6, v=17, name="Consonant_With_Stacker"}, + {a=0x1cf7, b=0x1cf9, v=4, name="Cantillation_Mark"}, + {a=0x1cfa, b=0x1cfa, v=12, name="Consonant_Placeholder"}, + {a=0x1cfb, b=0x1dfa, v=0, name="Other"}, + {a=0x1dfb, b=0x1dfb, v=28, name="Syllable_Modifier"}, + {a=0x1dfc, b=0x200b, v=0, name="Other"}, + {a=0x200c, b=0x200c, v=22, name="Non_Joiner"}, + {a=0x200d, b=0x200d, v=20, name="Joiner"}, + {a=0x200e, b=0x200f, v=0, name="Other"}, + {a=0x2010, b=0x2014, v=12, name="Consonant_Placeholder"}, + {a=0x2015, b=0x2073, v=0, name="Other"}, + {a=0x2074, b=0x2074, v=28, name="Syllable_Modifier"}, + {a=0x2075, b=0x2081, v=0, name="Other"}, + {a=0x2082, b=0x2084, v=28, name="Syllable_Modifier"}, + {a=0x2085, b=0x20ef, v=0, name="Other"}, + {a=0x20f0, b=0x20f0, v=4, name="Cantillation_Mark"}, + {a=0x20f1, b=0x25cb, v=0, name="Other"}, + {a=0x25cc, b=0x25cc, v=12, name="Consonant_Placeholder"}, + {a=0x25cd, b=0xa7ff, v=0, name="Other"}, + {a=0xa800, b=0xa801, v=35, name="Vowel_Independent"}, + {a=0xa802, b=0xa802, v=34, name="Vowel_Dependent"}, + {a=0xa803, b=0xa805, v=35, name="Vowel_Independent"}, + {a=0xa806, b=0xa806, v=31, name="Virama"}, + {a=0xa807, b=0xa80a, v=5, name="Consonant"}, + {a=0xa80b, b=0xa80b, v=2, name="Bindu"}, + {a=0xa80c, b=0xa822, v=5, name="Consonant"}, + {a=0xa823, b=0xa827, v=34, name="Vowel_Dependent"}, + {a=0xa828, b=0xa82b, v=0, name="Other"}, + {a=0xa82c, b=0xa82c, v=26, name="Pure_Killer"}, + {a=0xa82d, b=0xa83f, v=0, name="Other"}, + {a=0xa840, b=0xa85d, v=5, name="Consonant"}, + {a=0xa85e, b=0xa861, v=33, name="Vowel"}, + {a=0xa862, b=0xa865, v=5, name="Consonant"}, + {a=0xa866, b=0xa866, v=33, name="Vowel"}, + {a=0xa867, b=0xa868, v=15, name="Consonant_Subjoined"}, + {a=0xa869, b=0xa870, v=5, name="Consonant"}, + {a=0xa871, b=0xa871, v=15, name="Consonant_Subjoined"}, + {a=0xa872, b=0xa872, v=5, name="Consonant"}, + {a=0xa873, b=0xa873, v=2, name="Bindu"}, + {a=0xa874, b=0xa87f, v=0, name="Other"}, + {a=0xa880, b=0xa880, v=2, name="Bindu"}, + {a=0xa881, b=0xa881, v=32, name="Visarga"}, + {a=0xa882, b=0xa891, v=35, name="Vowel_Independent"}, + {a=0xa892, b=0xa8b3, v=5, name="Consonant"}, + {a=0xa8b4, b=0xa8b4, v=11, name="Consonant_Medial"}, + {a=0xa8b5, b=0xa8c3, v=34, name="Vowel_Dependent"}, + {a=0xa8c4, b=0xa8c4, v=31, name="Virama"}, + {a=0xa8c5, b=0xa8c5, v=2, name="Bindu"}, + {a=0xa8c6, b=0xa8cf, v=0, name="Other"}, + {a=0xa8d0, b=0xa8d9, v=24, name="Number"}, + {a=0xa8da, b=0xa8df, v=0, name="Other"}, + {a=0xa8e0, b=0xa8f1, v=4, name="Cantillation_Mark"}, + {a=0xa8f2, b=0xa8f3, v=2, name="Bindu"}, + {a=0xa8f4, b=0xa8fd, v=0, name="Other"}, + {a=0xa8fe, b=0xa8fe, v=35, name="Vowel_Independent"}, + {a=0xa8ff, b=0xa8ff, v=34, name="Vowel_Dependent"}, + {a=0xa900, b=0xa909, v=24, name="Number"}, + {a=0xa90a, b=0xa921, v=5, name="Consonant"}, + {a=0xa922, b=0xa92a, v=33, name="Vowel"}, + {a=0xa92b, b=0xa92d, v=30, name="Tone_Mark"}, + {a=0xa92e, b=0xa92f, v=0, name="Other"}, + {a=0xa930, b=0xa946, v=5, name="Consonant"}, + {a=0xa947, b=0xa94e, v=34, name="Vowel_Dependent"}, + {a=0xa94f, b=0xa952, v=7, name="Consonant_Final"}, + {a=0xa953, b=0xa953, v=26, name="Pure_Killer"}, + {a=0xa954, b=0xa97f, v=0, name="Other"}, + {a=0xa980, b=0xa981, v=2, name="Bindu"}, + {a=0xa982, b=0xa982, v=7, name="Consonant_Final"}, + {a=0xa983, b=0xa983, v=32, name="Visarga"}, + {a=0xa984, b=0xa988, v=35, name="Vowel_Independent"}, + {a=0xa989, b=0xa98b, v=5, name="Consonant"}, + {a=0xa98c, b=0xa98e, v=35, name="Vowel_Independent"}, + {a=0xa98f, b=0xa9b2, v=5, name="Consonant"}, + {a=0xa9b3, b=0xa9b3, v=23, name="Nukta"}, + {a=0xa9b4, b=0xa9bc, v=34, name="Vowel_Dependent"}, + {a=0xa9bd, b=0xa9bf, v=11, name="Consonant_Medial"}, + {a=0xa9c0, b=0xa9c0, v=31, name="Virama"}, + {a=0xa9c1, b=0xa9cf, v=0, name="Other"}, + {a=0xa9d0, b=0xa9d9, v=24, name="Number"}, + {a=0xa9da, b=0xa9df, v=0, name="Other"}, + {a=0xa9e0, b=0xa9e4, v=5, name="Consonant"}, + {a=0xa9e5, b=0xa9e5, v=34, name="Vowel_Dependent"}, + {a=0xa9e6, b=0xa9e6, v=0, name="Other"}, + {a=0xa9e7, b=0xa9ef, v=5, name="Consonant"}, + {a=0xa9f0, b=0xa9f9, v=24, name="Number"}, + {a=0xa9fa, b=0xa9fe, v=5, name="Consonant"}, + {a=0xa9ff, b=0xa9ff, v=0, name="Other"}, + {a=0xaa00, b=0xaa05, v=35, name="Vowel_Independent"}, + {a=0xaa06, b=0xaa28, v=5, name="Consonant"}, + {a=0xaa29, b=0xaa32, v=34, name="Vowel_Dependent"}, + {a=0xaa33, b=0xaa36, v=11, name="Consonant_Medial"}, + {a=0xaa37, b=0xaa3f, v=0, name="Other"}, + {a=0xaa40, b=0xaa4d, v=7, name="Consonant_Final"}, + {a=0xaa4e, b=0xaa4f, v=0, name="Other"}, + {a=0xaa50, b=0xaa59, v=24, name="Number"}, + {a=0xaa5a, b=0xaa5f, v=0, name="Other"}, + {a=0xaa60, b=0xaa6f, v=5, name="Consonant"}, + {a=0xaa70, b=0xaa70, v=0, name="Other"}, + {a=0xaa71, b=0xaa73, v=5, name="Consonant"}, + {a=0xaa74, b=0xaa76, v=12, name="Consonant_Placeholder"}, + {a=0xaa77, b=0xaa79, v=0, name="Other"}, + {a=0xaa7a, b=0xaa7a, v=5, name="Consonant"}, + {a=0xaa7b, b=0xaa7d, v=30, name="Tone_Mark"}, + {a=0xaa7e, b=0xaaaf, v=5, name="Consonant"}, + {a=0xaab0, b=0xaabe, v=34, name="Vowel_Dependent"}, + {a=0xaabf, b=0xaabf, v=30, name="Tone_Mark"}, + {a=0xaac0, b=0xaac0, v=29, name="Tone_Letter"}, + {a=0xaac1, b=0xaac1, v=30, name="Tone_Mark"}, + {a=0xaac2, b=0xaac2, v=29, name="Tone_Letter"}, + {a=0xaac3, b=0xaadf, v=0, name="Other"}, + {a=0xaae0, b=0xaae1, v=35, name="Vowel_Independent"}, + {a=0xaae2, b=0xaaea, v=5, name="Consonant"}, + {a=0xaaeb, b=0xaaef, v=34, name="Vowel_Dependent"}, + {a=0xaaf0, b=0xaaf4, v=0, name="Other"}, + {a=0xaaf5, b=0xaaf5, v=32, name="Visarga"}, + {a=0xaaf6, b=0xaaf6, v=19, name="Invisible_Stacker"}, + {a=0xaaf7, b=0xabbf, v=0, name="Other"}, + {a=0xabc0, b=0xabcd, v=5, name="Consonant"}, + {a=0xabce, b=0xabcf, v=35, name="Vowel_Independent"}, + {a=0xabd0, b=0xabd0, v=5, name="Consonant"}, + {a=0xabd1, b=0xabd1, v=35, name="Vowel_Independent"}, + {a=0xabd2, b=0xabda, v=5, name="Consonant"}, + {a=0xabdb, b=0xabe2, v=7, name="Consonant_Final"}, + {a=0xabe3, b=0xabea, v=34, name="Vowel_Dependent"}, + {a=0xabeb, b=0xabeb, v=0, name="Other"}, + {a=0xabec, b=0xabec, v=30, name="Tone_Mark"}, + {a=0xabed, b=0xabed, v=26, name="Pure_Killer"}, + {a=0xabee, b=0xabef, v=0, name="Other"}, + {a=0xabf0, b=0xabf9, v=24, name="Number"}, + {a=0xabfa, b=0x109ff, v=0, name="Other"}, + {a=0x10a00, b=0x10a00, v=5, name="Consonant"}, + {a=0x10a01, b=0x10a03, v=34, name="Vowel_Dependent"}, + {a=0x10a04, b=0x10a04, v=0, name="Other"}, + {a=0x10a05, b=0x10a06, v=34, name="Vowel_Dependent"}, + {a=0x10a07, b=0x10a0b, v=0, name="Other"}, + {a=0x10a0c, b=0x10a0d, v=34, name="Vowel_Dependent"}, + {a=0x10a0e, b=0x10a0e, v=2, name="Bindu"}, + {a=0x10a0f, b=0x10a0f, v=32, name="Visarga"}, + {a=0x10a10, b=0x10a13, v=5, name="Consonant"}, + {a=0x10a14, b=0x10a14, v=0, name="Other"}, + {a=0x10a15, b=0x10a17, v=5, name="Consonant"}, + {a=0x10a18, b=0x10a18, v=0, name="Other"}, + {a=0x10a19, b=0x10a35, v=5, name="Consonant"}, + {a=0x10a36, b=0x10a37, v=0, name="Other"}, + {a=0x10a38, b=0x10a3a, v=23, name="Nukta"}, + {a=0x10a3b, b=0x10a3e, v=0, name="Other"}, + {a=0x10a3f, b=0x10a3f, v=19, name="Invisible_Stacker"}, + {a=0x10a40, b=0x10a48, v=24, name="Number"}, + {a=0x10a49, b=0x10fff, v=0, name="Other"}, + {a=0x11000, b=0x11001, v=2, name="Bindu"}, + {a=0x11002, b=0x11002, v=32, name="Visarga"}, + {a=0x11003, b=0x11004, v=17, name="Consonant_With_Stacker"}, + {a=0x11005, b=0x11012, v=35, name="Vowel_Independent"}, + {a=0x11013, b=0x11037, v=5, name="Consonant"}, + {a=0x11038, b=0x11045, v=34, name="Vowel_Dependent"}, + {a=0x11046, b=0x11046, v=31, name="Virama"}, + {a=0x11047, b=0x11051, v=0, name="Other"}, + {a=0x11052, b=0x11065, v=3, name="Brahmi_Joining_Number"}, + {a=0x11066, b=0x1106f, v=24, name="Number"}, + {a=0x11070, b=0x11070, v=26, name="Pure_Killer"}, + {a=0x11071, b=0x11072, v=35, name="Vowel_Independent"}, + {a=0x11073, b=0x11074, v=34, name="Vowel_Dependent"}, + {a=0x11075, b=0x11075, v=5, name="Consonant"}, + {a=0x11076, b=0x1107e, v=0, name="Other"}, + {a=0x1107f, b=0x1107f, v=25, name="Number_Joiner"}, + {a=0x11080, b=0x11081, v=2, name="Bindu"}, + {a=0x11082, b=0x11082, v=32, name="Visarga"}, + {a=0x11083, b=0x1108c, v=35, name="Vowel_Independent"}, + {a=0x1108d, b=0x110af, v=5, name="Consonant"}, + {a=0x110b0, b=0x110b8, v=34, name="Vowel_Dependent"}, + {a=0x110b9, b=0x110b9, v=31, name="Virama"}, + {a=0x110ba, b=0x110ba, v=23, name="Nukta"}, + {a=0x110bb, b=0x110c1, v=0, name="Other"}, + {a=0x110c2, b=0x110c2, v=34, name="Vowel_Dependent"}, + {a=0x110c3, b=0x110ff, v=0, name="Other"}, + {a=0x11100, b=0x11101, v=2, name="Bindu"}, + {a=0x11102, b=0x11102, v=32, name="Visarga"}, + {a=0x11103, b=0x11106, v=35, name="Vowel_Independent"}, + {a=0x11107, b=0x11126, v=5, name="Consonant"}, + {a=0x11127, b=0x11132, v=34, name="Vowel_Dependent"}, + {a=0x11133, b=0x11133, v=19, name="Invisible_Stacker"}, + {a=0x11134, b=0x11134, v=26, name="Pure_Killer"}, + {a=0x11135, b=0x11135, v=0, name="Other"}, + {a=0x11136, b=0x1113f, v=24, name="Number"}, + {a=0x11140, b=0x11143, v=0, name="Other"}, + {a=0x11144, b=0x11144, v=5, name="Consonant"}, + {a=0x11145, b=0x11146, v=34, name="Vowel_Dependent"}, + {a=0x11147, b=0x11147, v=5, name="Consonant"}, + {a=0x11148, b=0x1114f, v=0, name="Other"}, + {a=0x11150, b=0x11154, v=33, name="Vowel"}, + {a=0x11155, b=0x11172, v=5, name="Consonant"}, + {a=0x11173, b=0x11173, v=23, name="Nukta"}, + {a=0x11174, b=0x1117f, v=0, name="Other"}, + {a=0x11180, b=0x11181, v=2, name="Bindu"}, + {a=0x11182, b=0x11182, v=32, name="Visarga"}, + {a=0x11183, b=0x11190, v=35, name="Vowel_Independent"}, + {a=0x11191, b=0x111b2, v=5, name="Consonant"}, + {a=0x111b3, b=0x111bf, v=34, name="Vowel_Dependent"}, + {a=0x111c0, b=0x111c0, v=31, name="Virama"}, + {a=0x111c1, b=0x111c1, v=1, name="Avagraha"}, + {a=0x111c2, b=0x111c3, v=14, name="Consonant_Prefixed"}, + {a=0x111c4, b=0x111c8, v=0, name="Other"}, + {a=0x111c9, b=0x111c9, v=28, name="Syllable_Modifier"}, + {a=0x111ca, b=0x111ca, v=23, name="Nukta"}, + {a=0x111cb, b=0x111cc, v=34, name="Vowel_Dependent"}, + {a=0x111cd, b=0x111cd, v=0, name="Other"}, + {a=0x111ce, b=0x111ce, v=34, name="Vowel_Dependent"}, + {a=0x111cf, b=0x111cf, v=2, name="Bindu"}, + {a=0x111d0, b=0x111d9, v=24, name="Number"}, + {a=0x111da, b=0x111e0, v=0, name="Other"}, + {a=0x111e1, b=0x111f4, v=24, name="Number"}, + {a=0x111f5, b=0x111ff, v=0, name="Other"}, + {a=0x11200, b=0x11207, v=35, name="Vowel_Independent"}, + {a=0x11208, b=0x11211, v=5, name="Consonant"}, + {a=0x11212, b=0x11212, v=0, name="Other"}, + {a=0x11213, b=0x1122b, v=5, name="Consonant"}, + {a=0x1122c, b=0x11233, v=34, name="Vowel_Dependent"}, + {a=0x11234, b=0x11234, v=2, name="Bindu"}, + {a=0x11235, b=0x11235, v=31, name="Virama"}, + {a=0x11236, b=0x11236, v=23, name="Nukta"}, + {a=0x11237, b=0x11237, v=18, name="Gemination_Mark"}, + {a=0x11238, b=0x1123d, v=0, name="Other"}, + {a=0x1123e, b=0x1123e, v=4, name="Cantillation_Mark"}, + {a=0x1123f, b=0x1123f, v=5, name="Consonant"}, + {a=0x11240, b=0x11240, v=35, name="Vowel_Independent"}, + {a=0x11241, b=0x11241, v=34, name="Vowel_Dependent"}, + {a=0x11242, b=0x1127f, v=0, name="Other"}, + {a=0x11280, b=0x11283, v=35, name="Vowel_Independent"}, + {a=0x11284, b=0x11286, v=5, name="Consonant"}, + {a=0x11287, b=0x11287, v=0, name="Other"}, + {a=0x11288, b=0x11288, v=5, name="Consonant"}, + {a=0x11289, b=0x11289, v=0, name="Other"}, + {a=0x1128a, b=0x1128d, v=5, name="Consonant"}, + {a=0x1128e, b=0x1128e, v=0, name="Other"}, + {a=0x1128f, b=0x1129d, v=5, name="Consonant"}, + {a=0x1129e, b=0x1129e, v=0, name="Other"}, + {a=0x1129f, b=0x112a8, v=5, name="Consonant"}, + {a=0x112a9, b=0x112af, v=0, name="Other"}, + {a=0x112b0, b=0x112b9, v=35, name="Vowel_Independent"}, + {a=0x112ba, b=0x112de, v=5, name="Consonant"}, + {a=0x112df, b=0x112df, v=2, name="Bindu"}, + {a=0x112e0, b=0x112e8, v=34, name="Vowel_Dependent"}, + {a=0x112e9, b=0x112e9, v=23, name="Nukta"}, + {a=0x112ea, b=0x112ea, v=26, name="Pure_Killer"}, + {a=0x112eb, b=0x112ef, v=0, name="Other"}, + {a=0x112f0, b=0x112f9, v=24, name="Number"}, + {a=0x112fa, b=0x112ff, v=0, name="Other"}, + {a=0x11300, b=0x11302, v=2, name="Bindu"}, + {a=0x11303, b=0x11303, v=32, name="Visarga"}, + {a=0x11304, b=0x11304, v=0, name="Other"}, + {a=0x11305, b=0x1130c, v=35, name="Vowel_Independent"}, + {a=0x1130d, b=0x1130e, v=0, name="Other"}, + {a=0x1130f, b=0x11310, v=35, name="Vowel_Independent"}, + {a=0x11311, b=0x11312, v=0, name="Other"}, + {a=0x11313, b=0x11314, v=35, name="Vowel_Independent"}, + {a=0x11315, b=0x11328, v=5, name="Consonant"}, + {a=0x11329, b=0x11329, v=0, name="Other"}, + {a=0x1132a, b=0x11330, v=5, name="Consonant"}, + {a=0x11331, b=0x11331, v=0, name="Other"}, + {a=0x11332, b=0x11333, v=5, name="Consonant"}, + {a=0x11334, b=0x11334, v=0, name="Other"}, + {a=0x11335, b=0x11339, v=5, name="Consonant"}, + {a=0x1133a, b=0x1133a, v=0, name="Other"}, + {a=0x1133b, b=0x1133c, v=23, name="Nukta"}, + {a=0x1133d, b=0x1133d, v=1, name="Avagraha"}, + {a=0x1133e, b=0x11344, v=34, name="Vowel_Dependent"}, + {a=0x11345, b=0x11346, v=0, name="Other"}, + {a=0x11347, b=0x11348, v=34, name="Vowel_Dependent"}, + {a=0x11349, b=0x1134a, v=0, name="Other"}, + {a=0x1134b, b=0x1134c, v=34, name="Vowel_Dependent"}, + {a=0x1134d, b=0x1134d, v=31, name="Virama"}, + {a=0x1134e, b=0x11356, v=0, name="Other"}, + {a=0x11357, b=0x11357, v=34, name="Vowel_Dependent"}, + {a=0x11358, b=0x1135d, v=0, name="Other"}, + {a=0x1135e, b=0x1135f, v=2, name="Bindu"}, + {a=0x11360, b=0x11361, v=35, name="Vowel_Independent"}, + {a=0x11362, b=0x11363, v=34, name="Vowel_Dependent"}, + {a=0x11364, b=0x11365, v=0, name="Other"}, + {a=0x11366, b=0x1136c, v=4, name="Cantillation_Mark"}, + {a=0x1136d, b=0x1136f, v=0, name="Other"}, + {a=0x11370, b=0x11374, v=4, name="Cantillation_Mark"}, + {a=0x11375, b=0x113ff, v=0, name="Other"}, + {a=0x11400, b=0x1140d, v=35, name="Vowel_Independent"}, + {a=0x1140e, b=0x11434, v=5, name="Consonant"}, + {a=0x11435, b=0x11441, v=34, name="Vowel_Dependent"}, + {a=0x11442, b=0x11442, v=31, name="Virama"}, + {a=0x11443, b=0x11444, v=2, name="Bindu"}, + {a=0x11445, b=0x11445, v=32, name="Visarga"}, + {a=0x11446, b=0x11446, v=23, name="Nukta"}, + {a=0x11447, b=0x11447, v=1, name="Avagraha"}, + {a=0x11448, b=0x1144f, v=0, name="Other"}, + {a=0x11450, b=0x11459, v=24, name="Number"}, + {a=0x1145a, b=0x1145d, v=0, name="Other"}, + {a=0x1145e, b=0x1145e, v=28, name="Syllable_Modifier"}, + {a=0x1145f, b=0x1145f, v=2, name="Bindu"}, + {a=0x11460, b=0x11461, v=17, name="Consonant_With_Stacker"}, + {a=0x11462, b=0x11480, v=0, name="Other"}, + {a=0x11481, b=0x1148e, v=35, name="Vowel_Independent"}, + {a=0x1148f, b=0x114af, v=5, name="Consonant"}, + {a=0x114b0, b=0x114be, v=34, name="Vowel_Dependent"}, + {a=0x114bf, b=0x114c0, v=2, name="Bindu"}, + {a=0x114c1, b=0x114c1, v=32, name="Visarga"}, + {a=0x114c2, b=0x114c2, v=31, name="Virama"}, + {a=0x114c3, b=0x114c3, v=23, name="Nukta"}, + {a=0x114c4, b=0x114c4, v=1, name="Avagraha"}, + {a=0x114c5, b=0x114cf, v=0, name="Other"}, + {a=0x114d0, b=0x114d9, v=24, name="Number"}, + {a=0x114da, b=0x1157f, v=0, name="Other"}, + {a=0x11580, b=0x1158d, v=35, name="Vowel_Independent"}, + {a=0x1158e, b=0x115ae, v=5, name="Consonant"}, + {a=0x115af, b=0x115b5, v=34, name="Vowel_Dependent"}, + {a=0x115b6, b=0x115b7, v=0, name="Other"}, + {a=0x115b8, b=0x115bb, v=34, name="Vowel_Dependent"}, + {a=0x115bc, b=0x115bd, v=2, name="Bindu"}, + {a=0x115be, b=0x115be, v=32, name="Visarga"}, + {a=0x115bf, b=0x115bf, v=31, name="Virama"}, + {a=0x115c0, b=0x115c0, v=23, name="Nukta"}, + {a=0x115c1, b=0x115d7, v=0, name="Other"}, + {a=0x115d8, b=0x115db, v=35, name="Vowel_Independent"}, + {a=0x115dc, b=0x115dd, v=34, name="Vowel_Dependent"}, + {a=0x115de, b=0x115ff, v=0, name="Other"}, + {a=0x11600, b=0x1160d, v=35, name="Vowel_Independent"}, + {a=0x1160e, b=0x1162f, v=5, name="Consonant"}, + {a=0x11630, b=0x1163c, v=34, name="Vowel_Dependent"}, + {a=0x1163d, b=0x1163d, v=2, name="Bindu"}, + {a=0x1163e, b=0x1163e, v=32, name="Visarga"}, + {a=0x1163f, b=0x1163f, v=31, name="Virama"}, + {a=0x11640, b=0x11640, v=34, name="Vowel_Dependent"}, + {a=0x11641, b=0x1164f, v=0, name="Other"}, + {a=0x11650, b=0x11659, v=24, name="Number"}, + {a=0x1165a, b=0x1167f, v=0, name="Other"}, + {a=0x11680, b=0x11689, v=35, name="Vowel_Independent"}, + {a=0x1168a, b=0x116aa, v=5, name="Consonant"}, + {a=0x116ab, b=0x116ab, v=2, name="Bindu"}, + {a=0x116ac, b=0x116ac, v=32, name="Visarga"}, + {a=0x116ad, b=0x116b5, v=34, name="Vowel_Dependent"}, + {a=0x116b6, b=0x116b6, v=31, name="Virama"}, + {a=0x116b7, b=0x116b7, v=23, name="Nukta"}, + {a=0x116b8, b=0x116b8, v=5, name="Consonant"}, + {a=0x116b9, b=0x116bf, v=0, name="Other"}, + {a=0x116c0, b=0x116c9, v=24, name="Number"}, + {a=0x116ca, b=0x116ff, v=0, name="Other"}, + {a=0x11700, b=0x1171a, v=5, name="Consonant"}, + {a=0x1171b, b=0x1171c, v=0, name="Other"}, + {a=0x1171d, b=0x1171f, v=11, name="Consonant_Medial"}, + {a=0x11720, b=0x1172a, v=34, name="Vowel_Dependent"}, + {a=0x1172b, b=0x1172b, v=26, name="Pure_Killer"}, + {a=0x1172c, b=0x1172f, v=0, name="Other"}, + {a=0x11730, b=0x1173b, v=24, name="Number"}, + {a=0x1173c, b=0x1173f, v=0, name="Other"}, + {a=0x11740, b=0x11746, v=5, name="Consonant"}, + {a=0x11747, b=0x117ff, v=0, name="Other"}, + {a=0x11800, b=0x11809, v=35, name="Vowel_Independent"}, + {a=0x1180a, b=0x1182b, v=5, name="Consonant"}, + {a=0x1182c, b=0x11836, v=34, name="Vowel_Dependent"}, + {a=0x11837, b=0x11837, v=2, name="Bindu"}, + {a=0x11838, b=0x11838, v=32, name="Visarga"}, + {a=0x11839, b=0x11839, v=31, name="Virama"}, + {a=0x1183a, b=0x1183a, v=23, name="Nukta"}, + {a=0x1183b, b=0x118ff, v=0, name="Other"}, + {a=0x11900, b=0x11906, v=35, name="Vowel_Independent"}, + {a=0x11907, b=0x11908, v=0, name="Other"}, + {a=0x11909, b=0x11909, v=35, name="Vowel_Independent"}, + {a=0x1190a, b=0x1190b, v=0, name="Other"}, + {a=0x1190c, b=0x11913, v=5, name="Consonant"}, + {a=0x11914, b=0x11914, v=0, name="Other"}, + {a=0x11915, b=0x11916, v=5, name="Consonant"}, + {a=0x11917, b=0x11917, v=0, name="Other"}, + {a=0x11918, b=0x1192f, v=5, name="Consonant"}, + {a=0x11930, b=0x11935, v=34, name="Vowel_Dependent"}, + {a=0x11936, b=0x11936, v=0, name="Other"}, + {a=0x11937, b=0x11938, v=34, name="Vowel_Dependent"}, + {a=0x11939, b=0x1193a, v=0, name="Other"}, + {a=0x1193b, b=0x1193c, v=2, name="Bindu"}, + {a=0x1193d, b=0x1193d, v=26, name="Pure_Killer"}, + {a=0x1193e, b=0x1193e, v=19, name="Invisible_Stacker"}, + {a=0x1193f, b=0x1193f, v=14, name="Consonant_Prefixed"}, + {a=0x11940, b=0x11940, v=11, name="Consonant_Medial"}, + {a=0x11941, b=0x11941, v=13, name="Consonant_Preceding_Repha"}, + {a=0x11942, b=0x11942, v=11, name="Consonant_Medial"}, + {a=0x11943, b=0x11943, v=23, name="Nukta"}, + {a=0x11944, b=0x1194f, v=0, name="Other"}, + {a=0x11950, b=0x11959, v=24, name="Number"}, + {a=0x1195a, b=0x1199f, v=0, name="Other"}, + {a=0x119a0, b=0x119a7, v=35, name="Vowel_Independent"}, + {a=0x119a8, b=0x119a9, v=0, name="Other"}, + {a=0x119aa, b=0x119ad, v=35, name="Vowel_Independent"}, + {a=0x119ae, b=0x119d0, v=5, name="Consonant"}, + {a=0x119d1, b=0x119d7, v=34, name="Vowel_Dependent"}, + {a=0x119d8, b=0x119d9, v=0, name="Other"}, + {a=0x119da, b=0x119dd, v=34, name="Vowel_Dependent"}, + {a=0x119de, b=0x119de, v=2, name="Bindu"}, + {a=0x119df, b=0x119df, v=32, name="Visarga"}, + {a=0x119e0, b=0x119e0, v=31, name="Virama"}, + {a=0x119e1, b=0x119e1, v=1, name="Avagraha"}, + {a=0x119e2, b=0x119e3, v=0, name="Other"}, + {a=0x119e4, b=0x119e4, v=34, name="Vowel_Dependent"}, + {a=0x119e5, b=0x119ff, v=0, name="Other"}, + {a=0x11a00, b=0x11a00, v=35, name="Vowel_Independent"}, + {a=0x11a01, b=0x11a0a, v=34, name="Vowel_Dependent"}, + {a=0x11a0b, b=0x11a32, v=5, name="Consonant"}, + {a=0x11a33, b=0x11a33, v=28, name="Syllable_Modifier"}, + {a=0x11a34, b=0x11a34, v=26, name="Pure_Killer"}, + {a=0x11a35, b=0x11a38, v=2, name="Bindu"}, + {a=0x11a39, b=0x11a39, v=32, name="Visarga"}, + {a=0x11a3a, b=0x11a3a, v=14, name="Consonant_Prefixed"}, + {a=0x11a3b, b=0x11a3e, v=11, name="Consonant_Medial"}, + {a=0x11a3f, b=0x11a3f, v=12, name="Consonant_Placeholder"}, + {a=0x11a40, b=0x11a44, v=0, name="Other"}, + {a=0x11a45, b=0x11a45, v=12, name="Consonant_Placeholder"}, + {a=0x11a46, b=0x11a46, v=0, name="Other"}, + {a=0x11a47, b=0x11a47, v=19, name="Invisible_Stacker"}, + {a=0x11a48, b=0x11a4f, v=0, name="Other"}, + {a=0x11a50, b=0x11a50, v=35, name="Vowel_Independent"}, + {a=0x11a51, b=0x11a5b, v=34, name="Vowel_Dependent"}, + {a=0x11a5c, b=0x11a83, v=5, name="Consonant"}, + {a=0x11a84, b=0x11a89, v=14, name="Consonant_Prefixed"}, + {a=0x11a8a, b=0x11a95, v=7, name="Consonant_Final"}, + {a=0x11a96, b=0x11a96, v=2, name="Bindu"}, + {a=0x11a97, b=0x11a97, v=32, name="Visarga"}, + {a=0x11a98, b=0x11a98, v=18, name="Gemination_Mark"}, + {a=0x11a99, b=0x11a99, v=19, name="Invisible_Stacker"}, + {a=0x11a9a, b=0x11a9c, v=0, name="Other"}, + {a=0x11a9d, b=0x11a9d, v=1, name="Avagraha"}, + {a=0x11a9e, b=0x11bff, v=0, name="Other"}, + {a=0x11c00, b=0x11c08, v=35, name="Vowel_Independent"}, + {a=0x11c09, b=0x11c09, v=0, name="Other"}, + {a=0x11c0a, b=0x11c0d, v=35, name="Vowel_Independent"}, + {a=0x11c0e, b=0x11c2e, v=5, name="Consonant"}, + {a=0x11c2f, b=0x11c36, v=34, name="Vowel_Dependent"}, + {a=0x11c37, b=0x11c37, v=0, name="Other"}, + {a=0x11c38, b=0x11c3b, v=34, name="Vowel_Dependent"}, + {a=0x11c3c, b=0x11c3d, v=2, name="Bindu"}, + {a=0x11c3e, b=0x11c3e, v=32, name="Visarga"}, + {a=0x11c3f, b=0x11c3f, v=31, name="Virama"}, + {a=0x11c40, b=0x11c40, v=1, name="Avagraha"}, + {a=0x11c41, b=0x11c4f, v=0, name="Other"}, + {a=0x11c50, b=0x11c6c, v=24, name="Number"}, + {a=0x11c6d, b=0x11c71, v=0, name="Other"}, + {a=0x11c72, b=0x11c8f, v=5, name="Consonant"}, + {a=0x11c90, b=0x11c91, v=0, name="Other"}, + {a=0x11c92, b=0x11ca7, v=15, name="Consonant_Subjoined"}, + {a=0x11ca8, b=0x11ca8, v=0, name="Other"}, + {a=0x11ca9, b=0x11caf, v=15, name="Consonant_Subjoined"}, + {a=0x11cb0, b=0x11cb4, v=34, name="Vowel_Dependent"}, + {a=0x11cb5, b=0x11cb6, v=2, name="Bindu"}, + {a=0x11cb7, b=0x11cff, v=0, name="Other"}, + {a=0x11d00, b=0x11d06, v=35, name="Vowel_Independent"}, + {a=0x11d07, b=0x11d07, v=0, name="Other"}, + {a=0x11d08, b=0x11d09, v=35, name="Vowel_Independent"}, + {a=0x11d0a, b=0x11d0a, v=0, name="Other"}, + {a=0x11d0b, b=0x11d0b, v=35, name="Vowel_Independent"}, + {a=0x11d0c, b=0x11d30, v=5, name="Consonant"}, + {a=0x11d31, b=0x11d36, v=34, name="Vowel_Dependent"}, + {a=0x11d37, b=0x11d39, v=0, name="Other"}, + {a=0x11d3a, b=0x11d3a, v=34, name="Vowel_Dependent"}, + {a=0x11d3b, b=0x11d3b, v=0, name="Other"}, + {a=0x11d3c, b=0x11d3d, v=34, name="Vowel_Dependent"}, + {a=0x11d3e, b=0x11d3e, v=0, name="Other"}, + {a=0x11d3f, b=0x11d3f, v=34, name="Vowel_Dependent"}, + {a=0x11d40, b=0x11d40, v=2, name="Bindu"}, + {a=0x11d41, b=0x11d41, v=32, name="Visarga"}, + {a=0x11d42, b=0x11d42, v=23, name="Nukta"}, + {a=0x11d43, b=0x11d43, v=34, name="Vowel_Dependent"}, + {a=0x11d44, b=0x11d44, v=26, name="Pure_Killer"}, + {a=0x11d45, b=0x11d45, v=19, name="Invisible_Stacker"}, + {a=0x11d46, b=0x11d46, v=13, name="Consonant_Preceding_Repha"}, + {a=0x11d47, b=0x11d47, v=11, name="Consonant_Medial"}, + {a=0x11d48, b=0x11d4f, v=0, name="Other"}, + {a=0x11d50, b=0x11d59, v=24, name="Number"}, + {a=0x11d5a, b=0x11d5f, v=0, name="Other"}, + {a=0x11d60, b=0x11d65, v=35, name="Vowel_Independent"}, + {a=0x11d66, b=0x11d66, v=0, name="Other"}, + {a=0x11d67, b=0x11d68, v=35, name="Vowel_Independent"}, + {a=0x11d69, b=0x11d69, v=0, name="Other"}, + {a=0x11d6a, b=0x11d6b, v=35, name="Vowel_Independent"}, + {a=0x11d6c, b=0x11d89, v=5, name="Consonant"}, + {a=0x11d8a, b=0x11d8e, v=34, name="Vowel_Dependent"}, + {a=0x11d8f, b=0x11d8f, v=0, name="Other"}, + {a=0x11d90, b=0x11d91, v=34, name="Vowel_Dependent"}, + {a=0x11d92, b=0x11d92, v=0, name="Other"}, + {a=0x11d93, b=0x11d94, v=34, name="Vowel_Dependent"}, + {a=0x11d95, b=0x11d95, v=2, name="Bindu"}, + {a=0x11d96, b=0x11d96, v=32, name="Visarga"}, + {a=0x11d97, b=0x11d97, v=19, name="Invisible_Stacker"}, + {a=0x11d98, b=0x11d9f, v=0, name="Other"}, + {a=0x11da0, b=0x11da9, v=24, name="Number"}, + {a=0x11daa, b=0x11edf, v=0, name="Other"}, + {a=0x11ee0, b=0x11ef1, v=5, name="Consonant"}, + {a=0x11ef2, b=0x11ef2, v=12, name="Consonant_Placeholder"}, + {a=0x11ef3, b=0x11ef6, v=34, name="Vowel_Dependent"}, + {a=0x11ef7, b=0x11eff, v=0, name="Other"}, + {a=0x11f00, b=0x11f01, v=2, name="Bindu"}, + {a=0x11f02, b=0x11f02, v=13, name="Consonant_Preceding_Repha"}, + {a=0x11f03, b=0x11f03, v=32, name="Visarga"}, + {a=0x11f04, b=0x11f10, v=35, name="Vowel_Independent"}, + {a=0x11f11, b=0x11f11, v=0, name="Other"}, + {a=0x11f12, b=0x11f33, v=5, name="Consonant"}, + {a=0x11f34, b=0x11f3a, v=34, name="Vowel_Dependent"}, + {a=0x11f3b, b=0x11f3d, v=0, name="Other"}, + {a=0x11f3e, b=0x11f40, v=34, name="Vowel_Dependent"}, + {a=0x11f41, b=0x11f41, v=26, name="Pure_Killer"}, + {a=0x11f42, b=0x11f42, v=19, name="Invisible_Stacker"}, + {a=0x11f43, b=0x11f4f, v=0, name="Other"}, + {a=0x11f50, b=0x11f59, v=24, name="Number"}, + {a=0x11f5a, b=0x10ffff, v=0, name="Other"}, +] + +[enum_property.code_point_trie] +index = [ + 0,0x40,0x60,0x94,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, + 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, + 0x40,0x40,0x40,0x40,0xd4,0x112,0x152,0x190,0x1cf,0x20d,0x24c,0x28a,0x2ca,0x308,0x346,0x384, + 0x3c4,0x402,0x442,0x480,0x4c0,0x4fe,0x53e,0x57e,0x5bd,0x5fd,0x63c,0x67c,0x69c,0x6dc,0x71c,0x759, + 0x2ff,0x312,0x31e,0x312,0x339,0,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x60,0x70,0x80, + 0x90,0x94,0xa4,0xb4,0xc4,0x40,0x50,0x60,0x70,0x40,0x50,0x60,0x70,0x40,0x50,0x60, + 0x70,0x40,0x50,0x60,0x70,0x40,0x50,0x60,0x70,0x40,0x50,0x60,0x70,0x40,0x50,0x60, + 0x70,0x40,0x50,0x60,0x70,0xd4,0xe4,0xf4,0x104,0x112,0x122,0x132,0x142,0x152,0x162,0x172, + 0x182,0x190,0x1a0,0x1b0,0x1c0,0x1cf,0x1df,0x1ef,0x1ff,0x20d,0x21d,0x22d,0x23d,0x24c,0x25c,0x26c, + 0x27c,0x28a,0x29a,0x2aa,0x2ba,0x2ca,0x2da,0x2ea,0x2fa,0x308,0x318,0x328,0x338,0x346,0x356,0x366, + 0x376,0x384,0x394,0x3a4,0x3b4,0x3c4,0x3d4,0x3e4,0x3f4,0x402,0x412,0x422,0x432,0x442,0x452,0x462, + 0x472,0x480,0x490,0x4a0,0x4b0,0x4c0,0x4d0,0x4e0,0x4f0,0x4fe,0x50e,0x51e,0x52e,0x53e,0x54e,0x55e, + 0x56e,0x57e,0x58e,0x59e,0x5ae,0x5bd,0x5cd,0x5dd,0x5ed,0x5fd,0x60d,0x61d,0x62d,0x63c,0x64c,0x65c, + 0x66c,0x67c,0x68c,0x69c,0x6ac,0x69c,0x6ac,0x6bc,0x6cc,0x6dc,0x6ec,0x6fc,0x70c,0x71c,0x72c,0x73c, + 0x74c,0x759,0x769,0x779,0x789,0xe9,0xe9,0x799,0x7a4,0x7b4,0x7c4,0x7d3,0x7e2,0x7f0,0x800,0x40, + 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, + 0x40,0x40,0x40,0x40,0x40,0xe6,0x810,0xe6,0x81f,0xe6,0x82f,0x83f,0x84e,0xe9,0xe9,0x85e, + 0x86a,0x874,0x883,0x30,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, + 0x40,0x40,0x40,0x40,0x893,0x16c,0x8a3,0x8b3,0x22d,0xe9,0x8c3,0x8d3,0xe9,0xe9,0x374,0x8e3, + 0x8f2,0x902,0x40,0x40,0xe9,0x912,0xe9,0xe9,0x922,0x92f,0x93f,0x94b,0x30,0x30,0x40,0x40, + 0x40,0x40,0x40,0x40,0x95b,0xe6,0xe9,0x96b,0x977,0x30,0x40,0x40,0x987,0xe9,0x996,0x9a6, + 0xe9,0xe9,0x9b6,0x9c6,0xe9,0xe9,0x9d6,0x9e3,0x9f3,0x40,0x40,0x40,0x40,0x40,0x40,0x40, + 0x40,0xa03,0xa11,0xa1f,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, + 0x40,0x40,0x40,0xa2a,0xa36,0xa46,0x40,0x40,0x40,0x40,0x40,0x75b,0xa54,0x40,0x40,0x40, + 0x40,0x40,0x40,0xa64,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, + 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, + 0x74,0x40,0x40,0x40,0xa74,0xe9,0xa81,0x40,0xe9,0xa91,0xa9f,0xaae,0xd6,0xe7,0xe9,0xabe, + 0xaca,0x30,0xada,0xae8,0xaf8,0xe9,0xb06,0xe9,0xb16,0xb25,0x40,0x40,0xb35,0xe9,0xe9,0xb44, + 0x297,0x30,0xb54,0xb64,0xe3,0xe9,0x89a,0xb74,0xb84,0x30,0xe9,0xb93,0xe9,0xe9,0xe9,0xba3, + 0xbb3,0x40,0xbc3,0xbd3,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, + 0xbe3,0xbf3,0xc00,0x30,0xc10,0xc20,0xe9,0xc2a,0x31,0x40,0x40,0x40,0x40,0x40,0x40,0x40, + 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, + 0x40,0x40,0x40,0x40,0xc3a,0xe6,0xe9,0x89b,0xc4a,0xc58,0xc62,0xc72,0xc82,0xe9,0xe9,0xc92, + 0x399,0x40,0x40,0x40,0xca2,0xe9,0x89c,0xcb2,0xcc2,0xcd2,0xe9,0xcdf,0xd5,0xe8,0xe9,0xcef, + 0xcff,0x30,0x6bb,0x35,0xe1,0x3eb,0x897,0xd0f,0xd1f,0x40,0x40,0x40,0xd2f,0x16d,0xd3e,0xdf, + 0xe9,0xd4e,0xd5e,0x30,0xd6e,0x162,0x172,0xd7e,0x308,0xd8e,0xd9e,0xa0e,0x40,0x40,0x40,0x40, + 0x40,0x40,0x40,0x40,0xdb,0xe9,0xe9,0xdae,0xdbc,0xdcc,0xddc,0x40,0xdeb,0xe9,0xe9,0x940, + 0xdfb,0x30,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xdb,0xe9,0xff,0xe0b, + 0xe1b,0xe23,0x40,0x40,0xdb,0xe9,0xe9,0xe33,0xe43,0x30,0x40,0x40,0xdf,0xe9,0xe53,0xe60, + 0x30,0x40,0x40,0x40,0xe9,0xe70,0xe80,0xe90,0xea0,0x40,0x40,0x40,0x40,0x40,0x40,0x40, + 0x40,0x40,0x40,0x40,0xdf,0xe9,0x897,0xeb0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, + 0x40,0x40,0x40,0x40,0xec0,0xecc,0xe9,0xedc,0xeec,0x30,0x40,0x40,0x40,0x40,0xefc,0xe9, + 0xe9,0xf0b,0xf1b,0x40,0xf2b,0xe9,0xe9,0xf38,0xf48,0xf58,0xe9,0xe9,0xf64,0xf6e,0x40,0x40, + 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, + 0x40,0x40,0x40,0x40,0xf7e,0xe9,0xff,0xf8e,0xf9e,0x6bc,0xfae,0x556,0xe9,0xfbc,0x72c,0xfcc, + 0x40,0x40,0x40,0x40,0xfdc,0xe9,0xe9,0xfeb,0xffb,0x30,0x100b,0xe9,0x1017,0x1024,0x30,0x40, + 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xe9,0x1034,0x1044, + 0x1053,0xe9,0x105f,0x106e,0x30,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x45, + 0x55,0x55,0x55,0x65,0x85,0xa5,0xc5,0xe5,4,4,0xf5,0x114,0x134,0x154,4,0x174, + 4,0x184,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 4,4,0x1a4,0x1c4,4,4,4,4,4,4,4,4,4,4,0x1e4,4, + 4,0x204,0x224,0x244,0x264,0x284,0x2a4,0x2c4,0x2df +] +data_8 = [ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0xc,0,0, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0xc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0x1c,0x1c,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0xc,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,2,2,2,0x20,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23, + 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,5,5,5,5,5,5,5, + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x22,0x22, + 0x17,1,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f, + 0x22,0x22,0,4,4,0,0,0x22,0x22,0x22,5,5,5,5,5,5, + 5,5,0x23,0x23,0x22,0x22,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, + 0x18,0x18,0,0,0x23,0x23,0x23,0x23,0x23,0x23,5,5,5,5,5,5, + 5,5,0xc,2,2,0x20,0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0, + 0,0x23,0x23,0,0,0x23,0x23,5,5,5,5,5,5,5,5,5, + 5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5, + 5,5,5,0,5,0,0,0,5,5,5,5,0,0,0x17,1, + 0x22,0x22,0x22,0x22,0x22,0,0,0x22,0x22,0,0,0x22,0x22,0x1f,6,0, + 0,0,0,0,0,0,0,0x22,0,0,0,0,5,5,0,5, + 0x23,0x23,0x22,0x22,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, + 5,5,0,0,0,0,0,0,0,0,0,0,2,0,0x1c,0, + 2,2,0x20,0,0x23,0x23,0x23,0x23,0x23,0x23,0,0,0,0,0x23,0x23, + 0,0,0x23,0x23,5,5,5,5,5,5,5,5,5,5,5,5, + 5,5,5,5,5,5,5,5,0,5,5,5,5,5,5,5, + 0,5,5,0,5,5,0,5,5,0,0,0x17,0,0x22,0x22,0x22, + 0,0,0,0,0x22,0x22,0,0,0x22,0x22,0x1f,0,0,0,4,0, + 0,0,0,0,0,0,5,5,5,5,0,5,0,0,0,0, + 0,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,2,0x12,0xc, + 0xc,0,0xb,0,0,0,0,0,0,0,0,0,0,2,2,0x20, + 0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0x23,0x23,0x23,0,0x23, + 0x23,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, + 5,5,5,5,5,0,5,5,5,5,5,5,5,0,5,5, + 0,5,5,5,5,5,0,0,0x17,1,0x22,0x22,0x22,0x22,0x22,0x22, + 0,0x22,0x22,0x22,0,0x22,0x22,0x1f,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0x23,0x23,0x22,0x22,0,0, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,0,0,0, + 0,0,0,5,4,0x12,4,0x17,0x17,0x17,0,2,2,0x20,0,0x23, + 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0,0x23,0x23,0,0,0x23,0x23,5, + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, + 5,5,5,0,5,5,5,5,5,5,5,0,5,5,0,5, + 5,5,5,5,0,0,0x17,1,0x22,0x22,0x22,0x22,0x22,0,0,0x22, + 0x22,0,0,0x22,0x22,0x1f,0,0,0,0,0,0,0,0x22,0x22,0x22, + 0,0,0,0,5,5,0,5,0x23,0x23,0x22,0x22,0,0,0x18,0x18, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,5,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,2,0x15,0,0x23,0x23,0x23,0x23,0x23, + 0x23,0,0,0,0x23,0x23,0x23,0,0x23,0x23,0x23,5,0,0,0,5, + 5,0,5,0,5,5,0,0,0,5,5,0,0,0,5,5, + 5,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, + 0,0,0,0,0x22,0x22,0x22,0,0,0,0x22,0x22,0x22,0,0x22,0x22, + 0x22,0x1f,0,0,0,0,0,0,0,0,0,0x22,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0x18,0x18,0x18,0x18,0x18,0x18, + 0x18,0x18,0x18,0x18,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,2,2,2,0x20,2,0x23,0x23,0x23,0x23,0x23,0x23,0x23, + 0x23,0,0x23,0x23,0x23,0,0x23,0x23,0x23,5,5,5,5,5,5,5, + 5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5, + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0, + 0x17,1,0x22,0x22,0x22,0x22,0x22,0,0x22,0x22,0x22,0,0x22,0x22,0x22,0x1f, + 0,0,0,0,0,0,0,0x22,0x22,0,5,5,5,0,0,6, + 0,0,0x23,0x23,0x22,0x22,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, + 0x18,0x18,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,2,2,2,0x20,0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0, + 0x23,0x23,0x23,0,0x23,0x23,0x23,5,5,5,5,5,5,5,5,5, + 5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5, + 5,5,5,5,5,5,0,5,5,5,5,5,0,0,0x17,1, + 0x22,0x22,0x22,0x22,0x22,0,0x22,0x22,0x22,0,0x22,0x22,0x22,0x1f,0,0, + 0,0,0,0,0,0x22,0x22,0,0,0,0,0,0,6,5,0, + 0x23,0x23,0x22,0x22,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, + 0,0x11,0x11,2,0,0,0,0,0,0,0,0,0,0,0,0, + 2,2,2,0x20,2,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0x23,0x23, + 0x23,0,0x23,0x23,0x23,5,5,5,5,5,5,5,5,5,5,5, + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, + 5,5,5,5,5,5,5,5,5,5,5,0x1a,0x1a,1,0x22,0x22, + 0x22,0x22,0x22,0,0x22,0x22,0x22,0,0x22,0x22,0x22,0x1f,0xd,0,0,0, + 0,0,6,6,6,0x22,0,0,0,0,0,0,0,0x23,0x23,0x23, + 0x22,0x22,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0, + 0,0,0,0,0,0,0,0,6,6,6,6,6,6,0,2, + 2,0x20,0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23, + 0x23,0x23,0x23,0x23,0x23,0,0,0,5,5,5,5,5,5,5,5, + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, + 0,5,5,5,5,5,5,5,5,5,0,5,0,0,5,5, + 5,5,5,5,5,0,0,0,0x1f,0,0,0,0,0x22,0x22,0x22, + 0x22,0x22,0x22,0,0x22,0,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0,0, + 0,0,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0, + 0x22,0x22,0,0,0,0,0,0,0,0,0,0,0,0,5,5, + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, + 5,5,5,5,5,5,5,5,5,5,5,5,0,0x22,0x22,0x22, + 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1a,0,0,0,0,0,0x22,0x22,0x22, + 0x22,0x22,0x22,0,0x22,0x1e,0x1e,0x1e,0x1e,0xa,2,0x1a,0,0x18,0x18,0x18, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0, + 5,0,5,5,5,5,5,0,5,5,5,5,5,5,5,5, + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, + 0,5,0,5,5,5,5,5,5,5,5,0,0x22,0x22,0x22,0x22, + 0x22,0x22,0x22,0x22,0x22,0x22,0x1a,0x22,0xb,0xb,0,0,0x22,0x22,0x22,0x22, + 0x22,0,0,0,0x1e,0x1e,0x1e,0x1e,0,2,0x1c,0,0x18,0x18,0x18,0x18, + 0x18,0x18,0x18,0x18,0x18,0x18,0,0,5,5,5,5,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0x18,0x18,0x18,0x18, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, + 0,0x1c,0,0x1c,0,0x17,0,0,0,0,0,0,5,5,5,5, + 5,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5, + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, + 5,5,5,5,5,5,5,5,5,0,0,0,0,0x22,0x22,0x22, + 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,2,0x20,0x22,0x22,2,2, + 0x1a,1,0,0,8,8,8,8,8,0xf,0xf,0xf,0xf,0xf,0xf,0xf, + 0xf,0xf,0xf,0xf,0,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, + 0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, + 0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0,0,0,0,0,0,0x1c, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,5,0x23,0x23,0x23,0x23,0x23,0x23, + 0x23,0x23,0x23,0x23,0x22,0x22,0x22,0x22,0x22,0x22,2,0x1e,0x20,0x13,0x1a,0xb, + 0xb,0xb,0xb,5,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0xc, + 0,0,0xc,0,5,5,0x23,0x23,0x23,0x23,0x22,0x22,0x22,0x22,5,5, + 5,5,0xb,0xb,5,0x22,0x1e,0x1e,5,5,0x22,0x22,0x1e,0x1e,0x1e,0x1e, + 0x1e,5,5,0x22,0x22,0x22,0x22,5,5,5,5,5,5,5,5,5, + 5,5,0xb,0x22,0x22,0x22,0x22,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,5,0x1e, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1e,0x1e,0x22,0x22,0,0, + 5,5,0x22,0x22,0x1a,0x1a,0,0,0,0,0,0,0,0,0,5, + 5,0x22,0x22,0x1a,0,0,0,0,0,0,0,0,0,0,0,5, + 5,0x22,0x22,0,0,0,0,0,0,0,0,0,0,0,0,0x23, + 0x23,0x23,5,5,5,5,5,5,5,5,5,5,0,5,5,0, + 0x22,0x22,0,0,0,0,0,0,0,0,0,0,0,0,5,5, + 5,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0, + 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,2,0x20,0x22,0x1b,0x1b,0x1c, + 0x10,0xa,0x1c,0x1c,0x1a,0x13,0x1c,0,0,0,0,0,0,0,0,1, + 0x1c,0,0,0xc,5,5,5,5,5,5,5,5,5,5,5,5, + 5,5,5,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0xf,0xf,0xf,0, + 0,0,0,7,7,2,7,7,7,7,7,7,7,0x22,0x1c,0, + 0,0,0,5,5,5,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, + 0x21,0,0,0x1d,0x1d,0x1d,0x1d,0x1d,0,0,0,0,0,0,0,0, + 0,0,0,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, + 0x22,0x22,0x22,7,7,7,7,7,7,7,0x1e,0x1e,0,0,0,0, + 0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0, + 0,0,5,5,5,5,5,5,5,0x22,0x22,0x22,0x22,0x22,0,0, + 0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,0x23, + 0x23,0x23,5,5,0xb,0xb,0xf,7,7,9,0xf,0xf,0xf,0xf,0,0x13, + 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,2, + 0x1e,0x1e,0x1e,0x1e,0x1e,0x1a,0x1c,0x1c,0,0,0x1c,2,2,2,7,0x20, + 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,5,5,5,5,0x17, + 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,5,5,5,5, + 5,5,5,5,0,0,0,2,7,0x20,0x23,0x23,0x23,0x23,0x23,0x23, + 0x23,5,5,5,5,5,5,0xf,0xf,0xf,0x22,0x22,0x22,0x22,0x22,0x22, + 0x1a,0x13,0xf,0xf,5,5,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, + 1,5,5,5,7,7,5,5,5,5,0x23,0x23,0x17,0x22,0x22,0x22, + 0x22,0x22,0x22,0x22,0x22,0x22,7,7,0x1a,0x1a,0,0,0,0,0,0, + 0,0,0,0,0,0,5,5,5,5,0xf,0xf,0x22,0x22,0x22,0x22, + 0x22,0x22,0x22,7,7,7,7,2,2,0x1c,0x17,0,0,0,0,0, + 0,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0, + 5,5,5,4,4,4,0,4,4,4,4,4,4,4,4,4, + 4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,6,6,4,0x11,0x11,4,4,4,0xc,0,0,0,0,0,0, + 0,0,0,0,0,0x1c,0,0,0,0,0,0,0,0,0,0, + 0,0,0x16,0x14,0,0,0xc,0xc,0xc,0xc,0xc,0,0,0,0,0, + 0,0,0,0,0,0,0x1c,0x1c,0x1c,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0x23,0x23,0x22,0x23,0x23,0x23,0x1f,5,5,5,5,2, + 5,5,5,5,0x22,0x22,0x22,0x22,0x22,0,0,0,0,0x1a,0,0, + 0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x21, + 0x21,5,5,5,5,0x21,0xf,0xf,5,5,5,5,5,5,5,0xf, + 5,2,0,0,0,0,0,0,0,0,0,0,0,0,5,5, + 5,5,0xb,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,2, + 0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4, + 4,4,4,4,4,4,4,4,4,4,2,2,0,0,0,0, + 0,0,0,0,0,0,0x23,0x22,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, + 0x18,0x18,5,5,5,5,5,5,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, + 0x21,0x1e,0x1e,0x1e,0,0,5,5,5,5,5,5,5,0x22,0x22,0x22, + 0x22,0x22,0x22,0x22,0x22,7,7,7,0x1a,0,0,0,0,0,0,0, + 0,0,0,0,0,2,2,7,0x20,0x23,0x23,0x23,0x23,0x23,5,5, + 5,0x23,0x23,0x23,5,5,5,0x17,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, + 0x22,0xb,0xb,0xb,5,5,5,5,5,0x22,0,5,5,5,5,5, + 5,5,5,5,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,5,5, + 5,5,5,0,0x22,0x22,0x22,0xb,0xb,0xb,0xb,0,0,0,0,0, + 0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7, + 7,7,0,0,5,5,5,0xc,0xc,0xc,0,0,0,5,0x1e,0x1e, + 0x1e,5,5,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, + 0x22,0x22,0x1e,0x1d,0x1e,0x1d,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0x23,0x23,5,5,5,5,5,5,5,5,5,0x22,0x22, + 0x22,0x22,0x22,0,0,0,0,0,0x20,0x13,0,0,0,0,0,0, + 0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5, + 5,0x23,0x23,5,0x23,5,5,5,5,5,5,5,5,5,7,7, + 7,7,7,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0,0x1e,0x1a,0,0, + 5,0x22,0x22,0x22,0,0x22,0x22,0,0,0,0,0,0x22,0x22,2,0x20, + 5,5,5,5,0,5,5,5,0,5,5,5,5,5,5,5, + 0,0,0x17,0x17,0x17,0,0,0,0,0x13,2,2,0x20,0x11,0x11,0x23, + 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x22,0x22,0x22,0x22,0x22,0x22, + 0x1f,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3, + 3,3,3,3,3,3,3,3,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, + 0x18,0x18,0x1a,0x23,0x23,0x22,0x22,5,0,0,0,0,0,0,0,0, + 0,0x19,2,2,0x20,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,5, + 5,5,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,0x17,0,0,0, + 0,0,2,2,0x20,0x23,0x23,0x23,0x23,5,5,5,5,5,5,5, + 5,5,0x22,0x22,0x22,0x13,0x1a,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, + 0x18,0x18,0,0,0,0,5,0x22,0x22,5,0,0,0,0,0,0, + 0,0,0x21,0x21,0x21,0x21,0x21,5,5,5,5,5,5,5,5,5, + 5,5,0x17,0,0,0,0,0,0,0,0,0,0,0,0,5, + 5,5,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f, + 1,0xe,0xe,0,0,0,0,0,0x1c,0x17,0x22,0x22,0,0x22,2,0x22, + 0x22,0x22,0x22,2,0x1f,0x17,0x12,0,0,0,0,0,0,4,5,0x23, + 0x22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x23, + 0x23,0x23,0x23,5,5,5,0,5,0,5,5,5,5,0,5,5, + 5,5,5,5,5,5,5,0,0,0,0,0,0,0,5,5, + 5,5,5,5,5,5,5,5,5,5,5,5,5,2,0x22,0x22, + 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x17,0x1a,0,0,0,0,0,2,2, + 2,0x20,0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0,0x23,5,0, + 5,5,0,5,5,5,5,5,0,0x17,0x17,1,0x22,0x22,0,0, + 0,0,0,0,0,0x22,0,0,0,0,0,0,2,2,0x23,0x23, + 0x22,0x22,0,0,4,4,4,4,4,4,4,0,0,0,5,5, + 5,5,5,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,2, + 2,0x20,0x17,1,0,0,0,0,0,0,0,0,0x18,0x18,0x18,0x18, + 0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,0,0x1c,2,0x11,0x11,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0x23,0x23,0x23,0x23, + 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,5,2,0x20,0x1f,0x17,1, + 0,0,0,0,0,0,0,0,0,0,0,0x22,0x22,0x22,0x22,0x22, + 0x22,0,0,0x22,0x22,0x22,0x22,2,2,0x20,0x1f,0x17,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0x23,0x23,0x23,0x23,0x22, + 0x22,0,0,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, + 2,0x20,0x1f,0x22,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,5,5,5,5,5,5,5,5,5,5,5,2,0x20, + 0x22,0x22,0x22,0x22,0x22,0x22,0x1f,0x17,5,0,0,0,0,0,0,0, + 5,5,5,5,5,5,5,5,5,5,5,0,0,0xb,0xb,0xb, + 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1a,0,0,0,0, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,0, + 5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0, + 0x22,0x22,0x22,0x22,0x22,0x22,0x22,2,0x20,0x1f,0x17,0,0,0,0,0, + 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0,0x23,0,0,5,5,5,5, + 0,5,5,0,5,5,5,5,5,5,5,5,0x22,0x22,0x22,0x22, + 0x22,0x22,0,0x22,0x22,0,0,2,2,0x1a,0x13,0xe,0xb,0xd,0xb,0x17, + 0,0,0,0,0,0,0,0,0,0,0,0,0x23,0x23,0x23,0x23, + 0x23,0x23,0x23,0x23,0,0,0x23,0x23,0x23,0x23,5,5,0x22,0x22,0x22,0x22, + 0x22,0x22,0x22,0,0,0x22,0x22,0x22,0x22,2,0x20,0x1f,1,0,0,0x22, + 0,0,0,0,0,0,0,0,0,0,0,0x23,0x22,0x22,0x22,0x22, + 0x22,0x22,0x22,0x22,0x22,0x22,5,5,5,5,5,0x1c,0x1a,2,2,2, + 2,0x20,0xe,0xb,0xb,0xb,0xb,0xc,0,0,0,0,0,0xc,0,0x13, + 0,0,0,0,0,0,0,0,0x23,0x22,0x22,0x22,0x22,0x22,0x22,0x22, + 0x22,0x22,0x22,0x22,5,5,5,5,0xe,0xe,0xe,0xe,0xe,0xe,7,7, + 7,7,7,7,2,0x20,0x12,0x13,0,0,0,1,0,0,0x23,0x23, + 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0x23,0x23,0x23,0x23,5,5,0x22,0x22, + 0x22,0x22,0x22,0x22,0x22,0,0x22,0x22,0x22,0x22,2,2,0x20,0x1f,1,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x18,0x18, + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,0xf,0xf, + 0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0x22,0x22,0x22,0x22, + 0x22,2,2,0,0,0,0,0,0,0,0,0,0x23,0x23,0x23,0x23, + 0x23,0x23,0x23,0,0x23,0x23,0,0x23,5,5,5,5,0x22,0x22,0x22,0x22, + 0x22,0x22,0,0,0,0x22,0,0x22,0x22,0,0x22,2,0x20,0x17,0x22,0x1a, + 0x13,0xd,0xb,0,0,0,0,0,0,0,0,0x23,0x23,0x23,0x23,0x23, + 0x23,0,0x23,0x23,0,0x23,0x23,5,5,5,5,5,5,5,5,5, + 5,0x22,0x22,0x22,0x22,0x22,0,0x22,0x22,2,0x20,0x13,0,0,0,0, + 0,0,0,0,5,5,0xc,0x22,0x22,0x22,0x22,0,0,0,0,0, + 0,0,0,0,2,2,0xd,0x20,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23, + 0x23,0x23,0x23,0x23,0,5,5,5,5,5,5,5,5,5,5,5, + 5,5,5,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0,0,0,0x22,0x22,0x1a, + 0x13,0,0,0,0,0,0,0,0,0,0,0,0,0 +] +indexLength = 841 +dataLength = 4222 +highStart = 0x12000 +shifted12HighStart = 0x12 +type = 1 +valueWidth = 2 +index3NullOffset = 0x4 +dataNullOffset = 0x40 +nullValue = 0x0 diff --git a/provider/datagen/tests/data/json/propnames/from/InSC@1/und.json b/provider/datagen/tests/data/json/propnames/from/InSC@1/und.json new file mode 100644 index 00000000000..9b0895acf23 --- /dev/null +++ b/provider/datagen/tests/data/json/propnames/from/InSC@1/und.json @@ -0,0 +1,40 @@ +{ + "map": { + "Avagraha": 1, + "Bindu": 2, + "Brahmi_Joining_Number": 3, + "Cantillation_Mark": 4, + "Consonant": 5, + "Consonant_Dead": 6, + "Consonant_Final": 7, + "Consonant_Head_Letter": 8, + "Consonant_Initial_Postfixed": 9, + "Consonant_Killer": 10, + "Consonant_Medial": 11, + "Consonant_Placeholder": 12, + "Consonant_Preceding_Repha": 13, + "Consonant_Prefixed": 14, + "Consonant_Subjoined": 15, + "Consonant_Succeeding_Repha": 16, + "Consonant_With_Stacker": 17, + "Gemination_Mark": 18, + "Invisible_Stacker": 19, + "Joiner": 20, + "Modifying_Letter": 21, + "Non_Joiner": 22, + "Nukta": 23, + "Number": 24, + "Number_Joiner": 25, + "Other": 0, + "Pure_Killer": 26, + "Register_Shifter": 27, + "Syllable_Modifier": 28, + "Tone_Letter": 29, + "Tone_Mark": 30, + "Virama": 31, + "Visarga": 32, + "Vowel": 33, + "Vowel_Dependent": 34, + "Vowel_Independent": 35 + } +} diff --git a/provider/datagen/tests/data/json/propnames/to/long/linear/InSC@1/und.json b/provider/datagen/tests/data/json/propnames/to/long/linear/InSC@1/und.json new file mode 100644 index 00000000000..837b3a926ab --- /dev/null +++ b/provider/datagen/tests/data/json/propnames/to/long/linear/InSC@1/und.json @@ -0,0 +1,40 @@ +{ + "map": [ + "Other", + "Avagraha", + "Bindu", + "Brahmi_Joining_Number", + "Cantillation_Mark", + "Consonant", + "Consonant_Dead", + "Consonant_Final", + "Consonant_Head_Letter", + "Consonant_Initial_Postfixed", + "Consonant_Killer", + "Consonant_Medial", + "Consonant_Placeholder", + "Consonant_Preceding_Repha", + "Consonant_Prefixed", + "Consonant_Subjoined", + "Consonant_Succeeding_Repha", + "Consonant_With_Stacker", + "Gemination_Mark", + "Invisible_Stacker", + "Joiner", + "Modifying_Letter", + "Non_Joiner", + "Nukta", + "Number", + "Number_Joiner", + "Pure_Killer", + "Register_Shifter", + "Syllable_Modifier", + "Tone_Letter", + "Tone_Mark", + "Virama", + "Visarga", + "Vowel", + "Vowel_Dependent", + "Vowel_Independent" + ] +} diff --git a/provider/datagen/tests/data/json/propnames/to/short/linear/InSC@1/und.json b/provider/datagen/tests/data/json/propnames/to/short/linear/InSC@1/und.json new file mode 100644 index 00000000000..837b3a926ab --- /dev/null +++ b/provider/datagen/tests/data/json/propnames/to/short/linear/InSC@1/und.json @@ -0,0 +1,40 @@ +{ + "map": [ + "Other", + "Avagraha", + "Bindu", + "Brahmi_Joining_Number", + "Cantillation_Mark", + "Consonant", + "Consonant_Dead", + "Consonant_Final", + "Consonant_Head_Letter", + "Consonant_Initial_Postfixed", + "Consonant_Killer", + "Consonant_Medial", + "Consonant_Placeholder", + "Consonant_Preceding_Repha", + "Consonant_Prefixed", + "Consonant_Subjoined", + "Consonant_Succeeding_Repha", + "Consonant_With_Stacker", + "Gemination_Mark", + "Invisible_Stacker", + "Joiner", + "Modifying_Letter", + "Non_Joiner", + "Nukta", + "Number", + "Number_Joiner", + "Pure_Killer", + "Register_Shifter", + "Syllable_Modifier", + "Tone_Letter", + "Tone_Mark", + "Virama", + "Visarga", + "Vowel", + "Vowel_Dependent", + "Vowel_Independent" + ] +} diff --git a/provider/datagen/tests/data/json/props/InSC@1/und.json b/provider/datagen/tests/data/json/props/InSC@1/und.json new file mode 100644 index 00000000000..399a4d98d53 --- /dev/null +++ b/provider/datagen/tests/data/json/props/InSC@1/und.json @@ -0,0 +1,5079 @@ +{ + "CodePointTrie": { + "header": { + "high_start": 73728, + "shifted12_high_start": 18, + "index3_null_offset": 4, + "data_null_offset": 64, + "null_value": 0, + "trie_type": "Small" + }, + "index": [ + 0, + 64, + 96, + 148, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 212, + 274, + 338, + 400, + 463, + 525, + 588, + 650, + 714, + 776, + 838, + 900, + 964, + 1026, + 1090, + 1152, + 1216, + 1278, + 1342, + 1406, + 1469, + 1533, + 1596, + 1660, + 1692, + 1756, + 1820, + 1881, + 767, + 786, + 798, + 786, + 825, + 0, + 16, + 32, + 48, + 64, + 80, + 96, + 112, + 96, + 112, + 128, + 144, + 148, + 164, + 180, + 196, + 64, + 80, + 96, + 112, + 64, + 80, + 96, + 112, + 64, + 80, + 96, + 112, + 64, + 80, + 96, + 112, + 64, + 80, + 96, + 112, + 64, + 80, + 96, + 112, + 64, + 80, + 96, + 112, + 64, + 80, + 96, + 112, + 212, + 228, + 244, + 260, + 274, + 290, + 306, + 322, + 338, + 354, + 370, + 386, + 400, + 416, + 432, + 448, + 463, + 479, + 495, + 511, + 525, + 541, + 557, + 573, + 588, + 604, + 620, + 636, + 650, + 666, + 682, + 698, + 714, + 730, + 746, + 762, + 776, + 792, + 808, + 824, + 838, + 854, + 870, + 886, + 900, + 916, + 932, + 948, + 964, + 980, + 996, + 1012, + 1026, + 1042, + 1058, + 1074, + 1090, + 1106, + 1122, + 1138, + 1152, + 1168, + 1184, + 1200, + 1216, + 1232, + 1248, + 1264, + 1278, + 1294, + 1310, + 1326, + 1342, + 1358, + 1374, + 1390, + 1406, + 1422, + 1438, + 1454, + 1469, + 1485, + 1501, + 1517, + 1533, + 1549, + 1565, + 1581, + 1596, + 1612, + 1628, + 1644, + 1660, + 1676, + 1692, + 1708, + 1692, + 1708, + 1724, + 1740, + 1756, + 1772, + 1788, + 1804, + 1820, + 1836, + 1852, + 1868, + 1881, + 1897, + 1913, + 1929, + 233, + 233, + 1945, + 1956, + 1972, + 1988, + 2003, + 2018, + 2032, + 2048, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 230, + 2064, + 230, + 2079, + 230, + 2095, + 2111, + 2126, + 233, + 233, + 2142, + 2154, + 2164, + 2179, + 48, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 2195, + 364, + 2211, + 2227, + 557, + 233, + 2243, + 2259, + 233, + 233, + 884, + 2275, + 2290, + 2306, + 64, + 64, + 233, + 2322, + 233, + 233, + 2338, + 2351, + 2367, + 2379, + 48, + 48, + 64, + 64, + 64, + 64, + 64, + 64, + 2395, + 230, + 233, + 2411, + 2423, + 48, + 64, + 64, + 2439, + 233, + 2454, + 2470, + 233, + 233, + 2486, + 2502, + 233, + 233, + 2518, + 2531, + 2547, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 2563, + 2577, + 2591, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 2602, + 2614, + 2630, + 64, + 64, + 64, + 64, + 64, + 1883, + 2644, + 64, + 64, + 64, + 64, + 64, + 64, + 2660, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 116, + 64, + 64, + 64, + 2676, + 233, + 2689, + 64, + 233, + 2705, + 2719, + 2734, + 214, + 231, + 233, + 2750, + 2762, + 48, + 2778, + 2792, + 2808, + 233, + 2822, + 233, + 2838, + 2853, + 64, + 64, + 2869, + 233, + 233, + 2884, + 663, + 48, + 2900, + 2916, + 227, + 233, + 2202, + 2932, + 2948, + 48, + 233, + 2963, + 233, + 233, + 233, + 2979, + 2995, + 64, + 3011, + 3027, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 3043, + 3059, + 3072, + 48, + 3088, + 3104, + 233, + 3114, + 49, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 3130, + 230, + 233, + 2203, + 3146, + 3160, + 3170, + 3186, + 3202, + 233, + 233, + 3218, + 921, + 64, + 64, + 64, + 3234, + 233, + 2204, + 3250, + 3266, + 3282, + 233, + 3295, + 213, + 232, + 233, + 3311, + 3327, + 48, + 1723, + 53, + 225, + 1003, + 2199, + 3343, + 3359, + 64, + 64, + 64, + 3375, + 365, + 3390, + 223, + 233, + 3406, + 3422, + 48, + 3438, + 354, + 370, + 3454, + 776, + 3470, + 3486, + 2574, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 219, + 233, + 233, + 3502, + 3516, + 3532, + 3548, + 64, + 3563, + 233, + 233, + 2368, + 3579, + 48, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 219, + 233, + 255, + 3595, + 3611, + 3619, + 64, + 64, + 219, + 233, + 233, + 3635, + 3651, + 48, + 64, + 64, + 223, + 233, + 3667, + 3680, + 48, + 64, + 64, + 64, + 233, + 3696, + 3712, + 3728, + 3744, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 223, + 233, + 2199, + 3760, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 3776, + 3788, + 233, + 3804, + 3820, + 48, + 64, + 64, + 64, + 64, + 3836, + 233, + 233, + 3851, + 3867, + 64, + 3883, + 233, + 233, + 3896, + 3912, + 3928, + 233, + 233, + 3940, + 3950, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 3966, + 233, + 255, + 3982, + 3998, + 1724, + 4014, + 1366, + 233, + 4028, + 1836, + 4044, + 64, + 64, + 64, + 64, + 4060, + 233, + 233, + 4075, + 4091, + 48, + 4107, + 233, + 4119, + 4132, + 48, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 233, + 4148, + 4164, + 4179, + 233, + 4191, + 4206, + 48, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 69, + 85, + 85, + 85, + 101, + 133, + 165, + 197, + 229, + 4, + 4, + 245, + 276, + 308, + 340, + 4, + 372, + 4, + 388, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 420, + 452, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 484, + 4, + 4, + 516, + 548, + 580, + 612, + 644, + 676, + 708, + 735 + ], + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12, + 0, + 0, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 32, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 34, + 34, + 23, + 1, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 31, + 34, + 34, + 0, + 4, + 4, + 0, + 0, + 34, + 34, + 34, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 35, + 35, + 34, + 34, + 0, + 0, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 0, + 0, + 35, + 35, + 35, + 35, + 35, + 35, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 12, + 2, + 2, + 32, + 0, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 0, + 0, + 35, + 35, + 0, + 0, + 35, + 35, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 5, + 0, + 0, + 0, + 5, + 5, + 5, + 5, + 0, + 0, + 23, + 1, + 34, + 34, + 34, + 34, + 34, + 0, + 0, + 34, + 34, + 0, + 0, + 34, + 34, + 31, + 6, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 34, + 0, + 0, + 0, + 0, + 5, + 5, + 0, + 5, + 35, + 35, + 34, + 34, + 0, + 0, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 5, + 5, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 28, + 0, + 2, + 2, + 32, + 0, + 35, + 35, + 35, + 35, + 35, + 35, + 0, + 0, + 0, + 0, + 35, + 35, + 0, + 0, + 35, + 35, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 5, + 5, + 0, + 5, + 5, + 0, + 5, + 5, + 0, + 0, + 23, + 0, + 34, + 34, + 34, + 0, + 0, + 0, + 0, + 34, + 34, + 0, + 0, + 34, + 34, + 31, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 5, + 5, + 5, + 0, + 5, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 2, + 18, + 12, + 12, + 0, + 11, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 32, + 0, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 0, + 35, + 35, + 35, + 0, + 35, + 35, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 5, + 5, + 0, + 5, + 5, + 5, + 5, + 5, + 0, + 0, + 23, + 1, + 34, + 34, + 34, + 34, + 34, + 34, + 0, + 34, + 34, + 34, + 0, + 34, + 34, + 31, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 35, + 35, + 34, + 34, + 0, + 0, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 4, + 18, + 4, + 23, + 23, + 23, + 0, + 2, + 2, + 32, + 0, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 0, + 0, + 35, + 35, + 0, + 0, + 35, + 35, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 5, + 5, + 0, + 5, + 5, + 5, + 5, + 5, + 0, + 0, + 23, + 1, + 34, + 34, + 34, + 34, + 34, + 0, + 0, + 34, + 34, + 0, + 0, + 34, + 34, + 31, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 34, + 34, + 34, + 0, + 0, + 0, + 0, + 5, + 5, + 0, + 5, + 35, + 35, + 34, + 34, + 0, + 0, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 0, + 5, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 21, + 0, + 35, + 35, + 35, + 35, + 35, + 35, + 0, + 0, + 0, + 35, + 35, + 35, + 0, + 35, + 35, + 35, + 5, + 0, + 0, + 0, + 5, + 5, + 0, + 5, + 0, + 5, + 5, + 0, + 0, + 0, + 5, + 5, + 0, + 0, + 0, + 5, + 5, + 5, + 0, + 0, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 0, + 0, + 0, + 34, + 34, + 34, + 0, + 0, + 0, + 34, + 34, + 34, + 0, + 34, + 34, + 34, + 31, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 34, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 32, + 2, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 0, + 35, + 35, + 35, + 0, + 35, + 35, + 35, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 0, + 23, + 1, + 34, + 34, + 34, + 34, + 34, + 0, + 34, + 34, + 34, + 0, + 34, + 34, + 34, + 31, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 34, + 34, + 0, + 5, + 5, + 5, + 0, + 0, + 6, + 0, + 0, + 35, + 35, + 34, + 34, + 0, + 0, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 32, + 0, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 0, + 35, + 35, + 35, + 0, + 35, + 35, + 35, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 5, + 5, + 5, + 5, + 5, + 0, + 0, + 23, + 1, + 34, + 34, + 34, + 34, + 34, + 0, + 34, + 34, + 34, + 0, + 34, + 34, + 34, + 31, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 34, + 34, + 0, + 0, + 0, + 0, + 0, + 0, + 6, + 5, + 0, + 35, + 35, + 34, + 34, + 0, + 0, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 0, + 17, + 17, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 32, + 2, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 0, + 35, + 35, + 35, + 0, + 35, + 35, + 35, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 26, + 26, + 1, + 34, + 34, + 34, + 34, + 34, + 0, + 34, + 34, + 34, + 0, + 34, + 34, + 34, + 31, + 13, + 0, + 0, + 0, + 0, + 0, + 6, + 6, + 6, + 34, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 35, + 35, + 35, + 34, + 34, + 0, + 0, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6, + 6, + 6, + 6, + 6, + 6, + 0, + 2, + 2, + 32, + 0, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 0, + 0, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 5, + 0, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 0, + 0, + 31, + 0, + 0, + 0, + 0, + 34, + 34, + 34, + 34, + 34, + 34, + 0, + 34, + 0, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 0, + 0, + 0, + 0, + 0, + 0, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 0, + 0, + 34, + 34, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 26, + 0, + 0, + 0, + 0, + 0, + 34, + 34, + 34, + 34, + 34, + 34, + 0, + 34, + 30, + 30, + 30, + 30, + 10, + 2, + 26, + 0, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 5, + 0, + 5, + 0, + 5, + 5, + 5, + 5, + 5, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 5, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 26, + 34, + 11, + 11, + 0, + 0, + 34, + 34, + 34, + 34, + 34, + 0, + 0, + 0, + 30, + 30, + 30, + 30, + 0, + 2, + 28, + 0, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 0, + 0, + 5, + 5, + 5, + 5, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 0, + 28, + 0, + 28, + 0, + 23, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 0, + 0, + 0, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 2, + 32, + 34, + 34, + 2, + 2, + 26, + 1, + 0, + 0, + 8, + 8, + 8, + 8, + 8, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 0, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 0, + 0, + 0, + 0, + 0, + 0, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 34, + 34, + 34, + 34, + 34, + 34, + 2, + 30, + 32, + 19, + 26, + 11, + 11, + 11, + 11, + 5, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 0, + 12, + 0, + 0, + 12, + 0, + 5, + 5, + 35, + 35, + 35, + 35, + 34, + 34, + 34, + 34, + 5, + 5, + 5, + 5, + 11, + 11, + 5, + 34, + 30, + 30, + 5, + 5, + 34, + 34, + 30, + 30, + 30, + 30, + 30, + 5, + 5, + 34, + 34, + 34, + 34, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 11, + 34, + 34, + 34, + 34, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 5, + 30, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 30, + 30, + 34, + 34, + 0, + 0, + 5, + 5, + 34, + 34, + 26, + 26, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 5, + 34, + 34, + 26, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 5, + 34, + 34, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 35, + 35, + 35, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 5, + 5, + 0, + 34, + 34, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 5, + 5, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 0, + 0, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 2, + 32, + 34, + 27, + 27, + 28, + 16, + 10, + 28, + 28, + 26, + 19, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 28, + 0, + 0, + 12, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 15, + 15, + 15, + 0, + 0, + 0, + 0, + 7, + 7, + 2, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 34, + 28, + 0, + 0, + 0, + 0, + 5, + 5, + 5, + 33, + 33, + 33, + 33, + 33, + 33, + 33, + 33, + 33, + 33, + 33, + 0, + 0, + 29, + 29, + 29, + 29, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 30, + 30, + 0, + 0, + 0, + 0, + 0, + 0, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 0, + 0, + 0, + 0, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 34, + 34, + 34, + 34, + 34, + 0, + 0, + 0, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 35, + 35, + 35, + 5, + 5, + 11, + 11, + 15, + 7, + 7, + 9, + 15, + 15, + 15, + 15, + 0, + 19, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 2, + 30, + 30, + 30, + 30, + 30, + 26, + 28, + 28, + 0, + 0, + 28, + 2, + 2, + 2, + 7, + 32, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 5, + 5, + 5, + 5, + 23, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 31, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 0, + 0, + 2, + 7, + 32, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 5, + 5, + 5, + 5, + 5, + 5, + 15, + 15, + 15, + 34, + 34, + 34, + 34, + 34, + 34, + 26, + 19, + 15, + 15, + 5, + 5, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 1, + 5, + 5, + 5, + 7, + 7, + 5, + 5, + 5, + 5, + 35, + 35, + 23, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 7, + 7, + 26, + 26, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 5, + 5, + 5, + 15, + 15, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 7, + 7, + 7, + 7, + 2, + 2, + 28, + 23, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 0, + 0, + 0, + 5, + 5, + 5, + 4, + 4, + 4, + 0, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6, + 6, + 4, + 17, + 17, + 4, + 4, + 4, + 12, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22, + 20, + 0, + 0, + 12, + 12, + 12, + 12, + 12, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28, + 28, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 35, + 35, + 34, + 35, + 35, + 35, + 31, + 5, + 5, + 5, + 5, + 2, + 5, + 5, + 5, + 5, + 34, + 34, + 34, + 34, + 34, + 0, + 0, + 0, + 0, + 26, + 0, + 0, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 33, + 33, + 5, + 5, + 5, + 5, + 33, + 15, + 15, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 15, + 5, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 5, + 5, + 5, + 11, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 31, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 35, + 34, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 5, + 5, + 5, + 5, + 5, + 5, + 33, + 33, + 33, + 33, + 33, + 33, + 33, + 33, + 33, + 30, + 30, + 30, + 0, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 7, + 7, + 7, + 26, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 7, + 32, + 35, + 35, + 35, + 35, + 35, + 5, + 5, + 5, + 35, + 35, + 35, + 5, + 5, + 5, + 23, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 11, + 11, + 11, + 5, + 5, + 5, + 5, + 5, + 34, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 5, + 5, + 5, + 5, + 5, + 0, + 34, + 34, + 34, + 11, + 11, + 11, + 11, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 0, + 0, + 5, + 5, + 5, + 12, + 12, + 12, + 0, + 0, + 0, + 5, + 30, + 30, + 30, + 5, + 5, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 30, + 29, + 30, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 35, + 35, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 34, + 34, + 34, + 34, + 34, + 0, + 0, + 0, + 0, + 0, + 32, + 19, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 35, + 35, + 5, + 35, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 7, + 7, + 7, + 7, + 7, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 0, + 30, + 26, + 0, + 0, + 5, + 34, + 34, + 34, + 0, + 34, + 34, + 0, + 0, + 0, + 0, + 0, + 34, + 34, + 2, + 32, + 5, + 5, + 5, + 5, + 0, + 5, + 5, + 5, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 0, + 23, + 23, + 23, + 0, + 0, + 0, + 0, + 19, + 2, + 2, + 32, + 17, + 17, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 34, + 34, + 34, + 34, + 34, + 34, + 31, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 26, + 35, + 35, + 34, + 34, + 5, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25, + 2, + 2, + 32, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 5, + 5, + 5, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 31, + 23, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 32, + 35, + 35, + 35, + 35, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 34, + 34, + 34, + 19, + 26, + 0, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 0, + 0, + 0, + 0, + 5, + 34, + 34, + 5, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 33, + 33, + 33, + 33, + 33, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 23, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 5, + 5, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 31, + 1, + 14, + 14, + 0, + 0, + 0, + 0, + 0, + 28, + 23, + 34, + 34, + 0, + 34, + 2, + 34, + 34, + 34, + 34, + 2, + 31, + 23, + 18, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 5, + 35, + 34, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 35, + 35, + 35, + 35, + 5, + 5, + 5, + 0, + 5, + 0, + 5, + 5, + 5, + 5, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 2, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 23, + 26, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 2, + 32, + 0, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 0, + 0, + 35, + 5, + 0, + 5, + 5, + 0, + 5, + 5, + 5, + 5, + 5, + 0, + 23, + 23, + 1, + 34, + 34, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 34, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 35, + 35, + 34, + 34, + 0, + 0, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 0, + 0, + 0, + 5, + 5, + 5, + 5, + 5, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 31, + 2, + 2, + 32, + 23, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 0, + 0, + 0, + 0, + 28, + 2, + 17, + 17, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 5, + 2, + 32, + 31, + 23, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 34, + 34, + 34, + 34, + 34, + 34, + 0, + 0, + 34, + 34, + 34, + 34, + 2, + 2, + 32, + 31, + 23, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 35, + 35, + 35, + 35, + 34, + 34, + 0, + 0, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 2, + 32, + 31, + 34, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 2, + 32, + 34, + 34, + 34, + 34, + 34, + 34, + 31, + 23, + 5, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 0, + 11, + 11, + 11, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 26, + 0, + 0, + 0, + 0, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 0, + 0, + 0, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 2, + 32, + 31, + 23, + 0, + 0, + 0, + 0, + 0, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 0, + 0, + 35, + 0, + 0, + 5, + 5, + 5, + 5, + 0, + 5, + 5, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 34, + 34, + 34, + 34, + 34, + 34, + 0, + 34, + 34, + 0, + 0, + 2, + 2, + 26, + 19, + 14, + 11, + 13, + 11, + 23, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 0, + 0, + 35, + 35, + 35, + 35, + 5, + 5, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 0, + 0, + 34, + 34, + 34, + 34, + 2, + 32, + 31, + 1, + 0, + 0, + 34, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 35, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 5, + 5, + 5, + 5, + 5, + 28, + 26, + 2, + 2, + 2, + 2, + 32, + 14, + 11, + 11, + 11, + 11, + 12, + 0, + 0, + 0, + 0, + 0, + 12, + 0, + 19, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 35, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 5, + 5, + 5, + 5, + 14, + 14, + 14, + 14, + 14, + 14, + 7, + 7, + 7, + 7, + 7, + 7, + 2, + 32, + 18, + 19, + 0, + 0, + 0, + 1, + 0, + 0, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 0, + 35, + 35, + 35, + 35, + 5, + 5, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 0, + 34, + 34, + 34, + 34, + 2, + 2, + 32, + 31, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 24, + 0, + 0, + 0, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 34, + 34, + 34, + 34, + 34, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 0, + 35, + 35, + 0, + 35, + 5, + 5, + 5, + 5, + 34, + 34, + 34, + 34, + 34, + 34, + 0, + 0, + 0, + 34, + 0, + 34, + 34, + 0, + 34, + 2, + 32, + 23, + 34, + 26, + 19, + 13, + 11, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 35, + 35, + 35, + 35, + 35, + 35, + 0, + 35, + 35, + 0, + 35, + 35, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 34, + 34, + 34, + 34, + 34, + 0, + 34, + 34, + 2, + 32, + 19, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 5, + 12, + 34, + 34, + 34, + 34, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 13, + 32, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 0, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 0, + 0, + 0, + 34, + 34, + 26, + 19, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } +} diff --git a/provider/datagen/tests/data/postcard/fingerprints.csv b/provider/datagen/tests/data/postcard/fingerprints.csv index 914d96abd71..a2951f4f4bd 100644 --- a/provider/datagen/tests/data/postcard/fingerprints.csv +++ b/provider/datagen/tests/data/postcard/fingerprints.csv @@ -1335,6 +1335,7 @@ plurals/ranges@1, sr, 2B, 3a6d9523170345d0 plurals/ranges@1, th, 2B, 3a6d9523170345d0 plurals/ranges@1, tr, 2B, 3a6d9523170345d0 propnames/from/GCB@1, und, 250B, f2e454713aa9d7b7 +propnames/from/InSC@1, und, 658B, 63f03c8b66edf35e propnames/from/SB@1, und, 219B, 4c43c3fb27c051da propnames/from/WB@1, und, 402B, 47b082a835be1ff2 propnames/from/bc@1, und, 651B, e2218b08b46d1e15 @@ -1345,6 +1346,7 @@ propnames/from/gcm@1, und, 907B, 43b812154d2d3914 propnames/from/lb@1, und, 863B, 761c539b10bfcacc propnames/from/sc@1, und, 3632B, 536093cd88973193 propnames/to/long/linear/GCB@1, und, 151B, 9feae38a09898348 +propnames/to/long/linear/InSC@1, und, 585B, 36e854e09df6ac36 propnames/to/long/linear/SB@1, und, 109B, 1bddbfc00ea789cb propnames/to/long/linear/WB@1, und, 245B, 7d725adfd056f4a4 propnames/to/long/linear/bc@1, und, 460B, 98758a587d562ad1 @@ -1354,6 +1356,7 @@ propnames/to/long/linear/lb@1, und, 538B, 6184af0b8fd4d249 propnames/to/long/linear/sc@1, und, 1958B, 8397d5c5b16356aa propnames/to/long/sparse/ccc@1, und, 652B, 440a07537c221a20 propnames/to/short/linear/GCB@1, und, 78B, 3f593af98eec2820 +propnames/to/short/linear/InSC@1, und, 585B, 36e854e09df6ac36 propnames/to/short/linear/SB@1, und, 65B, ce7e882cf77b04e propnames/to/short/linear/WB@1, und, 111B, 625b4965d4282611 propnames/to/short/linear/bc@1, und, 103B, 85ea5db229b1eaba @@ -1398,6 +1401,7 @@ props/IDS@1, und, 5275B, 35b34f32e2ec3221 props/IDSB@1, und, 18B, f0c8ea3fb61c993c props/IDST@1, und, 10B, f2be1266fa75708d props/Ideo@1, und, 163B, fa6c1a98c09f46df +props/InSC@1, und, 5917B, c34480030d3cff73 props/Join_C@1, und, 10B, ca93d1f94fc9d2af props/LOE@1, und, 58B, dbe045415d3b363d props/Lower@1, und, 5371B, 7c979c7a7818dd83 diff --git a/tools/testdata-scripts/globs.rs.data b/tools/testdata-scripts/globs.rs.data index 8c1b24a1623..bd6d6526ef7 100644 --- a/tools/testdata-scripts/globs.rs.data +++ b/tools/testdata-scripts/globs.rs.data @@ -139,6 +139,7 @@ const ICUEXPORTDATA_GLOB: &[&str] = &[ "uprops/small/IDS.toml", "uprops/small/IDSB.toml", "uprops/small/IDST.toml", + "uprops/small/InSC.toml", "uprops/small/Join_C.toml", "uprops/small/lb.toml", "uprops/small/LOE.toml", From 76faf6c5b1da06ac1ebc7c38ee7d211292d6ab77 Mon Sep 17 00:00:00 2001 From: Makoto Kato Date: Wed, 18 Oct 2023 18:52:13 +0900 Subject: [PATCH 2/2] Add FFI --- ffi/capi/c/include/ICU4XCodePointMapData8.h | 2 ++ .../ICU4XPropertyValueNameToEnumMapper.h | 2 ++ .../cpp/docs/source/properties_maps_ffi.rst | 5 +++++ .../cpp/docs/source/properties_names_ffi.rst | 5 +++++ ffi/capi/cpp/include/ICU4XCodePointMapData8.h | 2 ++ .../cpp/include/ICU4XCodePointMapData8.hpp | 17 ++++++++++++++++ .../ICU4XPropertyValueNameToEnumMapper.h | 2 ++ .../ICU4XPropertyValueNameToEnumMapper.hpp | 17 ++++++++++++++++ .../js/docs/source/properties_maps_ffi.rst | 5 +++++ .../js/docs/source/properties_names_ffi.rst | 5 +++++ .../js/include/ICU4XCodePointMapData8.d.ts | 7 +++++++ ffi/capi/js/include/ICU4XCodePointMapData8.js | 17 ++++++++++++++++ .../ICU4XPropertyValueNameToEnumMapper.d.ts | 7 +++++++ .../ICU4XPropertyValueNameToEnumMapper.js | 17 ++++++++++++++++ ffi/capi/src/properties_maps.rs | 12 +++++++++++ ffi/capi/src/properties_names.rs | 20 ++++++++++++++++++- tools/ffi_coverage/src/allowlist.rs | 1 + 17 files changed, 142 insertions(+), 1 deletion(-) diff --git a/ffi/capi/c/include/ICU4XCodePointMapData8.h b/ffi/capi/c/include/ICU4XCodePointMapData8.h index 69a6a46b900..87fe8854b2e 100644 --- a/ffi/capi/c/include/ICU4XCodePointMapData8.h +++ b/ffi/capi/c/include/ICU4XCodePointMapData8.h @@ -43,6 +43,8 @@ diplomat_result_box_ICU4XCodePointMapData8_ICU4XError ICU4XCodePointMapData8_loa diplomat_result_box_ICU4XCodePointMapData8_ICU4XError ICU4XCodePointMapData8_load_east_asian_width(const ICU4XDataProvider* provider); +diplomat_result_box_ICU4XCodePointMapData8_ICU4XError ICU4XCodePointMapData8_load_indic_syllabic_category(const ICU4XDataProvider* provider); + diplomat_result_box_ICU4XCodePointMapData8_ICU4XError ICU4XCodePointMapData8_load_line_break(const ICU4XDataProvider* provider); diplomat_result_box_ICU4XCodePointMapData8_ICU4XError ICU4XCodePointMapData8_try_grapheme_cluster_break(const ICU4XDataProvider* provider); diff --git a/ffi/capi/c/include/ICU4XPropertyValueNameToEnumMapper.h b/ffi/capi/c/include/ICU4XPropertyValueNameToEnumMapper.h index 7598c183720..54000ce3384 100644 --- a/ffi/capi/c/include/ICU4XPropertyValueNameToEnumMapper.h +++ b/ffi/capi/c/include/ICU4XPropertyValueNameToEnumMapper.h @@ -31,6 +31,8 @@ diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyV diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyValueNameToEnumMapper_load_east_asian_width(const ICU4XDataProvider* provider); +diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyValueNameToEnumMapper_load_indic_syllabic_category(const ICU4XDataProvider* provider); + diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyValueNameToEnumMapper_load_line_break(const ICU4XDataProvider* provider); diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyValueNameToEnumMapper_load_grapheme_cluster_break(const ICU4XDataProvider* provider); diff --git a/ffi/capi/cpp/docs/source/properties_maps_ffi.rst b/ffi/capi/cpp/docs/source/properties_maps_ffi.rst index 0fd6f64d75a..200c95427d0 100644 --- a/ffi/capi/cpp/docs/source/properties_maps_ffi.rst +++ b/ffi/capi/cpp/docs/source/properties_maps_ffi.rst @@ -143,6 +143,11 @@ See the `Rust documentation for east_asian_width `__ for more information. + .. cpp:function:: static diplomat::result load_indic_syllabic_category(const ICU4XDataProvider& provider) + + See the `Rust documentation for indic_syllabic_category `__ for more information. + + .. cpp:function:: static diplomat::result load_line_break(const ICU4XDataProvider& provider) See the `Rust documentation for line_break `__ for more information. diff --git a/ffi/capi/cpp/docs/source/properties_names_ffi.rst b/ffi/capi/cpp/docs/source/properties_names_ffi.rst index 15ee44d8ed2..2ae5d9e4eb1 100644 --- a/ffi/capi/cpp/docs/source/properties_names_ffi.rst +++ b/ffi/capi/cpp/docs/source/properties_names_ffi.rst @@ -71,6 +71,11 @@ See the `Rust documentation for name_to_enum_mapper `__ for more information. + .. cpp:function:: static diplomat::result load_indic_syllabic_category(const ICU4XDataProvider& provider) + + See the `Rust documentation for name_to_enum_mapper `__ for more information. + + .. cpp:function:: static diplomat::result load_line_break(const ICU4XDataProvider& provider) See the `Rust documentation for name_to_enum_mapper `__ for more information. diff --git a/ffi/capi/cpp/include/ICU4XCodePointMapData8.h b/ffi/capi/cpp/include/ICU4XCodePointMapData8.h index 69a6a46b900..87fe8854b2e 100644 --- a/ffi/capi/cpp/include/ICU4XCodePointMapData8.h +++ b/ffi/capi/cpp/include/ICU4XCodePointMapData8.h @@ -43,6 +43,8 @@ diplomat_result_box_ICU4XCodePointMapData8_ICU4XError ICU4XCodePointMapData8_loa diplomat_result_box_ICU4XCodePointMapData8_ICU4XError ICU4XCodePointMapData8_load_east_asian_width(const ICU4XDataProvider* provider); +diplomat_result_box_ICU4XCodePointMapData8_ICU4XError ICU4XCodePointMapData8_load_indic_syllabic_category(const ICU4XDataProvider* provider); + diplomat_result_box_ICU4XCodePointMapData8_ICU4XError ICU4XCodePointMapData8_load_line_break(const ICU4XDataProvider* provider); diplomat_result_box_ICU4XCodePointMapData8_ICU4XError ICU4XCodePointMapData8_try_grapheme_cluster_break(const ICU4XDataProvider* provider); diff --git a/ffi/capi/cpp/include/ICU4XCodePointMapData8.hpp b/ffi/capi/cpp/include/ICU4XCodePointMapData8.hpp index 339bdf11825..c806b747515 100644 --- a/ffi/capi/cpp/include/ICU4XCodePointMapData8.hpp +++ b/ffi/capi/cpp/include/ICU4XCodePointMapData8.hpp @@ -123,6 +123,13 @@ class ICU4XCodePointMapData8 { */ static diplomat::result load_east_asian_width(const ICU4XDataProvider& provider); + /** + * + * + * See the [Rust documentation for `indic_syllabic_category`](https://docs.rs/icu/latest/icu/properties/maps/fn.indic_syllabic_category.html) for more information. + */ + static diplomat::result load_indic_syllabic_category(const ICU4XDataProvider& provider); + /** * * @@ -215,6 +222,16 @@ inline diplomat::result ICU4XCodePointMapDat } return diplomat_result_out_value; } +inline diplomat::result ICU4XCodePointMapData8::load_indic_syllabic_category(const ICU4XDataProvider& provider) { + auto diplomat_result_raw_out_value = capi::ICU4XCodePointMapData8_load_indic_syllabic_category(provider.AsFFI()); + diplomat::result diplomat_result_out_value; + if (diplomat_result_raw_out_value.is_ok) { + diplomat_result_out_value = diplomat::Ok(ICU4XCodePointMapData8(diplomat_result_raw_out_value.ok)); + } else { + diplomat_result_out_value = diplomat::Err(static_cast(diplomat_result_raw_out_value.err)); + } + return diplomat_result_out_value; +} inline diplomat::result ICU4XCodePointMapData8::load_line_break(const ICU4XDataProvider& provider) { auto diplomat_result_raw_out_value = capi::ICU4XCodePointMapData8_load_line_break(provider.AsFFI()); diplomat::result diplomat_result_out_value; diff --git a/ffi/capi/cpp/include/ICU4XPropertyValueNameToEnumMapper.h b/ffi/capi/cpp/include/ICU4XPropertyValueNameToEnumMapper.h index 7598c183720..54000ce3384 100644 --- a/ffi/capi/cpp/include/ICU4XPropertyValueNameToEnumMapper.h +++ b/ffi/capi/cpp/include/ICU4XPropertyValueNameToEnumMapper.h @@ -31,6 +31,8 @@ diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyV diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyValueNameToEnumMapper_load_east_asian_width(const ICU4XDataProvider* provider); +diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyValueNameToEnumMapper_load_indic_syllabic_category(const ICU4XDataProvider* provider); + diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyValueNameToEnumMapper_load_line_break(const ICU4XDataProvider* provider); diplomat_result_box_ICU4XPropertyValueNameToEnumMapper_ICU4XError ICU4XPropertyValueNameToEnumMapper_load_grapheme_cluster_break(const ICU4XDataProvider* provider); diff --git a/ffi/capi/cpp/include/ICU4XPropertyValueNameToEnumMapper.hpp b/ffi/capi/cpp/include/ICU4XPropertyValueNameToEnumMapper.hpp index d87e475336d..850e7de0d21 100644 --- a/ffi/capi/cpp/include/ICU4XPropertyValueNameToEnumMapper.hpp +++ b/ffi/capi/cpp/include/ICU4XPropertyValueNameToEnumMapper.hpp @@ -73,6 +73,13 @@ class ICU4XPropertyValueNameToEnumMapper { */ static diplomat::result load_east_asian_width(const ICU4XDataProvider& provider); + /** + * + * + * See the [Rust documentation for `name_to_enum_mapper`](https://docs.rs/icu/latest/icu/properties/struct.IndicSyllabicCategory.html#method.name_to_enum_mapper) for more information. + */ + static diplomat::result load_indic_syllabic_category(const ICU4XDataProvider& provider); + /** * * @@ -155,6 +162,16 @@ inline diplomat::result ICU4XPro } return diplomat_result_out_value; } +inline diplomat::result ICU4XPropertyValueNameToEnumMapper::load_indic_syllabic_category(const ICU4XDataProvider& provider) { + auto diplomat_result_raw_out_value = capi::ICU4XPropertyValueNameToEnumMapper_load_indic_syllabic_category(provider.AsFFI()); + diplomat::result diplomat_result_out_value; + if (diplomat_result_raw_out_value.is_ok) { + diplomat_result_out_value = diplomat::Ok(ICU4XPropertyValueNameToEnumMapper(diplomat_result_raw_out_value.ok)); + } else { + diplomat_result_out_value = diplomat::Err(static_cast(diplomat_result_raw_out_value.err)); + } + return diplomat_result_out_value; +} inline diplomat::result ICU4XPropertyValueNameToEnumMapper::load_line_break(const ICU4XDataProvider& provider) { auto diplomat_result_raw_out_value = capi::ICU4XPropertyValueNameToEnumMapper_load_line_break(provider.AsFFI()); diplomat::result diplomat_result_out_value; diff --git a/ffi/capi/js/docs/source/properties_maps_ffi.rst b/ffi/capi/js/docs/source/properties_maps_ffi.rst index faa6a477240..8fc7c1625b4 100644 --- a/ffi/capi/js/docs/source/properties_maps_ffi.rst +++ b/ffi/capi/js/docs/source/properties_maps_ffi.rst @@ -133,6 +133,11 @@ See the `Rust documentation for east_asian_width `__ for more information. + .. js:function:: load_indic_syllabic_category(provider) + + See the `Rust documentation for indic_syllabic_category `__ for more information. + + .. js:function:: load_line_break(provider) See the `Rust documentation for line_break `__ for more information. diff --git a/ffi/capi/js/docs/source/properties_names_ffi.rst b/ffi/capi/js/docs/source/properties_names_ffi.rst index 52c3bd28c13..b500224c469 100644 --- a/ffi/capi/js/docs/source/properties_names_ffi.rst +++ b/ffi/capi/js/docs/source/properties_names_ffi.rst @@ -71,6 +71,11 @@ See the `Rust documentation for name_to_enum_mapper `__ for more information. + .. js:function:: load_indic_syllabic_category(provider) + + See the `Rust documentation for name_to_enum_mapper `__ for more information. + + .. js:function:: load_line_break(provider) See the `Rust documentation for name_to_enum_mapper `__ for more information. diff --git a/ffi/capi/js/include/ICU4XCodePointMapData8.d.ts b/ffi/capi/js/include/ICU4XCodePointMapData8.d.ts index c12b6adc9c2..700695044e7 100644 --- a/ffi/capi/js/include/ICU4XCodePointMapData8.d.ts +++ b/ffi/capi/js/include/ICU4XCodePointMapData8.d.ts @@ -100,6 +100,13 @@ export class ICU4XCodePointMapData8 { */ static load_east_asian_width(provider: ICU4XDataProvider): ICU4XCodePointMapData8 | never; + /** + + * See the {@link https://docs.rs/icu/latest/icu/properties/maps/fn.indic_syllabic_category.html Rust documentation for `indic_syllabic_category`} for more information. + * @throws {@link FFIError}<{@link ICU4XError}> + */ + static load_indic_syllabic_category(provider: ICU4XDataProvider): ICU4XCodePointMapData8 | never; + /** * See the {@link https://docs.rs/icu/latest/icu/properties/maps/fn.line_break.html Rust documentation for `line_break`} for more information. diff --git a/ffi/capi/js/include/ICU4XCodePointMapData8.js b/ffi/capi/js/include/ICU4XCodePointMapData8.js index 3fc2d65d61f..4af999f4be2 100644 --- a/ffi/capi/js/include/ICU4XCodePointMapData8.js +++ b/ffi/capi/js/include/ICU4XCodePointMapData8.js @@ -97,6 +97,23 @@ export class ICU4XCodePointMapData8 { })(); } + static load_indic_syllabic_category(arg_provider) { + return (() => { + const diplomat_receive_buffer = wasm.diplomat_alloc(5, 4); + wasm.ICU4XCodePointMapData8_load_indic_syllabic_category(diplomat_receive_buffer, arg_provider.underlying); + const is_ok = diplomatRuntime.resultFlag(wasm, diplomat_receive_buffer, 4); + if (is_ok) { + const ok_value = new ICU4XCodePointMapData8(diplomatRuntime.ptrRead(wasm, diplomat_receive_buffer), true, []); + wasm.diplomat_free(diplomat_receive_buffer, 5, 4); + return ok_value; + } else { + const throw_value = ICU4XError_rust_to_js[diplomatRuntime.enumDiscriminant(wasm, diplomat_receive_buffer)]; + wasm.diplomat_free(diplomat_receive_buffer, 5, 4); + throw new diplomatRuntime.FFIError(throw_value); + } + })(); + } + static load_line_break(arg_provider) { return (() => { const diplomat_receive_buffer = wasm.diplomat_alloc(5, 4); diff --git a/ffi/capi/js/include/ICU4XPropertyValueNameToEnumMapper.d.ts b/ffi/capi/js/include/ICU4XPropertyValueNameToEnumMapper.d.ts index 8ebef776008..f12131e1e7c 100644 --- a/ffi/capi/js/include/ICU4XPropertyValueNameToEnumMapper.d.ts +++ b/ffi/capi/js/include/ICU4XPropertyValueNameToEnumMapper.d.ts @@ -54,6 +54,13 @@ export class ICU4XPropertyValueNameToEnumMapper { */ static load_east_asian_width(provider: ICU4XDataProvider): ICU4XPropertyValueNameToEnumMapper | never; + /** + + * See the {@link https://docs.rs/icu/latest/icu/properties/struct.IndicSyllabicCategory.html#method.name_to_enum_mapper Rust documentation for `name_to_enum_mapper`} for more information. + * @throws {@link FFIError}<{@link ICU4XError}> + */ + static load_indic_syllabic_category(provider: ICU4XDataProvider): ICU4XPropertyValueNameToEnumMapper | never; + /** * See the {@link https://docs.rs/icu/latest/icu/properties/struct.LineBreak.html#method.name_to_enum_mapper Rust documentation for `name_to_enum_mapper`} for more information. diff --git a/ffi/capi/js/include/ICU4XPropertyValueNameToEnumMapper.js b/ffi/capi/js/include/ICU4XPropertyValueNameToEnumMapper.js index 2029aab5085..ef0ddf1f377 100644 --- a/ffi/capi/js/include/ICU4XPropertyValueNameToEnumMapper.js +++ b/ffi/capi/js/include/ICU4XPropertyValueNameToEnumMapper.js @@ -81,6 +81,23 @@ export class ICU4XPropertyValueNameToEnumMapper { })(); } + static load_indic_syllabic_category(arg_provider) { + return (() => { + const diplomat_receive_buffer = wasm.diplomat_alloc(5, 4); + wasm.ICU4XPropertyValueNameToEnumMapper_load_indic_syllabic_category(diplomat_receive_buffer, arg_provider.underlying); + const is_ok = diplomatRuntime.resultFlag(wasm, diplomat_receive_buffer, 4); + if (is_ok) { + const ok_value = new ICU4XPropertyValueNameToEnumMapper(diplomatRuntime.ptrRead(wasm, diplomat_receive_buffer), true, []); + wasm.diplomat_free(diplomat_receive_buffer, 5, 4); + return ok_value; + } else { + const throw_value = ICU4XError_rust_to_js[diplomatRuntime.enumDiscriminant(wasm, diplomat_receive_buffer)]; + wasm.diplomat_free(diplomat_receive_buffer, 5, 4); + throw new diplomatRuntime.FFIError(throw_value); + } + })(); + } + static load_line_break(arg_provider) { return (() => { const diplomat_receive_buffer = wasm.diplomat_alloc(5, 4); diff --git a/ffi/capi/src/properties_maps.rs b/ffi/capi/src/properties_maps.rs index d8c14189475..768776f40c8 100644 --- a/ffi/capi/src/properties_maps.rs +++ b/ffi/capi/src/properties_maps.rs @@ -165,6 +165,18 @@ pub mod ffi { )?)) } + #[diplomat::rust_link(icu::properties::maps::indic_syllabic_category, Fn)] + #[diplomat::rust_link(icu::properties::maps::load_indic_syllabic_category, Fn, hidden)] + pub fn load_indic_syllabic_category( + provider: &ICU4XDataProvider, + ) -> Result, ICU4XError> { + Ok(convert_8(call_constructor_unstable!( + maps::indic_syllabic_category [r => Ok(r.static_to_owned())], + maps::load_indic_syllabic_category, + provider, + )?)) + } + #[diplomat::rust_link(icu::properties::maps::line_break, Fn)] #[diplomat::rust_link(icu::properties::maps::load_line_break, Fn, hidden)] pub fn load_line_break( diff --git a/ffi/capi/src/properties_names.rs b/ffi/capi/src/properties_names.rs index 4bb95d55ed8..a5ab0e143aa 100644 --- a/ffi/capi/src/properties_names.rs +++ b/ffi/capi/src/properties_names.rs @@ -8,7 +8,8 @@ pub mod ffi { use alloc::boxed::Box; use icu_properties::{ names::PropertyValueNameToEnumMapper, BidiClass, EastAsianWidth, GeneralCategory, - GeneralCategoryGroup, GraphemeClusterBreak, LineBreak, Script, SentenceBreak, WordBreak, + GeneralCategoryGroup, GraphemeClusterBreak, IndicSyllabicCategory, LineBreak, Script, + SentenceBreak, WordBreak, }; use crate::errors::ffi::ICU4XError; @@ -110,6 +111,23 @@ pub mod ffi { ))) } + #[diplomat::rust_link( + icu::properties::IndicSyllabicCategory::name_to_enum_mapper, + FnInStruct + )] + pub fn load_indic_syllabic_category( + provider: &ICU4XDataProvider, + ) -> Result, ICU4XError> { + Ok(Box::new(ICU4XPropertyValueNameToEnumMapper( + call_constructor_unstable!( + IndicSyllabicCategory::name_to_enum_mapper [r => Ok(r.static_to_owned())], + IndicSyllabicCategory::get_name_to_enum_mapper, + provider, + )? + .erase(), + ))) + } + #[diplomat::rust_link(icu::properties::LineBreak::name_to_enum_mapper, FnInStruct)] pub fn load_line_break( provider: &ICU4XDataProvider, diff --git a/tools/ffi_coverage/src/allowlist.rs b/tools/ffi_coverage/src/allowlist.rs index 9b7e1afd2bc..369ebd961ee 100644 --- a/tools/ffi_coverage/src/allowlist.rs +++ b/tools/ffi_coverage/src/allowlist.rs @@ -226,6 +226,7 @@ lazy_static::lazy_static! { "icu::properties::GeneralCategory", "icu::properties::GeneralCategoryGroup", "icu::properties::GraphemeClusterBreak", + "icu::properties::IndicSyllabicCategory", "icu::properties::LineBreak", "icu::properties::Script", "icu::properties::SentenceBreak",