Compare commits

...

9 Commits

10 changed files with 723 additions and 577 deletions

3
.gitmodules vendored
View File

@@ -13,9 +13,6 @@
[submodule "eink/flash"] [submodule "eink/flash"]
path = eink/flash path = eink/flash
url = git@git.blackmark.me:avr/flash.git url = git@git.blackmark.me:avr/flash.git
[submodule "eink/spi"]
path = eink/spi
url = git@git.blackmark.me:avr/spi.git
[submodule "eink/avr-libstdcpp"] [submodule "eink/avr-libstdcpp"]
path = eink/avr-libstdcpp path = eink/avr-libstdcpp
url = git@github.com:modm-io/avr-libstdcpp.git url = git@github.com:modm-io/avr-libstdcpp.git

View File

@@ -218,30 +218,30 @@
<Compile Include="clock.hpp"> <Compile Include="clock.hpp">
<SubType>compile</SubType> <SubType>compile</SubType>
</Compile> </Compile>
<Compile Include="eink\eink_spi.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="eink\eink.hpp"> <Compile Include="eink\eink.hpp">
<SubType>compile</SubType> <SubType>compile</SubType>
</Compile> </Compile>
<Compile Include="eink\font.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="eink\otp.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="flash\flash.hpp"> <Compile Include="flash\flash.hpp">
<SubType>compile</SubType> <SubType>compile</SubType>
</Compile> </Compile>
<Compile Include="image.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="io\io.hpp"> <Compile Include="io\io.hpp">
<SubType>compile</SubType> <SubType>compile</SubType>
</Compile> </Compile>
<Compile Include="main.cpp"> <Compile Include="main.cpp">
<SubType>compile</SubType> <SubType>compile</SubType>
</Compile> </Compile>
<Compile Include="spi\config.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="spi\hardware.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="spi\software.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="spi\spi.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="uart\config.hpp"> <Compile Include="uart\config.hpp">
<SubType>compile</SubType> <SubType>compile</SubType>
</Compile> </Compile>
@@ -260,21 +260,6 @@
<Compile Include="uart\uart.hpp"> <Compile Include="uart\uart.hpp">
<SubType>compile</SubType> <SubType>compile</SubType>
</Compile> </Compile>
<Compile Include="util\array.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="util\func.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="util\new.cpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="util\new.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="util\type.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="util\util.hpp"> <Compile Include="util\util.hpp">
<SubType>compile</SubType> <SubType>compile</SubType>
</Compile> </Compile>
@@ -283,7 +268,6 @@
<Folder Include="flash" /> <Folder Include="flash" />
<Folder Include="io" /> <Folder Include="io" />
<Folder Include="eink" /> <Folder Include="eink" />
<Folder Include="spi" />
<Folder Include="util" /> <Folder Include="util" />
<Folder Include="uart" /> <Folder Include="uart" />
</ItemGroup> </ItemGroup>

288
eink/image.hpp Normal file
View File

@@ -0,0 +1,288 @@
#pragma once
#include <array>
#include <tuple>
#include <utility>
#include <cstdint>
#include "flash/flash.hpp"
constexpr auto RLE_IMAGE = flash::Wrapper{std::tuple{
std::to_array<std::pair<std::uint8_t, std::uint8_t>>({
{255, 0xff}, {17, 0xff}, {1, 0x0f}, {3, 0xff}, {1, 0xc0}, {2, 0x00}, {1, 0x01}, {7, 0xff}, {1, 0xfe},
{1, 0x07}, {1, 0xf0}, {1, 0x3f}, {2, 0xff}, {1, 0xfe}, {1, 0x07}, {1, 0xf0}, {1, 0x3e}, {1, 0x07},
{1, 0xe0}, {1, 0x3f}, {1, 0xff}, {1, 0xc0}, {3, 0x00}, {1, 0x3f}, {6, 0xff}, {1, 0xf8}, {1, 0x03},
{1, 0xc0}, {1, 0x1f}, {2, 0xff}, {1, 0xf8}, {1, 0x03}, {1, 0xe0}, {1, 0x1e}, {1, 0x67}, {1, 0x80},
{1, 0x1f}, {1, 0xff}, {1, 0xc0}, {3, 0x00}, {1, 0x0f}, {6, 0xff}, {1, 0xf8}, {1, 0xe1}, {1, 0xe7},
{1, 0x0f}, {2, 0xff}, {1, 0xf8}, {1, 0xe1}, {1, 0xc3}, {1, 0x0c}, {1, 0xf3}, {1, 0x02}, {1, 0x3f},
{1, 0xff}, {1, 0xc0}, {3, 0x00}, {1, 0x03}, {6, 0xff}, {1, 0xfd}, {1, 0xf1}, {1, 0xff}, {1, 0x8f},
{2, 0xff}, {1, 0xfd}, {1, 0xf1}, {1, 0xc7}, {1, 0x8e}, {1, 0xf7}, {1, 0x0f}, {1, 0xbf}, {1, 0xff},
{1, 0xc0}, {2, 0x00}, {2, 0x01}, {7, 0xff}, {1, 0xf1}, {1, 0xff}, {1, 0x8f}, {1, 0xf7}, {2, 0xff},
{1, 0xf1}, {1, 0xc7}, {1, 0x8e}, {1, 0x06}, {1, 0x1f}, {2, 0xff}, {1, 0xc0}, {2, 0x00}, {1, 0x03},
{1, 0x00}, {7, 0xff}, {1, 0xf1}, {1, 0xff}, {1, 0x8f}, {1, 0x80}, {2, 0xff}, {1, 0xf1}, {2, 0xc7},
{1, 0x0e}, {1, 0x3f}, {2, 0xff}, {1, 0xc0}, {2, 0x00}, {1, 0x07}, {1, 0x00}, {1, 0x7f}, {6, 0xff},
{1, 0xf1}, {1, 0xfe}, {1, 0x1f}, {1, 0x00}, {2, 0x3f}, {1, 0xf1}, {2, 0xc7}, {1, 0xfe}, {1, 0x3f},
{2, 0xff}, {1, 0xc0}, {2, 0x00}, {1, 0x0f}, {1, 0x00}, {1, 0x3f}, {6, 0xff}, {1, 0xe1}, {1, 0xf8},
{1, 0x3e}, {1, 0x0c}, {1, 0x1e}, {1, 0x1f}, {1, 0xe3}, {1, 0xc3}, {1, 0x07}, {1, 0xfe}, {1, 0x3f},
{2, 0xff}, {1, 0xc0}, {2, 0x00}, {1, 0x1f}, {1, 0x00}, {1, 0x1f}, {6, 0xff}, {1, 0xe3}, {1, 0xf8},
{1, 0x1e}, {1, 0x3f}, {1, 0x04}, {1, 0x3f}, {1, 0xc3}, {1, 0xe0}, {1, 0x07}, {1, 0xfe}, {1, 0x3f},
{2, 0xff}, {1, 0xc0}, {2, 0x00}, {1, 0x3f}, {1, 0x00}, {1, 0x0f}, {6, 0xff}, {1, 0xc7}, {1, 0xff},
{1, 0x0f}, {1, 0x7f}, {1, 0x80}, {1, 0x7f}, {1, 0xc7}, {1, 0xf0}, {1, 0x47}, {1, 0xfe}, {1, 0x3f},
{2, 0xff}, {1, 0xc0}, {2, 0x00}, {1, 0x7f}, {1, 0x00}, {1, 0x0f}, {6, 0xff}, {1, 0x87}, {1, 0xff},
{1, 0x87}, {1, 0xff}, {1, 0xc0}, {1, 0xff}, {1, 0x87}, {1, 0xff}, {1, 0xc7}, {1, 0xfe}, {1, 0x3f},
{2, 0xff}, {1, 0xc0}, {2, 0x00}, {1, 0x3f}, {1, 0x00}, {1, 0x07}, {6, 0xff}, {1, 0x0f}, {1, 0xff},
{1, 0xc7}, {3, 0xff}, {1, 0x0f}, {1, 0xff}, {1, 0x8f}, {1, 0xfe}, {1, 0x1f}, {2, 0xff}, {1, 0xc7},
{2, 0xe0}, {1, 0x7f}, {1, 0x1c}, {1, 0x07}, {5, 0xff}, {1, 0xfe}, {1, 0x1f}, {1, 0xef}, {1, 0x87},
{2, 0xff}, {1, 0xfe}, {1, 0x1f}, {1, 0xff}, {1, 0x8f}, {1, 0xff}, {1, 0x0f}, {1, 0xbf}, {1, 0xff},
{1, 0xc7}, {1, 0xe1}, {1, 0xf0}, {1, 0x7d}, {1, 0x3e}, {1, 0x03}, {5, 0xff}, {1, 0xfc}, {1, 0x30},
{1, 0xc7}, {1, 0x0f}, {2, 0xff}, {1, 0xfc}, {1, 0x31}, {1, 0xe7}, {1, 0x0f}, {1, 0xff}, {1, 0x07},
{1, 0x1f}, {1, 0xff}, {1, 0xc3}, {1, 0xe1}, {1, 0xf0}, {1, 0x7c}, {1, 0x3e}, {1, 0x03}, {5, 0xff},
{1, 0xf8}, {1, 0x00}, {1, 0xc0}, {1, 0x0f}, {2, 0xff}, {1, 0xf8}, {1, 0x00}, {1, 0xc0}, {1, 0x1f},
{1, 0xff}, {1, 0x80}, {1, 0x1f}, {1, 0xff}, {1, 0xc3}, {1, 0xf1}, {2, 0xf8}, {1, 0x3f}, {1, 0x03},
{5, 0xff}, {1, 0xf8}, {1, 0x00}, {1, 0xe0}, {1, 0x1f}, {2, 0xff}, {1, 0xf8}, {1, 0x00}, {1, 0xe0},
{1, 0x3f}, {1, 0xff}, {1, 0xc0}, {1, 0x3f}, {1, 0xff}, {1, 0xc3}, {1, 0xf3}, {2, 0xf8}, {1, 0x7f},
{1, 0x01}, {7, 0xff}, {1, 0xfc}, {5, 0xff}, {1, 0xf8}, {2, 0xff}, {1, 0xf9}, {2, 0xff}, {1, 0xc1},
{1, 0xf3}, {1, 0xf9}, {1, 0xf8}, {1, 0x7f}, {1, 0x81}, {19, 0xff}, {1, 0xc1}, {1, 0xfb}, {1, 0xfd},
{1, 0xf0}, {1, 0xff}, {1, 0x81}, {19, 0xff}, {1, 0xc1}, {2, 0xff}, {1, 0xf0}, {1, 0xff}, {1, 0xc1},
{19, 0xff}, {1, 0xc0}, {2, 0xff}, {1, 0xed}, {1, 0xff}, {1, 0xc1}, {19, 0xff}, {1, 0xc0}, {1, 0xff},
{1, 0xbf}, {1, 0xe1}, {1, 0xf7}, {1, 0xe1}, {19, 0xff}, {1, 0xc0}, {1, 0xff}, {1, 0x3f}, {1, 0xdb},
{1, 0xf3}, {1, 0xe1}, {19, 0xff}, {1, 0xc0}, {1, 0xff}, {1, 0x3f}, {1, 0xd7}, {1, 0xe3}, {1, 0xf1},
{19, 0xff}, {1, 0xc0}, {1, 0x7f}, {1, 0x1f}, {1, 0xd7}, {1, 0xe1}, {1, 0xf1}, {19, 0xff}, {1, 0xe0},
{1, 0x7e}, {1, 0x1f}, {1, 0x9f}, {1, 0xe1}, {1, 0xf1}, {19, 0xff}, {1, 0xe0}, {1, 0x3e}, {1, 0x1f},
{1, 0x8f}, {1, 0xc3}, {1, 0xe1}, {19, 0xff}, {1, 0xe0}, {1, 0x3e}, {2, 0x0f}, {1, 0xc3}, {1, 0xe1},
{19, 0xff}, {1, 0xe0}, {1, 0x3c}, {2, 0x0f}, {1, 0x87}, {1, 0xc1}, {19, 0xff}, {1, 0xf0}, {1, 0x1c},
{1, 0x06}, {1, 0x07}, {1, 0x87}, {1, 0xc1}, {19, 0xff}, {1, 0xf0}, {3, 0x00}, {1, 0x1f}, {1, 0x81},
{19, 0xff}, {1, 0xf0}, {3, 0x00}, {1, 0x1f}, {1, 0x81}, {19, 0xff}, {1, 0xf8}, {3, 0x00}, {1, 0x1f},
{1, 0x81}, {19, 0xff}, {1, 0xf8}, {3, 0x00}, {1, 0x1f}, {1, 0x81}, {19, 0xff}, {1, 0xfc}, {3, 0x00},
{1, 0x1f}, {1, 0x01}, {19, 0xff}, {1, 0xfe}, {3, 0x00}, {1, 0x1e}, {1, 0x01}, {19, 0xff}, {1, 0xfe},
{3, 0x00}, {1, 0x1c}, {1, 0x01}, {20, 0xff}, {3, 0x00}, {1, 0x10}, {1, 0x01}, {20, 0xff}, {1, 0x80},
{3, 0x00}, {1, 0x01}, {20, 0xff}, {1, 0xc0}, {3, 0x00}, {1, 0x01}, {20, 0xff}, {1, 0xf0}, {3, 0x00},
{1, 0x01}, {20, 0xff}, {1, 0xf8}, {3, 0x00}, {1, 0x01}, {20, 0xff}, {1, 0xfe}, {3, 0x00}, {1, 0x01},
{21, 0xff}, {1, 0xc0}, {2, 0x00}, {1, 0x01}, {21, 0xff}, {1, 0xfc}, {2, 0x00}, {1, 0x01}, {255, 0xff},
{255, 0xff}, {135, 0xff}, {1, 0x83}, {2, 0xff}, {1, 0x00}, {1, 0x7f}, {3, 0xff}, {1, 0x80}, {1, 0x3f},
{1, 0xff}, {1, 0xf0}, {1, 0x0f}, {11, 0xff}, {1, 0xfe}, {1, 0x01}, {1, 0xff}, {1, 0xfc}, {1, 0x00},
{1, 0x1f}, {3, 0xff}, {1, 0x00}, {1, 0x1f}, {1, 0xff}, {1, 0xc0}, {1, 0x03}, {11, 0xff}, {1, 0xf0},
{1, 0x01}, {1, 0xff}, {1, 0xf8}, {1, 0x00}, {1, 0x0f}, {2, 0xff}, {1, 0xfe}, {1, 0x00}, {1, 0x07},
{1, 0xff}, {1, 0x80}, {1, 0x01}, {11, 0xff}, {1, 0xc0}, {1, 0x01}, {1, 0xff}, {1, 0xf0}, {1, 0x00},
{1, 0x07}, {2, 0xff}, {1, 0xfc}, {1, 0x00}, {1, 0x07}, {1, 0xff}, {2, 0x00}, {11, 0xff}, {1, 0xc0},
{1, 0x01}, {1, 0xff}, {1, 0xf0}, {1, 0x1c}, {1, 0x03}, {2, 0xff}, {1, 0xf8}, {1, 0x00}, {1, 0x03},
{1, 0xfe}, {2, 0x00}, {11, 0xff}, {1, 0xc0}, {1, 0x01}, {1, 0xff}, {1, 0xe0}, {1, 0x3f}, {1, 0x03},
{2, 0xff}, {1, 0xf0}, {1, 0x1f}, {1, 0x01}, {1, 0xfe}, {1, 0x03}, {1, 0xc0}, {1, 0x7f}, {10, 0xff},
{1, 0xc0}, {1, 0x01}, {1, 0xff}, {1, 0xe0}, {1, 0x7f}, {1, 0x83}, {2, 0xff}, {1, 0xf0}, {1, 0x3f},
{1, 0x81}, {1, 0xfc}, {1, 0x07}, {1, 0xe0}, {1, 0x7f}, {11, 0xff}, {1, 0x01}, {1, 0xff}, {1, 0xe0},
{1, 0x7f}, {1, 0x81}, {2, 0xff}, {1, 0xf0}, {1, 0x3f}, {1, 0x81}, {1, 0xfc}, {1, 0x0f}, {1, 0xf0},
{1, 0x3f}, {11, 0xff}, {1, 0x01}, {1, 0xff}, {1, 0xe0}, {1, 0x7f}, {1, 0x81}, {1, 0xff}, {1, 0x3f},
{1, 0xe0}, {1, 0x7f}, {1, 0xc0}, {1, 0xfc}, {1, 0x0f}, {1, 0xf0}, {1, 0x3f}, {11, 0xff}, {1, 0x01},
{1, 0xff}, {1, 0xe0}, {1, 0x7f}, {1, 0x83}, {1, 0xfc}, {1, 0x0f}, {1, 0xe0}, {1, 0x7f}, {1, 0xc0},
{1, 0xf8}, {1, 0x0f}, {1, 0xf0}, {1, 0x3f}, {11, 0xff}, {1, 0x01}, {1, 0xff}, {1, 0xe0}, {1, 0x7f},
{1, 0x83}, {1, 0xfc}, {1, 0x07}, {1, 0xe0}, {1, 0x7f}, {1, 0xc0}, {1, 0xf8}, {1, 0x1f}, {1, 0xf0},
{1, 0x1f}, {11, 0xff}, {1, 0x01}, {1, 0xff}, {1, 0xe0}, {1, 0x3f}, {1, 0x83}, {1, 0xf8}, {1, 0x07},
{1, 0xe0}, {1, 0x7f}, {1, 0xc0}, {1, 0xf8}, {1, 0x1f}, {1, 0xf8}, {1, 0x1f}, {11, 0xff}, {1, 0x01},
{1, 0xff}, {1, 0xf0}, {1, 0x1f}, {1, 0x07}, {1, 0xf8}, {1, 0x07}, {1, 0xe0}, {1, 0x7f}, {1, 0xc0},
{1, 0x78}, {1, 0x1f}, {1, 0xf8}, {1, 0x1f}, {11, 0xff}, {1, 0x01}, {1, 0xff}, {1, 0xf8}, {2, 0x07},
{1, 0xf8}, {1, 0x07}, {1, 0xc0}, {1, 0x7f}, {1, 0xc0}, {1, 0x78}, {1, 0x1f}, {1, 0xf8}, {1, 0x1f},
{11, 0xff}, {1, 0x01}, {1, 0xff}, {1, 0xf8}, {1, 0x00}, {1, 0x0f}, {1, 0xf8}, {1, 0x07}, {1, 0xc0},
{1, 0x7f}, {1, 0xc0}, {1, 0x78}, {1, 0x1f}, {1, 0xf8}, {1, 0x1f}, {11, 0xff}, {1, 0x01}, {1, 0xff},
{1, 0xfc}, {1, 0x00}, {1, 0x1f}, {1, 0xfc}, {1, 0x0f}, {1, 0xc0}, {1, 0x7f}, {1, 0xc0}, {1, 0x78},
{1, 0x1f}, {1, 0xf8}, {1, 0x1f}, {11, 0xff}, {1, 0x01}, {1, 0xff}, {1, 0xfe}, {1, 0x00}, {1, 0x1f},
{1, 0xfe}, {1, 0x1f}, {1, 0xc0}, {1, 0x7f}, {1, 0xe0}, {1, 0x78}, {1, 0x1f}, {1, 0xf8}, {1, 0x1f},
{11, 0xff}, {1, 0x01}, {1, 0xff}, {1, 0xfc}, {1, 0x00}, {1, 0x0f}, {2, 0xff}, {1, 0xc0}, {1, 0x7f},
{1, 0xe0}, {1, 0x78}, {1, 0x1f}, {1, 0xf8}, {1, 0x1f}, {11, 0xff}, {1, 0x01}, {1, 0xff}, {1, 0xf0},
{1, 0x20}, {1, 0x07}, {2, 0xff}, {1, 0xc0}, {1, 0x7f}, {1, 0xc0}, {1, 0x78}, {1, 0x1f}, {1, 0xf8},
{1, 0x1f}, {11, 0xff}, {1, 0x01}, {1, 0xff}, {1, 0xf0}, {1, 0x78}, {1, 0x03}, {2, 0xff}, {1, 0xc0},
{1, 0x7f}, {1, 0xc0}, {1, 0x78}, {1, 0x1f}, {1, 0xf8}, {1, 0x1f}, {11, 0xff}, {1, 0x01}, {1, 0xff},
{1, 0xe0}, {1, 0xfe}, {1, 0x01}, {2, 0xff}, {1, 0xe0}, {1, 0x7f}, {1, 0xc0}, {1, 0x78}, {1, 0x1f},
{1, 0xf8}, {1, 0x1f}, {11, 0xff}, {1, 0x01}, {1, 0xff}, {1, 0xc0}, {1, 0xff}, {1, 0x01}, {2, 0xff},
{1, 0xe0}, {1, 0x7f}, {1, 0xc0}, {1, 0xf8}, {1, 0x1f}, {1, 0xf8}, {1, 0x1f}, {11, 0xff}, {1, 0x01},
{1, 0xff}, {1, 0xc0}, {1, 0xff}, {1, 0x80}, {2, 0xff}, {1, 0xe0}, {1, 0x7f}, {1, 0xc0}, {1, 0xf8},
{1, 0x1f}, {1, 0xf0}, {1, 0x1f}, {11, 0xff}, {1, 0x01}, {1, 0xff}, {1, 0xc1}, {1, 0xff}, {1, 0xc0},
{2, 0xff}, {1, 0xe0}, {1, 0x7f}, {1, 0xc0}, {1, 0xf8}, {1, 0x1f}, {1, 0xf0}, {1, 0x3f}, {11, 0xff},
{1, 0x01}, {1, 0xff}, {1, 0xc1}, {1, 0xff}, {1, 0xc0}, {2, 0xff}, {1, 0xe0}, {1, 0x7f}, {1, 0xc0},
{1, 0xfc}, {1, 0x0f}, {1, 0xf0}, {1, 0x3f}, {11, 0xff}, {1, 0x01}, {1, 0xff}, {1, 0xc1}, {1, 0xff},
{1, 0xc0}, {1, 0xff}, {1, 0x3f}, {1, 0xf0}, {1, 0x3f}, {1, 0x80}, {1, 0xfc}, {1, 0x0f}, {1, 0xf0},
{1, 0x3f}, {11, 0xff}, {1, 0x01}, {1, 0xff}, {1, 0xc0}, {1, 0xff}, {1, 0x80}, {1, 0xfc}, {1, 0x0f},
{1, 0xf0}, {1, 0x3f}, {1, 0x81}, {1, 0xfc}, {1, 0x0f}, {1, 0xe0}, {1, 0x3f}, {11, 0xff}, {1, 0x01},
{1, 0xff}, {1, 0xc0}, {1, 0x7f}, {1, 0x81}, {1, 0xfc}, {1, 0x07}, {1, 0xf0}, {1, 0x1f}, {1, 0x01},
{1, 0xfe}, {1, 0x07}, {1, 0xe0}, {1, 0x7f}, {10, 0xff}, {1, 0x80}, {1, 0x00}, {1, 0x07}, {1, 0xc0},
{1, 0x3f}, {1, 0x01}, {1, 0xf8}, {1, 0x07}, {1, 0xf8}, {1, 0x0e}, {1, 0x03}, {1, 0xfe}, {1, 0x03},
{1, 0x80}, {1, 0x7f}, {10, 0xff}, {1, 0x80}, {1, 0x00}, {1, 0x07}, {1, 0xe0}, {1, 0x00}, {1, 0x03},
{1, 0xf8}, {1, 0x07}, {1, 0xf8}, {1, 0x00}, {1, 0x03}, {1, 0xff}, {2, 0x00}, {11, 0xff}, {1, 0x80},
{1, 0x00}, {1, 0x07}, {1, 0xf0}, {1, 0x00}, {1, 0x03}, {1, 0xf8}, {1, 0x07}, {1, 0xfc}, {1, 0x00},
{1, 0x07}, {1, 0xff}, {1, 0x00}, {1, 0x01}, {11, 0xff}, {1, 0x80}, {1, 0x00}, {1, 0x07}, {1, 0xf8},
{1, 0x00}, {1, 0x07}, {1, 0xf8}, {1, 0x07}, {1, 0xfe}, {1, 0x00}, {1, 0x0f}, {1, 0xff}, {1, 0x80},
{1, 0x03}, {11, 0xff}, {1, 0x80}, {1, 0x00}, {1, 0x07}, {1, 0xfc}, {1, 0x00}, {1, 0x1f}, {1, 0xfc},
{1, 0x0f}, {1, 0xff}, {1, 0x00}, {1, 0x1f}, {1, 0xff}, {1, 0xe0}, {1, 0x07}, {15, 0xff}, {1, 0x80},
{1, 0xff}, {1, 0xfe}, {1, 0x1f}, {1, 0xff}, {1, 0xe0}, {1, 0x7f}, {1, 0xff}, {1, 0xf8}, {1, 0x1f},
{255, 0xff}, {255, 0xff}, {217, 0xff}, {1, 0xfc}, {4, 0x00}, {1, 0x0f}, {19, 0xff}, {1, 0xf9}, {24, 0xff},
{1, 0xfb}, {24, 0xff}, {1, 0xfb}, {1, 0xff}, {1, 0xfa}, {1, 0x1f}, {21, 0xff}, {1, 0xfb}, {1, 0xff},
{1, 0xe1}, {1, 0x1f}, {4, 0xff}, {1, 0xfc}, {7, 0x00}, {1, 0x3f}, {8, 0xff}, {1, 0xfb}, {1, 0xff},
{1, 0xc1}, {1, 0x0f}, {4, 0xff}, {1, 0xf0}, {7, 0x00}, {1, 0x1f}, {8, 0xff}, {1, 0xfb}, {1, 0xff},
{1, 0x81}, {1, 0x8f}, {4, 0xff}, {1, 0xf0}, {7, 0x00}, {1, 0x0f}, {8, 0xff}, {1, 0xfb}, {1, 0xff},
{1, 0x00}, {1, 0x87}, {4, 0xff}, {1, 0xf0}, {7, 0x00}, {1, 0x1f}, {8, 0xff}, {1, 0xfb}, {1, 0xff},
{1, 0x00}, {1, 0x87}, {4, 0xff}, {1, 0xec}, {7, 0x00}, {1, 0x37}, {8, 0xff}, {1, 0xfb}, {1, 0xff},
{1, 0x00}, {1, 0x47}, {4, 0xff}, {1, 0xe7}, {3, 0x00}, {1, 0x3e}, {3, 0x00}, {1, 0xc7}, {8, 0xff},
{1, 0xfb}, {1, 0xfe}, {1, 0x00}, {1, 0x43}, {4, 0xff}, {1, 0xe1}, {1, 0x80}, {2, 0x00}, {1, 0x30},
{2, 0x00}, {1, 0x03}, {1, 0x87}, {2, 0xff}, {1, 0xfe}, {1, 0x00}, {4, 0xff}, {1, 0xfb}, {1, 0xff},
{1, 0x00}, {1, 0x43}, {4, 0xff}, {1, 0xe0}, {1, 0x60}, {2, 0x00}, {1, 0x60}, {2, 0x00}, {1, 0x0e},
{1, 0x07}, {2, 0xff}, {1, 0xf0}, {1, 0x00}, {1, 0x1f}, {3, 0xff}, {1, 0xfb}, {1, 0xff}, {1, 0x00},
{1, 0x23}, {2, 0xff}, {1, 0xfe}, {1, 0xff}, {1, 0xe0}, {1, 0x38}, {2, 0x00}, {1, 0x6c}, {2, 0x00},
{1, 0x18}, {1, 0x07}, {2, 0xff}, {1, 0xe0}, {1, 0x00}, {1, 0x0f}, {3, 0xff}, {1, 0xfb}, {1, 0xfe},
{1, 0x00}, {1, 0x23}, {2, 0xff}, {1, 0xfe}, {1, 0xff}, {1, 0xe0}, {1, 0x0e}, {2, 0x00}, {1, 0x7e},
{2, 0x00}, {1, 0x60}, {1, 0x07}, {2, 0xff}, {1, 0x80}, {1, 0x00}, {1, 0x03}, {3, 0xff}, {1, 0xfb},
{1, 0xff}, {1, 0x00}, {1, 0x13}, {2, 0xff}, {1, 0xfe}, {1, 0xff}, {1, 0xe0}, {1, 0x03}, {2, 0x00},
{1, 0x66}, {1, 0x00}, {1, 0x01}, {1, 0xc0}, {1, 0x07}, {2, 0xff}, {2, 0x00}, {1, 0x01}, {3, 0xff},
{1, 0xfb}, {1, 0xff}, {1, 0x00}, {1, 0x17}, {2, 0xff}, {1, 0xfe}, {1, 0xff}, {1, 0xe0}, {1, 0x00},
{1, 0xc0}, {1, 0x00}, {1, 0x66}, {1, 0x00}, {1, 0x07}, {1, 0x00}, {1, 0x07}, {2, 0xff}, {2, 0x00},
{1, 0x01}, {3, 0xff}, {1, 0xfb}, {1, 0xff}, {1, 0x00}, {1, 0x1f}, {2, 0xff}, {1, 0xfe}, {1, 0xff},
{1, 0xe0}, {1, 0x00}, {1, 0x70}, {1, 0x00}, {1, 0x36}, {1, 0x00}, {1, 0x0c}, {1, 0x00}, {1, 0x07},
{1, 0xff}, {1, 0xfe}, {1, 0x07}, {1, 0x01}, {1, 0xc0}, {3, 0xff}, {1, 0xfb}, {1, 0xff}, {1, 0x01},
{3, 0xff}, {1, 0xfe}, {1, 0xff}, {1, 0xe0}, {1, 0x00}, {1, 0x1c}, {1, 0x00}, {1, 0x3c}, {1, 0x00},
{1, 0x30}, {1, 0x00}, {1, 0x07}, {1, 0xff}, {1, 0xfc}, {1, 0x07}, {1, 0x83}, {1, 0xc0}, {1, 0x7f},
{2, 0xff}, {1, 0xfb}, {1, 0xff}, {1, 0x01}, {3, 0xff}, {1, 0xfe}, {1, 0xff}, {1, 0xe0}, {1, 0x00},
{1, 0x06}, {3, 0x00}, {1, 0xc0}, {1, 0x00}, {1, 0x07}, {1, 0xff}, {1, 0xfc}, {1, 0x07}, {1, 0x01},
{1, 0xc0}, {1, 0x7f}, {2, 0xff}, {1, 0xfb}, {1, 0xff}, {1, 0x80}, {3, 0xff}, {1, 0xfe}, {1, 0xff},
{1, 0xe0}, {1, 0x00}, {1, 0x01}, {1, 0x80}, {1, 0x00}, {1, 0x03}, {1, 0x80}, {1, 0x00}, {1, 0x07},
{1, 0xff}, {1, 0xfc}, {2, 0x00}, {1, 0x07}, {3, 0xff}, {1, 0xfb}, {1, 0xff}, {1, 0x80}, {1, 0x7f},
{2, 0xff}, {1, 0xfe}, {1, 0xff}, {1, 0xe0}, {2, 0x00}, {1, 0x60}, {1, 0x00}, {1, 0x06}, {2, 0x00},
{1, 0x07}, {1, 0xff}, {1, 0xfc}, {2, 0x00}, {1, 0x3c}, {1, 0x1f}, {2, 0xff}, {1, 0xfb}, {1, 0xff},
{1, 0x80}, {1, 0x7f}, {2, 0xff}, {1, 0xfe}, {1, 0xff}, {1, 0xe0}, {2, 0x00}, {1, 0x38}, {1, 0x00},
{1, 0x18}, {2, 0x00}, {1, 0x07}, {1, 0xff}, {1, 0xfc}, {2, 0x00}, {1, 0x40}, {1, 0x03}, {2, 0xff},
{1, 0xfb}, {1, 0xff}, {1, 0x80}, {1, 0x3f}, {2, 0xff}, {1, 0xfe}, {1, 0xff}, {1, 0xe0}, {2, 0x00},
{1, 0x0c}, {1, 0x00}, {1, 0x60}, {2, 0x00}, {1, 0x07}, {1, 0xff}, {1, 0xfc}, {1, 0x00}, {1, 0x01},
{1, 0x80}, {1, 0x01}, {2, 0xff}, {1, 0xfb}, {1, 0xff}, {1, 0xc0}, {1, 0x3f}, {2, 0xff}, {1, 0xfe},
{1, 0xff}, {1, 0xe0}, {2, 0x00}, {1, 0x33}, {1, 0x01}, {1, 0xf0}, {2, 0x00}, {1, 0x07}, {1, 0xff},
{1, 0xfc}, {1, 0x00}, {1, 0x02}, {2, 0x00}, {1, 0x7f}, {1, 0xff}, {1, 0xfb}, {1, 0xff}, {1, 0xc0},
{1, 0x1f}, {2, 0xff}, {1, 0xfe}, {1, 0xff}, {1, 0xe0}, {2, 0x00}, {1, 0x60}, {1, 0xc3}, {1, 0x0c},
{2, 0x00}, {1, 0x07}, {1, 0xff}, {1, 0xfc}, {1, 0x00}, {1, 0x04}, {2, 0x00}, {1, 0x3f}, {1, 0xff},
{1, 0xfb}, {1, 0xff}, {1, 0xe0}, {1, 0x1f}, {2, 0xff}, {1, 0xfe}, {1, 0xff}, {1, 0xe0}, {1, 0x00},
{1, 0x01}, {1, 0x80}, {1, 0x7c}, {1, 0x06}, {2, 0x00}, {1, 0x07}, {1, 0xff}, {1, 0xfc}, {1, 0x00},
{1, 0x04}, {2, 0x00}, {1, 0x3f}, {1, 0xff}, {1, 0xfb}, {1, 0xff}, {1, 0xe0}, {1, 0x0f}, {2, 0xff},
{1, 0xfe}, {1, 0xff}, {1, 0xe0}, {1, 0x00}, {1, 0x06}, {2, 0x00}, {1, 0x01}, {1, 0x80}, {1, 0x00},
{1, 0x07}, {1, 0xff}, {1, 0xfe}, {1, 0x00}, {1, 0x08}, {1, 0x1c}, {1, 0x18}, {1, 0x1f}, {1, 0xff},
{1, 0xfb}, {1, 0xff}, {1, 0xe0}, {1, 0x0f}, {2, 0xff}, {1, 0xfe}, {1, 0xff}, {1, 0xe0}, {1, 0x00},
{1, 0x0c}, {3, 0x00}, {1, 0xc0}, {1, 0x00}, {1, 0x07}, {1, 0xff}, {1, 0xfe}, {1, 0x00}, {1, 0x08},
{1, 0x1c}, {1, 0x18}, {1, 0x1f}, {1, 0xff}, {1, 0xfb}, {1, 0xff}, {1, 0xf0}, {1, 0x07}, {2, 0xff},
{1, 0xfe}, {1, 0xff}, {1, 0xe0}, {1, 0x00}, {1, 0x30}, {3, 0x00}, {1, 0x30}, {1, 0x00}, {1, 0x07},
{2, 0xff}, {2, 0x00}, {1, 0x08}, {1, 0x00}, {1, 0x1f}, {1, 0xff}, {1, 0xfb}, {1, 0xff}, {1, 0xf0},
{1, 0x03}, {2, 0xff}, {1, 0xfe}, {1, 0xff}, {1, 0xe0}, {1, 0x00}, {1, 0x60}, {3, 0x00}, {1, 0x0c},
{1, 0x00}, {1, 0x07}, {2, 0xff}, {1, 0x80}, {1, 0x10}, {2, 0x00}, {1, 0x0f}, {1, 0xff}, {1, 0xfb},
{1, 0xff}, {1, 0xf8}, {1, 0x03}, {2, 0xff}, {1, 0xfe}, {1, 0xff}, {1, 0xe0}, {1, 0x01}, {1, 0x80},
{3, 0x00}, {1, 0x06}, {1, 0x00}, {1, 0x07}, {2, 0xff}, {1, 0xc0}, {1, 0x10}, {2, 0x00}, {1, 0x1f},
{1, 0xff}, {1, 0xfb}, {1, 0xff}, {1, 0xfc}, {1, 0x01}, {2, 0xff}, {1, 0xfe}, {1, 0xff}, {1, 0xe0},
{1, 0x07}, {4, 0x00}, {1, 0x01}, {1, 0x80}, {1, 0x07}, {2, 0xff}, {1, 0xe0}, {1, 0x10}, {2, 0x00},
{1, 0x0f}, {1, 0xff}, {1, 0xfb}, {1, 0xff}, {1, 0xfc}, {1, 0x01}, {1, 0xf8}, {1, 0x7f}, {1, 0xfe},
{1, 0xff}, {1, 0xe0}, {1, 0x0c}, {5, 0x00}, {1, 0xc0}, {1, 0x07}, {2, 0xff}, {1, 0xc0}, {1, 0x08},
{2, 0x00}, {1, 0x1f}, {1, 0xff}, {1, 0xfb}, {1, 0xff}, {1, 0xfe}, {1, 0x00}, {1, 0xe4}, {1, 0x3f},
{1, 0xfe}, {1, 0xff}, {1, 0xe0}, {1, 0x30}, {5, 0x00}, {1, 0x30}, {1, 0x07}, {2, 0xff}, {1, 0xc7},
{1, 0xd8}, {2, 0x00}, {1, 0x1f}, {1, 0xff}, {1, 0xfb}, {1, 0xff}, {1, 0xfe}, {1, 0x00}, {1, 0xc4},
{1, 0x1f}, {1, 0xfe}, {1, 0xff}, {1, 0xe0}, {1, 0x60}, {5, 0x00}, {1, 0x1c}, {1, 0x07}, {2, 0xff},
{1, 0xdf}, {1, 0xf8}, {2, 0x00}, {1, 0x1f}, {1, 0xff}, {1, 0xfb}, {2, 0xff}, {1, 0x00}, {1, 0x02},
{1, 0x1f}, {1, 0xfe}, {1, 0xff}, {1, 0xe1}, {1, 0x80}, {5, 0x00}, {1, 0x06}, {1, 0x07}, {3, 0xff},
{1, 0xfc}, {2, 0x00}, {1, 0x3f}, {1, 0xff}, {1, 0xfb}, {2, 0xff}, {1, 0x80}, {1, 0x01}, {1, 0x0f},
{1, 0xfe}, {1, 0xff}, {1, 0xe3}, {6, 0x00}, {1, 0x01}, {1, 0x87}, {3, 0xff}, {1, 0xfe}, {2, 0x00},
{1, 0x7f}, {1, 0xff}, {1, 0xfb}, {2, 0xff}, {1, 0xc0}, {1, 0x01}, {1, 0x87}, {1, 0xfe}, {1, 0xff},
{1, 0xec}, {7, 0x00}, {1, 0xc7}, {4, 0xff}, {2, 0x00}, {2, 0xff}, {1, 0xfb}, {2, 0xff}, {1, 0xc0},
{1, 0x00}, {1, 0x87}, {1, 0xfe}, {1, 0xff}, {1, 0xf0}, {7, 0x00}, {1, 0x37}, {4, 0xff}, {1, 0x80},
{1, 0x01}, {2, 0xff}, {1, 0xfb}, {2, 0xff}, {1, 0xe0}, {1, 0x00}, {1, 0x43}, {1, 0xfe}, {1, 0xff},
{1, 0xe0}, {7, 0x00}, {1, 0x1f}, {4, 0xff}, {1, 0xf0}, {1, 0x00}, {2, 0xff}, {1, 0xfb}, {2, 0xff},
{1, 0xf0}, {1, 0x00}, {1, 0x23}, {1, 0xfe}, {1, 0xff}, {1, 0xe0}, {7, 0x00}, {1, 0x07}, {5, 0xff},
{1, 0xfc}, {2, 0xff}, {1, 0xfb}, {2, 0xff}, {1, 0xf8}, {1, 0x00}, {1, 0x31}, {1, 0xfe}, {1, 0xff},
{1, 0xe0}, {7, 0x00}, {1, 0x0f}, {8, 0xff}, {1, 0xfb}, {2, 0xff}, {1, 0xfc}, {1, 0x00}, {1, 0x13},
{1, 0xfe}, {1, 0xff}, {1, 0xf0}, {7, 0x00}, {1, 0x0f}, {8, 0xff}, {1, 0xfb}, {2, 0xff}, {1, 0xfe},
{1, 0x00}, {1, 0x0f}, {1, 0xfe}, {1, 0xff}, {1, 0xf8}, {7, 0x00}, {1, 0x1f}, {8, 0xff}, {1, 0xfb},
{3, 0xff}, {1, 0x00}, {1, 0x0f}, {1, 0xfe}, {1, 0xff}, {1, 0xfc}, {7, 0x00}, {1, 0x7f}, {8, 0xff},
{1, 0xfb}, {3, 0xff}, {1, 0xc0}, {1, 0x1f}, {1, 0xfe}, {18, 0xff}, {1, 0xfb}, {3, 0xff}, {1, 0xe0},
{1, 0x7f}, {1, 0xfe}, {18, 0xff}, {1, 0xf9}, {3, 0xff}, {1, 0xfd}, {1, 0xff}, {1, 0xfc}, {18, 0xff},
{1, 0xfc}, {5, 0x00}, {1, 0x01}, {201, 0xff},
}),
std::to_array<std::pair<std::uint8_t, std::uint8_t>>({
{8, 0xff}, {1, 0xcf}, {24, 0xff}, {1, 0xcf}, {24, 0xff}, {1, 0xcf}, {24, 0xff}, {1, 0xcf}, {24, 0xff},
{1, 0xcf}, {1, 0xff}, {1, 0x9f}, {22, 0xff}, {1, 0xcf}, {1, 0xff}, {1, 0x9f}, {22, 0xff}, {1, 0xcf},
{1, 0xff}, {1, 0x9f}, {22, 0xff}, {1, 0xce}, {1, 0x3f}, {1, 0xff}, {1, 0xe7}, {21, 0xff}, {1, 0xcf},
{1, 0x1f}, {1, 0x9f}, {1, 0xcf}, {21, 0xff}, {1, 0xcf}, {1, 0xbc}, {1, 0x03}, {1, 0xcf}, {21, 0xff},
{1, 0xcf}, {1, 0xf8}, {1, 0x00}, {22, 0xff}, {1, 0xcf}, {1, 0xf0}, {1, 0x00}, {1, 0x7f}, {21, 0xff},
{1, 0xcf}, {1, 0xe0}, {1, 0x00}, {1, 0x3f}, {21, 0xff}, {1, 0xcf}, {1, 0xc0}, {1, 0x00}, {1, 0x3f},
{21, 0xff}, {1, 0xcf}, {1, 0xc0}, {1, 0x00}, {1, 0x1f}, {21, 0xff}, {1, 0xcf}, {1, 0xc0}, {1, 0x00},
{1, 0x1f}, {21, 0xff}, {1, 0xc8}, {1, 0x80}, {1, 0x00}, {1, 0x19}, {21, 0xff}, {1, 0xc8}, {1, 0x80},
{1, 0x00}, {1, 0x10}, {21, 0xff}, {1, 0xcf}, {1, 0x80}, {1, 0x00}, {1, 0x1f}, {21, 0xff}, {1, 0xcf},
{1, 0xc0}, {1, 0x00}, {1, 0x1f}, {21, 0xff}, {1, 0xcf}, {1, 0xc0}, {1, 0x00}, {1, 0x3f}, {21, 0xff},
{1, 0xcf}, {1, 0xc0}, {1, 0x00}, {1, 0x3f}, {21, 0xff}, {1, 0xcf}, {1, 0xe0}, {1, 0x00}, {1, 0x7f},
{21, 0xff}, {1, 0xcf}, {1, 0xf0}, {1, 0x00}, {1, 0x7f}, {21, 0xff}, {1, 0xcf}, {1, 0xf8}, {1, 0x01},
{22, 0xff}, {1, 0xcf}, {1, 0xbe}, {1, 0x03}, {1, 0xcf}, {21, 0xff}, {1, 0xcf}, {1, 0x1f}, {1, 0xff},
{1, 0xc7}, {21, 0xff}, {1, 0xcf}, {1, 0x3f}, {1, 0xff}, {1, 0xe7}, {21, 0xff}, {1, 0xcf}, {1, 0xff},
{1, 0x9f}, {22, 0xff}, {1, 0xcf}, {1, 0xff}, {1, 0x9f}, {22, 0xff}, {1, 0xcf}, {1, 0xff}, {1, 0x9f},
{22, 0xff}, {1, 0xcf}, {24, 0xff}, {1, 0xcf}, {24, 0xff}, {1, 0xcf}, {24, 0xff}, {1, 0xcf}, {24, 0xff},
{1, 0xcf}, {24, 0xff}, {1, 0xcf}, {24, 0xff}, {1, 0xcf}, {24, 0xff}, {1, 0xcf}, {8, 0xff}, {1, 0x87},
{15, 0xff}, {1, 0xcf}, {1, 0xff}, {1, 0xfc}, {1, 0x07}, {5, 0xff}, {1, 0x87}, {15, 0xff}, {1, 0xcf},
{1, 0xff}, {1, 0xf0}, {1, 0x03}, {5, 0xff}, {1, 0x87}, {15, 0xff}, {1, 0xcf}, {1, 0xff}, {1, 0xf0},
{1, 0x03}, {5, 0xff}, {1, 0x87}, {15, 0xff}, {1, 0xcf}, {1, 0xff}, {1, 0xe0}, {1, 0xfb}, {5, 0xff},
{1, 0x87}, {15, 0xff}, {1, 0xcf}, {1, 0xff}, {1, 0xe1}, {1, 0xff}, {2, 0xe1}, {1, 0xc2}, {1, 0x0f},
{1, 0xf0}, {1, 0x07}, {1, 0x80}, {1, 0x7c}, {1, 0x7f}, {1, 0x1f}, {11, 0xff}, {1, 0xcf}, {1, 0xff},
{1, 0xe1}, {1, 0xff}, {2, 0xe1}, {1, 0xc0}, {1, 0x07}, {1, 0xc0}, {1, 0x07}, {1, 0x00}, {1, 0x3c},
{1, 0x3e}, {1, 0x1f}, {11, 0xff}, {1, 0xcf}, {1, 0xff}, {1, 0xe0}, {1, 0x7f}, {2, 0xe1}, {1, 0xc0},
{1, 0x03}, {1, 0x80}, {1, 0x07}, {1, 0x00}, {1, 0x1c}, {1, 0x3e}, {1, 0x3f}, {11, 0xff}, {1, 0xcf},
{1, 0xff}, {1, 0xf0}, {1, 0x0f}, {2, 0xe1}, {1, 0xc1}, {1, 0xc3}, {2, 0x87}, {1, 0x7e}, {1, 0x1e},
{1, 0x3e}, {1, 0x3f}, {11, 0xff}, {1, 0xcf}, {1, 0xff}, {1, 0xf8}, {1, 0x03}, {2, 0xe1}, {1, 0xc1},
{1, 0xc3}, {1, 0x0f}, {1, 0x87}, {1, 0xfe}, {1, 0x1e}, {1, 0x1c}, {1, 0x3f}, {11, 0xff}, {1, 0xcf},
{1, 0xff}, {1, 0xfe}, {1, 0x03}, {2, 0xe1}, {2, 0xc3}, {1, 0x0f}, {1, 0x87}, {1, 0xc0}, {1, 0x1f},
{1, 0x1c}, {1, 0x7f}, {11, 0xff}, {1, 0xcf}, {2, 0xff}, {1, 0xc1}, {2, 0xe1}, {2, 0xc3}, {1, 0x0f},
{1, 0x87}, {1, 0x00}, {1, 0x1f}, {1, 0x1c}, {1, 0x7f}, {11, 0xff}, {1, 0xcf}, {2, 0xff}, {3, 0xe1},
{2, 0xc3}, {1, 0x0f}, {1, 0x86}, {1, 0x0e}, {1, 0x1f}, {1, 0x08}, {12, 0xff}, {1, 0xcf}, {2, 0xff},
{2, 0xe1}, {1, 0xc1}, {2, 0xc3}, {1, 0x0f}, {1, 0x86}, {1, 0x1e}, {1, 0x1f}, {1, 0x88}, {12, 0xff},
{1, 0xcf}, {1, 0xff}, {1, 0xe7}, {1, 0xc1}, {1, 0xe1}, {1, 0xc1}, {2, 0xc3}, {1, 0x07}, {1, 0x06},
{1, 0x1c}, {1, 0x1f}, {1, 0x88}, {12, 0xff}, {1, 0xcf}, {1, 0xff}, {1, 0xe0}, {1, 0x03}, {1, 0xe0},
{1, 0x01}, {2, 0xc3}, {1, 0x80}, {1, 0x06}, {1, 0x00}, {1, 0x1f}, {1, 0xc1}, {12, 0xff}, {1, 0xcf},
{1, 0xff}, {1, 0xe0}, {1, 0x07}, {1, 0xf0}, {1, 0x01}, {2, 0xc3}, {1, 0x80}, {1, 0x07}, {1, 0x00},
{1, 0x1f}, {1, 0xc1}, {12, 0xff}, {1, 0xcf}, {1, 0xff}, {1, 0xf0}, {1, 0x1f}, {1, 0xf8}, {1, 0x61},
{2, 0xc3}, {1, 0xe1}, {1, 0x87}, {1, 0x82}, {1, 0x1f}, {1, 0xc3}, {12, 0xff}, {1, 0xcf}, {11, 0xff},
{1, 0xc3}, {12, 0xff}, {1, 0xcf}, {11, 0xff}, {1, 0x87}, {12, 0xff}, {1, 0xcf}, {10, 0xff}, {1, 0xf8},
{1, 0x0f}, {12, 0xff}, {1, 0xcf}, {10, 0xff}, {1, 0xf8}, {1, 0x1f}, {12, 0xff}, {1, 0xcf}, {10, 0xff},
{1, 0xf8}, {1, 0x3f}, {12, 0xff}, {1, 0xcf}, {24, 0xff}, {1, 0xcf}, {24, 0xff}, {1, 0xcf}, {24, 0xff},
{1, 0xcf}, {16, 0xff}, {75, 0x00}, {16, 0xff}, {1, 0xf3}, {24, 0xff}, {1, 0xf3}, {24, 0xff}, {1, 0xf3},
{24, 0xff}, {1, 0xf3}, {24, 0xff}, {1, 0xf3}, {24, 0xff}, {1, 0xf3}, {24, 0xff}, {1, 0xf3}, {24, 0xff},
{1, 0xf3}, {24, 0xff}, {1, 0xf3}, {24, 0xff}, {1, 0xf3}, {24, 0xff}, {1, 0xf3}, {24, 0xff}, {1, 0xf3},
{1, 0xff}, {1, 0x87}, {1, 0xf0}, {21, 0xff}, {1, 0xf3}, {1, 0xff}, {1, 0x83}, {1, 0xf0}, {21, 0xff},
{1, 0xf3}, {1, 0xff}, {1, 0x83}, {1, 0xf0}, {21, 0xff}, {1, 0xf3}, {1, 0xff}, {1, 0x83}, {1, 0xe0},
{21, 0xff}, {1, 0xf3}, {1, 0xff}, {1, 0x81}, {1, 0xe0}, {1, 0xf8}, {1, 0x0f}, {2, 0x1f}, {17, 0xff},
{1, 0xf3}, {1, 0xff}, {1, 0x81}, {1, 0xe0}, {1, 0xf0}, {1, 0x07}, {2, 0x1f}, {17, 0xff}, {1, 0xf3},
{1, 0xff}, {1, 0x89}, {1, 0xc0}, {1, 0xf1}, {1, 0x87}, {1, 0x0f}, {1, 0x1f}, {17, 0xff}, {1, 0xf3},
{1, 0xff}, {1, 0x88}, {1, 0xc8}, {1, 0xff}, {1, 0xc7}, {1, 0x8e}, {1, 0x3f}, {17, 0xff}, {1, 0xf3},
{1, 0xff}, {2, 0x88}, {1, 0xff}, {1, 0x83}, {1, 0x8e}, {1, 0x3f}, {17, 0xff}, {1, 0xf3}, {1, 0xff},
{1, 0x8c}, {1, 0x88}, {1, 0xf8}, {1, 0x03}, {1, 0xc6}, {1, 0x3f}, {17, 0xff}, {1, 0xf3}, {1, 0xff},
{1, 0x8c}, {1, 0x18}, {1, 0xf0}, {1, 0x43}, {1, 0xc4}, {1, 0x7f}, {17, 0xff}, {1, 0xf3}, {1, 0xff},
{1, 0x8e}, {1, 0x18}, {1, 0xe1}, {1, 0xc3}, {1, 0xc4}, {1, 0x7f}, {17, 0xff}, {1, 0xf3}, {1, 0xff},
{1, 0x8e}, {1, 0x38}, {1, 0xe3}, {1, 0xc3}, {1, 0xe4}, {1, 0x7f}, {17, 0xff}, {1, 0xf3}, {1, 0xff},
{1, 0x8e}, {1, 0x38}, {1, 0xe1}, {1, 0x83}, {1, 0xe0}, {18, 0xff}, {1, 0xf3}, {1, 0xff}, {1, 0x8f},
{1, 0x38}, {1, 0xf0}, {1, 0x03}, {1, 0xf0}, {18, 0xff}, {1, 0xf3}, {1, 0xff}, {1, 0x8f}, {1, 0xf8},
{1, 0xf0}, {1, 0x23}, {1, 0xf1}, {18, 0xff}, {1, 0xf3}, {3, 0xff}, {1, 0xfc}, {1, 0xff}, {1, 0xf1},
{18, 0xff}, {1, 0xf3}, {5, 0xff}, {1, 0xf1}, {18, 0xff}, {1, 0xf3}, {5, 0xff}, {1, 0xc3}, {18, 0xff},
{1, 0xf3}, {5, 0xff}, {1, 0x83}, {18, 0xff}, {1, 0xf3}, {4, 0xff}, {2, 0x0f}, {18, 0xff}, {1, 0xf3},
{4, 0xff}, {1, 0x0f}, {19, 0xff}, {1, 0xf3}, {1, 0xff}, {1, 0x80}, {1, 0x07}, {1, 0x1f}, {1, 0x0f},
{19, 0xff}, {1, 0xf3}, {1, 0xff}, {1, 0x80}, {1, 0x07}, {1, 0x1f}, {1, 0x0f}, {19, 0xff}, {1, 0xf3},
{1, 0xff}, {1, 0x80}, {1, 0x07}, {1, 0x1f}, {1, 0x0f}, {19, 0xff}, {1, 0xf3}, {2, 0xff}, {1, 0x84},
{1, 0x03}, {1, 0x18}, {1, 0x7f}, {18, 0xff}, {1, 0xf3}, {2, 0xff}, {1, 0x8c}, {1, 0x03}, {1, 0x00},
{1, 0x3f}, {18, 0xff}, {1, 0xf3}, {2, 0xff}, {1, 0x0c}, {1, 0x03}, {1, 0x00}, {1, 0x1f}, {18, 0xff},
{1, 0xf3}, {2, 0xff}, {2, 0x1f}, {1, 0x0f}, {1, 0x1f}, {18, 0xff}, {1, 0xf3}, {1, 0xff}, {1, 0xfe},
{2, 0x1f}, {1, 0x0f}, {1, 0x1f}, {18, 0xff}, {1, 0xf3}, {1, 0xff}, {1, 0xfe}, {1, 0x3f}, {1, 0x1f},
{1, 0x0f}, {1, 0x1f}, {18, 0xff}, {1, 0xf3}, {1, 0xff}, {1, 0xfc}, {1, 0x3f}, {1, 0x1f}, {1, 0x0f},
{1, 0x1f}, {18, 0xff}, {1, 0xf3}, {1, 0xff}, {1, 0xfc}, {1, 0x7e}, {1, 0x1f}, {1, 0x0f}, {1, 0x1f},
{18, 0xff}, {1, 0xf3}, {1, 0xff}, {1, 0xf8}, {1, 0x7f}, {1, 0x1f}, {1, 0x0f}, {1, 0x1f}, {18, 0xff},
{1, 0xf3}, {1, 0xff}, {1, 0xf8}, {1, 0xff}, {1, 0x1f}, {1, 0x0f}, {1, 0x1f}, {18, 0xff}, {1, 0xf3},
{1, 0xff}, {1, 0xf0}, {1, 0xff}, {1, 0x03}, {1, 0x0f}, {1, 0x1f}, {18, 0xff}, {1, 0xf3}, {1, 0xff},
{1, 0xf1}, {1, 0xff}, {1, 0x03}, {1, 0x0f}, {1, 0x1f}, {18, 0xff}, {1, 0xf3}, {1, 0xff}, {1, 0xe1},
{1, 0xff}, {1, 0xc3}, {1, 0x9f}, {1, 0x1f}, {18, 0xff}, {1, 0xf3}, {1, 0xff}, {1, 0xe3}, {22, 0xff},
{1, 0xf3}, {24, 0xff}, {1, 0xf3}, {24, 0xff}, {1, 0xf3}, {24, 0xff}, {1, 0xf3}, {24, 0xff}, {1, 0xf3},
{24, 0xff}, {1, 0xf3}, {24, 0xff}, {1, 0xf3}, {24, 0xff}, {1, 0xf3}, {24, 0xff}, {1, 0xf3}, {24, 0xff},
{1, 0xf3}, {24, 0xff}, {1, 0xf3}, {24, 0xff}, {1, 0xf3}, {24, 0xff}, {1, 0xf3}, {24, 0xff}, {1, 0xf3},
{8, 0xff}, {75, 0x00}, {98, 0xff}, {1, 0x81}, {23, 0xff}, {1, 0xfe}, {1, 0x00}, {1, 0x7f}, {22, 0xff},
{1, 0xfc}, {1, 0x00}, {1, 0x1f}, {22, 0xff}, {1, 0xf8}, {1, 0x00}, {1, 0x0f}, {22, 0xff}, {1, 0xf8},
{1, 0x3e}, {1, 0x0f}, {22, 0xff}, {1, 0xf0}, {1, 0x7f}, {1, 0x07}, {22, 0xff}, {1, 0xf0}, {1, 0x23},
{1, 0x07}, {22, 0xff}, {1, 0xe0}, {1, 0x03}, {1, 0x07}, {22, 0xff}, {1, 0xe0}, {2, 0x07}, {22, 0xff},
{1, 0xe0}, {1, 0x06}, {1, 0x07}, {22, 0xff}, {1, 0xe0}, {1, 0x1c}, {1, 0x07}, {22, 0xff}, {1, 0xf0},
{1, 0x38}, {1, 0x07}, {22, 0xff}, {1, 0xf0}, {1, 0x7f}, {1, 0x07}, {22, 0xff}, {1, 0xf0}, {1, 0x7f},
{1, 0x0f}, {22, 0xff}, {1, 0xf8}, {1, 0x00}, {1, 0x0f}, {22, 0xff}, {1, 0xfc}, {1, 0x00}, {1, 0x1f},
{22, 0xff}, {1, 0xfe}, {1, 0x00}, {1, 0x3f}, {23, 0xff}, {1, 0x81}, {255, 0xff}, {255, 0xff}, {255, 0xff},
{255, 0xff}, {81, 0xff},
}),
}};

Submodule eink/io updated: bf94ebaac1...5407e94337

View File

@@ -1,449 +1,274 @@
#include "clock.hpp" #include "clock.hpp"
#include <array> #include <array>
#include <type_traits>
#include <cstdint>
#include <cstring>
#include "eink/eink.hpp" #include "eink/eink.hpp"
#include "flash/flash.hpp" #include "flash/flash.hpp"
#include "io/io.hpp" #include "io/io.hpp"
#include "spi/spi.hpp"
#include "uart/uart.hpp" #include "uart/uart.hpp"
using uart_t = uart::Uart0<>; #include "image.hpp"
using uart_t = uart::Uart0<uart::Config<115200>>;
REGISTER_UART0_INT_VECTORS(uart_t); REGISTER_UART0_INT_VECTORS(uart_t);
////////////////////////////////////////////////////////////////////////// using spi_t = eink::Spi<io::P::C4, io::P::C5, io::P::C3, io::P::C2>;
using eink_t = eink::Eink<200, 200, spi_t, io::P::C1, io::P::C0>;
constexpr auto IMAGE [[gnu::progmem]] = std::to_array<uint8_t>({ using eink::Voltage::VSH1;
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, 0x79, 0x79, using eink::Voltage::VSH2;
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, using eink::Voltage::VSL1;
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, using eink::Voltage::VSS1;
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x85, 0x79, constexpr auto
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, ORIGINAL_WAVEFORM_LUT =
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, flash::Wrapper<eink::Waveform>{
0x85, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, eink::Waveform{
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .lut = {{{
0x79, 0x79, 0x85, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {.phaseD = VSH1, .phaseC = VSH1, .phaseB = VSS1, .phaseA = VSH1},
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {.phaseD = VSL1, .phaseC = VSL1, .phaseB = VSH1, .phaseA = VSL1},
0x79, 0x79, 0x79, 0x79, 0x85, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {.phaseD = VSL1, .phaseC = VSH1, .phaseB = VSL1, .phaseA = VSH1},
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {.phaseD = VSL1, .phaseC = VSL1, .phaseB = VSL1, .phaseA = VSH1},
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x85, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSL1, .phaseA = VSH1},
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {.phaseD = VSL1, .phaseC = VSL1, .phaseB = VSH1, .phaseA = VSL1},
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x85, 0xa0, 0x79, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, 0x79, 0x79, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSH1, .phaseA = VSL1},
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSH1, .phaseA = VSL1},
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x85, 0xee, 0x79, 0x85, 0x79, 0x7d, 0x79, 0x79, 0x79, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSS1, .phaseA = VSH1},
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSS1, .phaseA = VSS1},
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x85, 0x94, 0xe5, 0xf2, 0x7a, 0x7d, 0x79, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSH1, .phaseA = VSS1},
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSS1, .phaseA = VSH1},
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x85, 0x79, 0xee, 0xf2, 0x86, }},
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, 0x79, {{
0x79, 0x79, 0x79, 0x79, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x79, 0x79, 0x79, 0x79, 0x79, 0x85, 0x79, 0xf1, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSH1, .phaseA = VSH1},
0xf2, 0xa1, 0x79, 0x79, 0x0d, 0x51, 0x79, 0x01, 0x75, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, 0x75, 0x28, 0x00, 0x79, {.phaseD = VSS1, .phaseC = VSL1, .phaseB = VSH1, .phaseA = VSL1},
0x00, 0x78, 0x04, 0x51, 0x79, 0x79, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x79, 0x79, 0x79, 0x79, 0x85, {.phaseD = VSL1, .phaseC = VSH1, .phaseB = VSL1, .phaseA = VSH1},
0x79, 0xf2, 0xf2, 0xf2, 0x79, 0x79, 0x01, 0x00, 0x28, 0x00, 0x6c, 0x79, 0x79, 0x79, 0x79, 0x28, 0x00, 0x6c, 0x0d, {.phaseD = VSS1, .phaseC = VSH1, .phaseB = VSL1, .phaseA = VSH1},
0x00, 0x78, 0x24, 0x78, 0x00, 0x00, 0x79, 0x79, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x79, 0x79, 0x79, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSL1, .phaseA = VSH1},
0x79, 0x85, 0xca, 0xf2, 0xf2, 0xf2, 0x79, 0x79, 0x52, 0x04, 0x78, 0x75, 0x51, 0x79, 0x79, 0x79, 0x79, 0x28, 0x75, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSH1, .phaseA = VSL1},
0x51, 0x04, 0x0c, 0x24, 0x78, 0x24, 0x00, 0x52, 0x79, 0x79, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, {.phaseD = VSS1, .phaseC = VSL1, .phaseB = VSS1, .phaseA = VSS1},
0x79, 0x79, 0x79, 0x85, 0xca, 0xf2, 0xf2, 0xf2, 0x7a, 0x79, 0x70, 0x0d, 0x78, 0x79, 0x52, 0x79, 0x79, 0x79, 0x79, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSS1, .phaseA = VSS1},
0x79, 0x78, 0x52, 0x04, 0x28, 0x75, 0x78, 0x27, 0x6c, 0x5e, 0x79, 0x79, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSL1, .phaseA = VSS1},
0x00, 0x75, 0x79, 0x79, 0x79, 0x85, 0xca, 0xf2, 0xf2, 0xf2, 0x7a, 0x79, 0x79, 0x0d, 0x78, 0x79, 0x52, 0x79, 0x70, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSS1, .phaseA = VSS1},
0x79, 0x79, 0x79, 0x79, 0x52, 0x04, 0x28, 0x75, 0x00, 0x0c, 0x75, 0x79, 0x79, 0x79, 0x79, 0x00, 0x00, 0x00, 0x00, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSS1, .phaseA = VSS1},
0x00, 0x6c, 0x00, 0x6c, 0x79, 0x79, 0x79, 0xd6, 0xe9, 0xf2, 0xf2, 0xf2, 0xe6, 0x79, 0x79, 0x0d, 0x78, 0x79, 0x52, {.phaseD = VSL1, .phaseC = VSS1, .phaseB = VSS1, .phaseA = VSS1},
0x28, 0x00, 0x78, 0x79, 0x79, 0x79, 0x52, 0x04, 0x79, 0x6c, 0x01, 0x0d, 0x78, 0x79, 0x79, 0x79, 0x79, 0x00, 0x00, }},
0x00, 0x00, 0x00, 0x75, 0x00, 0x51, 0x79, 0x79, 0x79, 0xd6, 0xe9, 0xf2, 0xf2, 0xf2, 0xef, 0x7a, 0x79, 0x0d, 0x78, {{
0x28, 0x6c, 0x0d, 0x00, 0x6c, 0x28, 0x78, 0x79, 0x52, 0x04, 0x79, 0x6c, 0x79, 0x0d, 0x78, 0x79, 0x79, 0x79, 0x79, {.phaseD = VSL1, .phaseC = VSL1, .phaseB = VSS1, .phaseA = VSS1},
0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x79, 0x79, 0x79, 0x85, 0xe5, 0xf2, 0xf2, 0xf2, 0x7a, 0x79, 0x79, {.phaseD = VSL1, .phaseC = VSL1, .phaseB = VSH1, .phaseA = VSL1},
0x04, 0x78, 0x04, 0x75, 0x04, 0x24, 0x51, 0x0d, 0x75, 0x79, 0x6c, 0x04, 0x0c, 0x6c, 0x79, 0x0d, 0x78, 0x79, 0x79, {.phaseD = VSL1, .phaseC = VSH1, .phaseB = VSL1, .phaseA = VSH1},
0x79, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x78, 0x79, 0x79, 0x85, 0xca, 0xf2, 0xf2, 0xf2, 0x7a, {.phaseD = VSH1, .phaseC = VSH1, .phaseB = VSL1, .phaseA = VSH1},
0x79, 0x79, 0x04, 0x79, 0x04, 0x6c, 0x04, 0x79, 0x01, 0x03, 0x78, 0x28, 0x6c, 0x0d, 0x00, 0x6c, 0x79, 0x0d, 0x78, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSL1, .phaseA = VSH1},
0x79, 0x79, 0x79, 0x79, 0x00, 0x00, 0x00, 0x00, 0x51, 0x79, 0x00, 0x00, 0x75, 0x79, 0x79, 0x85, 0xca, 0xf2, 0xf2, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSH1, .phaseA = VSL1},
0xf2, 0x79, 0x79, 0x79, 0x52, 0x79, 0x79, 0x51, 0x5e, 0x79, 0x04, 0x00, 0x79, 0x28, 0x75, 0x28, 0x51, 0x6c, 0x79, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSS1, .phaseA = VSS1},
0x0d, 0x78, 0x79, 0x79, 0x79, 0x79, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x79, 0x00, 0x00, 0x75, 0x79, 0x79, 0x85, 0xca, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSS1, .phaseA = VSS1},
0xf2, 0xf2, 0xf2, 0x79, 0x79, 0x79, 0x51, 0x79, 0x79, 0x01, 0x79, 0x79, 0x0d, 0x51, 0x79, 0x0d, 0x75, 0x79, 0x79, {.phaseD = VSH2, .phaseC = VSL1, .phaseB = VSL1, .phaseA = VSS1},
0x6c, 0x79, 0x0d, 0x78, 0x79, 0x79, 0x79, 0x79, 0x00, 0x00, 0x00, 0x00, 0x51, 0x79, 0x00, 0x00, 0x6c, 0x79, 0x79, {.phaseD = VSH2, .phaseC = VSS1, .phaseB = VSL1, .phaseA = VSL1},
0x85, 0x79, 0xf2, 0xf2, 0xa1, 0x79, 0x79, 0x28, 0x6c, 0x79, 0x79, 0x04, 0x79, 0x79, 0x79, 0x79, 0x79, 0x04, 0x78, {.phaseD = VSH2, .phaseC = VSH2, .phaseB = VSH2, .phaseA = VSL1},
0x79, 0x28, 0x75, 0x79, 0x0d, 0x75, 0x79, 0x79, 0x79, 0x79, 0x6c, 0x28, 0x51, 0x04, 0x6c, 0x79, 0x6c, 0x01, 0x6c, {.phaseD = VSS1, .phaseC = VSH2, .phaseB = VSH2, .phaseA = VSH2},
0x79, 0x79, 0x85, 0x79, 0xf1, 0xf2, 0xa1, 0x79, 0x79, 0x0d, 0x75, 0x79, 0x78, 0x01, 0x79, 0x79, 0x79, 0x79, 0x79, }},
0x01, 0x79, 0x79, 0x28, 0x75, 0x79, 0x28, 0x6c, 0x5e, 0x79, 0x79, 0x79, 0x6c, 0x28, 0x6c, 0x0d, 0x6c, 0x5e, 0x75, {{
0x04, 0x51, 0x79, 0x79, 0x85, 0x79, 0xee, 0xf2, 0x7d, 0x79, 0x79, 0x04, 0x0c, 0x24, 0x75, 0x51, 0x79, 0x79, 0x79, {.phaseD = VSL1, .phaseC = VSL1, .phaseB = VSS1, .phaseA = VSS1},
0x79, 0x79, 0x51, 0x52, 0x0d, 0x0d, 0x75, 0x79, 0x28, 0x51, 0x04, 0x79, 0x79, 0x79, 0x51, 0x28, 0x6c, 0x0d, 0x6c, {.phaseD = VSL1, .phaseC = VSL1, .phaseB = VSH1, .phaseA = VSL1},
0x0d, 0x75, 0x04, 0x51, 0x79, 0x79, 0x85, 0x94, 0xca, 0xf2, 0x7a, 0x7d, 0x79, 0x01, 0x00, 0x24, 0x00, 0x51, 0x79, {.phaseD = VSL1, .phaseC = VSH1, .phaseB = VSL1, .phaseA = VSH1},
0x79, 0x79, 0x79, 0x28, 0x00, 0x00, 0x04, 0x00, 0x78, 0x79, 0x79, 0x00, 0x00, 0x79, 0x79, 0x79, 0x51, 0x79, 0x6c, {.phaseD = VSH1, .phaseC = VSH1, .phaseB = VSL1, .phaseA = VSH1},
0x28, 0x75, 0x04, 0x75, 0x0d, 0x51, 0x79, 0x79, 0x85, 0xee, 0x79, 0x79, 0x79, 0x86, 0x79, 0x01, 0x00, 0x75, 0x00, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSL1, .phaseA = VSH1},
0x6c, 0x79, 0x79, 0x79, 0x79, 0x28, 0x00, 0x00, 0x0d, 0x00, 0x79, 0x79, 0x79, 0x01, 0x51, 0x79, 0x79, 0x79, 0x51, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSH1, .phaseA = VSL1},
0x79, 0x75, 0x28, 0x75, 0x04, 0x78, 0x0d, 0x00, 0x79, 0x79, 0x85, 0x9d, 0x79, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSS1, .phaseA = VSS1},
0x79, 0x0d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x6c, 0x79, 0x79, 0x79, 0x28, 0x78, 0x79, 0x79, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSS1, .phaseA = VSS1},
0x79, 0x00, 0x79, 0x75, 0x28, 0x78, 0x04, 0x78, 0x28, 0x00, 0x79, 0x79, 0x85, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, {.phaseD = VSH2, .phaseC = VSL1, .phaseB = VSL1, .phaseA = VSS1},
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {.phaseD = VSH2, .phaseC = VSS1, .phaseB = VSL1, .phaseA = VSL1},
0x79, 0x79, 0x79, 0x00, 0x79, 0x76, 0x79, 0x78, 0x01, 0x79, 0x28, 0x00, 0x79, 0x79, 0x85, 0x79, 0x79, 0x85, 0x79, {.phaseD = VSH2, .phaseC = VSH2, .phaseB = VSH2, .phaseA = VSL1},
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {.phaseD = VSS1, .phaseC = VSH2, .phaseB = VSH2, .phaseA = VSH2},
0x79, 0x79, 0x79, 0x79, 0x79, 0x00, 0x79, 0x79, 0x79, 0x79, 0x01, 0x79, 0x79, 0x00, 0x79, 0x79, 0x85, 0x79, 0x79, }},
0x85, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {{
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x00, 0x78, 0x79, 0x79, 0x79, 0x5d, 0x79, 0x79, 0x00, 0x79, 0x79, 0x85, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSS1, .phaseA = VSS1},
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSL1, .phaseA = VSH1},
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x00, 0x78, 0x79, 0x78, 0x79, 0x51, 0x28, 0x79, 0x01, 0x79, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSS1, .phaseA = VSS1},
0x79, 0x85, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSS1, .phaseA = VSS1},
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x00, 0x78, 0x28, 0x78, 0x28, 0x70, 0x28, 0x78, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSS1, .phaseA = VSS1},
0x01, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSS1, .phaseA = VSS1},
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x00, 0x78, 0x28, 0x78, 0x28, 0x76, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSS1, .phaseA = VSS1},
0x0d, 0x78, 0x04, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSS1, .phaseA = VSS1},
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x00, 0x75, 0x28, 0x75, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSS1, .phaseA = VSS1},
0x28, 0x76, 0x0d, 0x75, 0x04, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSS1, .phaseA = VSS1},
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, 0x75, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSS1, .phaseA = VSS1},
0x0d, 0x75, 0x0d, 0x79, 0x0d, 0x75, 0x04, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {.phaseD = VSS1, .phaseC = VSS1, .phaseB = VSS1, .phaseA = VSS1},
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, }}},
0x01, 0x6c, 0x0d, 0x75, 0x0d, 0x78, 0x04, 0x78, 0x01, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .timings =
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {
0x79, 0x79, 0x01, 0x6c, 0x0d, 0x6c, 0x04, 0x78, 0x04, 0x78, 0x01, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, 0x79, 0x79, {
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0xee, 0x7a, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseA = 32,
0x79, 0x79, 0x79, 0x79, 0x01, 0x6c, 0x04, 0x6c, 0x04, 0x78, 0x01, 0x79, 0x00, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, .frameCountPhaseB = 16,
0xf1, 0x86, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0xee, 0x7a, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .repeatSubPhaseAB = 0,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x04, 0x51, 0x04, 0x51, 0x01, 0x75, 0x01, 0x79, 0x00, 0x79, 0x79, 0x85, 0x79, .frameCountPhaseC = 19,
0x79, 0xca, 0xf2, 0xa1, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0xee, 0x7a, 0x79, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseD = 20,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x28, 0x00, 0x79, 0x79, .repeatSubPhaseCD = 0,
0x85, 0x79, 0x79, 0xca, 0xf2, 0xa1, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0xee, 0x7a, 0x79, 0x79, 0x79, .repeat = 0,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x28, 0x00, },
0x79, 0x79, 0x85, 0x79, 0x79, 0xe5, 0x86, 0x94, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0xee, 0x7a, 0x79, {
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, .frameCountPhaseA = 3,
0x28, 0x00, 0x79, 0x79, 0x85, 0x79, 0x79, 0xe5, 0x7d, 0x79, 0xca, 0x86, 0xee, 0xcb, 0xd7, 0xa1, 0x79, 0xee, 0xf2, .frameCountPhaseB = 3,
0x7a, 0xf2, 0x86, 0xe5, 0x7a, 0xe5, 0x7a, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x0d, 0x00, 0x00, 0x00, 0x00, .repeatSubPhaseAB = 6,
0x00, 0x6c, 0x28, 0x00, 0x79, 0x79, 0x85, 0x79, 0x79, 0xe5, 0x7d, 0x79, 0xca, 0x86, 0xee, 0xcb, 0xf2, 0xf2, 0x79, .frameCountPhaseC = 12,
0xf2, 0xf2, 0xcb, 0xf2, 0xa1, 0xe5, 0x7d, 0xee, 0x7a, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x28, 0x00, 0x00, .frameCountPhaseD = 10,
0x00, 0x00, 0x00, 0x6c, 0x0d, 0x00, 0x79, 0x79, 0x85, 0x79, 0x79, 0xe5, 0xa1, 0x79, 0xca, 0x86, 0xee, 0xcb, 0xf2, .repeatSubPhaseCD = 0,
0xf2, 0xcb, 0xf2, 0xf2, 0xcb, 0xf2, 0xf2, 0xe5, 0x7d, 0xee, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .repeat = 0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x04, 0x00, 0x79, 0x79, 0x85, 0x79, 0x79, 0xca, 0xf2, 0x7d, 0xca, 0x86, 0xee, },
0xcb, 0xa1, 0xee, 0xcb, 0x86, 0xee, 0xcb, 0x79, 0xf1, 0xca, 0x7d, 0xee, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {
0x79, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x01, 0x00, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, 0xf2, 0xa1, 0xca, .frameCountPhaseA = 3,
0x86, 0xee, 0xcb, 0xa1, 0xee, 0xe6, 0x7d, 0xee, 0x7a, 0x79, 0xf1, 0xca, 0x86, 0xf1, 0x79, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseB = 4,
0x79, 0x79, 0x79, 0x79, 0x01, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, 0xee, .repeatSubPhaseAB = 0,
0xa1, 0xca, 0x86, 0xee, 0xcb, 0x86, 0xee, 0xe6, 0x7d, 0xee, 0x7a, 0xf1, 0xf2, 0x79, 0x86, 0xa0, 0x79, 0x79, 0x79, .frameCountPhaseC = 3,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x79, 0x85, 0x79, 0x79, .frameCountPhaseD = 4,
0x79, 0x79, 0xf2, 0xca, 0x86, 0xee, 0xcb, 0x86, 0xee, 0xe6, 0x7d, 0xee, 0xcb, 0xf2, 0xf2, 0x79, 0x86, 0xa0, 0x79, .repeatSubPhaseCD = 0,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x79, 0x85, .repeat = 10,
0x79, 0x79, 0x79, 0x79, 0xf1, 0xca, 0x86, 0xee, 0xcb, 0x86, 0xee, 0xe6, 0x7d, 0xee, 0xe6, 0x86, 0xf1, 0x79, 0xa1, },
0x86, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, {
0x79, 0x85, 0x79, 0x79, 0x79, 0x79, 0xf1, 0xca, 0x86, 0xf1, 0xcb, 0x86, 0xee, 0xe6, 0x7d, 0xee, 0xe6, 0x7d, 0xf1, .frameCountPhaseA = 3,
0x79, 0xa0, 0x86, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, .frameCountPhaseB = 3,
0x00, 0x79, 0x79, 0x85, 0x79, 0x79, 0xe5, 0x79, 0xf2, 0xca, 0x86, 0xf1, 0xcb, 0x86, 0xee, 0xe6, 0x86, 0xf1, 0xe6, .repeatSubPhaseAB = 10,
0x7d, 0xf2, 0x79, 0xa0, 0x86, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x0d, 0x00, 0x00, 0x00, .frameCountPhaseC = 22,
0x00, 0x00, 0x00, 0x79, 0x79, 0x85, 0x79, 0x79, 0xe5, 0xf2, 0xa1, 0xca, 0xf2, 0xf2, 0xcb, 0x86, 0xee, 0xcb, 0xf2, .frameCountPhaseD = 2,
0xf2, 0xe6, 0xf2, 0xf2, 0x79, 0xee, 0x7d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, .repeatSubPhaseCD = 0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x79, 0x85, 0x79, 0x79, 0xe5, 0xf2, 0x86, 0x79, 0xf2, 0xf2, 0xcb, 0x86, 0xee, .repeat = 0,
0xcb, 0xf2, 0xf2, 0xcb, 0xf2, 0xf2, 0x79, 0xee, 0x7d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, },
0x79, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x79, 0x85, 0x79, 0x79, 0xca, 0xf2, 0x7a, 0x79, 0xf1, 0xee, 0xcb, {
0x86, 0xee, 0x7a, 0xf1, 0xee, 0x7a, 0xf2, 0xf1, 0x79, 0xee, 0x7a, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseA = 3,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseB = 3,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0xee, 0x7a, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .repeatSubPhaseAB = 3,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseC = 0,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0xf1, 0x79, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseD = 0,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, .repeatSubPhaseCD = 0,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0xee, 0xa1, 0x79, 0x79, 0x79, .repeat = 0,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x85, 0x79, },
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0xee, 0x86, 0x79, {
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseA = 2,
0x85, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0xee, .frameCountPhaseB = 2,
0x7d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .repeatSubPhaseAB = 3,
0x79, 0x79, 0x85, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseC = 5,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseD = 5,
0x79, 0x79, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .repeatSubPhaseCD = 1,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .repeat = 0,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, },
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x85, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseA = 22,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0xf2, 0xf2, 0xf2, .frameCountPhaseB = 20,
0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, .repeatSubPhaseAB = 0,
0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, .frameCountPhaseC = 20,
0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, .frameCountPhaseD = 0,
0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, .repeatSubPhaseCD = 0,
0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, .repeat = 0,
0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, },
0xf2, 0xf2, 0xf2, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseA = 0,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseB = 0,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .repeatSubPhaseAB = 0,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseC = 0,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseD = 0,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .repeatSubPhaseCD = 0,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, .repeat = 0,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, },
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9d, {
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseA = 4,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseB = 5,
0x79, 0x9d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .repeatSubPhaseAB = 0,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseC = 3,
0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseD = 40,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .repeatSubPhaseCD = 0,
0x79, 0x79, 0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .repeat = 2,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, },
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, {
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseA = 2,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseB = 3,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .repeatSubPhaseAB = 0,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseC = 3,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .frameCountPhaseD = 50,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, 0xa1, 0x79, 0xf1, .repeatSubPhaseCD = 0,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, .repeat = 1,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, 0xf2, },
0x79, 0xf1, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x04, 0x75, 0x79, 0x79, 0x79, 0x00, {
0x51, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, 0x00, 0x79, 0x79, 0x79, 0x0d, 0x00, 0x78, 0x79, 0x79, 0x9d, 0x79, .frameCountPhaseA = 6,
0x79, 0xf2, 0x79, 0xf1, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x00, 0x6c, 0x79, 0x79, .frameCountPhaseB = 3,
0x0d, 0x00, 0x00, 0x78, 0x79, 0x79, 0x79, 0x79, 0x79, 0x00, 0x00, 0x78, 0x79, 0x79, 0x01, 0x00, 0x6c, 0x79, 0x79, .repeatSubPhaseAB = 0,
0x9d, 0x79, 0x79, 0xf2, 0x79, 0xf2, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x04, 0x00, 0x6c, .frameCountPhaseC = 34,
0x79, 0x79, 0x04, 0x00, 0x00, 0x75, 0x79, 0x79, 0x79, 0x79, 0x28, 0x00, 0x00, 0x6c, 0x79, 0x79, 0x00, 0x00, 0x51, .frameCountPhaseD = 5,
0x79, 0x79, 0x9d, 0x79, 0x79, 0xf2, 0x7a, 0xf2, 0x79, 0xf2, 0x7d, 0xa0, 0xca, 0x7d, 0x79, 0x79, 0x79, 0x79, 0x00, .repeatSubPhaseCD = 0,
0x00, 0x6c, 0x79, 0x79, 0x01, 0x00, 0x00, 0x6c, 0x79, 0x79, 0x79, 0x79, 0x0d, 0x00, 0x00, 0x6c, 0x79, 0x28, 0x00, .repeat = 0,
0x00, 0x00, 0x79, 0x79, 0x9d, 0x79, 0x79, 0xf2, 0x7a, 0xf2, 0xca, 0xf2, 0x86, 0xa0, 0xca, 0x7d, 0x79, 0x79, 0x79, },
0x79, 0x00, 0x00, 0x6c, 0x79, 0x79, 0x01, 0x6c, 0x01, 0x51, 0x79, 0x79, 0x79, 0x79, 0x04, 0x00, 0x00, 0x51, 0x79, {
0x0d, 0x00, 0x00, 0x00, 0x79, 0x79, 0x9d, 0x79, 0x79, 0xd7, 0xcb, 0xf2, 0xca, 0xce, 0x86, 0xf1, 0xca, 0x7d, 0x79, .frameCountPhaseA = 4,
0x79, 0x79, 0x79, 0x00, 0x00, 0x6c, 0x79, 0x79, 0x00, 0x75, 0x0d, 0x51, 0x79, 0x79, 0x79, 0x79, 0x01, 0x6c, 0x0d, .frameCountPhaseB = 5,
0x00, 0x79, 0x0d, 0x00, 0x28, 0x00, 0x78, 0x79, 0x9d, 0x79, 0x79, 0xd7, 0xce, 0xef, 0x79, 0x79, 0x86, 0xee, 0xe5, .repeatSubPhaseAB = 0,
0x7a, 0x79, 0x79, 0x79, 0x79, 0x00, 0x00, 0x6c, 0x79, 0x79, 0x00, 0x78, 0x28, 0x51, 0x79, 0x79, 0x79, 0x79, 0x01, .frameCountPhaseC = 5,
0x75, 0x28, 0x00, 0x79, 0x04, 0x51, 0x79, 0x00, 0x78, 0x79, 0x9d, 0x79, 0x79, 0xd7, 0xe9, 0xef, 0x79, 0xca, 0xa1, .frameCountPhaseD = 1,
0xee, 0xe5, 0x7a, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, 0x6c, 0x79, 0x79, 0x00, 0x78, 0x28, 0x00, 0x79, 0x79, 0x79, .repeatSubPhaseCD = 0,
0x79, 0x01, 0x75, 0x28, 0x00, 0x79, 0x04, 0x6c, 0x79, 0x01, 0x75, 0x79, 0x9d, 0x79, 0x79, 0x86, 0xe9, 0xef, 0x79, .repeat = 0,
0xf2, 0xa1, 0xe5, 0xe6, 0x7a, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, 0x6c, 0x79, 0x79, 0x00, 0x78, 0x28, 0x00, 0x79, },
0x28, 0x78, 0x79, 0x00, 0x78, 0x79, 0x00, 0x78, 0x04, 0x6c, 0x79, 0x01, 0x75, 0x79, 0x9d, 0x79, 0x79, 0x86, 0xf2, },
0xee, 0xca, 0xa1, 0xa1, 0xe5, 0xef, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, 0x6c, 0x79, 0x79, 0x00, 0x78, 0x28, .frameRates = {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},
0x51, 0x79, 0x04, 0x6c, 0x79, 0x00, 0x78, 0x79, 0x00, 0x78, 0x01, 0x6c, 0x79, 0x01, 0x75, 0x79, 0x9d, 0x79, 0x79, .subPhaseGateStates = {},
0x86, 0xf1, 0xee, 0xe5, 0x7d, 0xa1, 0xe5, 0xef, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, 0x6c, 0x79, 0x79, 0x00, }};
0x78, 0x28, 0x51, 0x79, 0x04, 0x51, 0x79, 0x00, 0x78, 0x79, 0x00, 0x78, 0x01, 0x75, 0x79, 0x01, 0x6c, 0x79, 0x9d,
0x79, 0x79, 0x86, 0xa0, 0xee, 0xe5, 0x7a, 0xa1, 0xca, 0xef, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, 0x6c, 0x79, static inline consteval auto createFastWaveformLut(const flash::Wrapper<eink::Waveform> &original)
0x79, 0x00, 0x75, 0x28, 0x51, 0x79, 0x01, 0x51, 0x79, 0x00, 0x78, 0x79, 0x00, 0x78, 0x01, 0x75, 0x79, 0x04, 0x6c, {
0x79, 0x9d, 0x79, 0x79, 0x86, 0xa0, 0xee, 0xe5, 0xce, 0xa1, 0xca, 0xa1, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, auto fastWaveformLut = original.value;
0x6c, 0x79, 0x79, 0x01, 0x6c, 0x0d, 0x6c, 0x79, 0x01, 0x51, 0x79, 0x00, 0x78, 0x79, 0x00, 0x75, 0x01, 0x75, 0x79,
0x04, 0x6c, 0x79, 0x9d, 0x79, 0x79, 0x86, 0x9d, 0xee, 0xca, 0xf2, 0xa1, 0x79, 0xa1, 0x79, 0x79, 0x79, 0x79, 0x79, for (auto i = std::size_t{0}; i < std::size(fastWaveformLut.timings) - 1; ++i) {
0x79, 0x01, 0x6c, 0x79, 0x79, 0x04, 0x00, 0x0d, 0x6c, 0x79, 0x01, 0x51, 0x28, 0x00, 0x78, 0x79, 0x00, 0x75, 0x01, fastWaveformLut.timings[i].frameCountPhaseA = 0;
0x75, 0x79, 0x04, 0x6c, 0x79, 0x9d, 0x79, 0x79, 0x86, 0x79, 0xee, 0xca, 0xf2, 0xa0, 0x79, 0x86, 0x79, 0x79, 0x79, fastWaveformLut.timings[i].frameCountPhaseB = 0;
0x79, 0x79, 0x79, 0x01, 0x6c, 0x79, 0x79, 0x04, 0x00, 0x00, 0x75, 0x79, 0x01, 0x51, 0x28, 0x00, 0x78, 0x79, 0x00, fastWaveformLut.timings[i].repeatSubPhaseAB = 0;
0x75, 0x01, 0x75, 0x79, 0x04, 0x6c, 0x79, 0x9d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x85, 0x79, 0x79, 0x86, 0x79, fastWaveformLut.timings[i].frameCountPhaseC = 0;
0x79, 0x79, 0x79, 0x79, 0x79, 0x01, 0x6c, 0x79, 0x79, 0x0d, 0x00, 0x00, 0x78, 0x79, 0x04, 0x6c, 0x28, 0x00, 0x78, fastWaveformLut.timings[i].frameCountPhaseD = 0;
0x79, 0x00, 0x75, 0x01, 0x75, 0x79, 0x04, 0x6c, 0x79, 0x9d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, fastWaveformLut.timings[i].repeatSubPhaseCD = 0;
0x86, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, 0x6c, 0x79, 0x79, 0x28, 0x00, 0x00, 0x78, 0x79, 0x0d, 0x75, 0x28, fastWaveformLut.timings[i].repeat = 0;
0x00, 0x78, 0x79, 0x01, 0x75, 0x01, 0x75, 0x79, 0x04, 0x6c, 0x79, 0x9d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, }
0x79, 0xe5, 0x7d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, 0x6c, 0x79, 0x79, 0x0d, 0x00, 0x00, 0x75, 0x79, 0x79,
0x79, 0x28, 0x00, 0x78, 0x79, 0x01, 0x75, 0x01, 0x75, 0x79, 0x04, 0x6c, 0x79, 0x9d, 0x79, 0x79, 0x79, 0x79, 0x79, fastWaveformLut.timings[11].frameCountPhaseA = 4;
0x79, 0x79, 0x79, 0xee, 0x7d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, 0x6c, 0x79, 0x79, 0x01, 0x09, 0x00, 0x6c, fastWaveformLut.timings[11].frameCountPhaseB = 5;
0x79, 0x79, 0x79, 0x28, 0x00, 0x78, 0x79, 0x00, 0x75, 0x01, 0x75, 0x79, 0x04, 0x6c, 0x79, 0x9d, 0x79, 0x79, 0x79, fastWaveformLut.timings[11].repeatSubPhaseAB = 2;
0x79, 0x79, 0x79, 0xe5, 0x7d, 0xf1, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, 0x6c, 0x79, 0x79, 0x01, 0x78, fastWaveformLut.timings[11].frameCountPhaseC = 5;
0x00, 0x51, 0x79, 0x79, 0x79, 0x28, 0x00, 0x78, 0x79, 0x00, 0x75, 0x01, 0x75, 0x79, 0x04, 0x6c, 0x79, 0x9d, 0x79, fastWaveformLut.timings[11].frameCountPhaseD = 1;
0x79, 0x79, 0x79, 0x79, 0x79, 0xe5, 0x7d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, 0x6c, 0x79, 0x79, fastWaveformLut.timings[11].repeatSubPhaseCD = 2;
0x00, 0x79, 0x04, 0x00, 0x79, 0x79, 0x79, 0x79, 0x00, 0x78, 0x79, 0x00, 0x75, 0x01, 0x75, 0x79, 0x04, 0x6c, 0x79, fastWaveformLut.timings[11].repeat = 4;
0x9d, 0x79, 0x79, 0xf2, 0xf2, 0x7d, 0x86, 0xe5, 0x7d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, 0x6c,
0x79, 0x28, 0x00, 0x79, 0x0d, 0x00, 0x79, 0x79, 0x79, 0x79, 0x00, 0x78, 0x79, 0x00, 0x78, 0x01, 0x75, 0x79, 0x04, return flash::Wrapper{fastWaveformLut};
0x6c, 0x79, 0x9d, 0x79, 0x79, 0xf2, 0xf2, 0x7d, 0x86, 0xe5, 0x7d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, }
0x01, 0x6c, 0x79, 0x28, 0x00, 0x79, 0x28, 0x00, 0x78, 0x79, 0x79, 0x79, 0x00, 0x78, 0x79, 0x00, 0x78, 0x01, 0x75,
0x79, 0x01, 0x6c, 0x79, 0x9d, 0x79, 0x79, 0xf2, 0xf2, 0x7d, 0x86, 0xe5, 0x7d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, constexpr auto FAST_WAVEFORM_LUT = createFastWaveformLut(ORIGINAL_WAVEFORM_LUT);
0x79, 0x79, 0x01, 0x6c, 0x79, 0x28, 0x51, 0x79, 0x79, 0x00, 0x78, 0x79, 0x79, 0x79, 0x00, 0x78, 0x79, 0x00, 0x78,
0x01, 0x75, 0x79, 0x01, 0x75, 0x79, 0x9d, 0x79, 0x79, 0x79, 0xe5, 0xe9, 0xf2, 0xe6, 0xe6, 0x7d, 0x79, 0x79, 0x79, void dumpOTP(eink_t &einkDisplay, uart_t &serial)
0x79, 0x79, 0x79, 0x79, 0x01, 0x6c, 0x79, 0x28, 0x51, 0x79, 0x79, 0x00, 0x78, 0x79, 0x79, 0x79, 0x00, 0x78, 0x79, {
0x00, 0x78, 0x04, 0x6c, 0x79, 0x01, 0x75, 0x79, 0x9d, 0x79, 0x79, 0x79, 0xe5, 0xe6, 0xf2, 0xe6, 0xf2, 0x86, 0x79, constexpr auto printWidth = 16;
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, 0x6c, 0x79, 0x28, 0x51, 0x79, 0x79, 0x00, 0x78, 0x28, 0x78, 0x79, 0x01, auto printedCnt = std::size_t{0};
0x75, 0x28, 0x00, 0x78, 0x04, 0x6c, 0x79, 0x01, 0x75, 0x79, 0x9d, 0x79, 0x79, 0x79, 0xee, 0xe6, 0xf2, 0xe6, 0xf2,
0xa1, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, 0x6c, 0x79, 0x28, 0x00, 0x79, 0x28, 0x00, 0x78, 0x04, 0x6c, einkDisplay.dumpOTP([&serial, &printedCnt](const auto &data) {
0x79, 0x01, 0x75, 0x28, 0x00, 0x79, 0x04, 0x6c, 0x79, 0x00, 0x75, 0x79, 0x9d, 0x79, 0x79, 0x79, 0xee, 0x79, 0x86, constexpr auto printAddress = true;
0xe5, 0x7d, 0xa0, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, 0x6c, 0x79, 0x28, 0x00, 0x78, 0x28, 0x00, 0x79,
0x04, 0x51, 0x79, 0x01, 0x6c, 0x0d, 0x00, 0x79, 0x0d, 0x51, 0x79, 0x00, 0x78, 0x79, 0x9d, 0x79, 0x79, 0x79, 0xf1, if (printedCnt > 0 && printedCnt % printWidth == 0) {
0x79, 0x86, 0xe5, 0x7d, 0xa0, 0x79, 0x79, 0x79, 0x79, 0x79, 0x28, 0x00, 0x00, 0x00, 0x51, 0x28, 0x00, 0x75, 0x0d, serial << F("\r\n");
0x00, 0x79, 0x01, 0x51, 0x79, 0x04, 0x51, 0x04, 0x51, 0x79, 0x0d, 0x00, 0x0d, 0x00, 0x78, 0x79, 0x9d, 0x79, 0x79, }
0x79, 0xa0, 0x79, 0x86, 0xe5, 0x7d, 0xa0, 0x79, 0x79, 0x79, 0x79, 0x79, 0x28, 0x00, 0x00, 0x00, 0x51, 0x79, 0x00,
0x00, 0x00, 0x51, 0x79, 0x01, 0x51, 0x79, 0x04, 0x00, 0x00, 0x51, 0x79, 0x28, 0x00, 0x00, 0x00, 0x79, 0x79, 0x9d, if (printAddress && printedCnt % printWidth == 0) {
0x79, 0x79, 0x79, 0xa1, 0x79, 0x86, 0xe5, 0x7d, 0xa0, 0x79, 0x79, 0x79, 0x79, 0x79, 0x28, 0x00, 0x00, 0x00, 0x51, serial << F("0x");
0x79, 0x01, 0x00, 0x00, 0x51, 0x79, 0x01, 0x51, 0x79, 0x0d, 0x00, 0x00, 0x6c, 0x79, 0x28, 0x00, 0x00, 0x51, 0x79, serial.txNumber<std::size_t, 16, 4>(printedCnt);
0x79, 0x9d, 0x79, 0x79, 0x79, 0x86, 0xca, 0x86, 0xe5, 0x7d, 0xa0, 0x79, 0x79, 0x79, 0x79, 0x79, 0x28, 0x00, 0x00, serial << F(": ");
0x00, 0x51, 0x79, 0x04, 0x00, 0x00, 0x6c, 0x79, 0x01, 0x51, 0x79, 0x28, 0x00, 0x00, 0x75, 0x79, 0x79, 0x00, 0x00, }
0x6c, 0x79, 0x79, 0x9d, 0x79, 0x79, 0xca, 0x86, 0x79, 0x86, 0xe5, 0x7d, 0xa0, 0x79, 0x79, 0x79, 0x79, 0x79, 0x28,
0x00, 0x00, 0x00, 0x51, 0x79, 0x0d, 0x00, 0x00, 0x78, 0x79, 0x04, 0x6c, 0x79, 0x79, 0x00, 0x00, 0x78, 0x79, 0x79, serial << F("0x");
0x04, 0x00, 0x75, 0x79, 0x79, 0x9d, 0x79, 0x79, 0xca, 0x7d, 0x79, 0x86, 0xe5, 0x7d, 0xa0, 0x79, 0x79, 0x79, 0x79, serial.txNumber<std::remove_cvref_t<decltype(data)>, 16, 2>(data);
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, 0x6c, 0x79, 0x79, 0x0d, 0x75, 0x79, 0x79, 0x0d, 0x51, 0x79, serial << F(", ");
0x79, 0x79, 0x28, 0x00, 0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, 0xe5, 0x7d, 0x79, 0xf2, 0xe6, 0x7d, 0xa0, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, ++printedCnt;
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, 0xe5, 0x7a, 0x79, 0xf2, 0xe6, 0x7d, 0xa0,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, 0xee, 0x7a, 0x79, 0xee, 0xcb,
0x7a, 0xa0, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, 0xee, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9d, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x9d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x9d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9d, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x9d,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x9d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x9d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0xf2, 0xf2,
0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2,
0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2,
0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2,
0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2,
0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2,
0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2,
0xf2, 0xf2, 0xf2, 0xf2, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0xf2, 0x7a, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0xe5, 0xf2, 0x86, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0xee, 0xf2, 0xf2, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0xf1, 0xf2, 0xf2, 0x7a, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0xf1, 0x7a, 0xf1,
0x7a, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2,
0x79, 0xee, 0x7d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x6d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0xf2, 0xef, 0xee, 0x7d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0xca, 0xf2, 0xf2, 0xee, 0x7d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x79,
0x1f, 0x6c, 0x79, 0x79, 0xca, 0xf2, 0xa1, 0xee, 0x7d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76,
0x79, 0x79, 0x51, 0x6c, 0x79, 0x79, 0xca, 0xf2, 0xa1, 0xf1, 0x7d, 0x79, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x76, 0x79, 0x28, 0x51, 0x51, 0x79, 0x79, 0xca, 0xf2, 0x7d, 0xf2, 0x7d, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x76, 0x79, 0x0d, 0x51, 0x52, 0x79, 0x79, 0x79, 0xf2, 0xcb, 0xf2, 0x7d, 0x28, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x04, 0x00, 0x01, 0x79, 0x79, 0x79, 0xf2, 0x79, 0xee, 0x7d, 0x28, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x04, 0x00, 0x01, 0x79, 0x79, 0x79, 0xf2, 0x79, 0xee, 0x7a,
0x5e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x04, 0x00, 0x03, 0x79, 0x79, 0x79, 0xf1, 0xf2,
0xf2, 0x7a, 0x0d, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x51, 0x28, 0x00, 0x00, 0x00, 0x00, 0x51, 0x52, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x01, 0x00, 0x03, 0x78, 0x79, 0x79,
0xee, 0xf2, 0xf2, 0x79, 0x0d, 0x24, 0x00, 0x00, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, 0x00, 0x00, 0x75, 0x51, 0x79,
0x79, 0x79, 0x79, 0x79, 0x00, 0x51, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x04, 0x00, 0x03, 0x78,
0x79, 0x79, 0xe5, 0xf2, 0xa1, 0x79, 0x0d, 0x51, 0x01, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d,
0x51, 0x79, 0x79, 0x79, 0x79, 0x04, 0x00, 0x00, 0x75, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x04, 0x00,
0x09, 0x78, 0x79, 0x79, 0x79, 0xf2, 0x77, 0x79, 0x0d, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x6c, 0x0c, 0x00, 0x00, 0x00,
0x51, 0x01, 0x51, 0x79, 0x79, 0x79, 0x79, 0x01, 0x00, 0x00, 0x6c, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79,
0x01, 0x00, 0x09, 0x78, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x0d, 0x00, 0x75, 0x00, 0x00, 0x00, 0x6c, 0x28, 0x00,
0x00, 0x00, 0x24, 0x00, 0x51, 0x79, 0x79, 0x79, 0x28, 0x00, 0x00, 0x00, 0x00, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x76, 0x79, 0x04, 0x00, 0x1b, 0x78, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x0d, 0x00, 0x51, 0x01, 0x00, 0x00, 0x6c,
0x24, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x51, 0x79, 0x79, 0x79, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x79, 0x79,
0x79, 0x79, 0x76, 0x79, 0x04, 0x00, 0x1b, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x0d, 0x00, 0x00, 0x0c, 0x00,
0x00, 0x6c, 0x24, 0x00, 0x00, 0x6c, 0x01, 0x00, 0x51, 0x79, 0x79, 0x79, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79,
0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x04, 0x00, 0x6c, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x0d, 0x00, 0x00,
0x75, 0x00, 0x00, 0x51, 0x25, 0x00, 0x00, 0x24, 0x00, 0x00, 0x51, 0x79, 0x79, 0x79, 0x04, 0x6c, 0x01, 0x6c, 0x01,
0x75, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x04, 0x51, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x0d,
0x00, 0x00, 0x51, 0x04, 0x00, 0x51, 0x0d, 0x00, 0x00, 0x04, 0x00, 0x00, 0x51, 0x79, 0x79, 0x79, 0x01, 0x6c, 0x04,
0x75, 0x01, 0x6c, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x04, 0x51, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76,
0x79, 0x0d, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x51, 0x79, 0x79, 0x79, 0x01,
0x6c, 0x01, 0x6c, 0x01, 0x6c, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x0d, 0x00, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x76, 0x79, 0x0d, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x51, 0x79, 0x79,
0x79, 0x01, 0x00, 0x00, 0x00, 0x51, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x0d, 0x00, 0x78, 0x79, 0x79,
0x79, 0x79, 0x79, 0x76, 0x79, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x51,
0x79, 0x79, 0x79, 0x01, 0x00, 0x00, 0x00, 0x78, 0x00, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x0d, 0x00, 0x78,
0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00,
0x00, 0x51, 0x79, 0x79, 0x79, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x6c, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x0d,
0x00, 0x75, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x0c, 0x00,
0x00, 0x00, 0x00, 0x51, 0x79, 0x79, 0x79, 0x01, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x51, 0x79, 0x79, 0x79, 0x79, 0x76,
0x79, 0x28, 0x00, 0x75, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x04, 0x51,
0x28, 0x00, 0x00, 0x00, 0x00, 0x51, 0x79, 0x79, 0x79, 0x01, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x78, 0x79, 0x79,
0x79, 0x76, 0x79, 0x28, 0x00, 0x6c, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x04,
0x24, 0x6c, 0x51, 0x01, 0x00, 0x00, 0x00, 0x51, 0x79, 0x79, 0x79, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x75,
0x79, 0x79, 0x79, 0x76, 0x79, 0x79, 0x00, 0x6c, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x0d, 0x00, 0x00, 0x00,
0x6c, 0x00, 0x6c, 0x0d, 0x00, 0x04, 0x00, 0x00, 0x00, 0x51, 0x79, 0x79, 0x79, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00,
0x00, 0x75, 0x79, 0x79, 0x79, 0x76, 0x79, 0x79, 0x00, 0x51, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x0d, 0x00,
0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x51, 0x79, 0x79, 0x79, 0x04, 0x00, 0x00, 0x01,
0x75, 0x00, 0x04, 0x6c, 0x79, 0x79, 0x79, 0x76, 0x79, 0x79, 0x00, 0x51, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79,
0x0d, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x51, 0x79, 0x79, 0x79, 0x04, 0x00,
0x00, 0x01, 0x75, 0x00, 0x04, 0x6c, 0x79, 0x79, 0x79, 0x76, 0x79, 0x79, 0x01, 0x00, 0x79, 0x79, 0x79, 0x79, 0x79,
0x76, 0x79, 0x0d, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x51, 0x79, 0x79, 0x79,
0x0d, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x6c, 0x79, 0x79, 0x79, 0x76, 0x79, 0x79, 0x01, 0x00, 0x78, 0x79, 0x79,
0x79, 0x79, 0x76, 0x79, 0x0d, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x51, 0x79,
0x79, 0x79, 0x28, 0x00, 0x51, 0x00, 0x00, 0x00, 0x00, 0x51, 0x79, 0x79, 0x79, 0x76, 0x79, 0x79, 0x04, 0x00, 0x78,
0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x0d, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00,
0x51, 0x79, 0x79, 0x79, 0x79, 0x00, 0x51, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x79, 0x79, 0x79, 0x76, 0x79, 0x79, 0x0d,
0x00, 0x75, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x0d, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x04, 0x00, 0x51, 0x79, 0x79, 0x79, 0x79, 0x01, 0x51, 0x00, 0x00, 0x00, 0x00, 0x51, 0x79, 0x79, 0x79, 0x76, 0x79,
0x79, 0x0d, 0x00, 0x75, 0x0d, 0x75, 0x79, 0x79, 0x76, 0x79, 0x0d, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0c, 0x00, 0x51, 0x79, 0x79, 0x79, 0x79, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6c, 0x79, 0x79, 0x79,
0x76, 0x79, 0x79, 0x28, 0x00, 0x6c, 0x1c, 0x6c, 0x79, 0x79, 0x76, 0x79, 0x0d, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x51, 0x79, 0x79, 0x79, 0x79, 0x6c, 0x5e, 0x01, 0x00, 0x00, 0x00, 0x6c, 0x79,
0x79, 0x79, 0x76, 0x79, 0x79, 0x28, 0x00, 0x6c, 0x1b, 0x51, 0x79, 0x79, 0x76, 0x79, 0x0d, 0x51, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x04, 0x51, 0x79, 0x79, 0x79, 0x79, 0x78, 0x79, 0x01, 0x00, 0x00, 0x00,
0x6c, 0x79, 0x79, 0x79, 0x76, 0x79, 0x79, 0x79, 0x00, 0x00, 0x51, 0x51, 0x79, 0x79, 0x76, 0x79, 0x0d, 0x24, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x51, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x04, 0x00,
0x00, 0x00, 0x75, 0x79, 0x79, 0x79, 0x76, 0x79, 0x79, 0x79, 0x01, 0x00, 0x00, 0x01, 0x79, 0x79, 0x76, 0x79, 0x0d,
0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x51, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x0d, 0x00, 0x00, 0x00, 0x78, 0x79, 0x79, 0x79, 0x76, 0x79, 0x79, 0x79, 0x04, 0x00, 0x00, 0x04, 0x78, 0x79, 0x76,
0x79, 0x5e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x52, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x28, 0x00, 0x00, 0x00, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x79, 0x79, 0x04, 0x00, 0x00, 0x03, 0x78,
0x79, 0x76, 0x79, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x00, 0x00, 0x51, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x79, 0x79, 0x0d, 0x00, 0x00,
0x09, 0x75, 0x79, 0x76, 0x79, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x0d, 0x00, 0x00, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x79, 0x79, 0x28,
0x00, 0x00, 0x1b, 0x75, 0x79, 0x76, 0x79, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x51, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x0d, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x79,
0x79, 0x79, 0x00, 0x00, 0x6c, 0x6c, 0x79, 0x76, 0x79, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x6c, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76,
0x79, 0x79, 0x79, 0x79, 0x01, 0x00, 0x51, 0x75, 0x79, 0x76, 0x79, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x76, 0x79, 0x79, 0x79, 0x79, 0x04, 0x00, 0x00, 0x79, 0x79, 0x76, 0x79, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x76, 0x79, 0x79, 0x79, 0x79, 0x0d, 0x00, 0x00, 0x79, 0x79, 0x76, 0x79, 0x79, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x79, 0x79, 0x79, 0x79, 0x00, 0x51, 0x79, 0x79, 0x76, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x76, 0x79, 0x79, 0x79, 0x79, 0x79, 0x01, 0x75, 0x79, 0x79, 0x76, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x6d, 0x79, 0x79, 0x79, 0x79, 0x79, 0x28, 0x79, 0x79, 0x79,
0x75, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x78, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
0x79,
}); });
serial << F("\r\n");
////////////////////////////////////////////////////////////////////////// }
int main() int main()
{ {
using spi_t = spi::Software<spi::SoftwareConfig<io::P::C4, io::P::NONE, io::P::C5, io::P::C3>>;
uart_t serial; uart_t serial;
serial.init(); serial.init();
@@ -451,16 +276,69 @@ int main()
serial << F("e-Paper demo") << F("\r\n"); serial << F("e-Paper demo") << F("\r\n");
auto einkDisplay = eink::Eink<200, 200, spi_t, io::P::C1, io::P::C2, io::P::C0>{}; auto einkDisplay = eink_t{};
einkDisplay.init();
serial << F("e-Paper init") << F("\r\n"); serial << F("e-Paper init") << F("\r\n");
einkDisplay.init();
serial << F("e-Paper dump OTP") << F("\r\n");
dumpOTP(einkDisplay, serial);
serial << F("e-Paper clear") << F("\r\n"); serial << F("e-Paper clear") << F("\r\n");
einkDisplay.clear(); einkDisplay.clear();
serial << F("e-Paper update") << F("\r\n");
einkDisplay.update();
serial << F("e-Paper draw fast") << F("\r\n");
einkDisplay.draw(RLE_IMAGE);
serial << F("e-Paper update") << F("\r\n");
einkDisplay.update(FAST_WAVEFORM_LUT);
serial << F("e-Paper clear") << F("\r\n");
einkDisplay.clear();
serial << F("e-Paper update") << F("\r\n");
einkDisplay.update();
serial << F("e-Paper draw") << F("\r\n"); serial << F("e-Paper draw") << F("\r\n");
einkDisplay.draw(IMAGE); einkDisplay.draw(RLE_IMAGE);
serial << F("e-Paper update") << F("\r\n");
einkDisplay.update();
serial << F("e-Paper clear") << F("\r\n");
einkDisplay.clear();
serial << F("e-Paper update") << F("\r\n");
einkDisplay.update();
serial << F("e-Paper draw text") << F("\r\n");
const auto startX = 16;
const auto startY = 58;
einkDisplay.drawText({startX, startY}, "B->B: ", eink_t::Color::BLACK, eink_t::Color::WHITE);
einkDisplay.drawText({startX + 6 * 8, startY}, "Black on black", eink_t::Color::BLACK, eink_t::Color::BLACK);
einkDisplay.drawText({startX, startY + 10}, "B->R: ", eink_t::Color::BLACK, eink_t::Color::WHITE);
einkDisplay.drawText({startX + 6 * 8, startY + 10}, "Black on red", eink_t::Color::BLACK, eink_t::Color::RED);
einkDisplay.drawText({startX, startY + 20}, "B->W: ", eink_t::Color::BLACK, eink_t::Color::WHITE);
einkDisplay.drawText({startX + 6 * 8, startY + 20}, "Black on white", eink_t::Color::BLACK, eink_t::Color::WHITE);
einkDisplay.drawText({startX, startY + 30}, "R->B: ", eink_t::Color::BLACK, eink_t::Color::WHITE);
einkDisplay.drawText({startX + 6 * 8, startY + 30}, "Red on black", eink_t::Color::RED, eink_t::Color::BLACK);
einkDisplay.drawText({startX, startY + 40}, "R->R: ", eink_t::Color::BLACK, eink_t::Color::WHITE);
einkDisplay.drawText({startX + 6 * 8, startY + 40}, "Red on red", eink_t::Color::RED, eink_t::Color::RED);
einkDisplay.drawText({startX, startY + 50}, "R->W: ", eink_t::Color::BLACK, eink_t::Color::WHITE);
einkDisplay.drawText({startX + 6 * 8, startY + 50}, "Red on white", eink_t::Color::RED, eink_t::Color::WHITE);
einkDisplay.drawText({startX, startY + 60}, "W->B: ", eink_t::Color::BLACK, eink_t::Color::WHITE);
einkDisplay.drawText({startX + 6 * 8, startY + 60}, "White on black", eink_t::Color::WHITE, eink_t::Color::BLACK);
einkDisplay.drawText({startX, startY + 70}, "W->R: ", eink_t::Color::BLACK, eink_t::Color::WHITE);
einkDisplay.drawText({startX + 6 * 8, startY + 70}, "White on red", eink_t::Color::WHITE, eink_t::Color::RED);
einkDisplay.drawText({startX, startY + 80}, "W->W: ", eink_t::Color::BLACK, eink_t::Color::WHITE);
einkDisplay.drawText({startX + 6 * 8, startY + 80}, "White on white", eink_t::Color::WHITE, eink_t::Color::WHITE);
serial << F("e-Paper update") << F("\r\n");
einkDisplay.update();
einkDisplay.clear();
einkDisplay.drawText({0, 0 * 5 * 8}, "Big", eink_t::Color::BLACK, eink_t::Color::WHITE, 5);
einkDisplay.drawText({0, 1 * 5 * 8}, "scale", eink_t::Color::BLACK, eink_t::Color::WHITE, 5);
einkDisplay.drawText({0, 2 * 5 * 8}, "O.o", eink_t::Color::RED, eink_t::Color::WHITE, 5);
einkDisplay.update();
serial << F("e-Paper sleep") << F("\r\n"); serial << F("e-Paper sleep") << F("\r\n");
einkDisplay.sleep(); einkDisplay.sleep();

Submodule eink/spi deleted from 85346f258f