1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-09 09:27:59 +00:00

Bidi stability work. I _think_ I've now removed all the failures of

array bounds checking.

[originally from svn r4951]
This commit is contained in:
Simon Tatham 2004-12-07 18:10:09 +00:00
parent 30e94b6a5c
commit 52eb87aed2
2 changed files with 280 additions and 322 deletions

View File

@ -31,6 +31,8 @@
#include "minibidi.h"
#define lenof(x) ( sizeof((x)) / sizeof(*(x)) )
/*
* Flips the text buffer, according to max level, and
* all higher levels
@ -110,17 +112,25 @@ unsigned char setOverrideBits(unsigned char level, unsigned char override)
return level;
}
/* Dont remember what this was used for :-) */
unsigned char getPreviousLevel(unsigned char* level, int from)
/*
* Find the most recent run of the same value in `level', and
* return the value _before_ it. Used to process U+202C POP
* DIRECTIONAL FORMATTING.
*/
int getPreviousLevel(unsigned char* level, int from)
{
unsigned char current;
from--;
current = level[from];
while(from>0 && level[from] == current)
{
from--;
}
return level[++from];
if (from > 0) {
unsigned char current = level[--from];
while (from >= 0 && level[from] == current)
from--;
if (from >= 0)
return level[from];
return -1;
} else
return -1;
}
/*
@ -151,19 +161,16 @@ unsigned char leastGreaterEven(unsigned char x)
*/
unsigned char getRLE(wchar_t ch)
{
int offset, i, freq;
int offset, i;
freq = offset = 0;
for(i=0; i<0xFFFF; i++)
offset = 0;
for(i=0; i<lenof(RLE_table); i++)
{
freq = ((RLENode*)RLE_table)[i].f;
offset += freq;
if(offset == ch)
return ((RLENode*)RLE_table)[i].d;
else if(offset > ch)
return ((RLENode*)RLE_table)[i-1].d;
offset += RLE_table[i].f;
if(ch < offset)
return RLE_table[i].d;
}
/* this is here to stop compiler nagging */
/* anything beyond the end of the table is unknown */
return ON;
}
@ -191,7 +198,7 @@ int do_shape(bidi_char *line, bidi_char *to, int count)
break;
case SR:
tempShape = STYPE(line[i+1].wc);
tempShape = (i+1 < count ? STYPE(line[i+1].wc) : SU);
if((tempShape == SL) || (tempShape == SD) || (tempShape == SC))
to[i].wc = SFINAL((SISOLATED(line[i].wc)));
else
@ -201,10 +208,10 @@ int do_shape(bidi_char *line, bidi_char *to, int count)
case SD:
/* Make Ligatures */
tempShape = STYPE(line[i+1].wc);
tempShape = (i+1 < count ? STYPE(line[i+1].wc) : SU);
if(line[i].wc == 0x644)
{
switch(line[i-1].wc)
if (i > 0) switch(line[i-1].wc)
{
case 0x622:
ligFlag = 1;
@ -245,7 +252,7 @@ int do_shape(bidi_char *line, bidi_char *to, int count)
if((tempShape == SL) || (tempShape == SD) || (tempShape == SC))
{
tempShape = STYPE(line[i-1].wc);
tempShape = (i > 0 ? STYPE(line[i-1].wc) : SU);
if((tempShape == SR) || (tempShape == SD) || (tempShape == SC))
to[i].wc = SMEDIAL( (SISOLATED(line[i].wc)) );
else
@ -253,7 +260,7 @@ int do_shape(bidi_char *line, bidi_char *to, int count)
break;
}
tempShape = STYPE(line[i-1].wc);
tempShape = (i > 0 ? STYPE(line[i-1].wc) : SU);
if((tempShape == SR) || (tempShape == SD) || (tempShape == SC))
to[i].wc = SINITIAL((SISOLATED(line[i].wc)));
else
@ -380,9 +387,17 @@ int do_bidi(bidi_char *line, int count)
break;
case PDF:
currentEmbedding = getPreviousLevel(levels, i);
currentOverride = currentEmbedding & OMASK;
currentEmbedding = currentEmbedding & ~OMASK;
{
int prevlevel = getPreviousLevel(levels, i);
if (prevlevel == -1) {
currentEmbedding = paragraphLevel;
currentOverride = ON;
} else {
currentOverride = currentEmbedding & OMASK;
currentEmbedding = currentEmbedding & ~OMASK;
}
}
levels[i] = currentEmbedding;
break;
@ -487,7 +502,7 @@ int do_bidi(bidi_char *line, int count)
* to a European number. A single common separator between two numbers
* of the same type changes to that type.
*/
for( i=0; i<(count-1); i++)
for( i=1; i<(count-1); i++)
{
if(types[i] == ES)
{
@ -512,15 +527,15 @@ int do_bidi(bidi_char *line, int count)
{
if(types[i] == ET)
{
if(types[i-1] == EN)
if(i > 0 && types[i-1] == EN)
{
types[i] = EN;
continue;
}else if(types[i+1] == EN)
}else if(i < count-1 && types[i+1] == EN)
{
types[i] = EN;
continue;
}else if(types[i+1] == ET)
}else if(i < count-1 && types[i+1] == ET)
{
j=i;
while(j <count && types[j] == ET)
@ -579,7 +594,7 @@ int do_bidi(bidi_char *line, int count)
* strong text if the text on both sides has the same direction. European
* and Arabic numbers are treated as though they were R.
*/
if(types[0] == ON)
if(count >= 2 && types[0] == ON)
{
if((types[1] == R) || (types[1] == EN) || (types[1] == AN))
types[0] = R;
@ -628,7 +643,7 @@ int do_bidi(bidi_char *line, int count)
}
}
}
if(types[count-1] == ON)
if(count >= 2 && types[count-1] == ON)
{
if(types[count-2] == R || types[count-2] == EN || types[count-2] == AN)
types[count-1] = R;

View File

@ -55,7 +55,7 @@ void flipThisRun(bidi_char *from, unsigned char* level, int max, int count);
int findIndexOfRun(unsigned char* level , int start, int count, int tlevel);
unsigned char getType(wchar_t ch);
unsigned char setOverrideBits(unsigned char level, unsigned char override);
unsigned char getPreviousLevel(unsigned char* level, int from);
int getPreviousLevel(unsigned char* level, int from);
unsigned char leastGreaterOdd(unsigned char x);
unsigned char leastGreaterEven(unsigned char x);
unsigned char getRLE(wchar_t ch);
@ -157,299 +157,242 @@ const shape_node shapetypes[] = {
*/
typedef struct
{
unsigned char f;
unsigned char d;
unsigned char f;
}RLENode;
/* This is an array of RLENodes, which is the
* Compressed unicode types table
*/
const unsigned char RLE_table[] =
const RLENode RLE_table[] =
{
0x09, 0x10, 0x01, 0x0F, 0x01, 0x10, 0x01, 0x11,
0x01, 0x0F, 0x01, 0x0E, 0x0E, 0x0F, 0x03, 0x10,
0x01, 0x11, 0x01, 0x12, 0x02, 0x0A, 0x03, 0x12,
0x05, 0x0A, 0x01, 0x0C, 0x01, 0x0A, 0x01, 0x0C,
0x01, 0x09, 0x01, 0x08, 0x0A, 0x0C, 0x01, 0x12,
0x06, 0x00, 0x1A, 0x12, 0x06, 0x00, 0x1A, 0x12,
0x04, 0x0E, 0x06, 0x0F, 0x01, 0x0E, 0x1A, 0x0C,
0x01, 0x12, 0x01, 0x0A, 0x04, 0x12, 0x04, 0x00,
0x01, 0x12, 0x05, 0x0A, 0x02, 0x08, 0x02, 0x12,
0x01, 0x00, 0x01, 0x12, 0x03, 0x08, 0x01, 0x00,
0x01, 0x12, 0x05, 0x00, 0x17, 0x12, 0x01, 0x00,
0x1F, 0x12, 0x01, 0x00, 0xFF, 0x00, 0x2A, 0x12,
0x01, 0x00, 0x12, 0x12, 0x1C, 0x00, 0x5E, 0x12,
0x02, 0x00, 0x09, 0x12, 0x02, 0x00, 0x07, 0x12,
0x0E, 0x00, 0x02, 0x12, 0x0E, 0x00, 0x05, 0x12,
0x09, 0x00, 0x01, 0x12, 0x11, 0x0D, 0x50, 0x12,
0x10, 0x0D, 0x10, 0x12, 0x0A, 0x00, 0x01, 0x12,
0x0B, 0x00, 0x01, 0x12, 0x01, 0x00, 0x03, 0x12,
0x01, 0x00, 0x01, 0x12, 0x01, 0x00, 0x14, 0x12,
0x01, 0x00, 0x2C, 0x12, 0x01, 0x00, 0x26, 0x12,
0x0A, 0x00, 0x83, 0x0D, 0x04, 0x12, 0x01, 0x0D,
0x02, 0x00, 0x45, 0x12, 0x01, 0x00, 0x26, 0x12,
0x02, 0x00, 0x02, 0x12, 0x06, 0x00, 0x10, 0x12,
0x21, 0x00, 0x26, 0x12, 0x02, 0x00, 0x07, 0x12,
0x01, 0x00, 0x27, 0x12, 0x01, 0x00, 0x01, 0x12,
0x07, 0x0D, 0x11, 0x12, 0x01, 0x0D, 0x17, 0x12,
0x01, 0x0D, 0x03, 0x03, 0x01, 0x0D, 0x01, 0x03,
0x01, 0x0D, 0x02, 0x03, 0x01, 0x0D, 0x01, 0x12,
0x0B, 0x03, 0x1B, 0x12, 0x05, 0x03, 0x05, 0x12,
0x17, 0x0C, 0x01, 0x12, 0x0E, 0x04, 0x01, 0x12,
0x03, 0x04, 0x01, 0x12, 0x01, 0x04, 0x1A, 0x12,
0x05, 0x04, 0x0B, 0x0D, 0x0B, 0x12, 0x0A, 0x0B,
0x0A, 0x0A, 0x01, 0x0B, 0x02, 0x04, 0x03, 0x0D,
0x01, 0x04, 0x65, 0x0D, 0x07, 0x04, 0x01, 0x0D,
0x07, 0x04, 0x02, 0x0D, 0x02, 0x12, 0x01, 0x0D,
0x04, 0x12, 0x02, 0x08, 0x0A, 0x04, 0x05, 0x12,
0x01, 0x04, 0x0E, 0x12, 0x01, 0x0E, 0x01, 0x04,
0x01, 0x0D, 0x01, 0x04, 0x1B, 0x12, 0x03, 0x0D,
0x1B, 0x12, 0x35, 0x04, 0x26, 0x0D, 0x0B, 0x04,
0x01, 0x12, 0xFF, 0x12, 0x50, 0x0D, 0x02, 0x00,
0x01, 0x12, 0x01, 0x00, 0x35, 0x12, 0x02, 0x0D,
0x01, 0x00, 0x04, 0x0D, 0x08, 0x00, 0x04, 0x0D,
0x01, 0x12, 0x02, 0x00, 0x01, 0x0D, 0x04, 0x12,
0x03, 0x00, 0x0A, 0x0D, 0x02, 0x00, 0x0D, 0x12,
0x10, 0x0D, 0x01, 0x00, 0x02, 0x12, 0x01, 0x00,
0x08, 0x12, 0x02, 0x00, 0x02, 0x12, 0x02, 0x00,
0x16, 0x12, 0x01, 0x00, 0x07, 0x12, 0x01, 0x00,
0x01, 0x12, 0x03, 0x00, 0x04, 0x12, 0x02, 0x0D,
0x01, 0x12, 0x01, 0x00, 0x03, 0x0D, 0x04, 0x12,
0x02, 0x00, 0x02, 0x12, 0x02, 0x00, 0x02, 0x0D,
0x01, 0x12, 0x09, 0x00, 0x01, 0x12, 0x04, 0x00,
0x02, 0x12, 0x01, 0x00, 0x03, 0x0D, 0x02, 0x12,
0x02, 0x00, 0x0C, 0x0A, 0x02, 0x00, 0x07, 0x12,
0x07, 0x0D, 0x01, 0x12, 0x02, 0x00, 0x06, 0x12,
0x04, 0x00, 0x02, 0x12, 0x02, 0x00, 0x16, 0x12,
0x01, 0x00, 0x07, 0x12, 0x01, 0x00, 0x02, 0x12,
0x01, 0x00, 0x02, 0x12, 0x01, 0x00, 0x02, 0x12,
0x02, 0x0D, 0x01, 0x12, 0x01, 0x00, 0x03, 0x0D,
0x02, 0x12, 0x04, 0x0D, 0x02, 0x12, 0x02, 0x0D,
0x03, 0x12, 0x0B, 0x00, 0x04, 0x12, 0x01, 0x00,
0x01, 0x12, 0x07, 0x00, 0x0A, 0x0D, 0x02, 0x00,
0x03, 0x12, 0x0C, 0x0D, 0x02, 0x00, 0x01, 0x12,
0x01, 0x00, 0x07, 0x12, 0x01, 0x00, 0x01, 0x12,
0x01, 0x00, 0x03, 0x12, 0x01, 0x00, 0x16, 0x12,
0x01, 0x00, 0x07, 0x12, 0x01, 0x00, 0x02, 0x12,
0x01, 0x00, 0x05, 0x12, 0x02, 0x0D, 0x01, 0x00,
0x04, 0x0D, 0x05, 0x12, 0x01, 0x0D, 0x02, 0x00,
0x01, 0x12, 0x01, 0x00, 0x02, 0x0D, 0x01, 0x12,
0x02, 0x00, 0x01, 0x12, 0x0F, 0x00, 0x01, 0x12,
0x05, 0x00, 0x0A, 0x12, 0x11, 0x0D, 0x01, 0x00,
0x02, 0x12, 0x01, 0x00, 0x08, 0x12, 0x02, 0x00,
0x02, 0x12, 0x02, 0x00, 0x16, 0x12, 0x01, 0x00,
0x07, 0x12, 0x01, 0x00, 0x02, 0x12, 0x02, 0x00,
0x04, 0x12, 0x02, 0x0D, 0x01, 0x00, 0x02, 0x0D,
0x01, 0x00, 0x01, 0x0D, 0x03, 0x12, 0x03, 0x00,
0x02, 0x12, 0x02, 0x00, 0x02, 0x0D, 0x01, 0x12,
0x08, 0x0D, 0x01, 0x00, 0x01, 0x12, 0x04, 0x00,
0x02, 0x12, 0x01, 0x00, 0x03, 0x12, 0x04, 0x00,
0x0B, 0x12, 0x11, 0x0D, 0x01, 0x00, 0x01, 0x12,
0x01, 0x00, 0x06, 0x12, 0x03, 0x00, 0x03, 0x12,
0x01, 0x00, 0x04, 0x12, 0x03, 0x00, 0x02, 0x12,
0x01, 0x00, 0x01, 0x12, 0x01, 0x00, 0x02, 0x12,
0x03, 0x00, 0x02, 0x12, 0x03, 0x00, 0x03, 0x12,
0x03, 0x00, 0x08, 0x12, 0x01, 0x00, 0x03, 0x12,
0x04, 0x00, 0x02, 0x0D, 0x01, 0x00, 0x02, 0x12,
0x03, 0x00, 0x03, 0x12, 0x01, 0x00, 0x03, 0x0D,
0x01, 0x12, 0x09, 0x00, 0x01, 0x12, 0x0F, 0x00,
0x0C, 0x12, 0x0E, 0x00, 0x03, 0x12, 0x01, 0x00,
0x08, 0x12, 0x01, 0x00, 0x03, 0x12, 0x01, 0x00,
0x17, 0x12, 0x01, 0x00, 0x0A, 0x12, 0x01, 0x00,
0x05, 0x12, 0x04, 0x0D, 0x03, 0x00, 0x04, 0x12,
0x01, 0x0D, 0x03, 0x12, 0x01, 0x0D, 0x04, 0x12,
0x07, 0x0D, 0x02, 0x12, 0x09, 0x00, 0x02, 0x12,
0x04, 0x00, 0x0A, 0x12, 0x12, 0x00, 0x02, 0x12,
0x01, 0x00, 0x08, 0x12, 0x01, 0x00, 0x03, 0x12,
0x01, 0x00, 0x17, 0x12, 0x01, 0x00, 0x0A, 0x12,
0x01, 0x00, 0x05, 0x12, 0x04, 0x00, 0x01, 0x0D,
0x01, 0x00, 0x05, 0x12, 0x01, 0x0D, 0x01, 0x00,
0x02, 0x12, 0x01, 0x00, 0x02, 0x0D, 0x02, 0x12,
0x07, 0x00, 0x02, 0x12, 0x07, 0x00, 0x01, 0x12,
0x01, 0x00, 0x02, 0x12, 0x04, 0x00, 0x0A, 0x12,
0x12, 0x00, 0x02, 0x12, 0x01, 0x00, 0x08, 0x12,
0x01, 0x00, 0x03, 0x12, 0x01, 0x00, 0x17, 0x12,
0x01, 0x00, 0x10, 0x12, 0x04, 0x00, 0x03, 0x0D,
0x03, 0x12, 0x02, 0x00, 0x03, 0x12, 0x01, 0x00,
0x03, 0x0D, 0x01, 0x12, 0x09, 0x00, 0x01, 0x12,
0x08, 0x00, 0x02, 0x12, 0x04, 0x00, 0x0A, 0x12,
0x12, 0x00, 0x02, 0x12, 0x01, 0x00, 0x12, 0x12,
0x03, 0x00, 0x18, 0x12, 0x01, 0x00, 0x09, 0x12,
0x01, 0x00, 0x01, 0x12, 0x02, 0x00, 0x07, 0x12,
0x03, 0x0D, 0x01, 0x12, 0x04, 0x00, 0x03, 0x0D,
0x03, 0x12, 0x01, 0x0D, 0x01, 0x12, 0x01, 0x00,
0x08, 0x12, 0x12, 0x00, 0x03, 0x12, 0x0C, 0x00,
0x30, 0x0D, 0x01, 0x00, 0x02, 0x0D, 0x07, 0x12,
0x04, 0x0A, 0x01, 0x00, 0x07, 0x0D, 0x08, 0x00,
0x0D, 0x12, 0x25, 0x00, 0x02, 0x12, 0x01, 0x00,
0x01, 0x12, 0x02, 0x00, 0x02, 0x12, 0x01, 0x00,
0x01, 0x12, 0x02, 0x00, 0x01, 0x12, 0x06, 0x00,
0x04, 0x12, 0x01, 0x00, 0x07, 0x12, 0x01, 0x00,
0x03, 0x12, 0x01, 0x00, 0x01, 0x12, 0x01, 0x00,
0x01, 0x12, 0x02, 0x00, 0x02, 0x12, 0x01, 0x00,
0x04, 0x0D, 0x01, 0x00, 0x02, 0x0D, 0x06, 0x12,
0x01, 0x0D, 0x02, 0x00, 0x01, 0x12, 0x02, 0x00,
0x05, 0x12, 0x01, 0x00, 0x01, 0x12, 0x01, 0x0D,
0x06, 0x12, 0x02, 0x00, 0x0A, 0x12, 0x02, 0x00,
0x02, 0x12, 0x22, 0x00, 0x18, 0x0D, 0x02, 0x00,
0x1B, 0x0D, 0x01, 0x00, 0x01, 0x0D, 0x01, 0x00,
0x01, 0x0D, 0x01, 0x12, 0x04, 0x00, 0x0A, 0x12,
0x01, 0x00, 0x22, 0x12, 0x06, 0x0D, 0x0E, 0x00,
0x01, 0x0D, 0x05, 0x00, 0x01, 0x0D, 0x02, 0x00,
0x04, 0x12, 0x04, 0x0D, 0x08, 0x12, 0x01, 0x0D,
0x24, 0x12, 0x01, 0x00, 0x08, 0x0D, 0x01, 0x00,
0x06, 0x12, 0x02, 0x00, 0x01, 0x12, 0x30, 0x00,
0x22, 0x12, 0x01, 0x00, 0x05, 0x12, 0x01, 0x00,
0x02, 0x12, 0x01, 0x00, 0x01, 0x0D, 0x04, 0x00,
0x01, 0x0D, 0x01, 0x12, 0x03, 0x0D, 0x02, 0x00,
0x01, 0x0D, 0x01, 0x12, 0x06, 0x00, 0x18, 0x0D,
0x02, 0x12, 0x46, 0x00, 0x26, 0x12, 0x0A, 0x00,
0x29, 0x12, 0x02, 0x00, 0x01, 0x12, 0x04, 0x00,
0x5A, 0x12, 0x05, 0x00, 0x44, 0x12, 0x05, 0x00,
0x52, 0x12, 0x06, 0x00, 0x07, 0x12, 0x01, 0x00,
0x3F, 0x12, 0x01, 0x00, 0x01, 0x12, 0x01, 0x00,
0x04, 0x12, 0x02, 0x00, 0x07, 0x12, 0x01, 0x00,
0x01, 0x12, 0x01, 0x00, 0x04, 0x12, 0x02, 0x00,
0x27, 0x12, 0x01, 0x00, 0x01, 0x12, 0x01, 0x00,
0x04, 0x12, 0x02, 0x00, 0x1F, 0x12, 0x01, 0x00,
0x01, 0x12, 0x01, 0x00, 0x04, 0x12, 0x02, 0x00,
0x07, 0x12, 0x01, 0x00, 0x01, 0x12, 0x01, 0x00,
0x04, 0x12, 0x02, 0x00, 0x07, 0x12, 0x01, 0x00,
0x07, 0x12, 0x01, 0x00, 0x17, 0x12, 0x01, 0x00,
0x1F, 0x12, 0x01, 0x00, 0x01, 0x12, 0x01, 0x00,
0x04, 0x12, 0x02, 0x00, 0x07, 0x12, 0x01, 0x00,
0x27, 0x12, 0x01, 0x00, 0x13, 0x12, 0x06, 0x00,
0x1C, 0x12, 0x23, 0x00, 0x55, 0x12, 0x0C, 0x00,
0xFF, 0x00, 0xFF, 0x00, 0x78, 0x12, 0x09, 0x11,
0x01, 0x00, 0x1A, 0x12, 0x05, 0x00, 0x51, 0x12,
0x0F, 0x00, 0x0D, 0x12, 0x01, 0x00, 0x04, 0x0D,
0x03, 0x12, 0x0B, 0x00, 0x12, 0x0D, 0x03, 0x00,
0x02, 0x12, 0x09, 0x00, 0x12, 0x0D, 0x02, 0x12,
0x0C, 0x00, 0x0D, 0x12, 0x01, 0x00, 0x03, 0x12,
0x01, 0x0D, 0x02, 0x12, 0x0C, 0x00, 0x37, 0x0D,
0x07, 0x00, 0x08, 0x0D, 0x01, 0x00, 0x02, 0x0D,
0x0B, 0x00, 0x07, 0x0A, 0x01, 0x00, 0x01, 0x12,
0x03, 0x00, 0x0A, 0x12, 0x21, 0x0D, 0x03, 0x0E,
0x01, 0x12, 0x01, 0x00, 0x0A, 0x12, 0x06, 0x00,
0x58, 0x12, 0x08, 0x00, 0x29, 0x0D, 0x01, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0x5B, 0x00, 0x9C, 0x12, 0x04, 0x00,
0x5A, 0x12, 0x06, 0x00, 0x16, 0x12, 0x02, 0x00,
0x06, 0x12, 0x02, 0x00, 0x26, 0x12, 0x02, 0x00,
0x06, 0x12, 0x02, 0x00, 0x08, 0x12, 0x01, 0x00,
0x01, 0x12, 0x01, 0x00, 0x01, 0x12, 0x01, 0x00,
0x01, 0x12, 0x01, 0x00, 0x1F, 0x12, 0x02, 0x00,
0x35, 0x12, 0x01, 0x00, 0x07, 0x12, 0x01, 0x00,
0x01, 0x12, 0x03, 0x00, 0x03, 0x12, 0x01, 0x00,
0x07, 0x12, 0x03, 0x00, 0x04, 0x12, 0x02, 0x00,
0x06, 0x12, 0x04, 0x00, 0x0D, 0x12, 0x05, 0x00,
0x03, 0x12, 0x01, 0x00, 0x07, 0x12, 0x03, 0x11,
0x0B, 0x0E, 0x03, 0x00, 0x01, 0x03, 0x01, 0x12,
0x18, 0x11, 0x01, 0x0F, 0x01, 0x01, 0x01, 0x05,
0x01, 0x07, 0x01, 0x02, 0x01, 0x06, 0x01, 0x11,
0x01, 0x0A, 0x05, 0x12, 0x2A, 0x11, 0x01, 0x0E,
0x04, 0x12, 0x06, 0x0E, 0x06, 0x08, 0x01, 0x00,
0x01, 0x12, 0x02, 0x08, 0x06, 0x0A, 0x02, 0x12,
0x03, 0x00, 0x01, 0x08, 0x0A, 0x0A, 0x02, 0x12,
0x14, 0x0A, 0x12, 0x12, 0x1E, 0x0D, 0x1B, 0x12,
0x17, 0x00, 0x01, 0x12, 0x04, 0x00, 0x01, 0x12,
0x02, 0x00, 0x0A, 0x12, 0x01, 0x00, 0x01, 0x12,
0x03, 0x00, 0x05, 0x12, 0x06, 0x00, 0x01, 0x12,
0x01, 0x00, 0x01, 0x12, 0x01, 0x00, 0x01, 0x12,
0x01, 0x00, 0x04, 0x0A, 0x01, 0x00, 0x03, 0x12,
0x01, 0x00, 0x07, 0x12, 0x03, 0x00, 0x03, 0x12,
0x05, 0x00, 0x05, 0x12, 0x16, 0x00, 0x24, 0x12,
0x8E, 0x0A, 0x02, 0x12, 0xFF, 0x12, 0x23, 0x00,
0x45, 0x12, 0x1A, 0x00, 0x01, 0x12, 0xCA, 0x08,
0x3C, 0x00, 0x4E, 0x08, 0x01, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0x20, 0x11, 0x01, 0x12,
0x04, 0x00, 0x03, 0x12, 0x19, 0x00, 0x09, 0x0D,
0x06, 0x12, 0x01, 0x00, 0x05, 0x12, 0x02, 0x00,
0x05, 0x12, 0x04, 0x00, 0x56, 0x12, 0x02, 0x0D,
0x02, 0x12, 0x02, 0x00, 0x03, 0x12, 0x01, 0x00,
0x5A, 0x12, 0x01, 0x00, 0x04, 0x12, 0x05, 0x00,
0x28, 0x12, 0x04, 0x00, 0x5E, 0x12, 0x01, 0x00,
0x28, 0x12, 0x38, 0x00, 0x2D, 0x12, 0x03, 0x00,
0x24, 0x12, 0x1C, 0x00, 0x1C, 0x12, 0x03, 0x00,
0x32, 0x12, 0x0F, 0x00, 0x0C, 0x12, 0x04, 0x00,
0x2F, 0x12, 0x01, 0x00, 0x77, 0x12, 0x04, 0x00,
0x63, 0x12, 0x02, 0x00, 0x1F, 0x12, 0x01, 0x00,
0x01, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xCD, 0x00, 0x01, 0x12,
0x4A, 0x00, 0x01, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xF5, 0x00,
0x01, 0x12, 0x5A, 0x00, 0xFF, 0x00, 0xFF, 0x00,
0xFF, 0x00, 0xFF, 0x00, 0x91, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0x7A, 0x00, 0x01, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xCD, 0x00,
0x01, 0x12, 0x5C, 0x00, 0x01, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0x81, 0x00, 0x02, 0x12,
0x7E, 0x00, 0x02, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0x02, 0x00, 0x02, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12, 0xFF, 0x12,
0xFF, 0x12, 0x17, 0x00, 0xFF, 0x00, 0x30, 0x12,
0x02, 0x00, 0x3B, 0x12, 0x95, 0x00, 0x07, 0x12,
0x0C, 0x00, 0x05, 0x12, 0x05, 0x03, 0x01, 0x0D,
0x01, 0x03, 0x0A, 0x0A, 0x01, 0x03, 0x0D, 0x12,
0x01, 0x03, 0x05, 0x12, 0x01, 0x03, 0x01, 0x12,
0x01, 0x03, 0x02, 0x12, 0x01, 0x03, 0x02, 0x12,
0x01, 0x03, 0x0A, 0x04, 0x62, 0x12, 0x21, 0x04,
0xFF, 0x04, 0x6C, 0x12, 0x12, 0x04, 0x40, 0x12,
0x02, 0x04, 0x36, 0x12, 0x28, 0x04, 0x0D, 0x12,
0x03, 0x0D, 0x10, 0x12, 0x10, 0x0D, 0x04, 0x12,
0x2C, 0x0C, 0x01, 0x12, 0x01, 0x0C, 0x01, 0x12,
0x02, 0x0C, 0x01, 0x12, 0x09, 0x0A, 0x01, 0x12,
0x02, 0x0A, 0x02, 0x12, 0x05, 0x0A, 0x02, 0x12,
0x05, 0x04, 0x05, 0x12, 0x01, 0x04, 0x87, 0x12,
0x02, 0x0E, 0x01, 0x12, 0x03, 0x0A, 0x03, 0x12,
0x05, 0x0A, 0x01, 0x0C, 0x01, 0x0A, 0x01, 0x0C,
0x01, 0x09, 0x01, 0x08, 0x0A, 0x0C, 0x01, 0x12,
0x06, 0x00, 0x1A, 0x12, 0x06, 0x00, 0x1A, 0x12,
0x0B, 0x00, 0x59, 0x12, 0x03, 0x00, 0x06, 0x12,
0x02, 0x00, 0x06, 0x12, 0x02, 0x00, 0x06, 0x12,
0x02, 0x00, 0x03, 0x12, 0x03, 0x0A, 0x02, 0x12,
0x03, 0x0A, 0x02, 0x12, 0x09, 0x00, 0x0E, 0x00,
{ BN, 9}, { S, 1}, { B, 1}, { S, 1}, { WS, 1},
{ B, 1}, { BN, 14}, { B, 3}, { S, 1}, { WS, 1},
{ ON, 2}, { ET, 3}, { ON, 5}, { ET, 1}, { CS, 1},
{ ET, 1}, { CS, 1}, { ES, 1}, { EN, 10}, { CS, 1},
{ ON, 6}, { L, 26}, { ON, 6}, { L, 26}, { ON, 4},
{ BN, 6}, { B, 1}, { BN, 26}, { CS, 1}, { ON, 1},
{ ET, 4}, { ON, 4}, { L, 1}, { ON, 5}, { ET, 2},
{ EN, 2}, { ON, 1}, { L, 1}, { ON, 3}, { EN, 1},
{ L, 1}, { ON, 5}, { L, 23}, { ON, 1}, { L, 31},
{ ON, 1}, { L, 255}, { L, 42}, { ON, 1}, { L, 18},
{ ON, 28}, { L, 94}, { ON, 2}, { L, 9}, { ON, 2},
{ L, 7}, { ON, 14}, { L, 2}, { ON, 14}, { L, 5},
{ ON, 9}, { L, 1}, { ON, 17}, {NSM, 80}, { ON, 16},
{NSM, 16}, { ON, 10}, { L, 1}, { ON, 11}, { L, 1},
{ ON, 1}, { L, 3}, { ON, 1}, { L, 1}, { ON, 1},
{ L, 20}, { ON, 1}, { L, 44}, { ON, 1}, { L, 38},
{ ON, 10}, { L, 131}, {NSM, 4}, { ON, 1}, {NSM, 2},
{ L, 69}, { ON, 1}, { L, 38}, { ON, 2}, { L, 2},
{ ON, 6}, { L, 16}, { ON, 33}, { L, 38}, { ON, 2},
{ L, 7}, { ON, 1}, { L, 39}, { ON, 1}, { L, 1},
{ ON, 7}, {NSM, 17}, { ON, 1}, {NSM, 23}, { ON, 1},
{NSM, 3}, { R, 1}, {NSM, 1}, { R, 1}, {NSM, 2},
{ R, 1}, {NSM, 1}, { ON, 11}, { R, 27}, { ON, 5},
{ R, 5}, { ON, 23}, { CS, 1}, { ON, 14}, { AL, 1},
{ ON, 3}, { AL, 1}, { ON, 1}, { AL, 26}, { ON, 5},
{ AL, 11}, {NSM, 11}, { ON, 10}, { AN, 10}, { ET, 1},
{ AN, 2}, { AL, 3}, {NSM, 1}, { AL, 101}, {NSM, 7},
{ AL, 1}, {NSM, 7}, { AL, 2}, {NSM, 2}, { ON, 1},
{NSM, 4}, { ON, 2}, { EN, 10}, { AL, 5}, { ON, 1},
{ AL, 14}, { ON, 1}, { BN, 1}, { AL, 1}, {NSM, 1},
{ AL, 27}, { ON, 3}, {NSM, 27}, { ON, 53}, { AL, 38},
{NSM, 11}, { AL, 1}, { ON, 255}, { ON, 80}, {NSM, 2},
{ L, 1}, { ON, 1}, { L, 53}, { ON, 2}, {NSM, 1},
{ L, 4}, {NSM, 8}, { L, 4}, {NSM, 1}, { ON, 2},
{ L, 1}, {NSM, 4}, { ON, 3}, { L, 10}, {NSM, 2},
{ L, 13}, { ON, 16}, {NSM, 1}, { L, 2}, { ON, 1},
{ L, 8}, { ON, 2}, { L, 2}, { ON, 2}, { L, 22},
{ ON, 1}, { L, 7}, { ON, 1}, { L, 1}, { ON, 3},
{ L, 4}, { ON, 2}, {NSM, 1}, { ON, 1}, { L, 3},
{NSM, 4}, { ON, 2}, { L, 2}, { ON, 2}, { L, 2},
{NSM, 1}, { ON, 9}, { L, 1}, { ON, 4}, { L, 2},
{ ON, 1}, { L, 3}, {NSM, 2}, { ON, 2}, { L, 12},
{ ET, 2}, { L, 7}, { ON, 7}, {NSM, 1}, { ON, 2},
{ L, 6}, { ON, 4}, { L, 2}, { ON, 2}, { L, 22},
{ ON, 1}, { L, 7}, { ON, 1}, { L, 2}, { ON, 1},
{ L, 2}, { ON, 1}, { L, 2}, { ON, 2}, {NSM, 1},
{ ON, 1}, { L, 3}, {NSM, 2}, { ON, 4}, {NSM, 2},
{ ON, 2}, {NSM, 3}, { ON, 11}, { L, 4}, { ON, 1},
{ L, 1}, { ON, 7}, { L, 10}, {NSM, 2}, { L, 3},
{ ON, 12}, {NSM, 2}, { L, 1}, { ON, 1}, { L, 7},
{ ON, 1}, { L, 1}, { ON, 1}, { L, 3}, { ON, 1},
{ L, 22}, { ON, 1}, { L, 7}, { ON, 1}, { L, 2},
{ ON, 1}, { L, 5}, { ON, 2}, {NSM, 1}, { L, 4},
{NSM, 5}, { ON, 1}, {NSM, 2}, { L, 1}, { ON, 1},
{ L, 2}, {NSM, 1}, { ON, 2}, { L, 1}, { ON, 15},
{ L, 1}, { ON, 5}, { L, 10}, { ON, 17}, {NSM, 1},
{ L, 2}, { ON, 1}, { L, 8}, { ON, 2}, { L, 2},
{ ON, 2}, { L, 22}, { ON, 1}, { L, 7}, { ON, 1},
{ L, 2}, { ON, 2}, { L, 4}, { ON, 2}, {NSM, 1},
{ L, 2}, {NSM, 1}, { L, 1}, {NSM, 3}, { ON, 3},
{ L, 2}, { ON, 2}, { L, 2}, {NSM, 1}, { ON, 8},
{NSM, 1}, { L, 1}, { ON, 4}, { L, 2}, { ON, 1},
{ L, 3}, { ON, 4}, { L, 11}, { ON, 17}, {NSM, 1},
{ L, 1}, { ON, 1}, { L, 6}, { ON, 3}, { L, 3},
{ ON, 1}, { L, 4}, { ON, 3}, { L, 2}, { ON, 1},
{ L, 1}, { ON, 1}, { L, 2}, { ON, 3}, { L, 2},
{ ON, 3}, { L, 3}, { ON, 3}, { L, 8}, { ON, 1},
{ L, 3}, { ON, 4}, { L, 2}, {NSM, 1}, { L, 2},
{ ON, 3}, { L, 3}, { ON, 1}, { L, 3}, {NSM, 1},
{ ON, 9}, { L, 1}, { ON, 15}, { L, 12}, { ON, 14},
{ L, 3}, { ON, 1}, { L, 8}, { ON, 1}, { L, 3},
{ ON, 1}, { L, 23}, { ON, 1}, { L, 10}, { ON, 1},
{ L, 5}, { ON, 4}, {NSM, 3}, { L, 4}, { ON, 1},
{NSM, 3}, { ON, 1}, {NSM, 4}, { ON, 7}, {NSM, 2},
{ ON, 9}, { L, 2}, { ON, 4}, { L, 10}, { ON, 18},
{ L, 2}, { ON, 1}, { L, 8}, { ON, 1}, { L, 3},
{ ON, 1}, { L, 23}, { ON, 1}, { L, 10}, { ON, 1},
{ L, 5}, { ON, 4}, { L, 1}, {NSM, 1}, { L, 5},
{ ON, 1}, {NSM, 1}, { L, 2}, { ON, 1}, { L, 2},
{NSM, 2}, { ON, 7}, { L, 2}, { ON, 7}, { L, 1},
{ ON, 1}, { L, 2}, { ON, 4}, { L, 10}, { ON, 18},
{ L, 2}, { ON, 1}, { L, 8}, { ON, 1}, { L, 3},
{ ON, 1}, { L, 23}, { ON, 1}, { L, 16}, { ON, 4},
{ L, 3}, {NSM, 3}, { ON, 2}, { L, 3}, { ON, 1},
{ L, 3}, {NSM, 1}, { ON, 9}, { L, 1}, { ON, 8},
{ L, 2}, { ON, 4}, { L, 10}, { ON, 18}, { L, 2},
{ ON, 1}, { L, 18}, { ON, 3}, { L, 24}, { ON, 1},
{ L, 9}, { ON, 1}, { L, 1}, { ON, 2}, { L, 7},
{ ON, 3}, {NSM, 1}, { ON, 4}, { L, 3}, {NSM, 3},
{ ON, 1}, {NSM, 1}, { ON, 1}, { L, 8}, { ON, 18},
{ L, 3}, { ON, 12}, { L, 48}, {NSM, 1}, { L, 2},
{NSM, 7}, { ON, 4}, { ET, 1}, { L, 7}, {NSM, 8},
{ L, 13}, { ON, 37}, { L, 2}, { ON, 1}, { L, 1},
{ ON, 2}, { L, 2}, { ON, 1}, { L, 1}, { ON, 2},
{ L, 1}, { ON, 6}, { L, 4}, { ON, 1}, { L, 7},
{ ON, 1}, { L, 3}, { ON, 1}, { L, 1}, { ON, 1},
{ L, 1}, { ON, 2}, { L, 2}, { ON, 1}, { L, 4},
{NSM, 1}, { L, 2}, {NSM, 6}, { ON, 1}, {NSM, 2},
{ L, 1}, { ON, 2}, { L, 5}, { ON, 1}, { L, 1},
{ ON, 1}, {NSM, 6}, { ON, 2}, { L, 10}, { ON, 2},
{ L, 2}, { ON, 34}, { L, 24}, {NSM, 2}, { L, 27},
{NSM, 1}, { L, 1}, {NSM, 1}, { L, 1}, {NSM, 1},
{ ON, 4}, { L, 10}, { ON, 1}, { L, 34}, { ON, 6},
{NSM, 14}, { L, 1}, {NSM, 5}, { L, 1}, {NSM, 2},
{ L, 4}, { ON, 4}, {NSM, 8}, { ON, 1}, {NSM, 36},
{ ON, 1}, { L, 8}, {NSM, 1}, { L, 6}, { ON, 2},
{ L, 1}, { ON, 48}, { L, 34}, { ON, 1}, { L, 5},
{ ON, 1}, { L, 2}, { ON, 1}, { L, 1}, {NSM, 4},
{ L, 1}, {NSM, 1}, { ON, 3}, {NSM, 2}, { L, 1},
{NSM, 1}, { ON, 6}, { L, 24}, {NSM, 2}, { ON, 70},
{ L, 38}, { ON, 10}, { L, 41}, { ON, 2}, { L, 1},
{ ON, 4}, { L, 90}, { ON, 5}, { L, 68}, { ON, 5},
{ L, 82}, { ON, 6}, { L, 7}, { ON, 1}, { L, 63},
{ ON, 1}, { L, 1}, { ON, 1}, { L, 4}, { ON, 2},
{ L, 7}, { ON, 1}, { L, 1}, { ON, 1}, { L, 4},
{ ON, 2}, { L, 39}, { ON, 1}, { L, 1}, { ON, 1},
{ L, 4}, { ON, 2}, { L, 31}, { ON, 1}, { L, 1},
{ ON, 1}, { L, 4}, { ON, 2}, { L, 7}, { ON, 1},
{ L, 1}, { ON, 1}, { L, 4}, { ON, 2}, { L, 7},
{ ON, 1}, { L, 7}, { ON, 1}, { L, 23}, { ON, 1},
{ L, 31}, { ON, 1}, { L, 1}, { ON, 1}, { L, 4},
{ ON, 2}, { L, 7}, { ON, 1}, { L, 39}, { ON, 1},
{ L, 19}, { ON, 6}, { L, 28}, { ON, 35}, { L, 85},
{ ON, 12}, { L, 255}, { L, 255}, { L, 120}, { ON, 9},
{ WS, 1}, { L, 26}, { ON, 5}, { L, 81}, { ON, 15},
{ L, 13}, { ON, 1}, { L, 4}, {NSM, 3}, { ON, 11},
{ L, 18}, {NSM, 3}, { L, 2}, { ON, 9}, { L, 18},
{NSM, 2}, { ON, 12}, { L, 13}, { ON, 1}, { L, 3},
{ ON, 1}, {NSM, 2}, { ON, 12}, { L, 55}, {NSM, 7},
{ L, 8}, {NSM, 1}, { L, 2}, {NSM, 11}, { L, 7},
{ ET, 1}, { L, 1}, { ON, 3}, { L, 10}, { ON, 33},
{NSM, 3}, { BN, 1}, { ON, 1}, { L, 10}, { ON, 6},
{ L, 88}, { ON, 8}, { L, 41}, {NSM, 1}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 91},
{ L, 156}, { ON, 4}, { L, 90}, { ON, 6}, { L, 22},
{ ON, 2}, { L, 6}, { ON, 2}, { L, 38}, { ON, 2},
{ L, 6}, { ON, 2}, { L, 8}, { ON, 1}, { L, 1},
{ ON, 1}, { L, 1}, { ON, 1}, { L, 1}, { ON, 1},
{ L, 31}, { ON, 2}, { L, 53}, { ON, 1}, { L, 7},
{ ON, 1}, { L, 1}, { ON, 3}, { L, 3}, { ON, 1},
{ L, 7}, { ON, 3}, { L, 4}, { ON, 2}, { L, 6},
{ ON, 4}, { L, 13}, { ON, 5}, { L, 3}, { ON, 1},
{ L, 7}, { ON, 3}, { WS, 11}, { BN, 3}, { L, 1},
{ R, 1}, { ON, 24}, { WS, 1}, { B, 1}, {LRE, 1},
{RLE, 1}, {PDF, 1}, {LRO, 1}, {RLO, 1}, { WS, 1},
{ ET, 5}, { ON, 42}, { WS, 1}, { BN, 4}, { ON, 6},
{ BN, 6}, { EN, 1}, { L, 1}, { ON, 2}, { EN, 6},
{ ET, 2}, { ON, 3}, { L, 1}, { EN, 10}, { ET, 2},
{ ON, 20}, { ET, 18}, { ON, 30}, {NSM, 27}, { ON, 23},
{ L, 1}, { ON, 4}, { L, 1}, { ON, 2}, { L, 10},
{ ON, 1}, { L, 1}, { ON, 3}, { L, 5}, { ON, 6},
{ L, 1}, { ON, 1}, { L, 1}, { ON, 1}, { L, 1},
{ ON, 1}, { L, 4}, { ET, 1}, { L, 3}, { ON, 1},
{ L, 7}, { ON, 3}, { L, 3}, { ON, 5}, { L, 5},
{ ON, 22}, { L, 36}, { ON, 142}, { ET, 2}, { ON, 255},
{ ON, 35}, { L, 69}, { ON, 26}, { L, 1}, { ON, 202},
{ EN, 60}, { L, 78}, { EN, 1}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 32},
{ WS, 1}, { ON, 4}, { L, 3}, { ON, 25}, { L, 9},
{NSM, 6}, { ON, 1}, { L, 5}, { ON, 2}, { L, 5},
{ ON, 4}, { L, 86}, { ON, 2}, {NSM, 2}, { ON, 2},
{ L, 3}, { ON, 1}, { L, 90}, { ON, 1}, { L, 4},
{ ON, 5}, { L, 40}, { ON, 4}, { L, 94}, { ON, 1},
{ L, 40}, { ON, 56}, { L, 45}, { ON, 3}, { L, 36},
{ ON, 28}, { L, 28}, { ON, 3}, { L, 50}, { ON, 15},
{ L, 12}, { ON, 4}, { L, 47}, { ON, 1}, { L, 119},
{ ON, 4}, { L, 99}, { ON, 2}, { L, 31}, { ON, 1},
{ L, 1}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 205}, { L, 1}, { ON, 74}, { L, 1},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 245}, { L, 1}, { ON, 90}, { L, 255},
{ L, 255}, { L, 255}, { L, 255}, { L, 145}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 122}, { L, 1}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 205}, { L, 1}, { ON, 92}, { L, 1},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 129}, { L, 2},
{ ON, 126}, { L, 2}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 2}, { L, 2}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 255}, { ON, 255},
{ ON, 255}, { ON, 255}, { ON, 255}, { ON, 23}, { L, 255},
{ L, 48}, { ON, 2}, { L, 59}, { ON, 149}, { L, 7},
{ ON, 12}, { L, 5}, { ON, 5}, { R, 1}, {NSM, 1},
{ R, 10}, { ET, 1}, { R, 13}, { ON, 1}, { R, 5},
{ ON, 1}, { R, 1}, { ON, 1}, { R, 2}, { ON, 1},
{ R, 2}, { ON, 1}, { R, 10}, { AL, 98}, { ON, 33},
{ AL, 255}, { AL, 108}, { ON, 18}, { AL, 64}, { ON, 2},
{ AL, 54}, { ON, 40}, { AL, 13}, { ON, 3}, {NSM, 16},
{ ON, 16}, {NSM, 4}, { ON, 44}, { CS, 1}, { ON, 1},
{ CS, 1}, { ON, 2}, { CS, 1}, { ON, 9}, { ET, 1},
{ ON, 2}, { ET, 2}, { ON, 5}, { ET, 2}, { ON, 5},
{ AL, 5}, { ON, 1}, { AL, 135}, { ON, 2}, { BN, 1},
{ ON, 3}, { ET, 3}, { ON, 5}, { ET, 1}, { CS, 1},
{ ET, 1}, { CS, 1}, { ES, 1}, { EN, 10}, { CS, 1},
{ ON, 6}, { L, 26}, { ON, 6}, { L, 26}, { ON, 11},
{ L, 89}, { ON, 3}, { L, 6}, { ON, 2}, { L, 6},
{ ON, 2}, { L, 6}, { ON, 2}, { L, 3}, { ON, 3},
{ ET, 2}, { ON, 3}, { ET, 2}, { ON, 9}, { L, 14},
};