「デカ文字」Arduino UNO V3で時計を作って遊ぶ。(SSD1306)(DS1307)


時間合わせプログラム　参考

↓クリック↓

https://qiita.com/caa45040/items/f715b2a4077570a6a704

x 時間合わせは、別
x DS1307使用リアルタイムクロック(RTC)モジュールキット 販売コード 115488
x 過去ログを見よ

目的
DS1307で遊ぶ

フラッシュROMからの文法を書き換えた

例

```c++

#include <avr/pgmspace.h>

PROGMEM prog_uint16_t charSet[] =
  { 65000, 32796, 16843, 10, 11234 };

prog_uchar signMessage[] PROGMEM =
  "I AM PREDATOR, UNSEEN COMBATANT.";

unsigned int displayInt;
char myChar;
int k;

displayInt = pgm_read_word_near(charSet + k); // 2バイト読み込み
myChar =  pgm_read_byte_near(signMessage + k); // 1バイト読み込み

```

結果

![o_coq047.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/840352/b11ba477-2996-df0e-d5f9-6f4aa56a643c.jpeg)

![o_coq048.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/840352/7adde773-5247-1b7f-3ff0-8f527357537a.jpeg)

![o_coq049.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/840352/1f65314a-1aea-2764-f892-82ea22f3d259.jpeg)


プログラム

```c++


//有機ELのSSD1306で「デカ文字」キャラクターを描画
//秋月のOLEDとアイテンドウのOLEDのアドレスは3C
//SSD1306_DS1307_UNO_1


//ヘッダー
#include <Arduino.h>
#include <Wire.h>
#include "f24x64_0_9.h"

#include <avr/pgmspace.h> //UNO

//定義
#define MAX_PAGE                   (7)
#define MAX_COL                    (127)

#define COMMAND_MODE               0x80 // continuation bit is set!
#define DATA_MODE                  0x40

#define SET_COLUMN_ADDRESS         0x21 // takes two bytes, start address and end address of display data RAM
#define SET_PAGE_ADDRESS           0x22 // takes two bytes, start address and end address of display data RAM

#define SET_MEMORY_ADDRESSING_MODE 0x20 // takes one byte as given above
#define HORIZONTAL_ADDRESSING_MODE 0x00


//I2Cに配列を転送する
void write_s(uint8_t *str1, uint8_t len1) {

  Wire.beginTransmission(  0x3c  );

  for (int ii = 0; ii < len1; ii++) {

    //一文字出力
    Wire.write(*str1 ++);

  }//for

  Wire.endTransmission();

}//write_s


//セットページアドレス
void setPageAddress(uint8_t start, uint8_t end)
{
  uint8_t databytes[6] = {COMMAND_MODE, SET_PAGE_ADDRESS, COMMAND_MODE, start, COMMAND_MODE, end};
  write_s(databytes, 6);
}//setPageAddress


//セットカラムアクセス
void setColumnAddress(uint8_t start, uint8_t end)
{
  uint8_t databytes[6] = {COMMAND_MODE, SET_COLUMN_ADDRESS, COMMAND_MODE, start, COMMAND_MODE, end};
  write_s(databytes, 6);
}//setColumnAddress


//セットメモリーアドレシングモード
void setMemoryAddressingMode()
{
  uint8_t databytes[4] = {COMMAND_MODE, SET_MEMORY_ADDRESSING_MODE, COMMAND_MODE, HORIZONTAL_ADDRESSING_MODE};
  write_s(databytes, 4);
}//setMemoryAddressingMode


uint8_t buff_a[((128 / 8) * 64)]; //バッファー


//バッファのクリア
void clearDisplay(void) {
  memset(buff_a, 0, (128 / 8) * 64);
}//clearDisplay


int start_x = 0; //xの開始位置
int start_y = 0; //yの開始位置


//デカ文字を1文字書く
void BIG_char(char char_i) {

  char_i = char_i - '0';

  //int char_i = 0;   //キャラクター番号
  //int start_x = 20; //xの開始位置
  //int start_y = 10; //yの開始位置
  int dot_1;        //ドットのオン、オフ
  //キャラクターを描画
  for (int x = 0; x < 24; x++) {
    for (int y = 0; y <  64; y++) {

    
//StampS3
//      dot_1 =
//        ( databytes[ (y * (24 / 8)) + (x / 8 ) + (char_i * (24 * 64 / 8)) ] >> (7 - (x & 7)) ) & 0x01;

      //UNO
      dot_1 = pgm_read_byte_near( databytes + (y * (24 / 8)) + (x / 8 ) + (char_i * (24 * 64 / 8)));
      dot_1 = (dot_1 >> (7 - (x & 7)) ) & 0x01;
      
      if (dot_1 != 0) {
        buff_a[(start_x + x) + ((start_y + y) / 8) * (128)] |= (1 << ((start_y + y) & 7));
      }

    }//for y
  }//for x

  start_x = start_x + 24;

}//BIG_char


// テキストの開始位置を設定
void setCursor(int x, int y) {
  start_x = x; //xの開始位置
  start_y = y; //yの開始位置
}//setCursor


//文字列の表示 nana_seg
void ns_printf(char *str1) {
  //文字の中身がゼロか
  while (*str1) {

    //一文字出力
    BIG_char( *str1 ++ );

  } //while
}//ns_printf


//再表示
void display(void) {
  //範囲の設定
  setPageAddress(0, MAX_PAGE);  // all pages
  setColumnAddress(0, MAX_COL); // all columns

  //128x64の再描画
  uint8_t databytes_d[2] = {DATA_MODE, 0x00};
  for (int icount = 0; icount < ((128 / 8) * 64); icount++) {
    databytes_d[1] = buff_a[icount];
    write_s(databytes_d, 2);
  }//for icount
}//display


//SSD1306の初期化
void display_begin(void) {

  //I2Cの初期化
  Wire.begin(); //C011
  delay(200);

  //SSD1306の初期化スペル(魔法)
  //0x80,0x8d,0x80,0x14,0x80,0xAF
  write_s( (uint8_t*) "\200\215\200\024\200\257", 6);
  delay(100);

  //セットメモリーアドレシングモード
  setMemoryAddressingMode();

}//display_begin


//初期化
void setup() {

  //SSD1306の初期化
  display_begin();

}//setup


//メインループ
void loop() {

  //バッファのクリア
  clearDisplay();

  // テキストの開始位置を設定
  setCursor((128 - (24 * 5)) / 2, 0);

//RTC DS1307のアドレス
#define ADDR    0x68    // 2進数 1101000

  // レジスタのアドレスを先頭にする
  Wire.beginTransmission(ADDR);
  Wire.write(0x00);
  Wire.endTransmission();
  delay(1);

  // I2Cスレーブに8byteのレジスタデータを要求する
  Wire.requestFrom(ADDR, 8);

  // 8byteのデータを取得する
  unsigned char data_read[16] = {0x88, 0x88, 0x88}; //データバッファー
  int ii = 0;
  while (Wire.available())  {   // 要求より短いデータが来る可能性あり
    data_read[ii++] = Wire.read();       // 1バイトを受信
  }//while
  delay(1);

  //dbug
  //char data_read[16];//debug
  //data_read[2] = 0x12; data_read[1] = 0x32;

  //表示変換する
  unsigned char cn1[16];  //桁
  cn1[0] = '0' + (data_read[2] >> 4);  //0 時 上位
  cn1[1] = '0' + (data_read[2] & 0xf); //1 時 下位
  cn1[2] = ':';
  cn1[3] = '0' + (data_read[1] >> 4);  //2 分 上位
  cn1[4] = '0' + (data_read[1] & 0xf); //3 分 下位
  cn1[5] = 0;

  //デカ文字を表示
  ns_printf(cn1);

  //再表示
  display();

  delay(1000); //1秒待つ

}//loop

```

f24x64_0_9.h

```


// ビットマップデータ
// 'soiya1', 128x640px
static const unsigned char PROGMEM databytes[] = {

// 'f24x64_0_9', 24x640px
  0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0x18, 0x7f, 0xfe, 0x18, 0x7f, 0xfc, 0xff, 0x3f, 0xfc, 
  0xff, 0x3f, 0xf9, 0xff, 0x9f, 0xf9, 0xff, 0x9f, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 
  0xcf, 0xf3, 0xff, 0xcf, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 
  0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 
  0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 
  0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 
  0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 
  0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 
  0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 
  0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 
  0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf8, 0xff, 
  0x8f, 0xf8, 0xff, 0x8f, 0xfc, 0x3e, 0x1f, 0xfc, 0x3e, 0x1f, 0xfe, 0x00, 0x3f, 0xfe, 0x00, 0x3f, 
  0xff, 0x03, 0xff, 0xff, 0x03, 0xff, 0xfe, 0x03, 0xff, 0xfe, 0x03, 0xff, 0xfc, 0xe7, 0xff, 0xfc, 
  0xe7, 0xff, 0xf9, 0xe7, 0xff, 0xf9, 0xe7, 0xff, 0xfb, 0xe7, 0xff, 0xfb, 0xe7, 0xff, 0xff, 0xe7, 
  0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 
  0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 
  0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 
  0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 
  0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 
  0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 
  0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 
  0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 
  0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 
  0xff, 0xff, 0xe7, 0xff, 0xfe, 0x00, 0x7f, 0xfe, 0x00, 0x7f, 0xfc, 0x00, 0x3f, 0xfc, 0x00, 0x3f, 
  0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0x18, 0x7f, 0xfe, 0x18, 0x7f, 0xfc, 0xff, 0x3f, 0xfc, 
  0xff, 0x3f, 0xf9, 0xff, 0x9f, 0xf9, 0xff, 0x9f, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 
  0xcf, 0xf3, 0xff, 0xcf, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 
  0xf7, 0xff, 0xe7, 0xf7, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 
  0xff, 0xe7, 0xff, 0xff, 0xef, 0xff, 0xff, 0xef, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xff, 0xff, 
  0x9f, 0xff, 0xff, 0x9f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0x80, 0x7f, 0xff, 0x80, 0x7f, 
  0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfc, 0xff, 0xff, 0xfc, 
  0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 
  0xff, 0xf3, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 
  0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 
  0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xf7, 0xff, 
  0xff, 0xf7, 0xff, 0xff, 0xf1, 0xfe, 0x07, 0xf1, 0xfe, 0x07, 0xf8, 0x00, 0x07, 0xf8, 0x00, 0x07, 
  0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0x18, 0x7f, 0xfe, 0x18, 0x7f, 0xfc, 0xff, 0x3f, 0xfc, 
  0xff, 0x3f, 0xf9, 0xff, 0x9f, 0xf9, 0xff, 0x9f, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 
  0xcf, 0xf3, 0xff, 0xcf, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 
  0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 
  0xff, 0xe7, 0xff, 0xff, 0xef, 0xff, 0xff, 0xef, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xff, 0xff, 
  0x9f, 0xff, 0xff, 0x9f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0x00, 0x7f, 0xff, 0x00, 0x7f, 
  0xff, 0x00, 0x7f, 0xff, 0x00, 0x7f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0x9f, 0xff, 
  0xff, 0x9f, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 
  0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 
  0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 
  0xff, 0xf3, 0xf3, 0xff, 0xf7, 0xf3, 0xff, 0xf7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf8, 0xff, 
  0xcf, 0xf8, 0xff, 0xcf, 0xfc, 0x3e, 0x1f, 0xfc, 0x3e, 0x1f, 0xfe, 0x00, 0x3f, 0xfe, 0x00, 0x3f, 
  0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x7f, 0xff, 
  0xfc, 0x7f, 0xff, 0xf8, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xe1, 
  0xff, 0xff, 0xe1, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xff, 
  0xff, 0x0f, 0xff, 0xff, 0x0f, 0xff, 0xfe, 0x19, 0xff, 0xfe, 0x19, 0xff, 0xfc, 0x39, 0xff, 0xfc, 
  0x39, 0xff, 0xf8, 0x79, 0xff, 0xf8, 0x79, 0xff, 0xf1, 0xf9, 0xff, 0xf1, 0xf9, 0xff, 0xf3, 0xf9, 
  0xff, 0xf3, 0xf9, 0xff, 0xe3, 0xf9, 0xff, 0xe3, 0xf9, 0xff, 0xe7, 0xf9, 0xff, 0xe7, 0xf9, 0xff, 
  0xe7, 0xf1, 0xf7, 0xe7, 0xf1, 0xf7, 0xe0, 0x00, 0x07, 0xe0, 0x00, 0x07, 0xe0, 0x00, 0x07, 0xe0, 
  0x00, 0x07, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 
  0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 
  0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 
  0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 
  0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 
  0xf0, 0x00, 0x07, 0xf0, 0x00, 0x07, 0xf0, 0x00, 0x07, 0xf0, 0x00, 0x07, 0xe7, 0xff, 0xff, 0xe7, 
  0xff, 0xff, 0xef, 0xff, 0xff, 0xef, 0xff, 0xff, 0xef, 0xff, 0xff, 0xef, 0xff, 0xff, 0xe7, 0xff, 
  0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 
  0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 
  0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xf1, 0xff, 
  0xff, 0xf1, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xf8, 0x3f, 0xff, 0xfe, 0x00, 0x7f, 0xfe, 0x00, 0x7f, 
  0xff, 0x00, 0x7f, 0xff, 0x00, 0x7f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0x9f, 0xff, 
  0xff, 0x9f, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 
  0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 
  0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 
  0xff, 0xf3, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf8, 0xff, 
  0xcf, 0xf8, 0xff, 0xcf, 0xfc, 0x3e, 0x1f, 0xfc, 0x3e, 0x1f, 0xfe, 0x00, 0x3f, 0xfe, 0x00, 0x3f, 
  0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0x18, 0x7f, 0xfe, 0x18, 0x7f, 0xfc, 0xff, 0x3f, 0xfc, 
  0xff, 0x3f, 0xf9, 0xff, 0x9f, 0xf9, 0xff, 0x9f, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 
  0xcf, 0xf3, 0xff, 0xcf, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 
  0xe7, 0xff, 0xef, 0xe7, 0xff, 0xef, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 
  0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 
  0xff, 0xe7, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xe0, 0x00, 0x7f, 0xe0, 0x00, 0x7f, 
  0xe0, 0x00, 0x3f, 0xe0, 0x00, 0x3f, 0xe1, 0xff, 0x3f, 0xe1, 0xff, 0x3f, 0xe3, 0xff, 0x9f, 0xe3, 
  0xff, 0x9f, 0xe7, 0xff, 0xcf, 0xe7, 0xff, 0xcf, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 
  0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 
  0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 
  0xff, 0xf3, 0xf3, 0xff, 0xf7, 0xf3, 0xff, 0xf7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf8, 0xff, 
  0xcf, 0xf8, 0xff, 0xcf, 0xfc, 0x3e, 0x1f, 0xfc, 0x3e, 0x1f, 0xfe, 0x00, 0x3f, 0xfe, 0x00, 0x3f, 
  0xc0, 0x00, 0x0f, 0xc0, 0x00, 0x0f, 0xc0, 0x00, 0x03, 0xc0, 0x00, 0x03, 0xff, 0xff, 0xe3, 0xff, 
  0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xff, 0xff, 
  0x8f, 0xff, 0xff, 0x8f, 0xff, 0xff, 0x0f, 0xff, 0xff, 0x0f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 
  0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xf9, 0xff, 0xff, 
  0xf9, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc7, 
  0xff, 0xff, 0xc7, 0xff, 0xff, 0x8f, 0xff, 0xff, 0x8f, 0xff, 0xff, 0x0f, 0xff, 0xff, 0x0f, 0xff, 
  0xfe, 0x1f, 0xff, 0xfe, 0x1f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 
  0x3f, 0xff, 0xf8, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xf1, 0xff, 
  0xff, 0xf1, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xe1, 0xff, 0xff, 
  0xe1, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 
  0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 
  0xff, 0xe3, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 
  0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0x18, 0x7f, 0xfe, 0x18, 0x7f, 0xfc, 0xff, 0x3f, 0xfc, 
  0xff, 0x3f, 0xf9, 0xff, 0x9f, 0xf9, 0xff, 0x9f, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 
  0xcf, 0xf3, 0xff, 0xcf, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 
  0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 
  0xff, 0xe7, 0xf3, 0xff, 0xef, 0xf3, 0xff, 0xef, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf9, 0xff, 
  0x9f, 0xf9, 0xff, 0x9f, 0xfc, 0xff, 0x3f, 0xfc, 0xff, 0x3f, 0xfe, 0x00, 0x7f, 0xfe, 0x00, 0x7f, 
  0xff, 0x00, 0x7f, 0xff, 0x00, 0x7f, 0xfe, 0x3e, 0x3f, 0xfe, 0x3e, 0x3f, 0xfc, 0xff, 0x9f, 0xfc, 
  0xff, 0x9f, 0xf9, 0xff, 0xcf, 0xf9, 0xff, 0xcf, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 
  0xe7, 0xf3, 0xff, 0xe7, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 
  0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 
  0xff, 0xf3, 0xf3, 0xff, 0xf7, 0xf3, 0xff, 0xf7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf8, 0xff, 
  0xcf, 0xf8, 0xff, 0xcf, 0xfc, 0x3e, 0x1f, 0xfc, 0x3e, 0x1f, 0xfe, 0x00, 0x3f, 0xfe, 0x00, 0x3f, 
  0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0x18, 0x7f, 0xfe, 0x18, 0x7f, 0xfc, 0xff, 0x3f, 0xfc, 
  0xff, 0x3f, 0xf9, 0xff, 0x9f, 0xf9, 0xff, 0x9f, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 
  0xc7, 0xf3, 0xff, 0xc7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 
  0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 
  0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf9, 0xff, 
  0xe7, 0xf9, 0xff, 0xe7, 0xfc, 0xff, 0x07, 0xfc, 0xff, 0x07, 0xfe, 0x00, 0x07, 0xfe, 0x00, 0x07, 
  0xff, 0x00, 0x67, 0xff, 0x00, 0x67, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 
  0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 
  0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 
  0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xc7, 0xff, 
  0xff, 0xc7, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xc7, 0xff, 0xff, 0x8f, 0xff, 0xff, 0x8f, 0xff, 0xfc, 
  0x1f, 0xff, 0xfc, 0x1f, 0xff, 0xf0, 0x3f, 0xff, 0xf0, 0x3f, 0xff, 0xe1, 0xff, 0xff, 0xe1, 0xff,

//colon   ':'
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc1, 0xff, 
  0xff, 0xc1, 0xff, 0xff, 0xc1, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc1, 0xff, 0xff, 0xc1, 0xff, 
  0xff, 0xc1, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff



};

```