/* Generated by re2c */
#line 1 "encodings/unicode_group_Mc_8.re"
// re2c $INPUT -o $OUTPUT -8
#include <stdint.h>
#include <stdio.h>
#include "utf8.h"
#define YYCTYPE uint8_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_8.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	switch (yych) {
		case 0xE0: goto yy3;
		case 0xE1: goto yy4;
		case 0xE3: goto yy5;
		case 0xEA: goto yy6;
		case 0xF0: goto yy7;
		default: goto yy1;
	}
yy1:
	++YYCURSOR;
yy2:
#line 15 "encodings/unicode_group_Mc_8.re"
	{ return YYCURSOR - 1 == limit; }
#line 32 "encodings/unicode_group_Mc_8.c"
yy3:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
		case 0xA4: goto yy8;
		case 0xA5: goto yy10;
		case 0xA6:
		case 0xB4: goto yy11;
		case 0xA7:
		case 0xAD: goto yy12;
		case 0xA8:
		case 0xAA: goto yy13;
		case 0xA9: goto yy14;
		case 0xAB: goto yy15;
		case 0xAC:
		case 0xB2: goto yy16;
		case 0xAE:
		case 0xBC: goto yy17;
		case 0xAF: goto yy18;
		case 0xB0: goto yy19;
		case 0xB1: goto yy20;
		case 0xB3: goto yy21;
		case 0xB5: goto yy22;
		case 0xB6: goto yy23;
		case 0xB7: goto yy24;
		case 0xBD: goto yy25;
		default: goto yy2;
	}
yy4:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
		case 0x80: goto yy26;
		case 0x81: goto yy27;
		case 0x82: goto yy28;
		case 0x9C: goto yy29;
		case 0x9E: goto yy30;
		case 0x9F: goto yy31;
		case 0xA4: goto yy32;
		case 0xA8: goto yy33;
		case 0xA9: goto yy34;
		case 0xAC: goto yy35;
		case 0xAD: goto yy36;
		case 0xAE: goto yy37;
		case 0xAF: goto yy38;
		case 0xB0: goto yy39;
		case 0xB3: goto yy40;
		default: goto yy2;
	}
yy5:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
		case 0x80: goto yy41;
		default: goto yy2;
	}
yy6:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
		case 0xA0: goto yy42;
		case 0xA2: goto yy43;
		case 0xA3: goto yy44;
		case 0xA5: goto yy45;
		case 0xA6: goto yy46;
		case 0xA7: goto yy14;
		case 0xA8: goto yy47;
		case 0xA9: goto yy48;
		case 0xAB: goto yy49;
		case 0xAF: goto yy50;
		default: goto yy2;
	}
yy7:
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
		case 0x91: goto yy51;
		case 0x96: goto yy52;
		case 0x9D: goto yy53;
		default: goto yy2;
	}
yy8:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x83:
		case 0xBB:
		case 0xBE:
		case 0xBF: goto yy54;
		default: goto yy9;
	}
yy9:
	YYCURSOR = YYMARKER;
	goto yy2;
yy10:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x80:
		case 0x89:
		case 0x8A:
		case 0x8B:
		case 0x8C:
		case 0x8E:
		case 0x8F: goto yy54;
		default: goto yy9;
	}
yy11:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x82:
		case 0x83:
		case 0xBE:
		case 0xBF: goto yy54;
		default: goto yy9;
	}
yy12:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x80:
		case 0x87:
		case 0x88:
		case 0x8B:
		case 0x8C:
		case 0x97: goto yy54;
		default: goto yy9;
	}
yy13:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x83:
		case 0xBE:
		case 0xBF: goto yy54;
		default: goto yy9;
	}
yy14:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x80: goto yy54;
		default: goto yy9;
	}
yy15:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x80:
		case 0x89:
		case 0x8B:
		case 0x8C: goto yy54;
		default: goto yy9;
	}
yy16:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x82:
		case 0x83:
		case 0xBE: goto yy54;
		default: goto yy9;
	}
yy17:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xBE:
		case 0xBF: goto yy54;
		default: goto yy9;
	}
yy18:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x81:
		case 0x82:
		case 0x86:
		case 0x87:
		case 0x88:
		case 0x8A:
		case 0x8B:
		case 0x8C:
		case 0x97: goto yy54;
		default: goto yy9;
	}
yy19:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x81:
		case 0x82:
		case 0x83: goto yy54;
		default: goto yy9;
	}
yy20:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x81:
		case 0x82:
		case 0x83:
		case 0x84: goto yy54;
		default: goto yy9;
	}
yy21:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x80:
		case 0x81:
		case 0x82:
		case 0x83:
		case 0x84:
		case 0x87:
		case 0x88:
		case 0x8A:
		case 0x8B:
		case 0x95:
		case 0x96:
		case 0xB3: goto yy54;
		default: goto yy9;
	}
yy22:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x80:
		case 0x86:
		case 0x87:
		case 0x88:
		case 0x8A:
		case 0x8B:
		case 0x8C:
		case 0x97: goto yy54;
		default: goto yy9;
	}
yy23:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x82:
		case 0x83: goto yy54;
		default: goto yy9;
	}
yy24:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x8F:
		case 0x90:
		case 0x91:
		case 0x98:
		case 0x99:
		case 0x9A:
		case 0x9B:
		case 0x9C:
		case 0x9D:
		case 0x9E:
		case 0x9F:
		case 0xB2:
		case 0xB3: goto yy54;
		default: goto yy9;
	}
yy25:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xBF: goto yy54;
		default: goto yy9;
	}
yy26:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xAB:
		case 0xAC:
		case 0xB1:
		case 0xB8:
		case 0xBB:
		case 0xBC: goto yy54;
		default: goto yy9;
	}
yy27:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x96:
		case 0x97:
		case 0xA2:
		case 0xA3:
		case 0xA4:
		case 0xA7:
		case 0xA8:
		case 0xA9:
		case 0xAA:
		case 0xAB:
		case 0xAC:
		case 0xAD: goto yy54;
		default: goto yy9;
	}
yy28:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x83:
		case 0x84:
		case 0x87:
		case 0x88:
		case 0x89:
		case 0x8A:
		case 0x8B:
		case 0x8C:
		case 0x8F:
		case 0x9A:
		case 0x9B:
		case 0x9C: goto yy54;
		default: goto yy9;
	}
yy29:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x95:
		case 0xB4: goto yy54;
		default: goto yy9;
	}
yy30:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xB6:
		case 0xBE:
		case 0xBF: goto yy54;
		default: goto yy9;
	}
yy31:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x80:
		case 0x81:
		case 0x82:
		case 0x83:
		case 0x84:
		case 0x85:
		case 0x87:
		case 0x88: goto yy54;
		default: goto yy9;
	}
yy32:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xA3:
		case 0xA4:
		case 0xA5:
		case 0xA6:
		case 0xA9:
		case 0xAA:
		case 0xAB:
		case 0xB0:
		case 0xB1:
		case 0xB3:
		case 0xB4:
		case 0xB5:
		case 0xB6:
		case 0xB7:
		case 0xB8: goto yy54;
		default: goto yy9;
	}
yy33:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x99:
		case 0x9A: goto yy54;
		default: goto yy9;
	}
yy34:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x95:
		case 0x97:
		case 0xA1:
		case 0xA3:
		case 0xA4:
		case 0xAD:
		case 0xAE:
		case 0xAF:
		case 0xB0:
		case 0xB1:
		case 0xB2: goto yy54;
		default: goto yy9;
	}
yy35:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x84:
		case 0xB5:
		case 0xBB:
		case 0xBD:
		case 0xBE:
		case 0xBF: goto yy54;
		default: goto yy9;
	}
yy36:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x80:
		case 0x81:
		case 0x83:
		case 0x84: goto yy54;
		default: goto yy9;
	}
yy37:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x82:
		case 0xA1:
		case 0xA6:
		case 0xA7:
		case 0xAA: goto yy54;
		default: goto yy9;
	}
yy38:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xA7:
		case 0xAA:
		case 0xAB:
		case 0xAC:
		case 0xAE:
		case 0xB2:
		case 0xB3: goto yy54;
		default: goto yy9;
	}
yy39:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xA4:
		case 0xA5:
		case 0xA6:
		case 0xA7:
		case 0xA8:
		case 0xA9:
		case 0xAA:
		case 0xAB:
		case 0xB4:
		case 0xB5: goto yy54;
		default: goto yy9;
	}
yy40:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xA1:
		case 0xB7: goto yy54;
		default: goto yy9;
	}
yy41:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xAE:
		case 0xAF: goto yy54;
		default: goto yy9;
	}
yy42:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xA3:
		case 0xA4:
		case 0xA7: goto yy54;
		default: goto yy9;
	}
yy43:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x80:
		case 0x81:
		case 0xB4:
		case 0xB5:
		case 0xB6:
		case 0xB7:
		case 0xB8:
		case 0xB9:
		case 0xBA:
		case 0xBB:
		case 0xBC:
		case 0xBD:
		case 0xBE:
		case 0xBF: goto yy54;
		default: goto yy9;
	}
yy44:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x80:
		case 0x81:
		case 0x82:
		case 0x83: goto yy54;
		default: goto yy9;
	}
yy45:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x92:
		case 0x93: goto yy54;
		default: goto yy9;
	}
yy46:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x83:
		case 0xB4:
		case 0xB5:
		case 0xBA:
		case 0xBB:
		case 0xBE:
		case 0xBF: goto yy54;
		default: goto yy9;
	}
yy47:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xAF:
		case 0xB0:
		case 0xB3:
		case 0xB4: goto yy54;
		default: goto yy9;
	}
yy48:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x8D:
		case 0xBB:
		case 0xBD: goto yy54;
		default: goto yy9;
	}
yy49:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xAB:
		case 0xAE:
		case 0xAF:
		case 0xB5: goto yy54;
		default: goto yy9;
	}
yy50:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xA3:
		case 0xA4:
		case 0xA6:
		case 0xA7:
		case 0xA9:
		case 0xAA:
		case 0xAC: goto yy54;
		default: goto yy9;
	}
yy51:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x80:
		case 0xA5: goto yy55;
		case 0x82: goto yy56;
		case 0x84: goto yy57;
		case 0x85: goto yy58;
		case 0x86: goto yy59;
		case 0x87: goto yy60;
		case 0x88: goto yy61;
		case 0x8B: goto yy62;
		case 0x8C: goto yy11;
		case 0x8D: goto yy63;
		case 0x8E: goto yy64;
		case 0x8F: goto yy65;
		case 0x90: goto yy66;
		case 0x91: goto yy67;
		case 0x92: goto yy68;
		case 0x93:
		case 0xBD: goto yy69;
		case 0x96: goto yy70;
		case 0x98: goto yy71;
		case 0x9A: goto yy72;
		case 0x9C: goto yy73;
		case 0xA0: goto yy74;
		case 0xA4: goto yy75;
		case 0xA7: goto yy76;
		case 0xA8: goto yy77;
		case 0xA9: goto yy78;
		case 0xAA: goto yy79;
		case 0xAD: goto yy80;
		case 0xB0: goto yy81;
		case 0xB2: goto yy82;
		case 0xB6: goto yy83;
		case 0xBB: goto yy84;
		case 0xBC: goto yy85;
		default: goto yy9;
	}
yy52:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x84: goto yy86;
		case 0xBD: goto yy87;
		case 0xBE: goto yy88;
		case 0xBF: goto yy89;
		default: goto yy9;
	}
yy53:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x85: goto yy90;
		default: goto yy9;
	}
yy54:
	++YYCURSOR;
#line 14 "encodings/unicode_group_Mc_8.re"
	{ goto Mc; }
#line 621 "encodings/unicode_group_Mc_8.c"
yy55:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x80:
		case 0x82: goto yy54;
		default: goto yy9;
	}
yy56:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x82:
		case 0xB0:
		case 0xB1:
		case 0xB2:
		case 0xB7:
		case 0xB8: goto yy54;
		default: goto yy9;
	}
yy57:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xAC: goto yy54;
		default: goto yy9;
	}
yy58:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x85:
		case 0x86: goto yy54;
		default: goto yy9;
	}
yy59:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x82:
		case 0xB3:
		case 0xB4:
		case 0xB5:
		case 0xBF: goto yy54;
		default: goto yy9;
	}
yy60:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x80:
		case 0x8E: goto yy54;
		default: goto yy9;
	}
yy61:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xAC:
		case 0xAD:
		case 0xAE:
		case 0xB2:
		case 0xB3:
		case 0xB5: goto yy54;
		default: goto yy9;
	}
yy62:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xA0:
		case 0xA1:
		case 0xA2: goto yy54;
		default: goto yy9;
	}
yy63:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x81:
		case 0x82:
		case 0x83:
		case 0x84:
		case 0x87:
		case 0x88:
		case 0x8B:
		case 0x8C:
		case 0x8D:
		case 0x97:
		case 0xA2:
		case 0xA3: goto yy54;
		default: goto yy9;
	}
yy64:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xB8:
		case 0xB9:
		case 0xBA: goto yy54;
		default: goto yy9;
	}
yy65:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x82:
		case 0x85:
		case 0x87:
		case 0x88:
		case 0x89:
		case 0x8A:
		case 0x8C:
		case 0x8D:
		case 0x8F: goto yy54;
		default: goto yy9;
	}
yy66:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xB5:
		case 0xB6:
		case 0xB7: goto yy54;
		default: goto yy9;
	}
yy67:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x80:
		case 0x81:
		case 0x85: goto yy54;
		default: goto yy9;
	}
yy68:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xB0:
		case 0xB1:
		case 0xB2:
		case 0xB9:
		case 0xBB:
		case 0xBC:
		case 0xBD:
		case 0xBE: goto yy54;
		default: goto yy9;
	}
yy69:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x81: goto yy54;
		default: goto yy9;
	}
yy70:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xAF:
		case 0xB0:
		case 0xB1:
		case 0xB8:
		case 0xB9:
		case 0xBA:
		case 0xBB:
		case 0xBE: goto yy54;
		default: goto yy9;
	}
yy71:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xB0:
		case 0xB1:
		case 0xB2:
		case 0xBB:
		case 0xBC:
		case 0xBE: goto yy54;
		default: goto yy9;
	}
yy72:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xAC:
		case 0xAE:
		case 0xAF:
		case 0xB6: goto yy54;
		default: goto yy9;
	}
yy73:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x9E:
		case 0xA0:
		case 0xA1:
		case 0xA6: goto yy54;
		default: goto yy9;
	}
yy74:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xAC:
		case 0xAD:
		case 0xAE:
		case 0xB8: goto yy54;
		default: goto yy9;
	}
yy75:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xB0:
		case 0xB1:
		case 0xB2:
		case 0xB3:
		case 0xB4:
		case 0xB5:
		case 0xB7:
		case 0xB8:
		case 0xBD: goto yy54;
		default: goto yy9;
	}
yy76:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x91:
		case 0x92:
		case 0x93:
		case 0x9C:
		case 0x9D:
		case 0x9E:
		case 0x9F:
		case 0xA4: goto yy54;
		default: goto yy9;
	}
yy77:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xB9: goto yy54;
		default: goto yy9;
	}
yy78:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x97:
		case 0x98: goto yy54;
		default: goto yy9;
	}
yy79:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x97: goto yy54;
		default: goto yy9;
	}
yy80:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xA1:
		case 0xA5:
		case 0xA7: goto yy54;
		default: goto yy9;
	}
yy81:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xAF:
		case 0xBE: goto yy54;
		default: goto yy9;
	}
yy82:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xA9:
		case 0xB1:
		case 0xB4: goto yy54;
		default: goto yy9;
	}
yy83:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x8A:
		case 0x8B:
		case 0x8C:
		case 0x8D:
		case 0x8E:
		case 0x93:
		case 0x94:
		case 0x96: goto yy54;
		default: goto yy9;
	}
yy84:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xB5:
		case 0xB6: goto yy54;
		default: goto yy9;
	}
yy85:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x83:
		case 0xB4:
		case 0xB5:
		case 0xBE:
		case 0xBF: goto yy54;
		default: goto yy9;
	}
yy86:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xAA:
		case 0xAB:
		case 0xAC: goto yy54;
		default: goto yy9;
	}
yy87:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x91:
		case 0x92:
		case 0x93:
		case 0x94:
		case 0x95:
		case 0x96:
		case 0x97:
		case 0x98:
		case 0x99:
		case 0x9A:
		case 0x9B:
		case 0x9C:
		case 0x9D:
		case 0x9E:
		case 0x9F:
		case 0xA0:
		case 0xA1:
		case 0xA2:
		case 0xA3:
		case 0xA4:
		case 0xA5:
		case 0xA6:
		case 0xA7:
		case 0xA8:
		case 0xA9:
		case 0xAA:
		case 0xAB:
		case 0xAC:
		case 0xAD:
		case 0xAE:
		case 0xAF:
		case 0xB0:
		case 0xB1:
		case 0xB2:
		case 0xB3:
		case 0xB4:
		case 0xB5:
		case 0xB6:
		case 0xB7:
		case 0xB8:
		case 0xB9:
		case 0xBA:
		case 0xBB:
		case 0xBC:
		case 0xBD:
		case 0xBE:
		case 0xBF: goto yy54;
		default: goto yy9;
	}
yy88:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0x80:
		case 0x81:
		case 0x82:
		case 0x83:
		case 0x84:
		case 0x85:
		case 0x86:
		case 0x87: goto yy54;
		default: goto yy9;
	}
yy89:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xB0:
		case 0xB1: goto yy54;
		default: goto yy9;
	}
yy90:
	yych = *++YYCURSOR;
	switch (yych) {
		case 0xA5:
		case 0xA6:
		case 0xAD:
		case 0xAE:
		case 0xAF:
		case 0xB0:
		case 0xB1:
		case 0xB2: goto yy54;
		default: goto yy9;
	}
}
#line 16 "encodings/unicode_group_Mc_8.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_utf8(const uint32_t* ranges, uint32_t ranges_count, uint8_t* s) {
	uint8_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) s += re2c::utf8::rune_to_bytes(s, j);
	for (uint32_t i = 0; i < 6; ++i) s[i] = 0;
	return s - s0;
}

int main() {
	YYCTYPE* buffer_Mc = new YYCTYPE[2832];
	uint32_t buffer_Mc_len = encode_utf8(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;
}
