/* non-hole-related templates */
/* NOTE: these templates are UPSIDE-DOWN from what you see on the screen!!! */

USHORT LineH0[] = {
	0x0000,
	0xe000,
	0x0000,
};

USHORT LineH1[] = {
	0x0000,
	0x0000,
	0xfc00,
	0xfc00,
	0x0000,
	0x0000,
};

USHORT LineH2[] = {
	0x0000,
	0x0000,
	0x0000,
	0x0000,
	0xffc0,
	0xffc0,
	0x0000,
	0x0000,
	0x0000,
	0x0000,

};

USHORT LineH3[] = {
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0xffff, 0xc000,
	0xffff, 0xc000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
};

USHORT LineV0[] = {
	0x4000,
	0x4000,
	0x4000,
};

USHORT LineV1[] = {
	0x3000,
	0x3000,
	0x3000,
	0x3000,
	0x3000,
	0x3000,
};

USHORT LineV2[] = {
	0x0c00,
	0x0c00,
	0x0c00,
	0x0c00,
	0x0c00,
	0x0c00,
	0x0c00,
	0x0c00,
	0x0c00,
	0x0c00,
};

USHORT LineV3[] = {
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
};

USHORT CornerNE0[] = {
	0x0000,
	0x2000,
	0x4000,
};

USHORT CornerNE1[] = {
	0x1000,
	0x0800,
	0x0400,
	0x0000,
	0x0000,
	0x0000,
};

USHORT CornerNE2[] = {
	0x0c00,
	0x0600,
	0x0300,
	0x0180,
	0x00c0,
	0x0040,
	0x0000,
	0x0000,
	0x0000,
	0x0000,
};

USHORT CornerNE3[] = {
	0x00c0, 0x0000,
	0x0060, 0x0000,
	0x0030, 0x0000,
	0x0018, 0x0000,
	0x000c, 0x0000,
	0x0006, 0x0000,
	0x0003, 0x0000,
	0x0001, 0x8000,
	0x0000, 0xc000,
	0x0000, 0x4000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
};

USHORT CornerSE0[] = {
	0x4000,
	0x2000,
	0x0000,
};

USHORT CornerSE1[] = {
	0x0000,
	0x0000,
	0x0000,
	0x0400,
	0x0800,
	0x1000,
};

USHORT CornerSE2[] = {
	0x0000,
	0x0000,
	0x0000,
	0x0000,
	0x0040,
	0x00c0,
	0x0180,
	0x0300,
	0x0600,
	0x0c00,
};

USHORT CornerSE3[] = {
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x4000,
	0x0000, 0xc000,
	0x0001, 0x8000,
	0x0003, 0x0000,
	0x0006, 0x0000,
	0x000c, 0x0000,
	0x0018, 0x0000,
	0x0030, 0x0000,
	0x0060, 0x0000,
	0x00c0, 0x0000,
};

USHORT CornerSW0[] = {
	0x4000,
	0x8000,
	0x0000,
};

USHORT CornerSW1[] = {
	0x0000,
	0x0000,
	0x0000,
	0x8000,
	0x4000,
	0x2000,
};

USHORT CornerSW2[] = {
	0x0000,
	0x0000,
	0x0000,
	0x0000,
	0x8000,
	0xc000,
	0x6000,
	0x3000,
	0x1800,
	0x0c00,
};

USHORT CornerSW3[] = {
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x8000, 0x0000,
	0xc000, 0x0000,
	0x6000, 0x0000,
	0x3000, 0x0000,
	0x1800, 0x0000,
	0x0c00, 0x0000,
	0x0600, 0x0000,
	0x0300, 0x0000,
	0x0180, 0x0000,
	0x00c0, 0x0000,
};

USHORT CornerNW0[] = {
	0x0000,
	0x8000,
	0x4000,

};

USHORT CornerNW1[] = {
	0x2000,
	0x4000,
	0x8000,
	0x0000,
	0x0000,
	0x0000,
};

USHORT CornerNW2[] = {
	0x0c00,
	0x1800,
	0x3000,
	0x6000,
	0xc000,
	0x8000,
	0x0000,
	0x0000,
	0x0000,
	0x0000,
};

USHORT CornerNW3[] = {
	0x00c0, 0x0000,
	0x0180, 0x0000,
	0x0300, 0x0000,
	0x0600, 0x0000,
	0x0c00, 0x0000,
	0x1800, 0x0000,
	0x3000, 0x0000,
	0x6000, 0x0000,
	0xc000, 0x0000,
	0x8000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,

};

USHORT DiagNESW0[] = {
	0x8000,
	0x4000,
	0x2000,
};

USHORT DiagNESW1[] = {
	0x0400,
	0x0800,
	0x1000,
	0x2000,
	0x4000,
	0x8000,
};

USHORT DiagNESW2[] = {
	0x0040,
	0x0080,
	0x0100,
	0x0200,
	0x0400,
	0x0800,
	0x1000,
	0x2000,
	0x4000,
	0x8000,
};

USHORT DiagNESW3[] = {
	0x0000, 0x4000,
	0x0000, 0x8000,
	0x0001, 0x0000,
	0x0002, 0x0000,
	0x0004, 0x0000,
	0x0008,	0x0000,
	0x0010, 0x0000,
	0x0020, 0x0000,
	0x0040, 0x0000,
	0x0080, 0x0000,
	0x0100, 0x0000,
	0x0200, 0x0000,
	0x0400, 0x0000,
	0x0800, 0x0000,
	0x1000, 0x0000,
	0x2000, 0x0000,
	0x4000, 0x0000,
	0x8000, 0x0000,
};

USHORT DiagSENW0[] = {
	0x2000,
	0x4000,
	0x8000,
};

USHORT DiagSENW1[] = {
	0x8000,
	0x4000,
	0x2000,
	0x1000,
	0x0800,
	0x0400,
};

USHORT DiagSENW2[] = {
	0x8000,
	0x4000,
	0x2000,
	0x1000,
	0x0800,
	0x0400,
	0x0200,
	0x0100,
	0x0080,
	0x0040,
};

USHORT DiagSENW3[] = {
	0x8000, 0x0000,
	0x4000, 0x0000,
	0x2000, 0x0000,
	0x1000, 0x0000,
	0x0800, 0x0000,
	0x0400, 0x0000,
	0x0200, 0x0000,
	0x0100, 0x0000,
	0x0080, 0x0000,
	0x0040, 0x0000,
	0x0020, 0x0000,
	0x0010, 0x0000,
	0x0008, 0x0000,
	0x0004, 0x0000,
	0x0002, 0x0000,
	0x0001, 0x0000,
	0x0000, 0x8000,
	0x0000, 0x4000,
};

USHORT BentNSE0[] = {
	0x2000,
	0x4000,
	0x4000,
};

USHORT BentNSE1[] = {
	0x3000,
	0x3000,
	0x3000,
	0x1000,
	0x0800,
	0x0400,
};

USHORT BentNSE2[] = {
	0x0c00,
	0x0c00,
	0x0c00,
	0x0c00,
	0x0c00,
	0x0400,
	0x0200,
	0x0100,
	0x0080,
	0x0040,
};

USHORT BentNSE3[] = {
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x0040, 0x0000,
	0x0020, 0x0000,
	0x0010, 0x0000,
	0x0008, 0x0000,
	0x0004, 0x0000,
	0x0002, 0x0000,
	0x0001, 0x0000,
	0x0000, 0x8000,
	0x0000, 0x4000,
};

USHORT BentNSW0[] = {
	0x8000,
	0x4000,
	0x4000,
};

USHORT BentNSW1[] = {
	0x3000,
	0x3000,
	0x3000,
	0x2000,
	0x4000,
	0x8000,
};

USHORT BentNSW2[] = {
	0x0c00,
	0x0c00,
	0x0c00,
	0x0c00,
	0x0c00,
	0x0800,
	0x1000,
	0x2000,
	0x4000,
	0x8000,
};

USHORT BentNSW3[] = {
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x0080, 0x0000,
	0x0100, 0x0000,
	0x0200, 0x0000,
	0x0400, 0x0000,
	0x0800, 0x0000,
	0x1000, 0x0000,
	0x2000, 0x0000,
	0x4000, 0x0000,
	0x8000, 0x0000,

};

USHORT BentESW0[] = {
	0x8000,
	0x6000,
	0x0000,
};

USHORT BentESW1[] = {
	0x0000,
	0x0000,
	0x1c00,
	0x3c00,
	0x4000,
	0x8000,
};

USHORT BentESW2[] = {
	0x0000,
	0x0000,
	0x0000,
	0x0000,
	0x07c0,
	0x0fc0,
	0x1000,
	0x2000,
	0x4000,
	0x8000,
};

USHORT BentESW3[] = {
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x007f, 0xc000,
	0x00ff, 0xc000,
	0x0100, 0x0000,
	0x0200, 0x0000,
	0x0400, 0x0000,
	0x0800, 0x0000,
	0x1000, 0x0000,
	0x2000, 0x0000,
	0x4000, 0x0000,
	0x8000, 0x0000,
};

USHORT BentENW0[] = {
	0x0000,
	0x6000,
	0x8000,
};

USHORT BentENW1[] = {
	0x8000,
	0x4000,
	0x3c00,
	0x1c00,
	0x0000,
	0x0000,
};

USHORT BentENW2[] = {
	0x8000,
	0x4000,
	0x2000,
	0x1000,
	0x0fc0,
	0x07c0,
	0x0000,
	0x0000,
	0x0000,
	0x0000,
};

USHORT BentENW3[] = {
	0x8000, 0x0000,
	0x4000, 0x0000,
	0x2000, 0x0000,
	0x1000, 0x0000,
	0x0800, 0x0000,
	0x0400, 0x0000,
	0x0200, 0x0000,
	0x0100, 0x0000,
	0x00ff, 0xc000,
	0x007f, 0xc000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
};

USHORT BentSNW0[] = {
	0x4000,
	0x4000,
	0x8000,
};

USHORT BentSNW1[] = {
	0x8000,
	0x4000,
	0x2000,
	0x3000,
	0x3000,
	0x3000,
};

USHORT BentSNW2[] = {
	0x8000,
	0x4000,
	0x2000,
	0x1000,
	0x0800,
	0x0c00,
	0x0c00,
	0x0c00,
	0x0c00,
	0x0c00,
};

USHORT BentSNW3[] = {
	0x8000, 0x0000,
	0x4000, 0x0000,
	0x2000, 0x0000,
	0x1000, 0x0000,
	0x0800, 0x0000,
	0x0400, 0x0000,
	0x0200, 0x0000,
	0x0100, 0x0000,
	0x0080, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
};

USHORT BentSNE0[] = {
	0x4000,
	0x4000,
	0x2000,
};

USHORT BentSNE1[] = {
	0x0400,
	0x0800,
	0x1000,
	0x3000,
	0x3000,
	0x3000,
};

USHORT BentSNE2[] = {
	0x0040,
	0x0080,
	0x0100,
	0x0200,
	0x0400,
	0x0c00,
	0x0c00,
	0x0c00,
	0x0c00,
	0x0c00,
};

USHORT BentSNE3[] = {
	0x0000, 0x4000,
	0x0000, 0x8000,
	0x0001, 0x0000,
	0x0002, 0x0000,
	0x0004, 0x0000,
	0x0008, 0x0000,
	0x0010, 0x0000,
	0x0020, 0x0000,
	0x0040, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
	0x00c0, 0x0000,
};

USHORT BentWNE0[] = {
	0x0000,
	0xc000,
	0x2000,
};

USHORT BentWNE1[] = {
	0x0400,
	0x0800,
	0xf000,
	0xe000,
	0x0000,
	0x0000,
};

USHORT BentWNE2[] = {
	0x0040,
	0x0080,
	0x0100,
	0x0200,
	0xfc00,
	0xf800,
	0x0000,
	0x0000,
	0x0000,
	0x0000,
};

USHORT BentWNE3[] = {
	0x0000, 0x4000,
	0x0000, 0x8000,
	0x0001, 0x0000,
	0x0002, 0x0000,
	0x0004, 0x0000,
	0x0008, 0x0000,
	0x0010, 0x0000,
	0x0020, 0x0000,
	0xffc0, 0x0000,
	0xff80, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
};

USHORT BentWSE0[] = {
	0x2000,
	0xc000,
	0x0000,
};

USHORT BentWSE1[] = {
	0x0000,
	0x0000,
	0xe000,
	0xf000,
	0x0800,
	0x0400,
};

USHORT BentWSE2[] = {
	0x0000,
	0x0000,
	0x0000,
	0x0000,
	0xf800,
	0xfc00,
	0x0200,
	0x0100,
	0x0080,
	0x0040,
};

USHORT BentWSE3[] = {
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0xff80, 0x0000,
	0xffc0, 0x0000,
	0x0020, 0x0000,
	0x0010, 0x0000,
	0x0008, 0x0000,
	0x0004, 0x0000,
	0x0002, 0x0000,
	0x0001, 0x0000,
	0x0000, 0x8000,
	0x0000, 0x4000,
};

USHORT AngleNESE0[] = {
	0x2000,
	0x4000,
	0x2000,
};

USHORT AngleNESE1[] = {
	0x0400,
	0x0800,
	0x1000,
	0x1000,
	0x0800,
	0x0400,
};

USHORT AngleNESE2[] = {
	0x0040,
	0x0080,
	0x0100,
	0x0200,
	0x0400,
	0x0400,
	0x0200,
	0x0100,
	0x0080,
	0x0040,
};

USHORT AngleNESE3[] = {
	0x0000, 0x4000,
	0x0000, 0x8000,
	0x0001, 0x0000,
	0x0002, 0x0000,
	0x0004, 0x0000,
	0x0008, 0x0000,
	0x0010, 0x0000,
	0x0020, 0x0000,
	0x0040, 0x0000,
	0x0040, 0x0000,
	0x0020, 0x0000,
	0x0010, 0x0000,
	0x0008, 0x0000,
	0x0004, 0x0000,
	0x0002, 0x0000,
	0x0001, 0x0000,
	0x0000, 0x8000,
	0x0000, 0x4000,
};

USHORT AngleSESW0[] = {
	0xa000,
	0x4000,
	0x0000,
};

USHORT AngleSESW1[] = {
	0x0000,
	0x0000,
	0x0000,
	0x0300,
	0x4800,
	0x8400,
};

USHORT AngleSESW2[] = {
	0x0000,
	0x0000,
	0x0000,
	0x0000,
	0x0000,
	0x0c00,
	0x1200,
	0x2100,
	0x4080,
	0x8040,
};

USHORT AngleSESW3[] = {
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x00c0, 0x0000,
	0x0120, 0x0000,
	0x0210, 0x0000,
	0x0408, 0x0000,
	0x0804, 0x0000,
	0x1002, 0x0000,
	0x2001, 0x0000,
	0x4000, 0x8000,
	0x8000, 0x4000,

};

USHORT AngleSWNW0[] = {
	0x8000,
	0x4000,
	0x8000,
};

USHORT AngleSWNW1[] = {
	0x8000,
	0x4000,
	0x2000,
	0x2000,
	0x4000,
	0x8000,
};

USHORT AngleSWNW2[] = {
	0x8000,
	0x4000,
	0x2000,
	0x1000,
	0x0800,
	0x0800,
	0x1000,
	0x2000,
	0x4000,
	0x8000,
};

USHORT AngleSWNW3[] = {
	0x8000, 0x0000,
	0x4000, 0x0000,
	0x2000, 0x0000,
	0x1000, 0x0000,
	0x0800, 0x0000,
	0x0400, 0x0000,
	0x0200, 0x0000,
	0x0100, 0x0000,
	0x0080, 0x0000,
	0x0080, 0x0000,
	0x0100, 0x0000,
	0x0200, 0x0000,
	0x0400, 0x0000,
	0x0800, 0x0000,
	0x1000, 0x0000,
	0x2000, 0x0000,
	0x4000, 0x0000,
	0x8000, 0x0000,
};

USHORT AngleNWNE0[] = {
	0x0000,
	0x4000,
	0xa000,
};

USHORT AngleNWNE1[] = {
	0x8400,
	0x4800,
	0x3000,
	0x0000,
	0x0000,
	0x0000,
};

USHORT AngleNWNE2[] = {
	0x8040,
	0x4080,
	0x2100,
	0x1200,
	0x0c00,
	0x0000,
	0x0000,
	0x0000,
	0x0000,
	0x0000,
};

USHORT AngleNWNE3[] = {
	0x8000, 0x4000,
	0x4000, 0x8000,
	0x2001, 0x0000,
	0x1002, 0x0000,
	0x0804, 0x0000,
	0x0408, 0x0000,
	0x0210, 0x0000,
	0x0120, 0x0000,
	0x00c0, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
};

USHORT SharpNNE0[] = {
	0x0000,
	0x4000,
	0x6000,
};

USHORT SharpNNE1[] = {
	0x3400,
	0x3800,
	0x3000,
	0x0000,
	0x0000,
	0x0000,
};

USHORT SharpNNE2[] = {
	0x0c40,
	0x0c80,
	0x0d00,
	0x0e00,
	0x0c00,
	0x0000,
	0x0000,
	0x0000,
	0x0000,
	0x0000,
};

USHORT SharpNNE3[] = {
	0x00c0, 0x4000,
	0x00c0, 0x8000,
	0x00c1, 0x0000,
	0x00c2, 0x0000,
	0x00c4, 0x0000,
	0x00c8, 0x0000,
	0x00d0, 0x0000,
	0x00e0, 0x0000,
	0x00c0, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
};

USHORT SharpENE0[] = {
	0x0000,
	0x6000,
	0x2000,
};

USHORT SharpENE1[] = {
	0x0400,
	0x0800,
	0x1f00,
	0x1f00,
	0x0000,
	0x0000,
};

USHORT SharpENE2[] = {
	0x0040,
	0x0080,
	0x0100,
	0x0200,
	0x07c0,
	0x07c0,
	0x0000,
	0x0000,
	0x0000,
	0x0000,
};

USHORT SharpENE3[] = {
	0x0000, 0x4000,
	0x0000, 0x8000,
	0x0001, 0x0000,
	0x0002, 0x0000,
	0x0004, 0x0000,
	0x0008, 0x0000,
	0x0010, 0x0000,
	0x0020, 0x0000,
	0x007f, 0xc000,
	0x007f, 0xc000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
};

USHORT SharpESE0[] = {
	0x2000,
	0x6000,
	0x0000,
};

USHORT SharpESE1[] = {
	0x0000,
	0x0000,
	0x1c00,
	0x1c00,
	0x0800,
	0x0400,
};

USHORT SharpESE2[] = {
	0x0000,
	0x0000,
	0x0000,
	0x0000,
	0x07c0,
	0x07c0,
	0x0200,
	0x0100,
	0x0080,
	0x0040,
};

USHORT SharpESE3[] = {
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x007f, 0xc000,
	0x007f, 0xc000,
	0x0020, 0x0000,
	0x0010, 0x0000,
	0x0008, 0x0000,
	0x0004, 0x0000,
	0x0002, 0x0000,
	0x0001, 0x0000,
	0x0000, 0x8000,
	0x0000, 0x4000,
};

USHORT SharpSSE0[] = {
	0x6000,
	0x4000,
	0x0000,
};

USHORT SharpSSE1[] = {
	0x0000,
	0x0000,
	0x0000,
	0x3000,
	0x3800,
	0x3400,
};

USHORT SharpSSE2[] = {
	0x0000,
	0x0000,
	0x0000,
	0x0000,
	0x0000,
	0x0c00,
	0x0e00,
	0x0d00,
	0x0c80,
	0x0c40,
};

USHORT SharpSSE3[] = {
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x00c0, 0x0000,
	0x00e0, 0x0000,
	0x00d0, 0x0000,
	0x00c8, 0x0000,
	0x00c4, 0x0000,
	0x00c2, 0x0000,
	0x00c1, 0x0000,
	0x00c0, 0x8000,
	0x00c0, 0x4000,
};

USHORT SharpSSW0[] = {
	0xc000,
	0x4000,
	0x0000,
};

USHORT SharpSSW1[] = {
	0x0000,
	0x0000,
	0x0000,
	0x3000,
	0x7000,
	0xb000,
};

USHORT SharpSSW2[] = {
	0x0000,
	0x0000,
	0x0000,
	0x0000,
	0x0000,
	0x0c00,
	0x1c00,
	0x2c00,
	0x4c00,
	0x8c00,
};

USHORT SharpSSW3[] = {
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x00c0, 0x0000,
	0x01c0, 0x0000,
	0x02c0, 0x0000,
	0x04c0, 0x0000,
	0x08c0, 0x0000,
	0x10c0, 0x0000,
	0x20c0, 0x0000,
	0x40c0, 0x0000,
	0x80c0, 0x0000,
};

USHORT SharpWSW0[] = {
	0x8000,
	0xc000,
	0x0000,
};

USHORT SharpWSW1[] = {
	0x0000,
	0x0000,
	0xe000,
	0xe000,
	0x4000,
	0x8000,
};

USHORT SharpWSW2[] = {
	0x0000,
	0x0000,
	0x0000,
	0x0000,
	0xf800,
	0xf800,
	0x1000,
	0x2000,
	0x4000,
	0x8000,
};

USHORT SharpWSW3[] = {
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0xff80, 0x0000,
	0xff80, 0x0000,
	0x0100, 0x0000,
	0x0200, 0x0000,
	0x0400, 0x0000,
	0x0800, 0x0000,
	0x1000, 0x0000,
	0x2000, 0x0000,
	0x4000, 0x0000,
	0x8000, 0x0000,
};

USHORT SharpWNW0[] = {
	0x0000,
	0xc000,
	0x8000,
};

USHORT SharpWNW1[] = {
	0x8000,
	0x4000,
	0xe000,
	0xe000,
	0x0000,
	0x0000,
};

USHORT SharpWNW2[] = {
	0x8000,
	0x4000,
	0x2000,
	0x1000,
	0xf800,
	0xf800,
	0x0000,
	0x0000,
	0x0000,
	0x0000,
};

USHORT SharpWNW3[] = {
	0x8000, 0x0000,
	0x4000, 0x0000,
	0x2000, 0x0000,
	0x1000, 0x0000,
	0x0800, 0x0000,
	0x0400, 0x0000,
	0x0200, 0x0000,
	0x0100, 0x0000,
	0xff80, 0x0000,
	0xff80, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
};

USHORT SharpNNW0[] = {
	0x0000,
	0x4000,
	0xc000,
};

USHORT SharpNNW1[] = {
	0xb000,
	0x7000,
	0x3000,
	0x0000,
	0x0000,
	0x0000,
};

USHORT SharpNNW2[] = {
	0x8c00,
	0x4c00,
	0x2c00,
	0x1c00,
	0x0c00,
	0x0000,
	0x0000,
	0x0000,
	0x0000,
	0x0000,
};

USHORT SharpNNW3[] = {
	0x80c0, 0x0000,
	0x40c0, 0x0000,
	0x20c0, 0x0000,
	0x10c0, 0x0000,
	0x08c0, 0x0000,
	0x04c0, 0x0000,
	0x02c0, 0x0000,
	0x01c0, 0x0000,
	0x00c0, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
	0x0000, 0x0000,
};

struct templates y3[] = {
	{
		LINE_HORIZONTAL, {
			{ 0, 0, ZOOM0, ZOOM0, 1, LineH0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, LineH1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, LineH2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, LineH3 , 7, 0, NULL },
		}
	}, {
		LINE_VERTICAL, {
			{ 0, 0, ZOOM0, ZOOM0, 1, LineV0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, LineV1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, LineV2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, LineV3 , 7, 0, NULL },
		}
	}, {
		CORNER_NORTHEAST, {
			{ 0, 0, ZOOM0, ZOOM0, 1, CornerNE0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, CornerNE1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, CornerNE2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, CornerNE3 , 7, 0, NULL },
		}
	}, {
		CORNER_SOUTHEAST, {
			{ 0, 0, ZOOM0, ZOOM0, 1, CornerSE0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, CornerSE1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, CornerSE2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, CornerSE3 , 7, 0, NULL },
		}
	}, {
		CORNER_SOUTHWEST, {
			{ 0, 0, ZOOM0, ZOOM0, 1, CornerSW0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, CornerSW1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, CornerSW2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, CornerSW3 , 7, 0, NULL },
		}
	}, {
		CORNER_NORTHWEST, {
			{ 0, 0, ZOOM0, ZOOM0, 1, CornerNW0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, CornerNW1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, CornerNW2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, CornerNW3 , 7, 0, NULL },
		}
	}, {
		DIAG_NEtoSW, {
			{ 0, 0, ZOOM0, ZOOM0, 1, DiagNESW0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, DiagNESW1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, DiagNESW2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, DiagNESW3 , 7, 0, NULL },
		}
	}, {
		DIAG_SEtoNW, {
			{ 0, 0, ZOOM0, ZOOM0, 1, DiagSENW0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, DiagSENW1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, DiagSENW2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, DiagSENW3 , 7, 0, NULL },
		}
	}, {
		BENT_NtoSE, {
			{ 0, 0, ZOOM0, ZOOM0, 1, BentNSE0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, BentNSE1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, BentNSE2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, BentNSE3 , 7, 0, NULL },
		}
	}, {
		BENT_NtoSW, {
			{ 0, 0, ZOOM0, ZOOM0, 1, BentNSW0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, BentNSW1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, BentNSW2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, BentNSW3 , 7, 0, NULL },
		}
	}, {
		BENT_EtoSW, {
			{ 0, 0, ZOOM0, ZOOM0, 1, BentESW0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, BentESW1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, BentESW2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, BentESW3 , 7, 0, NULL },
		}
	}, {
		BENT_EtoNW, {
			{ 0, 0, ZOOM0, ZOOM0, 1, BentENW0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, BentENW1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, BentENW2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, BentENW3 , 7, 0, NULL },
		}
	}, {
		BENT_StoNW, {
			{ 0, 0, ZOOM0, ZOOM0, 1, BentSNW0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, BentSNW1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, BentSNW2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, BentSNW3 , 7, 0, NULL },
		}
	}, {
		BENT_StoNE, {
			{ 0, 0, ZOOM0, ZOOM0, 1, BentSNE0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, BentSNE1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, BentSNE2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, BentSNE3 , 7, 0, NULL },
		}
	}, {
		BENT_WtoNE, {
			{ 0, 0, ZOOM0, ZOOM0, 1, BentWNE0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, BentWNE1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, BentWNE2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, BentWNE3 , 7, 0, NULL },
		}
	}, {
		BENT_WtoSE, {
			{ 0, 0, ZOOM0, ZOOM0, 1, BentWSE0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, BentWSE1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, BentWSE2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, BentWSE3 , 7, 0, NULL },
		}
	}, {
		ANGLE_NEtoSE, {
			{ 0, 0, ZOOM0, ZOOM0, 1, AngleNESE0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, AngleNESE1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, AngleNESE2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, AngleNESE3 , 7, 0, NULL },
		}
	}, {
		ANGLE_SEtoSW, {
			{ 0, 0, ZOOM0, ZOOM0, 1, AngleSESW0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, AngleSESW1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, AngleSESW2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, AngleSESW3 , 7, 0, NULL },
		}
	}, {
		ANGLE_SWtoNW, {
			{ 0, 0, ZOOM0, ZOOM0, 1, AngleSWNW0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, AngleSWNW1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, AngleSWNW2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, AngleSWNW3 , 7, 0, NULL },
		}
	}, {
		ANGLE_NWtoNE, {
			{ 0, 0, ZOOM0, ZOOM0, 1, AngleNWNE0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, AngleNWNE1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, AngleNWNE2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, AngleNWNE3 , 7, 0, NULL },
		}
	}, {
		SHARP_NtoNE, {
			{ 0, 0, ZOOM0, ZOOM0, 1, SharpNNE0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, SharpNNE1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, SharpNNE2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, SharpNNE3 , 7, 0, NULL },
		}
	}, {
		SHARP_EtoNE, {
			{ 0, 0, ZOOM0, ZOOM0, 1, SharpENE0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, SharpENE1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, SharpENE2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, SharpENE3 , 7, 0, NULL },
		}
	}, {
		SHARP_EtoSE, {
			{ 0, 0, ZOOM0, ZOOM0, 1, SharpESE0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, SharpESE1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, SharpESE2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, SharpESE3 , 7, 0, NULL },
		}
	}, {
		SHARP_StoSE, {
			{ 0, 0, ZOOM0, ZOOM0, 1, SharpSSE0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, SharpSSE1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, SharpSSE2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, SharpSSE3 , 7, 0, NULL },
		}
	}, {
		SHARP_StoSW, {
			{ 0, 0, ZOOM0, ZOOM0, 1, SharpSSW0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, SharpSSW1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, SharpSSW2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, SharpSSW3 , 7, 0, NULL },
		}
	}, {
		SHARP_WtoSW, {
			{ 0, 0, ZOOM0, ZOOM0, 1, SharpWSW0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, SharpWSW1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, SharpWSW2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, SharpWSW3 , 7, 0, NULL },
		}
	}, {
		SHARP_WtoNW, {
			{ 0, 0, ZOOM0, ZOOM0, 1, SharpWNW0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, SharpWNW1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, SharpWNW2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, SharpWNW3 , 7, 0, NULL },
		}
	}, {
		SHARP_NtoNW, {
			{ 0, 0, ZOOM0, ZOOM0, 1, SharpNNW0 , 7, 0, NULL },
			{ 0, 0, ZOOM1, ZOOM1, 1, SharpNNW1 , 7, 0, NULL },
			{ 0, 0, ZOOM2, ZOOM2, 1, SharpNNW2 , 7, 0, NULL },
			{ 0, 0, ZOOM3, ZOOM3, 1, SharpNNW3 , 7, 0, NULL },
		}
	}
};
