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

bool scan(const YYCTYPE* start, const YYCTYPE* const limit) {
	__attribute__((unused)) const YYCTYPE* YYMARKER;
#define YYCURSOR start
Mc:

#line 15 "encodings/unicode_group_Mc_x.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x1715) {
		if (yych <= 0x0C81) {
			if (yych <= 0x0AC8) {
				if (yych <= 0x09C0) {
					if (yych <= 0x0948) {
						if (yych <= 0x093A) {
							if (yych == 0x0903) goto yy3;
						} else {
							if (yych <= 0x093B) goto yy3;
							if (yych <= 0x093D) goto yy1;
							if (yych <= 0x0940) goto yy3;
						}
					} else {
						if (yych <= 0x094F) {
							if (yych != 0x094D) goto yy3;
						} else {
							if (yych <= 0x0981) goto yy1;
							if (yych <= 0x0983) goto yy3;
							if (yych >= 0x09BE) goto yy3;
						}
					}
				} else {
					if (yych <= 0x0A02) {
						if (yych <= 0x09CA) {
							if (yych <= 0x09C6) goto yy1;
							if (yych <= 0x09C8) goto yy3;
						} else {
							if (yych <= 0x09CC) goto yy3;
							if (yych == 0x09D7) goto yy3;
						}
					} else {
						if (yych <= 0x0A82) {
							if (yych <= 0x0A03) goto yy3;
							if (yych <= 0x0A3D) goto yy1;
							if (yych <= 0x0A40) goto yy3;
						} else {
							if (yych <= 0x0A83) goto yy3;
							if (yych <= 0x0ABD) goto yy1;
							if (yych <= 0x0AC0) goto yy3;
						}
					}
				}
			} else {
				if (yych <= 0x0B57) {
					if (yych <= 0x0B3E) {
						if (yych <= 0x0ACC) {
							if (yych != 0x0ACA) goto yy3;
						} else {
							if (yych <= 0x0B01) goto yy1;
							if (yych <= 0x0B03) goto yy3;
							if (yych >= 0x0B3E) goto yy3;
						}
					} else {
						if (yych <= 0x0B48) {
							if (yych == 0x0B40) goto yy3;
							if (yych >= 0x0B47) goto yy3;
						} else {
							if (yych <= 0x0B4A) goto yy1;
							if (yych <= 0x0B4C) goto yy3;
							if (yych >= 0x0B57) goto yy3;
						}
					}
				} else {
					if (yych <= 0x0BC9) {
						if (yych <= 0x0BC0) {
							if (yych <= 0x0BBD) goto yy1;
							if (yych <= 0x0BBF) goto yy3;
						} else {
							if (yych <= 0x0BC2) goto yy3;
							if (yych <= 0x0BC5) goto yy1;
							if (yych <= 0x0BC8) goto yy3;
						}
					} else {
						if (yych <= 0x0C00) {
							if (yych <= 0x0BCC) goto yy3;
							if (yych == 0x0BD7) goto yy3;
						} else {
							if (yych <= 0x0C03) goto yy3;
							if (yych <= 0x0C40) goto yy1;
							if (yych <= 0x0C44) goto yy3;
						}
					}
				}
			}
		} else {
			if (yych <= 0x0DDF) {
				if (yych <= 0x0D01) {
					if (yych <= 0x0CC8) {
						if (yych <= 0x0CBE) {
							if (yych <= 0x0C83) goto yy3;
							if (yych >= 0x0CBE) goto yy3;
						} else {
							if (yych <= 0x0CBF) goto yy1;
							if (yych <= 0x0CC4) goto yy3;
							if (yych >= 0x0CC7) goto yy3;
						}
					} else {
						if (yych <= 0x0CD4) {
							if (yych <= 0x0CC9) goto yy1;
							if (yych <= 0x0CCB) goto yy3;
						} else {
							if (yych <= 0x0CD6) goto yy3;
							if (yych == 0x0CF3) goto yy3;
						}
					}
				} else {
					if (yych <= 0x0D4C) {
						if (yych <= 0x0D40) {
							if (yych <= 0x0D03) goto yy3;
							if (yych >= 0x0D3E) goto yy3;
						} else {
							if (yych <= 0x0D45) goto yy1;
							if (yych != 0x0D49) goto yy3;
						}
					} else {
						if (yych <= 0x0D83) {
							if (yych == 0x0D57) goto yy3;
							if (yych >= 0x0D82) goto yy3;
						} else {
							if (yych <= 0x0DCE) goto yy1;
							if (yych <= 0x0DD1) goto yy3;
							if (yych >= 0x0DD8) goto yy3;
						}
					}
				}
			} else {
				if (yych <= 0x1055) {
					if (yych <= 0x102A) {
						if (yych <= 0x0F3D) {
							if (yych <= 0x0DF1) goto yy1;
							if (yych <= 0x0DF3) goto yy3;
						} else {
							if (yych <= 0x0F3F) goto yy3;
							if (yych == 0x0F7F) goto yy3;
						}
					} else {
						if (yych <= 0x1037) {
							if (yych <= 0x102C) goto yy3;
							if (yych == 0x1031) goto yy3;
						} else {
							if (yych <= 0x1038) goto yy3;
							if (yych <= 0x103A) goto yy1;
							if (yych <= 0x103C) goto yy3;
						}
					}
				} else {
					if (yych <= 0x1084) {
						if (yych <= 0x1064) {
							if (yych <= 0x1057) goto yy3;
							if (yych >= 0x1062) goto yy3;
						} else {
							if (yych <= 0x1066) goto yy1;
							if (yych <= 0x106D) goto yy3;
							if (yych >= 0x1083) goto yy3;
						}
					} else {
						if (yych <= 0x108F) {
							if (yych <= 0x1086) goto yy1;
							if (yych <= 0x108C) goto yy3;
							if (yych >= 0x108F) goto yy3;
						} else {
							if (yych <= 0x1099) goto yy1;
							if (yych <= 0x109C) goto yy3;
							if (yych >= 0x1715) goto yy3;
						}
					}
				}
			}
		}
	} else {
		if (yych <= 0x1CE0) {
			if (yych <= 0x1B03) {
				if (yych <= 0x1931) {
					if (yych <= 0x17C6) {
						if (yych <= 0x17B5) {
							if (yych == 0x1734) goto yy3;
						} else {
							if (yych <= 0x17B6) goto yy3;
							if (yych <= 0x17BD) goto yy1;
							if (yych <= 0x17C5) goto yy3;
						}
					} else {
						if (yych <= 0x1926) {
							if (yych <= 0x17C8) goto yy3;
							if (yych >= 0x1923) goto yy3;
						} else {
							if (yych <= 0x1928) goto yy1;
							if (yych <= 0x192B) goto yy3;
							if (yych >= 0x1930) goto yy3;
						}
					}
				} else {
					if (yych <= 0x1A56) {
						if (yych <= 0x1A18) {
							if (yych <= 0x1932) goto yy1;
							if (yych <= 0x1938) goto yy3;
						} else {
							if (yych <= 0x1A1A) goto yy3;
							if (yych == 0x1A55) goto yy3;
						}
					} else {
						if (yych <= 0x1A62) {
							if (yych <= 0x1A57) goto yy3;
							if (yych == 0x1A61) goto yy3;
						} else {
							if (yych <= 0x1A64) goto yy3;
							if (yych <= 0x1A6C) goto yy1;
							if (yych <= 0x1A72) goto yy3;
						}
					}
				}
			} else {
				if (yych <= 0x1BA7) {
					if (yych <= 0x1B41) {
						if (yych <= 0x1B35) {
							if (yych <= 0x1B04) goto yy3;
							if (yych >= 0x1B35) goto yy3;
						} else {
							if (yych == 0x1B3B) goto yy3;
							if (yych >= 0x1B3D) goto yy3;
						}
					} else {
						if (yych <= 0x1B82) {
							if (yych <= 0x1B42) goto yy1;
							if (yych <= 0x1B44) goto yy3;
							if (yych >= 0x1B82) goto yy3;
						} else {
							if (yych == 0x1BA1) goto yy3;
							if (yych >= 0x1BA6) goto yy3;
						}
					}
				} else {
					if (yych <= 0x1BED) {
						if (yych <= 0x1BE6) {
							if (yych == 0x1BAA) goto yy3;
						} else {
							if (yych <= 0x1BE7) goto yy3;
							if (yych <= 0x1BE9) goto yy1;
							if (yych <= 0x1BEC) goto yy3;
						}
					} else {
						if (yych <= 0x1C23) {
							if (yych <= 0x1BEE) goto yy3;
							if (yych <= 0x1BF1) goto yy1;
							if (yych <= 0x1BF3) goto yy3;
						} else {
							if (yych <= 0x1C2B) goto yy3;
							if (yych <= 0x1C33) goto yy1;
							if (yych <= 0x1C35) goto yy3;
						}
					}
				}
			}
		} else {
			if (yych <= 0xAA4D) {
				if (yych <= 0xA951) {
					if (yych <= 0xA824) {
						if (yych <= 0x1CF7) {
							if (yych <= 0x1CE1) goto yy3;
							if (yych >= 0x1CF7) goto yy3;
						} else {
							if (yych <= 0x302D) goto yy1;
							if (yych <= 0x302F) goto yy3;
							if (yych >= 0xA823) goto yy3;
						}
					} else {
						if (yych <= 0xA87F) {
							if (yych == 0xA827) goto yy3;
						} else {
							if (yych <= 0xA881) goto yy3;
							if (yych <= 0xA8B3) goto yy1;
							if (yych <= 0xA8C3) goto yy3;
						}
					}
				} else {
					if (yych <= 0xA9BB) {
						if (yych <= 0xA983) {
							if (yych <= 0xA953) goto yy3;
							if (yych >= 0xA983) goto yy3;
						} else {
							if (yych <= 0xA9B3) goto yy1;
							if (yych <= 0xA9B5) goto yy3;
							if (yych >= 0xA9BA) goto yy3;
						}
					} else {
						if (yych <= 0xAA30) {
							if (yych <= 0xA9BD) goto yy1;
							if (yych <= 0xA9C0) goto yy3;
							if (yych >= 0xAA2F) goto yy3;
						} else {
							if (yych <= 0xAA32) goto yy1;
							if (yych <= 0xAA34) goto yy3;
							if (yych >= 0xAA4D) goto yy3;
						}
					}
				}
			} else {
				if (yych <= 0xABE8) {
					if (yych <= 0xAAED) {
						if (yych <= 0xAA7C) {
							if (yych == 0xAA7B) goto yy3;
						} else {
							if (yych <= 0xAA7D) goto yy3;
							if (yych == 0xAAEB) goto yy3;
						}
					} else {
						if (yych <= 0xABE2) {
							if (yych <= 0xAAEF) goto yy3;
							if (yych == 0xAAF5) goto yy3;
						} else {
							if (yych == 0xABE5) goto yy1;
							if (yych <= 0xABE7) goto yy3;
						}
					}
				} else {
					if (yych <= 0xD806) {
						if (yych <= 0xABEC) {
							if (yych != 0xABEB) goto yy3;
						} else {
							if (yych <= 0xD803) goto yy1;
							if (yych <= 0xD804) goto yy4;
							if (yych <= 0xD805) goto yy5;
							goto yy6;
						}
					} else {
						if (yych <= 0xD81A) {
							if (yych <= 0xD807) goto yy7;
							if (yych == 0xD818) goto yy8;
						} else {
							if (yych <= 0xD81B) goto yy9;
							if (yych == 0xD834) goto yy10;
						}
					}
				}
			}
		}
	}
yy1:
	++YYCURSOR;
yy2:
#line 15 "encodings/unicode_group_Mc_x.re"
	{ return YYCURSOR - 1 == limit; }
#line 361 "encodings/unicode_group_Mc_x.c"
yy3:
	++YYCURSOR;
#line 14 "encodings/unicode_group_Mc_x.re"
	{ goto Mc; }
#line 366 "encodings/unicode_group_Mc_x.c"
yy4:
	yych = *++YYCURSOR;
	if (yych <= 0xDE35) {
		if (yych <= 0xDD46) {
			if (yych <= 0xDCAF) {
				if (yych <= 0xDC01) {
					if (yych == 0xDC00) goto yy3;
					goto yy2;
				} else {
					if (yych <= 0xDC02) goto yy3;
					if (yych == 0xDC82) goto yy3;
					goto yy2;
				}
			} else {
				if (yych <= 0xDCB8) {
					if (yych <= 0xDCB2) goto yy3;
					if (yych <= 0xDCB6) goto yy2;
					goto yy3;
				} else {
					if (yych == 0xDD2C) goto yy3;
					if (yych <= 0xDD44) goto yy2;
					goto yy3;
				}
			}
		} else {
			if (yych <= 0xDDCD) {
				if (yych <= 0xDDB2) {
					if (yych == 0xDD82) goto yy3;
					goto yy2;
				} else {
					if (yych <= 0xDDB5) goto yy3;
					if (yych <= 0xDDBE) goto yy2;
					if (yych <= 0xDDC0) goto yy3;
					goto yy2;
				}
			} else {
				if (yych <= 0xDE2E) {
					if (yych <= 0xDDCE) goto yy3;
					if (yych <= 0xDE2B) goto yy2;
					goto yy3;
				} else {
					if (yych <= 0xDE31) goto yy2;
					if (yych == 0xDE34) goto yy2;
					goto yy3;
				}
			}
		}
	} else {
		if (yych <= 0xDF57) {
			if (yych <= 0xDF40) {
				if (yych <= 0xDF01) {
					if (yych <= 0xDEDF) goto yy2;
					if (yych <= 0xDEE2) goto yy3;
					goto yy2;
				} else {
					if (yych <= 0xDF03) goto yy3;
					if (yych <= 0xDF3D) goto yy2;
					if (yych <= 0xDF3F) goto yy3;
					goto yy2;
				}
			} else {
				if (yych <= 0xDF48) {
					if (yych <= 0xDF44) goto yy3;
					if (yych <= 0xDF46) goto yy2;
					goto yy3;
				} else {
					if (yych <= 0xDF4A) goto yy2;
					if (yych <= 0xDF4D) goto yy3;
					if (yych <= 0xDF56) goto yy2;
					goto yy3;
				}
			}
		} else {
			if (yych <= 0xDFC4) {
				if (yych <= 0xDFB7) {
					if (yych <= 0xDF61) goto yy2;
					if (yych <= 0xDF63) goto yy3;
					goto yy2;
				} else {
					if (yych <= 0xDFBA) goto yy3;
					if (yych == 0xDFC2) goto yy3;
					goto yy2;
				}
			} else {
				if (yych <= 0xDFCB) {
					if (yych == 0xDFC6) goto yy2;
					if (yych <= 0xDFCA) goto yy3;
					goto yy2;
				} else {
					if (yych == 0xDFCE) goto yy2;
					if (yych <= 0xDFCF) goto yy3;
					goto yy2;
				}
			}
		}
	}
yy5:
	yych = *++YYCURSOR;
	if (yych <= 0xDDBD) {
		if (yych <= 0xDCB8) {
			if (yych <= 0xDC41) {
				if (yych <= 0xDC34) goto yy2;
				if (yych <= 0xDC37) goto yy3;
				if (yych <= 0xDC3F) goto yy2;
				goto yy3;
			} else {
				if (yych <= 0xDC45) {
					if (yych <= 0xDC44) goto yy2;
					goto yy3;
				} else {
					if (yych <= 0xDCAF) goto yy2;
					if (yych <= 0xDCB2) goto yy3;
					goto yy2;
				}
			}
		} else {
			if (yych <= 0xDCC1) {
				if (yych <= 0xDCBA) {
					if (yych <= 0xDCB9) goto yy3;
					goto yy2;
				} else {
					if (yych <= 0xDCBE) goto yy3;
					if (yych <= 0xDCC0) goto yy2;
					goto yy3;
				}
			} else {
				if (yych <= 0xDDB1) {
					if (yych <= 0xDDAE) goto yy2;
					goto yy3;
				} else {
					if (yych <= 0xDDB7) goto yy2;
					if (yych <= 0xDDBB) goto yy3;
					goto yy2;
				}
			}
		}
	} else {
		if (yych <= 0xDEAD) {
			if (yych <= 0xDE3C) {
				if (yych <= 0xDE2F) {
					if (yych <= 0xDDBE) goto yy3;
					goto yy2;
				} else {
					if (yych <= 0xDE32) goto yy3;
					if (yych <= 0xDE3A) goto yy2;
					goto yy3;
				}
			} else {
				if (yych <= 0xDE3E) {
					if (yych <= 0xDE3D) goto yy2;
					goto yy3;
				} else {
					if (yych == 0xDEAC) goto yy3;
					goto yy2;
				}
			}
		} else {
			if (yych <= 0xDF1E) {
				if (yych <= 0xDEB5) {
					if (yych <= 0xDEAF) goto yy3;
					goto yy2;
				} else {
					if (yych <= 0xDEB6) goto yy3;
					if (yych <= 0xDF1D) goto yy2;
					goto yy3;
				}
			} else {
				if (yych <= 0xDF21) {
					if (yych <= 0xDF1F) goto yy2;
					goto yy3;
				} else {
					if (yych == 0xDF26) goto yy3;
					goto yy2;
				}
			}
		}
	}
yy6:
	yych = *++YYCURSOR;
	if (yych <= 0xDDD3) {
		if (yych <= 0xDD38) {
			if (yych <= 0xDC38) {
				if (yych <= 0xDC2B) goto yy2;
				if (yych <= 0xDC2E) goto yy3;
				if (yych <= 0xDC37) goto yy2;
				goto yy3;
			} else {
				if (yych <= 0xDD2F) goto yy2;
				if (yych == 0xDD36) goto yy2;
				goto yy3;
			}
		} else {
			if (yych <= 0xDD40) {
				if (yych == 0xDD3D) goto yy3;
				if (yych <= 0xDD3F) goto yy2;
				goto yy3;
			} else {
				if (yych == 0xDD42) goto yy3;
				if (yych <= 0xDDD0) goto yy2;
				goto yy3;
			}
		}
	} else {
		if (yych <= 0xDE58) {
			if (yych <= 0xDDE4) {
				if (yych <= 0xDDDB) goto yy2;
				if (yych <= 0xDDDF) goto yy3;
				if (yych <= 0xDDE3) goto yy2;
				goto yy3;
			} else {
				if (yych == 0xDE39) goto yy3;
				if (yych <= 0xDE56) goto yy2;
				goto yy3;
			}
		} else {
			if (yych <= 0xDF61) {
				if (yych == 0xDE97) goto yy3;
				if (yych <= 0xDF60) goto yy2;
				goto yy3;
			} else {
				if (yych <= 0xDF65) {
					if (yych <= 0xDF64) goto yy2;
					goto yy3;
				} else {
					if (yych == 0xDF67) goto yy3;
					goto yy2;
				}
			}
		}
	}
yy7:
	yych = *++YYCURSOR;
	if (yych <= 0xDD92) {
		if (yych <= 0xDCA9) {
			if (yych <= 0xDC3D) {
				if (yych == 0xDC2F) goto yy3;
				goto yy2;
			} else {
				if (yych <= 0xDC3E) goto yy3;
				if (yych <= 0xDCA8) goto yy2;
				goto yy3;
			}
		} else {
			if (yych <= 0xDCB3) {
				if (yych == 0xDCB1) goto yy3;
				goto yy2;
			} else {
				if (yych <= 0xDCB4) goto yy3;
				if (yych <= 0xDD89) goto yy2;
				if (yych <= 0xDD8E) goto yy3;
				goto yy2;
			}
		}
	} else {
		if (yych <= 0xDF03) {
			if (yych <= 0xDD96) {
				if (yych == 0xDD95) goto yy2;
				goto yy3;
			} else {
				if (yych <= 0xDEF4) goto yy2;
				if (yych <= 0xDEF6) goto yy3;
				if (yych <= 0xDF02) goto yy2;
				goto yy3;
			}
		} else {
			if (yych <= 0xDF3D) {
				if (yych <= 0xDF33) goto yy2;
				if (yych <= 0xDF35) goto yy3;
				goto yy2;
			} else {
				if (yych == 0xDF40) goto yy2;
				if (yych <= 0xDF41) goto yy3;
				goto yy2;
			}
		}
	}
yy8:
	yych = *++YYCURSOR;
	if (yych <= 0xDD29) goto yy2;
	if (yych <= 0xDD2C) goto yy3;
	goto yy2;
yy9:
	yych = *++YYCURSOR;
	if (yych <= 0xDF50) goto yy2;
	if (yych <= 0xDF87) goto yy3;
	if (yych <= 0xDFEF) goto yy2;
	if (yych <= 0xDFF1) goto yy3;
	goto yy2;
yy10:
	yych = *++YYCURSOR;
	if (yych <= 0xDD64) goto yy2;
	if (yych <= 0xDD66) goto yy3;
	if (yych <= 0xDD6C) goto yy2;
	if (yych <= 0xDD72) goto yy3;
	goto yy2;
}
#line 16 "encodings/unicode_group_Mc_x.re"

}

static const uint32_t chars_Mc[] = {0x903,0x903,0x93b,0x93b,0x93e,0x940,0x949,0x94c,0x94e,0x94f,0x982,0x983,0x9be,0x9c0,0x9c7,0x9c8,0x9cb,0x9cc,0x9d7,0x9d7,0xa03,0xa03,0xa3e,0xa40,0xa83,0xa83,0xabe,0xac0,0xac9,0xac9,0xacb,0xacc,0xb02,0xb03,0xb3e,0xb3e,0xb40,0xb40,0xb47,0xb48,0xb4b,0xb4c,0xb57,0xb57,0xbbe,0xbbf,0xbc1,0xbc2,0xbc6,0xbc8,0xbca,0xbcc,0xbd7,0xbd7,0xc01,0xc03,0xc41,0xc44,0xc82,0xc83,0xcbe,0xcbe,0xcc0,0xcc4,0xcc7,0xcc8,0xcca,0xccb,0xcd5,0xcd6,0xcf3,0xcf3,0xd02,0xd03,0xd3e,0xd40,0xd46,0xd48,0xd4a,0xd4c,0xd57,0xd57,0xd82,0xd83,0xdcf,0xdd1,0xdd8,0xddf,0xdf2,0xdf3,0xf3e,0xf3f,0xf7f,0xf7f,0x102b,0x102c,0x1031,0x1031,0x1038,0x1038,0x103b,0x103c,0x1056,0x1057,0x1062,0x1064,0x1067,0x106d,0x1083,0x1084,0x1087,0x108c,0x108f,0x108f,0x109a,0x109c,0x1715,0x1715,0x1734,0x1734,0x17b6,0x17b6,0x17be,0x17c5,0x17c7,0x17c8,0x1923,0x1926,0x1929,0x192b,0x1930,0x1931,0x1933,0x1938,0x1a19,0x1a1a,0x1a55,0x1a55,0x1a57,0x1a57,0x1a61,0x1a61,0x1a63,0x1a64,0x1a6d,0x1a72,0x1b04,0x1b04,0x1b35,0x1b35,0x1b3b,0x1b3b,0x1b3d,0x1b41,0x1b43,0x1b44,0x1b82,0x1b82,0x1ba1,0x1ba1,0x1ba6,0x1ba7,0x1baa,0x1baa,0x1be7,0x1be7,0x1bea,0x1bec,0x1bee,0x1bee,0x1bf2,0x1bf3,0x1c24,0x1c2b,0x1c34,0x1c35,0x1ce1,0x1ce1,0x1cf7,0x1cf7,0x302e,0x302f,0xa823,0xa824,0xa827,0xa827,0xa880,0xa881,0xa8b4,0xa8c3,0xa952,0xa953,0xa983,0xa983,0xa9b4,0xa9b5,0xa9ba,0xa9bb,0xa9be,0xa9c0,0xaa2f,0xaa30,0xaa33,0xaa34,0xaa4d,0xaa4d,0xaa7b,0xaa7b,0xaa7d,0xaa7d,0xaaeb,0xaaeb,0xaaee,0xaaef,0xaaf5,0xaaf5,0xabe3,0xabe4,0xabe6,0xabe7,0xabe9,0xabea,0xabec,0xabec,0x11000,0x11000,0x11002,0x11002,0x11082,0x11082,0x110b0,0x110b2,0x110b7,0x110b8,0x1112c,0x1112c,0x11145,0x11146,0x11182,0x11182,0x111b3,0x111b5,0x111bf,0x111c0,0x111ce,0x111ce,0x1122c,0x1122e,0x11232,0x11233,0x11235,0x11235,0x112e0,0x112e2,0x11302,0x11303,0x1133e,0x1133f,0x11341,0x11344,0x11347,0x11348,0x1134b,0x1134d,0x11357,0x11357,0x11362,0x11363,0x113b8,0x113ba,0x113c2,0x113c2,0x113c5,0x113c5,0x113c7,0x113ca,0x113cc,0x113cd,0x113cf,0x113cf,0x11435,0x11437,0x11440,0x11441,0x11445,0x11445,0x114b0,0x114b2,0x114b9,0x114b9,0x114bb,0x114be,0x114c1,0x114c1,0x115af,0x115b1,0x115b8,0x115bb,0x115be,0x115be,0x11630,0x11632,0x1163b,0x1163c,0x1163e,0x1163e,0x116ac,0x116ac,0x116ae,0x116af,0x116b6,0x116b6,0x1171e,0x1171e,0x11720,0x11721,0x11726,0x11726,0x1182c,0x1182e,0x11838,0x11838,0x11930,0x11935,0x11937,0x11938,0x1193d,0x1193d,0x11940,0x11940,0x11942,0x11942,0x119d1,0x119d3,0x119dc,0x119df,0x119e4,0x119e4,0x11a39,0x11a39,0x11a57,0x11a58,0x11a97,0x11a97,0x11b61,0x11b61,0x11b65,0x11b65,0x11b67,0x11b67,0x11c2f,0x11c2f,0x11c3e,0x11c3e,0x11ca9,0x11ca9,0x11cb1,0x11cb1,0x11cb4,0x11cb4,0x11d8a,0x11d8e,0x11d93,0x11d94,0x11d96,0x11d96,0x11ef5,0x11ef6,0x11f03,0x11f03,0x11f34,0x11f35,0x11f3e,0x11f3f,0x11f41,0x11f41,0x1612a,0x1612c,0x16f51,0x16f87,0x16ff0,0x16ff1,0x1d165,0x1d166,0x1d16d,0x1d172,};

static uint32_t encode_utf16(const uint32_t* ranges, uint32_t ranges_count, uint16_t* s) {
	uint16_t* const s0 = s;
	for (uint32_t i = 0; i < ranges_count; i += 2)
		for (uint32_t j = ranges[i]; j <= ranges[i + 1]; ++j)
			if (j <= re2c::utf16::MAX_1WORD_RUNE) {
				*s++ = j;
			} else {
				*s++ = re2c::utf16::lead_surr(j);
				*s++ = re2c::utf16::trail_surr(j);
			}
	for (uint32_t i = 0; i < 2; ++i) s[i] = 0;
	return s - s0;
}

int main() {
	YYCTYPE* buffer_Mc = new YYCTYPE[944];
	uint32_t buffer_Mc_len = encode_utf16(chars_Mc, sizeof(chars_Mc) / sizeof(uint32_t), buffer_Mc);
	if (!scan(buffer_Mc, buffer_Mc + buffer_Mc_len)) printf("test 'Mc' failed\n");
	delete[] buffer_Mc;
	return 0;
}
