Fixed touch & Improved display
This commit is contained in:
		@@ -21,8 +21,8 @@ void Display::setup(){
 | 
			
		||||
    Paint_SetMirroring(MIRROR_HORIZONTAL);
 | 
			
		||||
    Paint_Clear(WHITE);
 | 
			
		||||
 | 
			
		||||
    Paint_DrawIcon(89,54, ICON_LOGO, &FontIcon, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawString_EN(29, 5, "Helcel", &Font45, WHITE, BLACK);
 | 
			
		||||
    Paint_DrawIcon(89,36, ICON_LOGO, &FontIcon, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawString_EN(29, 0, "Helcel", &Font45, WHITE, BLACK);
 | 
			
		||||
    Paint_SelectImage(BlackImage);
 | 
			
		||||
    EPD_2IN13_V2_Display(BlackImage);
 | 
			
		||||
    delay(100);
 | 
			
		||||
@@ -102,24 +102,56 @@ void WeatherDisplay::drawDisplay() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TempDisplay::drawDisplay() { 
 | 
			
		||||
    Paint_DrawIcon(0,Font24.Height, ICON_TEMPERATURE,&FontIcon, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawString_EN(2,0,"Temp", &Font24, WHITE, BLACK);
 | 
			
		||||
    Paint_DrawFltUnit(76,0,sensor->heatidx, "C", &Font24, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawFltUnit(76,36,sensor->temp, "C", &Font24, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawFltUnit(160,36,sensor->hum, "%", &Font24, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawFltUnit(76,64,sensor->pres, "hPa", &Font24, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawIcon(0,8, ICON_TEMPERATURE,&FontIcon, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawFltUnit(76,0,sensor->temp, "C", &Font24, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawFltUnit(186,6,sensor->heatidx, "C", &Font12, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawFltUnit(76,24,sensor->pres, "hPa", &Font24, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawFltUnit(76,48,sensor->hum, "%", &Font24, BLACK, WHITE);
 | 
			
		||||
 | 
			
		||||
    Paint_DrawString_EN(2,EPD_2IN13_V2_WIDTH - 4 - Font16.Height,"nominal", &Font16, WHITE, BLACK);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void AirDisplay::drawDisplay() { 
 | 
			
		||||
    Paint_DrawIcon(0,Font24.Height, ICON_POLUTION,&FontIcon, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawString_EN(2,0,"Air", &Font24, WHITE, BLACK);
 | 
			
		||||
    Paint_DrawIntUnit(150,10, 69,"", &Font24, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawIcon(0,8, ICON_POLUTION,&FontIcon, BLACK, WHITE);
 | 
			
		||||
 | 
			
		||||
    Paint_DrawIntUnit(76,0,sensor->voci, "voci", &Font24, BLACK, WHITE);
 | 
			
		||||
 | 
			
		||||
    Paint_DrawIntUnit(76,24+12*0,sensor->pmd.pm10_standard, "ug/m3", &Font12, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawIntUnit(76,24+12*1,sensor->pmd.pm25_standard, "ug/m3", &Font12, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawIntUnit(76,24+12*2,sensor->pmd.pm100_standard, "ug/m3", &Font12, BLACK, WHITE);
 | 
			
		||||
 | 
			
		||||
    Paint_DrawIntUnit(186,24+12*0,sensor->pmd.pm10_env, "ug/m3", &Font12, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawIntUnit(186,24+12*1,sensor->pmd.pm25_env, "ug/m3", &Font12, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawIntUnit(186,24+12*2,sensor->pmd.pm100_env, "ug/m3", &Font12, BLACK, WHITE);
 | 
			
		||||
 | 
			
		||||
//       particles_03um,      ///< 0.3um Particle Count
 | 
			
		||||
//       particles_05um,      ///< 0.5um Particle Count
 | 
			
		||||
//       particles_10um,      ///< 1.0um Particle Count
 | 
			
		||||
//       particles_25um,      ///< 2.5um Particle Count
 | 
			
		||||
//       particles_50um,      ///< 5.0um Particle Count
 | 
			
		||||
//       particles_100um;     ///< 10.0um Particle Count
 | 
			
		||||
 | 
			
		||||
  Paint_DrawString_EN(2,EPD_2IN13_V2_WIDTH - 4 - Font16.Height,"nominal", &Font16, WHITE, BLACK);
 | 
			
		||||
    
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void LightDisplay::drawDisplay() { 
 | 
			
		||||
    Paint_DrawIcon(0,8, ICON_BULB,&FontIcon, BLACK, WHITE); //TODO BULB
 | 
			
		||||
 | 
			
		||||
    Paint_DrawFltUnit(76,0,sensor->light_lux, "lux", &Font24, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawIntUnit(76,24*1,sensor->uvi, "uvi", &Font24, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawFltUnit(76,24*2,sensor->light, "l", &Font24, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawIntUnit(76,24*3,sensor->light_vis, "vl", &Font24, BLACK, WHITE);
 | 
			
		||||
 | 
			
		||||
    Paint_DrawString_EN(2,EPD_2IN13_V2_WIDTH - 4 - Font16.Height,"nominal", &Font16, WHITE, BLACK);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void MainDisplay::drawDisplay() { 
 | 
			
		||||
    Paint_DrawIcon(0,0, ICON_LOGO,&FontIcon, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawString_EN(60,0,"MAIN", &Font24, WHITE, BLACK);
 | 
			
		||||
    Paint_DrawIntUnit(0,30, 69,"", &Font24, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawIcon(89,36, ICON_LOGO, &FontIcon, BLACK, WHITE);
 | 
			
		||||
    Paint_DrawString_EN(29, 0, "Helcel", &Font45, WHITE, BLACK);
 | 
			
		||||
    Paint_DrawString_EN(2,EPD_2IN13_V2_WIDTH - 4 - Font16.Height,"WESP-v0.1", &Font16, WHITE, BLACK);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void CustomDisplay::drawDisplay() { 
 | 
			
		||||
 
 | 
			
		||||
@@ -61,6 +61,14 @@ class AirDisplay: public DisplayWrapper {
 | 
			
		||||
        Sensor* sensor;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class LightDisplay: public DisplayWrapper {
 | 
			
		||||
    public:
 | 
			
		||||
        LightDisplay(Sensor* s) : sensor(s){}
 | 
			
		||||
        void drawDisplay();
 | 
			
		||||
    private:
 | 
			
		||||
        Sensor* sensor;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class MainDisplay: public DisplayWrapper {
 | 
			
		||||
    public:
 | 
			
		||||
        void drawDisplay();
 | 
			
		||||
 
 | 
			
		||||
@@ -77,6 +77,8 @@ typedef enum {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	ICON_SUNSET, ICON_SUNRISE,
 | 
			
		||||
 | 
			
		||||
  ICON_BULB
 | 
			
		||||
} ICON_tpe;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1115,6 +1115,80 @@ const uint8_t FontIcon_Table [] = {
 | 
			
		||||
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 | 
			
		||||
 | 
			
		||||
//BULB
 | 
			
		||||
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x0,0x7e,0x0,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x7,0xff,0xe0,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x1f,0x81,0xf8,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x3c,0x0,0x3c,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0xf0,0x0,0xe,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x1,0xc0,0x0,0x3,0x80,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x1,0x80,0x0,0x1,0x80,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x3,0x0,0x0,0x0,0xc0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x7,0x0,0x0,0x0,0xe0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x6,0x0,0x0,0x0,0x60,0x0,0x0,
 | 
			
		||||
0x0,0x0,0xc,0x0,0x0,0x0,0x30,0x0,0x0,
 | 
			
		||||
0x0,0x0,0xc,0x0,0x0,0x0,0x30,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x18,0x0,0x0,0x0,0x18,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x18,0x0,0x0,0x0,0x18,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x18,0x0,0x0,0x0,0x18,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x18,0x0,0x0,0x0,0x18,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x18,0x0,0x0,0x0,0x18,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x30,0x0,0x0,0x0,0xc,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x30,0x0,0x0,0x0,0xc,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x18,0x0,0x0,0x0,0x18,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x18,0x0,0x0,0x0,0x18,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x18,0x0,0x0,0x0,0x18,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x18,0x0,0x0,0x0,0x38,0x0,0x0,
 | 
			
		||||
0x0,0x0,0xc,0x0,0x0,0x0,0x30,0x0,0x0,
 | 
			
		||||
0x0,0x0,0xc,0x0,0x0,0x0,0x70,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x6,0x0,0x0,0x0,0x60,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x7,0x0,0x0,0x0,0x60,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x3,0x0,0x0,0x0,0xc0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x3,0x83,0xff,0xc0,0xc0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x1,0x87,0xff,0xe1,0x80,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x1,0x80,0x18,0x1,0x80,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0xc0,0x18,0x1,0x80,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0xc0,0x18,0x3,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0xc0,0x18,0x3,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0xe0,0x18,0x3,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x60,0x18,0x7,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x60,0x18,0x6,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x60,0x18,0x6,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x30,0x18,0xe,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x30,0x18,0xc,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x30,0x18,0xc,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x3f,0xff,0xfc,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x1f,0xff,0xf8,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0xf,0xe0,0x0,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x1f,0xc1,0xf8,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x8,0x1f,0xf0,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x3,0xff,0x0,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x1f,0xe0,0x78,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x1c,0x7,0xf8,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x0,0x7,0x80,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x1f,0xff,0xf8,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x1f,0xff,0xf8,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x18,0x0,0x18,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0xc,0x0,0x30,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x6,0x0,0x60,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x3,0xc3,0xc0,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x1,0xff,0x80,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 | 
			
		||||
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
sFONT FontIcon = {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										548
									
								
								src/epd/icon.h
									
									
									
									
									
								
							
							
						
						
									
										548
									
								
								src/epd/icon.h
									
									
									
									
									
								
							@@ -297,312 +297,312 @@ static unsigned char header_data[] = {
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,
 | 
			
		||||
	0,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,
 | 
			
		||||
	0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,1,0,0,0,0,1,1,1,1,1,
 | 
			
		||||
	0,0,1,1,1,1,0,0,1,1,1,1,1,1,0,0,
 | 
			
		||||
	0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,1,1,0,0,0,0,1,1,1,0,
 | 
			
		||||
	0,1,1,1,1,1,1,0,0,1,1,1,0,0,0,0,
 | 
			
		||||
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,1,1,1,1,0,0,0,1,1,0,
 | 
			
		||||
	0,1,1,1,1,1,1,0,0,1,1,0,0,0,1,1,
 | 
			
		||||
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,
 | 
			
		||||
	0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,
 | 
			
		||||
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,1,1,1,1,1,1,0,0,0,0,
 | 
			
		||||
	0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,
 | 
			
		||||
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,0,0,1,1,1,0,0,0,0,0,0,
 | 
			
		||||
	1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,
 | 
			
		||||
	1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,0,0,1,1,0,0,0,0,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,
 | 
			
		||||
	1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,
 | 
			
		||||
	0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,
 | 
			
		||||
	0,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
 | 
			
		||||
	0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,
 | 
			
		||||
	0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,
 | 
			
		||||
	1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,0,0,0,0,0,0,1,1,1,1,1,0,0,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,
 | 
			
		||||
	1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,0,0,0,1,1,1,1,1,1,0,0,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,0,0,0,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,
 | 
			
		||||
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,
 | 
			
		||||
	1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,0,1,1,0,0,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,
 | 
			
		||||
	1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,0,0,1,0,0,0,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,
 | 
			
		||||
	0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
 | 
			
		||||
	0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
 | 
			
		||||
	0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,
 | 
			
		||||
	0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,
 | 
			
		||||
	0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,
 | 
			
		||||
	0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,0,0,1,1,0,0,0,0,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,
 | 
			
		||||
	0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,0,
 | 
			
		||||
	0,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,0,
 | 
			
		||||
	0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,
 | 
			
		||||
	0,0,0,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,0,
 | 
			
		||||
	0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,
 | 
			
		||||
	0,0,0,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,
 | 
			
		||||
	0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,0,
 | 
			
		||||
	0,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,
 | 
			
		||||
	0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,0,0,1,1,0,0,0,0,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,
 | 
			
		||||
	0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,
 | 
			
		||||
	0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
 | 
			
		||||
	0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
 | 
			
		||||
	0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,
 | 
			
		||||
	0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,
 | 
			
		||||
	1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,0,0,1,0,0,0,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,
 | 
			
		||||
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,1,1,1,0,0,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,
 | 
			
		||||
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,0,0,0,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,
 | 
			
		||||
	1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,0,0,0,1,1,1,1,1,1,0,0,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,
 | 
			
		||||
	1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,0,0,0,0,0,0,1,1,1,1,1,0,0,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,
 | 
			
		||||
	0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,
 | 
			
		||||
	0,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
 | 
			
		||||
	0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,
 | 
			
		||||
	0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,0,0,1,1,0,0,0,0,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,
 | 
			
		||||
	1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,0,0,1,1,1,1,0,0,0,0,0,
 | 
			
		||||
	0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,
 | 
			
		||||
	0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
 | 
			
		||||
	0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,1,1,1,1,1,1,0,0,0,0,
 | 
			
		||||
	0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,
 | 
			
		||||
	0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,
 | 
			
		||||
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,1,1,1,1,0,0,0,1,1,0,
 | 
			
		||||
	0,1,1,1,1,1,1,0,0,1,1,0,0,0,1,1,
 | 
			
		||||
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,1,1,0,0,0,0,1,1,1,0,
 | 
			
		||||
	0,1,1,1,1,1,1,0,0,1,1,1,0,0,0,0,
 | 
			
		||||
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,1,0,0,0,1,1,1,1,1,1,
 | 
			
		||||
	0,0,1,1,1,1,0,0,1,1,1,1,1,1,0,0,
 | 
			
		||||
	0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,
 | 
			
		||||
	0,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,
 | 
			
		||||
	0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0,
 | 
			
		||||
	0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,
 | 
			
		||||
	0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,0,
 | 
			
		||||
	0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,
 | 
			
		||||
	0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,
 | 
			
		||||
	0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,
 | 
			
		||||
	0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,0,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,0,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,0,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,0,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,0,0,0,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,
 | 
			
		||||
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,
 | 
			
		||||
	0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,
 | 
			
		||||
	0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,
 | 
			
		||||
	0,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,
 | 
			
		||||
	1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,
 | 
			
		||||
	0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,
 | 
			
		||||
	0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,
 | 
			
		||||
	1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,
 | 
			
		||||
	0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,
 | 
			
		||||
	0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,
 | 
			
		||||
	0,0,1,1,1,1,0,0,0,0,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
 | 
			
		||||
	0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,
 | 
			
		||||
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 | 
			
		||||
 
 | 
			
		||||
@@ -3,8 +3,6 @@
 | 
			
		||||
#define GT1151_RESET_PIN 02
 | 
			
		||||
#define GT1151_INT_PIN 15
 | 
			
		||||
 | 
			
		||||
GT1151_Dev Dev_Now, Dev_Old;
 | 
			
		||||
uint8_t GT_Gesture_Mode = 0;
 | 
			
		||||
 | 
			
		||||
volatile uint8_t gtIRQ = 0;
 | 
			
		||||
void IRAM_ATTR _gt_irq_handler() {
 | 
			
		||||
@@ -25,12 +23,19 @@ void GT1151::armIRQ() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void GT1151::onIRQ() {
 | 
			
		||||
  int16_t contacts = readInput((GTPoint *) dev.points);
 | 
			
		||||
  GTPoint points[CT_MAX_TOUCH];
 | 
			
		||||
  int16_t contacts = readInput((GTPoint *) &points);
 | 
			
		||||
  dev.holding = contacts > 0 && dev.pressing;
 | 
			
		||||
  dev.pressing = contacts > 0;
 | 
			
		||||
  if(dev.holding){
 | 
			
		||||
      dev.dx = points[0].x - dev.points[0].x;
 | 
			
		||||
      dev.dy = points[0].y - dev.points[0].y;
 | 
			
		||||
  }else if(dev.pressing){
 | 
			
		||||
      memcpy(dev.points,points,sizeof(GTPoint)*CT_MAX_TOUCH);
 | 
			
		||||
  }
 | 
			
		||||
  if (contacts < 0) return;
 | 
			
		||||
  if (contacts > 0) touchHandler(contacts, (GTPoint *)dev.points);
 | 
			
		||||
  WriteRegister(GT1151_READ_COORD_ADDR, 0x00);
 | 
			
		||||
  WriteRegister(GT1151_COORD_ADDR, 0x00);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -38,21 +43,17 @@ int16_t GT1151::readInput(GTPoint* points) {
 | 
			
		||||
	uint8_t* data = static_cast<uint8_t*>(static_cast<void*>(points));
 | 
			
		||||
	int touch_num;
 | 
			
		||||
	uint8_t regState;
 | 
			
		||||
	int error = !ReadRegister(GT1151_READ_COORD_ADDR, ®State, 1);
 | 
			
		||||
	if (!(regState & 0x80)) return -1;
 | 
			
		||||
	int error = !ReadRegister(GT1151_COORD_ADDR, ®State, 1);
 | 
			
		||||
	if ((regState & 0x80)==0) return -1;
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	touch_num = regState & 0x0f;
 | 
			
		||||
  if(touch_num > 5) return -1;
 | 
			
		||||
	if (touch_num <= 0) return touch_num;
 | 
			
		||||
  
 | 
			
		||||
	error = !ReadRegister(GT1151_READ_POINTS, data, sizeof(GTPoint) * touch_num);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	error = !ReadRegister(GT1151_COORD_ADDR, data, sizeof(GTPoint) * touch_num);
 | 
			
		||||
	if (error) return -1;
 | 
			
		||||
  for(int i = 0; i< touch_num; i++) {
 | 
			
		||||
    points[i].x =  lowByte(points[i].x)<<8 | highByte(points[i].x);
 | 
			
		||||
    points[i].y =  lowByte(points[i].y)<<8 | highByte(points[i].y);
 | 
			
		||||
    points[i].a =  lowByte(points[i].a)<<8 | highByte(points[i].a);
 | 
			
		||||
  }
 | 
			
		||||
	return touch_num;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -60,6 +61,11 @@ int16_t GT1151::readInput(GTPoint* points) {
 | 
			
		||||
void GT1151::Reset(void){
 | 
			
		||||
	pinMode(GT1151_INT_PIN, OUTPUT);
 | 
			
		||||
	pinMode(GT1151_INT_PIN, INPUT);
 | 
			
		||||
  digitalWrite(GT1151_RESET_PIN, HIGH);
 | 
			
		||||
	delay(100);
 | 
			
		||||
  digitalWrite(GT1151_RESET_PIN, LOW);
 | 
			
		||||
	delay(100);
 | 
			
		||||
  digitalWrite(GT1151_RESET_PIN, HIGH);
 | 
			
		||||
	delay(100);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -10,29 +10,28 @@
 | 
			
		||||
 | 
			
		||||
#define CT_MAX_TOUCH 5
 | 
			
		||||
 | 
			
		||||
#define GT1151_REG_CMD     0x8040
 | 
			
		||||
 | 
			
		||||
#define GT1151_REG_CMD          0x8040
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define GT1151_REG_DATA         0x8140
 | 
			
		||||
#define GT1151_REG_ID           0x8140
 | 
			
		||||
 | 
			
		||||
#define GT1151_READ_COORD_ADDR  0x814E
 | 
			
		||||
#define GT1151_READ_POINTS      0x814F
 | 
			
		||||
#define GT1151_REG_DATA    0x8140
 | 
			
		||||
#define GT1151_REG_ID      0x8140
 | 
			
		||||
 | 
			
		||||
#define GT1151_COORD_ADDR  0x814E
 | 
			
		||||
#define GT1151_POINTS_ADDR 0x814F
 | 
			
		||||
 | 
			
		||||
//121x250
 | 
			
		||||
struct GTPoint {
 | 
			
		||||
  uint8_t id;
 | 
			
		||||
  uint16_t x;
 | 
			
		||||
  uint16_t y;
 | 
			
		||||
  uint16_t a;
 | 
			
		||||
    uint8_t unused;
 | 
			
		||||
    uint8_t id;
 | 
			
		||||
    uint16_t x;
 | 
			
		||||
    uint16_t y;
 | 
			
		||||
    uint16_t a;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
typedef struct{
 | 
			
		||||
    bool holding;
 | 
			
		||||
    bool pressing;
 | 
			
		||||
    GTPoint points[CT_MAX_TOUCH];
 | 
			
		||||
 | 
			
		||||
    int16_t dx,dy;
 | 
			
		||||
}GT1151_Dev;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user