+( ( 0x88 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x89 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x8F == ((const U8*)s)[0] ) ? \
+ ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x91 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xA2 == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
+ : ( 0xA3 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xAB == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xB4 == ((const U8*)s)[0] ) ? \
+ ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
+ ( ( 0xB1 == ((const U8*)s)[2] ) ? \
+ ( ( 0x43 == ((const U8*)s)[3] ) ? \
+ ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
+ : 0 ) \
+ : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x68 == ((const U8*)s)[1] ) ? \
+ ( ( 0xAF == ((const U8*)s)[2] ) ? \
+ ( ( 0x49 == ((const U8*)s)[3] ) ? \
+ ( ( 0xAF == ((const U8*)s)[4] ) ? \
+ ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 0 )\
+ : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
+ : 0 ) \
+ : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : 0 ) \
+ : ( 0xB5 == ((const U8*)s)[0] ) ? \
+ ( ( 0x42 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x46 == ((const U8*)s)[1] ) ? \
+ ( ( 0xAF == ((const U8*)s)[2] ) ? \
+ ( ( 0x49 == ((const U8*)s)[3] ) ? \
+ ( ( 0xAF == ((const U8*)s)[4] ) ? \
+ ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 0 )\
+ : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
+ : ( 0x62 == ((const U8*)s)[3] ) ? \
+ ( ( 0xAF == ((const U8*)s)[4] ) ? \
+ ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 4 )\
+ : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
+ : 0 ) \
+ : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x4A == ((const U8*)s)[1] ) ? \
+ ( ( 0xB1 == ((const U8*)s)[2] ) ? \
+ ( ( 0x43 == ((const U8*)s)[3] ) ? \
+ ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
+ : 0 ) \
+ : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB8 == ((const U8*)s)[0] ) ? \
+ ( ( 0x52 == ((const U8*)s)[1] ) ? \
+ ( ( 0x46 == ((const U8*)s)[2] ) ? \
+ ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
+ : ( 0x63 == ((const U8*)s)[2] ) ? \
+ ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x46 == ((const U8*)s)[5] || 0x52 == ((const U8*)s)[5] || 0x54 == ((const U8*)s)[5] || 0x65 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
+ : ( ( ( ( 0x72 == ((const U8*)s)[2] ) && ( 0xB8 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x65 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
+ : 0 ) \
+ : ( 0xBF == ((const U8*)s)[0] ) ? \
+ ( ( 0x67 == ((const U8*)s)[1] || 0x68 == ((const U8*)s)[1] ) ? \
+ ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
+ : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
+ : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) \
+( ( 0x81 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x86 == ((const U8*)s)[0] ) ? \
+ ( ( 0x86 == ((const U8*)s)[1] ) ? \
+ ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
+ : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
+ : ( 0x88 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x89 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x8F == ((const U8*)s)[0] ) ? \
+ ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x91 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xA2 == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
+ : ( 0xA3 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xAB == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xB4 == ((const U8*)s)[0] ) ? \
+ ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
+ ( ( 0xB1 == ((const U8*)s)[2] ) ? \
+ ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB5 == ((const U8*)s)[0] ) ? \
+ ( ( 0x42 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x46 == ((const U8*)s)[1] ) ? \
+ ( ( 0xAF == ((const U8*)s)[2] ) ? \
+ ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x4A == ((const U8*)s)[1] ) ? \
+ ( ( 0xB1 == ((const U8*)s)[2] ) ? \
+ ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xBF == ((const U8*)s)[0] ) ? \
+ ( ( 0x67 == ((const U8*)s)[1] || 0x68 == ((const U8*)s)[1] ) ? \
+ ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
+ : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
+ : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) \