a.binder 5 éve
szülő
commit
5a504cbcbd
100 módosított fájl, 111 hozzáadás és 24658 törlés
  1. 6 1
      SE/schema/WPS_Functions/automation_driven/build.automation_driven.PRODUCT.submodule.xml
  2. 105 4
      SE/schema/WPS_Functions/automation_driven/build_automation_driven.xml
  3. 0 2492
      SE/stuff/P5_Automation-library-dev/AGirs/Doxyfile
  4. 0 339
      SE/stuff/P5_Automation-library-dev/AGirs/LICENSE
  5. 0 123
      SE/stuff/P5_Automation-library-dev/AGirs/Makefile
  6. 0 389
      SE/stuff/P5_Automation-library-dev/AGirs/README.md
  7. 0 861
      SE/stuff/P5_Automation-library-dev/AGirs/examples/Girs/Girs.cpp
  8. 0 12
      SE/stuff/P5_Automation-library-dev/AGirs/examples/Girs/Girs.ino
  9. 0 308
      SE/stuff/P5_Automation-library-dev/AGirs/examples/Girs/GirsFat.config.h
  10. 0 228
      SE/stuff/P5_Automation-library-dev/AGirs/examples/Girs/GirsLite.config.h
  11. 0 5
      SE/stuff/P5_Automation-library-dev/AGirs/examples/Girs/README.md
  12. 0 31
      SE/stuff/P5_Automation-library-dev/AGirs/examples/Girs/config.h
  13. 0 166
      SE/stuff/P5_Automation-library-dev/AGirs/examples/Listener/Listener.cpp
  14. 0 5
      SE/stuff/P5_Automation-library-dev/AGirs/examples/Listener/Listener.ino
  15. 0 22
      SE/stuff/P5_Automation-library-dev/AGirs/examples/Listener/README.md
  16. 0 65
      SE/stuff/P5_Automation-library-dev/AGirs/examples/Listener/config.h
  17. 0 148
      SE/stuff/P5_Automation-library-dev/AGirs/examples/Opponator/Opponator.cpp
  18. 0 6
      SE/stuff/P5_Automation-library-dev/AGirs/examples/Opponator/Opponator.ino
  19. 0 9
      SE/stuff/P5_Automation-library-dev/AGirs/examples/Opponator/README.md
  20. 0 28
      SE/stuff/P5_Automation-library-dev/AGirs/examples/Opponator/config.h
  21. 0 16
      SE/stuff/P5_Automation-library-dev/AGirs/examples/Translator/README.md
  22. 0 131
      SE/stuff/P5_Automation-library-dev/AGirs/examples/Translator/Translator.cpp
  23. 0 5
      SE/stuff/P5_Automation-library-dev/AGirs/examples/Translator/Translator.ino
  24. 0 48
      SE/stuff/P5_Automation-library-dev/AGirs/examples/Translator/config.h
  25. 0 358
      SE/stuff/P5_Automation-library-dev/AGirs/keywords.txt
  26. 0 9
      SE/stuff/P5_Automation-library-dev/AGirs/library.properties
  27. 0 43
      SE/stuff/P5_Automation-library-dev/AGirs/src/GirsLib/GirsUtils.cpp
  28. 0 374
      SE/stuff/P5_Automation-library-dev/AGirs/src/GirsLib/GirsUtils.h
  29. 0 212
      SE/stuff/P5_Automation-library-dev/AGirs/src/GirsLib/LedLcdManager.cpp
  30. 0 188
      SE/stuff/P5_Automation-library-dev/AGirs/src/GirsLib/LedLcdManager.h
  31. 0 100
      SE/stuff/P5_Automation-library-dev/AGirs/src/GirsLib/Tokenizer.cpp
  32. 0 27
      SE/stuff/P5_Automation-library-dev/AGirs/src/GirsLib/Tokenizer.h
  33. 0 242
      SE/stuff/P5_Automation-library-dev/AGirs/src/GirsLib/defineMissingStuff.h
  34. 0 6
      SE/stuff/P5_Automation-library-dev/AGirs/src/GirsLib/version.h
  35. 0 11
      SE/stuff/P5_Automation-library-dev/AGirs/src/girs_hw_config.h
  36. 0 4
      SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/README.txt
  37. 0 22
      SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/girs_pins.h
  38. 0 33
      SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/girs_pins_combi_shield.h
  39. 0 66
      SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/girs_pins_default.h
  40. 0 37
      SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/girs_pins_dummy.h
  41. 0 27
      SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/girs_pins_leonardo.h
  42. 0 95
      SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/girs_pins_mega2560.h
  43. 0 94
      SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/girs_pins_mega2560_rear.h
  44. 0 29
      SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/girs_pins_micro.h
  45. 0 29
      SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/girs_pins_nano.h
  46. 0 21
      SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/girs_pins_nano_shield.h
  47. 0 5
      SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/lcd_0x27_16_2.h
  48. 0 5
      SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/lcd_0x27_20_4.h
  49. 0 5
      SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/lcd_0x3F_20_4.h
  50. 0 95
      SE/stuff/P5_Automation-library-dev/AGirs/tools/mkflasher.sh
  51. 0 40
      SE/stuff/P5_Automation-library-dev/AGirs/tools/nanoflasher.sh
  52. 0 303
      SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/Adafruit_BusIO_Register.cpp
  53. 0 72
      SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/Adafruit_BusIO_Register.h
  54. 0 233
      SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/Adafruit_I2CDevice.cpp
  55. 0 33
      SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/Adafruit_I2CDevice.h
  56. 0 8
      SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/Adafruit_I2CRegister.h
  57. 0 330
      SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/Adafruit_SPIDevice.cpp
  58. 0 66
      SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/Adafruit_SPIDevice.h
  59. 0 21
      SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/LICENSE
  60. 0 8
      SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/README.md
  61. 0 21
      SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/examples/i2c_address_detect/i2c_address_detect.ino
  62. 0 41
      SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/examples/i2c_readwrite/i2c_readwrite.ino
  63. 0 38
      SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/examples/i2c_registers/i2c_registers.ino
  64. 0 38
      SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/examples/i2corspi_register/i2corspi_register.ino
  65. 0 29
      SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/examples/spi_modetest/spi_modetest.ino
  66. 0 39
      SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/examples/spi_readwrite/spi_readwrite.ino
  67. 0 192
      SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/examples/spi_register_bits/spi_register_bits.ino
  68. 0 34
      SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/examples/spi_registers/spi_registers.ino
  69. 0 9
      SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/library.properties
  70. 0 2187
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Adafruit_GFX.cpp
  71. 0 382
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Adafruit_GFX.h
  72. 0 402
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Adafruit_MonoOLED.cpp
  73. 0 101
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Adafruit_MonoOLED.h
  74. 0 2511
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Adafruit_SPITFT.cpp
  75. 0 521
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Adafruit_SPITFT.h
  76. 0 6
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Adafruit_SPITFT_Macros.h
  77. 0 226
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMono12pt7b.h
  78. 0 362
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMono18pt7b.h
  79. 0 576
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMono24pt7b.h
  80. 0 175
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMono9pt7b.h
  81. 0 249
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoBold12pt7b.h
  82. 0 422
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoBold18pt7b.h
  83. 0 671
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoBold24pt7b.h
  84. 0 188
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoBold9pt7b.h
  85. 0 268
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoBoldOblique12pt7b.h
  86. 0 459
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoBoldOblique18pt7b.h
  87. 0 741
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoBoldOblique24pt7b.h
  88. 0 202
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoBoldOblique9pt7b.h
  89. 0 247
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoOblique12pt7b.h
  90. 0 397
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoOblique18pt7b.h
  91. 0 642
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoOblique24pt7b.h
  92. 0 186
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoOblique9pt7b.h
  93. 0 269
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeSans12pt7b.h
  94. 0 451
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeSans18pt7b.h
  95. 0 726
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeSans24pt7b.h
  96. 0 200
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeSans9pt7b.h
  97. 0 287
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeSansBold12pt7b.h
  98. 0 480
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeSansBold18pt7b.h
  99. 0 783
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeSansBold24pt7b.h
  100. 0 207
      SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeSansBold9pt7b.h

+ 6 - 1
SE/schema/WPS_Functions/automation_driven/build.automation_driven.PRODUCT.submodule.xml

@@ -27,7 +27,12 @@
    <property  name="automation_driven.submodule.xsd__struct_files_fix_types.xsl" location="${automation_driven.submodule.basedir}/automation_driven.submodule.xsd__struct_files_fix_types.xsl"/>
    
    
-   <property  name="automation_driven.submodule.struct.read__communication.xsd" location="${automation_driven.submodule.basedir}/automation_driven.submodule.struct.read__communication.xsd"/>
+   <property  name="automation_driven.submodule.struct.read__communication.xsd" location="${automation_driven.submodule.basedir}/automation_driven.submodule.struct.read__communication.xsd"/><!-- all el. on this will get id for data and action type -->
+   <property  name="automation_driven.submodule.struct.read__communication.xml" location="${automation_driven.submodule.basedir}/automation_driven.submodule.struct.read__communication.xml"/>
+   <property  name="automation_driven.submodule.struct.read__communication.xsl" location="${automation_driven.submodule.basedir}/automation_driven.submodule.struct.read__communication.xsl"/>
+   
+   <property  name="automation_driven.submodule.struct.read__communication_generated.xsd" location="${automation_driven.submodule.basedir}/automation_driven.submodule.struct.read__communication_generated.xsd"/><!-- all el. on this will get id for data and action type -->
+   <property  name="automation_driven.submodule.struct.read__communication_generated.xml" location="${automation_driven.submodule.basedir}/automation_driven.submodule.struct.read__communication_generated.xml"/>
    
    <!--
    not used

+ 105 - 4
SE/schema/WPS_Functions/automation_driven/build_automation_driven.xml

@@ -218,21 +218,65 @@
          <xmlcatalog refid="dita-ot.dtd.catalog"/>
       </xslt>
    </target>
-   <target name="automation_driven.submodule.xsd__struct_files_fix_types.xml"
-      ><!-- depends="automation_driven.submodule.xsd__struct_files" -->
+   <!--<target name="automation_driven.submodule.xsd__struct_files_fix_types.xml"
+      ><!-\- depends="automation_driven.submodule.xsd__struct_files" -\->
       <echo>#42 generating ${automation_driven.submodule.struct.read.xsd} using ${automation_driven.submodule.xsd}</echo>
       <xslt basedir="${automation_driven.submodule.basedir}"
          destdir="${automation_driven.submodule.temp}"
          force="true"
          in="${automation_driven.submodule.struct.read.xsd}"
          out="${automation_driven.submodule.xsd__struct_files_fix_types.xml}"
-         style="${automation_driven.submodule.xsd__struct_files_fix_types.xsl}"> <!-- ${automation_driven.submodule.struct.h} -->
+         style="${automation_driven.submodule.xsd__struct_files_fix_types.xsl}"> <!-\- ${automation_driven.submodule.struct.h} -\->
+         <factory name="net.sf.saxon.TransformerFactoryImpl">
+            <attribute name="http://saxon.sf.net/feature/xinclude-aware" value="true"/>
+            <!-\-<attribute name="http://saxon.sf.net/feature/initialTemplate"
+               value="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.struct.xsd}read.xml"/>-\->
+            <attribute name="http://saxon.sf.net/feature/initialMode"
+               value="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.struct.xsd}struct_files_fix_types.xml"/>
+            <attribute name="http://saxon.sf.net/feature/dtd-validation-recoverable"
+               value="true"/>
+         </factory>
+         <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.xsd}basedir"
+            expression="${automation_driven.basedir}"/>
+         <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.xsd}repository"
+            expression="${automation_driven.repository}"/>
+         <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.xsd}temp"
+            expression="${automation_driven.temp}"/>
+         
+         <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.xsd}basedir"
+            expression="${automation_driven.submodule.basedir}"/>
+         <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.xsd}repository"
+            expression="${automation_driven.submodule.repository}"/>
+         <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.xsd}temp"
+            expression="${automation_driven.submodule.temp}"/>
+         
+         <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.struct.xsd}h"
+            expression="${automation_driven.submodule.struct.h}"/>
+         
+         <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.namespaces.xsd}xsd"
+            expression="${automation_driven.submodule.namespaces.xsd}"/>
+         
+         <classpath location="/opt/local/share/java/saxon9he.jar"/>
+         <xmlcatalog refid="dita-ot.dtd.catalog"/>
+      </xslt>
+   </target>-->
+   
+   <target name="automation_driven.submodule.struct.read__communication.xml"
+      depends="automation_driven.submodule.xsd__struct_files__fixed"
+      ><!---->
+      <echo>#42 generating ${automation_driven.submodule.struct.read__communication.xml} using ${automation_driven.submodule.struct.read__communication.xsd} and  ${automation_driven.submodule.struct.read__communication_generated.xsd} and </echo>
+      <xslt basedir="${automation_driven.submodule.basedir}"
+         destdir="${automation_driven.submodule.temp}"
+         force="true"
+         in="${automation_driven.submodule.struct.read__communication.xsd}"
+         out="${automation_driven.submodule.struct.read__communication.xml}"
+         style="${automation_driven.submodule.struct.read__communication.xsl}"> <!-- ${automation_driven.submodule.struct.h} -->
          <factory name="net.sf.saxon.TransformerFactoryImpl">
             <attribute name="http://saxon.sf.net/feature/xinclude-aware" value="true"/>
             <!--<attribute name="http://saxon.sf.net/feature/initialTemplate"
                value="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.struct.xsd}read.xml"/>-->
             <attribute name="http://saxon.sf.net/feature/initialMode"
-               value="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.struct.xsd}struct_files_fix_types.xml"/>
+               value="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.struct.xsd}struct.read__communication.xml"/>
             <attribute name="http://saxon.sf.net/feature/dtd-validation-recoverable"
                value="true"/>
          </factory>
@@ -256,10 +300,67 @@
          <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.namespaces.xsd}xsd"
             expression="${automation_driven.submodule.namespaces.xsd}"/>
          
+         <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.struct.xsd}read.xsd"
+            expression="${automation_driven.submodule.struct.read.xsd}"/>
+         <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.struct.xsd}read__communication_generated.xml"
+            expression="${automation_driven.submodule.struct.read__communication_generated.xml}"/>
+         <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.struct.xsd}read__communication_generated.xsd"
+            expression="${automation_driven.submodule.struct.read__communication_generated.xsd}"/>
          <classpath location="/opt/local/share/java/saxon9he.jar"/>
          <xmlcatalog refid="dita-ot.dtd.catalog"/>
       </xslt>
    </target>
+   
+   
+   <target name="automation_driven.submodule.struct.read__communication_generated.xml"
+      depends="automation_driven.submodule.struct.read__communication.xml" > 
+      <echo>#42 generating ${automation_driven.submodule.struct.read__communication.xml} using ${automation_driven.submodule.struct.read__communication.xsd} and  ${automation_driven.submodule.struct.read__communication_generated.xsd} and </echo>
+      <xslt basedir="${automation_driven.submodule.basedir}"
+         destdir="${automation_driven.submodule.temp}"
+         force="true"
+         in="${automation_driven.submodule.struct.read__communication.xml}"
+         out="${automation_driven.submodule.struct.read__communication_generated.xsd}"
+         style="${automation_driven.submodule.struct.read__communication.xsl}"> <!-- ${automation_driven.submodule.struct.h} -->
+         <factory name="net.sf.saxon.TransformerFactoryImpl">
+            <attribute name="http://saxon.sf.net/feature/xinclude-aware" value="true"/>
+            <!--<attribute name="http://saxon.sf.net/feature/initialTemplate"
+               value="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.struct.xsd}read.xml"/>-->
+            <attribute name="http://saxon.sf.net/feature/initialMode"
+               value="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.struct.xsd}struct.read__communication_generated.xml"/>
+            <attribute name="http://saxon.sf.net/feature/dtd-validation-recoverable"
+               value="true"/>
+         </factory>
+         <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.xsd}basedir"
+            expression="${automation_driven.basedir}"/>
+         <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.xsd}repository"
+            expression="${automation_driven.repository}"/>
+         <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.xsd}temp"
+            expression="${automation_driven.temp}"/>
+         
+         <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.xsd}basedir"
+            expression="${automation_driven.submodule.basedir}"/>
+         <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.xsd}repository"
+            expression="${automation_driven.submodule.repository}"/>
+         <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.xsd}temp"
+            expression="${automation_driven.submodule.temp}"/>
+         
+         <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.struct.xsd}h"
+            expression="${automation_driven.submodule.struct.h}"/>
+         
+         <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.namespaces.xsd}xsd"
+            expression="${automation_driven.submodule.namespaces.xsd}"/>
+         
+         <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.struct.xsd}read.xsd"
+            expression="${automation_driven.submodule.struct.read.xsd}"/>
+         <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.struct.xsd}read__communication_generated.xml"
+            expression="${automation_driven.submodule.struct.read__communication_generated.xml}"/>
+         <param name="{http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/automation_driven/automation_driven.submodule.struct.xsd}read__communication_generated.xsd"
+            expression="${automation_driven.submodule.struct.read__communication_generated.xsd}"/>
+         <classpath location="/opt/local/share/java/saxon9he.jar"/>
+         <xmlcatalog refid="dita-ot.dtd.catalog"/>
+      </xslt>
+   </target>
+   
    <!--<target name="automation_driven.submodule.struct.read.enumerate.xsd"
       description="to enumerate unique attributes " depends="automation_driven.submodule.xsd__struct_files">
       <echo>#42 generating ${automation_driven.submodule.struct.read.enumerate.xsd} using ${automation_driven.submodule.struct.read.xsd}</echo>

+ 0 - 2492
SE/stuff/P5_Automation-library-dev/AGirs/Doxyfile

@@ -1,2492 +0,0 @@
-# Doxyfile 1.8.14
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project.
-#
-# All text after a double hash (##) is considered a comment and is placed in
-# front of the TAG it is preceding.
-#
-# All text after a single hash (#) is considered a comment and will be ignored.
-# The format is:
-# TAG = value [value, ...]
-# For lists, items can also be appended using:
-# TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (\" \").
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all text
-# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
-# built into libc) for the transcoding. See
-# https://www.gnu.org/software/libiconv/ for the list of possible encodings.
-# The default value is: UTF-8.
-
-DOXYFILE_ENCODING      = UTF-8
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
-# double-quotes, unless you are using Doxywizard) that should identify the
-# project for which the documentation is generated. This name is used in the
-# title of most generated pages and in a few other places.
-# The default value is: My Project.
-
-PROJECT_NAME           = "AGirs"
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
-# could be handy for archiving the generated documentation or if some version
-# control system is used.
-
-PROJECT_NUMBER         =
-
-# Using the PROJECT_BRIEF tag one can provide an optional one line description
-# for a project that appears at the top of each page and should give viewer a
-# quick idea about the purpose of the project. Keep the description short.
-
-PROJECT_BRIEF          =
-
-# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
-# in the documentation. The maximum height of the logo should not exceed 55
-# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
-# the logo to the output directory.
-
-PROJECT_LOGO           =
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
-# into which the generated documentation will be written. If a relative path is
-# entered, it will be relative to the location where doxygen was started. If
-# left blank the current directory will be used.
-
-OUTPUT_DIRECTORY       =
-
-# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
-# directories (in 2 levels) under the output directory of each output format and
-# will distribute the generated files over these directories. Enabling this
-# option can be useful when feeding doxygen a huge amount of source files, where
-# putting all generated files in the same directory would otherwise causes
-# performance problems for the file system.
-# The default value is: NO.
-
-CREATE_SUBDIRS         = NO
-
-# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
-# characters to appear in the names of generated files. If set to NO, non-ASCII
-# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
-# U+3044.
-# The default value is: NO.
-
-ALLOW_UNICODE_NAMES    = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
-# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
-# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
-# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
-# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
-# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
-# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
-# Ukrainian and Vietnamese.
-# The default value is: English.
-
-OUTPUT_LANGUAGE        = English
-
-# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
-# descriptions after the members that are listed in the file and class
-# documentation (similar to Javadoc). Set to NO to disable this.
-# The default value is: YES.
-
-BRIEF_MEMBER_DESC      = YES
-
-# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
-# description of a member or function before the detailed description
-#
-# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-# The default value is: YES.
-
-REPEAT_BRIEF           = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator that is
-# used to form the text in various listings. Each string in this list, if found
-# as the leading text of the brief description, will be stripped from the text
-# and the result, after processing the whole list, is used as the annotated
-# text. Otherwise, the brief description is used as-is. If left blank, the
-# following values are used ($name is automatically replaced with the name of
-# the entity):The $name class, The $name widget, The $name file, is, provides,
-# specifies, contains, represents, a, an and the.
-
-ABBREVIATE_BRIEF       = "The $name class" \
-                         "The $name widget" \
-                         "The $name file" \
-                         is \
-                         provides \
-                         specifies \
-                         contains \
-                         represents \
-                         a \
-                         an \
-                         the
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# doxygen will generate a detailed section even if there is only a brief
-# description.
-# The default value is: NO.
-
-ALWAYS_DETAILED_SEC    = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-# The default value is: NO.
-
-INLINE_INHERITED_MEMB  = NO
-
-# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
-# before files name in the file list and in the header files. If set to NO the
-# shortest path that makes the file name unique will be used
-# The default value is: YES.
-
-FULL_PATH_NAMES        = YES
-
-# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
-# Stripping is only done if one of the specified strings matches the left-hand
-# part of the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the path to
-# strip.
-#
-# Note that you can specify absolute paths here, but also relative paths, which
-# will be relative from the directory where doxygen is started.
-# This tag requires that the tag FULL_PATH_NAMES is set to YES.
-
-STRIP_FROM_PATH        =
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
-# path mentioned in the documentation of a class, which tells the reader which
-# header file to include in order to use a class. If left blank only the name of
-# the header file containing the class definition is used. Otherwise one should
-# specify the list of include paths that are normally passed to the compiler
-# using the -I flag.
-
-STRIP_FROM_INC_PATH    =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
-# less readable) file names. This can be useful is your file systems doesn't
-# support long names like on DOS, Mac, or CD-ROM.
-# The default value is: NO.
-
-SHORT_NAMES            = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
-# first line (until the first dot) of a Javadoc-style comment as the brief
-# description. If set to NO, the Javadoc-style will behave just like regular Qt-
-# style comments (thus requiring an explicit @brief command for a brief
-# description.)
-# The default value is: NO.
-
-JAVADOC_AUTOBRIEF      = YES
-
-# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
-# line (until the first dot) of a Qt-style comment as the brief description. If
-# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
-# requiring an explicit \brief command for a brief description.)
-# The default value is: NO.
-
-QT_AUTOBRIEF           = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
-# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
-# a brief description. This used to be the default behavior. The new default is
-# to treat a multi-line C++ comment block as a detailed description. Set this
-# tag to YES if you prefer the old behavior instead.
-#
-# Note that setting this tag to YES also means that rational rose comments are
-# not recognized any more.
-# The default value is: NO.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
-# documentation from any documented member that it re-implements.
-# The default value is: YES.
-
-INHERIT_DOCS           = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
-# page for each member. If set to NO, the documentation of a member will be part
-# of the file/class/namespace that contains it.
-# The default value is: NO.
-
-SEPARATE_MEMBER_PAGES  = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
-# uses this value to replace tabs by spaces in code fragments.
-# Minimum value: 1, maximum value: 16, default value: 4.
-
-TAB_SIZE               = 4
-
-# This tag can be used to specify a number of aliases that act as commands in
-# the documentation. An alias has the form:
-# name=value
-# For example adding
-# "sideeffect=@par Side Effects:\n"
-# will allow you to put the command \sideeffect (or @sideeffect) in the
-# documentation, which will result in a user-defined paragraph with heading
-# "Side Effects:". You can put \n's in the value part of an alias to insert
-# newlines (in the resulting output). You can put ^^ in the value part of an
-# alias to insert a newline as if a physical newline was in the original file.
-
-ALIASES                =
-
-# This tag can be used to specify a number of word-keyword mappings (TCL only).
-# A mapping has the form "name=value". For example adding "class=itcl::class"
-# will allow you to use the command class in the itcl::class meaning.
-
-TCL_SUBST              =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
-# only. Doxygen will then generate output that is more tailored for C. For
-# instance, some of the names that are used will be different. The list of all
-# members will be omitted, etc.
-# The default value is: NO.
-
-OPTIMIZE_OUTPUT_FOR_C  = NO
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
-# Python sources only. Doxygen will then generate output that is more tailored
-# for that language. For instance, namespaces will be presented as packages,
-# qualified scopes will look different, etc.
-# The default value is: NO.
-
-OPTIMIZE_OUTPUT_JAVA   = NO
-
-# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-# sources. Doxygen will then generate output that is tailored for Fortran.
-# The default value is: NO.
-
-OPTIMIZE_FOR_FORTRAN   = NO
-
-# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-# sources. Doxygen will then generate output that is tailored for VHDL.
-# The default value is: NO.
-
-OPTIMIZE_OUTPUT_VHDL   = NO
-
-# Doxygen selects the parser to use depending on the extension of the files it
-# parses. With this tag you can assign which parser to use for a given
-# extension. Doxygen has a built-in mapping, but you can override or extend it
-# using this tag. The format is ext=language, where ext is a file extension, and
-# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
-# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
-# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
-# Fortran. In the later case the parser tries to guess whether the code is fixed
-# or free formatted code, this is the default for Fortran type files), VHDL. For
-# instance to make doxygen treat .inc files as Fortran files (default is PHP),
-# and .f files as C (default is Fortran), use: inc=Fortran f=C.
-#
-# Note: For files without extension you can use no_extension as a placeholder.
-#
-# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
-# the files are not read by doxygen.
-
-EXTENSION_MAPPING      =
-
-# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
-# according to the Markdown format, which allows for more readable
-# documentation. See http://daringfireball.net/projects/markdown/ for details.
-# The output of markdown processing is further processed by doxygen, so you can
-# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
-# case of backward compatibilities issues.
-# The default value is: YES.
-
-MARKDOWN_SUPPORT       = YES
-
-# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up
-# to that level are automatically included in the table of contents, even if
-# they do not have an id attribute.
-# Note: This feature currently applies only to Markdown headings.
-# Minimum value: 0, maximum value: 99, default value: 0.
-# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
-
-TOC_INCLUDE_HEADINGS   = 0
-
-# When enabled doxygen tries to link words that correspond to documented
-# classes, or namespaces to their corresponding documentation. Such a link can
-# be prevented in individual cases by putting a % sign in front of the word or
-# globally by setting AUTOLINK_SUPPORT to NO.
-# The default value is: YES.
-
-AUTOLINK_SUPPORT       = YES
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-# to include (a tag file for) the STL sources as input, then you should set this
-# tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string);
-# versus func(std::string) {}). This also make the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-# The default value is: NO.
-
-BUILTIN_STL_SUPPORT    = NO
-
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-# The default value is: NO.
-
-CPP_CLI_SUPPORT        = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
-# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen
-# will parse them like normal C++ but will assume all classes use public instead
-# of private inheritance when no explicit protection keyword is present.
-# The default value is: NO.
-
-SIP_SUPPORT            = NO
-
-# For Microsoft's IDL there are propget and propput attributes to indicate
-# getter and setter methods for a property. Setting this option to YES will make
-# doxygen to replace the get and set methods by a property in the documentation.
-# This will only work if the methods are indeed getting or setting a simple
-# type. If this is not the case, or you want to show the methods anyway, you
-# should set this option to NO.
-# The default value is: YES.
-
-IDL_PROPERTY_SUPPORT   = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-# The default value is: NO.
-
-DISTRIBUTE_GROUP_DOC   = NO
-
-# If one adds a struct or class to a group and this option is enabled, then also
-# any nested class or struct is added to the same group. By default this option
-# is disabled and one has to add nested compounds explicitly via \ingroup.
-# The default value is: NO.
-
-GROUP_NESTED_COMPOUNDS = NO
-
-# Set the SUBGROUPING tag to YES to allow class member groups of the same type
-# (for instance a group of public functions) to be put as a subgroup of that
-# type (e.g. under the Public Functions section). Set it to NO to prevent
-# subgrouping. Alternatively, this can be done per class using the
-# \nosubgrouping command.
-# The default value is: YES.
-
-SUBGROUPING            = YES
-
-# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
-# are shown inside the group in which they are included (e.g. using \ingroup)
-# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
-# and RTF).
-#
-# Note that this feature does not work in combination with
-# SEPARATE_MEMBER_PAGES.
-# The default value is: NO.
-
-INLINE_GROUPED_CLASSES = NO
-
-# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
-# with only public data fields or simple typedef fields will be shown inline in
-# the documentation of the scope in which they are defined (i.e. file,
-# namespace, or group documentation), provided this scope is documented. If set
-# to NO, structs, classes, and unions are shown on a separate page (for HTML and
-# Man pages) or section (for LaTeX and RTF).
-# The default value is: NO.
-
-INLINE_SIMPLE_STRUCTS  = NO
-
-# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
-# enum is documented as struct, union, or enum with the name of the typedef. So
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-# with name TypeT. When disabled the typedef will appear as a member of a file,
-# namespace, or class. And the struct will be named TypeS. This can typically be
-# useful for C code in case the coding convention dictates that all compound
-# types are typedef'ed and only the typedef is referenced, never the tag name.
-# The default value is: NO.
-
-TYPEDEF_HIDES_STRUCT   = NO
-
-# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
-# cache is used to resolve symbols given their name and scope. Since this can be
-# an expensive process and often the same symbol appears multiple times in the
-# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
-# doxygen will become slower. If the cache is too large, memory is wasted. The
-# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
-# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
-# symbols. At the end of a run doxygen will report the cache usage and suggest
-# the optimal cache size from a speed point of view.
-# Minimum value: 0, maximum value: 9, default value: 0.
-
-LOOKUP_CACHE_SIZE      = 0
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
-# documentation are documented, even if no documentation was available. Private
-# class members and static file members will be hidden unless the
-# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
-# Note: This will also disable the warnings about undocumented members that are
-# normally produced when WARNINGS is set to YES.
-# The default value is: NO.
-
-EXTRACT_ALL            = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
-# be included in the documentation.
-# The default value is: NO.
-
-EXTRACT_PRIVATE        = NO
-
-# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
-# scope will be included in the documentation.
-# The default value is: NO.
-
-EXTRACT_PACKAGE        = NO
-
-# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
-# included in the documentation.
-# The default value is: NO.
-
-EXTRACT_STATIC         = YES
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
-# locally in source files will be included in the documentation. If set to NO,
-# only classes defined in header files are included. Does not have any effect
-# for Java sources.
-# The default value is: YES.
-
-EXTRACT_LOCAL_CLASSES  = YES
-
-# This flag is only useful for Objective-C code. If set to YES, local methods,
-# which are defined in the implementation section but not in the interface are
-# included in the documentation. If set to NO, only methods in the interface are
-# included.
-# The default value is: NO.
-
-EXTRACT_LOCAL_METHODS  = NO
-
-# If this flag is set to YES, the members of anonymous namespaces will be
-# extracted and appear in the documentation as a namespace called
-# 'anonymous_namespace{file}', where file will be replaced with the base name of
-# the file that contains the anonymous namespace. By default anonymous namespace
-# are hidden.
-# The default value is: NO.
-
-EXTRACT_ANON_NSPACES   = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
-# undocumented members inside documented classes or files. If set to NO these
-# members will be included in the various overviews, but no documentation
-# section is generated. This option has no effect if EXTRACT_ALL is enabled.
-# The default value is: NO.
-
-HIDE_UNDOC_MEMBERS     = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy. If set
-# to NO, these classes will be included in the various overviews. This option
-# has no effect if EXTRACT_ALL is enabled.
-# The default value is: NO.
-
-HIDE_UNDOC_CLASSES     = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
-# (class|struct|union) declarations. If set to NO, these declarations will be
-# included in the documentation.
-# The default value is: NO.
-
-HIDE_FRIEND_COMPOUNDS  = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
-# documentation blocks found inside the body of a function. If set to NO, these
-# blocks will be appended to the function's detailed documentation block.
-# The default value is: NO.
-
-HIDE_IN_BODY_DOCS      = NO
-
-# The INTERNAL_DOCS tag determines if documentation that is typed after a
-# \internal command is included. If the tag is set to NO then the documentation
-# will be excluded. Set it to YES to include the internal documentation.
-# The default value is: NO.
-
-INTERNAL_DOCS          = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
-# names in lower-case letters. If set to YES, upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-# The default value is: system dependent.
-
-CASE_SENSE_NAMES       = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
-# their full class and namespace scopes in the documentation. If set to YES, the
-# scope will be hidden.
-# The default value is: NO.
-
-HIDE_SCOPE_NAMES       = NO
-
-# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
-# append additional text to a page's title, such as Class Reference. If set to
-# YES the compound reference will be hidden.
-# The default value is: NO.
-
-HIDE_COMPOUND_REFERENCE= NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
-# the files that are included by a file in the documentation of that file.
-# The default value is: YES.
-
-SHOW_INCLUDE_FILES     = YES
-
-# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
-# grouped member an include statement to the documentation, telling the reader
-# which file to include in order to use the member.
-# The default value is: NO.
-
-SHOW_GROUPED_MEMB_INC  = NO
-
-# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
-# files with double quotes in the documentation rather than with sharp brackets.
-# The default value is: NO.
-
-FORCE_LOCAL_INCLUDES   = NO
-
-# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
-# documentation for inline members.
-# The default value is: YES.
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
-# (detailed) documentation of file and class members alphabetically by member
-# name. If set to NO, the members will appear in declaration order.
-# The default value is: YES.
-
-SORT_MEMBER_DOCS       = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
-# descriptions of file, namespace and class members alphabetically by member
-# name. If set to NO, the members will appear in declaration order. Note that
-# this will also influence the order of the classes in the class list.
-# The default value is: NO.
-
-SORT_BRIEF_DOCS        = NO
-
-# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
-# (brief and detailed) documentation of class members so that constructors and
-# destructors are listed first. If set to NO the constructors will appear in the
-# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
-# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
-# member documentation.
-# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
-# detailed member documentation.
-# The default value is: NO.
-
-SORT_MEMBERS_CTORS_1ST = YES
-
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
-# of group names into alphabetical order. If set to NO the group names will
-# appear in their defined order.
-# The default value is: NO.
-
-SORT_GROUP_NAMES       = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
-# fully-qualified names, including namespaces. If set to NO, the class list will
-# be sorted only by class name, not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the alphabetical
-# list.
-# The default value is: NO.
-
-SORT_BY_SCOPE_NAME     = NO
-
-# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
-# type resolution of all parameters of a function it will reject a match between
-# the prototype and the implementation of a member function even if there is
-# only one candidate or it is obvious which candidate to choose by doing a
-# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
-# accept a match between prototype and implementation in such cases.
-# The default value is: NO.
-
-STRICT_PROTO_MATCHING  = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
-# list. This list is created by putting \todo commands in the documentation.
-# The default value is: YES.
-
-GENERATE_TODOLIST      = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
-# list. This list is created by putting \test commands in the documentation.
-# The default value is: YES.
-
-GENERATE_TESTLIST      = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
-# list. This list is created by putting \bug commands in the documentation.
-# The default value is: YES.
-
-GENERATE_BUGLIST       = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
-# the deprecated list. This list is created by putting \deprecated commands in
-# the documentation.
-# The default value is: YES.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional documentation
-# sections, marked by \if <section_label> ... \endif and \cond <section_label>
-# ... \endcond blocks.
-
-ENABLED_SECTIONS       =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
-# initial value of a variable or macro / define can have for it to appear in the
-# documentation. If the initializer consists of more lines than specified here
-# it will be hidden. Use a value of 0 to hide initializers completely. The
-# appearance of the value of individual variables and macros / defines can be
-# controlled using \showinitializer or \hideinitializer command in the
-# documentation regardless of this setting.
-# Minimum value: 0, maximum value: 10000, default value: 30.
-
-MAX_INITIALIZER_LINES  = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
-# the bottom of the documentation of classes and structs. If set to YES, the
-# list will mention the files that were used to generate the documentation.
-# The default value is: YES.
-
-SHOW_USED_FILES        = YES
-
-# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
-# will remove the Files entry from the Quick Index and from the Folder Tree View
-# (if specified).
-# The default value is: YES.
-
-SHOW_FILES             = YES
-
-# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
-# page. This will remove the Namespaces entry from the Quick Index and from the
-# Folder Tree View (if specified).
-# The default value is: YES.
-
-SHOW_NAMESPACES        = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from
-# the version control system). Doxygen will invoke the program by executing (via
-# popen()) the command command input-file, where command is the value of the
-# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
-# by doxygen. Whatever the program writes to standard output is used as the file
-# version. For an example see the documentation.
-
-FILE_VERSION_FILTER    =
-
-# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
-# by doxygen. The layout file controls the global structure of the generated
-# output files in an output format independent way. To create the layout file
-# that represents doxygen's defaults, run doxygen with the -l option. You can
-# optionally specify a file name after the option, if omitted DoxygenLayout.xml
-# will be used as the name of the layout file.
-#
-# Note that if you run doxygen from a directory containing a file called
-# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
-# tag is left empty.
-
-LAYOUT_FILE            =
-
-# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
-# the reference definitions. This must be a list of .bib files. The .bib
-# extension is automatically appended if omitted. This requires the bibtex tool
-# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info.
-# For LaTeX the style of the bibliography can be controlled using
-# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
-# search path. See also \cite for info how to create references.
-
-CITE_BIB_FILES         =
-
-#---------------------------------------------------------------------------
-# Configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated to
-# standard output by doxygen. If QUIET is set to YES this implies that the
-# messages are off.
-# The default value is: NO.
-
-QUIET                  = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
-# this implies that the warnings are on.
-#
-# Tip: Turn warnings on while writing the documentation.
-# The default value is: YES.
-
-WARNINGS               = YES
-
-# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
-# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
-# will automatically be disabled.
-# The default value is: YES.
-
-WARN_IF_UNDOCUMENTED   = YES
-
-# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some parameters
-# in a documented function, or documenting parameters that don't exist or using
-# markup commands wrongly.
-# The default value is: YES.
-
-WARN_IF_DOC_ERROR      = YES
-
-# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
-# are documented, but have no documentation for their parameters or return
-# value. If set to NO, doxygen will only warn about wrong or incomplete
-# parameter documentation, but not about the absence of documentation.
-# The default value is: NO.
-
-WARN_NO_PARAMDOC       = NO
-
-# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
-# a warning is encountered.
-# The default value is: NO.
-
-WARN_AS_ERROR          = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that doxygen
-# can produce. The string should contain the $file, $line, and $text tags, which
-# will be replaced by the file and line number from which the warning originated
-# and the warning text. Optionally the format may contain $version, which will
-# be replaced by the version of the file (if it could be obtained via
-# FILE_VERSION_FILTER)
-# The default value is: $file:$line: $text.
-
-WARN_FORMAT            = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning and error
-# messages should be written. If left blank the output is written to standard
-# error (stderr).
-
-WARN_LOGFILE           =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag is used to specify the files and/or directories that contain
-# documented source files. You may enter file names like myfile.cpp or
-# directories like /usr/src/myproject. Separate the files or directories with
-# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
-# Note: If this tag is empty the current directory is searched.
-
-INPUT                  = . \
-                         src \
-                         src/GirsLib \
-                         src/hardware-config \
-                         examples/Girs \
-                         examples/Listener
-
-# This tag can be used to specify the character encoding of the source files
-# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
-# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
-# documentation (see: https://www.gnu.org/software/libiconv/) for the list of
-# possible encodings.
-# The default value is: UTF-8.
-
-INPUT_ENCODING         = UTF-8
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
-# *.h) to filter out the source-files in the directories.
-#
-# Note that for custom extensions or not directly supported extensions you also
-# need to set EXTENSION_MAPPING for the extension otherwise the files are not
-# read by doxygen.
-#
-# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
-# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
-# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
-# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08,
-# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf.
-
-FILE_PATTERNS          = *.c \
-                         *.cc \
-                         *.cxx \
-                         *.cpp \
-                         *.c++ \
-                         *.java \
-                         *.ii \
-                         *.ixx \
-                         *.ipp \
-                         *.i++ \
-                         *.inl \
-                         *.idl \
-                         *.ddl \
-                         *.odl \
-                         *.h \
-                         *.hh \
-                         *.hxx \
-                         *.hpp \
-                         *.h++ \
-                         *.cs \
-                         *.d \
-                         *.php \
-                         *.php4 \
-                         *.php5 \
-                         *.phtml \
-                         *.inc \
-                         *.m \
-                         *.markdown \
-                         *.md \
-                         *.mm \
-                         *.dox \
-                         *.py \
-                         *.pyw \
-                         *.f90 \
-                         *.f95 \
-                         *.f03 \
-                         *.f08 \
-                         *.f \
-                         *.for \
-                         *.tcl \
-                         *.vhd \
-                         *.vhdl \
-                         *.ucf \
-                         *.qsf
-
-# The RECURSIVE tag can be used to specify whether or not subdirectories should
-# be searched for input files as well.
-# The default value is: NO.
-
-RECURSIVE              = NO
-
-# The EXCLUDE tag can be used to specify files and/or directories that should be
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-#
-# Note that relative paths are relative to the directory from which doxygen is
-# run.
-
-EXCLUDE                =
-
-# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
-# directories that are symbolic links (a Unix file system feature) are excluded
-# from the input.
-# The default value is: NO.
-
-EXCLUDE_SYMLINKS       = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories.
-#
-# Note that the wildcards are matched against the file with absolute path, so to
-# exclude all test directories for example use the pattern */test/*
-
-EXCLUDE_PATTERNS       =
-
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the
-# output. The symbol name can be a fully qualified name, a word, or if the
-# wildcard * is used, a substring. Examples: ANamespace, AClass,
-# AClass::ANamespace, ANamespace::*Test
-#
-# Note that the wildcards are matched against the file with absolute path, so to
-# exclude all test directories use the pattern */test/*
-
-EXCLUDE_SYMBOLS        =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or directories
-# that contain example code fragments that are included (see the \include
-# command).
-
-EXAMPLE_PATH           =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
-# *.h) to filter out the source-files in the directories. If left blank all
-# files are included.
-
-EXAMPLE_PATTERNS       =
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude commands
-# irrespective of the value of the RECURSIVE tag.
-# The default value is: NO.
-
-EXAMPLE_RECURSIVE      = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or directories
-# that contain images that are to be included in the documentation (see the
-# \image command).
-
-IMAGE_PATH             =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command:
-#
-# <filter> <input-file>
-#
-# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
-# name of an input file. Doxygen will then use the output that the filter
-# program writes to standard output. If FILTER_PATTERNS is specified, this tag
-# will be ignored.
-#
-# Note that the filter must not add or remove lines; it is applied before the
-# code is scanned, but not when the output code is generated. If lines are added
-# or removed, the anchors will not be placed correctly.
-#
-# Note that for custom extensions or not directly supported extensions you also
-# need to set EXTENSION_MAPPING for the extension otherwise the files are not
-# properly processed by doxygen.
-
-INPUT_FILTER           =
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis. Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match. The filters are a list of the form: pattern=filter
-# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
-# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
-# patterns match the file name, INPUT_FILTER is applied.
-#
-# Note that for custom extensions or not directly supported extensions you also
-# need to set EXTENSION_MAPPING for the extension otherwise the files are not
-# properly processed by doxygen.
-
-FILTER_PATTERNS        =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will also be used to filter the input files that are used for
-# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
-# The default value is: NO.
-
-FILTER_SOURCE_FILES    = NO
-
-# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
-# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
-# it is also possible to disable source filtering for a specific pattern using
-# *.ext= (so without naming a filter).
-# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
-
-FILTER_SOURCE_PATTERNS =
-
-# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
-# is part of the input, its contents will be placed on the main page
-# (index.html). This can be useful if you have a project on for instance GitHub
-# and want to reuse the introduction page also for the doxygen output.
-
-USE_MDFILE_AS_MAINPAGE = README.md
-
-#---------------------------------------------------------------------------
-# Configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
-# generated. Documented entities will be cross-referenced with these sources.
-#
-# Note: To get rid of all source code in the generated output, make sure that
-# also VERBATIM_HEADERS is set to NO.
-# The default value is: NO.
-
-SOURCE_BROWSER         = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body of functions,
-# classes and enums directly into the documentation.
-# The default value is: NO.
-
-INLINE_SOURCES         = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
-# special comment blocks from generated source code fragments. Normal C, C++ and
-# Fortran comments will always remain visible.
-# The default value is: YES.
-
-STRIP_CODE_COMMENTS    = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
-# function all documented functions referencing it will be listed.
-# The default value is: NO.
-
-REFERENCED_BY_RELATION = NO
-
-# If the REFERENCES_RELATION tag is set to YES then for each documented function
-# all documented entities called/used by that function will be listed.
-# The default value is: NO.
-
-REFERENCES_RELATION    = NO
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
-# to YES then the hyperlinks from functions in REFERENCES_RELATION and
-# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
-# link to the documentation.
-# The default value is: YES.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
-# source code will show a tooltip with additional information such as prototype,
-# brief description and links to the definition and documentation. Since this
-# will make the HTML file larger and loading of large files a bit slower, you
-# can opt to disable this feature.
-# The default value is: YES.
-# This tag requires that the tag SOURCE_BROWSER is set to YES.
-
-SOURCE_TOOLTIPS        = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code will
-# point to the HTML generated by the htags(1) tool instead of doxygen built-in
-# source browser. The htags tool is part of GNU's global source tagging system
-# (see https://www.gnu.org/software/global/global.html). You will need version
-# 4.8.6 or higher.
-#
-# To use it do the following:
-# - Install the latest version of global
-# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
-# - Make sure the INPUT points to the root of the source tree
-# - Run doxygen as normal
-#
-# Doxygen will invoke htags (and that will in turn invoke gtags), so these
-# tools must be available from the command line (i.e. in the search path).
-#
-# The result: instead of the source browser generated by doxygen, the links to
-# source code will now point to the output of htags.
-# The default value is: NO.
-# This tag requires that the tag SOURCE_BROWSER is set to YES.
-
-USE_HTAGS              = NO
-
-# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
-# verbatim copy of the header file for each class for which an include is
-# specified. Set to NO to disable this.
-# See also: Section \class.
-# The default value is: YES.
-
-VERBATIM_HEADERS       = YES
-
-#---------------------------------------------------------------------------
-# Configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
-# compounds will be generated. Enable this if the project contains a lot of
-# classes, structs, unions or interfaces.
-# The default value is: YES.
-
-ALPHABETICAL_INDEX     = YES
-
-# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
-# which the alphabetical index list will be split.
-# Minimum value: 1, maximum value: 20, default value: 5.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-COLS_IN_ALPHA_INDEX    = 5
-
-# In case all classes in a project start with a common prefix, all classes will
-# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
-# can be used to specify a prefix (or a list of prefixes) that should be ignored
-# while generating the index headers.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-IGNORE_PREFIX          =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
-# The default value is: YES.
-
-GENERATE_HTML          = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it.
-# The default directory is: html.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_OUTPUT            = api-doc
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
-# generated HTML page (for example: .htm, .php, .asp).
-# The default value is: .html.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_FILE_EXTENSION    = .html
-
-# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
-# each generated HTML page. If the tag is left blank doxygen will generate a
-# standard header.
-#
-# To get valid HTML the header file that includes any scripts and style sheets
-# that doxygen needs, which is dependent on the configuration options used (e.g.
-# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
-# default header using
-# doxygen -w html new_header.html new_footer.html new_stylesheet.css
-# YourConfigFile
-# and then modify the file new_header.html. See also section "Doxygen usage"
-# for information on how to generate the default header that doxygen normally
-# uses.
-# Note: The header is subject to change so you typically have to regenerate the
-# default header when upgrading to a newer version of doxygen. For a description
-# of the possible markers and block names see the documentation.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_HEADER            =
-
-# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
-# generated HTML page. If the tag is left blank doxygen will generate a standard
-# footer. See HTML_HEADER for more information on how to generate a default
-# footer and what special commands can be used inside the footer. See also
-# section "Doxygen usage" for information on how to generate the default footer
-# that doxygen normally uses.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_FOOTER            =
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
-# sheet that is used by each HTML page. It can be used to fine-tune the look of
-# the HTML output. If left blank doxygen will generate a default style sheet.
-# See also section "Doxygen usage" for information on how to generate the style
-# sheet that doxygen normally uses.
-# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
-# it is more robust and this tag (HTML_STYLESHEET) will in the future become
-# obsolete.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_STYLESHEET        =
-
-# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
-# cascading style sheets that are included after the standard style sheets
-# created by doxygen. Using this option one can overrule certain style aspects.
-# This is preferred over using HTML_STYLESHEET since it does not replace the
-# standard style sheet and is therefore more robust against future updates.
-# Doxygen will copy the style sheet files to the output directory.
-# Note: The order of the extra style sheet files is of importance (e.g. the last
-# style sheet in the list overrules the setting of the previous ones in the
-# list). For an example see the documentation.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_EXTRA_STYLESHEET  =
-
-# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
-# other source files which should be copied to the HTML output directory. Note
-# that these files will be copied to the base HTML output directory. Use the
-# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
-# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
-# files will be copied as-is; there are no commands or markers available.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_EXTRA_FILES       =
-
-# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
-# will adjust the colors in the style sheet and background images according to
-# this color. Hue is specified as an angle on a colorwheel, see
-# https://en.wikipedia.org/wiki/Hue for more information. For instance the value
-# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
-# purple, and 360 is red again.
-# Minimum value: 0, maximum value: 359, default value: 220.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_COLORSTYLE_HUE    = 220
-
-# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
-# in the HTML output. For a value of 0 the output will use grayscales only. A
-# value of 255 will produce the most vivid colors.
-# Minimum value: 0, maximum value: 255, default value: 100.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_COLORSTYLE_SAT    = 100
-
-# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
-# luminance component of the colors in the HTML output. Values below 100
-# gradually make the output lighter, whereas values above 100 make the output
-# darker. The value divided by 100 is the actual gamma applied, so 80 represents
-# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
-# change the gamma.
-# Minimum value: 40, maximum value: 240, default value: 80.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_COLORSTYLE_GAMMA  = 80
-
-# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-# page will contain the date and time when the page was generated. Setting this
-# to YES can help to show when doxygen was last run and thus if the
-# documentation is up to date.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_TIMESTAMP         = YES
-
-# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML
-# documentation will contain a main index with vertical navigation menus that
-# are dynamically created via Javascript. If disabled, the navigation index will
-# consists of multiple levels of tabs that are statically embedded in every HTML
-# page. Disable this option to support browsers that do not have Javascript,
-# like the Qt help browser.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_DYNAMIC_MENUS     = YES
-
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_DYNAMIC_SECTIONS  = NO
-
-# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
-# shown in the various tree structured indices initially; the user can expand
-# and collapse entries dynamically later on. Doxygen will expand the tree to
-# such a level that at most the specified number of entries are visible (unless
-# a fully collapsed tree already exceeds this amount). So setting the number of
-# entries 1 will produce a full collapsed tree by default. 0 is a special value
-# representing an infinite number of entries and will result in a full expanded
-# tree by default.
-# Minimum value: 0, maximum value: 9999, default value: 100.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_INDEX_NUM_ENTRIES = 100
-
-# If the GENERATE_DOCSET tag is set to YES, additional index files will be
-# generated that can be used as input for Apple's Xcode 3 integrated development
-# environment (see: https://developer.apple.com/tools/xcode/), introduced with
-# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
-# Makefile in the HTML output directory. Running make will produce the docset in
-# that directory and running make install will install the docset in
-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
-# startup. See https://developer.apple.com/tools/creatingdocsetswithdoxygen.html
-# for more information.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_DOCSET        = NO
-
-# This tag determines the name of the docset feed. A documentation feed provides
-# an umbrella under which multiple documentation sets from a single provider
-# (such as a company or product suite) can be grouped.
-# The default value is: Doxygen generated docs.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_FEEDNAME        = "Doxygen generated docs"
-
-# This tag specifies a string that should uniquely identify the documentation
-# set bundle. This should be a reverse domain-name style string, e.g.
-# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
-# The default value is: org.doxygen.Project.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_BUNDLE_ID       = org.harctoolbox.AGirs
-
-# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
-# the documentation publisher. This should be a reverse domain-name style
-# string, e.g. com.mycompany.MyDocSet.documentation.
-# The default value is: org.doxygen.Publisher.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_PUBLISHER_ID    = org.harctoolbox
-
-# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
-# The default value is: Publisher.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_PUBLISHER_NAME  = Publisher
-
-# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
-# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
-# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
-# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
-# Windows.
-#
-# The HTML Help Workshop contains a compiler that can convert all HTML output
-# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
-# files are now used as the Windows 98 help format, and will replace the old
-# Windows help format (.hlp) on all Windows platforms in the future. Compressed
-# HTML files also contain an index, a table of contents, and you can search for
-# words in the documentation. The HTML workshop also contains a viewer for
-# compressed HTML files.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_HTMLHELP      = NO
-
-# The CHM_FILE tag can be used to specify the file name of the resulting .chm
-# file. You can add a path in front of the file if the result should not be
-# written to the html output directory.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-CHM_FILE               =
-
-# The HHC_LOCATION tag can be used to specify the location (absolute path
-# including file name) of the HTML help compiler (hhc.exe). If non-empty,
-# doxygen will try to run the HTML help compiler on the generated index.hhp.
-# The file has to be specified with full path.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-HHC_LOCATION           =
-
-# The GENERATE_CHI flag controls if a separate .chi index file is generated
-# (YES) or that it should be included in the master .chm file (NO).
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-GENERATE_CHI           = NO
-
-# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
-# and project file content.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-CHM_INDEX_ENCODING     =
-
-# The BINARY_TOC flag controls whether a binary table of contents is generated
-# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
-# enables the Previous and Next buttons.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-BINARY_TOC             = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members to
-# the table of contents of the HTML help documentation and to the tree view.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-TOC_EXPAND             = NO
-
-# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
-# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
-# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
-# (.qch) of the generated HTML documentation.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_QHP           = NO
-
-# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
-# the file name of the resulting .qch file. The path specified is relative to
-# the HTML output folder.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QCH_FILE               =
-
-# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
-# Project output. For more information please see Qt Help Project / Namespace
-# (see: http://doc.qt.io/qt-4.8/qthelpproject.html#namespace).
-# The default value is: org.doxygen.Project.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_NAMESPACE          = org.doxygen.Project
-
-# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
-# Help Project output. For more information please see Qt Help Project / Virtual
-# Folders (see: http://doc.qt.io/qt-4.8/qthelpproject.html#virtual-folders).
-# The default value is: doc.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_VIRTUAL_FOLDER     = doc
-
-# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
-# filter to add. For more information please see Qt Help Project / Custom
-# Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters).
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_CUST_FILTER_NAME   =
-
-# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
-# custom filter to add. For more information please see Qt Help Project / Custom
-# Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters).
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_CUST_FILTER_ATTRS  =
-
-# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
-# project's filter section matches. Qt Help Project / Filter Attributes (see:
-# http://doc.qt.io/qt-4.8/qthelpproject.html#filter-attributes).
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_SECT_FILTER_ATTRS  =
-
-# The QHG_LOCATION tag can be used to specify the location of Qt's
-# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
-# generated .qhp file.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHG_LOCATION           =
-
-# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
-# generated, together with the HTML files, they form an Eclipse help plugin. To
-# install this plugin and make it available under the help contents menu in
-# Eclipse, the contents of the directory containing the HTML and XML files needs
-# to be copied into the plugins directory of eclipse. The name of the directory
-# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
-# After copying Eclipse needs to be restarted before the help appears.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_ECLIPSEHELP   = NO
-
-# A unique identifier for the Eclipse help plugin. When installing the plugin
-# the directory name containing the HTML and XML files should also have this
-# name. Each documentation set should have its own identifier.
-# The default value is: org.doxygen.Project.
-# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
-
-ECLIPSE_DOC_ID         = org.doxygen.Project
-
-# If you want full control over the layout of the generated HTML pages it might
-# be necessary to disable the index and replace it with your own. The
-# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
-# of each HTML page. A value of NO enables the index and the value YES disables
-# it. Since the tabs in the index contain the same information as the navigation
-# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-DISABLE_INDEX          = NO
-
-# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-# structure should be generated to display hierarchical information. If the tag
-# value is set to YES, a side panel will be generated containing a tree-like
-# index structure (just like the one that is generated for HTML Help). For this
-# to work a browser that supports JavaScript, DHTML, CSS and frames is required
-# (i.e. any modern browser). Windows users are probably better off using the
-# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
-# further fine-tune the look of the index. As an example, the default style
-# sheet generated by doxygen has an example that shows how to put an image at
-# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
-# the same information as the tab index, you could consider setting
-# DISABLE_INDEX to YES when enabling this option.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_TREEVIEW      = NO
-
-# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
-# doxygen will group on one line in the generated HTML documentation.
-#
-# Note that a value of 0 will completely suppress the enum values from appearing
-# in the overview section.
-# Minimum value: 0, maximum value: 20, default value: 4.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-ENUM_VALUES_PER_LINE   = 4
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
-# to set the initial width (in pixels) of the frame in which the tree is shown.
-# Minimum value: 0, maximum value: 1500, default value: 250.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-TREEVIEW_WIDTH         = 250
-
-# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
-# external symbols imported via tag files in a separate window.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-EXT_LINKS_IN_WINDOW    = NO
-
-# Use this tag to change the font size of LaTeX formulas included as images in
-# the HTML documentation. When you change the font size after a successful
-# doxygen run you need to manually remove any form_*.png images from the HTML
-# output directory to force them to be regenerated.
-# Minimum value: 8, maximum value: 50, default value: 10.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-FORMULA_FONTSIZE       = 10
-
-# Use the FORMULA_TRANSPARENT tag to determine whether or not the images
-# generated for formulas are transparent PNGs. Transparent PNGs are not
-# supported properly for IE 6.0, but are supported on all modern browsers.
-#
-# Note that when changing this option you need to delete any form_*.png files in
-# the HTML output directory before the changes have effect.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-FORMULA_TRANSPARENT    = YES
-
-# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
-# https://www.mathjax.org) which uses client side Javascript for the rendering
-# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
-# installed or if you want to formulas look prettier in the HTML output. When
-# enabled you may also need to install MathJax separately and configure the path
-# to it using the MATHJAX_RELPATH option.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-USE_MATHJAX            = NO
-
-# When MathJax is enabled you can set the default output format to be used for
-# the MathJax output. See the MathJax site (see:
-# http://docs.mathjax.org/en/latest/output.html) for more details.
-# Possible values are: HTML-CSS (which is slower, but has the best
-# compatibility), NativeMML (i.e. MathML) and SVG.
-# The default value is: HTML-CSS.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_FORMAT         = HTML-CSS
-
-# When MathJax is enabled you need to specify the location relative to the HTML
-# output directory using the MATHJAX_RELPATH option. The destination directory
-# should contain the MathJax.js script. For instance, if the mathjax directory
-# is located at the same level as the HTML output directory, then
-# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
-# Content Delivery Network so you can quickly see the result without installing
-# MathJax. However, it is strongly recommended to install a local copy of
-# MathJax from https://www.mathjax.org before deployment.
-# The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest
-
-# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
-# extension names that should be enabled during MathJax rendering. For example
-# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_EXTENSIONS     =
-
-# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
-# of code that will be used on startup of the MathJax code. See the MathJax site
-# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
-# example see the documentation.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_CODEFILE       =
-
-# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
-# the HTML output. The underlying search engine uses javascript and DHTML and
-# should work on any modern browser. Note that when using HTML help
-# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
-# there is already a search function so this one should typically be disabled.
-# For large projects the javascript based search engine can be slow, then
-# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
-# search using the keyboard; to jump to the search box use <access key> + S
-# (what the <access key> is depends on the OS and browser, but it is typically
-# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
-# key> to jump into the search results window, the results can be navigated
-# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
-# the search. The filter options can be selected when the cursor is inside the
-# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
-# to select a filter and <Enter> or <escape> to activate or cancel the filter
-# option.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-SEARCHENGINE           = YES
-
-# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-# implemented using a web server instead of a web client using Javascript. There
-# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
-# setting. When disabled, doxygen will generate a PHP script for searching and
-# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
-# and searching needs to be provided by external tools. See the section
-# "External Indexing and Searching" for details.
-# The default value is: NO.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-SERVER_BASED_SEARCH    = NO
-
-# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
-# script for searching. Instead the search results are written to an XML file
-# which needs to be processed by an external indexer. Doxygen will invoke an
-# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
-# search results.
-#
-# Doxygen ships with an example indexer (doxyindexer) and search engine
-# (doxysearch.cgi) which are based on the open source search engine library
-# Xapian (see: https://xapian.org/).
-#
-# See the section "External Indexing and Searching" for details.
-# The default value is: NO.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-EXTERNAL_SEARCH        = NO
-
-# The SEARCHENGINE_URL should point to a search engine hosted by a web server
-# which will return the search results when EXTERNAL_SEARCH is enabled.
-#
-# Doxygen ships with an example indexer (doxyindexer) and search engine
-# (doxysearch.cgi) which are based on the open source search engine library
-# Xapian (see: https://xapian.org/). See the section "External Indexing and
-# Searching" for details.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-SEARCHENGINE_URL       =
-
-# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
-# search data is written to a file for indexing by an external tool. With the
-# SEARCHDATA_FILE tag the name of this file can be specified.
-# The default file is: searchdata.xml.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-SEARCHDATA_FILE        = searchdata.xml
-
-# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
-# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
-# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
-# projects and redirect the results back to the right project.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-EXTERNAL_SEARCH_ID     =
-
-# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
-# projects other than the one defined by this configuration file, but that are
-# all added to the same external search index. Each project needs to have a
-# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
-# to a relative location where the documentation can be found. The format is:
-# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-EXTRA_SEARCH_MAPPINGS  =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
-# The default value is: YES.
-
-GENERATE_LATEX         = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it.
-# The default directory is: latex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_OUTPUT           = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked.
-#
-# Note that when enabling USE_PDFLATEX this option is only used for generating
-# bitmaps for formulas in the HTML output, but not in the Makefile that is
-# written to the output directory.
-# The default file is: latex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_CMD_NAME         = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
-# index for LaTeX.
-# The default file is: makeindex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-MAKEINDEX_CMD_NAME     = makeindex
-
-# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
-# documents. This may be useful for small projects and may help to save some
-# trees in general.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-COMPACT_LATEX          = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used by the
-# printer.
-# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
-# 14 inches) and executive (7.25 x 10.5 inches).
-# The default value is: a4.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-PAPER_TYPE             = a4
-
-# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
-# that should be included in the LaTeX output. The package can be specified just
-# by its name or with the correct syntax as to be used with the LaTeX
-# \usepackage command. To get the times font for instance you can specify :
-# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
-# To use the option intlimits with the amsmath package you can specify:
-# EXTRA_PACKAGES=[intlimits]{amsmath}
-# If left blank no extra packages will be included.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-EXTRA_PACKAGES         =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
-# generated LaTeX document. The header should contain everything until the first
-# chapter. If it is left blank doxygen will generate a standard header. See
-# section "Doxygen usage" for information on how to let doxygen write the
-# default header to a separate file.
-#
-# Note: Only use a user-defined header if you know what you are doing! The
-# following commands have a special meaning inside the header: $title,
-# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
-# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
-# string, for the replacement values of the other commands the user is referred
-# to HTML_HEADER.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_HEADER           =
-
-# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
-# generated LaTeX document. The footer should contain everything after the last
-# chapter. If it is left blank doxygen will generate a standard footer. See
-# LATEX_HEADER for more information on how to generate a default footer and what
-# special commands can be used inside the footer.
-#
-# Note: Only use a user-defined footer if you know what you are doing!
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_FOOTER           =
-
-# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
-# LaTeX style sheets that are included after the standard style sheets created
-# by doxygen. Using this option one can overrule certain style aspects. Doxygen
-# will copy the style sheet files to the output directory.
-# Note: The order of the extra style sheet files is of importance (e.g. the last
-# style sheet in the list overrules the setting of the previous ones in the
-# list).
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_EXTRA_STYLESHEET =
-
-# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
-# other source files which should be copied to the LATEX_OUTPUT output
-# directory. Note that the files will be copied as-is; there are no commands or
-# markers available.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_EXTRA_FILES      =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
-# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
-# contain links (just like the HTML output) instead of page references. This
-# makes the output suitable for online browsing using a PDF viewer.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-PDF_HYPERLINKS         = YES
-
-# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
-# the PDF file directly from the LaTeX files. Set this option to YES, to get a
-# higher quality PDF documentation.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-USE_PDFLATEX           = YES
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
-# command to the generated LaTeX files. This will instruct LaTeX to keep running
-# if errors occur, instead of asking the user for help. This option is also used
-# when generating formulas in HTML.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_BATCHMODE        = NO
-
-# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
-# index chapters (such as File Index, Compound Index, etc.) in the output.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_HIDE_INDICES     = NO
-
-# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
-# code with syntax highlighting in the LaTeX output.
-#
-# Note that which sources are shown also depends on other settings such as
-# SOURCE_BROWSER.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_SOURCE_CODE      = NO
-
-# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
-# bibliography, e.g. plainnat, or ieeetr. See
-# https://en.wikipedia.org/wiki/BibTeX and \cite for more info.
-# The default value is: plain.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_BIB_STYLE        = plain
-
-# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
-# page will contain the date and time when the page was generated. Setting this
-# to NO can help when comparing the output of multiple runs.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_TIMESTAMP        = NO
-
-#---------------------------------------------------------------------------
-# Configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
-# RTF output is optimized for Word 97 and may not look too pretty with other RTF
-# readers/editors.
-# The default value is: NO.
-
-GENERATE_RTF           = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it.
-# The default directory is: rtf.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_OUTPUT             = rtf
-
-# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
-# documents. This may be useful for small projects and may help to save some
-# trees in general.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
-# contain hyperlink fields. The RTF file will contain links (just like the HTML
-# output) instead of page references. This makes the output suitable for online
-# browsing using Word or some other Word compatible readers that support those
-# fields.
-#
-# Note: WordPad (write) and others do not support links.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_HYPERLINKS         = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's config
-# file, i.e. a series of assignments. You only have to provide replacements,
-# missing definitions are set to their default value.
-#
-# See also section "Doxygen usage" for information on how to generate the
-# default style sheet that doxygen normally uses.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_STYLESHEET_FILE    =
-
-# Set optional variables used in the generation of an RTF document. Syntax is
-# similar to doxygen's config file. A template extensions file can be generated
-# using doxygen -e rtf extensionFile.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_EXTENSIONS_FILE    =
-
-# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
-# with syntax highlighting in the RTF output.
-#
-# Note that which sources are shown also depends on other settings such as
-# SOURCE_BROWSER.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_SOURCE_CODE        = NO
-
-#---------------------------------------------------------------------------
-# Configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
-# classes and files.
-# The default value is: NO.
-
-GENERATE_MAN           = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it. A directory man3 will be created inside the directory specified by
-# MAN_OUTPUT.
-# The default directory is: man.
-# This tag requires that the tag GENERATE_MAN is set to YES.
-
-MAN_OUTPUT             = man
-
-# The MAN_EXTENSION tag determines the extension that is added to the generated
-# man pages. In case the manual section does not start with a number, the number
-# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
-# optional.
-# The default value is: .3.
-# This tag requires that the tag GENERATE_MAN is set to YES.
-
-MAN_EXTENSION          = .3
-
-# The MAN_SUBDIR tag determines the name of the directory created within
-# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
-# MAN_EXTENSION with the initial . removed.
-# This tag requires that the tag GENERATE_MAN is set to YES.
-
-MAN_SUBDIR             =
-
-# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
-# will generate one additional man file for each entity documented in the real
-# man page(s). These additional files only source the real man page, but without
-# them the man command would be unable to find the correct page.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_MAN is set to YES.
-
-MAN_LINKS              = NO
-
-#---------------------------------------------------------------------------
-# Configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
-# captures the structure of the code including all documentation.
-# The default value is: NO.
-
-GENERATE_XML           = YES
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it.
-# The default directory is: xml.
-# This tag requires that the tag GENERATE_XML is set to YES.
-
-XML_OUTPUT             = xml
-
-# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
-# listings (including syntax highlighting and cross-referencing information) to
-# the XML output. Note that enabling this will significantly increase the size
-# of the XML output.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_XML is set to YES.
-
-XML_PROGRAMLISTING     = YES
-
-#---------------------------------------------------------------------------
-# Configuration options related to the DOCBOOK output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
-# that can be used to generate PDF.
-# The default value is: NO.
-
-GENERATE_DOCBOOK       = NO
-
-# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
-# front of it.
-# The default directory is: docbook.
-# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
-
-DOCBOOK_OUTPUT         = docbook
-
-# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
-# program listings (including syntax highlighting and cross-referencing
-# information) to the DOCBOOK output. Note that enabling this will significantly
-# increase the size of the DOCBOOK output.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
-
-DOCBOOK_PROGRAMLISTING = NO
-
-#---------------------------------------------------------------------------
-# Configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
-# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures
-# the structure of the code including all documentation. Note that this feature
-# is still experimental and incomplete at the moment.
-# The default value is: NO.
-
-GENERATE_AUTOGEN_DEF   = NO
-
-#---------------------------------------------------------------------------
-# Configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
-# file that captures the structure of the code including all documentation.
-#
-# Note that this feature is still experimental and incomplete at the moment.
-# The default value is: NO.
-
-GENERATE_PERLMOD       = NO
-
-# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
-# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
-# output from the Perl module output.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
-PERLMOD_LATEX          = NO
-
-# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
-# formatted so it can be parsed by a human reader. This is useful if you want to
-# understand what is going on. On the other hand, if this tag is set to NO, the
-# size of the Perl module output will be much smaller and Perl will parse it
-# just the same.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
-PERLMOD_PRETTY         = YES
-
-# The names of the make variables in the generated doxyrules.make file are
-# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
-# so different doxyrules.make files included by the same Makefile don't
-# overwrite each other's variables.
-# This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
-PERLMOD_MAKEVAR_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
-# C-preprocessor directives found in the sources and include files.
-# The default value is: YES.
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
-# in the source code. If set to NO, only conditional compilation will be
-# performed. Macro expansion can be done in a controlled way by setting
-# EXPAND_ONLY_PREDEF to YES.
-# The default value is: NO.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-MACRO_EXPANSION        = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
-# the macro expansion is limited to the macros specified with the PREDEFINED and
-# EXPAND_AS_DEFINED tags.
-# The default value is: NO.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-EXPAND_ONLY_PREDEF     = NO
-
-# If the SEARCH_INCLUDES tag is set to YES, the include files in the
-# INCLUDE_PATH will be searched if a #include is found.
-# The default value is: YES.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by the
-# preprocessor.
-# This tag requires that the tag SEARCH_INCLUDES is set to YES.
-
-INCLUDE_PATH           =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will be
-# used.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-INCLUDE_FILE_PATTERNS  =
-
-# The PREDEFINED tag can be used to specify one or more macro names that are
-# defined before the preprocessor is started (similar to the -D option of e.g.
-# gcc). The argument of the tag is a list of macros of the form: name or
-# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
-# is assumed. To prevent a macro definition from being undefined via #undef or
-# recursively expanded use the := operator instead of the = operator.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-PREDEFINED             = ARDUINO \
-                         LCD \
-                         CAPTURE \
-                         RECEIVE \
-                         ETHERNET \
-                         DOXYGEN
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
-# tag can be used to specify a list of macro names that should be expanded. The
-# macro definition that is found in the sources will be used. Use the PREDEFINED
-# tag if you want to use a different macro definition that overrules the
-# definition found in the source code.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-EXPAND_AS_DEFINED      =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
-# remove all references to function-like macros that are alone on a line, have
-# an all uppercase name, and do not end with a semicolon. Such function macros
-# are typically used for boiler-plate code, and will confuse the parser if not
-# removed.
-# The default value is: YES.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-SKIP_FUNCTION_MACROS   = YES
-
-#---------------------------------------------------------------------------
-# Configuration options related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES tag can be used to specify one or more tag files. For each tag
-# file the location of the external documentation should be added. The format of
-# a tag file without this location is as follows:
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where loc1 and loc2 can be relative or absolute paths or URLs. See the
-# section "Linking to external documentation" for more information about the use
-# of tag files.
-# Note: Each tag file must have a unique name (where the name does NOT include
-# the path). If a tag file is not located in the directory in which doxygen is
-# run, you must also specify the path to the tagfile here.
-
-TAGFILES               =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
-# tag file that is based on the input files it reads. See section "Linking to
-# external documentation" for more information about the usage of tag files.
-
-GENERATE_TAGFILE       =
-
-# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
-# the class index. If set to NO, only the inherited external classes will be
-# listed.
-# The default value is: NO.
-
-ALLEXTERNALS           = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will be
-# listed.
-# The default value is: YES.
-
-EXTERNAL_GROUPS        = YES
-
-# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
-# the related pages index. If set to NO, only the current project's pages will
-# be listed.
-# The default value is: YES.
-
-EXTERNAL_PAGES         = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of 'which perl').
-# The default file (with absolute path) is: /usr/bin/perl.
-
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
-# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
-# NO turns the diagrams off. Note that this option also works with HAVE_DOT
-# disabled, but it is recommended to install and use dot, since it yields more
-# powerful graphs.
-# The default value is: YES.
-
-CLASS_DIAGRAMS         = YES
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see:
-# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH            =
-
-# You can include diagrams made with dia in doxygen documentation. Doxygen will
-# then run dia to produce the diagram and insert it in the documentation. The
-# DIA_PATH tag allows you to specify the directory where the dia binary resides.
-# If left empty dia is assumed to be found in the default search path.
-
-DIA_PATH               =
-
-# If set to YES the inheritance and collaboration graphs will hide inheritance
-# and usage relations if the target is undocumented or is not a class.
-# The default value is: YES.
-
-HIDE_UNDOC_RELATIONS   = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz (see:
-# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
-# Bell Labs. The other options in this section have no effect if this option is
-# set to NO
-# The default value is: NO.
-
-HAVE_DOT               = YES
-
-# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
-# to run in parallel. When set to 0 doxygen will base this on the number of
-# processors available in the system. You can set it explicitly to a value
-# larger than 0 to get control over the balance between CPU load and processing
-# speed.
-# Minimum value: 0, maximum value: 32, default value: 0.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_NUM_THREADS        = 0
-
-# When you want a differently looking font in the dot files that doxygen
-# generates you can specify the font name using DOT_FONTNAME. You need to make
-# sure dot is able to find the font, which can be done by putting it in a
-# standard location or by setting the DOTFONTPATH environment variable or by
-# setting DOT_FONTPATH to the directory containing the font.
-# The default value is: Helvetica.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_FONTNAME           = Helvetica
-
-# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
-# dot graphs.
-# Minimum value: 4, maximum value: 24, default value: 10.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_FONTSIZE           = 10
-
-# By default doxygen will tell dot to use the default font as specified with
-# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
-# the path where dot can find it using this tag.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_FONTPATH           =
-
-# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
-# each documented class showing the direct and indirect inheritance relations.
-# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-CLASS_GRAPH            = YES
-
-# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
-# graph for each documented class showing the direct and indirect implementation
-# dependencies (inheritance, containment, and class references variables) of the
-# class with other documented classes.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-COLLABORATION_GRAPH    = YES
-
-# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
-# groups, showing the direct groups dependencies.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-GROUP_GRAPHS           = YES
-
-# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-UML_LOOK               = NO
-
-# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
-# class node. If there are many fields or methods and many nodes the graph may
-# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
-# number of items for each type to make the size more manageable. Set this to 0
-# for no limit. Note that the threshold may be exceeded by 50% before the limit
-# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
-# but if the number exceeds 15, the total amount of fields shown is limited to
-# 10.
-# Minimum value: 0, maximum value: 100, default value: 10.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-UML_LIMIT_NUM_FIELDS   = 10
-
-# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
-# collaboration graphs will show the relations between templates and their
-# instances.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-TEMPLATE_RELATIONS     = NO
-
-# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
-# YES then doxygen will generate a graph for each documented file showing the
-# direct and indirect include dependencies of the file with other documented
-# files.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-INCLUDE_GRAPH          = YES
-
-# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
-# set to YES then doxygen will generate a graph for each documented file showing
-# the direct and indirect include dependencies of the file with other documented
-# files.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-INCLUDED_BY_GRAPH      = YES
-
-# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
-# dependency graph for every global function or class method.
-#
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable call graphs for selected
-# functions only using the \callgraph command. Disabling a call graph can be
-# accomplished by means of the command \hidecallgraph.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-CALL_GRAPH             = NO
-
-# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
-# dependency graph for every global function or class method.
-#
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable caller graphs for selected
-# functions only using the \callergraph command. Disabling a caller graph can be
-# accomplished by means of the command \hidecallergraph.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-CALLER_GRAPH           = NO
-
-# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
-# hierarchy of all classes instead of a textual one.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-GRAPHICAL_HIERARCHY    = YES
-
-# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
-# dependencies a directory has on other directories in a graphical way. The
-# dependency relations are determined by the #include relations between the
-# files in the directories.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DIRECTORY_GRAPH        = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. For an explanation of the image formats see the section
-# output formats in the documentation of the dot tool (Graphviz (see:
-# http://www.graphviz.org/)).
-# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
-# to make the SVG files visible in IE 9+ (other browsers do not have this
-# requirement).
-# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,
-# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
-# png:gdiplus:gdiplus.
-# The default value is: png.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_IMAGE_FORMAT       = png
-
-# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
-# enable generation of interactive SVG images that allow zooming and panning.
-#
-# Note that this requires a modern browser other than Internet Explorer. Tested
-# and working are Firefox, Chrome, Safari, and Opera.
-# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
-# the SVG files visible. Older versions of IE do not have SVG support.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-INTERACTIVE_SVG        = NO
-
-# The DOT_PATH tag can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_PATH               =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the \dotfile
-# command).
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOTFILE_DIRS           =
-
-# The MSCFILE_DIRS tag can be used to specify one or more directories that
-# contain msc files that are included in the documentation (see the \mscfile
-# command).
-
-MSCFILE_DIRS           =
-
-# The DIAFILE_DIRS tag can be used to specify one or more directories that
-# contain dia files that are included in the documentation (see the \diafile
-# command).
-
-DIAFILE_DIRS           =
-
-# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
-# path where java can find the plantuml.jar file. If left blank, it is assumed
-# PlantUML is not used or called during a preprocessing step. Doxygen will
-# generate a warning when it encounters a \startuml command in this case and
-# will not generate output for the diagram.
-
-PLANTUML_JAR_PATH      =
-
-# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a
-# configuration file for plantuml.
-
-PLANTUML_CFG_FILE      =
-
-# When using plantuml, the specified paths are searched for files specified by
-# the !include statement in a plantuml block.
-
-PLANTUML_INCLUDE_PATH  =
-
-# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
-# that will be shown in the graph. If the number of nodes in a graph becomes
-# larger than this value, doxygen will truncate the graph, which is visualized
-# by representing a node as a red box. Note that doxygen if the number of direct
-# children of the root node in a graph is already larger than
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
-# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-# Minimum value: 0, maximum value: 10000, default value: 50.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_GRAPH_MAX_NODES    = 50
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
-# generated by dot. A depth value of 3 means that only nodes reachable from the
-# root by following a path via at most 3 edges will be shown. Nodes that lay
-# further from the root node will be omitted. Note that setting this option to 1
-# or 2 may greatly reduce the computation time needed for large code bases. Also
-# note that the size of a graph can be further restricted by
-# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-# Minimum value: 0, maximum value: 1000, default value: 0.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-MAX_DOT_GRAPH_DEPTH    = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, because dot on Windows does not seem
-# to support this out of the box.
-#
-# Warning: Depending on the platform used, enabling this option may lead to
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
-# read).
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_TRANSPARENT        = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10) support
-# this, this feature is disabled by default.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_MULTI_TARGETS      = NO
-
-# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
-# explaining the meaning of the various boxes and arrows in the dot generated
-# graphs.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-GENERATE_LEGEND        = YES
-
-# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
-# files that are used to generate the various graphs.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_CLEANUP            = YES

+ 0 - 339
SE/stuff/P5_Automation-library-dev/AGirs/LICENSE

@@ -1,339 +0,0 @@
-                    GNU GENERAL PUBLIC LICENSE
-                       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                            Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-                    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-                            NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-                     END OF TERMS AND CONDITIONS
-
-            How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License along
-    with this program; if not, write to the Free Software Foundation, Inc.,
-    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.

+ 0 - 123
SE/stuff/P5_Automation-library-dev/AGirs/Makefile

@@ -1,123 +0,0 @@
-# Makefile for creating stuff on host.
-# Not used for "normal" build of the software for the Arduino.
-# Use Arduino IDE (https://www.arduino.cc/en/Main/Software) for that.
-
-# The functions for generating keywords.txt requires KeywordsTxtGenerator,
-# https://github.com/bengtmartensson/KeywordsTxtGenerator, to be installed in
-# KEYWORD_TXT_GENERATOR_DIR.
-
-ifneq ($(ARDUINO),)
-$(error This Makefile is not for compiling target code, for that, use the Arduino IDE.)
-endif
-
-KEYWORD_TXT_GENERATOR_DIR = ../KeywordsTxtGenerator
-
-# External programs, change if necessary or desired.
-CXX=g++
-DOXYGEN := doxygen
-DOXYFILE := Doxyfile
-XSLTPROC := xsltproc
-TRANSFORMATION := $(KEYWORD_TXT_GENERATOR_DIR)/doxygen2keywords.xsl
-BROWSER=firefox
-
-DEBUGFLAGS=-g
-WARNINGFLAGS=-Wall -Wextra
-BOARD=nano
-
-# Should point to the directory where the Infrared4Arduino
-# (https://github.com/bengtmartensson/Infrared4Arduino)
-# sources are located. Only used for SIL test.
-INFRARED4ARDUINO_DIR=../Infrared4Arduino
-
-# Get VERSION from the version in library.properties
-VERSION=$(subst version=,,$(shell grep version= library.properties))
-ORIGINURL=$(shell git remote get-url origin)
-
-FLASHER=GirsLite-$(VERSION)-$(BOARD)-flasher.sh
-HEXFILE=GirsLite-$(VERSION)-$(BOARD).hex
-
-default: all
-
-VERSION_H := src/GirsLib/version.h
-
-version: $(VERSION_H)
-
-$(VERSION_H): library.properties Makefile
-	echo "// This file was automatically generated from $<; do not edit." > $@
-	echo "/**"                                                           >> $@
-	echo " * Version of the current library."                            >> $@
-	echo " * Taken from the version in $<."                              >> $@
-	echo " */"                                                           >> $@
-	echo "#define VERSION \"$(VERSION)\""                                >> $@
-
-flasher: $(FLASHER)
-hex: $(HEXFILE)
-
-$(FLASHER) $(HEXFILE):
-	tools/mkflasher.sh
-
-# Flash an Arduino nano on /dev/ttyUSB0, without questions etc. May require root.
-# Warning: overwrites without question! Be careful!
-flash-nano: $(FLASHER)
-	./$(FLASHER)
-
-lib: libGirs.a
-
-INCLUDES=-I$(INFRARED4ARDUINO_DIR)/src -Isrc -Iattic/src-sil/LcdI2C
-VPATH=src src/GirsLib examples/Girs
-
-#.PRECIOUS: test1
-
-# TODO: compile Girs.o separately, in tests/Girs
-OBJS=Girs.o GirsUtils.o LedLcdManager.o Tokenizer.o
-
-libGirs.a: $(OBJS)
-	$(AR) rs $@ $(OBJS)
-
-%.o: %.cpp $(VERSION_H)
-	$(CXX) -std=c++11 $(INCLUDES) $(BOARDDEFINES) $(WARNINGFLAGS) $(OPTIMIZEFLAGS) $(DEBUGFLAGS) -c $<
-
-#test%: test%.o libInfrared.a
-#	$(CXX) -o $@ $< -L. -lInfrared
-#	./$@
-
-doc: api-doc/index.html
-	$(BROWSER) $<
-
-api-doc/index.html xml/index.xml: $(wildcard src/* src/*/* examples/*/*) Doxyfile README.md $(VERSION_H)
-	$(DOXYGEN) $(DOXYFILE) > /dev/null
-
-gh-pages: api-doc/index.html
-	rm -rf gh-pages
-	git clone --depth 1 -b gh-pages $(ORIGINURL) gh-pages
-	rm -rf gh-pages/*
-	cp -rf api-doc/* gh-pages
-	(cd gh-pages; git add . )
-	(cd gh-pages; git commit -a -m "Update of API documentation for version $(VERSION)")
-	@echo Now perform \"git push\" from gh-pages
-
-tag:
-	git checkout master
-	git status
-	git tag -a Version-$(VERSION) -m "Tagging Version-$(VERSION)"
-	git push origin Version-$(VERSION)
-
-clean:
-	rm -rf *.a *.o *.hex *.zip api-doc xml gh-pages test1 $(FLASHER)
-
-# Remove all products. Do not use before commit.
-spotless: clean
-	rm -f keywords.txt $(VERSION_H)
-
-keywords: keywords.txt
-
-keywords.txt: xml/index.xml
-	$(XSLTPROC) $(TRANSFORMATION) $< | uniq > $@
-
-build-tests:
-
-test: lib
-
-all: version keywords flasher api-doc/index.html test
-
-.PHONY: clean distclean spotless version keywords flasher flash-nano lib

+ 0 - 389
SE/stuff/P5_Automation-library-dev/AGirs/README.md

@@ -1,389 +0,0 @@
-# AGirs (formerly ArduinoGirs)
-This project implements a [Girs
-server](http://www.harctoolbox.org/Girs.html) for the Arduino. That
-is, it is an interactive server that can send and receive IR signals,
-with some bells and whistles. The interactive server is mainly meant
-for interact with other programs. communicating over a serial line
-(likely in USB disguise), or TCP-sockets.
-
-It is build on top of the low-level library called [Infrared4Arduino](https://github.com/bengtmartensson/Infrared4Arduino).
-
-The main content of the project is an applications,
-_Girs_ (including the "light" version _GirsLite_), which constitutes the server.
-There is also another application, _Listener_, which is a uni-directional program that just
-emits decodes on the serial interface.
-(It can for example to be used in conjunction with my Java program
-[dispatcher](https://github.com/bengtmartensson/dispatcher)).
-Finally, there is a IR-to-serial demonstration program; an IR to serial converter (_Opponator_).
-These application are found as subdirectories of the directory `examples`.
-The subdirectory `src` contains a fairly small amount of supporting functionality,
-forming a library in the traditional Arduino sense.
-
-This slighty unlogical organization is due to the wish to be compatible with the current
-[Arduino library specification](https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification),
-required/desired for inclusion in the Arduino library manager.
-(There is presently no "Arduino application manager".)
-
-For compilation with the Arduino IDE, the library
-[Infrared4Arduino](https://github.com/bengtmartensson/Infrared4Arduino) and, preferably,
-the [LiquidCrystal_I2C](https://github.com/marcoschwartz/LiquidCrystal_I2C) (version 1.1.2 or later)
-should be installed with the Arduino library manager.
-
-## Configuration files
-It is a modular program that is heavily based on CPP symbols, defined
-in the configuration file `examples/Girs/config.h`. This determines the capacities of the
-compiled program, and adapts the configuration to the underlying
-hardware. The options are (somewhat) documented in `examples/Girs/GirsFat.config.h`.
-Not all combination are sensible or implemented. Some, but not all,
-of the non-sensible
-combinations will be detected and will generate a compilation error.
-
-If the preprocessor symbol `LCD` is defined in `src/GirsLib/LedLcdManager.cpp`
-(which is the default, except for the Arduino Micro), the library is configured
-with support for the LCD display, regardless of the settings in `config.h`.
-
-## Modules and interactive commands
-
-### General
-The program takes commands from its input stream, and write responses on its output stream.
-The general concept is presented [here](http://www.harctoolbox.org/Girs.html).
-A command input consists of one single line, terminated with a carrage return (binary 0x0d).
-Output is also presented as a single line, terminated with a carrage return.
-Needless to say, these lines can be long. On a successful execution, typically "OK"
-is returned.
-
-The communication can take place with another program or with a human using a
-version of a serial terminal. The command names can, in this implementation,
-be shortened as long as they are unique. Generally speaking, error handling
-and plausibility checking are presently basically non-existent...
-
-The program runs in a single thread, with no multitasking whatsoever.
-Also, even in the Ethernet version, only one concurrent session is supported.
-
-### [Base commands](http://www.harctoolbox.org/Girs.html#Base)
-These commands are always present in a Girs server. They correspond to the `Base` module.
-#### version
-*Input*: `version`
-
-*Output*: The program name followed by the version string. Example: `AGirs 1.0.0`.
-
-#### modules
-*Input*: `modules`
-
-*Output*: Returns list of implemented modules, separated by whitespace.
-Example: `Base Transmit Capture Renderer Receive Decoder Led Lcd Parameters`.
-
-Comment: A communicating peer evaluates this, in order to find out the capabilities of
-the Girs implementation. Both IrScrutinizer and the Lirc Girs driver do this, and adjust
-their behavior accordingly.
-
-### [NamedRemotes](http://www.harctoolbox.org/Girs.html#NamedRemotes)
-Presently not implemented, but is [planned](https://github.com/bengtmartensson/AGirs/issues/37).
-
-### [Transmit](http://www.harctoolbox.org/Girs.html#Transmit)
-Supported if the CPP symbol `TRANSMIT` is defined in the configuration.
-#### transmit
-*Input*: `send <no_sends> <frequency> <length_intro> <length_repeat>  <durations...>`
-
-*Output*: `OK`
-
-Semantics:
-* `<no_sends>` denotes the number of times to send the signal.
-* `<frequency>` denotes the modulation frequency in Hz (not kHz as in some other programs!). The value 0
-is treated as "no modulaton", and sent to a non-modulating sender, if configured.
-* `<length_intro>` denotes how many of the numbers supplied as `<durations...>`
-are to be considered as belonging to the intro sequence,
-* `<length_repeat>` denotes how many of the numbers supplied as `<durations...>`
-are be considered as belonging to the repeat sequence (following the intro sequence durations),
-* `<length_ending>` (normally 0) denotes how many of the numbers supplied as `<durations...>`
-are to be considered as belonging to the ending sequence, following after the repeat durations,
-* `<durations>` the durations in micro seconds, making up the intro-, repeat-, and ending sequence,
-according to the preceding parameters.
-
-The intro sequence is always sent exactly one. If it is empty, the repeat sequence is sent `<no_sends>` times,
-otherwise `<no_sends>` - 1 times. Finally, the (normally empty) ending sequence is sent once.
-
-### [Capture](http://www.harctoolbox.org/Girs.html#Capture)
-Available if configured with the `CAPTURE` option.
-
-*Input*: `analyze`
-
-*Output* (Normal): `f=<frequency> <durations with signs...>`
-
-*Output* (Timeout): `.`
-
-Semantics:
-* `<frequency>` is the measured modulation frequency.
-* `<durations with signs...>` the measured durations in micro seconds; flashes with "+",
-gaps as "-".
-
-### [Receive](http://www.harctoolbox.org/Girs.html#Receive)
-Available if configured with the `RECEIVE` option.
-
-*Input*: `analyze`
-
-*Output* (Normal): `<durations with signs...>
-
-*Output* (Timeout): `.`
-
-Semantics:
-* `<durations with signs...>` the measured durations in micro seconds; flashes with "+",
-gaps as "-".
-
-### Render
-Available if configured with the RENDER option.
-
-*Input*: `transmit <no_sends> <protocol> <protocol_parameters>`
-
-*Output* (normal): `OK`
-
-*Output* (Syntax error): `<error message>`
-
-Semantics:
-* `<no_sends>` number of times to send signal
-* `<protocol_name>` name of protocol, presently `NEC1` and `RC5`-
-* `<protocol_parameters>` protocol parameters, dependent on protocol.
-
-*Example*: `transmit 1 rc5 0 12`.
-This turns on or off most Philips TVs.
-
-### Decoder
-Available if configured with the `DECODER` option. No additional interactive commands,
-instead the `receive`-d commands are attempted to be decoded, and optionally
-display on an LCD display.
-
-### LED
-Available if configured with the `LED` option.
-
-*Input*: `led <logical_led_nr> on|off|blink`
-
-*Output*: `OK`.
-
-Turns on/off/blinks the LED with the given logical number.
-
-### LCD
-Available if configured with the `LCD` option.
-
-*Input*: `lcd <message>`
-
-*Output*: `OK`
-
-Shows the message `<message>` on a connected LCD display for a certain time.
-
-### Parameters
-Available if configured with the `PARAMETERS` option. The allows to inspect and
-to change some parameters.
-
-*Input*: `parameter <parameter_name> [<parameter_value>]`
-
-*Output:* `<parameter_name>=<parameter_value>`
-
-Semantics: If `<parameter_value>` is given, the value is assigned to the
-named parameter, if possible. If not given, the present value is reported.
-
-#### Named of available adjustable parameters:
-The adjustable parameters depend on the configuration options.
-A few of these are listed next.
-
-* `beginTimeout`: time in milliseconds until timeout by not detected signal
-* `captureEndingTimeout`: time in milliseconds for capture ending marking end of signal
-* `receiveEndingTimeout`: time in milliseconds for receive ending marking end of signal
-* `captureSize`: size, in number of durations, of captured (received) signals. Must be even.
-
-### Pronto
-Available if configured with the `PRONTO` option.
-
-*Input*: `hex <no_sends> <pronto_hex_signal>`
-
-*Output*: `OK`.
-
-Semantics:
-* `<no_sends>` number of times to send signal
-* `<pronto_hex_signal>` Pronto hex form IR signal. Always start with `0000`.
-
-Sends the given signal the requested number of times.
-
-### Info
-Available if configured with the option `INFO`.
-
-*Input*: info
-
-*Output*: Information on current platform;
-for example `Board: Arduino Mega2560, CPU frequency: 16000000L`
-
-### Memory
-Available if configured with the option `FREEMEM`.
-
-*Input*: memory
-
-*Output*: number of free bytes.
-
-### Ethernet support
-If using an Ethernet shield with W5500 or W5200 chip, be sure that the
-Ethernet library version 2.0.0 or later is used,
-since it supports all W5*00 chips, auto-detecting during runtime.
-
-This applies both to the Girs application as well as to the Listener.
-
-## Hardware configuration
-I have written a [fairly detailed description](http://www.harctoolbox.org/arduino_nano.html)
-of using an Arduino Nano (clone) by soldering suitable components to the PCB. This is
-a small handy gadget at the size of a (large) stamp and the price of a (small) pizza,
-perfect for using with IrScrutinizer and Lirc.
-
-The hardware configuration is determined by including a suitable
-header file. It describes the attach sensor(s) and the pins
-they are connected to. To allow soldering sensors directly to the
-holes in some boards, the program supports defining e.g. `SENSOR_GND`
-and `SENSOR_VSS`, which will make the program define these pins as
-digital outputs, being fed by constant 0 and 5 volts respectively.
-
-Note that the sending pin and the capture pin
-(as opposed to the receive pin) are not configurable, but has to
-follow the following table:
-
-<pre>
-                          Sender Pin      Capture Pin
-Uno/Nano (ATmega328P)          3             8
-Leonardo/Micro (ATmega32U4)    9             4
-Mega2560 (ATmega2560)          9            49
-</pre>
-
-## Sending non-modulated signals.
-RF signals (433 MHz and other carrier frequencies) do not use the IR
-typical modulation. Also there are a few IR protocols (like [Revox, Barco,
-Archer](http://www.hifi-remote.com/forums/viewtopic.php?t=14186&start=40))
-not using modulation. These signals can be sent by defining the symbol
-`NON_MOD`, and connecting
-some hardware capable of sending non-modulated signals (IR- _or_ RF-)
-to the GPIO pin defined as `NON_MOD_PIN`. Then transmitted signals
-having frequency 0 will be directed to that device. (Later versions
-may use different syntax and semantic.)
-
-## Testing
-The flashed unit can be tested with a standard terminal program, like the
-serial monitor of the Arduino IDE. For this, set the baud rate to 115200, and
-the line ending to carriage return. It is now possible to communicate
-with the unit using the [commands of
-Girs](http://www.harctoolbox.org/Girs.html). Just type the command to
-the program, and the unit will respond.
-Exactly which commands are
-available depends on the configuration. In all cases, the
-`version` and the `modules` commands are
-available. If `receive` is implemented, just type
-"`r`" (without the
-quotes), followed by return, and fire a suitable IR signal at the
-receiver. The raw capture will be output to the terminal program. Using
-the clipboard, it can be pasted to IrScrutinizer, and analyzed. Of course, also
-the other commands can be tested in this way.
-
-## API
-
-[Up-to-date API, generated by Doxygen](http://bengtmartensson.github.io/AGirs).
-
-## Dependencies
-
-* [`Infrared4Arduino`](https://github.com/bengtmartensson/Infrared4Arduino) by myself.
-  Current version is 1.0.1. Can be installed by the library manager within the Arduino IDE.
-  (Sketch -> Include library -> Manage libraries, name Infrared (Category: Others)).
-* `Ethernet`, preferably version 2.0.0 or later.
-* `SPI` (if enabling the `ETHERNET` or `LCD_I2C` configure option). Contained in the Arduino IDE.
-* `Wire` (if enabling the `LCD_I2C` configure option). Contained in the Arduino IDE.
-* [`LiquidCrystal_I2C`](https://github.com/marcoschwartz/LiquidCrystal_I2C) version 1.1.2 or later.
- Available in the Arduino library manager.
-If the preprocessor symbol `LCD` is defined in `src/GirsLib/LedLcdManager.cpp`,
-this is needed also if not actually using an LCD display.
-* (Optional) [`Beacon`](https://github.com/bengtmartensson/ABeacon) for an AMX compatible Ethernet beacon.
- It is also available in the Arduino library manager with the name `Beacon`.
-
-## Questions and answers
-
-* How do I setup Lirc to use this?
-
-Use the `girs` driver contained in the recent official upstream Lirc distribution.
-This is described [here](http://lirc.org/html/girs.html).
-also contained in the (recent) distro as `girs.html`.
-Configuration options: use TRANSMIT if sending is desired, and RECEIVE if receiving is desired.
-CAPTURE is not meaningful for Lirc. Turn on PARAMETERS -- Lircd adjust the ending timeout.
-If using DECODE and an LCD display (which is cool, but useless), be sure to
-define DONT_REPORT_DECODES. Use of Ethernet connections are supported.
-Due to the inner workings of Lirc, it is advantageous not define both TRANSMIT and RECEIVE
-unless you really need it.
-
-* What are Makefiles doing in an Arduino project?
-
-To build the project for the Arduino, use the Arduino IDE from [arduino.cc](https://www.arduino.cc/en/Main/Software),
-as in most Arduino projects.
-The Makefile is used for building a "Software-in-the-loop" test version for the PC;
-of interest for developers only.
-It is also used for maintainer work, like generating API documentation with Doxygen,
-as well as generating keywords.txt. Feel free to learn from it!
-
-* What is the difference between
-  ["receive"](http://www.harctoolbox.org/Glossary.html#ReceivingIrSignals)
-  and   ["capture"](http://www.harctoolbox.org/Glossary.html#Capturing)?
-
-Please follow the links given. Differently put, "receive" uses a
-demodulating receiver, "capture" a non-demodulating decoder. Note that
-this is not universally accepted terminology (yet!).
-
-* What Ethernet modules are supported?
-
-Only cards based on the W5100, W5200, and W5500 chip (and compatible), like the
-[official
-shield](https://www.arduino.cc/en/Main/ArduinoEthernetShield).  There are both cheap clones of the original available, as well as
-smallish W5100-based cards.
-
-Also the next generation of W5500 based shields, like the
-official [Arduino Ethernet Shield 2](https://www.arduino.cc/en/Main/ArduinoEthernetShield)
-work. For this, use the `Ethernet` library version 2.0.0 (or later).
-
-* What about "GirsLite"?
-
-As indicated by the
-name, it is a minimalist Girs server
-for the Arduino, that implements only the
-[capture](http://www.harctoolbox.org/Girs.html#Capture) and the
-[transmit](http://www.harctoolbox.org/Girs.html#Transmit) modules,
-without all options. It is meant to be used with
-[IrScrutinizer](http://www.harctoolbox.org/IrScrutinizer.html)
-versions 1.1.0 or later, as well as with Lirc, using  the Lirc
-`girs` driver by yours truly. Documentation is found with the [Lirc
-driver](http://lirc.org/html/girs), in the Lirc sources the file `girs.html`.
-
-It is not an independent program, it is just AGirs
-with certain options enabled, namely
-the CPP symbols `TRANSMIT, CAPTURE, LED`, and (optionally) `NON_MOD`
-defined. Alternatively, if `RECEIVE` is defined, but not `CAPTURE`, the
-program mimics the capture command with a demodulating sensor, for
-usage with IrScrutinizer without a non-demodulating sensor.
-
-* Were did the `example/GirsLite` directory go?
-
-It has been merged with `examples/Girs`. To build GirsLite, make sure that `examples/config.h`
-is configured as you desire.
-
-* What about Girs4Lirc?
-
-_Now discontinued_, replaced by GirsLite.
-Just as GirsLite, this was just a certain configuration of AGirs,
-"optimized" for Lirc, supporting `TRANSMIT,
-NON_MOD` (optionally), `RECEIVE, LED, LCD, DECODE` (only to the LCD), `TRANSMITTERS`
-(only a dummy implementation).
-
-* Can I keep and maintain the library configuration in another location, for example together with
-my own sketch?
-
-No, the present Arduino IDE does not support this.
-I an not aware of a clean solution. Sorry.
-Fiddling with the library's `config.h` for project specific configurations defeats the very idea of a library.
-
-* How is "Girs" pronounced?
-
-It is pronounced like in "girl". The "language" Girs is written capitalized, the name of an implementation is usually written in lower case.
-
-## License
-The entire work is licensed under the GPL2 "or later" license, just as Infrared4Arduino. Michael's code
-(that is contained in Infrared4Arduino) carries the
-GPL2-license, although he is [willing to agree to "or later
-versions"](http://www.hifi-remote.com/forums/viewtopic.php?p=112586#112586).

+ 0 - 861
SE/stuff/P5_Automation-library-dev/AGirs/examples/Girs/Girs.cpp

@@ -1,861 +0,0 @@
-/*
-Copyright (C) 2014,2015,2017 Bengt Martensson.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or (at
-your option) any later version.
-
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program. If not, see http://www.gnu.org/licenses/.
-*/
-
-#include "config.h"
-#include "GirsLib/LedLcdManager.h"
-#include "GirsLib/GirsUtils.h"
-#ifdef ARDUINO
-#include <avr/pgmspace.h>
-#else
-#define PROGMEM
-#endif
-
-// Conditional includes
-#if defined(ETHERNET) & !defined(ARDUINO)
-#error not supported
-#endif
-
-#ifdef ETHERNET
-#include <Ethernet.h>
-#include <IPAddress.h>
-#endif // ETHERNET
-
-#ifdef LCD
-#include <LiquidCrystal_I2C.h>
-#endif
-
-#ifdef RECEIVE
-#include <IrReceiverSampler.h>
-#endif
-
-#ifdef TRANSMIT
-#include <IrSenderPwm.h>
-#endif
-#if defined(RECEIVE)
-#include <IrReceiverSampler.h>
-#endif
-
-#ifdef CAPTURE
-#include <IrWidgetAggregating.h>
-#endif
-
-#ifdef NON_MOD
-#include <IrSenderNonMod.h>
-#endif
-
-#ifdef DECODER
-#ifndef RECEIVE
-#error DECODER without RECEIVE is nonsensical, aborting.
-#endif
-#include <MultiDecoder.h>
-#endif
-
-#ifdef RENDERER
-#ifndef TRANSMIT
-#error RENDER without TRANSMIT is nonsensical, aborting.
-#endif
-#include <IrSignal.h>
-#include <Nec1Renderer.h>
-#include <Rc5Renderer.h>
-#endif
-
-#ifdef NAMED_COMMANDS
-#error NAMED_COMMANDS is presently not supported
-#endif
-
-#ifdef BEACON
-#include <Beacon.h>
-#endif
-
-#ifdef PRONTO
-#include <Pronto.h>
-#endif
-
-#ifdef ARDUINO
-#else
-#include <string.h> // for strlen
-#endif
-
-#if defined(CONFIGURABLE_LEDS) & (! defined(PARAMETERS) | !defined(LED))
-#error CONFIGURABLE_LEDS defined but not PARAMETERS and LED, aborting.
-#endif
-
-#ifdef CONFIGURABLE_LEDS
-#define LED_PARAMETER_CONST
-#else
-#define LED_PARAMETER_CONST const
-#endif
-
-#ifdef PARAMETERS
-#define PARAMETERS_NAME Parameters
-#define PARAMETER_CONST
-#else
-#define PARAMETERS_NAME
-#define PARAMETER_CONST const
-#endif
-
-#ifdef LED
-#ifdef TRANSMITLED
-static LED_PARAMETER_CONST led_t transmitled = TRANSMITLED;
-#endif
-
-#ifdef RECEIVELED
-static LED_PARAMETER_CONST led_t receiveled = RECEIVELED;
-#endif
-
-#ifdef CAPTURELED
-static LED_PARAMETER_CONST led_t captureled = CAPTURELED;
-#endif
-
-#ifdef COMMANDLED
-static LED_PARAMETER_CONST led_t commandled = COMMANDLED;
-#endif
-#endif // LED
-
-#ifdef CAPTURE
-static PARAMETER_CONST unsigned long captureEndingTimeout = DEFAULT_CAPTURE_ENDINGTIMEOUT; // milliseconds
-static const unsigned sensorNo = 1; // presently, only one supported
-#endif
-#ifdef RECEIVE
-static PARAMETER_CONST unsigned long receiveEndingTimeout = DEFAULT_RECEIVE_ENDINGTIMEOUT; // milliseconds
-#endif
-#if defined(RECEIVE) | defined(CAPTURE)
-static PARAMETER_CONST unsigned long beginTimeout = DEFAULT_BEGINTIMEOUT; // milliseconds
-static PARAMETER_CONST uint16_t captureSize = DEFAULT_CAPTURESIZE;
-#endif
-
-#ifdef RECEIVE
-#ifdef IRRECEIVER_2_PIN
-static PARAMETER_CONST uint8_t receiverNo = 1;
-#else
-static const uint8_t receiverNo = 1;
-#endif
-#endif
-
-#ifdef ETHERNET
-EthernetServer server(PORT);
-#endif // ETHERNET
-
-#ifdef RESET
-bool reset = false;
-#endif
-
-#define modulesSupported EXPAND_AND_QUOTE(Base TRANSMIT_NAME CAPTURE_NAME RENDERER_NAME RECEIVE_NAME DECODER_NAME LED_NAME LCD_NAME PARAMETERS_NAME NAMED_COMMANDS_NAME PRONTO_NAME)
-#ifndef PROGNAME
-#define PROGNAME "AGirs"
-#endif
-#ifndef VERSION
-#include "GirsLib/version.h"
-#endif // VERSION
-#define okString "OK"
-#define errorString "ERROR"
-#define timeoutString "."
-
-#ifdef TRANSMIT
-
-static bool sendIrSignal(const IrSignal &irSignal, unsigned int noSends=1) {
-    if (noSends == 0)
-        return false;
-#ifdef TRANSMITLED
-    LedLcdManager::setLogicLed(transmitled, LedLcdManager::on);
-#endif
-    IrSender *irSender =
-#ifdef NON_MOD
-            (irSignal.getFrequency() == 0) ? (IrSender*) new IrSenderNonMod(NON_MOD_PIN) :
-#endif
-            (IrSender*) IrSenderPwm::getInstance(true);
-
-    irSender->sendIrSignal(irSignal, noSends);
-
-#ifdef NON_MOD
-    if (irSignal.getFrequency() == 0)
-        delete irSender;
-    else
-#endif
-        IrSenderPwm::deleteInstance();
-
-#ifdef TRANSMITLED
-    LedLcdManager::setLogicLed(transmitled, LedLcdManager::off);
-#endif
-    return true;
-}
-
-#endif // TRANSMIT
-
-# if defined(RECEIVE) | defined(CAPTURE)
-static void flushIn(Stream &stream UNUSED) {
-#ifdef ARDUINO
-    while (stream.available())
-        stream.read();
-#endif
-}
-#endif
-
-#ifdef RECEIVE
-
-static void decodeOrDump(IrReader *irReader, Stream& stream) {
-#ifdef DECODER
-    MultiDecoder multiDecoder(*irReader);
-#ifdef LCD
-    if (multiDecoder.getType() > MultiDecoder::noise) {
-        LedLcdManager::lcdPrint(multiDecoder.getType() == MultiDecoder::nec_ditto
-                ? "." : multiDecoder.getDecode(),
-                multiDecoder.getType() != MultiDecoder::nec_ditto);
-        if (multiDecoder.getType() == MultiDecoder::nec)
-            LedLcdManager::lcdSetCursor(0, 1); // prepare for dittos
-    }
-#endif
-
-#ifdef DECODELED
-    LedLcdManager::setLogicLed(DECODELED(multiDecoder.getType()), LedLcdManager::blink);
-#endif
-#endif
-
-#if defined(DECODER) & ! defined(DONT_REPORT_DECODES) // lircd does its own decoding
-    switch (multiDecoder.getType()) {
-        case MultiDecoder::noise:
-            // ignore
-            break;
-        case MultiDecoder::undecoded:
-            irReader->dump(stream); // report data of undecoded signals
-            break;
-        default:
-            stream.println(multiDecoder.getDecode()); // also for timeout
-            break;
-    }
-#else  // ! (defined(DECODER) & ! defined(DONT_REPORT_DECODES))
-    if (irReader->isEmpty())
-        stream.println(F(timeoutString));
-    else
-        irReader->dump(stream);
-#endif // !DECODER
-}
-
-static bool receive(Stream& stream) {
-    IrReceiverSampler *irReceiver = IrReceiverSampler::getInstance();
-    if (irReceiver == NULL)
-        irReceiver = IrReceiverSampler::newIrReceiverSampler(captureSize,
-                GirsUtils::receiverPin(receiverNo), GirsUtils::receiverPullup(receiverNo));
-    if (irReceiver == NULL)
-        return false;
-    irReceiver->setEndingTimeout(receiveEndingTimeout);
-    irReceiver->setBeginningTimeout(beginTimeout);
-    irReceiver->setMarkExcess(IRRECEIVER_MARK_EXCESS);
-    flushIn(stream);
-#ifdef RECEIVELED
-    LedLcdManager::setLogicLed(receiveled, LedLcdManager::on);
-#endif
-    irReceiver->enable();
-#ifdef ARDUINO
-    while (!irReceiver->isReady() && stream.available() == 0)
-#else
-        std::cout << "** Simulating timeout **" << std::endl;
-        delay(beginTimeout);
-#endif
-        LedLcdManager::checkTurnoff();
-    bool ready = irReceiver->isReady();
-    irReceiver->disable();
-#ifdef RECEIVELED
-     LedLcdManager::setLogicLed(receiveled, LedLcdManager::off);
-#endif
-     if (ready)
-         decodeOrDump(irReceiver, stream);
-     IrReceiverSampler::deleteInstance();
-     return true;
-}
-#endif // RECEIVE
-
-#ifdef CAPTURE
-
-static bool capture(Stream& stream) {
-    IrWidget *irWidget = IrWidgetAggregating::newIrWidgetAggregating(captureSize,
-            GirsUtils::sensorPullup(sensorNo));
-    if (irWidget == NULL)
-        stream.println(F("This cannot happen"));
-    irWidget->setEndingTimeout(captureEndingTimeout);
-    irWidget->setBeginningTimeout(beginTimeout);
-    irWidget->setMarkExcess(IRSENSOR_MARK_EXCESS);
-    irWidget->reset();
-#ifdef CAPTURELED
-    LedLcdManager::setLogicLed(captureled, LedLcdManager::on);
-#endif
-    flushIn(stream);
-#ifdef ARDUINO
-    irWidget->capture();
-#else
-    std::cout << "** Simulating timeout **" << std::endl;
-    delay(beginTimeout);
-#endif
-
-#ifdef CAPTURELED
-    LedLcdManager::setLogicLed(captureled, LedLcdManager::off);
-#endif
-    if (!irWidget->isEmpty()) {
-        // Trying to decode the capture does not make sense,
-        // that is what "receive" is for.
-        irWidget->dump(stream);
-    } else
-        stream.println(F(timeoutString));
-    IrWidgetAggregating::deleteInstance();
-    return true;
-}
-#endif // CAPTURE
-
-#ifdef NAMED_COMMANDS
-// Defines a const IrNamedRemoteSet remoteSet with commands to be used.
-//#include "my_named_remotes.inc"
-extern const IrNamedRemoteSet remoteSet;
-
-static bool sendNamedCommand(Stream& stream, String& remoteName, String& commandName, unsigned int noSends) {
-    const IrNamedRemote* remote = remoteSet.getIrNamedRemote(remoteName.c_str());
-    if (remote == NULL) {
-        stream.println(F("No such remote"));
-        return false;
-    }
-
-    const IrNamedCommand* command = remote->getIrNamedCommand(commandName.c_str());
-    if (command == NULL) {
-        stream.println(F("No such command"));
-        return false;
-    }
-    const IrSignal *irSignal = command->getIrSignal();
-    bool status = sendIrSignal(*irSignal, noSends); // waits, blinks
-    delete irSignal;
-    return status;
-}
-
-static void dumpRemote(Stream& stream, String& name) {
-    if (name.length() == 0) {
-        for (unsigned int i = 0; i < remoteSet.getNoIrNamedRemotes(); i++) {
-            stream.print(remoteSet.getIrNamedRemotes()[i]->getName());
-            stream.print(" ");
-        }
-        stream.println();
-    } else {
-        const IrNamedRemote* remote = remoteSet.getIrNamedRemote(name.c_str());
-        if (remote == NULL)
-            stream.println(F("No such remote"));
-        else {
-            for (unsigned int i = 0; i < remote->getNoCommands(); i++) {
-                stream.print(remote->getAllCommands()[i]->getName());
-                stream.print(" ");
-            }
-            stream.println();
-        }
-    }
-}
-#endif
-
-void setup() {
-    LedLcdManager::setupLedGroundPins();
-    GirsUtils::setupReceivers();
-    GirsUtils::setupSensors();
-#if defined(TRANSMIT)
-    // Make sure that sender is quiet (if reset or such)
-    IrSenderPwm::getInstance(true)->mute();
-#endif
-    LedLcdManager::setup(LCD_I2C_ADDRESS, LCD_WIDTH, LCD_HEIGHT,
-            (const pin_t[]) {SIGNAL_LED_1, SIGNAL_LED_2, SIGNAL_LED_3, SIGNAL_LED_4,
-                    SIGNAL_LED_5, SIGNAL_LED_6, SIGNAL_LED_7, SIGNAL_LED_8 });
-    LedLcdManager::selfTest(PROGNAME "\n" VERSION);
-#ifdef LED
-    LedLcdManager::setupShouldTimeout(transmitled, false);
-    LedLcdManager::setupShouldTimeout(receiveled, false);
-    LedLcdManager::setupShouldTimeout(captureled, false);
-    LedLcdManager::setupShouldTimeout(commandled, false);
-#endif
-#ifdef LCD
-#ifdef ETHERNET
-    LedLcdManager::lcdPrint(F("TCP"), false, 0, 2);
-#ifdef SERIAL_DEBUG
-    LedLcdManager::lcdPrint(F(",SerialDbg"), false);
-#endif
-#else // ! ETHERNET
-    LedLcdManager::lcdPrint(F("Serial"), false, 0, 2);
-#endif // ! ETHERNET
-#endif // LCD
-
-#ifdef ETHERNET
-#ifdef SDCARD_ON_ETHERSHIELD_PIN
-    // disable the SD card, as recommended in the doc
-    pinMode(SDCARD_ON_ETHERSHIELD_PIN, OUTPUT);
-    digitalWrite(SDCARD_ON_ETHERSHIELD_PIN, LOW);
-#endif
-    byte mac[] = { MACADDRESS };
-#ifdef DHCP
-    Ethernet.begin(mac);
-#else // !DHCP
-    Ethernet.begin(mac, IPAddress(IPADDRESS), IPAddress(DNSSERVER), IPAddress(GATEWAY), IPAddress(SUBNETMASK));
-#endif // !DHCP
-
-    String ipstring = GirsUtils::ip2string(Ethernet.localIP());
-    LedLcdManager::lcdPrint(ipstring, false, 0, 3);
-
-#ifdef BEACON
-    Beacon::setup(PROGNAME, "DE-AD-BE-EF-FE-ED", "Utility", "www.harctoolbox.org",
-            "", "", "", "http://arduino/nosuchfile.html");
-#endif
-
-    server.begin();
-
-#endif // ETHERNET
-
-#if defined(ARDUINO) & !defined(ETHERNET) | defined(SERIAL_DEBUG)
-
-    Serial.begin(SERIALBAUD);
-#if defined(ARDUINO_AVR_LEONARDO) | defined(ARDUINO_AVR_MICRO)
-    while (!Serial)
-        ; // wait for serial port to connect. "Needed for Leonardo only"
-#endif
-    Serial.println(F(PROGNAME " " VERSION));
-    Serial.setTimeout(SERIALTIMEOUT);
-
-#ifdef ETHERNET
-    Serial.println(Ethernet.localIP());
-#endif
-#endif // defined(ARDUINO) & !defined(ETHERNET) | defined(SERIAL_DEBUG)
-}
-
-#ifdef INFO
-void info(Stream& stream) {
-    stream.print("Board: ");
-#ifdef ARDUINO_AVR_MEGA2560
-    stream.print(F("Arduino Mega2560"));
-#elif defined(ARDUINO_AVR_NANO)
-    stream.print(F("Arduino Nano"));
-#elif defined(ARDUINO_AVR_LEONARDO)
-    stream.print(F("Arduino Leonardo"));
-#elif defined(ARDUINO_AVR_MINI)
-    stream.print(F("Arduino Leonardo"));
-#elif defined(ARDUINO_AVR_UNO)
-    stream.print(F("Arduino Uno"));
-#else
-    stream.print(F("Unknown"));
-#endif
-
-    stream.print(F(", CPU frequency: "  EXPAND_AND_QUOTE(F_CPU)));
-
-    stream.println();
-}
-#endif
-
-static inline bool isPrefix(const String& cmd, const char *string) {
-    return strncmp(cmd.c_str(), string, cmd.length()) == 0;
-}
-
-static inline bool isPrefix(const char *string, const String& cmd) {
-    return strncmp(cmd.c_str(), string, strlen(string)) == 0;
-}
-
-#ifdef ARDUINO
-bool isPrefix(const String& cmd, const __FlashStringHelper *pstring) {
-    return strncmp_PF(cmd.c_str(), (uint_farptr_t) pstring, cmd.length()) == 0;
-}
-
-bool isPrefix(const __FlashStringHelper *pstring, const String& cmd) {
-    return strncmp_PF(cmd.c_str(), (uint_farptr_t) pstring, strlen_PF((uint_farptr_t) pstring)) == 0;
-}
-#endif
-
-static String readCommand(Stream& stream) {
-#if defined(COMMANDLED) & defined(LED)
-    LedLcdManager::setLogicLed(commandled, LedLcdManager::on);
-#endif
-
-#ifdef ARDUINO
-    //flushIn(stream);
-    while (stream.available() == 0) {
-        LedLcdManager::checkTurnoff();
-    }
-
-    String line = stream.readStringUntil(EOLCHAR);
-    line.trim();
-#else
-    (void) stream;
-    LedLcdManager::checkTurnoff();
-    static char str[1000];
-    std::cin.getline(str, 1000);
-    if (std::cin.eof()) {
-        std::cout << "Bye!" << std::endl;
-        exit(0);
-    }
-    char *s = str;
-    while (isspace(*s))
-        s++;
-    while (isspace(s[strlen(s)-1]))
-        s[strlen(s)-1] = '\0';
-    String line(s);
-#endif
-
-#if defined(DEBUG_CMD)
-    LedLcdManager::lcdPrint(line, true, 0, 0);
-#endif
-#if defined(COMMANDLED) & defined(LED)
-    LedLcdManager::setLogicLed(commandled, LedLcdManager::off);
-#endif
-    return line;
-}
-
-static bool processCommand(const String& line, Stream& stream) {
-#ifdef ETHERNET
-    bool quit = false;
-#endif
-    Tokenizer tokenizer(line);
-    String cmd = tokenizer.getToken();
-
-    // Decode command
-    if (cmd.length() == 0) {
-        // empty command, do nothing
-        stream.println(F(okString));
-    } else
-
-#ifdef CAPTURE
-        if (cmd[0] == 'a' || cmd[0] == 'c') {
-        capture(stream);
-    } else
-#endif // CAPTURE
-
-#ifdef LCD
-        if (isPrefix(cmd, F("lcd"))) { //LCD
-        String rest = tokenizer.getRest();
-        LedLcdManager::lcdPrint(rest);
-        stream.println(F(okString));
-        } else
-#endif // LCD
-
-#ifdef LED
-        if (isPrefix(cmd, F("led"))) {
-        pin_t no = (pin_t) tokenizer.getInt();
-        String value = tokenizer.getToken();
-        bool success = LedLcdManager::setLogicLed(no, value.c_str());
-        stream.println(success ? F(okString) : F(errorString));
-    } else
-#endif // LED
-
-        if (isPrefix(cmd, F("modules"))) {
-        stream.println(F(modulesSupported));
-    } else
-
-#ifdef FREEMEM
-        if (isPrefix(cmd, F("memory"))) {
-        stream.println(GirsUtils::freeRam());
-    } else
-#endif
-
-#ifdef INFO
-        if (isPrefix(cmd, F("info"))) {
-        info(stream);
-    } else
-#endif
-
-#ifdef PARAMETERS
-        if (cmd[0] == 'p') { // parameter
-        String variableName = tokenizer.getToken();
-        long value = tokenizer.getInt();
-        unsigned long *variable32 = NULL;
-        uint16_t *variable16 = NULL;
-        uint8_t *variable8 = NULL;
-#if defined(RECEIVE) || defined(CAPTURE)
-           if (isPrefix(F("beg"), variableName))
-            variable32 = &beginTimeout;
-        else
-#endif
-#ifdef CAPTURE
-            if (isPrefix(F("capturee"), variableName))
-            variable32 = &captureEndingTimeout;
-#endif
-#ifdef RECEIVE
-           if (isPrefix(F("receivee"), variableName))
-            variable32 = &receiveEndingTimeout;
-        else
-#endif
-#if defined(RECEIVE) & defined(IRRECEIVER_2_PIN)
-            if (isPrefix(variableName, F("receiver")))
-            variable8 = &receiverNo;
-        else
-#endif
-#ifdef CAPTURE
-        if (isPrefix(F("captures"), variableName)) {
-        // TODO: check evenness of value
-        variable16 = &captureSize;
-        } else
-#endif
-#ifdef LED
-#ifdef CONFIGURABLE_LEDS
-#ifdef TRANSMITLED
-            if (isPrefix(F("transmitl"), variableName))
-            variable8 = &transmitled;
-        else
-#endif
-#ifdef CAPTURELED
-            if (isPrefix(F("capturel"), variableName))
-            variable8 = &captureled;
-        else
-#endif
-#ifdef RECEIVELED
-            if (isPrefix(F("receivel"), variableName))
-            variable8 = &receiveled;
-        else
-#endif
-#ifdef COMMANDLED
-            if (isPrefix(F("commandl"), variableName))
-            variable8 = &commandled;
-        else
-#endif
-#endif
-            // TODO: handle blinkTime. This currently means either break encapsulation
-            // of LedLcdManager, or write a nasty special case :-~
-#endif
-        {
-        }
-
-        if (variable32 != NULL) {
-            if (value != Tokenizer::invalid)
-                *variable32 = value;
-
-            GirsUtils::printVariable(stream, variableName.c_str(), *variable32);
-        } else if (variable16 != NULL) {
-            if (value != Tokenizer::invalid)
-                *variable16 = (uint16_t) value;
-
-            GirsUtils::printVariable(stream, variableName.c_str(), *variable16);
-        } else if (variable8 != NULL) {
-            if (value != Tokenizer::invalid)
-                *variable8 = (uint8_t) value;
-
-            GirsUtils::printVariable(stream, variableName.c_str(), *variable8);
-        } else
-            stream.println(F("No such variable"));
-    } else
-#endif // PARAMETERS
-
-#ifdef ETHERNET
-        if (cmd[0] == 'q') { // quit
-        quit = true;
-    } else
-#endif
-
-#ifdef RECEIVE
-        // TODO: option for force decoding off
-        if (isPrefix(cmd, F("receive"))) { // receive
-        bool status = receive(stream);
-        if (!status)
-            stream.println(F(errorString));
-    } else
-#endif // RECEIVE
-
-#ifdef NAMED_COMMANDS
-        if (cmd[0] == 'n') {
-        uint16_t noSends = (uint16_t) tokenizer.getInt();
-        String remoteName = tokenizer.getToken();
-        String commandName = tokenizer.getToken();
-        bool success = sendNamedCommand(stream, remoteName, commandName, noSends);
-        if (success)
-            stream.println(okString);
-    } else
-
-        if (isPrefix(cmd, "remote")) {
-        String name = tokenizer.getToken();
-        dumpRemote(stream, name);
-    } else
-#endif
-
-#ifdef RESET
-        if (isPrefix(cmd, "reset")) {
-        reset = true;
-    } else
-#endif
-
-#ifdef TRANSMIT
-        if (cmd[0] == 's') { // send
-        // TODO: handle unparsable data gracefully
-        uint16_t noSends = (uint16_t) tokenizer.getInt();
-        frequency_t frequency = tokenizer.getFrequency();
-        uint16_t introLength = (uint16_t) tokenizer.getInt();
-        uint16_t repeatLength = (uint16_t) tokenizer.getInt();
-        uint16_t endingLength = (uint16_t) tokenizer.getInt();
-        microseconds_t intro[introLength];
-        microseconds_t repeat[repeatLength];
-        microseconds_t ending[endingLength];
-        for (uint16_t i = 0; i < introLength; i++)
-            intro[i] = tokenizer.getMicroseconds();
-        for (uint16_t i = 0; i < repeatLength; i++)
-            repeat[i] = tokenizer.getMicroseconds();
-        for (uint16_t i = 0; i < endingLength; i++)
-            ending[i] = tokenizer.getMicroseconds();
-        IrSignal irSignal(intro, introLength, repeat, repeatLength, ending, endingLength, frequency);
-        bool status = sendIrSignal(irSignal, noSends); // waits
-        stream.println(status ? F(okString) : F(errorString));
-    } else
-#endif // TRANSMIT
-
-#ifdef PRONTO
-        if (isPrefix(cmd, F("hex"))) { // pronto hex send
-        uint16_t noSends = (uint16_t) tokenizer.getInt();
-        String rest = tokenizer.getRest();
-        IrSignal *irSignal = Pronto::parse(rest.c_str());
-        bool status = false;
-        if (irSignal != NULL) {
-            status = sendIrSignal(*irSignal, noSends); // waits
-            delete irSignal;
-        }
-        stream.println(status ? F(okString) : F(errorString));
-    } else
-#endif // PRONTO
-
-#ifdef RENDERER
-        if (cmd[0] == 't') { // transmit
-        // TODO: handle unparseable data gracefully
-        uint16_t noSends = (uint16_t) tokenizer.getInt();
-        String protocol = tokenizer.getToken();
-        const IrSignal *irSignal = NULL;
-        if (isPrefix(protocol, F("nec1"))) {
-            unsigned int D = (unsigned) tokenizer.getInt();
-            unsigned int S = (unsigned) tokenizer.getInt();
-            unsigned int F = (unsigned) tokenizer.getInt();
-            irSignal = (F == Tokenizer::invalid)
-                    ? Nec1Renderer::newIrSignal(D, S)
-                    : Nec1Renderer::newIrSignal(D, S, F);
-        } else if (isPrefix(protocol, F("rc5"))) {
-            unsigned int D = (unsigned) tokenizer.getInt();
-            unsigned int F = (unsigned) tokenizer.getInt();
-            unsigned int T = (unsigned) tokenizer.getInt();
-            irSignal = (T == Tokenizer::invalid)
-                    ? Rc5Renderer::newIrSignal(D, F)
-                    : Rc5Renderer::newIrSignal(D, F, T);
-        } else {
-            stream.print(F("no such protocol: "));
-            stream.println(protocol);
-        }
-        bool status = false;
-        if (irSignal != NULL) {
-            status = sendIrSignal(*irSignal, noSends); // waits, blinks
-            delete irSignal;
-        }
-        stream.println(status ? F(okString) : F(errorString));
-    } else
-#endif // RENDERER
-
-        if (cmd[0] == 'v') { // version
-        stream.println(F(PROGNAME " " VERSION));
-    } else {
-        stream.println(F(errorString));
-    }
-
-    //flushIn(stream);
-#ifdef RESET
-    if (reset)
-        return false;
-#endif
-
-#ifdef ETHERNET
-    if (quit)
-        return false;
-#endif
-
-    return true;
-}
-
-static bool readProcessOneCommand(Stream& stream) {
-    String line = readCommand(stream);
-#ifdef SERIAL_DEBUG
-    Serial.println("Command: " + line);
-#endif
-    return processCommand(line, stream);
-}
-
-#if defined(ETHERNET)
-bool readProcessOneTcpCommand(EthernetClient& client) {
-    while (client.available() == 0) {
-        LedLcdManager::checkTurnoff();
-#ifdef BEACON
-        Beacon::checkSend();
-#endif
-        if (!client.connected())
-            return false;
-    }
-    return readProcessOneCommand(client);
-}
-#endif
-
-void loop() {
-    LedLcdManager::checkTurnoff();
-#ifdef ETHERNET
-#ifdef BEACON
-    Beacon::checkSend();
-#endif
-
-    EthernetClient client = server.available();
-    if (!client)
-        return;
-    client.setTimeout(10000);
-#ifdef LCD
-    LedLcdManager::lcdPrint(F("Connection!"), true, 0, 0);
-#endif
-#ifdef SERIAL_DEBUG
-    Serial.println(F("Connection!"));
-#endif
-#if defined(COMMANDLED) & defined(LED)
-    LedLcdManager::setLogicLed(commandled, LedLcdManager::on);
-#endif
-
-    while (readProcessOneTcpCommand(client))
-#if defined(COMMANDLED) & defined(LED)
-        LedLcdManager::setLogicLed(commandled, LedLcdManager::on)
-#endif
-        ;
-#ifdef LCD
-    LedLcdManager::lcdPrint(F("Connection closed!"), true, 0, 0);
-#endif
-#ifdef SERIAL_DEBUG
-    Serial.println(F("Connection closed!"));
-#endif
-    client.println(F("Bye"));
-
-#if defined(COMMANDLED) & defined(LED)
-    LedLcdManager::setLogicLed(commandled, LedLcdManager::off);
-#endif
-
-    if (client.connected())
-        client.flush();
-    client.stop();
-
-#else // ! ETHERNET
-
-#ifdef ARDUINO
-    Stream& stream = Serial;
- #else
-    Stream stream(std::cout);
-#endif
-   readProcessOneCommand(stream);
-#endif // ! ETHERNET
-
-#ifdef RESET
-    if (reset) {
-        GirsUtils::reset();
-        reset = false; // In case it does not work, do not keep trying
-    }
-#endif
-}
-
-#ifndef ARDUINO
-int main() {
-    setup();
-    while (true)
-        loop();
-}
-#endif

+ 0 - 12
SE/stuff/P5_Automation-library-dev/AGirs/examples/Girs/Girs.ino

@@ -1,12 +0,0 @@
-// Dummy file to placify the silly Arduino IDE.
-// The real program resides in Girs.cpp.
-// Rationale: see http://www.gammon.com.au/forum/?id=12625
-
-#include "config.h"
-#include <InfraredTypes.h>
-
-#ifdef LCD
-#include <LiquidCrystal_I2C.h>
-#include <Wire.h>
-#include <SPI.h>
-#endif

+ 0 - 308
SE/stuff/P5_Automation-library-dev/AGirs/examples/Girs/GirsFat.config.h

@@ -1,308 +0,0 @@
-/**
- * @file GirsFat.config.h
- * @brief Complete configuration options.
- */
-
-#pragma once
-
-/**
- * Program name, as displayed in greeting messages etc.
- */
-#define PROGNAME "AGirs"
-
-// Define Girs modules to implement, see http://www.harctoolbox.org/Girs.html
-
-/**
- * Define to support transmission of IR signals. Requires IR LEDs.
- */
-#define TRANSMIT
-
-/**
- * Define to support the rendering of some known protocols, presently NEC1 and RC5.
- */
-#define RENDERER
-
-/**
- * Define to support capturing of IR signals.
- * Requires non-demodulating IR sensor (TSMP58000, QSE159, etc).
- */
-#define CAPTURE
-
-/**
- * Define to support reception of demodulated IR signals.
- * Require demodulating IR sensor (TSMP* or equivalent).
- */
-#define RECEIVE
-
-/**
- * Define to support decoding of the received signal.
- */
-#define DECODER
-
-/**
- * Define to support blinking with LED according to decoding outcome.
- */
-#define DECODELED
-
-/**
- * Define to support an LCD display with I2C connection. Defines a command "lcd".
- */
-#define LCD
-
-/**
- * Define to use signaling LEDs. Defines command "led".
- */
-#define LED
-
-/**
- * Define to allow to change the parameters, like timeouts.
- * Defines command "parameters". The Lirc driver uses this, if available.
- */
-#define PARAMETERS
-
-/**
- * Define to support commands called by names, grouped in sets, "remotes".
- * (Not yet implemented.)
- */
-#ifdef DOXYGEN
-#define NAMED_COMMANDS
-#endif
-//#define NAMED_COMMANDS
-
-/**
- * Define to have the receive command report the durations, even if DECODE is defined
- * and a decode was found.
- * Use this for Lirc.
- */
-#define DONT_REPORT_DECODES
-
-/**
- * Define to be able to reconfigure signaling LEDs during runtime.
- * Have parameters for transmitled etc.
- */
-#define CONFIGURABLE_LEDS
-
-/**
- * Define to support sending signals without modulation, e.g. with RF module.
- */
-#define NON_MOD
-
-/**
- * Define to support a reset command, Experimental!!
- */
-#define RESET
-
-/**
- * Define to support command "memory", reporting free (SRAM) memory.
- */
-#define FREEMEM
-
-/**
- * Define to support command "info".
- */
-#define INFO
-
-/**
- * Define to support command "hex", sending Pronto hex signals.
- */
-#define PRONTO
-
-#ifdef LED
-
-#ifdef TRANSMIT
-/**
- * Number of logical LED to light when transmission takings place.
- */
-#define TRANSMITLED 8
-//#define TRANSMITLED 4
-#endif
-
-#ifdef RECEIVE
-/**
- * Number of logical LED to light when waiting for reception.
- */
-#define RECEIVELED 7
-//#define RECEIVELED 3
-#endif
-
-#ifdef CAPTURE
-/**
- * Number of logical LED to light when waiting for capture.
- */
-#define CAPTURELED 6
-//#define CAPTURELED 2
-#endif
-
-/**
- * Number of logical LED to light when waiting for command.
- */
-#define COMMANDLED 5
-//#define COMMANDLED 1
-
-#endif // LED
-
-/**
- * Define to use Ethernet (TCP) as the communication channel.
- */
-#define ETHERNET
-
-// Print received commands on the LCD display
-//#define DEBUG_CMD
-
-#ifdef ETHERNET
-
-/**
- * Define to print some debug messages on the serial port when using Ethernet.
- */
-#define SERIAL_DEBUG
-
-/**
- * Pin to disable (put low) on Ethernet shield.
- */
-#define SDCARD_ON_ETHERSHIELD_PIN 4
-
-/**
- * Define to do IP configuration using DHCP.
- *  Is rumored to consume rather much memory.
- */
-#define DHCP
-
-/**
- * Define to invoke a AMX style beacon.
- * Requires the Beacon library (https://github.com/bengtmartensson/ABeacon).
- * For the time being, no-one takes advantage of this.
- */
-#ifdef DOXYGEN
-#define BEACON
-#endif
-//#define BEACON
-
-
-#endif // ETHERNET
-
-// Hardware configuration
-
-#ifdef ETHERNET
-
-/**
- * Must define MAC-Address to use here (!!).
- */
-#define MACADDRESS 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
-
-#ifndef DHCP
-#define IPADDRESS  192,168,1,29
-#define GATEWAY    192,168,1,254
-#define DNSSERVER  192,168,1,4
-#define SUBNETMASK 255,255,255,0
-#endif // ! DHCP
-
-/**
- * TCP port to use.
- */
-#define PORT       33333
-#endif // ETHERNET
-
-/**
- * Character that ends the command lines.
- */
-#define EOLCHAR '\r'
-
-// Hardware configuration
-
-// Define an LCD symbol to use, if desired.
-#ifdef LCD
-
-/**
- * Define to use LCD display at I2C address 0x3F,
- * 4 lines, 20 columns.
- */
-#define LCD_0x3F_20_4
-
-/**
- * Define to use LCD display at I2C address 0x27,
- * 4 lines, 20 columns.
- */
-#ifdef DOXYGEN
-#define LCD_0x27_20_4
-#endif
-//#define LCD_0x27_20_4
-
-/**
- * Define to use LCD display at I2C address 0x27,
- * 2 lines, 16 columns.
- */
-#ifdef DOXYGEN
-#define LCD_0x27_16_2
-#endif
-//#define LCD_0x27_16_2
-
-#endif // LCD
-
-// Include one file describing the pin configuration
-// Use one of the provided, or write your own.
-#include <girs_hw_config.h> // Generic
-
-#if defined(ARDUINO_AVR_MEGA2560)
-#define LARGE_RAM
-#endif
-
-// Without PARAMETERS, these are really not defaults,
-// they are the non-changeable values.
-/**
- * Time to wait for signal to start.
- */
-#define DEFAULT_BEGINTIMEOUT 10000UL // milliseconds
-
-#ifdef DECODER
-/**
- * By receive, time to wait before signal is considered ended.
- * If using the decoder, be sure to end a capture before the repeat sequence.
- */
-#define DEFAULT_RECEIVE_ENDINGTIMEOUT 30L // milliseconds
-#else
-#define DEFAULT_RECEIVE_ENDINGTIMEOUT 50L // milliseconds
-#endif
-
-#ifdef CAPTURE
-/**
- * By capture, time to wait before signal is considered ended.
- */
-#define DEFAULT_CAPTURE_ENDINGTIMEOUT 100L // milliseconds
-#endif
-
-/**
- * Size of capture and receive arrays.
- */
-#if defined(CAPTURE) | defined(RECEIVE)
-#ifdef LARGE_RAM
-#define DEFAULT_CAPTURESIZE 500U // must be even
-#else
-#define DEFAULT_CAPTURESIZE 400U // must be even
-#endif
-#endif
-
-#ifdef RECEIVE
-/**
- * This quantity is added to all gaps and subtracted from all marks when receiving.
- */
-#define IRRECEIVER_MARK_EXCESS 50
-#endif
-
-#ifdef CAPTURE
-/**
- * This quantity is added to all gaps and subtracted from all marks when capturing.
- */
-#define IRSENSOR_MARK_EXCESS -10
-#endif
-
-#if !defined(ETHERNET) | defined(SERIAL_DEBUG)
-/**
- * Configured speed of the serial port.
- */
-#define SERIALBAUD 115200
-
-/**
- * Timeout for serial line.
- */
-#define SERIALTIMEOUT 5000L
-#endif // !defined(ETHERNET) | defined(SERIAL_DEBUG)

+ 0 - 228
SE/stuff/P5_Automation-library-dev/AGirs/examples/Girs/GirsLite.config.h

@@ -1,228 +0,0 @@
-/**
- * @file GirsLite.config.h
- * @brief Configuration optimized for IrScrutinizer and Lirc.
- */
-
-#pragma once
-
-/**
- * Program name, as displayed in greeting messages etc.
- */
-#define PROGNAME "GirsLite"
-
-// Define Girs modules to implement, see http://www.harctoolbox.org/Girs.html
-
-/**
- * Define to support transmission of IR signals. Requires IR LEDs.
- */
-#define TRANSMIT
-
-/**
- * Define to support the rendering of some known protocols, presently NEC1 and RC5.
- */
-//#define RENDERER
-
-/**
- * Define to support capturing of IR signals.
- * Requires non-demodulating IR sensor (TSMP58000, QSE159, etc).
- */
-#define CAPTURE
-
-/**
- * Define to support reception of demodulated IR signals.
- * Require demodulating IR sensor (TSMP* or equivalent).
- */
-#define RECEIVE
-
-/**
- * Define to support decoding of the received signal.
- */
-//#define DECODER
-/**
- * Define to support blinking with LED according to decoding outcome.
- */
-//#define DECODELED
-
-/**
- * Define to support an LCD display with I2C connection. Defines a command "lcd".
- */
-//#define LCD
-
-/**
- * Define to use signaling LEDs. Defines command "led".
- */
-#define LED
-
-/**
- * Define to allow to change the parameters, like timeouts.
- * Defines command "parameters". The Lirc driver uses this, if available.
- */
-#define PARAMETERS
-
-/**
- * Define to support commands called by names, grouped in sets, "remotes".
- * (Not yet implemented.)
- */
-#ifdef DOXYGEN
-#define NAMED_COMMANDS
-#endif
-//#define NAMED_COMMANDS
-
-/**
- * Define to have the receive command report the durations, even if DECODE is defined
- * and a decode was found.
- * Use this for Lirc.
- */
-//#define DONT_REPORT_DECODES
-
-/**
- * Define to be able to reconfigure signaling LEDs during runtime.
- * Have parameters for transmitled etc.
- */
-//#define CONFIGURABLE_LEDS
-
-/**
- * Define to support sending signals without modulation, e.g. with RF module.
- */
-//#define NON_MOD
-
-/**
- * Define to support a reset command, Experimental!!
- */
-//#define RESET
-
-/**
- * Define to support command "memory", reporting free (SRAM) memory.
- */
-//#define FREEMEM
-
-/**
- * Define to support command "info".
- */
-//#define INFO
-
-/**
- * Define to support command "hex", sending Pronto hex signals.
- */
-//#define PRONTO
-
-#ifdef LED
-
-#ifdef TRANSMIT
-/**
- * Number of logical LED to light when transmission takings place.
- */
-#define TRANSMITLED 4
-#endif
-
-#ifdef RECEIVE
-/**
- * Number of logical LED to light when waiting for reception.
- */
-#define RECEIVELED 3
-#endif
-
-#ifdef CAPTURE
-/**
- * Number of logical LED to light when waiting for capture.
- */
-#define CAPTURELED 3
-#endif
-
-/**
- * Number of logical LED to light when waiting for command.
- */
-#define COMMANDLED 2
-
-#endif // LED
-
-
-/**
- * Character that ends the command lines.
- */
-#define EOLCHAR '\r'
-
-// Hardware configuration
-
-// Define an LCD symbol to use, if desired.
-#ifdef LCD
-
-/**
- * Define to use LCD display at I2C address 0x3F,
- * 4 lines, 20 columns.
- */
-#define LCD_0x3F_20_4
-
-/**
- * Define to use LCD display at I2C address 0x27,
- * 4 lines, 20 columns.
- */
-#ifdef DOXYGEN
-#define LCD_0x27_20_4
-#endif
-//#define LCD_0x27_20_4
-
-/**
- * Define to use LCD display at I2C address 0x27,
- * 2 lines, 16 columns.
- */
-#ifdef DOXYGEN
-#define LCD_0x27_16_2
-#endif
-//#define LCD_0x27_16_2
-
-#endif // LCD
-
-// Include one file describing the pin configuration
-// Use one of the provided, or write your own.
-#include <girs_hw_config.h> // Generic
-
-// Without PARAMETERS, these are really not defaults,
-// they are the non-changeable values.
-/**
- * Time to wait for signal to start.
- */
-#define DEFAULT_BEGINTIMEOUT 10000UL // milliseconds
-
-/**
- * By receive, time to wait before signal is considered ended.
- * If using the decoder, be sure to end a capture before the repeat sequence.
- */
-#define DEFAULT_RECEIVE_ENDINGTIMEOUT 50L // milliseconds
-#ifdef CAPTURE
-/**
- * By capture, time to wait before signal is considered ended.
- */
-#define DEFAULT_CAPTURE_ENDINGTIMEOUT 100L // milliseconds
-#endif
-
-/**
- * Size of capture and receive arrays.
- */
-#define DEFAULT_CAPTURESIZE 400U // must be even
-
-#ifdef RECEIVE
-/**
- * This quantity is added to all gaps and subtracted from all marks when receiving.
- */
-#define IRRECEIVER_MARK_EXCESS 50
-#endif
-
-#ifdef CAPTURE
-/**
- * This quantity is added to all gaps and subtracted from all marks when capturing.
- */
-#define IRSENSOR_MARK_EXCESS -10
-#endif
-
-#if !defined(ETHERNET) | defined(SERIAL_DEBUG)
-/**
- * Configured speed of the serial port.
- */
-#define SERIALBAUD 115200
-
-/**
- * Timeout for serial line.
- */
-#define SERIALTIMEOUT 5000L
-#endif // !defined(ETHERNET) | defined(SERIAL_DEBUG)

+ 0 - 5
SE/stuff/P5_Automation-library-dev/AGirs/examples/Girs/README.md

@@ -1,5 +0,0 @@
-# Girs
-
-The files in this directory builds either GirsLite or a "fatter" version, depending
-upon the file `config.h`. Per default, C preprocessor symbols are used to select
-either GirsLite or the fatter version, depending on the board related CPP symbols.

+ 0 - 31
SE/stuff/P5_Automation-library-dev/AGirs/examples/Girs/config.h

@@ -1,31 +0,0 @@
-/**
- * @file config.h
- * @brief User configuration file.
- * This file determines the configuration of the built program.
- * Feel free to be creative here; you can include pre-built files, you can replace
- * the file with your content, you can include pre-built files and override values
- * in them, or ...
- */
-
-#pragma once
-
-#ifdef ARDUINO_AVR_UNO
-// Support sending signals without modulation, e.g. with RF module.
-#define NON_MOD
-#endif
-
-#if defined(ARDUINO_AVR_UNO) | defined(ARDUINO_AVR_NANO) | defined(ARDUINO_AVR_MICRO) | defined(ARDUINO_AVR_LEONARDO)
-
-#include "GirsLite.config.h"
-
-#elif defined(ARDUINO_AVR_MEGA2560)
-
-#include "GirsFat.config.h"
-
-#elif ! defined(ARDUINO)
-
-#else
-
-#error Your platform is currently not supported. Please extend examples/Girs/config.h according to your needs and wishes.
-
-#endif

+ 0 - 166
SE/stuff/P5_Automation-library-dev/AGirs/examples/Listener/Listener.cpp

@@ -1,166 +0,0 @@
-/*
-Copyright (C) 2014, 2015, 2016 Bengt Martensson.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or (at
-your option) any later version.
-
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program. If not, see http://www.gnu.org/licenses/.
-*/
-
-#include "config.h"
-#include "GirsLib/LedLcdManager.h"
-#include "GirsLib/GirsUtils.h"
-#include <IrReceiverSampler.h>
-
-#ifdef ETHERNET
-
-#include <Ethernet.h>
-
-#include <IPAddress.h>
-#ifdef BEACON
-#include <Beacon.h>
-#endif
-#endif // ETHERNET
-
-static const milliseconds_t beginTimeout = BEGINTIMEOUT; // not really relevant here
-static const milliseconds_t endingTimeout = ENDINGTIMEOUT;
-static const size_t captureSize = CAPTURESIZE;
-static const microseconds_t markExcess = IRRECEIVER_MARK_EXCESS;
-
-#ifdef RECEIVELED
-static LED_PARAMETER_CONST led_t receiveled = RECEIVELED;
-#endif
-
-static IrReceiver *irReceiver = NULL;
-
-#ifndef PROGNAME
-#define PROGNAME "Listener"
-#endif // ! PROGNAME
-#ifndef VERSION
-#include "GirsLib/version.h"
-#endif // VERSION
-
-#ifdef ETHERNET
-static EthernetUDP udp;
-static IPAddress broadcastIp(BROADCAST_IP);
-#endif // ETHERNET
-
-static char decode[100];
-
-static void readOneDecode() {
-    decode[0] = '\0';
-#ifdef RECEIVELED
-    LedLcdManager::setLogicLed(receiveled, LedLcdManager::on);
-#endif
-    irReceiver->enable();
-    // Wait until something arrives
-    while (!irReceiver->isReady())
-        LedLcdManager::checkTurnoff();
-
-#ifdef RECEIVELED
-    LedLcdManager::setLogicLed(receiveled, LedLcdManager::off);
-#endif
-    MultiDecoder multiDecoder(*irReceiver);
-#ifdef LCD
-    if (multiDecoder.getType() > MultiDecoder::noise) {
-        LedLcdManager::lcdPrint(multiDecoder.getType() == MultiDecoder::nec_ditto
-                ? "." : multiDecoder.getDecode(),
-                multiDecoder.getType() != MultiDecoder::nec_ditto);
-        if (multiDecoder.getType() == MultiDecoder::nec)
-            LedLcdManager::lcdSetCursor(0, 1); // prepare for dittos
-    }
-#endif
-    MultiDecoder::Type type = multiDecoder.getType();
-    strncpy(decode, multiDecoder.getDecode(), 100);
-
-    LedLcdManager::setLogicLed(GirsUtils::decode2logicalLed(type), LedLcdManager::blink);
-    irReceiver->disable();
-}
-
-void setup() {
-    LedLcdManager::setupLedGroundPins();
-    GirsUtils::setupReceivers();
-    GirsUtils::setupLeds();
-    LedLcdManager::setup(LCD_I2C_ADDRESS, LCD_WIDTH, LCD_HEIGHT,
-            (const pin_t[]) {SIGNAL_LED_1, SIGNAL_LED_2, SIGNAL_LED_3, SIGNAL_LED_4,
-                    SIGNAL_LED_5, SIGNAL_LED_6, SIGNAL_LED_7, SIGNAL_LED_8 });
-    LedLcdManager::selfTest(F(PROGNAME " " VERSION));
-#ifdef LED
-    LedLcdManager::setupShouldTimeout(receiveled, false);
-#endif
-
-#ifdef LCD
-#ifdef ETHERNET
-    LedLcdManager::lcdPrint(GirsUtils::ip2string(broadcastIp) + ":" + BROADCAST_PORT, false, 0, 1);
-#else // ! ETHERNET
-    LedLcdManager::lcdPrint(F("Serial"), false, 0, 1);
-#endif // ! ETHERNET
-#endif // LCD
-
-#ifdef ETHERNET
-#ifdef SDCARD_ON_ETHERSHIELD_PIN
-    // disable the SD card, as recommended in the doc
-    pinMode(SDCARD_ON_ETHERSHIELD_PIN, OUTPUT);
-    digitalWrite(SDCARD_ON_ETHERSHIELD_PIN, LOW);
-#endif
-
-    byte mac[] = { MACADDRESS };
-
-    Ethernet.begin(mac
-#ifndef DHCP
-    , IPAddress(IPADDRESS), IPAddress(DNSSERVER), IPAddress(GATEWAY), IPAddress(SUBNETMASK)
-#endif // !DHCP
-    );
-
-    String ipstring = GirsUtils::ip2string(Ethernet.localIP());
-    LedLcdManager::lcdPrint(ipstring, false, 0, 2);
-
-#ifdef BEACON
-    Beacon::setup(PROGNAME, "DE-AD-BE-EF-FE-ED", "Utility", "www.harctoolbox.org",
-            "", "", "", "http://arduino/nosuchfile.html");
-#endif
-
-#define DUMMYPORT 8888
-    udp.begin(DUMMYPORT);
-
-#else // ! ETHERNET
-
-    Serial.begin(SERIALBAUD);
-    Serial.setTimeout(SERIALTIMEOUT);
-#if defined(ARDUINO_AVR_LEONARDO) | defined(ARDUINO_AVR_MICRO)
-    while (!Serial)
-        ; // wait for serial port to connect. "Needed for Leonardo only"
-#endif
-    Serial.println(F(PROGNAME " " VERSION));
-
-#endif // ! ETHERNET
-
-    irReceiver = IrReceiverSampler::newIrReceiverSampler(captureSize, IRRECEIVER_1_PIN,
-            IRRECEIVER_1_PULLUP_VALUE, markExcess, beginTimeout, endingTimeout);
-}
-
-void loop() {
-    LedLcdManager::checkTurnoff();
-#ifdef BEACON
-    Beacon::checkSend();
-#endif
-    readOneDecode();
-    if (decode[0] != '\0') {
-#ifdef ETHERNET
-        udp.beginPacket(broadcastIp, BROADCAST_PORT);
-        udp.write(decode);
-        udp.write(EOLCHAR);
-        udp.endPacket();
-#else // ! ETHERNET
-        Serial.println(decode);
-#endif // ! ETHERNET
-    }
-}

+ 0 - 5
SE/stuff/P5_Automation-library-dev/AGirs/examples/Listener/Listener.ino

@@ -1,5 +0,0 @@
-// Dummy file to placify the silly Arduino IDE.
-// Do not delete unless you know what you do.
-
-#include "config.h"
-#include <IrReceiverSampler.h>

+ 0 - 22
SE/stuff/P5_Automation-library-dev/AGirs/examples/Listener/README.md

@@ -1,22 +0,0 @@
-# Listerner
-
-This is a quite a dumb program. It just runs in an infinite loop, receiving IR signals, decodes them,
-and writes the decode to either the serial console, or a UDP socket.
-
-Presently, only NEC1 and RC5 signals are supported.
-
-It uses a demodulating IR receiver (e.g. TSOP-*).
-If an LCD display is connected, the decodes
-are written to it. Also, LEDs can be connected, and when a signal is successfuly decoded,
-a LED, dependent on the decode type, is lit. (Using a "multicolored LED" for this is nice.)
-
-This program is intended to work as a gateway;
-to send events to a home automation systems using a cheap IR remote, as an alternative
-to, for example, a smartphone app. A NEC1 remote is recommended.
-
-For example, the simple Java program [dispatcher](https://github.com/bengtmartensson/dispatcher)
-can be used to receive and dispatch the events.
-
-To configure, just edit config.h. See the build instructions in top level README.md.
-
-Strictly speaking, this program is not "Girs". However, it uses the code of AGirs (and thus, indirectly, Infrared4Arduino).

+ 0 - 65
SE/stuff/P5_Automation-library-dev/AGirs/examples/Listener/config.h

@@ -1,65 +0,0 @@
-// Configuration options
-
-#pragma once
-
-// Use LEDs
-#define LED
-
-#ifdef LED
-#define DECODELED
-
-// Light this when receive is pending
-#define RECEIVELED 1
-#endif // LED
-
-// LCD display with I2C connection.
-#define LCD
-
-// Define if using Ethernet (TCP or UDP) as the communication channel
-//#define ETHERNET
-
-// If LCD support desired, include appropriate hardware description
-#ifdef LCD
-#define LCD_0x27_16_2
-#endif
-
-#include <girs_hw_config.h>
-
-// Character that ends the command lines
-#define EOLCHAR '\n'
-
-#define ENDINGTIMEOUT 35L // milliseconds
-#define CAPTURESIZE 200U // must be even
-#define BEGINTIMEOUT 10000UL // milliseconds
-// This quantity is added to all gaps and subtracted from all marks.
-#define IRRECEIVER_MARK_EXCESS 50
-
-#ifdef ETHERNET
-
-#define SDCARD_ON_ETHERSHIELD // there is a pin4 to be selected low
-#define SDCARD_ON_ETHERSHIELD_PIN 4 // there is a pin4 to be selected low
-
-#define DHCP // Consumes rather much memory
-
-// Invoke the AMX style beacon, as per https://github.com/bengtmartensson/ABeacon
-#define BEACON
-
-#define BROADCAST_IP 192,168,1,3
-#define BROADCAST_PORT 55555
-
-#define MACADDRESS 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
-
-#ifndef DHCP
-#define IPADDRESS  192,168,1,29
-#define GATEWAY    192,168,1,254
-#define DNSSERVER  192,168,1,4
-#define SUBNETMASK 255,255,255,0
-#endif // ! DHCP
-
-#else // ! ETHERNET
-
-// Parameters, (not really defaults, but actual values))
-#define SERIALBAUD 115200UL
-#define SERIALTIMEOUT 5000ULL
-
-#endif // ! ETHERNET

+ 0 - 148
SE/stuff/P5_Automation-library-dev/AGirs/examples/Opponator/Opponator.cpp

@@ -1,148 +0,0 @@
-/*
-Copyright (C) 2015 Bengt Martensson.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or (at
-your option) any later version.
-
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program. If not, see http://www.gnu.org/licenses/.
-*/
-
-/*
- * This is more of an example than a program that is expected to be useful as-is.
- * It is a sort-of IR to serial translator.
- * It listens to an IR receiver, and transmits serial commands to an OPPO BluRay (or DVD) player,
- * (see http://download.oppodigital.com/BDP103/BDP103_RS232_Protocol_v1.2.2.pdf)
- * It can also issue query commands, and display the result on an LCD screen.
- */
-
-#include "config.h"
-#include <Arduino.h>
-#include <IrReceiverSampler.h>
-#include <Nec1Decoder.h>
-#include "GirsLib/LedLcdManager.h"
-#include "GirsLib/GirsUtils.h"
-
-#ifndef LCD
-#error LCD is presently required
-#endif
-
-#ifdef ARDUINO
-//#ifdef ARDUINO_AVR_MEGA2560
-//Stream& stream = Serial1;
-//#else  // !ARDUINO_AVR_MEGA2560
-Stream& stream = Serial;
-//#endif // ! ARDUINO_AVR_MEGA2560
-#else  // ! ARDUINO
-Stream stream(std::cout);
-#endif // ! ARDUINO
-
-#ifndef PROGNAME
-#define PROGNAME "Opponator"
-#endif
-#ifndef VERSION
-#include "GirsLib/version.h"
-#endif
-
-static IrReceiverSampler* irReceiver;
-
-void send(String payload) {
-    stream.print("#" + payload + "\r");
-}
-
-void sendReceiveDisplay(String payload, String title) {
-    send(payload);
-    LedLcdManager::lcdPrint(title, true);
-#ifdef ARDUINO
-    String answer = stream.readStringUntil('\r');
-    answer.trim();
-    LedLcdManager::lcdPrint(answer, false, 0, 1);
-#endif
-}
-
-void action(IrReader *irReader) {
-    Nec1Decoder decoder(*irReader);
-    if (decoder.isValid() && ! decoder.isDitto()
-            && decoder.getD() == selectedD
-            && decoder.getS() == selectedS) {
-        LedLcdManager::lcdPrint("Signal " +
-#ifdef ARDUINO
-                String(decoder.getF())
-#else
-                std::to_string(decoder.getF())
-#endif
-                );
-        switch (decoder.getF()) {
-            case 6: // Play
-                send("PLA");
-                break;
-            case 86://14: // Power
-                send("POW");
-                break;
-            case 18: // Goto
-                sendReceiveDisplay("QEL", "Tot elapsed");
-                break;
-            case 26: // Eject
-                send("EJT");
-                break;
-            case 64: // Title
-                sendReceiveDisplay("QTK", "Title playing");
-                break;
-            case 80: // Display
-                sendReceiveDisplay("QVR", "FW version"); // Query firmware version
-                break;
-            case 92: // ENTER
-                break;
-            default:
-                // ...
-                break;
-        }
-    }
-#ifdef DEBUG
-    else {
-        irReader->dump(stream);
-        stream.println(decoder.isValid() ? "valid" : "invalid");
-        stream.println(decoder.getD());
-        stream.println(decoder.getS());
-        stream.println(decoder.getF());
-    }
-#endif
-}
-
-void loop() {
-    irReceiver->enable();
-    while (!irReceiver->isReady()) {
-        LedLcdManager::checkTurnoff();
-    }
-    irReceiver->disable();
-    action(irReceiver);
-}
-
-void setup() {
-    LedLcdManager::setup(LCD_I2C_ADDRESS, LCD_WIDTH, LCD_HEIGHT);
-    GirsUtils::setupReceivers();
-    LedLcdManager::lcdPrint(F(PROGNAME));
-    LedLcdManager::lcdPrint(F(VERSION), false, 0, 1);
-
-#ifdef ARDUINO
-    Serial.begin(serialBaud);
-#endif
-
-    irReceiver = IrReceiverSampler::newIrReceiverSampler(IrReader::defaultCaptureLength,
-            IRRECEIVER_1_PIN, IRRECEIVER_1_PULLUP_VALUE, IRRECEIVER_MARK_EXCESS, DEFAULT_BEGINTIMEOUT, DEFAULT_ENDINGTIMEOUT);
-}
-
-#ifndef ARDUINO
-int main() {
-    setup();
-    while (true)
-        loop();
-}
-#endif

+ 0 - 6
SE/stuff/P5_Automation-library-dev/AGirs/examples/Opponator/Opponator.ino

@@ -1,6 +0,0 @@
-// Dummy file to placify the silly Arduino IDE.
-// Do not delete unless you know what you do.
-
-
-#include "config.h"
-#include <IrReceiverSampler.h>

+ 0 - 9
SE/stuff/P5_Automation-library-dev/AGirs/examples/Opponator/README.md

@@ -1,9 +0,0 @@
-# Opponator
-
-This is a demo program for translating IR -> Serial.
-
-As the name suggests, it operates an Oppo Bluray/DVD player. It receives an IR signal, and
-sends a command to the RS232 serial port.
-
-Since this is just a demo, only very few commands are implemented. It is believed to work
-with all present and past Oppos with serial port.

+ 0 - 28
SE/stuff/P5_Automation-library-dev/AGirs/examples/Opponator/config.h

@@ -1,28 +0,0 @@
-// Configuration options
-
-#pragma once
-
-// LCD display with I2C connection.
-#define LCD
-
-// Hardware configuration
-
-#define LCD_0x27_16_2
-
-// Include one file describing the pin configuration
-#include "girs_hw_config.h"
-
-#define DEFAULT_BEGINTIMEOUT 10000UL // milliseconds
-
-#define serialBaud 115200
-#define serialTimeout 5000L
-
-// Must split a NEC1 between the payload and the repeat
-#define DEFAULT_ENDINGTIMEOUT 35L // milliseconds
-
-// This quantity is added to all gaps and subtracted from all marks.
-#define IRRECEIVER_MARK_EXCESS 50U
-
-// Remote the thing is reacting to
-#define selectedD 108 //114
-#define selectedS 104 //205

+ 0 - 16
SE/stuff/P5_Automation-library-dev/AGirs/examples/Translator/README.md

@@ -1,16 +0,0 @@
-# Translator
-
-This is more of a demonstration than a directly usable program. It just runs in an infinite loop, receiving IR signals, decodes them,
-and, possibly sending out other signals. It is hoped that this program can serve as an
-inspiration to be adapted to your own needs.
-
-The program recognizes the Yamaha volume up and volume down commands, (Nec1 122/133/26 and 122/133/27 respectively),
-and sending instead the volume up and down commands for a Philips TV (RC5 0/16 and 0/17 respectively). Repeats are presently not recognized.
-
-It uses a demodulating IR receiver (e.g. TSOP-*).
-If an LCD display is connected, the recognized and translated commands are written to it.
-Also, LEDs can be connected, providing some status information.
-
-To configure, just edit config.h. See the build instructions in top level README.md.
-
-Strictly speaking, this program is not "Girs". However, it uses the code of AGirs (and thus, indirectly, Infrared4Arduino).

+ 0 - 131
SE/stuff/P5_Automation-library-dev/AGirs/examples/Translator/Translator.cpp

@@ -1,131 +0,0 @@
-/*
-Copyright (C) 2018 Bengt Martensson.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or (at
-your option) any later version.
-
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program. If not, see http://www.gnu.org/licenses/.
-*/
-
-#include "config.h"
-#include "GirsLib/LedLcdManager.h"
-#include "GirsLib/GirsUtils.h"
-#include <IrReceiverSampler.h>
-#include <IrSenderPwm.h>
-#include <Nec1Decoder.h>
-#include <Rc5Renderer.h>
-
-#ifdef DEBUG
-Stream& stream = Serial;
-#endif
-
-static IrReceiver *irReceiver = NULL;
-static IrSender *sender = NULL;
-
-
-#ifndef PROGNAME
-#define PROGNAME "Translator"
-#endif // ! PROGNAME
-#ifndef VERSION
-#include "GirsLib/version.h"
-#endif // VERSION
-
-static void transmit(const char *name, unsigned int D, unsigned int F, unsigned int count = 1) {
-    LedLcdManager::lcdPrint("Command: " + String(name));
-#ifdef DEBUG
-    stream.println("Command: " + String(name));
-#endif
-    const IrSignal *signal = Rc5Renderer::newIrSignal(D, F);
-#ifdef TRANSMITLED
-    LedLcdManager::setLogicLed(TRANSMITLED, LedLcdManager::on);
-#endif
-    sender->sendIrSignal(*signal, count);
-#ifdef TRANSMITLED
-    LedLcdManager::setLogicLed(TRANSMITLED, LedLcdManager::off);
-#endif
-    delete(signal);
-}
-
-static void action() {
-    Nec1Decoder decoder(*irReceiver);
-    if (decoder.isValid() && !decoder.isDitto()) {
-        int D = decoder.getD();
-        int S = decoder.getS();
-        int F = decoder.getF();
-#ifdef DEBUG
-        stream.println("NEC1 " + String(D) + "/" + String(S) + "/" + String(F));
-#endif
-        if (D == RECV_NEC1_DEVICE && S == RECV_NEC1_SUBDEVICE) {
-            switch (decoder.getF()) {
-                case RECV_VOLUME_UP_CMD:
-                    transmit("UP", SEND_DEVICE, SEND_VOLUME_UP_CMD);
-                    break;
-                case RECV_VOLUME_DOWN_CMD:
-                    transmit("DOWN", SEND_DEVICE, SEND_VOLUME_DOWN_CMD);
-                    break;
-                default:
-                    LedLcdManager::lcdPrint("Unknown: " + String(decoder.getF()));
-#ifdef DEBUG
-                    stream.println("Unknown command: " + String(decoder.getF()));
-#endif
-                    break;
-            }
-        }
-    }
-}
-
-void setup() {
-    LedLcdManager::setupLedGroundPins();
-    GirsUtils::setupReceivers();
-    GirsUtils::setupLeds();
-    LedLcdManager::setup(LCD_I2C_ADDRESS, LCD_WIDTH, LCD_HEIGHT,
-            (const pin_t[]) {SIGNAL_LED_1, SIGNAL_LED_2, SIGNAL_LED_3, SIGNAL_LED_4,
-                    SIGNAL_LED_5, SIGNAL_LED_6, SIGNAL_LED_7, SIGNAL_LED_8 });
-    LedLcdManager::selfTest(F(PROGNAME " " VERSION));
-    LedLcdManager::lcdPrint(F("*************"), false, 0, 1);
-#ifdef LED
-    LedLcdManager::setupShouldTimeout(RECEIVELED, false);
-    LedLcdManager::setupShouldTimeout(TRANSMITLED, false);
-#endif
-
-#ifdef DEBUG
-    Serial.begin(SERIALBAUD);
-    Serial.setTimeout(SERIALTIMEOUT);
-#if defined(ARDUINO_AVR_LEONARDO) | defined(ARDUINO_AVR_MICRO)
-    while (!Serial)
-        ; // wait for serial port to connect. "Needed for Leonardo only"
-#endif
-    stream.println(F(PROGNAME " " VERSION));
-#endif // DEBUG
-    irReceiver = IrReceiverSampler::newIrReceiverSampler(CAPTURESIZE, IRRECEIVER_1_PIN,
-            IRRECEIVER_1_PULLUP_VALUE, IRRECEIVER_MARK_EXCESS, BEGINTIMEOUT, ENDINGTIMEOUT);
-    irReceiver->setEndingTimeout(ENDINGTIMEOUT);
-    irReceiver->setBeginningTimeout(BEGINTIMEOUT);
-    sender = IrSenderPwm::getInstance(true);
-}
-
-static void read() {
-#ifdef RECEIVELED
-    LedLcdManager::setLogicLed(RECEIVELED, LedLcdManager::on);
-#endif
-    irReceiver->enable();
-    while (!irReceiver->isReady())
-        LedLcdManager::checkTurnoff();
-    irReceiver->disable();
-#ifdef RECEIVELED
-    LedLcdManager::setLogicLed(RECEIVELED, LedLcdManager::off);
-#endif
-}
-
-static void loop() {
-    read();
-    action();
-}

+ 0 - 5
SE/stuff/P5_Automation-library-dev/AGirs/examples/Translator/Translator.ino

@@ -1,5 +0,0 @@
-// Dummy file to placify the silly Arduino IDE.
-// Do not delete unless you know what you do.
-
-#include "config.h"
-#include <IrReceiverSampler.h>

+ 0 - 48
SE/stuff/P5_Automation-library-dev/AGirs/examples/Translator/config.h

@@ -1,48 +0,0 @@
-// Configuration options
-
-#pragma once
-
-#define DEBUG
-
-// Use LEDs
-#define LED
-
-#ifdef LED
-//#define DECODELED
-
-// Light this when receive is pending
-#define RECEIVELED 2
-#define TRANSMITLED 3
-
-#endif // LED
-
-// LCD display with I2C connection.
-#define LCD
-
-// If LCD support desired, include appropriate hardware description
-#ifdef LCD
-#define LCD_0x27_16_2
-#endif
-
-#include <girs_hw_config.h>
-
-// Character that ends the command lines
-#define EOLCHAR '\n'
-
-#define ENDINGTIMEOUT 35L // milliseconds
-#define CAPTURESIZE 200U // must be even
-#define BEGINTIMEOUT 100UL // milliseconds
-// This quantity is added to all gaps and subtracted from all marks.
-#define IRRECEIVER_MARK_EXCESS 50
-
-// Parameters, (not really defaults, but actual values))
-#define SERIALBAUD 115200UL
-#define SERIALTIMEOUT 5000ULL
-
-#define RECV_NEC1_DEVICE 122
-#define RECV_NEC1_SUBDEVICE (255 - 122)
-#define RECV_VOLUME_UP_CMD 26
-#define RECV_VOLUME_DOWN_CMD 27
-#define SEND_DEVICE 0
-#define SEND_VOLUME_UP_CMD 16
-#define SEND_VOLUME_DOWN_CMD 17

+ 0 - 358
SE/stuff/P5_Automation-library-dev/AGirs/keywords.txt

@@ -1,358 +0,0 @@
-#######################################
-# Syntax Coloring Map For the current project.
-# This file was generated by doxygen2keywords.xsl.
-#######################################
-
-#######################################
-# Classes and structs (KEYWORD1)
-#######################################
-
-GirsUtils	KEYWORD1
-LedLcdManager	KEYWORD1
-Tokenizer	KEYWORD1
-
-#######################################
-# Methods (KEYWORD2)
-#######################################
-
-GirsUtils	KEYWORD2
-freeRam	KEYWORD2
-reset	KEYWORD2
-decode2logicalLed	KEYWORD2
-printVariable	KEYWORD2
-ip2string	KEYWORD2
-receiverPin	KEYWORD2
-receiverPullup	KEYWORD2
-setupLeds	KEYWORD2
-setupReceivers	KEYWORD2
-setupSensors	KEYWORD2
-sensorPullup	KEYWORD2
-setupPhysicalLeds	KEYWORD2
-setupShouldTimeOut	KEYWORD2
-setupLcdI2c	KEYWORD2
-disableTurnOffTime	KEYWORD2
-groundPin	KEYWORD2
-LedLcdManager	KEYWORD2
-setup	KEYWORD2
-lcdPrint	KEYWORD2
-lcdSetCursor	KEYWORD2
-allOff	KEYWORD2
-getBlinkTime	KEYWORD2
-setBlinkTime	KEYWORD2
-updateTurnOffTime	KEYWORD2
-checkTurnoff	KEYWORD2
-selfTest	KEYWORD2
-setPhysicalLed	KEYWORD2
-setLogicLed	KEYWORD2
-onOffBlinkParse	KEYWORD2
-setupShouldTimeout	KEYWORD2
-setupLogicLed	KEYWORD2
-setupLogicLeds	KEYWORD2
-setupLedGroundPins	KEYWORD2
-setupPhysicalLeds	KEYWORD2
-trim	KEYWORD2
-Tokenizer	KEYWORD2
-~Tokenizer	KEYWORD2
-getToken	KEYWORD2
-getRest	KEYWORD2
-getLine	KEYWORD2
-getInt	KEYWORD2
-getMicroseconds	KEYWORD2
-getFrequency	KEYWORD2
-server	KEYWORD2
-flushIn	KEYWORD2
-decodeOrDump	KEYWORD2
-receive	KEYWORD2
-capture	KEYWORD2
-setup	KEYWORD2
-isPrefix	KEYWORD2
-readCommand	KEYWORD2
-processCommand	KEYWORD2
-readProcessOneCommand	KEYWORD2
-readProcessOneTcpCommand	KEYWORD2
-loop	KEYWORD2
-broadcastIp	KEYWORD2
-readOneDecode	KEYWORD2
-setup	KEYWORD2
-loop	KEYWORD2
-
-#######################################
-# Constants (LITERAL1)
-#######################################
-
-on	LITERAL1
-off	LITERAL1
-blink	LITERAL1
-invalid	LITERAL1
-LED	LITERAL1
-DECODELED	LITERAL1
-RECEIVELED	LITERAL1
-LCD	LITERAL1
-LCD_0x27_16_2	LITERAL1
-EOLCHAR	LITERAL1
-ENDINGTIMEOUT	LITERAL1
-CAPTURESIZE	LITERAL1
-BEGINTIMEOUT	LITERAL1
-IRRECEIVER_MARK_EXCESS	LITERAL1
-SDCARD_ON_ETHERSHIELD	LITERAL1
-SDCARD_ON_ETHERSHIELD_PIN	LITERAL1
-DHCP	LITERAL1
-BEACON	LITERAL1
-BROADCAST_IP	LITERAL1
-BROADCAST_PORT	LITERAL1
-MACADDRESS	LITERAL1
-LED_PARAMETER_CONST	LITERAL1
-PARAMETERS_NAME	LITERAL1
-PARAMETER_CONST	LITERAL1
-modulesSupported	LITERAL1
-PROGNAME	LITERAL1
-okString	LITERAL1
-errorString	LITERAL1
-timeoutString	LITERAL1
-PROGNAME	LITERAL1
-TRANSMIT	LITERAL1
-RENDERER	LITERAL1
-CAPTURE	LITERAL1
-RECEIVE	LITERAL1
-DECODER	LITERAL1
-DECODELED	LITERAL1
-LCD	LITERAL1
-LED	LITERAL1
-PARAMETERS	LITERAL1
-NAMED_COMMANDS	LITERAL1
-DONT_REPORT_DECODES	LITERAL1
-CONFIGURABLE_LEDS	LITERAL1
-NON_MOD	LITERAL1
-RESET	LITERAL1
-FREEMEM	LITERAL1
-INFO	LITERAL1
-PRONTO	LITERAL1
-TRANSMITLED	LITERAL1
-RECEIVELED	LITERAL1
-CAPTURELED	LITERAL1
-COMMANDLED	LITERAL1
-ETHERNET	LITERAL1
-SERIAL_DEBUG	LITERAL1
-SDCARD_ON_ETHERSHIELD_PIN	LITERAL1
-DHCP	LITERAL1
-BEACON	LITERAL1
-MACADDRESS	LITERAL1
-PORT	LITERAL1
-EOLCHAR	LITERAL1
-LCD_0x3F_20_4	LITERAL1
-LCD_0x27_20_4	LITERAL1
-LCD_0x27_16_2	LITERAL1
-DEFAULT_BEGINTIMEOUT	LITERAL1
-DEFAULT_RECEIVE_ENDINGTIMEOUT	LITERAL1
-DEFAULT_CAPTURE_ENDINGTIMEOUT	LITERAL1
-DEFAULT_CAPTURESIZE	LITERAL1
-IRRECEIVER_MARK_EXCESS	LITERAL1
-IRSENSOR_MARK_EXCESS	LITERAL1
-SERIALBAUD	LITERAL1
-SERIALTIMEOUT	LITERAL1
-PROGNAME	LITERAL1
-TRANSMIT	LITERAL1
-CAPTURE	LITERAL1
-RECEIVE	LITERAL1
-LED	LITERAL1
-PARAMETERS	LITERAL1
-NAMED_COMMANDS	LITERAL1
-TRANSMITLED	LITERAL1
-RECEIVELED	LITERAL1
-CAPTURELED	LITERAL1
-COMMANDLED	LITERAL1
-EOLCHAR	LITERAL1
-LCD_0x3F_20_4	LITERAL1
-LCD_0x27_20_4	LITERAL1
-LCD_0x27_16_2	LITERAL1
-DEFAULT_BEGINTIMEOUT	LITERAL1
-DEFAULT_RECEIVE_ENDINGTIMEOUT	LITERAL1
-DEFAULT_CAPTURE_ENDINGTIMEOUT	LITERAL1
-DEFAULT_CAPTURESIZE	LITERAL1
-IRRECEIVER_MARK_EXCESS	LITERAL1
-IRSENSOR_MARK_EXCESS	LITERAL1
-PROGNAME	LITERAL1
-DUMMYPORT	LITERAL1
-IRRECEIVER_1_PULLUP_VALUE	LITERAL1
-IRRECEIVER_2_PULLUP_VALUE	LITERAL1
-IRRECEIVER_3_PULLUP_VALUE	LITERAL1
-IRRECEIVER_4_PULLUP_VALUE	LITERAL1
-IRRECEIVER_5_PULLUP_VALUE	LITERAL1
-IRRECEIVER_6_PULLUP_VALUE	LITERAL1
-IRRECEIVER_7_PULLUP_VALUE	LITERAL1
-IRRECEIVER_8_PULLUP_VALUE	LITERAL1
-IRSENSOR_1_PULLUP_VALUE	LITERAL1
-IRSENSOR_2_PULLUP_VALUE	LITERAL1
-IRSENSOR_3_PULLUP_VALUE	LITERAL1
-IRSENSOR_4_PULLUP_VALUE	LITERAL1
-IRSENSOR_5_PULLUP_VALUE	LITERAL1
-IRSENSOR_6_PULLUP_VALUE	LITERAL1
-IRSENSOR_7_PULLUP_VALUE	LITERAL1
-IRSENSOR_8_PULLUP_VALUE	LITERAL1
-SIGNAL_LED_1	LITERAL1
-SIGNAL_LED_2	LITERAL1
-SIGNAL_LED_3	LITERAL1
-SIGNAL_LED_4	LITERAL1
-SIGNAL_LED_5	LITERAL1
-SIGNAL_LED_6	LITERAL1
-SIGNAL_LED_7	LITERAL1
-SIGNAL_LED_8	LITERAL1
-receiveled	LITERAL1
-captureled	LITERAL1
-transmitled	LITERAL1
-commandled	LITERAL1
-UNUSED	LITERAL1
-TRANSMIT_NAME	LITERAL1
-CAPTURE_NAME	LITERAL1
-RECEIVE_NAME	LITERAL1
-RENDERER_NAME	LITERAL1
-DECODER_NAME	LITERAL1
-LED_NAME	LITERAL1
-LCD_NAME	LITERAL1
-NAMED_COMMANDS_NAME	LITERAL1
-PRONTO_NAME	LITERAL1
-TRANSMITTERS_NAME	LITERAL1
-PARAMETERS_NAME	LITERAL1
-PARAMETER_CONST	LITERAL1
-LED_PARAMETER_CONST	LITERAL1
-QUOTE	LITERAL1
-EXPAND_AND_QUOTE	LITERAL1
-LCD_I2C_ADDRESS	LITERAL1
-LCD_WIDTH	LITERAL1
-LCD_HEIGHT	LITERAL1
-NON_MOD_PIN	LITERAL1
-LCD	LITERAL1
-TOKEN2INT	LITERAL1
-VERSION	LITERAL1
-SIGNAL_LED_1	LITERAL1
-SIGNAL_LED_2	LITERAL1
-SIGNAL_LED_3	LITERAL1
-SIGNAL_LED_4	LITERAL1
-SIGNAL_LED_5	LITERAL1
-SIGNAL_LED_6	LITERAL1
-SIGNAL_LED_7	LITERAL1
-SIGNAL_LED_8	LITERAL1
-IRSENSOR_1_PIN	LITERAL1
-IRRECEIVER_1_PIN	LITERAL1
-IRRECEIVER_2_PIN	LITERAL1
-IRRECEIVER_3_PIN	LITERAL1
-NON_MOD_PIN	LITERAL1
-SIGNAL_LED_1	LITERAL1
-SIGNAL_LED_2	LITERAL1
-SIGNAL_LED_3	LITERAL1
-SIGNAL_LED_4	LITERAL1
-SIGNAL_LED_5	LITERAL1
-SIGNAL_LED_6	LITERAL1
-SIGNAL_LED_7	LITERAL1
-SIGNAL_LED_8	LITERAL1
-IRSENSOR_1_PIN	LITERAL1
-IRRECEIVER_1_PIN	LITERAL1
-IRRECEIVER_2_PIN	LITERAL1
-IRRECEIVER_3_PIN	LITERAL1
-IRRECEIVER_4_PIN	LITERAL1
-NON_MOD_PIN	LITERAL1
-SIGNAL_LED_1	LITERAL1
-SIGNAL_LED_2	LITERAL1
-SIGNAL_LED_3	LITERAL1
-SIGNAL_LED_4	LITERAL1
-SIGNAL_LED_5_GND	LITERAL1
-SIGNAL_LED_5	LITERAL1
-SIGNAL_LED_6_GND	LITERAL1
-SIGNAL_LED_6	LITERAL1
-SIGNAL_LED_7_GND	LITERAL1
-SIGNAL_LED_7	LITERAL1
-SIGNAL_LED_8_GND	LITERAL1
-SIGNAL_LED_8	LITERAL1
-IRSENSOR_1_PIN	LITERAL1
-IRSENSOR_1_PULLUP	LITERAL1
-IRSENSOR_2_PIN	LITERAL1
-IRSENSOR_2_PULLUP	LITERAL1
-IRRECEIVER_1_PIN	LITERAL1
-IRRECEIVER_1_PULLUP	LITERAL1
-IRRECEIVER_2_PIN	LITERAL1
-IRRECEIVER_3_PIN	LITERAL1
-IRRECEIVER_4_PIN	LITERAL1
-IRRECEIVER_5_PIN	LITERAL1
-NON_MOD_PIN	LITERAL1
-SIGNAL_LED_1	LITERAL1
-SIGNAL_LED_2	LITERAL1
-SIGNAL_LED_3	LITERAL1
-SIGNAL_LED_4	LITERAL1
-SIGNAL_LED_5	LITERAL1
-SIGNAL_LED_6	LITERAL1
-SIGNAL_LED_7	LITERAL1
-SIGNAL_LED_8	LITERAL1
-IRSENSOR_1_PIN	LITERAL1
-IRRECEIVER_1_PIN	LITERAL1
-IRRECEIVER_2_PIN	LITERAL1
-SIGNAL_LED_1	LITERAL1
-SIGNAL_LED_2	LITERAL1
-SIGNAL_LED_3	LITERAL1
-SIGNAL_LED_4	LITERAL1
-SIGNAL_LED_5_GND	LITERAL1
-SIGNAL_LED_5	LITERAL1
-SIGNAL_LED_6_GND	LITERAL1
-SIGNAL_LED_6	LITERAL1
-SIGNAL_LED_7_GND	LITERAL1
-SIGNAL_LED_7	LITERAL1
-SIGNAL_LED_8_GND	LITERAL1
-SIGNAL_LED_8	LITERAL1
-IRSENSOR_1_PIN	LITERAL1
-IRSENSOR_2_PIN	LITERAL1
-IRSENSOR_2_PULLUP	LITERAL1
-IRRECEIVER_1_PIN	LITERAL1
-IRRECEIVER_2_PIN	LITERAL1
-IRRECEIVER_3_PIN	LITERAL1
-IRRECEIVER_4_PIN	LITERAL1
-IRRECEIVER_5_PIN	LITERAL1
-NON_MOD_PIN	LITERAL1
-SIGNAL_LED_1	LITERAL1
-SIGNAL_LED_2	LITERAL1
-SIGNAL_LED_3	LITERAL1
-SIGNAL_LED_4	LITERAL1
-SIGNAL_LED_5	LITERAL1
-SIGNAL_LED_6	LITERAL1
-SIGNAL_LED_7	LITERAL1
-SIGNAL_LED_8	LITERAL1
-IRSENSOR_1_PIN	LITERAL1
-IRRECEIVER_1_PIN	LITERAL1
-IRRECEIVER_2_PIN	LITERAL1
-NON_MOD_PIN	LITERAL1
-SIGNAL_LED_1	LITERAL1
-SIGNAL_LED_4	LITERAL1
-SIGNAL_LED_4_GND	LITERAL1
-SIGNAL_LED_3	LITERAL1
-SIGNAL_LED_3_GND	LITERAL1
-SIGNAL_LED_2	LITERAL1
-IRSENSOR_GND	LITERAL1
-IRSENSOR_VSS	LITERAL1
-IRRECEIVER_PIN	LITERAL1
-IRRECEIVER_GND	LITERAL1
-IRRECEIVER_VSS	LITERAL1
-SIGNAL_LED_1	LITERAL1
-SIGNAL_LED_2	LITERAL1
-SIGNAL_LED_2_GND	LITERAL1
-SIGNAL_LED_3	LITERAL1
-SIGNAL_LED_3_GND	LITERAL1
-SIGNAL_LED_4	LITERAL1
-SIGNAL_LED_4_GND	LITERAL1
-IRSENSOR_1_GND	LITERAL1
-IRSENSOR_1_VSS	LITERAL1
-IRRECEIVER_1_PIN	LITERAL1
-IRRECEIVER_1_GND	LITERAL1
-IRRECEIVER_1_VSS	LITERAL1
-SIGNAL_LED_1	LITERAL1
-SIGNAL_LED_2	LITERAL1
-SIGNAL_LED_3	LITERAL1
-SIGNAL_LED_4	LITERAL1
-IRRECEIVER_1_PIN	LITERAL1
-NON_MOD_PIN	LITERAL1
-LCD_I2C_ADDRESS	LITERAL1
-LCD_WIDTH	LITERAL1
-LCD_HEIGHT	LITERAL1
-LCD_I2C_ADDRESS	LITERAL1
-LCD_WIDTH	LITERAL1
-LCD_HEIGHT	LITERAL1
-LCD_I2C_ADDRESS	LITERAL1
-LCD_WIDTH	LITERAL1
-LCD_HEIGHT	LITERAL1

+ 0 - 9
SE/stuff/P5_Automation-library-dev/AGirs/library.properties

@@ -1,9 +0,0 @@
-name=AGirs
-version=1.0.1
-author=Bengt Martensson
-maintainer=Bengt Martensson <barf@bengt-martensson.de>
-sentence=A Girs infrared server for the Arduino platform.
-paragraph=Requires Infrared4Arduino. Also uses LiquidCrystal_I2C version 1.1.2 or later.
-category=Device Control
-url=https://github.com/bengtmartensson/AGirs
-architectures=*

+ 0 - 43
SE/stuff/P5_Automation-library-dev/AGirs/src/GirsLib/GirsUtils.cpp

@@ -1,43 +0,0 @@
-#include "GirsUtils.h"
-
-//#ifdef FREEMEM
-// Ref: http://playground.arduino.cc/Code/AvailableMemory#.U0EnzKogTzs
-unsigned long GirsUtils::freeRam () {
-#if ARDUINO
-  extern int __heap_start, *__brkval;
-  int v;
-  return (unsigned long) &v - (__brkval == 0 ? (unsigned long) &__heap_start : (unsigned long) __brkval);
-#else
-  return 99999999999L;
-#endif
-};
-//#endif
-
-//#ifdef RESET
-// TODO: This is somewhat suspect. Use at your own risk.
-// Works at least on atmega386 and atmega2560,
-
-// Restarts program from beginning but does not reset the peripherals and registers
-void GirsUtils::reset() {
-#ifdef ARDUINO
-#if defined(ARDUINO_AVR_LEONARDO) | defined(ARDUINO_AVR_MICRO) | defined(ARDUINO_ARCH_SAMD)
-#warning RESET not working on this platform, generating empty function
-#else
-    asm volatile("  jmp 0");
-#endif
-#else
-    std::cout << "Resetting, but not really :-)" << std::endl;
-#endif
-}
-
-#ifdef ARDUINO
-String GirsUtils::ip2string(IPAddress ip) {
-    String result;
-    for (int i = 0; i < 4; i++) {
-        result.concat(String(ip[i], DEC));
-        if (i < 3)
-            result.concat(".");
-    }
-    return result;
-}
-#endif

+ 0 - 374
SE/stuff/P5_Automation-library-dev/AGirs/src/GirsLib/GirsUtils.h

@@ -1,374 +0,0 @@
-#pragma once
-
-#include "LedLcdManager.h" // for led_t
-#include <MultiDecoder.h>  // for MultiDecoder::Type
-#ifdef ARDUINO
-#include <IPAddress.h>
-#endif
-#include "defineMissingStuff.h"
-
-class GirsUtils {
-private:
-    GirsUtils();
-
-public:
-    static unsigned long freeRam();
-    static void reset();
-
-    // TODO: where should this go?
-    static led_t decode2logicalLed(MultiDecoder::Type type) {
-        return (led_t) ((int) type - 1);
-    }
-
-    static void printVariable(Stream& stream, const char *variableName, unsigned long value) {
-        stream.print(variableName);
-        stream.print("=");
-        stream.println(value);
-    }
-
-#ifdef ARDUINO
-    static String ip2string(IPAddress ip);
-#endif
-
-    static pin_t receiverPin(uint8_t receiverNo UNUSED) {
-
-#ifdef IRRECEIVER_1_PIN
-        if (receiverNo == 1)
-            return IRRECEIVER_1_PIN;
-#endif
-
-#ifdef IRRECEIVER_2_PIN
-        if (receiverNo == 2)
-            return IRRECEIVER_2_PIN;
-#endif
-
-#ifdef IRRECEIVER_3_PIN
-        if (receiverNo == 3)
-            return IRRECEIVER_3_PIN;
-#endif
-
-#ifdef IRRECEIVER_4_PIN
-        if (receiverNo == 4)
-            return IRRECEIVER_4_PIN;
-#endif
-
-#ifdef IRRECEIVER_5_PIN
-        if (receiverNo == 5)
-            return IRRECEIVER_5_PIN;
-#endif
-
-#ifdef IRRECEIVER_6_PIN
-        if (receiverNo == 6)
-            return IRRECEIVER_6_PIN;
-#endif
-
-#ifdef IRRECEIVER_7_PIN
-        if (receiverNo == 7)
-            return IRRECEIVER_7_PIN;
-#endif
-
-#ifdef IRRECEIVER_8_PIN
-        if (receiverNo == 8)
-            return IRRECEIVER_8_PIN;
-#endif
-        return invalidPin;
-    }
-
-    static bool receiverPullup(uint8_t receiverNo UNUSED) {
-
-#ifdef IRRECEIVER_1_PIN
-        if (receiverNo == 1)
-            return IRRECEIVER_1_PULLUP_VALUE;
-#endif
-
-#ifdef IRRECEIVER_2_PIN
-        if (receiverNo == 2)
-            return IRRECEIVER_2_PULLUP_VALUE;
-#endif
-
-#ifdef IRRECEIVER_3_PIN
-        if (receiverNo == 3)
-            return IRRECEIVER_3_PULLUP_VALUE;
-#endif
-
-#ifdef IRRECEIVER_4_PIN
-        if (receiverNo == 4)
-            return IRRECEIVER_4_PULLUP_VALUE;
-#endif
-
-#ifdef IRRECEIVER_5_PIN
-        if (receiverNo == 5)
-            return IRRECEIVER_5_PULLUP_VALUE;
-#endif
-
-#ifdef IRRECEIVER_6_PIN
-        if (receiverNo == 6)
-            return IRRECEIVER_6_PULLUP_VALUE;
-#endif
-
-#ifdef IRRECEIVER_7_PIN
-        if (receiverNo == 7)
-            return IRRECEIVER_7_PULLUP_VALUE;
-#endif
-
-#ifdef IRRECEIVER_8_PIN
-        if (receiverNo == 8)
-            return IRRECEIVER_8_PULLUP_VALUE;
-#endif
-        return false;
-    }
-
-    static void setupLeds() {
-#ifdef SIGNAL_LED_1_GND
-        pinMode(SIGNAL_LED_1_GND, OUTPUT);
-        digitalWrite(SIGNAL_LED_1_GND, LOW);
-#endif
-
-#ifdef SIGNAL_LED_2_GND
-        pinMode(SIGNAL_LED_2_GND, OUTPUT);
-        digitalWrite(SIGNAL_LED_2_GND, LOW);
-#endif
-
-#ifdef SIGNAL_LED_3_GND
-        pinMode(SIGNAL_LED_3_GND, OUTPUT);
-        digitalWrite(SIGNAL_LED_3_GND, LOW);
-#endif
-
-#ifdef SIGNAL_LED_4_GND
-        pinMode(SIGNAL_LED_4_GND, OUTPUT);
-        digitalWrite(SIGNAL_LED_4_GND, LOW);
-#endif
-
-#ifdef SIGNAL_LED_5_GND
-        pinMode(SIGNAL_LED_5_GND, OUTPUT);
-        digitalWrite(SIGNAL_LED_5_GND, LOW);
-#endif
-
-#ifdef SIGNAL_LED_6_GND
-        pinMode(SIGNAL_LED_6_GND, OUTPUT);
-        digitalWrite(SIGNAL_LED_6_GND, LOW);
-#endif
-
-#ifdef SIGNAL_LED_7_GND
-        pinMode(SIGNAL_LED_7_GND, OUTPUT);
-        digitalWrite(SIGNAL_LED_7_GND, LOW);
-#endif
-
-#ifdef SIGNAL_LED_8_GND
-        pinMode(SIGNAL_LED_8_GND, OUTPUT);
-        digitalWrite(SIGNAL_LED_8_GND, LOW);
-#endif
-    }
-
-    static void setupReceivers() {
-#ifdef IRRECEIVER_1_GND
-        pinMode(IRRECEIVER_1_GND, OUTPUT);
-        digitalWrite(IRRECEIVER_1_GND, LOW);
-#endif
-
-#ifdef IRRECEIVER_2_GND
-        pinMode(IRRECEIVER_2_GND, OUTPUT);
-        digitalWrite(IRRECEIVER_2_GND, LOW);
-#endif
-
-#ifdef IRRECEIVER_3_GND
-        pinMode(IRRECEIVER_3_GND, OUTPUT);
-        digitalWrite(IRRECEIVER_3_GND, LOW);
-#endif
-
-#ifdef IRRECEIVER_4_GND
-        pinMode(IRRECEIVER_4_GND, OUTPUT);
-        digitalWrite(IRRECEIVER_4_GND, LOW);
-#endif
-
-#ifdef IRRECEIVER_5_GND
-        pinMode(IRRECEIVER_5_GND, OUTPUT);
-        digitalWrite(IRRECEIVER_5_GND, LOW);
-#endif
-
-#ifdef IRRECEIVER_6_GND
-        pinMode(IRRECEIVER_6_GND, OUTPUT);
-        digitalWrite(IRRECEIVER_6_GND, LOW);
-#endif
-
-#ifdef IRRECEIVER_7_GND
-        pinMode(IRRECEIVER_7_GND, OUTPUT);
-        digitalWrite(IRRECEIVER_7_GND, LOW);
-#endif
-
-#ifdef IRRECEIVER_8_GND
-        pinMode(IRRECEIVER_8_GND, OUTPUT);
-        digitalWrite(IRRECEIVER_8_GND, LOW);
-#endif
-
-#ifdef IRRECEIVER_1_VSS
-        pinMode(IRRECEIVER_1_VSS, OUTPUT);
-        digitalWrite(IRRECEIVER_1_VSS, HIGH);
-#endif
-
-#ifdef IRRECEIVER_2_VSS
-        pinMode(IRRECEIVER_2_VSS, OUTPUT);
-        digitalWrite(IRRECEIVER_2_VSS, HIGH);
-#endif
-
-#ifdef IRRECEIVER_3_VSS
-        pinMode(IRRECEIVER_3_VSS, OUTPUT);
-        digitalWrite(IRRECEIVER_3_VSS, HIGH);
-#endif
-
-#ifdef IRRECEIVER_4_VSS
-        pinMode(IRRECEIVER_4_VSS, OUTPUT);
-        digitalWrite(IRRECEIVER_4_VSS, HIGH);
-#endif
-
-#ifdef IRRECEIVER_5_VSS
-        pinMode(IRRECEIVER_5_VSS, OUTPUT);
-        digitalWrite(IRRECEIVER_5_VSS, HIGH);
-#endif
-
-#ifdef IRRECEIVER_6_VSS
-        pinMode(IRRECEIVER_6_VSS, OUTPUT);
-        digitalWrite(IRRECEIVER_6_VSS, HIGH);
-#endif
-
-#ifdef IRRECEIVER_7_VSS
-        pinMode(IRRECEIVER_7_VSS, OUTPUT);
-        digitalWrite(IRRECEIVER_7_VSS, HIGH);
-#endif
-
-#ifdef IRRECEIVER_8_VSS
-        pinMode(IRRECEIVER_8_VSS, OUTPUT);
-        digitalWrite(IRRECEIVER_8_VSS, HIGH);
-#endif
-    }
-
-    static void setupSensors() {
-#ifdef IRSENSOR_1_GND
-        pinMode(IRSENSOR_1_GND, OUTPUT);
-        digitalWrite(IRSENSOR_1_GND, LOW);
-#endif
-
-#ifdef IRSENSOR_2_GND
-        pinMode(IRSENSOR_2_GND, OUTPUT);
-        digitalWrite(IRSENSOR_2_GND, LOW);
-#endif
-
-#ifdef IRSENSOR_3_GND
-        pinMode(IRSENSOR_3_GND, OUTPUT);
-        digitalWrite(IRSENSOR_3_GND, LOW);
-#endif
-
-#ifdef IRSENSOR_4_GND
-        pinMode(IRSENSOR_4_GND, OUTPUT);
-        digitalWrite(IRSENSOR_4_GND, LOW);
-#endif
-
-#ifdef IRSENSOR_5_GND
-        pinMode(IRSENSOR_5_GND, OUTPUT);
-        digitalWrite(IRSENSOR_5_GND, LOW);
-#endif
-
-#ifdef IRSENSOR_6_GND
-        pinMode(IRSENSOR_6_GND, OUTPUT);
-        digitalWrite(IRSENSOR_6_GND, LOW);
-#endif
-
-#ifdef IRSENSOR_7_GND
-        pinMode(IRSENSOR_7_GND, OUTPUT);
-        digitalWrite(IRSENSOR_7_GND, LOW);
-#endif
-
-#ifdef IRSENSOR_8_GND
-        pinMode(IRSENSOR_8_GND, OUTPUT);
-        digitalWrite(IRSENSOR_8_GND, LOW);
-#endif
-
-#ifdef IRSENSOR_1_VSS
-        pinMode(IRSENSOR_1_VSS, OUTPUT);
-        digitalWrite(IRSENSOR_1_VSS, HIGH);
-#endif
-
-#ifdef IRSENSOR_2_VSS
-        pinMode(IRSENSOR_2_VSS, OUTPUT);
-        digitalWrite(IRSENSOR_2_VSS, HIGH);
-#endif
-
-#ifdef IRSENSOR_3_VSS
-        pinMode(IRSENSOR_3_VSS, OUTPUT);
-        digitalWrite(IRSENSOR_3_VSS, HIGH);
-#endif
-
-#ifdef IRSENSOR_4_VSS
-        pinMode(IRSENSOR_4_VSS, OUTPUT);
-        digitalWrite(IRSENSOR_4_VSS, HIGH);
-#endif
-
-#ifdef IRSENSOR_5_VSS
-        pinMode(IRSENSOR_5_VSS, OUTPUT);
-        digitalWrite(IRSENSOR_5_VSS, HIGH);
-#endif
-
-#ifdef IRSENSOR_6_VSS
-        pinMode(IRSENSOR_6_VSS, OUTPUT);
-        digitalWrite(IRSENSOR_6_VSS, HIGH);
-#endif
-
-#ifdef IRSENSOR_7_VSS
-        pinMode(IRSENSOR_7_VSS, OUTPUT);
-        digitalWrite(IRSENSOR_7_VSS, HIGH);
-#endif
-
-#ifdef IRSENSOR_8_VSS
-        pinMode(IRSENSOR_8_VSS, OUTPUT);
-        digitalWrite(IRSENSOR_8_VSS, HIGH);
-#endif
-    }
-
-    static bool sensorPullup(uint8_t sensorNo UNUSED) {
-
-#ifdef IRSENSOR_1_PIN
-        if (sensorNo == 1)
-            return IRSENSOR_1_PULLUP_VALUE;
-#endif
-
-#ifdef IRSENSOR_2_PIN
-        if (sensorNo == 2)
-            return IRSENSOR_2_PULLUP_VALUE;
-#endif
-
-#ifdef IRSENSOR_3_PIN
-        if (sensorNo == 3)
-            return IRSENSOR_3_PULLUP_VALUE;
-#endif
-
-#ifdef IRSENSOR_4_PIN
-        if (sensorNo == 4)
-            return IRSENSOR_4_PULLUP_VALUE;
-#endif
-
-#ifdef IRSENSOR_5_PIN
-        if (sensorNo == 5)
-            return IRSENSOR_5_PULLUP_VALUE;
-#endif
-
-#ifdef IRSENSOR_6_PIN
-        if (sensorNo == 6)
-            return IRSENSOR_6_PULLUP_VALUE;
-#endif
-
-#ifdef IRSENSOR_7_PIN
-        if (sensorNo == 7)
-            return IRSENSOR_7_PULLUP_VALUE;
-#endif
-
-#ifdef IRSENSOR_8_PIN
-        if (sensorNo == 8)
-            return IRSENSOR_8_PULLUP_VALUE;
-#endif
-        return false;
-    }
-
-#ifndef NON_MOD_PIN
-#define NON_MOD_PIN invalidPin
-#endif
-};

+ 0 - 212
SE/stuff/P5_Automation-library-dev/AGirs/src/GirsLib/LedLcdManager.cpp

@@ -1,212 +0,0 @@
-// Comment out if LCD is not wanted or needed. Except for needing some memory,
-// it has otherwise no disadvantages.
-
-// This should be taken from config.h, but the Arduino IDE does not seem
-// to allow for this. User friendlyness taken to a new level...
-#if defined(ARDUINO) & ! defined(ARDUINO_AVR_MICRO)
-#define LCD
-#endif
-
-#include "LedLcdManager.h"
-#include "Tokenizer.h"
-#include <string.h>
-
-#ifdef LCD
-LiquidCrystal_I2C *LedLcdManager::lcd;
-#endif
-milliseconds_t LedLcdManager::blinkTime = defaultBlinkTime;
-unsigned long LedLcdManager::turnOffTime;
-unsigned int LedLcdManager::lcdRows = 0;
-unsigned int LedLcdManager::lcdColumns = 0;
-
-pin_t LedLcdManager::physicalLeds[maxLeds];
-led_t LedLcdManager::logicalLeds[maxLeds];
-bool LedLcdManager::shouldTimeOut[maxLeds];
-
-void LedLcdManager::setup(int8_t i2cAddress, uint8_t columns, uint8_t rows,
-        const pin_t physicalLeds_[], const pin_t logicalLeds_[], const bool shouldTimeOut_[]) {
-    setupLcdI2c(i2cAddress, columns, rows);
-    setupPhysicalLeds(physicalLeds_);
-    setupLogicLeds(logicalLeds_);
-    setupShouldTimeOut(shouldTimeOut_);
-    disableTurnOffTime();
-}
-
-bool LedLcdManager::setPhysicalLed(led_t physicalLed, LedState state) {
-    pin_t pin = physicalLeds[physicalLed-1];
-    if (pin == invalidPin)
-        return false;
-
-#ifdef ARDUINO
-    digitalWrite(pin, state == off ? LOW : HIGH);
-#else
-    std::cout << "setPhysicalLed: pin = " << (int) pin << ", " << (state == off ? "off" : "on") << std::endl;
-#endif
-    if (state == blink)
-        updateTurnOffTime();
-    return true;
-}
-
-LedLcdManager::LedState LedLcdManager::onOffBlinkParse(const char *value) {
-        return value == NULL ? invalid
-                : strcmp(value, "on") == 0 ? on
-                : strcmp(value, "off") == 0 ? off
-                : strcmp(value, "blink") == 0 ? blink
-                : invalid;
-}
-
-bool LedLcdManager::setLogicLed(led_t logicLed, LedState state) {
-    if (logicLed == invalidLed
-            || logicLed <  1
-            || logicLed > maxLeds
-            || state == invalid )
-        return false;
-
-    led_t physicalLed = logicalLeds[logicLed - 1];
-    if (physicalLed == invalidLed)
-        return false;
-
-    return setPhysicalLed(physicalLed, state);
-}
-
-bool LedLcdManager::setupLogicLed(led_t logicLed, led_t physicalLed) {
-    if (physicalLed == invalidLed)
-        return false;
-
-    logicalLeds[logicLed-1] = physicalLed;
-    return true;
-}
-
-bool LedLcdManager::setupLogicLeds(const led_t logicalLeds_[maxLeds]) {
-    for (int i = 0; i < maxLeds; i++)
-        logicalLeds[i] = logicalLeds_ == NULL ? i+1 : logicalLeds_[i];
-    return true;
-}
-
-void LedLcdManager::setupPhysicalLeds(const led_t physicalLeds_[maxLeds]) {
-    for (int i = 0; i < maxLeds; i++) {
-        physicalLeds[i] = physicalLeds_ == NULL ? invalidPin : physicalLeds_[i];
-        if (physicalLeds[i] != invalidPin)
-            pinMode(physicalLeds[i], OUTPUT);
-    }
-}
-
-void LedLcdManager::setupShouldTimeOut(const bool shouldTimeOut_[maxLeds]) {
-    for (int i = 0; i < maxLeds; i++)
-        shouldTimeOut[i] = shouldTimeOut_ == NULL ? true : shouldTimeOut_[i];
-}
-
-void LedLcdManager::setupShouldTimeout(led_t logicLed, bool state) {
-    if (logicLed != invalidLed)
-        shouldTimeOut[logicLed-1] = state;
-}
-
-void LedLcdManager::setupLcdI2c(int8_t i2cAddress, uint8_t columns, uint8_t rows) {
-#ifdef LCD
-    lcd = i2cAddress >= 0 ? new LiquidCrystal_I2C((uint8_t)i2cAddress, columns, rows) : NULL;
-    if (lcd) {
-        lcdRows = rows;
-        lcdColumns = columns;
-        lcd->init();
-    }
-#else
-    (void) i2cAddress;
-    (void) columns;
-    (void) rows;
-#endif
-}
-
-void LedLcdManager::updateTurnOffTime() {
-    turnOffTime = millis() + blinkTime;
-}
-
-void LedLcdManager::selfTest(const char *text) {
-    lcdPrint(text);
-    for (led_t i = 1; i <= maxLeds; i++)
-        setLogicLed(i, on);
-    delay(
-#ifdef LCD
-            lcd ? selftestTimeWithLCD :
-#endif
-                selftestTimeWithoutLCD);
-    allOff(true);
-}
-
-#ifdef ARDUINO
-void LedLcdManager::selfTest(const __FlashStringHelper *text) {
-    lcdPrint(text);
-    for (led_t i = 1; i <= maxLeds; i++)
-        setLogicLed(i, on);
-    delay(
-#ifdef LCD
-    lcd ? selftestTimeWithLCD :
-#endif
-        selftestTimeWithoutLCD);
-    allOff(true);
-}
-#endif
-
-void LedLcdManager::checkTurnoff() {
-    if (millis() > turnOffTime)
-        allOff(false);
-}
-
-void LedLcdManager::allOff(bool force) {
-#ifdef LCD
-    if (lcd) {
-        lcd->noDisplay();
-        lcd->noBacklight();
-    }
-#endif
-    for (led_t i = 1; i <= maxLeds; i++)
-        if (force || shouldTimeOut[i - 1])
-            setLogicLed(i, off);
-
-    disableTurnOffTime();
-}
-
-void LedLcdManager::disableTurnOffTime() {
-    turnOffTime = (unsigned long) -1;
-}
-
-void LedLcdManager::lcdPrint(String& string, bool clear, int x, int y) {
-#ifdef LCD
-    if (!lcd)
-        return;
-
-    int row = (y < 0 && clear) ? 0 : y;
-    int column = x < 0 ? 0 : x;
-    if (row > (int) lcdRows - 1 || column > (int) lcdColumns - 1) // outside of display
-        return;
-
-    if (clear)
-        lcd->clear();
-
-    bool didPrint = false;
-    Tokenizer tokenizer(string);
-    while (true) {
-        String line = tokenizer.getLine();
-        if (line.length() == 0)
-            break;
-        if (line.length() > lcdColumns)
-            line = line.substring(0, lcdColumns);
-        if (clear || y >= 0) {
-            lcd->setCursor(column, row);
-            row++;
-            column = 0;
-        }
-        lcd->print(line.c_str());
-        didPrint = true;
-    }
-    if (didPrint) {
-        lcd->display();
-        lcd->backlight();
-    }
-    updateTurnOffTime();
-#else
-    (void) string;
-    (void) clear;
-    (void) x;
-    (void) y;
-#endif
-}

+ 0 - 188
SE/stuff/P5_Automation-library-dev/AGirs/src/GirsLib/LedLcdManager.h

@@ -1,188 +0,0 @@
-#pragma once
-
-#include "Tokenizer.h"
-#include <InfraredTypes.h>
-#include <IrSender.h>
-#ifdef LCD
-#include <LiquidCrystal_I2C.h> // https://github.com/marcoschwartz/LiquidCrystal_I2C
-#endif
-
-typedef uint8_t led_t;
-
-class LedLcdManager {
-public:
-    static const int maxLeds = 8;
-    static const int defaultLcdRows = 2;
-    static const int defaultLcdColumns = 16;
-
-    static const int defaultBlinkTime = 2000;
-    static const int selftestTimeWithoutLCD = 200;
-    static const int selftestTimeWithLCD = 2000;
-
-    enum LedState {
-        on,
-        off,
-        blink,
-        invalid
-    };
-
-
-    static const led_t invalidLed = 255;
-
-private:
-    /** This array maps physical LEDs to hardware pins. */
-    static pin_t physicalLeds[maxLeds];
-
-    /** This array maps logical LEDs to physical LEDs. */
-    static led_t logicalLeds[maxLeds];
-
-    /** Indicates which logical leds should time out. */
-    static bool shouldTimeOut[maxLeds];
-
-    static milliseconds_t blinkTime;
-
-    /** Time to turn of, in the semantic of millis(). */
-    static unsigned long turnOffTime;
-
-#ifdef LCD
-    static LiquidCrystal_I2C *lcd;
-#endif
-
-    static unsigned int lcdRows;
-    static unsigned int lcdColumns;
-
-    //static LedLcdManager instance;
-
-    static void setupPhysicalLeds(const pin_t physicalLeds[maxLeds]);
-    static void setupShouldTimeOut(const bool shouldTimeOut[maxLeds]);
-    /*pin_t pled1, pin_t pled2 = invalidPin,
-            pin_t pled3 = invalidPin, pin_t pled4 = invalidPin,
-            pin_t pled5 = invalidPin, pin_t pled6 = invalidPin,
-            pin_t pled7 = invalidPin, pin_t pled8 = invalidPin);*/
-
-    static void setupLcdI2c(int8_t i2cAddress, uint8_t columns, uint8_t rows);
-    LedLcdManager();
-
-    //void initArray(char *array, uint8_t value);
-
-    static void disableTurnOffTime();
-
-    static void groundPin(pin_t pin) {
-        pinMode(pin, OUTPUT);
-        digitalWrite(pin, LOW);
-    }
-
-public:
-    /** Sets up the instance, to be called before using the instance.  */
-    static void setup(int8_t i2cAddress = -1, uint8_t columns = defaultLcdColumns, uint8_t rows = defaultLcdRows,
-            const pin_t physicalLeds[maxLeds] = NULL,
-            const led_t logicalLeds[maxLeds] = NULL,
-            const bool shouldTimeOut[maxLeds] = NULL);
-
-    static void setup(int8_t i2cAddress, uint8_t columns, uint8_t rows,
-            pin_t pled1, pin_t pled2 = invalidLed,
-            pin_t pled3 = invalidPin, pin_t pled4 = invalidPin,
-            pin_t pled5 = invalidPin, pin_t pled6 = invalidPin,
-            pin_t pled7 = invalidPin, pin_t pled8 = invalidPin);
-
-    void setupPhysicalLeds(pin_t led1 = invalidPin, pin_t led2 = invalidPin,
-            pin_t led3 = invalidPin, pin_t led4 = invalidPin,
-            pin_t led5 = invalidPin, pin_t led6 = invalidPin,
-            pin_t led7 = invalidPin, pin_t led8 = invalidPin);
-
-    void static lcdPrint(String& string, bool clear = true, int x = 0, int y = -1);
-    void static lcdPrint(const char *str, bool clear = true, int x = 0, int y = -1) {
-        String string(str);
-        lcdPrint(string, clear, x, y);
-    };
-#ifdef ARDUINO
-    void static lcdPrint(const __FlashStringHelper *pstr, bool clear = true, int x = 0, int y = -1) {
-        String string(pstr);
-        lcdPrint(string, clear, x, y);
-    }
-#endif
-
-    //void static lcdPrint(const String& str);
-
-    //LedLcdManager& getInstance() {
-    //    return instance;
-    //};
-
-    //static LiquidCrystal_I2C& getLcd() {
-    //    return *lcd;
-    //}
-
-    static void lcdSetCursor(uint8_t x = 0, uint8_t y = 0) {
-#ifdef LCD
-        lcd->setCursor(x, y);
-#else
-        (void) x;
-        (void) y;
-#endif
-    }
-
-    static void allOff(bool force);
-
-    static milliseconds_t getBlinkTime() {
-        return blinkTime;
-    };
-
-    static void setBlinkTime(milliseconds_t value) {
-        blinkTime = value;
-    }
-
-    static void updateTurnOffTime();
-
-    /** Turn off if it is due. This has to be called periodically by the user. */
-    static void checkTurnoff();
-
-    static void selfTest(const char *text);
-
-#ifdef ARDUINO
-    static void selfTest(const __FlashStringHelper *text);
-#endif
-
-    static bool setPhysicalLed(led_t physicalLed, LedState state);
-
-    static bool setLogicLed(led_t logicLed, LedState state);
-
-    static bool setLogicLed(led_t logicLed, const char *state) {
-        return setLogicLed(logicLed, onOffBlinkParse(state));
-    };
-
-    static LedState onOffBlinkParse(const char *value);
-
-    static void setupShouldTimeout(led_t logicLed, bool state);
-
-    static bool setupLogicLed(led_t loginLed, led_t physicalLed);
-
-    static bool setupLogicLeds(const led_t array[maxLeds]);
-
-    static void setupLedGroundPins() {
-#ifdef SIGNAL_LED_1_GND
-        groundPin(SIGNAL_LED_1_GND);
-#endif
-#ifdef SIGNAL_LED_2_GND
-        groundPin(SIGNAL_LED_2_GND);
-#endif
-#ifdef SIGNAL_LED_3_GND
-        groundPin(SIGNAL_LED_3_GND);
-#endif
-#ifdef SIGNAL_LED_4_GND
-        groundPin(SIGNAL_LED_4_GND);
-#endif
-#ifdef SIGNAL_LED_5_GND
-        groundPin(SIGNAL_LED_5_GND);
-#endif
-#ifdef SIGNAL_LED_6_GND
-        groundPin(SIGNAL_LED_6_GND);
-#endif
-#ifdef SIGNAL_LED_7_GND
-        groundPin(SIGNAL_LED_7_GND);
-#endif
-#ifdef SIGNAL_LED_8_GND
-        groundPin(SIGNAL_LED_8_GND);
-#endif
-
-    }
-};

+ 0 - 100
SE/stuff/P5_Automation-library-dev/AGirs/src/GirsLib/Tokenizer.cpp

@@ -1,100 +0,0 @@
-#include <Arduino.h>
-#include "Tokenizer.h"
-
-#ifdef ARDUINO
-#define TOKEN2INT(tok) tok.toInt()
-#else
-#include <stdexcept>
-
-// Emulate Arduino moron-ness (returning 0 in the case of parse error...),
-// although it hurts...
-int TOKEN2INT(const String& tok) {
-    try {
-        return std::stoi(tok);
-    } catch (std::invalid_argument& ex) {
-        //std::cout << "Exception caugth!" << std::endl;
-        return 0;
-    }
-}
-#endif
-
-Tokenizer::Tokenizer(const String& str) : index(0), payload(str) {
-    trim();
-}
-
-//Tokenizer::Tokenizer(const char *str) : index(0),payload(String(str)) {
-//    trim();
-//}
-
-void Tokenizer::trim() {
-#if 0
-#ifdef ARDUINO
-    payload.trim();
-#else
-    payload.erase(0, payload.find_first_not_of(" \t\n\r"));
-    payload.erase(payload.find_last_not_of(" \t\n\r")+1, payload.length() - payload.find_last_not_of(" \t\n\r"));
-#endif
-#endif
-};
-
-Tokenizer::~Tokenizer() {
-}
-
-String Tokenizer::getRest() {
-    String result = index == invalidIndex ? String("") :
-#ifdef ARDUINO
-            payload.substring(index);
-#else
-            payload.substr(index);
-#endif
-    index = invalidIndex;
-    return result;
-}
-
-String Tokenizer::getLine() {
-    if (index == invalidIndex)
-        return String("");
-
-    int i = payload.indexOf('\n', index);
-    String s = (i > 0) ?
-#ifdef ARDUINO
-        payload.substring(index, i) : payload.substring(index);
-#else
-        payload.substr(index, i - index) : payload.substr(index);
-#endif
-    index = (i > 0) ? i+1 : invalidIndex;
-    return s;
-}
-
-String Tokenizer::getToken() {
-    if (index < 0)
-        return String("");
-
-    int i = payload.indexOf(' ', index);
-    String s = (i > 0) ?
-#ifdef ARDUINO
-        payload.substring(index, i) : payload.substring(index);
-#else
-        payload.substr(index, i-index) : payload.substr(index);
-#endif
-    index = (i > 0) ? i : invalidIndex;
-    if (index != invalidIndex)
-        while (payload.charAt(index) == ' ')
-            index++;
-    return s;
-}
-
-long Tokenizer::getInt() {
-    String token = getToken();
-    return token == "" ? (long) invalid : TOKEN2INT(token);
-}
-
-microseconds_t Tokenizer::getMicroseconds() {
-    long t = TOKEN2INT(getToken());
-    return (microseconds_t) ((t < MICROSECONDS_T_MAX) ? t : MICROSECONDS_T_MAX);
-}
-
-frequency_t Tokenizer::getFrequency() {
-    long t = TOKEN2INT(getToken());
-    return (frequency_t) ((t < FREQUENCY_T_MAX) ? t : FREQUENCY_T_MAX);
-}

+ 0 - 27
SE/stuff/P5_Automation-library-dev/AGirs/src/GirsLib/Tokenizer.h

@@ -1,27 +0,0 @@
-#pragma once
-
-#include <InfraredTypes.h>
-#include <limits.h>
-
-class Tokenizer {
-private:
-    static const int invalidIndex = -1;
-
-    int index; // signed since invalidIndex is possible
-    const String& payload;
-    void trim();
-
-public:
-    Tokenizer(const String &str);
-    //Tokenizer(const char *str);
-    virtual ~Tokenizer();
-
-    String getToken();
-    String getRest();
-    String getLine();
-    long getInt();
-    microseconds_t getMicroseconds();
-    frequency_t getFrequency();
-
-    static const int invalid = INT_MAX;
-};

+ 0 - 242
SE/stuff/P5_Automation-library-dev/AGirs/src/GirsLib/defineMissingStuff.h

@@ -1,242 +0,0 @@
-#ifndef DEFINEMISSINGSTUFF_H
-#define	DEFINEMISSINGSTUFF_H
-
-#ifdef IRRECEIVER_1_PULLUP
-#define IRRECEIVER_1_PULLUP_VALUE true
-#else
-#define IRRECEIVER_1_PULLUP_VALUE false
-#endif
-
-#ifdef IRRECEIVER_2_PULLUP
-#define IRRECEIVER_2_PULLUP_VALUE true
-#else
-#define IRRECEIVER_2_PULLUP_VALUE false
-#endif
-
-#ifdef IRRECEIVER_3_PULLUP
-#define IRRECEIVER_3_PULLUP_VALUE true
-#else
-#define IRRECEIVER_3_PULLUP_VALUE false
-#endif
-
-#ifdef IRRECEIVER_4_PULLUP
-#define IRRECEIVER_4_PULLUP_VALUE true
-#else
-#define IRRECEIVER_4_PULLUP_VALUE false
-#endif
-
-#ifdef IRRECEIVER_5_PULLUP
-#define IRRECEIVER_5_PULLUP_VALUE true
-#else
-#define IRRECEIVER_5_PULLUP_VALUE false
-#endif
-
-#ifdef IRRECEIVER_6_PULLUP
-#define IRRECEIVER_6_PULLUP_VALUE true
-#else
-#define IRRECEIVER_6_PULLUP_VALUE false
-#endif
-
-#ifdef IRRECEIVER_7_PULLUP
-#define IRRECEIVER_7_PULLUP_VALUE true
-#else
-#define IRRECEIVER_7_PULLUP_VALUE false
-#endif
-
-#ifdef IRRECEIVER_8_PULLUP
-#define IRRECEIVER_8_PULLUP_VALUE true
-#else
-#define IRRECEIVER_8_PULLUP_VALUE false
-#endif
-
-#ifdef IRSENSOR_1_PULLUP
-#define IRSENSOR_1_PULLUP_VALUE true
-#else
-#define IRSENSOR_1_PULLUP_VALUE false
-#endif
-
-#ifdef IRSENSOR_2_PULLUP
-#define IRSENSOR_2_PULLUP_VALUE true
-#else
-#define IRSENSOR_2_PULLUP_VALUE false
-#endif
-
-#ifdef IRSENSOR_3_PULLUP
-#define IRSENSOR_3_PULLUP_VALUE true
-#else
-#define IRSENSOR_3_PULLUP_VALUE false
-#endif
-
-#ifdef IRSENSOR_4_PULLUP
-#define IRSENSOR_4_PULLUP_VALUE true
-#else
-#define IRSENSOR_4_PULLUP_VALUE false
-#endif
-
-#ifdef IRSENSOR_5_PULLUP
-#define IRSENSOR_5_PULLUP_VALUE true
-#else
-#define IRSENSOR_5_PULLUP_VALUE false
-#endif
-
-#ifdef IRSENSOR_6_PULLUP
-#define IRSENSOR_6_PULLUP_VALUE true
-#else
-#define IRSENSOR_6_PULLUP_VALUE false
-#endif
-
-#ifdef IRSENSOR_7_PULLUP
-#define IRSENSOR_7_PULLUP_VALUE true
-#else
-#define IRSENSOR_7_PULLUP_VALUE false
-#endif
-
-#ifdef IRSENSOR_8_PULLUP
-#define IRSENSOR_8_PULLUP_VALUE true
-#else
-#define IRSENSOR_8_PULLUP_VALUE false
-#endif
-
-#ifndef SIGNAL_LED_1
-#define SIGNAL_LED_1 invalidPin
-#endif
-
-#ifndef SIGNAL_LED_2
-#define SIGNAL_LED_2 invalidPin
-#endif
-
-#ifndef SIGNAL_LED_3
-#define SIGNAL_LED_3 invalidPin
-#endif
-
-#ifndef SIGNAL_LED_4
-#define SIGNAL_LED_4 invalidPin
-#endif
-
-#ifndef SIGNAL_LED_5
-#define SIGNAL_LED_5 invalidPin
-#endif
-
-#ifndef SIGNAL_LED_6
-#define SIGNAL_LED_6 invalidPin
-#endif
-
-#ifndef SIGNAL_LED_7
-#define SIGNAL_LED_7 invalidPin
-#endif
-
-#ifndef SIGNAL_LED_8
-#define SIGNAL_LED_8 invalidPin
-#endif
-
-#ifndef RECEIVELED
-#define receiveled invalidPin
-#endif
-
-#ifndef CAPTURELED
-#define captureled invalidPin
-#endif
-
-#ifndef TRANSMITLED
-#define transmitled invalidPin
-#endif
-
-#ifndef COMMANDLED
-#define commandled invalidPin
-#endif
-
-#ifndef UNUSED
-#define UNUSED __attribute__ ((unused))
-#endif
-
-#ifdef TRANSMIT
-#define TRANSMIT_NAME Transmit
-#else
-#define TRANSMIT_NAME
-#endif
-
-#ifdef CAPTURE
-#define CAPTURE_NAME Capture
-#else
-#define CAPTURE_NAME
-#endif
-
-#ifdef RECEIVE
-#define RECEIVE_NAME Receive
-#else
-#define RECEIVE_NAME
-#endif
-
-#ifdef RENDERER
-#define RENDERER_NAME Renderer
-#else
-#define RENDERER_NAME
-#endif
-
-#ifdef DECODER
-#define DECODER_NAME Decoder
-#else
-#define DECODER_NAME
-#endif
-
-#ifdef LED
-#define LED_NAME Led
-#else
-#define LED_NAME
-#endif
-
-#ifdef LCD
-#define LCD_NAME Lcd
-#else
-#define LCD_NAME
-#endif
-
-#ifdef NAMED_COMMANDS
-#define NAMED_COMMANDS_NAME NamedCommands
-#else
-#define NAMED_COMMANDS_NAME
-#endif
-
-#ifdef PRONTO
-#define PRONTO_NAME Pronto
-#else
-#define PRONTO_NAME
-#endif
-
-#ifdef TRANSMITTERS
-#define TRANSMITTERS_NAME Transmitters
-#else
-#define TRANSMITTERS_NAME
-#endif
-
-#ifdef PARAMETERS
-#define PARAMETERS_NAME Parameters
-#define PARAMETER_CONST
-#else
-#define PARAMETERS_NAME
-#define PARAMETER_CONST const
-#endif
-
-#ifdef CONFIGURABLE_LEDS
-#define LED_PARAMETER_CONST
-#else
-#define LED_PARAMETER_CONST const
-#endif
-
-#define QUOTE(str) #str
-#define EXPAND_AND_QUOTE(str) QUOTE(str)
-
-#ifndef LCD_I2C_ADDRESS
-#define LCD_I2C_ADDRESS -1
-#endif
-
-#ifndef LCD_WIDTH
-#define LCD_WIDTH -1
-#endif
-
-#ifndef LCD_HEIGHT
-#define LCD_HEIGHT -1
-#endif
-
-#endif	/* DEFINEMISSINGSTUFF_H */
-

+ 0 - 6
SE/stuff/P5_Automation-library-dev/AGirs/src/GirsLib/version.h

@@ -1,6 +0,0 @@
-// This file was automatically generated from library.properties; do not edit.
-/**
- * Version of the current library.
- * Taken from the version in library.properties.
- */
-#define VERSION "1.0.1"

+ 0 - 11
SE/stuff/P5_Automation-library-dev/AGirs/src/girs_hw_config.h

@@ -1,11 +0,0 @@
-#pragma once
-
-#include "hardware-config/girs_pins.h"
-
-#ifdef LCD_0x3F_20_4
-#include "hardware-config/lcd_0x3F_20_4.h"
-#elif defined (LCD_0x27_20_4)
-#include "hardware-config/lcd_0x27_20_4.h"
-#elif defined (LCD_0x27_16_2)
-#include "hardware-config/lcd_0x27_16_2.h"
-#endif

+ 0 - 4
SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/README.txt

@@ -1,4 +0,0 @@
-The files in this directory describes how things ARE, if the user selected to
-include a particular file.
-Therefore, there may be conditionals depending on hardware specifics, but not
-user properties.

+ 0 - 22
SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/girs_pins.h

@@ -1,22 +0,0 @@
-#pragma once
-
-#if ! defined(ARDUINO)
-// Dummy definitions for SIL testing
-#include "girs_pins_dummy.h"
-#elif defined(ARDUINO_AVR_NANO)
-// Configuration for Arduino Nano with components soldered on the PCB.
-//#include "girs_pins_nano_shield.h"
-#include "girs_pins_nano.h"
-#elif defined(ARDUINO_AVR_MICRO)
-// Configuration for Arduino Micro with components soldered on the PCB.
-#include "girs_pins_micro.h"
-#elif defined(ARDUINO_AVR_MEGA2560)
-//#include "girs_pins_mega2560_rear.h"
-#include "girs_pins_mega2560.h"
-#elif defined(ARDUINO_AVR_LEONARDO)
-#include "girs_pins_leonardo.h"
-#else
-// Generic configuration for Uno-like boards
-//#include "girs_pins_combi_shield.h"
-#include "girs_pins_default.h"
-#endif

+ 0 - 33
SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/girs_pins_combi_shield.h

@@ -1,33 +0,0 @@
-#pragma once
-
-// Configuration for a shield for Arduino Uno and similar.
-
-#ifdef ARDUINO_AVR_NANO
-#error This file is not for Nano
-#elif defined(ARDUINO_AVR_MICRO)
-#error This file is not for Micro
-#endif
-
-#define SIGNAL_LED_1 13
-#define SIGNAL_LED_2 A1
-#define SIGNAL_LED_3 A2
-#define SIGNAL_LED_4 A3
-#define SIGNAL_LED_5 A0
-#define SIGNAL_LED_6 6
-#define SIGNAL_LED_7 7
-#define SIGNAL_LED_8 2
-
-#define IRSENSOR_1_PIN 8
-// capture pin (ICP) 8/4/49
-//#define IRSENSOR_1_PULLUP
-
-#define IRRECEIVER_1_PIN 5
-//#define IRRECEIVER_1_PULLUP
-#define IRRECEIVER_2_PIN 11
-#define IRRECEIVER_3_PIN 12
-//#define IRRECEIVER_4_PIN 8 // Non-demodulating sensor
-//#define IRRECEIVER_4_PIN IRSENSOR_1_PIN // Non-demodulating sensor
-
-// Send pin 3/9
-
-#define NON_MOD_PIN 10

+ 0 - 66
SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/girs_pins_default.h

@@ -1,66 +0,0 @@
-#pragma once
-
-// Configuration for Arduino Uno and similar.
-
-#ifdef ARDUINO_AVR_NANO
-#error This file is not for Nano
-#elif defined(ARDUINO_AVR_MICRO)
-#error This file is not for Micro
-#endif
-
-#define SIGNAL_LED_1 13
-#define SIGNAL_LED_2 A1
-#define SIGNAL_LED_3 A2
-#define SIGNAL_LED_4 A3
-#define SIGNAL_LED_5 A0
-#define SIGNAL_LED_6 6
-#define SIGNAL_LED_7 7
-#define SIGNAL_LED_8 108 // dummy
-#ifndef NON_MOD
-//#define SIGNAL_LED_8 9
-#endif
-
-#define IRSENSOR_1_PIN 8
-// capture pin (ICP) 8/4/49
-//#define IRSENSOR_1_PULLUP
-
-#define IRRECEIVER_1_PIN 5
-//#define IRRECEIVER_1_PULLUP
-#define IRRECEIVER_2_PIN 4
-#define IRRECEIVER_3_PIN 9
-#define IRRECEIVER_4_PIN 8 // Non-demodulating sensor
-//#define IRRECEIVER_4_PIN IRSENSOR_1_PIN // Non-demodulating sensor
-
-// Send pin 3/9
-
-#define NON_MOD_PIN 10
-
-/* From http://busyducks.com/ascii-art-arduinos                             +-----+
-
-         +----[PWR]-------------------| USB |--+
-         |                            +-----+  |
-         |         GND/RST2  [ ][ ]            |
-         |       MOSI2/SCK2  [ ][ ]  A5/SCL[ ] |   C5
-         |          5V/MISO2 [ ][ ]  A4/SDA[ ] |   C4
-         |                             AREF[ ] |
-         |                              GND[ ] |
-         | [ ]N/C                    SCK/13[ ] |   B5
-         | [ ]v.ref                 MISO/12[ ] |   .
-         | [ ]RST                   MOSI/11[ ]~|   .
-         | [ ]3V3    +---+               10[ ]~|   .
-         | [ ]5v     | A |                9[ ]~|   .
-         | [ ]GND   -| R |-               8[ ] |   B0
-         | [ ]GND   -| D |-                    |
-         | [ ]Vin   -| U |-               7[ ] |   D7
-         |          -| I |-               6[ ]~|   .
-         | [ ]A0    -| N |-               5[ ]~|   .
-         | [ ]A1    -| O |-               4[ ] |   .
-         | [ ]A2     +---+           INT1/3[ ]~|   .
-         | [ ]A3                     INT0/2[ ] |   .
-         | [ ]A4/SDA  RST SCK MISO     TX>1[ ] |   .
-         | [ ]A5/SCL  [ ] [ ] [ ]      RX<0[ ] |   D0
-         |            [ ] [ ] [ ]              |
-         |  UNO_R3    GND MOSI 5V  ____________/
-          \_______________________/
-
-*/

+ 0 - 37
SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/girs_pins_dummy.h

@@ -1,37 +0,0 @@
-#pragma once
-
-// Dummy pin Configuration
-
-#ifdef ARDUINO
-#error This file is not for flashing on Arduino
-#endif
-
-#define SIGNAL_LED_1     LED_BUILTIN // 13
-#define SIGNAL_LED_2     A1
-#define SIGNAL_LED_3     A2
-#define SIGNAL_LED_4     A3
-
-#define SIGNAL_LED_5_GND 22
-#define SIGNAL_LED_5     23
-#define SIGNAL_LED_6_GND 24
-#define SIGNAL_LED_6     25
-#define SIGNAL_LED_7_GND 26
-#define SIGNAL_LED_7     27
-#define SIGNAL_LED_8_GND 28
-#define SIGNAL_LED_8     29
-
-// capture pin (ICP) 49
-#define IRSENSOR_1_PIN 49
-#define IRSENSOR_1_PULLUP
-// not presently implemented
-#define IRSENSOR_2_PIN 48
-#define IRSENSOR_2_PULLUP
-
-#define IRRECEIVER_1_PIN 5
-#define IRRECEIVER_1_PULLUP
-#define IRRECEIVER_2_PIN 7 // 38kHz, ACG4
-#define IRRECEIVER_3_PIN 8 // 56kHz
-#define IRRECEIVER_4_PIN 6 // 433 MHz
-#define IRRECEIVER_5_PIN 49 //IRSENSOR_1_PIN // Non-demodulating sensor
-
-#define NON_MOD_PIN 3

+ 0 - 27
SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/girs_pins_leonardo.h

@@ -1,27 +0,0 @@
-#pragma once
-
-// Configuration for Arduino Leonardo
-
-#ifdef ARDUINO_AVR_NANO
-#error This file is not for Nano
-#elif defined(ARDUINO_AVR_MICRO)
-#error This file is not for Micro
-#endif
-
-#define SIGNAL_LED_1 13
-#define SIGNAL_LED_2 A1
-#define SIGNAL_LED_3 A2
-#define SIGNAL_LED_4 A3
-#define SIGNAL_LED_5 A0
-#define SIGNAL_LED_6 6
-#define SIGNAL_LED_7 7
-#define SIGNAL_LED_8 8
-
-// capture pin (ICP) 4
-
-#define IRSENSOR_1_PIN 4
-
-#define IRRECEIVER_1_PIN 5
-#define IRRECEIVER_2_PIN 12
-
-// Send pin 3/9

+ 0 - 95
SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/girs_pins_mega2560.h

@@ -1,95 +0,0 @@
-#pragma once
-
-// Configuration for Arduino Mega2560
-
-#ifndef ARDUINO_AVR_MEGA2560
-#error This file is for AVR_MEGA2560 only
-#endif
-
-#define SIGNAL_LED_1     LED_BUILTIN // 13
-#define SIGNAL_LED_2     A1
-#define SIGNAL_LED_3     A2
-#define SIGNAL_LED_4     A3
-
-#define SIGNAL_LED_5_GND 22
-#define SIGNAL_LED_5     23
-#define SIGNAL_LED_6_GND 24
-#define SIGNAL_LED_6     25
-#define SIGNAL_LED_7_GND 26
-#define SIGNAL_LED_7     27
-#define SIGNAL_LED_8_GND 28
-#define SIGNAL_LED_8     29
-
-// capture pin (ICP) 49
-
-// send pin 9
-
-#define IRSENSOR_1_PIN 49
-//#ifdef IRSENSOR_1_PULLUP
-// not presently implemented
-#define IRSENSOR_2_PIN 48
-#define IRSENSOR_2_PULLUP
-
-#define IRRECEIVER_1_PIN 5
-//#define IRRECEIVER_1_PULLUP
-#define IRRECEIVER_2_PIN 7 // 38kHz, ACG4
-#define IRRECEIVER_3_PIN 8 // 56kHz
-#define IRRECEIVER_4_PIN 6 // 433 MHz
-#define IRRECEIVER_5_PIN 49 //IRSENSOR_1_PIN // Non-demodulating sensor
-
-#define NON_MOD_PIN 3
-
-/* From http://busyducks.com/ascii-art-arduinos                              +-----+
-
-         +----[PWR]-------------------| USB |--+
-         |                            +-----+  |
-         |           GND/RST2  [ ] [ ]         |
-         |         MOSI2/SCK2  [ ] [ ]  SCL[ ] |   D0
-         |            5V/MISO2 [ ] [ ]  SDA[ ] |   D1
-         |                             AREF[ ] |
-         |                              GND[ ] |
-         | [ ]N/C                    SCK/13[ ]~|   B7
-         | [ ]v.ref                 MISO/12[ ]~|   B6
-         | [ ]RST                   MOSI/11[ ]~|   B5
-         | [ ]3V3      +----------+      10[ ]~|   B4
-         | [ ]5v       | ARDUINO  |       9[ ]~|   H6
-         | [ ]GND      |   MEGA   |       8[ ]~|   H5
-         | [ ]GND      +----------+            |
-         | [ ]Vin                         7[ ]~|   H4
-         |                                6[ ]~|   H3
-         | [ ]A0                          5[ ]~|   E3
-         | [ ]A1                          4[ ]~|   G5
-         | [ ]A2                     INT5/3[ ]~|   E5
-         | [ ]A3                     INT4/2[ ]~|   E4
-         | [ ]A4                       TX>1[ ]~|   E1
-         | [ ]A5                       RX<0[ ]~|   E0
-         | [ ]A6                               |
-         | [ ]A7                     TX3/14[ ] |   J1
-         |                           RX3/15[ ] |   J0
-         | [ ]A8                     TX2/16[ ] |   H1
-         | [ ]A9                     RX2/17[ ] |   H0
-         | [ ]A10               TX1/INT3/18[ ] |   D3
-         | [ ]A11               RX1/INT2/19[ ] |   D2
-         | [ ]A12           I2C-SDA/INT1/20[ ] |   D1
-         | [ ]A13           I2C-SCL/INT0/21[ ] |   D0
-         | [ ]A14                              |
-         | [ ]A15                              |   Ports:
-         |                RST SCK MISO         |    22=A0  23=A1
-         |         ICSP   [ ] [ ] [ ]          |    24=A2  25=A3
-         |                [ ] [ ] [ ]          |    26=A4  27=A5
-         |                GND MOSI 5V          |    28=A6  29=A7
-         | G                                   |    30=C7  31=C6
-         | N 5 5 4 4 4 4 4 3 3 3 3 3 2 2 2 2 5 |    32=C5  33=C4
-         | D 2 0 8 6 4 2 0 8 6 4 2 0 8 6 4 2 V |    34=C3  35=C2
-         |         ~ ~                         |    36=C1  37=C0
-         | @ # # # # # # # # # # # # # # # # @ |    38=D7  39=G2
-         | @ # # # # # # # # # # # # # # # # @ |    40=G1  41=G0
-         |           ~                         |    42=L7  43=L6
-         | G 5 5 4 4 4 4 4 3 3 3 3 3 2 2 2 2 5 |    44=L5  45=L4
-         | N 3 1 9 7 5 3 1 9 7 5 3 1 9 7 5 3 V |    46=L3  47=L2
-         | D                                   |    48=L1  49=L0    SPI:
-         |                                     |    50=B3  51=B2     50=MISO 51=MOSI
-         |     2560                ____________/    52=B1  53=B0     52=SCK  53=SS
-          \_______________________/
-
-*/

+ 0 - 94
SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/girs_pins_mega2560_rear.h

@@ -1,94 +0,0 @@
-#pragma once
-
-// Configuration for Arduino Mega2560, a custom "half-shield", designed
-// to fit on a Mega2560, already having an Ethernet shield attached.
-
-#ifndef ARDUINO_AVR_MEGA2560
-#error This file is for AVR_MEGA2560 only
-#endif
-
-#define SIGNAL_LED_1     LED_BUILTIN // 13
-#define SIGNAL_LED_2     16
-#define SIGNAL_LED_3     17
-#define SIGNAL_LED_4     30
-
-//#define SIGNAL_LED_5_GND 22
-#define SIGNAL_LED_5     22
-//#define SIGNAL_LED_6_GND 24
-#define SIGNAL_LED_6     24
-//#define SIGNAL_LED_7_GND 26
-#define SIGNAL_LED_7     28
-//#define SIGNAL_LED_8_GND 28
-#define SIGNAL_LED_8     32
-
-// capture pin (ICP) 49
-
-#define IRSENSOR_1_PIN 49
-//#ifdef IRSENSOR_1_PULLUP
-// not presently implemented
-//#define IRSENSOR_2_PIN 48
-//#define IRSENSOR_2_PULLUP
-
-#define IRRECEIVER_1_PIN 47
-//#define IRRECEIVER_1_PULLUP
-#define IRRECEIVER_2_PIN IRSENSOR_1_PIN // Non-demodulating sensor
-//#define IRRECEIVER_3_PIN 8 // 56kHz
-//#define IRRECEIVER_4_PIN 6 // 433 MHz
-//#define IRRECEIVER_5_PIN IRSENSOR_1_PIN // Non-demodulating sensor
-
-#define NON_MOD_PIN 39
-
-/* From http://busyducks.com/ascii-art-arduinos                              +-----+
-
-         +----[PWR]-------------------| USB |--+
-         |                            +-----+  |
-         |           GND/RST2  [ ] [ ]         |
-         |         MOSI2/SCK2  [ ] [ ]  SCL[ ] |   D0
-         |            5V/MISO2 [ ] [ ]  SDA[ ] |   D1
-         |                             AREF[ ] |
-         |                              GND[ ] |
-         | [ ]N/C                    SCK/13[ ]~|   B7
-         | [ ]v.ref                 MISO/12[ ]~|   B6
-         | [ ]RST                   MOSI/11[ ]~|   B5
-         | [ ]3V3      +----------+      10[ ]~|   B4
-         | [ ]5v       | ARDUINO  |       9[ ]~|   H6
-         | [ ]GND      |   MEGA   |       8[ ]~|   H5
-         | [ ]GND      +----------+            |
-         | [ ]Vin                         7[ ]~|   H4
-         |                                6[ ]~|   H3
-         | [ ]A0                          5[ ]~|   E3
-         | [ ]A1                          4[ ]~|   G5
-         | [ ]A2                     INT5/3[ ]~|   E5
-         | [ ]A3                     INT4/2[ ]~|   E4
-         | [ ]A4                       TX>1[ ]~|   E1
-         | [ ]A5                       RX<0[ ]~|   E0
-         | [ ]A6                               |
-         | [ ]A7                     TX3/14[ ] |   J1
-         |                           RX3/15[ ] |   J0
-         | [ ]A8                     TX2/16[ ] |   H1
-         | [ ]A9                     RX2/17[ ] |   H0
-         | [ ]A10               TX1/INT3/18[ ] |   D3
-         | [ ]A11               RX1/INT2/19[ ] |   D2
-         | [ ]A12           I2C-SDA/INT1/20[ ] |   D1
-         | [ ]A13           I2C-SCL/INT0/21[ ] |   D0
-         | [ ]A14                              |
-         | [ ]A15                              |   Ports:
-         |                RST SCK MISO         |    22=A0  23=A1
-         |         ICSP   [ ] [ ] [ ]          |    24=A2  25=A3
-         |                [ ] [ ] [ ]          |    26=A4  27=A5
-         |                GND MOSI 5V          |    28=A6  29=A7
-         | G                                   |    30=C7  31=C6
-         | N 5 5 4 4 4 4 4 3 3 3 3 3 2 2 2 2 5 |    32=C5  33=C4
-         | D 2 0 8 6 4 2 0 8 6 4 2 0 8 6 4 2 V |    34=C3  35=C2
-         |         ~ ~                         |    36=C1  37=C0
-         | @ # # # # # # # # # # # # # # # # @ |    38=D7  39=G2
-         | @ # # # # # # # # # # # # # # # # @ |    40=G1  41=G0
-         |           ~                         |    42=L7  43=L6
-         | G 5 5 4 4 4 4 4 3 3 3 3 3 2 2 2 2 5 |    44=L5  45=L4
-         | N 3 1 9 7 5 3 1 9 7 5 3 1 9 7 5 3 V |    46=L3  47=L2
-         | D                                   |    48=L1  49=L0    SPI:
-         |                                     |    50=B3  51=B2     50=MISO 51=MOSI
-         |     2560                ____________/    52=B1  53=B0     52=SCK  53=SS
-          \_______________________/
-
-*/

+ 0 - 29
SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/girs_pins_micro.h

@@ -1,29 +0,0 @@
-#pragma once
-
-// Configuration for Arduino Micro with components soldered on the PCB.
-
-#ifndef ARDUINO_AVR_MICRO
-#error This file is for Micro only
-#endif
-
-#define SIGNAL_LED_1 2
-//#define SIGNAL_LED_1_GND 3
-#define SIGNAL_LED_4 A0
-#define SIGNAL_LED_4_GND 15
-#define SIGNAL_LED_3 A2
-#define SIGNAL_LED_3_GND A1
-#define SIGNAL_LED_2 A3
-//#define SIGNAL_LED_1_GND 8
-
-// capture pin (ICP) 4
-
-//#define IRSENSOR_1_PULLUP
-#define IRSENSOR_GND 5
-#define IRSENSOR_VSS 6
-
-#define IRRECEIVER_PIN 10
-//#define IRRECEIVER_1_PULLUP
-#define IRRECEIVER_GND 16
-#define IRRECEIVER_VSS 14
-
-// Send pin 9

+ 0 - 29
SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/girs_pins_nano.h

@@ -1,29 +0,0 @@
-#pragma once
-
-// Configuration for Arduino Nano with components soldered on the PCB.
-
-#ifndef ARDUINO_AVR_NANO
-#error This file is for Nano only
-#endif
-
-#define SIGNAL_LED_1 LED_BUILTIN // 13
-#define SIGNAL_LED_2 A1
-#define SIGNAL_LED_2_GND A0
-#define SIGNAL_LED_3 A3
-#define SIGNAL_LED_3_GND A2
-#define SIGNAL_LED_4 A5
-#define SIGNAL_LED_4_GND A4
-//#define SIGNAL_LED_5 A7
-//#define SIGNAL_LED_5_GND A6
-
-// capture pin (ICP) 8
-//#define IRSENSOR_1_PULLUP
-#define IRSENSOR_1_GND 9
-#define IRSENSOR_1_VSS 10
-
-#define IRRECEIVER_1_PIN 5
-//#define IRRECEIVER_1_PULLUP
-#define IRRECEIVER_1_GND 6
-#define IRRECEIVER_1_VSS 7
-
-// Send pin 3

+ 0 - 21
SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/girs_pins_nano_shield.h

@@ -1,21 +0,0 @@
-#pragma once
-
-// Configuration for my Arduino Nano shield.
-
-#ifndef ARDUINO_AVR_NANO
-#error This file is for Nano only
-#endif
-
-#define SIGNAL_LED_1 13
-#define SIGNAL_LED_2 A1
-#define SIGNAL_LED_3 A2
-#define SIGNAL_LED_4 A3
-
-// capture pin (ICP) 8
-
-#define IRRECEIVER_1_PIN 5
-//#define IRRECEIVER_2_PIN 12
-
-// Send pin 3
-
-#define NON_MOD_PIN 9

+ 0 - 5
SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/lcd_0x27_16_2.h

@@ -1,5 +0,0 @@
-#pragma once
-
-#define LCD_I2C_ADDRESS 0x27
-#define LCD_WIDTH 16
-#define LCD_HEIGHT 2

+ 0 - 5
SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/lcd_0x27_20_4.h

@@ -1,5 +0,0 @@
-#pragma once
-
-#define LCD_I2C_ADDRESS 0x27
-#define LCD_WIDTH 20
-#define LCD_HEIGHT 4

+ 0 - 5
SE/stuff/P5_Automation-library-dev/AGirs/src/hardware-config/lcd_0x3F_20_4.h

@@ -1,5 +0,0 @@
-#pragma once
-
-#define LCD_I2C_ADDRESS 0x3F
-#define LCD_WIDTH 20
-#define LCD_HEIGHT 4

+ 0 - 95
SE/stuff/P5_Automation-library-dev/AGirs/tools/mkflasher.sh

@@ -1,95 +0,0 @@
-#!/bin/sh
-
-# This script creates another script,
-# that will flash an Arduino nano
-# on a system with avrdude installed.
-
-ARDUINO=arduino
-TMPDIR=/tmp/nanobuild
-SKETCH=Girs
-PRODUCT=GirsLite
-FILE=examples/$SKETCH/$SKETCH.ino
-PACKAGE=arduino
-ARCHITECTURE=avr
-BOARD=nano
-CPU=atmega328
-ZIP=zip
-#VERBOSE=--verbose
-
-VERSION=`grep 'version=' library.properties | sed -e 's/version=//'`
-
-OUTFILE=$PRODUCT-$VERSION-$BOARD-flasher.sh
-
-rm -rf $TMPDIR $OUTFILE
-
-# I _think_ that this command requires AGirs at least to be accessible
-# in the standard Arduino path, for example ~/Arduino/libraries.
-$ARDUINO  --verify --pref build.path=$TMPDIR ${VERBOSE} \
-	  --board ${PACKAGE}:${ARCHITECTURE}:${BOARD}:cpu=${CPU} \
-	  $FILE
-
-if [ "$?" -ne 0 ] ; then
-    exit $?
-fi
-
-cat > ${OUTFILE} <<EOF1
-#!/bin/sh
-
-# Flashing of the ${PACKAGE} ${BOARD}, using avrdude installed like Fedora.
-# Sometimes root access is required, depending on the system configuration.
-
-# Usage:
-# ${OUTFILE} [-n] [<PORT>]
-#
-# where -n is for boards with the "new" bootloader, called optiboot.
-# <PORT> is the device name, default /dev/ttyUSB0.
-
-if [ "\$1" = "-n" ] ; then
-    BAUD=115200
-    shift
-else
-    BAUD=57600
-fi
-
-if [ \$# -eq 1 ] ; then
-    PORT=\$1
-else
-    PORT=/dev/ttyUSB0
-fi
-
-AVRDUDE=/usr/bin/avrdude
-AVRDUDE_CONF=/etc/avrdude/avrdude.conf
-PART=atmega328p
-PROGRAMMER_ID=arduino
-
-HEXFILE=/tmp/flasher\$\$
-
-cat > \${HEXFILE} <<EOF
-EOF1
-
-cat $TMPDIR/$SKETCH.ino.hex >> ${OUTFILE}
-
-cat >> ${OUTFILE} <<EOF2
-EOF
-
-if [ -f \${AVRDUDE_CONF} ] ; then
-   AVRDUDE_CONF_OPTION=-C\${AVRDUDE_CONF}
-else
-   AVRDUDE_CONF_OPTION=
-fi
-
-\${AVRDUDE} \${AVRDUDE_CONF_OPTION} \\
-     -v -p\${PART} -c\${PROGRAMMER_ID} -P\${PORT} -b\${BAUD} -D \\
-     -Uflash:w:\${HEXFILE}:i
-
-rm -f \${HEXFILE}
-EOF2
-
-chmod +x ${OUTFILE}
-cp $TMPDIR/$SKETCH.ino.hex $PRODUCT-$VERSION-$BOARD.hex
-
-# Github rejects files ending with .sh
-$ZIP ${OUTFILE}.zip ${OUTFILE}
-$ZIP $PRODUCT-$VERSION-$BOARD.hex.zip $PRODUCT-$VERSION-$BOARD.hex
-
-echo Created $OUTFILE and ${OUTFILE}.zip

+ 0 - 40
SE/stuff/P5_Automation-library-dev/AGirs/tools/nanoflasher.sh

@@ -1,40 +0,0 @@
-#!/bin/sh
-
-# Flashing of the Arduino Nano, using avrdude installed like Fedora.
-
-# Usage:
-# ${OUTFILE} [-n] [<PORT>]
-#
-# where -n is for boards with the "new" bootloader, called optiboot.
-# <PORT> is the device name, default /dev/ttyUSB0.
-
-if [ "$1" = "-n" ] ; then
-    BAUD=115200
-    shift
-else
-    BAUD=57600
-fi
-
-if [ $# -eq 1 ] ; then
-    PORT=/dev/ttyUSB0
-elif [ $# -eq 2 ] ; then
-    PORT=$2
-else
-    echo -e usage: \\n\\t$0 hexfile [device]
-    exit 1
-fi
-
-AVRDUDE=/usr/bin/avrdude
-AVRDUDE_CONF=/etc/avrdude/avrdude.conf
-PART=atmega328p
-PROGRAMMER_ID=arduino
-
-HEXFILE=$1
-
-if [ -f ${AVRDUDE_CONF} ] ; then
-   AVRDUDE_CONF_OPTION=-C${AVRDUDE_CONF}
-fi
-
-${AVRDUDE} ${AVRDUDE_CONF_OPTION} \
-     -v -p${PART} -c${PROGRAMMER_ID} -P${PORT} -b${BAUD} -D \
-     -Uflash:w:${HEXFILE}:i

+ 0 - 303
SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/Adafruit_BusIO_Register.cpp

@@ -1,303 +0,0 @@
-#include <Adafruit_BusIO_Register.h>
-
-/*!
- *    @brief  Create a register we access over an I2C Device (which defines the
- * bus and address)
- *    @param  i2cdevice The I2CDevice to use for underlying I2C access
- *    @param  reg_addr The address pointer value for the I2C/SMBus register, can
- * be 8 or 16 bits
- *    @param  width    The width of the register data itself, defaults to 1 byte
- *    @param  byteorder The byte order of the register (used when width is > 1),
- * defaults to LSBFIRST
- *    @param  address_width The width of the register address itself, defaults
- * to 1 byte
- */
-Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice *i2cdevice,
-                                                 uint16_t reg_addr,
-                                                 uint8_t width,
-                                                 uint8_t byteorder,
-                                                 uint8_t address_width) {
-  _i2cdevice = i2cdevice;
-  _spidevice = NULL;
-  _addrwidth = address_width;
-  _address = reg_addr;
-  _byteorder = byteorder;
-  _width = width;
-}
-
-/*!
- *    @brief  Create a register we access over an SPI Device (which defines the
- * bus and CS pin)
- *    @param  spidevice The SPIDevice to use for underlying SPI access
- *    @param  reg_addr The address pointer value for the SPI register, can
- * be 8 or 16 bits
- *    @param  type     The method we use to read/write data to SPI (which is not
- * as well defined as I2C)
- *    @param  width    The width of the register data itself, defaults to 1 byte
- *    @param  byteorder The byte order of the register (used when width is > 1),
- * defaults to LSBFIRST
- *    @param  address_width The width of the register address itself, defaults
- * to 1 byte
- */
-Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_SPIDevice *spidevice,
-                                                 uint16_t reg_addr,
-                                                 Adafruit_BusIO_SPIRegType type,
-                                                 uint8_t width,
-                                                 uint8_t byteorder,
-                                                 uint8_t address_width) {
-  _spidevice = spidevice;
-  _spiregtype = type;
-  _i2cdevice = NULL;
-  _addrwidth = address_width;
-  _address = reg_addr;
-  _byteorder = byteorder;
-  _width = width;
-}
-
-/*!
- *    @brief  Create a register we access over an I2C or SPI Device. This is a
- * handy function because we can pass in NULL for the unused interface, allowing
- * libraries to mass-define all the registers
- *    @param  i2cdevice The I2CDevice to use for underlying I2C access, if NULL
- * we use SPI
- *    @param  spidevice The SPIDevice to use for underlying SPI access, if NULL
- * we use I2C
- *    @param  reg_addr The address pointer value for the I2C/SMBus/SPI register,
- * can be 8 or 16 bits
- *    @param  type     The method we use to read/write data to SPI (which is not
- * as well defined as I2C)
- *    @param  width    The width of the register data itself, defaults to 1 byte
- *    @param  byteorder The byte order of the register (used when width is > 1),
- * defaults to LSBFIRST
- *    @param  address_width The width of the register address itself, defaults
- * to 1 byte
- */
-Adafruit_BusIO_Register::Adafruit_BusIO_Register(
-    Adafruit_I2CDevice *i2cdevice, Adafruit_SPIDevice *spidevice,
-    Adafruit_BusIO_SPIRegType type, uint16_t reg_addr, uint8_t width,
-    uint8_t byteorder, uint8_t address_width) {
-  _spidevice = spidevice;
-  _i2cdevice = i2cdevice;
-  _spiregtype = type;
-  _addrwidth = address_width;
-  _address = reg_addr;
-  _byteorder = byteorder;
-  _width = width;
-}
-
-/*!
- *    @brief  Write a buffer of data to the register location
- *    @param  buffer Pointer to data to write
- *    @param  len Number of bytes to write
- *    @return True on successful write (only really useful for I2C as SPI is
- * uncheckable)
- */
-bool Adafruit_BusIO_Register::write(uint8_t *buffer, uint8_t len) {
-
-  uint8_t addrbuffer[2] = {(uint8_t)(_address & 0xFF),
-                           (uint8_t)(_address >> 8)};
-
-  if (_i2cdevice) {
-    return _i2cdevice->write(buffer, len, true, addrbuffer, _addrwidth);
-  }
-  if (_spidevice) {
-    if (_spiregtype == ADDRBIT8_HIGH_TOREAD) {
-      addrbuffer[0] &= ~0x80;
-    }
-    if (_spiregtype == ADDRBIT8_HIGH_TOWRITE) {
-      addrbuffer[0] |= 0x80;
-    }
-    if (_spiregtype == AD8_HIGH_TOREAD_AD7_HIGH_TOINC) {
-      addrbuffer[0] &= ~0x80;
-      addrbuffer[0] |= 0x40;
-    }
-    return _spidevice->write(buffer, len, addrbuffer, _addrwidth);
-  }
-  return false;
-}
-
-/*!
- *    @brief  Write up to 4 bytes of data to the register location
- *    @param  value Data to write
- *    @param  numbytes How many bytes from 'value' to write
- *    @return True on successful write (only really useful for I2C as SPI is
- * uncheckable)
- */
-bool Adafruit_BusIO_Register::write(uint32_t value, uint8_t numbytes) {
-  if (numbytes == 0) {
-    numbytes = _width;
-  }
-  if (numbytes > 4) {
-    return false;
-  }
-
-  for (int i = 0; i < numbytes; i++) {
-    if (_byteorder == LSBFIRST) {
-      _buffer[i] = value & 0xFF;
-    } else {
-      _buffer[numbytes - i - 1] = value & 0xFF;
-    }
-    value >>= 8;
-  }
-  return write(_buffer, numbytes);
-}
-
-/*!
- *    @brief  Read data from the register location. This does not do any error
- * checking!
- *    @return Returns 0xFFFFFFFF on failure, value otherwise
- */
-uint32_t Adafruit_BusIO_Register::read(void) {
-  if (!read(_buffer, _width)) {
-    return -1;
-  }
-
-  uint32_t value = 0;
-
-  for (int i = 0; i < _width; i++) {
-    value <<= 8;
-    if (_byteorder == LSBFIRST) {
-      value |= _buffer[_width - i - 1];
-    } else {
-      value |= _buffer[i];
-    }
-  }
-
-  return value;
-}
-
-/*!
- *    @brief  Read a buffer of data from the register location
- *    @param  buffer Pointer to data to read into
- *    @param  len Number of bytes to read
- *    @return True on successful write (only really useful for I2C as SPI is
- * uncheckable)
- */
-bool Adafruit_BusIO_Register::read(uint8_t *buffer, uint8_t len) {
-  uint8_t addrbuffer[2] = {(uint8_t)(_address & 0xFF),
-                           (uint8_t)(_address >> 8)};
-
-  if (_i2cdevice) {
-    return _i2cdevice->write_then_read(addrbuffer, _addrwidth, buffer, len);
-  }
-  if (_spidevice) {
-    if (_spiregtype == ADDRBIT8_HIGH_TOREAD) {
-      addrbuffer[0] |= 0x80;
-    }
-    if (_spiregtype == ADDRBIT8_HIGH_TOWRITE) {
-      addrbuffer[0] &= ~0x80;
-    }
-    if (_spiregtype == AD8_HIGH_TOREAD_AD7_HIGH_TOINC) {
-      addrbuffer[0] |= 0x80 | 0x40;
-    }
-    return _spidevice->write_then_read(addrbuffer, _addrwidth, buffer, len);
-  }
-  return false;
-}
-
-/*!
- *    @brief  Read 2 bytes of data from the register location
- *    @param  value Pointer to uint16_t variable to read into
- *    @return True on successful write (only really useful for I2C as SPI is
- * uncheckable)
- */
-bool Adafruit_BusIO_Register::read(uint16_t *value) {
-  if (!read(_buffer, 2)) {
-    return false;
-  }
-
-  if (_byteorder == LSBFIRST) {
-    *value = _buffer[1];
-    *value <<= 8;
-    *value |= _buffer[0];
-  } else {
-    *value = _buffer[0];
-    *value <<= 8;
-    *value |= _buffer[1];
-  }
-  return true;
-}
-
-/*!
- *    @brief  Read 1 byte of data from the register location
- *    @param  value Pointer to uint8_t variable to read into
- *    @return True on successful write (only really useful for I2C as SPI is
- * uncheckable)
- */
-bool Adafruit_BusIO_Register::read(uint8_t *value) {
-  if (!read(_buffer, 1)) {
-    return false;
-  }
-
-  *value = _buffer[0];
-  return true;
-}
-
-/*!
- *    @brief  Pretty printer for this register
- *    @param  s The Stream to print to, defaults to &Serial
- */
-void Adafruit_BusIO_Register::print(Stream *s) {
-  uint32_t val = read();
-  s->print("0x");
-  s->print(val, HEX);
-}
-
-/*!
- *    @brief  Pretty printer for this register
- *    @param  s The Stream to print to, defaults to &Serial
- */
-void Adafruit_BusIO_Register::println(Stream *s) {
-  print(s);
-  s->println();
-}
-
-/*!
- *    @brief  Create a slice of the register that we can address without
- * touching other bits
- *    @param  reg The Adafruit_BusIO_Register which defines the bus/register
- *    @param  bits The number of bits wide we are slicing
- *    @param  shift The number of bits that our bit-slice is shifted from LSB
- */
-Adafruit_BusIO_RegisterBits::Adafruit_BusIO_RegisterBits(
-    Adafruit_BusIO_Register *reg, uint8_t bits, uint8_t shift) {
-  _register = reg;
-  _bits = bits;
-  _shift = shift;
-}
-
-/*!
- *    @brief  Read 4 bytes of data from the register
- *    @return  data The 4 bytes to read
- */
-uint32_t Adafruit_BusIO_RegisterBits::read(void) {
-  uint32_t val = _register->read();
-  val >>= _shift;
-  return val & ((1 << (_bits)) - 1);
-}
-
-/*!
- *    @brief  Write 4 bytes of data to the register
- *    @param  data The 4 bytes to write
- *    @return True on successful write (only really useful for I2C as SPI is
- * uncheckable)
- */
-bool Adafruit_BusIO_RegisterBits::write(uint32_t data) {
-  uint32_t val = _register->read();
-
-  // mask off the data before writing
-  uint32_t mask = (1 << (_bits)) - 1;
-  data &= mask;
-
-  mask <<= _shift;
-  val &= ~mask;          // remove the current data at that spot
-  val |= data << _shift; // and add in the new data
-
-  return _register->write(val, _register->width());
-}
-
-/*!
- *    @brief  The width of the register data, helpful for doing calculations
- *    @returns The data width used when initializing the register
- */
-uint8_t Adafruit_BusIO_Register::width(void) { return _width; }

+ 0 - 72
SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/Adafruit_BusIO_Register.h

@@ -1,72 +0,0 @@
-#include <Adafruit_I2CDevice.h>
-#include <Adafruit_SPIDevice.h>
-#include <Arduino.h>
-
-#ifndef Adafruit_BusIO_Register_h
-#define Adafruit_BusIO_Register_h
-
-typedef enum _Adafruit_BusIO_SPIRegType {
-  ADDRBIT8_HIGH_TOREAD = 0,
-  AD8_HIGH_TOREAD_AD7_HIGH_TOINC = 1,
-  ADDRBIT8_HIGH_TOWRITE = 2,
-} Adafruit_BusIO_SPIRegType;
-
-/*!
- * @brief The class which defines a device register (a location to read/write
- * data from)
- */
-class Adafruit_BusIO_Register {
-public:
-  Adafruit_BusIO_Register(Adafruit_I2CDevice *i2cdevice, uint16_t reg_addr,
-                          uint8_t width = 1, uint8_t byteorder = LSBFIRST,
-                          uint8_t address_width = 1);
-  Adafruit_BusIO_Register(Adafruit_SPIDevice *spidevice, uint16_t reg_addr,
-                          Adafruit_BusIO_SPIRegType type, uint8_t width = 1,
-                          uint8_t byteorder = LSBFIRST,
-                          uint8_t address_width = 1);
-
-  Adafruit_BusIO_Register(Adafruit_I2CDevice *i2cdevice,
-                          Adafruit_SPIDevice *spidevice,
-                          Adafruit_BusIO_SPIRegType type, uint16_t reg_addr,
-                          uint8_t width = 1, uint8_t byteorder = LSBFIRST,
-                          uint8_t address_width = 1);
-
-  bool read(uint8_t *buffer, uint8_t len);
-  bool read(uint8_t *value);
-  bool read(uint16_t *value);
-  uint32_t read(void);
-  bool write(uint8_t *buffer, uint8_t len);
-  bool write(uint32_t value, uint8_t numbytes = 0);
-
-  uint8_t width(void);
-
-  void print(Stream *s = &Serial);
-  void println(Stream *s = &Serial);
-
-private:
-  Adafruit_I2CDevice *_i2cdevice;
-  Adafruit_SPIDevice *_spidevice;
-  Adafruit_BusIO_SPIRegType _spiregtype;
-  uint16_t _address;
-  uint8_t _width, _addrwidth, _byteorder;
-  uint8_t _buffer[4]; // we wont support anything larger than uint32 for
-                      // non-buffered read
-};
-
-/*!
- * @brief The class which defines a slice of bits from within a device register
- * (a location to read/write data from)
- */
-class Adafruit_BusIO_RegisterBits {
-public:
-  Adafruit_BusIO_RegisterBits(Adafruit_BusIO_Register *reg, uint8_t bits,
-                              uint8_t shift);
-  bool write(uint32_t value);
-  uint32_t read(void);
-
-private:
-  Adafruit_BusIO_Register *_register;
-  uint8_t _bits, _shift;
-};
-
-#endif // BusIO_Register_h

+ 0 - 233
SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/Adafruit_I2CDevice.cpp

@@ -1,233 +0,0 @@
-#include <Adafruit_I2CDevice.h>
-#include <Arduino.h>
-
-//#define DEBUG_SERIAL Serial
-
-/*!
- *    @brief  Create an I2C device at a given address
- *    @param  addr The 7-bit I2C address for the device
- *    @param  theWire The I2C bus to use, defaults to &Wire
- */
-Adafruit_I2CDevice::Adafruit_I2CDevice(uint8_t addr, TwoWire *theWire) {
-  _addr = addr;
-  _wire = theWire;
-  _begun = false;
-#ifdef ARDUINO_ARCH_SAMD
-  _maxBufferSize = 250; // as defined in Wire.h's RingBuffer
-#else
-  _maxBufferSize = 32;
-#endif
-}
-
-/*!
- *    @brief  Initializes and does basic address detection
- *    @param  addr_detect Whether we should attempt to detect the I2C address
- * with a scan. 99% of sensors/devices don't mind but once in a while, they spaz
- * on a scan!
- *    @return True if I2C initialized and a device with the addr found
- */
-bool Adafruit_I2CDevice::begin(bool addr_detect) {
-  _wire->begin();
-  _begun = true;
-
-  if (addr_detect) {
-    return detected();
-  }
-  return true;
-}
-
-/*!
- *    @brief  Scans I2C for the address - note will give a false-positive
- *    if there's no pullups on I2C
- *    @return True if I2C initialized and a device with the addr found
- */
-bool Adafruit_I2CDevice::detected(void) {
-  // Init I2C if not done yet
-  if (!_begun && !begin()) {
-    return false;
-  }
-
-  // A basic scanner, see if it ACK's
-  _wire->beginTransmission(_addr);
-  if (_wire->endTransmission() == 0) {
-    return true;
-  }
-  return false;
-}
-
-/*!
- *    @brief  Write a buffer or two to the I2C device. Cannot be more than
- * maxBufferSize() bytes.
- *    @param  buffer Pointer to buffer of data to write
- *    @param  len Number of bytes from buffer to write
- *    @param  prefix_buffer Pointer to optional array of data to write before
- * buffer. Cannot be more than maxBufferSize() bytes.
- *    @param  prefix_len Number of bytes from prefix buffer to write
- *    @param  stop Whether to send an I2C STOP signal on write
- *    @return True if write was successful, otherwise false.
- */
-bool Adafruit_I2CDevice::write(uint8_t *buffer, size_t len, bool stop,
-                               uint8_t *prefix_buffer, size_t prefix_len) {
-  if ((len + prefix_len) > maxBufferSize()) {
-    // currently not guaranteed to work if more than 32 bytes!
-    // we will need to find out if some platforms have larger
-    // I2C buffer sizes :/
-#ifdef DEBUG_SERIAL
-    DEBUG_SERIAL.println(F("\tI2CDevice could not write such a large buffer"));
-#endif
-    return false;
-  }
-
-  _wire->beginTransmission(_addr);
-
-  // Write the prefix data (usually an address)
-  if ((prefix_len != 0) && (prefix_buffer != NULL)) {
-    if (_wire->write(prefix_buffer, prefix_len) != prefix_len) {
-#ifdef DEBUG_SERIAL
-      DEBUG_SERIAL.println(F("\tI2CDevice failed to write"));
-#endif
-      return false;
-    }
-  }
-
-  // Write the data itself
-  if (_wire->write(buffer, len) != len) {
-#ifdef DEBUG_SERIAL
-    DEBUG_SERIAL.println(F("\tI2CDevice failed to write"));
-#endif
-    return false;
-  }
-
-#ifdef DEBUG_SERIAL
-
-  DEBUG_SERIAL.print(F("\tI2CWRITE @ 0x"));
-  DEBUG_SERIAL.print(_addr, HEX);
-  DEBUG_SERIAL.print(F(" :: "));
-  if ((prefix_len != 0) && (prefix_buffer != NULL)) {
-    for (uint16_t i = 0; i < prefix_len; i++) {
-      DEBUG_SERIAL.print(F("0x"));
-      DEBUG_SERIAL.print(prefix_buffer[i], HEX);
-      DEBUG_SERIAL.print(F(", "));
-    }
-  }
-  for (uint16_t i = 0; i < len; i++) {
-    DEBUG_SERIAL.print(F("0x"));
-    DEBUG_SERIAL.print(buffer[i], HEX);
-    DEBUG_SERIAL.print(F(", "));
-    if (i % 32 == 31) {
-      DEBUG_SERIAL.println();
-    }
-  }
-  DEBUG_SERIAL.println();
-#endif
-
-#ifdef DEBUG_SERIAL
-  // DEBUG_SERIAL.print("Stop: "); DEBUG_SERIAL.println(stop);
-#endif
-
-  if (_wire->endTransmission(stop) == 0) {
-#ifdef DEBUG_SERIAL
-    // DEBUG_SERIAL.println("Sent!");
-#endif
-    return true;
-  } else {
-#ifdef DEBUG_SERIAL
-    DEBUG_SERIAL.println("Failed to send!");
-#endif
-    return false;
-  }
-}
-
-/*!
- *    @brief  Read from I2C into a buffer from the I2C device.
- *    Cannot be more than maxBufferSize() bytes.
- *    @param  buffer Pointer to buffer of data to read into
- *    @param  len Number of bytes from buffer to read.
- *    @param  stop Whether to send an I2C STOP signal on read
- *    @return True if read was successful, otherwise false.
- */
-bool Adafruit_I2CDevice::read(uint8_t *buffer, size_t len, bool stop) {
-  if (len > maxBufferSize()) {
-    // currently not guaranteed to work if more than 32 bytes!
-    // we will need to find out if some platforms have larger
-    // I2C buffer sizes :/
-#ifdef DEBUG_SERIAL
-    DEBUG_SERIAL.println(F("\tI2CDevice could not read such a large buffer"));
-#endif
-    return false;
-  }
-
-  size_t recv = _wire->requestFrom((uint8_t)_addr, (uint8_t)len, (uint8_t)stop);
-  if (recv != len) {
-    // Not enough data available to fulfill our obligation!
-#ifdef DEBUG_SERIAL
-    DEBUG_SERIAL.print(F("\tI2CDevice did not receive enough data: "));
-    DEBUG_SERIAL.println(recv);
-#endif
-    return false;
-  }
-
-  for (uint16_t i = 0; i < len; i++) {
-    buffer[i] = _wire->read();
-  }
-
-#ifdef DEBUG_SERIAL
-  DEBUG_SERIAL.print(F("\tI2CREAD  @ 0x"));
-  DEBUG_SERIAL.print(_addr, HEX);
-  DEBUG_SERIAL.print(F(" :: "));
-  for (uint16_t i = 0; i < len; i++) {
-    DEBUG_SERIAL.print(F("0x"));
-    DEBUG_SERIAL.print(buffer[i], HEX);
-    DEBUG_SERIAL.print(F(", "));
-    if (len % 32 == 31) {
-      DEBUG_SERIAL.println();
-    }
-  }
-  DEBUG_SERIAL.println();
-#endif
-
-  return true;
-}
-
-/*!
- *    @brief  Write some data, then read some data from I2C into another buffer.
- *    Cannot be more than maxBufferSize() bytes. The buffers can point to
- *    same/overlapping locations.
- *    @param  write_buffer Pointer to buffer of data to write from
- *    @param  write_len Number of bytes from buffer to write.
- *    @param  read_buffer Pointer to buffer of data to read into.
- *    @param  read_len Number of bytes from buffer to read.
- *    @param  stop Whether to send an I2C STOP signal between the write and read
- *    @return True if write & read was successful, otherwise false.
- */
-bool Adafruit_I2CDevice::write_then_read(uint8_t *write_buffer,
-                                         size_t write_len, uint8_t *read_buffer,
-                                         size_t read_len, bool stop) {
-  if (!write(write_buffer, write_len, stop)) {
-    return false;
-  }
-
-  return read(read_buffer, read_len);
-}
-
-/*!
- *    @brief  Returns the 7-bit address of this device
- *    @return The 7-bit address of this device
- */
-uint8_t Adafruit_I2CDevice::address(void) { return _addr; }
-
-/*!
- *    @brief  Change the I2C clock speed to desired (relies on
- *    underlying Wire support!
- *    @param desiredclk The desired I2C SCL frequency
- *    @return True if this platform supports changing I2C speed.
- *    Not necessarily that the speed was achieved!
- */
-bool Adafruit_I2CDevice::setSpeed(uint32_t desiredclk) {
-#if (ARDUINO >= 157) && !defined(ARDUINO_STM32_FEATHER)
-  _wire->setClock(desiredclk);
-  return true;
-#else
-  return false;
-#endif
-}

+ 0 - 33
SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/Adafruit_I2CDevice.h

@@ -1,33 +0,0 @@
-#include <Wire.h>
-
-#ifndef Adafruit_I2CDevice_h
-#define Adafruit_I2CDevice_h
-
-///< The class which defines how we will talk to this device over I2C
-class Adafruit_I2CDevice {
-public:
-  Adafruit_I2CDevice(uint8_t addr, TwoWire *theWire = &Wire);
-  uint8_t address(void);
-  bool begin(bool addr_detect = true);
-  bool detected(void);
-
-  bool read(uint8_t *buffer, size_t len, bool stop = true);
-  bool write(uint8_t *buffer, size_t len, bool stop = true,
-             uint8_t *prefix_buffer = NULL, size_t prefix_len = 0);
-  bool write_then_read(uint8_t *write_buffer, size_t write_len,
-                       uint8_t *read_buffer, size_t read_len,
-                       bool stop = false);
-  bool setSpeed(uint32_t desiredclk);
-
-  /*!   @brief  How many bytes we can read in a transaction
-   *    @return The size of the Wire receive/transmit buffer */
-  size_t maxBufferSize() { return _maxBufferSize; }
-
-private:
-  uint8_t _addr;
-  TwoWire *_wire;
-  bool _begun;
-  size_t _maxBufferSize;
-};
-
-#endif // Adafruit_I2CDevice_h

+ 0 - 8
SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/Adafruit_I2CRegister.h

@@ -1,8 +0,0 @@
-#include "Adafruit_BusIO_Register.h"
-#ifndef _ADAFRUIT_I2C_REGISTER_H_
-#define _ADAFRUIT_I2C_REGISTER_H_
-
-typedef Adafruit_BusIO_Register Adafruit_I2CRegister;
-typedef Adafruit_BusIO_RegisterBits Adafruit_I2CRegisterBits;
-
-#endif

+ 0 - 330
SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/Adafruit_SPIDevice.cpp

@@ -1,330 +0,0 @@
-#include <Adafruit_SPIDevice.h>
-#include <Arduino.h>
-
-//#define DEBUG_SERIAL Serial
-
-/*!
- *    @brief  Create an SPI device with the given CS pin and settins
- *    @param  cspin The arduino pin number to use for chip select
- *    @param  freq The SPI clock frequency to use, defaults to 1MHz
- *    @param  dataOrder The SPI data order to use for bits within each byte,
- * defaults to SPI_BITORDER_MSBFIRST
- *    @param  dataMode The SPI mode to use, defaults to SPI_MODE0
- *    @param  theSPI The SPI bus to use, defaults to &theSPI
- */
-Adafruit_SPIDevice::Adafruit_SPIDevice(int8_t cspin, uint32_t freq,
-                                       BitOrder dataOrder, uint8_t dataMode,
-                                       SPIClass *theSPI) {
-  _cs = cspin;
-  _sck = _mosi = _miso = -1;
-  _spi = theSPI;
-  _begun = false;
-  _spiSetting = new SPISettings(freq, dataOrder, dataMode);
-  _freq = freq;
-  _dataOrder = dataOrder;
-  _dataMode = dataMode;
-}
-
-/*!
- *    @brief  Create an SPI device with the given CS pin and settins
- *    @param  cspin The arduino pin number to use for chip select
- *    @param  sckpin The arduino pin number to use for SCK
- *    @param  misopin The arduino pin number to use for MISO, set to -1 if not
- * used
- *    @param  mosipin The arduino pin number to use for MOSI, set to -1 if not
- * used
- *    @param  freq The SPI clock frequency to use, defaults to 1MHz
- *    @param  dataOrder The SPI data order to use for bits within each byte,
- * defaults to SPI_BITORDER_MSBFIRST
- *    @param  dataMode The SPI mode to use, defaults to SPI_MODE0
- */
-Adafruit_SPIDevice::Adafruit_SPIDevice(int8_t cspin, int8_t sckpin,
-                                       int8_t misopin, int8_t mosipin,
-                                       uint32_t freq, BitOrder dataOrder,
-                                       uint8_t dataMode) {
-  _cs = cspin;
-  _sck = sckpin;
-  _miso = misopin;
-  _mosi = mosipin;
-  _freq = freq;
-  _dataOrder = dataOrder;
-  _dataMode = dataMode;
-  _begun = false;
-  _spiSetting = new SPISettings(freq, dataOrder, dataMode);
-  _spi = NULL;
-}
-
-/*!
- *    @brief  Initializes SPI bus and sets CS pin high
- *    @return Always returns true because there's no way to test success of SPI
- * init
- */
-bool Adafruit_SPIDevice::begin(void) {
-  pinMode(_cs, OUTPUT);
-  digitalWrite(_cs, HIGH);
-
-  if (_spi) { // hardware SPI
-    _spi->begin();
-  } else {
-    pinMode(_sck, OUTPUT);
-
-    if ((_dataMode == SPI_MODE0) || (_dataMode == SPI_MODE1)) {
-      // idle low on mode 0 and 1
-      digitalWrite(_sck, LOW);
-    } else {
-      // idle high on mode 2 or 3
-      digitalWrite(_sck, HIGH);
-    }
-    if (_mosi != -1) {
-      pinMode(_mosi, OUTPUT);
-      digitalWrite(_mosi, HIGH);
-    }
-    if (_miso != -1) {
-      pinMode(_miso, INPUT);
-    }
-  }
-
-  _begun = true;
-  return true;
-}
-
-/*!
- *    @brief  Transfer (send/receive) one byte over hard/soft SPI
- *    @param  buffer The buffer to send and receive at the same time
- *    @param  len    The number of bytes to transfer
- */
-void Adafruit_SPIDevice::transfer(uint8_t *buffer, size_t len) {
-  if (_spi) {
-    // hardware SPI is easy
-    _spi->transfer(buffer, len);
-    return;
-  }
-
-  // for softSPI we'll do it by hand
-  for (size_t i = 0; i < len; i++) {
-    // software SPI
-    uint8_t reply = 0;
-    uint8_t send = buffer[i];
-
-    /*
-    Serial.print("\tSending software SPI byte 0x");
-    Serial.print(send, HEX);
-    Serial.print(" -> 0x");
-    */
-
-    if (_dataOrder == SPI_BITORDER_LSBFIRST) {
-      // LSB is rare, if it happens we'll just flip the bits around for them
-      uint8_t temp = 0;
-      for (uint8_t b = 0; b < 8; b++) {
-        temp |= ((send >> b) & 0x1) << (7 - b);
-      }
-      send = temp;
-    }
-    // Serial.print(send, HEX);
-    for (int b = 7; b >= 0; b--) {
-      reply <<= 1;
-      if (_dataMode == SPI_MODE0 || _dataMode == SPI_MODE2) {
-        if (_mosi != -1) {
-          digitalWrite(_mosi, send & (1 << b));
-        }
-        digitalWrite(_sck, HIGH);
-        if ((_miso != -1) && digitalRead(_miso)) {
-          reply |= 1;
-        }
-        digitalWrite(_sck, LOW);
-      }
-      if (_dataMode == SPI_MODE1 || _dataMode == SPI_MODE3) {
-        digitalWrite(_sck, HIGH);
-        if (_mosi != -1) {
-          digitalWrite(_mosi, send & (1 << b));
-        }
-        digitalWrite(_sck, LOW);
-        if ((_miso != -1) && digitalRead(_miso)) {
-          reply |= 1;
-        }
-      }
-    }
-
-    // Serial.print(" : 0x"); Serial.print(reply, HEX);
-    if (_dataOrder == SPI_BITORDER_LSBFIRST) {
-      // LSB is rare, if it happens we'll just flip the bits around for them
-      uint8_t temp = 0;
-      for (uint8_t b = 0; b < 8; b++) {
-        temp |= ((reply >> b) & 0x1) << (7 - b);
-      }
-      reply = temp;
-    }
-    // Serial.print(" -> "); Serial.println(reply, HEX);
-
-    buffer[i] = reply;
-  }
-  return;
-}
-
-/*!
- *    @brief  Transfer (send/receive) one byte over hard/soft SPI
- *    @param  send The byte to send
- *    @return The byte received while transmitting
- */
-uint8_t Adafruit_SPIDevice::transfer(uint8_t send) {
-  uint8_t data = send;
-  transfer(&data, 1);
-  return data;
-}
-
-/*!
- *    @brief  Write a buffer or two to the SPI device.
- *    @param  buffer Pointer to buffer of data to write
- *    @param  len Number of bytes from buffer to write
- *    @param  prefix_buffer Pointer to optional array of data to write before
- * buffer.
- *    @param  prefix_len Number of bytes from prefix buffer to write
- *    @return Always returns true because there's no way to test success of SPI
- * writes
- */
-bool Adafruit_SPIDevice::write(uint8_t *buffer, size_t len,
-                               uint8_t *prefix_buffer, size_t prefix_len) {
-  if (_spi) {
-    _spi->beginTransaction(*_spiSetting);
-  }
-
-  digitalWrite(_cs, LOW);
-  // do the writing
-  for (size_t i = 0; i < prefix_len; i++) {
-    transfer(prefix_buffer[i]);
-  }
-  for (size_t i = 0; i < len; i++) {
-    transfer(buffer[i]);
-  }
-  digitalWrite(_cs, HIGH);
-
-  if (_spi) {
-    _spi->endTransaction();
-  }
-
-#ifdef DEBUG_SERIAL
-  DEBUG_SERIAL.print(F("\tSPIDevice Wrote: "));
-  if ((prefix_len != 0) && (prefix_buffer != NULL)) {
-    for (uint16_t i = 0; i < prefix_len; i++) {
-      DEBUG_SERIAL.print(F("0x"));
-      DEBUG_SERIAL.print(prefix_buffer[i], HEX);
-      DEBUG_SERIAL.print(F(", "));
-    }
-  }
-  for (uint16_t i = 0; i < len; i++) {
-    DEBUG_SERIAL.print(F("0x"));
-    DEBUG_SERIAL.print(buffer[i], HEX);
-    DEBUG_SERIAL.print(F(", "));
-    if (i % 32 == 31) {
-      DEBUG_SERIAL.println();
-    }
-  }
-  DEBUG_SERIAL.println();
-#endif
-
-  return true;
-}
-
-/*!
- *    @brief  Read from SPI into a buffer from the SPI device.
- *    @param  buffer Pointer to buffer of data to read into
- *    @param  len Number of bytes from buffer to read.
- *    @param  sendvalue The 8-bits of data to write when doing the data read,
- * defaults to 0xFF
- *    @return Always returns true because there's no way to test success of SPI
- * writes
- */
-bool Adafruit_SPIDevice::read(uint8_t *buffer, size_t len, uint8_t sendvalue) {
-  memset(buffer, sendvalue, len); // clear out existing buffer
-  if (_spi) {
-    _spi->beginTransaction(*_spiSetting);
-  }
-  digitalWrite(_cs, LOW);
-  transfer(buffer, len);
-  digitalWrite(_cs, HIGH);
-
-  if (_spi) {
-    _spi->endTransaction();
-  }
-
-#ifdef DEBUG_SERIAL
-  DEBUG_SERIAL.print(F("\tSPIDevice Read: "));
-  for (uint16_t i = 0; i < len; i++) {
-    DEBUG_SERIAL.print(F("0x"));
-    DEBUG_SERIAL.print(buffer[i], HEX);
-    DEBUG_SERIAL.print(F(", "));
-    if (len % 32 == 31) {
-      DEBUG_SERIAL.println();
-    }
-  }
-  DEBUG_SERIAL.println();
-#endif
-
-  return true;
-}
-
-/*!
- *    @brief  Write some data, then read some data from SPI into another buffer.
- * The buffers can point to same/overlapping locations. This does not
- * transmit-receive at the same time!
- *    @param  write_buffer Pointer to buffer of data to write from
- *    @param  write_len Number of bytes from buffer to write.
- *    @param  read_buffer Pointer to buffer of data to read into.
- *    @param  read_len Number of bytes from buffer to read.
- *    @param  sendvalue The 8-bits of data to write when doing the data read,
- * defaults to 0xFF
- *    @return Always returns true because there's no way to test success of SPI
- * writes
- */
-bool Adafruit_SPIDevice::write_then_read(uint8_t *write_buffer,
-                                         size_t write_len, uint8_t *read_buffer,
-                                         size_t read_len, uint8_t sendvalue) {
-  if (_spi) {
-    _spi->beginTransaction(*_spiSetting);
-  }
-
-  digitalWrite(_cs, LOW);
-  // do the writing
-  for (size_t i = 0; i < write_len; i++) {
-    transfer(write_buffer[i]);
-  }
-
-#ifdef DEBUG_SERIAL
-  DEBUG_SERIAL.print(F("\tSPIDevice Wrote: "));
-  for (uint16_t i = 0; i < write_len; i++) {
-    DEBUG_SERIAL.print(F("0x"));
-    DEBUG_SERIAL.print(write_buffer[i], HEX);
-    DEBUG_SERIAL.print(F(", "));
-    if (write_len % 32 == 31) {
-      DEBUG_SERIAL.println();
-    }
-  }
-  DEBUG_SERIAL.println();
-#endif
-
-  // do the reading
-  for (size_t i = 0; i < read_len; i++) {
-    read_buffer[i] = transfer(sendvalue);
-  }
-
-#ifdef DEBUG_SERIAL
-  DEBUG_SERIAL.print(F("\tSPIDevice Read: "));
-  for (uint16_t i = 0; i < read_len; i++) {
-    DEBUG_SERIAL.print(F("0x"));
-    DEBUG_SERIAL.print(read_buffer[i], HEX);
-    DEBUG_SERIAL.print(F(", "));
-    if (read_len % 32 == 31) {
-      DEBUG_SERIAL.println();
-    }
-  }
-  DEBUG_SERIAL.println();
-#endif
-
-  digitalWrite(_cs, HIGH);
-
-  if (_spi) {
-    _spi->endTransaction();
-  }
-
-  return true;
-}

+ 0 - 66
SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/Adafruit_SPIDevice.h

@@ -1,66 +0,0 @@
-#include <SPI.h>
-
-#ifndef Adafruit_SPIDevice_h
-#define Adafruit_SPIDevice_h
-
-// some modern SPI definitions don't have BitOrder enum
-#if (defined(__AVR__) && !defined(ARDUINO_ARCH_MEGAAVR)) ||                    \
-    defined(ESP8266) || defined(TEENSYDUINO) ||                                \
-    defined(ARDUINO_ARCH_SPRESENSE) || defined(ARDUINO_attinyxy7) ||           \
-    defined(ARDUINO_attinyxy6) || defined(ARDUINO_attinyxy4) ||                \
-    defined(ARDUINO_attinyxy2)
-typedef enum _BitOrder {
-  SPI_BITORDER_MSBFIRST = MSBFIRST,
-  SPI_BITORDER_LSBFIRST = LSBFIRST,
-} BitOrder;
-
-#elif defined(ESP32)
-
-// some modern SPI definitions don't have BitOrder enum and have different SPI
-// mode defines
-typedef enum _BitOrder {
-  SPI_BITORDER_MSBFIRST = SPI_MSBFIRST,
-  SPI_BITORDER_LSBFIRST = SPI_LSBFIRST,
-} BitOrder;
-
-#else
-// Some platforms have a BitOrder enum but its named MSBFIRST/LSBFIRST
-#define SPI_BITORDER_MSBFIRST MSBFIRST
-#define SPI_BITORDER_LSBFIRST LSBFIRST
-#endif
-
-/**! The class which defines how we will talk to this device over SPI **/
-class Adafruit_SPIDevice {
-public:
-  Adafruit_SPIDevice(int8_t cspin, uint32_t freq = 1000000,
-                     BitOrder dataOrder = SPI_BITORDER_MSBFIRST,
-                     uint8_t dataMode = SPI_MODE0, SPIClass *theSPI = &SPI);
-
-  Adafruit_SPIDevice(int8_t cspin, int8_t sck, int8_t miso, int8_t mosi,
-                     uint32_t freq = 1000000,
-                     BitOrder dataOrder = SPI_BITORDER_MSBFIRST,
-                     uint8_t dataMode = SPI_MODE0);
-
-  bool begin(void);
-  bool read(uint8_t *buffer, size_t len, uint8_t sendvalue = 0xFF);
-  bool write(uint8_t *buffer, size_t len, uint8_t *prefix_buffer = NULL,
-             size_t prefix_len = 0);
-  bool write_then_read(uint8_t *write_buffer, size_t write_len,
-                       uint8_t *read_buffer, size_t read_len,
-                       uint8_t sendvalue = 0xFF);
-
-  uint8_t transfer(uint8_t send);
-  void transfer(uint8_t *buffer, size_t len);
-
-private:
-  SPIClass *_spi;
-  SPISettings *_spiSetting;
-  uint32_t _freq;
-  BitOrder _dataOrder;
-  uint8_t _dataMode;
-
-  int8_t _cs, _sck, _mosi, _miso;
-  bool _begun;
-};
-
-#endif // Adafruit_SPIDevice_h

+ 0 - 21
SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/LICENSE

@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2017 Adafruit Industries
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.

+ 0 - 8
SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/README.md

@@ -1,8 +0,0 @@
-# Adafruit Bus IO Library [![Build Status](https://github.com/adafruit/Adafruit_BusIO/workflows/Arduino%20Library%20CI/badge.svg)](https://github.com/adafruit/Adafruit_BusIO/actions)
-
-
-This is a helper libary to abstract away I2C & SPI transactions and registers 
-
-Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit!
-
-MIT license, all text above must be included in any redistribution

+ 0 - 21
SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/examples/i2c_address_detect/i2c_address_detect.ino

@@ -1,21 +0,0 @@
-#include <Adafruit_I2CDevice.h>
-
-Adafruit_I2CDevice i2c_dev = Adafruit_I2CDevice(0x10);
-
-void setup() {
-  while (!Serial) { delay(10); }
-  Serial.begin(115200);
-  Serial.println("I2C address detection test");
-
-  if (!i2c_dev.begin()) {
-    Serial.print("Did not find device at 0x");
-    Serial.println(i2c_dev.address(), HEX);
-    while (1);
-  }
-  Serial.print("Device found on address 0x");
-  Serial.println(i2c_dev.address(), HEX);
-}
-
-void loop() {
-  
-}

+ 0 - 41
SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/examples/i2c_readwrite/i2c_readwrite.ino

@@ -1,41 +0,0 @@
-#include <Adafruit_I2CDevice.h>
-
-#define I2C_ADDRESS 0x60
-Adafruit_I2CDevice i2c_dev = Adafruit_I2CDevice(I2C_ADDRESS);
-
-
-void setup() {
-  while (!Serial) { delay(10); }
-  Serial.begin(115200);
-  Serial.println("I2C device read and write test");
-
-  if (!i2c_dev.begin()) {
-    Serial.print("Did not find device at 0x");
-    Serial.println(i2c_dev.address(), HEX);
-    while (1);
-  }
-  Serial.print("Device found on address 0x");
-  Serial.println(i2c_dev.address(), HEX);
-
-  uint8_t buffer[32];
-  // Try to read 32 bytes
-  i2c_dev.read(buffer, 32);
-  Serial.print("Read: ");
-  for (uint8_t i=0; i<32; i++) {
-    Serial.print("0x"); Serial.print(buffer[i], HEX); Serial.print(", ");
-  }
-  Serial.println();
-
-  // read a register by writing first, then reading
-  buffer[0] = 0x0C;  // we'll reuse the same buffer
-  i2c_dev.write_then_read(buffer, 1, buffer, 2, false);
-  Serial.print("Write then Read: ");
-  for (uint8_t i=0; i<2; i++) {
-    Serial.print("0x"); Serial.print(buffer[i], HEX); Serial.print(", ");
-  }
-  Serial.println();
-}
-
-void loop() {
-  
-}

+ 0 - 38
SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/examples/i2c_registers/i2c_registers.ino

@@ -1,38 +0,0 @@
-#include <Adafruit_I2CDevice.h>
-#include <Adafruit_BusIO_Register.h>
-
-#define I2C_ADDRESS 0x60
-Adafruit_I2CDevice i2c_dev = Adafruit_I2CDevice(I2C_ADDRESS);
-
-
-void setup() {
-  while (!Serial) { delay(10); }
-  Serial.begin(115200);
-  Serial.println("I2C device register test");
-
-  if (!i2c_dev.begin()) {
-    Serial.print("Did not find device at 0x");
-    Serial.println(i2c_dev.address(), HEX);
-    while (1);
-  }
-  Serial.print("Device found on address 0x");
-  Serial.println(i2c_dev.address(), HEX);
-
-  Adafruit_BusIO_Register id_reg = Adafruit_BusIO_Register(&i2c_dev, 0x0C, 2, LSBFIRST);
-  uint16_t id;
-  id_reg.read(&id);
-  Serial.print("ID register = 0x"); Serial.println(id, HEX);
-
-  Adafruit_BusIO_Register thresh_reg = Adafruit_BusIO_Register(&i2c_dev, 0x01, 2, LSBFIRST);
-  uint16_t thresh;
-  thresh_reg.read(&thresh);
-  Serial.print("Initial threshold register = 0x"); Serial.println(thresh, HEX);
-
-  thresh_reg.write(~thresh);
-
-  Serial.print("Post threshold register = 0x"); Serial.println(thresh_reg.read(), HEX);
-}
-
-void loop() {
-  
-}

+ 0 - 38
SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/examples/i2corspi_register/i2corspi_register.ino

@@ -1,38 +0,0 @@
-#include <Adafruit_BusIO_Register.h>
-
-// Define which interface to use by setting the unused interface to NULL!
-
-#define SPIDEVICE_CS 10
-Adafruit_SPIDevice *spi_dev = NULL; // new Adafruit_SPIDevice(SPIDEVICE_CS);
-
-#define I2C_ADDRESS 0x5D
-Adafruit_I2CDevice *i2c_dev = new Adafruit_I2CDevice(I2C_ADDRESS);
-
-void setup() {
-  while (!Serial) { delay(10); }
-  Serial.begin(115200);
-  Serial.println("I2C or SPI device register test");
-
-  if (spi_dev && !spi_dev->begin()) {
-    Serial.println("Could not initialize SPI device");
-  }
-
-  if (i2c_dev) {
-    if (i2c_dev->begin()) {
-      Serial.print("Device found on I2C address 0x");
-      Serial.println(i2c_dev->address(), HEX);
-    } else {
-      Serial.print("Did not find I2C device at 0x");
-      Serial.println(i2c_dev->address(), HEX);
-    }
-  }
-
-  Adafruit_BusIO_Register id_reg = Adafruit_BusIO_Register(i2c_dev, spi_dev, ADDRBIT8_HIGH_TOREAD, 0x0F);
-  uint8_t id;
-  id_reg.read(&id);
-  Serial.print("ID register = 0x"); Serial.println(id, HEX);
-}
-
-void loop() {
-  
-}

+ 0 - 29
SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/examples/spi_modetest/spi_modetest.ino

@@ -1,29 +0,0 @@
-#include <Adafruit_SPIDevice.h>
-
-#define SPIDEVICE_CS 10
-Adafruit_SPIDevice spi_dev = Adafruit_SPIDevice(SPIDEVICE_CS, 100000, SPI_BITORDER_MSBFIRST, SPI_MODE1);
-//Adafruit_SPIDevice spi_dev = Adafruit_SPIDevice(SPIDEVICE_CS, 13, 12, 11, 100000, SPI_BITORDER_MSBFIRST, SPI_MODE1);
-
-
-void setup() {
-  while (!Serial) { delay(10); }
-  Serial.begin(115200);
-  Serial.println("SPI device mode test");
-
-  if (!spi_dev.begin()) {
-    Serial.println("Could not initialize SPI device");
-    while (1);
-  }
-}
-
-void loop() {
-  Serial.println("\n\nTransfer test");
-  for (uint16_t x=0; x<=0xFF; x++) {
-    uint8_t i = x;   
-    Serial.print("0x"); Serial.print(i, HEX); 
-    spi_dev.read(&i, 1, i);
-    Serial.print("/"); Serial.print(i, HEX);
-    Serial.print(", ");
-    delay(25);
-  }
-}

+ 0 - 39
SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/examples/spi_readwrite/spi_readwrite.ino

@@ -1,39 +0,0 @@
-#include <Adafruit_SPIDevice.h>
-
-#define SPIDEVICE_CS 10
-Adafruit_SPIDevice spi_dev = Adafruit_SPIDevice(SPIDEVICE_CS);
-
-
-void setup() {
-  while (!Serial) { delay(10); }
-  Serial.begin(115200);
-  Serial.println("SPI device read and write test");
-
-  if (!spi_dev.begin()) {
-    Serial.println("Could not initialize SPI device");
-    while (1);
-  }
-
-  uint8_t buffer[32];
-
-  // Try to read 32 bytes
-  spi_dev.read(buffer, 32);
-  Serial.print("Read: ");
-  for (uint8_t i=0; i<32; i++) {
-    Serial.print("0x"); Serial.print(buffer[i], HEX); Serial.print(", ");
-  }
-  Serial.println();
-
-  // read a register by writing first, then reading
-  buffer[0] = 0x8F;  // we'll reuse the same buffer
-  spi_dev.write_then_read(buffer, 1, buffer, 2, false);
-  Serial.print("Write then Read: ");
-  for (uint8_t i=0; i<2; i++) {
-    Serial.print("0x"); Serial.print(buffer[i], HEX); Serial.print(", ");
-  }
-  Serial.println();
-}
-
-void loop() {
-  
-}

+ 0 - 192
SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/examples/spi_register_bits/spi_register_bits.ino

@@ -1,192 +0,0 @@
-/*************************************************** 
-
-  This is an example for how to use Adafruit_BusIO_RegisterBits from Adafruit_BusIO library.
-
-  Designed specifically to work with the Adafruit RTD Sensor
-  ----> https://www.adafruit.com/products/3328
-  uisng a MAX31865 RTD-to-Digital Converter
-  ----> https://datasheets.maximintegrated.com/en/ds/MAX31865.pdf
-
-  This sensor uses SPI to communicate, 4 pins are required to  
-  interface.
-  A fifth pin helps to detect when a new conversion is ready.
-
-  Adafruit invests time and resources providing this open source code, 
-  please support Adafruit and open-source hardware by purchasing 
-  products from Adafruit!
-
-  Example written (2020/3) by Andreas Hardtung/AnHard.  
-  BSD license, all text above must be included in any redistribution
- ****************************************************/
-
-#include <Adafruit_BusIO_Register.h>
-#include <Adafruit_SPIDevice.h>
-
-#define MAX31865_SPI_SPEED    (5000000)
-#define MAX31865_SPI_BITORDER (SPI_BITORDER_MSBFIRST)
-#define MAX31865_SPI_MODE     (SPI_MODE1)
-
-#define MAX31865_SPI_CS       (10)
-#define MAX31865_READY_PIN    (2)
-
-
-Adafruit_SPIDevice spi_dev = Adafruit_SPIDevice( MAX31865_SPI_CS, MAX31865_SPI_SPEED, MAX31865_SPI_BITORDER, MAX31865_SPI_MODE, &SPI); // Hardware SPI
-// Adafruit_SPIDevice spi_dev = Adafruit_SPIDevice( MAX31865_SPI_CS, 13, 12, 11, MAX31865_SPI_SPEED, MAX31865_SPI_BITORDER, MAX31865_SPI_MODE); // Software SPI
-
-// MAX31865 chip related *********************************************************************************************
-Adafruit_BusIO_Register     config_reg  = Adafruit_BusIO_Register(&spi_dev, 0x00, ADDRBIT8_HIGH_TOWRITE, 1, MSBFIRST);
-Adafruit_BusIO_RegisterBits   bias_bit  = Adafruit_BusIO_RegisterBits(&config_reg, 1, 7);
-Adafruit_BusIO_RegisterBits   auto_bit  = Adafruit_BusIO_RegisterBits(&config_reg, 1, 6);
-Adafruit_BusIO_RegisterBits   oneS_bit  = Adafruit_BusIO_RegisterBits(&config_reg, 1, 5);
-Adafruit_BusIO_RegisterBits   wire_bit  = Adafruit_BusIO_RegisterBits(&config_reg, 1, 4);
-Adafruit_BusIO_RegisterBits faultT_bits = Adafruit_BusIO_RegisterBits(&config_reg, 2, 2);
-Adafruit_BusIO_RegisterBits faultR_bit  = Adafruit_BusIO_RegisterBits(&config_reg, 1, 1);
-Adafruit_BusIO_RegisterBits fi50hz_bit  = Adafruit_BusIO_RegisterBits(&config_reg, 1, 0);
-
-Adafruit_BusIO_Register     rRatio_reg  = Adafruit_BusIO_Register(&spi_dev, 0x01, ADDRBIT8_HIGH_TOWRITE, 2, MSBFIRST);
-Adafruit_BusIO_RegisterBits rRatio_bits = Adafruit_BusIO_RegisterBits(&rRatio_reg, 15, 1);
-Adafruit_BusIO_RegisterBits  fault_bit  = Adafruit_BusIO_RegisterBits(&rRatio_reg,  1, 0);
-
-Adafruit_BusIO_Register      maxRratio_reg = Adafruit_BusIO_Register(&spi_dev, 0x03, ADDRBIT8_HIGH_TOWRITE, 2, MSBFIRST);
-Adafruit_BusIO_RegisterBits maxRratio_bits = Adafruit_BusIO_RegisterBits(&maxRratio_reg, 15, 1);
-
-Adafruit_BusIO_Register      minRratio_reg = Adafruit_BusIO_Register(&spi_dev, 0x05, ADDRBIT8_HIGH_TOWRITE, 2, MSBFIRST);
-Adafruit_BusIO_RegisterBits minRratio_bits = Adafruit_BusIO_RegisterBits(&minRratio_reg, 15, 1);
-
-Adafruit_BusIO_Register                fault_reg = Adafruit_BusIO_Register(&spi_dev, 0x07, ADDRBIT8_HIGH_TOWRITE, 1, MSBFIRST);
-Adafruit_BusIO_RegisterBits range_high_fault_bit = Adafruit_BusIO_RegisterBits(&fault_reg, 1, 7);
-Adafruit_BusIO_RegisterBits  range_low_fault_bit = Adafruit_BusIO_RegisterBits(&fault_reg, 1, 6);
-Adafruit_BusIO_RegisterBits refin_high_fault_bit = Adafruit_BusIO_RegisterBits(&fault_reg, 1, 5);
-Adafruit_BusIO_RegisterBits  refin_low_fault_bit = Adafruit_BusIO_RegisterBits(&fault_reg, 1, 4);
-Adafruit_BusIO_RegisterBits  rtdin_low_fault_bit = Adafruit_BusIO_RegisterBits(&fault_reg, 1, 3);
-Adafruit_BusIO_RegisterBits    voltage_fault_bit = Adafruit_BusIO_RegisterBits(&fault_reg, 1, 2);
-
-// Print the details of the configuration register.
-void printConfig( void ) {
-  Serial.print("BIAS: ");         if (bias_bit.read() )   Serial.print("ON");   else Serial.print("OFF");
-  Serial.print(", AUTO: ");       if (auto_bit.read() )   Serial.print("ON");   else Serial.print("OFF");
-  Serial.print(", ONES: ");       if (oneS_bit.read() )   Serial.print("ON");   else Serial.print("OFF");
-  Serial.print(", WIRE: ");       if (wire_bit.read() )   Serial.print("3");    else Serial.print("2/4");
-  Serial.print(", FAULTCLEAR: "); if (faultR_bit.read() ) Serial.print("ON");   else Serial.print("OFF");
-  Serial.print(", ");             if (fi50hz_bit.read() ) Serial.print("50HZ"); else Serial.print("60HZ");
-  Serial.println();
-}
-
-// Check and print faults. Then clear them.
-void checkFaults( void ) {
-  if (fault_bit.read()) {
-    Serial.print("MAX: "); Serial.println(maxRratio_bits.read());
-    Serial.print("VAL: "); Serial.println(   rRatio_bits.read());
-    Serial.print("MIN: "); Serial.println(minRratio_bits.read());
-
-    if (range_high_fault_bit.read() ) Serial.println("Range high fault");
-    if ( range_low_fault_bit.read() ) Serial.println("Range low fault");
-    if (refin_high_fault_bit.read() ) Serial.println("REFIN high fault");
-    if ( refin_low_fault_bit.read() ) Serial.println("REFIN low fault");
-    if ( rtdin_low_fault_bit.read() ) Serial.println("RTDIN low fault");
-    if (   voltage_fault_bit.read() ) Serial.println("Voltage fault");
-
-    faultR_bit.write(1); // clear fault
-  }
-}
-
-void setup() {
-  #if (MAX31865_1_READY_PIN != -1)
-    pinMode(MAX31865_READY_PIN ,INPUT_PULLUP);
-  #endif
-
-  while (!Serial) { delay(10); }
-  Serial.begin(115200);
-  Serial.println("SPI Adafruit_BusIO_RegisterBits test on MAX31865");
-
-  if (!spi_dev.begin()) {
-    Serial.println("Could not initialize SPI device");
-    while (1);
-  }
-
-  // Set up for automode 50Hz. We don't care about selfheating. We want the highest possible sampling rate.
-  auto_bit.write(0);   // Don't switch filtermode while auto_mode is on.
-  fi50hz_bit.write(1); // Set filter to 50Hz mode.
-  faultR_bit.write(1); // Clear faults.
-  bias_bit.write(1);   // In automode we want to have the bias current always on.
-  delay(5);            // Wait until bias current settles down.
-                       // 10.5 time constants of the input RC network is required.
-                       // 10ms worst case for 10kω reference resistor and a 0.1µF capacitor across the RTD inputs.
-                       // Adafruit Module has 0.1µF and only 430/4300ω So here 0.43/4.3ms
-  auto_bit.write(1);   // Now we can set automode. Automatically starting first conversion.
-
-  // Test the READY_PIN
-  #if (defined( MAX31865_READY_PIN ) && (MAX31865_READY_PIN != -1))
-    int i = 0;
-    while (digitalRead(MAX31865_READY_PIN) && i++ <= 100) { delay(1); }
-    if (i >= 100) {
-      Serial.print("ERROR: Max31865 Pin detection does not work. PIN:");
-      Serial.println(MAX31865_READY_PIN);
-    }
-  #else
-    delay(100);
-  #endif
-
-  // Set ratio range.
-  // Setting the temperatures would need some more calculation - not related to Adafruit_BusIO_RegisterBits.
-  uint16_t ratio = rRatio_bits.read();
-  maxRratio_bits.write( (ratio < 0x8fffu-1000u) ? ratio + 1000u : 0x8fffu ); 
-  minRratio_bits.write( (ratio >         1000u) ? ratio - 1000u : 0u      );
-
-  printConfig();
-  checkFaults();
-}
-
-void loop() {
-  #if (defined( MAX31865_READY_PIN ) && (MAX31865_1_READY_PIN != -1))
-    // Is converstion ready?
-    if (!digitalRead(MAX31865_READY_PIN))
-  #else
-    // Warant conversion is ready.
-    delay(21); // 21ms for 50Hz-mode. 19ms in 60Hz-mode.
-  #endif
-    {
-      // Read ratio, calculate temperature, scale, filter and print.
-      Serial.println( rRatio2C( rRatio_bits.read() ) * 100.0f, 0); // Temperature scaled by 100
-      // Check, print, clear faults.
-      checkFaults();
-    }
-
-  // Do something else.
-  //delay(15000);
-}
-
-
-// Module/Sensor related. Here Adafruit PT100 module with a 2_Wire PT100 Class C *****************************
-float rRatio2C(uint16_t ratio) {
-  // A simple linear conversion.
-  const float R0 = 100.0f;
-  const float Rref = 430.0f;
-  const float alphaPT = 0.003850f;
-  const float ADCmax = (1u << 15) - 1.0f;
-  const float rscale = Rref / ADCmax;
-  // Measured temperature in boiling water 101.08°C with factor a = 1 and b = 0. Rref and MAX at about 22±2°C.
-  // Measured temperature in ice/water bath 0.76°C with factor a = 1 and b = 0. Rref and MAX at about 22±2°C.
-  //const float a = 1.0f / (alphaPT * R0);
-  const float a = (100.0f/101.08f) / (alphaPT * R0);
-  //const float b = 0.0f;  // 101.08
-  const float b = -0.76f;  // 100.32 > 101.08
-
-  return filterRing( ((ratio * rscale) - R0) * a + b );
-}
-
-// General purpose *********************************************************************************************
-#define RINGLENGTH 250
-float filterRing( float newVal ) {
-  static float ring[RINGLENGTH] = { 0.0 };
-  static uint8_t ringIndex = 0;
-  static bool ringFull = false;
-
-  if ( ringIndex == RINGLENGTH ) { ringFull = true; ringIndex = 0; }
-  ring[ringIndex] = newVal;
-  uint8_t loopEnd = (ringFull) ? RINGLENGTH : ringIndex + 1;
-  float ringSum = 0.0f;
-  for (uint8_t i = 0;  i < loopEnd; i++) ringSum += ring[i];
-  ringIndex++;
-  return ringSum / loopEnd;
-}

+ 0 - 34
SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/examples/spi_registers/spi_registers.ino

@@ -1,34 +0,0 @@
-#include <Adafruit_BusIO_Register.h>
-#include <Adafruit_SPIDevice.h>
-
-#define SPIDEVICE_CS 10
-Adafruit_SPIDevice spi_dev = Adafruit_SPIDevice(SPIDEVICE_CS);
-
-void setup() {
-  while (!Serial) { delay(10); }
-  Serial.begin(115200);
-  Serial.println("SPI device register test");
-
-  if (!spi_dev.begin()) {
-    Serial.println("Could not initialize SPI device");
-    while (1);
-  }
-
-  Adafruit_BusIO_Register id_reg = Adafruit_BusIO_Register(&spi_dev, 0x0F, ADDRBIT8_HIGH_TOREAD);
-  uint8_t id;
-  id_reg.read(&id);
-  Serial.print("ID register = 0x"); Serial.println(id, HEX);
-
-  Adafruit_BusIO_Register thresh_reg = Adafruit_BusIO_Register(&spi_dev, 0x0C, ADDRBIT8_HIGH_TOREAD, 2, LSBFIRST);
-  uint16_t thresh;
-  thresh_reg.read(&thresh);
-  Serial.print("Initial threshold register = 0x"); Serial.println(thresh, HEX);
-
-  thresh_reg.write(~thresh);
-
-  Serial.print("Post threshold register = 0x"); Serial.println(thresh_reg.read(), HEX);
-}
-
-void loop() {
-  
-}

+ 0 - 9
SE/stuff/P5_Automation-library-dev/Adafruit_BusIO/library.properties

@@ -1,9 +0,0 @@
-name=Adafruit BusIO
-version=1.3.2
-author=Adafruit
-maintainer=Adafruit <info@adafruit.com>
-sentence=This is a library for abstracting away UART, I2C and SPI interfacing
-paragraph=This is a library for abstracting away UART, I2C and SPI interfacing
-category=Signal Input/Output
-url=https://github.com/adafruit/Adafruit_BusIO
-architectures=*

+ 0 - 2187
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Adafruit_GFX.cpp

@@ -1,2187 +0,0 @@
-/*
-This is the core graphics library for all our displays, providing a common
-set of graphics primitives (points, lines, circles, etc.).  It needs to be
-paired with a hardware-specific library for each display device we carry
-(to handle the lower-level functions).
-
-Adafruit invests time and resources providing this open source code, please
-support Adafruit & open-source hardware by purchasing products from Adafruit!
-
-Copyright (c) 2013 Adafruit Industries.  All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-- Redistributions of source code must retain the above copyright notice,
-  this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "Adafruit_GFX.h"
-#include "glcdfont.c"
-#ifdef __AVR__
-#include <avr/pgmspace.h>
-#elif defined(ESP8266) || defined(ESP32)
-#include <pgmspace.h>
-#endif
-
-// Many (but maybe not all) non-AVR board installs define macros
-// for compatibility with existing PROGMEM-reading AVR code.
-// Do our own checks and defines here for good measure...
-
-#ifndef pgm_read_byte
-#define pgm_read_byte(addr) (*(const unsigned char *)(addr))
-#endif
-#ifndef pgm_read_word
-#define pgm_read_word(addr) (*(const unsigned short *)(addr))
-#endif
-#ifndef pgm_read_dword
-#define pgm_read_dword(addr) (*(const unsigned long *)(addr))
-#endif
-
-// Pointers are a peculiar case...typically 16-bit on AVR boards,
-// 32 bits elsewhere.  Try to accommodate both...
-
-#if !defined(__INT_MAX__) || (__INT_MAX__ > 0xFFFF)
-#define pgm_read_pointer(addr) ((void *)pgm_read_dword(addr))
-#else
-#define pgm_read_pointer(addr) ((void *)pgm_read_word(addr))
-#endif
-
-inline GFXglyph *pgm_read_glyph_ptr(const GFXfont *gfxFont, uint8_t c) {
-#ifdef __AVR__
-  return &(((GFXglyph *)pgm_read_pointer(&gfxFont->glyph))[c]);
-#else
-  // expression in __AVR__ section may generate "dereferencing type-punned
-  // pointer will break strict-aliasing rules" warning In fact, on other
-  // platforms (such as STM32) there is no need to do this pointer magic as
-  // program memory may be read in a usual way So expression may be simplified
-  return gfxFont->glyph + c;
-#endif //__AVR__
-}
-
-inline uint8_t *pgm_read_bitmap_ptr(const GFXfont *gfxFont) {
-#ifdef __AVR__
-  return (uint8_t *)pgm_read_pointer(&gfxFont->bitmap);
-#else
-  // expression in __AVR__ section generates "dereferencing type-punned pointer
-  // will break strict-aliasing rules" warning In fact, on other platforms (such
-  // as STM32) there is no need to do this pointer magic as program memory may
-  // be read in a usual way So expression may be simplified
-  return gfxFont->bitmap;
-#endif //__AVR__
-}
-
-#ifndef min
-#define min(a, b) (((a) < (b)) ? (a) : (b))
-#endif
-
-#ifndef _swap_int16_t
-#define _swap_int16_t(a, b)                                                    \
-  {                                                                            \
-    int16_t t = a;                                                             \
-    a = b;                                                                     \
-    b = t;                                                                     \
-  }
-#endif
-
-/**************************************************************************/
-/*!
-   @brief    Instatiate a GFX context for graphics! Can only be done by a
-   superclass
-   @param    w   Display width, in pixels
-   @param    h   Display height, in pixels
-*/
-/**************************************************************************/
-Adafruit_GFX::Adafruit_GFX(int16_t w, int16_t h) : WIDTH(w), HEIGHT(h) {
-  _width = WIDTH;
-  _height = HEIGHT;
-  rotation = 0;
-  cursor_y = cursor_x = 0;
-  textsize_x = textsize_y = 1;
-  textcolor = textbgcolor = 0xFFFF;
-  wrap = true;
-  _cp437 = false;
-  gfxFont = NULL;
-}
-
-/**************************************************************************/
-/*!
-   @brief    Write a line.  Bresenham's algorithm - thx wikpedia
-    @param    x0  Start point x coordinate
-    @param    y0  Start point y coordinate
-    @param    x1  End point x coordinate
-    @param    y1  End point y coordinate
-    @param    color 16-bit 5-6-5 Color to draw with
-*/
-/**************************************************************************/
-void Adafruit_GFX::writeLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1,
-                             uint16_t color) {
-#if defined(ESP8266)
-  yield();
-#endif
-  int16_t steep = abs(y1 - y0) > abs(x1 - x0);
-  if (steep) {
-    _swap_int16_t(x0, y0);
-    _swap_int16_t(x1, y1);
-  }
-
-  if (x0 > x1) {
-    _swap_int16_t(x0, x1);
-    _swap_int16_t(y0, y1);
-  }
-
-  int16_t dx, dy;
-  dx = x1 - x0;
-  dy = abs(y1 - y0);
-
-  int16_t err = dx / 2;
-  int16_t ystep;
-
-  if (y0 < y1) {
-    ystep = 1;
-  } else {
-    ystep = -1;
-  }
-
-  for (; x0 <= x1; x0++) {
-    if (steep) {
-      writePixel(y0, x0, color);
-    } else {
-      writePixel(x0, y0, color);
-    }
-    err -= dy;
-    if (err < 0) {
-      y0 += ystep;
-      err += dx;
-    }
-  }
-}
-
-/**************************************************************************/
-/*!
-   @brief    Start a display-writing routine, overwrite in subclasses.
-*/
-/**************************************************************************/
-void Adafruit_GFX::startWrite() {}
-
-/**************************************************************************/
-/*!
-   @brief    Write a pixel, overwrite in subclasses if startWrite is defined!
-    @param   x   x coordinate
-    @param   y   y coordinate
-   @param    color 16-bit 5-6-5 Color to fill with
-*/
-/**************************************************************************/
-void Adafruit_GFX::writePixel(int16_t x, int16_t y, uint16_t color) {
-  drawPixel(x, y, color);
-}
-
-/**************************************************************************/
-/*!
-   @brief    Write a perfectly vertical line, overwrite in subclasses if
-   startWrite is defined!
-    @param    x   Top-most x coordinate
-    @param    y   Top-most y coordinate
-    @param    h   Height in pixels
-   @param    color 16-bit 5-6-5 Color to fill with
-*/
-/**************************************************************************/
-void Adafruit_GFX::writeFastVLine(int16_t x, int16_t y, int16_t h,
-                                  uint16_t color) {
-  // Overwrite in subclasses if startWrite is defined!
-  // Can be just writeLine(x, y, x, y+h-1, color);
-  // or writeFillRect(x, y, 1, h, color);
-  drawFastVLine(x, y, h, color);
-}
-
-/**************************************************************************/
-/*!
-   @brief    Write a perfectly horizontal line, overwrite in subclasses if
-   startWrite is defined!
-    @param    x   Left-most x coordinate
-    @param    y   Left-most y coordinate
-    @param    w   Width in pixels
-   @param    color 16-bit 5-6-5 Color to fill with
-*/
-/**************************************************************************/
-void Adafruit_GFX::writeFastHLine(int16_t x, int16_t y, int16_t w,
-                                  uint16_t color) {
-  // Overwrite in subclasses if startWrite is defined!
-  // Example: writeLine(x, y, x+w-1, y, color);
-  // or writeFillRect(x, y, w, 1, color);
-  drawFastHLine(x, y, w, color);
-}
-
-/**************************************************************************/
-/*!
-   @brief    Write a rectangle completely with one color, overwrite in
-   subclasses if startWrite is defined!
-    @param    x   Top left corner x coordinate
-    @param    y   Top left corner y coordinate
-    @param    w   Width in pixels
-    @param    h   Height in pixels
-   @param    color 16-bit 5-6-5 Color to fill with
-*/
-/**************************************************************************/
-void Adafruit_GFX::writeFillRect(int16_t x, int16_t y, int16_t w, int16_t h,
-                                 uint16_t color) {
-  // Overwrite in subclasses if desired!
-  fillRect(x, y, w, h, color);
-}
-
-/**************************************************************************/
-/*!
-   @brief    End a display-writing routine, overwrite in subclasses if
-   startWrite is defined!
-*/
-/**************************************************************************/
-void Adafruit_GFX::endWrite() {}
-
-/**************************************************************************/
-/*!
-   @brief    Draw a perfectly vertical line (this is often optimized in a
-   subclass!)
-    @param    x   Top-most x coordinate
-    @param    y   Top-most y coordinate
-    @param    h   Height in pixels
-   @param    color 16-bit 5-6-5 Color to fill with
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawFastVLine(int16_t x, int16_t y, int16_t h,
-                                 uint16_t color) {
-  startWrite();
-  writeLine(x, y, x, y + h - 1, color);
-  endWrite();
-}
-
-/**************************************************************************/
-/*!
-   @brief    Draw a perfectly horizontal line (this is often optimized in a
-   subclass!)
-    @param    x   Left-most x coordinate
-    @param    y   Left-most y coordinate
-    @param    w   Width in pixels
-   @param    color 16-bit 5-6-5 Color to fill with
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawFastHLine(int16_t x, int16_t y, int16_t w,
-                                 uint16_t color) {
-  startWrite();
-  writeLine(x, y, x + w - 1, y, color);
-  endWrite();
-}
-
-/**************************************************************************/
-/*!
-   @brief    Fill a rectangle completely with one color. Update in subclasses if
-   desired!
-    @param    x   Top left corner x coordinate
-    @param    y   Top left corner y coordinate
-    @param    w   Width in pixels
-    @param    h   Height in pixels
-   @param    color 16-bit 5-6-5 Color to fill with
-*/
-/**************************************************************************/
-void Adafruit_GFX::fillRect(int16_t x, int16_t y, int16_t w, int16_t h,
-                            uint16_t color) {
-  startWrite();
-  for (int16_t i = x; i < x + w; i++) {
-    writeFastVLine(i, y, h, color);
-  }
-  endWrite();
-}
-
-/**************************************************************************/
-/*!
-   @brief    Fill the screen completely with one color. Update in subclasses if
-   desired!
-    @param    color 16-bit 5-6-5 Color to fill with
-*/
-/**************************************************************************/
-void Adafruit_GFX::fillScreen(uint16_t color) {
-  fillRect(0, 0, _width, _height, color);
-}
-
-/**************************************************************************/
-/*!
-   @brief    Draw a line
-    @param    x0  Start point x coordinate
-    @param    y0  Start point y coordinate
-    @param    x1  End point x coordinate
-    @param    y1  End point y coordinate
-    @param    color 16-bit 5-6-5 Color to draw with
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1,
-                            uint16_t color) {
-  // Update in subclasses if desired!
-  if (x0 == x1) {
-    if (y0 > y1)
-      _swap_int16_t(y0, y1);
-    drawFastVLine(x0, y0, y1 - y0 + 1, color);
-  } else if (y0 == y1) {
-    if (x0 > x1)
-      _swap_int16_t(x0, x1);
-    drawFastHLine(x0, y0, x1 - x0 + 1, color);
-  } else {
-    startWrite();
-    writeLine(x0, y0, x1, y1, color);
-    endWrite();
-  }
-}
-
-/**************************************************************************/
-/*!
-   @brief    Draw a circle outline
-    @param    x0   Center-point x coordinate
-    @param    y0   Center-point y coordinate
-    @param    r   Radius of circle
-    @param    color 16-bit 5-6-5 Color to draw with
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawCircle(int16_t x0, int16_t y0, int16_t r,
-                              uint16_t color) {
-#if defined(ESP8266)
-  yield();
-#endif
-  int16_t f = 1 - r;
-  int16_t ddF_x = 1;
-  int16_t ddF_y = -2 * r;
-  int16_t x = 0;
-  int16_t y = r;
-
-  startWrite();
-  writePixel(x0, y0 + r, color);
-  writePixel(x0, y0 - r, color);
-  writePixel(x0 + r, y0, color);
-  writePixel(x0 - r, y0, color);
-
-  while (x < y) {
-    if (f >= 0) {
-      y--;
-      ddF_y += 2;
-      f += ddF_y;
-    }
-    x++;
-    ddF_x += 2;
-    f += ddF_x;
-
-    writePixel(x0 + x, y0 + y, color);
-    writePixel(x0 - x, y0 + y, color);
-    writePixel(x0 + x, y0 - y, color);
-    writePixel(x0 - x, y0 - y, color);
-    writePixel(x0 + y, y0 + x, color);
-    writePixel(x0 - y, y0 + x, color);
-    writePixel(x0 + y, y0 - x, color);
-    writePixel(x0 - y, y0 - x, color);
-  }
-  endWrite();
-}
-
-/**************************************************************************/
-/*!
-    @brief    Quarter-circle drawer, used to do circles and roundrects
-    @param    x0   Center-point x coordinate
-    @param    y0   Center-point y coordinate
-    @param    r   Radius of circle
-    @param    cornername  Mask bit #1 or bit #2 to indicate which quarters of
-   the circle we're doing
-    @param    color 16-bit 5-6-5 Color to draw with
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawCircleHelper(int16_t x0, int16_t y0, int16_t r,
-                                    uint8_t cornername, uint16_t color) {
-  int16_t f = 1 - r;
-  int16_t ddF_x = 1;
-  int16_t ddF_y = -2 * r;
-  int16_t x = 0;
-  int16_t y = r;
-
-  while (x < y) {
-    if (f >= 0) {
-      y--;
-      ddF_y += 2;
-      f += ddF_y;
-    }
-    x++;
-    ddF_x += 2;
-    f += ddF_x;
-    if (cornername & 0x4) {
-      writePixel(x0 + x, y0 + y, color);
-      writePixel(x0 + y, y0 + x, color);
-    }
-    if (cornername & 0x2) {
-      writePixel(x0 + x, y0 - y, color);
-      writePixel(x0 + y, y0 - x, color);
-    }
-    if (cornername & 0x8) {
-      writePixel(x0 - y, y0 + x, color);
-      writePixel(x0 - x, y0 + y, color);
-    }
-    if (cornername & 0x1) {
-      writePixel(x0 - y, y0 - x, color);
-      writePixel(x0 - x, y0 - y, color);
-    }
-  }
-}
-
-/**************************************************************************/
-/*!
-   @brief    Draw a circle with filled color
-    @param    x0   Center-point x coordinate
-    @param    y0   Center-point y coordinate
-    @param    r   Radius of circle
-    @param    color 16-bit 5-6-5 Color to fill with
-*/
-/**************************************************************************/
-void Adafruit_GFX::fillCircle(int16_t x0, int16_t y0, int16_t r,
-                              uint16_t color) {
-  startWrite();
-  writeFastVLine(x0, y0 - r, 2 * r + 1, color);
-  fillCircleHelper(x0, y0, r, 3, 0, color);
-  endWrite();
-}
-
-/**************************************************************************/
-/*!
-    @brief  Quarter-circle drawer with fill, used for circles and roundrects
-    @param  x0       Center-point x coordinate
-    @param  y0       Center-point y coordinate
-    @param  r        Radius of circle
-    @param  corners  Mask bits indicating which quarters we're doing
-    @param  delta    Offset from center-point, used for round-rects
-    @param  color    16-bit 5-6-5 Color to fill with
-*/
-/**************************************************************************/
-void Adafruit_GFX::fillCircleHelper(int16_t x0, int16_t y0, int16_t r,
-                                    uint8_t corners, int16_t delta,
-                                    uint16_t color) {
-
-  int16_t f = 1 - r;
-  int16_t ddF_x = 1;
-  int16_t ddF_y = -2 * r;
-  int16_t x = 0;
-  int16_t y = r;
-  int16_t px = x;
-  int16_t py = y;
-
-  delta++; // Avoid some +1's in the loop
-
-  while (x < y) {
-    if (f >= 0) {
-      y--;
-      ddF_y += 2;
-      f += ddF_y;
-    }
-    x++;
-    ddF_x += 2;
-    f += ddF_x;
-    // These checks avoid double-drawing certain lines, important
-    // for the SSD1306 library which has an INVERT drawing mode.
-    if (x < (y + 1)) {
-      if (corners & 1)
-        writeFastVLine(x0 + x, y0 - y, 2 * y + delta, color);
-      if (corners & 2)
-        writeFastVLine(x0 - x, y0 - y, 2 * y + delta, color);
-    }
-    if (y != py) {
-      if (corners & 1)
-        writeFastVLine(x0 + py, y0 - px, 2 * px + delta, color);
-      if (corners & 2)
-        writeFastVLine(x0 - py, y0 - px, 2 * px + delta, color);
-      py = y;
-    }
-    px = x;
-  }
-}
-
-/**************************************************************************/
-/*!
-   @brief   Draw a rectangle with no fill color
-    @param    x   Top left corner x coordinate
-    @param    y   Top left corner y coordinate
-    @param    w   Width in pixels
-    @param    h   Height in pixels
-    @param    color 16-bit 5-6-5 Color to draw with
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawRect(int16_t x, int16_t y, int16_t w, int16_t h,
-                            uint16_t color) {
-  startWrite();
-  writeFastHLine(x, y, w, color);
-  writeFastHLine(x, y + h - 1, w, color);
-  writeFastVLine(x, y, h, color);
-  writeFastVLine(x + w - 1, y, h, color);
-  endWrite();
-}
-
-/**************************************************************************/
-/*!
-   @brief   Draw a rounded rectangle with no fill color
-    @param    x   Top left corner x coordinate
-    @param    y   Top left corner y coordinate
-    @param    w   Width in pixels
-    @param    h   Height in pixels
-    @param    r   Radius of corner rounding
-    @param    color 16-bit 5-6-5 Color to draw with
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawRoundRect(int16_t x, int16_t y, int16_t w, int16_t h,
-                                 int16_t r, uint16_t color) {
-  int16_t max_radius = ((w < h) ? w : h) / 2; // 1/2 minor axis
-  if (r > max_radius)
-    r = max_radius;
-  // smarter version
-  startWrite();
-  writeFastHLine(x + r, y, w - 2 * r, color);         // Top
-  writeFastHLine(x + r, y + h - 1, w - 2 * r, color); // Bottom
-  writeFastVLine(x, y + r, h - 2 * r, color);         // Left
-  writeFastVLine(x + w - 1, y + r, h - 2 * r, color); // Right
-  // draw four corners
-  drawCircleHelper(x + r, y + r, r, 1, color);
-  drawCircleHelper(x + w - r - 1, y + r, r, 2, color);
-  drawCircleHelper(x + w - r - 1, y + h - r - 1, r, 4, color);
-  drawCircleHelper(x + r, y + h - r - 1, r, 8, color);
-  endWrite();
-}
-
-/**************************************************************************/
-/*!
-   @brief   Draw a rounded rectangle with fill color
-    @param    x   Top left corner x coordinate
-    @param    y   Top left corner y coordinate
-    @param    w   Width in pixels
-    @param    h   Height in pixels
-    @param    r   Radius of corner rounding
-    @param    color 16-bit 5-6-5 Color to draw/fill with
-*/
-/**************************************************************************/
-void Adafruit_GFX::fillRoundRect(int16_t x, int16_t y, int16_t w, int16_t h,
-                                 int16_t r, uint16_t color) {
-  int16_t max_radius = ((w < h) ? w : h) / 2; // 1/2 minor axis
-  if (r > max_radius)
-    r = max_radius;
-  // smarter version
-  startWrite();
-  writeFillRect(x + r, y, w - 2 * r, h, color);
-  // draw four corners
-  fillCircleHelper(x + w - r - 1, y + r, r, 1, h - 2 * r - 1, color);
-  fillCircleHelper(x + r, y + r, r, 2, h - 2 * r - 1, color);
-  endWrite();
-}
-
-/**************************************************************************/
-/*!
-   @brief   Draw a triangle with no fill color
-    @param    x0  Vertex #0 x coordinate
-    @param    y0  Vertex #0 y coordinate
-    @param    x1  Vertex #1 x coordinate
-    @param    y1  Vertex #1 y coordinate
-    @param    x2  Vertex #2 x coordinate
-    @param    y2  Vertex #2 y coordinate
-    @param    color 16-bit 5-6-5 Color to draw with
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1,
-                                int16_t x2, int16_t y2, uint16_t color) {
-  drawLine(x0, y0, x1, y1, color);
-  drawLine(x1, y1, x2, y2, color);
-  drawLine(x2, y2, x0, y0, color);
-}
-
-/**************************************************************************/
-/*!
-   @brief     Draw a triangle with color-fill
-    @param    x0  Vertex #0 x coordinate
-    @param    y0  Vertex #0 y coordinate
-    @param    x1  Vertex #1 x coordinate
-    @param    y1  Vertex #1 y coordinate
-    @param    x2  Vertex #2 x coordinate
-    @param    y2  Vertex #2 y coordinate
-    @param    color 16-bit 5-6-5 Color to fill/draw with
-*/
-/**************************************************************************/
-void Adafruit_GFX::fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1,
-                                int16_t x2, int16_t y2, uint16_t color) {
-
-  int16_t a, b, y, last;
-
-  // Sort coordinates by Y order (y2 >= y1 >= y0)
-  if (y0 > y1) {
-    _swap_int16_t(y0, y1);
-    _swap_int16_t(x0, x1);
-  }
-  if (y1 > y2) {
-    _swap_int16_t(y2, y1);
-    _swap_int16_t(x2, x1);
-  }
-  if (y0 > y1) {
-    _swap_int16_t(y0, y1);
-    _swap_int16_t(x0, x1);
-  }
-
-  startWrite();
-  if (y0 == y2) { // Handle awkward all-on-same-line case as its own thing
-    a = b = x0;
-    if (x1 < a)
-      a = x1;
-    else if (x1 > b)
-      b = x1;
-    if (x2 < a)
-      a = x2;
-    else if (x2 > b)
-      b = x2;
-    writeFastHLine(a, y0, b - a + 1, color);
-    endWrite();
-    return;
-  }
-
-  int16_t dx01 = x1 - x0, dy01 = y1 - y0, dx02 = x2 - x0, dy02 = y2 - y0,
-          dx12 = x2 - x1, dy12 = y2 - y1;
-  int32_t sa = 0, sb = 0;
-
-  // For upper part of triangle, find scanline crossings for segments
-  // 0-1 and 0-2.  If y1=y2 (flat-bottomed triangle), the scanline y1
-  // is included here (and second loop will be skipped, avoiding a /0
-  // error there), otherwise scanline y1 is skipped here and handled
-  // in the second loop...which also avoids a /0 error here if y0=y1
-  // (flat-topped triangle).
-  if (y1 == y2)
-    last = y1; // Include y1 scanline
-  else
-    last = y1 - 1; // Skip it
-
-  for (y = y0; y <= last; y++) {
-    a = x0 + sa / dy01;
-    b = x0 + sb / dy02;
-    sa += dx01;
-    sb += dx02;
-    /* longhand:
-    a = x0 + (x1 - x0) * (y - y0) / (y1 - y0);
-    b = x0 + (x2 - x0) * (y - y0) / (y2 - y0);
-    */
-    if (a > b)
-      _swap_int16_t(a, b);
-    writeFastHLine(a, y, b - a + 1, color);
-  }
-
-  // For lower part of triangle, find scanline crossings for segments
-  // 0-2 and 1-2.  This loop is skipped if y1=y2.
-  sa = (int32_t)dx12 * (y - y1);
-  sb = (int32_t)dx02 * (y - y0);
-  for (; y <= y2; y++) {
-    a = x1 + sa / dy12;
-    b = x0 + sb / dy02;
-    sa += dx12;
-    sb += dx02;
-    /* longhand:
-    a = x1 + (x2 - x1) * (y - y1) / (y2 - y1);
-    b = x0 + (x2 - x0) * (y - y0) / (y2 - y0);
-    */
-    if (a > b)
-      _swap_int16_t(a, b);
-    writeFastHLine(a, y, b - a + 1, color);
-  }
-  endWrite();
-}
-
-// BITMAP / XBITMAP / GRAYSCALE / RGB BITMAP FUNCTIONS ---------------------
-
-/**************************************************************************/
-/*!
-   @brief      Draw a PROGMEM-resident 1-bit image at the specified (x,y)
-   position, using the specified foreground color (unset bits are transparent).
-    @param    x   Top left corner x coordinate
-    @param    y   Top left corner y coordinate
-    @param    bitmap  byte array with monochrome bitmap
-    @param    w   Width of bitmap in pixels
-    @param    h   Height of bitmap in pixels
-    @param    color 16-bit 5-6-5 Color to draw with
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawBitmap(int16_t x, int16_t y, const uint8_t bitmap[],
-                              int16_t w, int16_t h, uint16_t color) {
-
-  int16_t byteWidth = (w + 7) / 8; // Bitmap scanline pad = whole byte
-  uint8_t byte = 0;
-
-  startWrite();
-  for (int16_t j = 0; j < h; j++, y++) {
-    for (int16_t i = 0; i < w; i++) {
-      if (i & 7)
-        byte <<= 1;
-      else
-        byte = pgm_read_byte(&bitmap[j * byteWidth + i / 8]);
-      if (byte & 0x80)
-        writePixel(x + i, y, color);
-    }
-  }
-  endWrite();
-}
-
-/**************************************************************************/
-/*!
-   @brief      Draw a PROGMEM-resident 1-bit image at the specified (x,y)
-   position, using the specified foreground (for set bits) and background (unset
-   bits) colors.
-    @param    x   Top left corner x coordinate
-    @param    y   Top left corner y coordinate
-    @param    bitmap  byte array with monochrome bitmap
-    @param    w   Width of bitmap in pixels
-    @param    h   Height of bitmap in pixels
-    @param    color 16-bit 5-6-5 Color to draw pixels with
-    @param    bg 16-bit 5-6-5 Color to draw background with
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawBitmap(int16_t x, int16_t y, const uint8_t bitmap[],
-                              int16_t w, int16_t h, uint16_t color,
-                              uint16_t bg) {
-
-  int16_t byteWidth = (w + 7) / 8; // Bitmap scanline pad = whole byte
-  uint8_t byte = 0;
-
-  startWrite();
-  for (int16_t j = 0; j < h; j++, y++) {
-    for (int16_t i = 0; i < w; i++) {
-      if (i & 7)
-        byte <<= 1;
-      else
-        byte = pgm_read_byte(&bitmap[j * byteWidth + i / 8]);
-      writePixel(x + i, y, (byte & 0x80) ? color : bg);
-    }
-  }
-  endWrite();
-}
-
-/**************************************************************************/
-/*!
-   @brief      Draw a RAM-resident 1-bit image at the specified (x,y) position,
-   using the specified foreground color (unset bits are transparent).
-    @param    x   Top left corner x coordinate
-    @param    y   Top left corner y coordinate
-    @param    bitmap  byte array with monochrome bitmap
-    @param    w   Width of bitmap in pixels
-    @param    h   Height of bitmap in pixels
-    @param    color 16-bit 5-6-5 Color to draw with
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawBitmap(int16_t x, int16_t y, uint8_t *bitmap, int16_t w,
-                              int16_t h, uint16_t color) {
-
-  int16_t byteWidth = (w + 7) / 8; // Bitmap scanline pad = whole byte
-  uint8_t byte = 0;
-
-  startWrite();
-  for (int16_t j = 0; j < h; j++, y++) {
-    for (int16_t i = 0; i < w; i++) {
-      if (i & 7)
-        byte <<= 1;
-      else
-        byte = bitmap[j * byteWidth + i / 8];
-      if (byte & 0x80)
-        writePixel(x + i, y, color);
-    }
-  }
-  endWrite();
-}
-
-/**************************************************************************/
-/*!
-   @brief      Draw a RAM-resident 1-bit image at the specified (x,y) position,
-   using the specified foreground (for set bits) and background (unset bits)
-   colors.
-    @param    x   Top left corner x coordinate
-    @param    y   Top left corner y coordinate
-    @param    bitmap  byte array with monochrome bitmap
-    @param    w   Width of bitmap in pixels
-    @param    h   Height of bitmap in pixels
-    @param    color 16-bit 5-6-5 Color to draw pixels with
-    @param    bg 16-bit 5-6-5 Color to draw background with
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawBitmap(int16_t x, int16_t y, uint8_t *bitmap, int16_t w,
-                              int16_t h, uint16_t color, uint16_t bg) {
-
-  int16_t byteWidth = (w + 7) / 8; // Bitmap scanline pad = whole byte
-  uint8_t byte = 0;
-
-  startWrite();
-  for (int16_t j = 0; j < h; j++, y++) {
-    for (int16_t i = 0; i < w; i++) {
-      if (i & 7)
-        byte <<= 1;
-      else
-        byte = bitmap[j * byteWidth + i / 8];
-      writePixel(x + i, y, (byte & 0x80) ? color : bg);
-    }
-  }
-  endWrite();
-}
-
-/**************************************************************************/
-/*!
-   @brief      Draw PROGMEM-resident XBitMap Files (*.xbm), exported from GIMP.
-   Usage: Export from GIMP to *.xbm, rename *.xbm to *.c and open in editor.
-   C Array can be directly used with this function.
-   There is no RAM-resident version of this function; if generating bitmaps
-   in RAM, use the format defined by drawBitmap() and call that instead.
-    @param    x   Top left corner x coordinate
-    @param    y   Top left corner y coordinate
-    @param    bitmap  byte array with monochrome bitmap
-    @param    w   Width of bitmap in pixels
-    @param    h   Height of bitmap in pixels
-    @param    color 16-bit 5-6-5 Color to draw pixels with
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawXBitmap(int16_t x, int16_t y, const uint8_t bitmap[],
-                               int16_t w, int16_t h, uint16_t color) {
-
-  int16_t byteWidth = (w + 7) / 8; // Bitmap scanline pad = whole byte
-  uint8_t byte = 0;
-
-  startWrite();
-  for (int16_t j = 0; j < h; j++, y++) {
-    for (int16_t i = 0; i < w; i++) {
-      if (i & 7)
-        byte >>= 1;
-      else
-        byte = pgm_read_byte(&bitmap[j * byteWidth + i / 8]);
-      // Nearly identical to drawBitmap(), only the bit order
-      // is reversed here (left-to-right = LSB to MSB):
-      if (byte & 0x01)
-        writePixel(x + i, y, color);
-    }
-  }
-  endWrite();
-}
-
-/**************************************************************************/
-/*!
-   @brief   Draw a PROGMEM-resident 8-bit image (grayscale) at the specified
-   (x,y) pos. Specifically for 8-bit display devices such as IS31FL3731; no
-   color reduction/expansion is performed.
-    @param    x   Top left corner x coordinate
-    @param    y   Top left corner y coordinate
-    @param    bitmap  byte array with grayscale bitmap
-    @param    w   Width of bitmap in pixels
-    @param    h   Height of bitmap in pixels
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawGrayscaleBitmap(int16_t x, int16_t y,
-                                       const uint8_t bitmap[], int16_t w,
-                                       int16_t h) {
-  startWrite();
-  for (int16_t j = 0; j < h; j++, y++) {
-    for (int16_t i = 0; i < w; i++) {
-      writePixel(x + i, y, (uint8_t)pgm_read_byte(&bitmap[j * w + i]));
-    }
-  }
-  endWrite();
-}
-
-/**************************************************************************/
-/*!
-   @brief   Draw a RAM-resident 8-bit image (grayscale) at the specified (x,y)
-   pos. Specifically for 8-bit display devices such as IS31FL3731; no color
-   reduction/expansion is performed.
-    @param    x   Top left corner x coordinate
-    @param    y   Top left corner y coordinate
-    @param    bitmap  byte array with grayscale bitmap
-    @param    w   Width of bitmap in pixels
-    @param    h   Height of bitmap in pixels
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawGrayscaleBitmap(int16_t x, int16_t y, uint8_t *bitmap,
-                                       int16_t w, int16_t h) {
-  startWrite();
-  for (int16_t j = 0; j < h; j++, y++) {
-    for (int16_t i = 0; i < w; i++) {
-      writePixel(x + i, y, bitmap[j * w + i]);
-    }
-  }
-  endWrite();
-}
-
-/**************************************************************************/
-/*!
-   @brief   Draw a PROGMEM-resident 8-bit image (grayscale) with a 1-bit mask
-   (set bits = opaque, unset bits = clear) at the specified (x,y) position.
-   BOTH buffers (grayscale and mask) must be PROGMEM-resident.
-   Specifically for 8-bit display devices such as IS31FL3731; no color
-   reduction/expansion is performed.
-    @param    x   Top left corner x coordinate
-    @param    y   Top left corner y coordinate
-    @param    bitmap  byte array with grayscale bitmap
-    @param    mask  byte array with mask bitmap
-    @param    w   Width of bitmap in pixels
-    @param    h   Height of bitmap in pixels
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawGrayscaleBitmap(int16_t x, int16_t y,
-                                       const uint8_t bitmap[],
-                                       const uint8_t mask[], int16_t w,
-                                       int16_t h) {
-  int16_t bw = (w + 7) / 8; // Bitmask scanline pad = whole byte
-  uint8_t byte = 0;
-  startWrite();
-  for (int16_t j = 0; j < h; j++, y++) {
-    for (int16_t i = 0; i < w; i++) {
-      if (i & 7)
-        byte <<= 1;
-      else
-        byte = pgm_read_byte(&mask[j * bw + i / 8]);
-      if (byte & 0x80) {
-        writePixel(x + i, y, (uint8_t)pgm_read_byte(&bitmap[j * w + i]));
-      }
-    }
-  }
-  endWrite();
-}
-
-/**************************************************************************/
-/*!
-   @brief   Draw a RAM-resident 8-bit image (grayscale) with a 1-bit mask
-   (set bits = opaque, unset bits = clear) at the specified (x,y) position.
-   BOTH buffers (grayscale and mask) must be RAM-residentt, no mix-and-match
-   Specifically for 8-bit display devices such as IS31FL3731; no color
-   reduction/expansion is performed.
-    @param    x   Top left corner x coordinate
-    @param    y   Top left corner y coordinate
-    @param    bitmap  byte array with grayscale bitmap
-    @param    mask  byte array with mask bitmap
-    @param    w   Width of bitmap in pixels
-    @param    h   Height of bitmap in pixels
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawGrayscaleBitmap(int16_t x, int16_t y, uint8_t *bitmap,
-                                       uint8_t *mask, int16_t w, int16_t h) {
-  int16_t bw = (w + 7) / 8; // Bitmask scanline pad = whole byte
-  uint8_t byte = 0;
-  startWrite();
-  for (int16_t j = 0; j < h; j++, y++) {
-    for (int16_t i = 0; i < w; i++) {
-      if (i & 7)
-        byte <<= 1;
-      else
-        byte = mask[j * bw + i / 8];
-      if (byte & 0x80) {
-        writePixel(x + i, y, bitmap[j * w + i]);
-      }
-    }
-  }
-  endWrite();
-}
-
-/**************************************************************************/
-/*!
-   @brief   Draw a PROGMEM-resident 16-bit image (RGB 5/6/5) at the specified
-   (x,y) position. For 16-bit display devices; no color reduction performed.
-    @param    x   Top left corner x coordinate
-    @param    y   Top left corner y coordinate
-    @param    bitmap  byte array with 16-bit color bitmap
-    @param    w   Width of bitmap in pixels
-    @param    h   Height of bitmap in pixels
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawRGBBitmap(int16_t x, int16_t y, const uint16_t bitmap[],
-                                 int16_t w, int16_t h) {
-  startWrite();
-  for (int16_t j = 0; j < h; j++, y++) {
-    for (int16_t i = 0; i < w; i++) {
-      writePixel(x + i, y, pgm_read_word(&bitmap[j * w + i]));
-    }
-  }
-  endWrite();
-}
-
-/**************************************************************************/
-/*!
-   @brief   Draw a RAM-resident 16-bit image (RGB 5/6/5) at the specified (x,y)
-   position. For 16-bit display devices; no color reduction performed.
-    @param    x   Top left corner x coordinate
-    @param    y   Top left corner y coordinate
-    @param    bitmap  byte array with 16-bit color bitmap
-    @param    w   Width of bitmap in pixels
-    @param    h   Height of bitmap in pixels
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawRGBBitmap(int16_t x, int16_t y, uint16_t *bitmap,
-                                 int16_t w, int16_t h) {
-  startWrite();
-  for (int16_t j = 0; j < h; j++, y++) {
-    for (int16_t i = 0; i < w; i++) {
-      writePixel(x + i, y, bitmap[j * w + i]);
-    }
-  }
-  endWrite();
-}
-
-/**************************************************************************/
-/*!
-   @brief   Draw a PROGMEM-resident 16-bit image (RGB 5/6/5) with a 1-bit mask
-   (set bits = opaque, unset bits = clear) at the specified (x,y) position. BOTH
-   buffers (color and mask) must be PROGMEM-resident. For 16-bit display
-   devices; no color reduction performed.
-    @param    x   Top left corner x coordinate
-    @param    y   Top left corner y coordinate
-    @param    bitmap  byte array with 16-bit color bitmap
-    @param    mask  byte array with monochrome mask bitmap
-    @param    w   Width of bitmap in pixels
-    @param    h   Height of bitmap in pixels
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawRGBBitmap(int16_t x, int16_t y, const uint16_t bitmap[],
-                                 const uint8_t mask[], int16_t w, int16_t h) {
-  int16_t bw = (w + 7) / 8; // Bitmask scanline pad = whole byte
-  uint8_t byte = 0;
-  startWrite();
-  for (int16_t j = 0; j < h; j++, y++) {
-    for (int16_t i = 0; i < w; i++) {
-      if (i & 7)
-        byte <<= 1;
-      else
-        byte = pgm_read_byte(&mask[j * bw + i / 8]);
-      if (byte & 0x80) {
-        writePixel(x + i, y, pgm_read_word(&bitmap[j * w + i]));
-      }
-    }
-  }
-  endWrite();
-}
-
-/**************************************************************************/
-/*!
-   @brief   Draw a RAM-resident 16-bit image (RGB 5/6/5) with a 1-bit mask (set
-   bits = opaque, unset bits = clear) at the specified (x,y) position. BOTH
-   buffers (color and mask) must be RAM-resident. For 16-bit display devices; no
-   color reduction performed.
-    @param    x   Top left corner x coordinate
-    @param    y   Top left corner y coordinate
-    @param    bitmap  byte array with 16-bit color bitmap
-    @param    mask  byte array with monochrome mask bitmap
-    @param    w   Width of bitmap in pixels
-    @param    h   Height of bitmap in pixels
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawRGBBitmap(int16_t x, int16_t y, uint16_t *bitmap,
-                                 uint8_t *mask, int16_t w, int16_t h) {
-  int16_t bw = (w + 7) / 8; // Bitmask scanline pad = whole byte
-  uint8_t byte = 0;
-  startWrite();
-  for (int16_t j = 0; j < h; j++, y++) {
-    for (int16_t i = 0; i < w; i++) {
-      if (i & 7)
-        byte <<= 1;
-      else
-        byte = mask[j * bw + i / 8];
-      if (byte & 0x80) {
-        writePixel(x + i, y, bitmap[j * w + i]);
-      }
-    }
-  }
-  endWrite();
-}
-
-// TEXT- AND CHARACTER-HANDLING FUNCTIONS ----------------------------------
-
-// Draw a character
-/**************************************************************************/
-/*!
-   @brief   Draw a single character
-    @param    x   Bottom left corner x coordinate
-    @param    y   Bottom left corner y coordinate
-    @param    c   The 8-bit font-indexed character (likely ascii)
-    @param    color 16-bit 5-6-5 Color to draw chraracter with
-    @param    bg 16-bit 5-6-5 Color to fill background with (if same as color,
-   no background)
-    @param    size  Font magnification level, 1 is 'original' size
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawChar(int16_t x, int16_t y, unsigned char c,
-                            uint16_t color, uint16_t bg, uint8_t size) {
-  drawChar(x, y, c, color, bg, size, size);
-}
-
-// Draw a character
-/**************************************************************************/
-/*!
-   @brief   Draw a single character
-    @param    x   Bottom left corner x coordinate
-    @param    y   Bottom left corner y coordinate
-    @param    c   The 8-bit font-indexed character (likely ascii)
-    @param    color 16-bit 5-6-5 Color to draw chraracter with
-    @param    bg 16-bit 5-6-5 Color to fill background with (if same as color,
-   no background)
-    @param    size_x  Font magnification level in X-axis, 1 is 'original' size
-    @param    size_y  Font magnification level in Y-axis, 1 is 'original' size
-*/
-/**************************************************************************/
-void Adafruit_GFX::drawChar(int16_t x, int16_t y, unsigned char c,
-                            uint16_t color, uint16_t bg, uint8_t size_x,
-                            uint8_t size_y) {
-
-  if (!gfxFont) { // 'Classic' built-in font
-
-    if ((x >= _width) ||              // Clip right
-        (y >= _height) ||             // Clip bottom
-        ((x + 6 * size_x - 1) < 0) || // Clip left
-        ((y + 8 * size_y - 1) < 0))   // Clip top
-      return;
-
-    if (!_cp437 && (c >= 176))
-      c++; // Handle 'classic' charset behavior
-
-    startWrite();
-    for (int8_t i = 0; i < 5; i++) { // Char bitmap = 5 columns
-      uint8_t line = pgm_read_byte(&font[c * 5 + i]);
-      for (int8_t j = 0; j < 8; j++, line >>= 1) {
-        if (line & 1) {
-          if (size_x == 1 && size_y == 1)
-            writePixel(x + i, y + j, color);
-          else
-            writeFillRect(x + i * size_x, y + j * size_y, size_x, size_y,
-                          color);
-        } else if (bg != color) {
-          if (size_x == 1 && size_y == 1)
-            writePixel(x + i, y + j, bg);
-          else
-            writeFillRect(x + i * size_x, y + j * size_y, size_x, size_y, bg);
-        }
-      }
-    }
-    if (bg != color) { // If opaque, draw vertical line for last column
-      if (size_x == 1 && size_y == 1)
-        writeFastVLine(x + 5, y, 8, bg);
-      else
-        writeFillRect(x + 5 * size_x, y, size_x, 8 * size_y, bg);
-    }
-    endWrite();
-
-  } else { // Custom font
-
-    // Character is assumed previously filtered by write() to eliminate
-    // newlines, returns, non-printable characters, etc.  Calling
-    // drawChar() directly with 'bad' characters of font may cause mayhem!
-
-    c -= (uint8_t)pgm_read_byte(&gfxFont->first);
-    GFXglyph *glyph = pgm_read_glyph_ptr(gfxFont, c);
-    uint8_t *bitmap = pgm_read_bitmap_ptr(gfxFont);
-
-    uint16_t bo = pgm_read_word(&glyph->bitmapOffset);
-    uint8_t w = pgm_read_byte(&glyph->width), h = pgm_read_byte(&glyph->height);
-    int8_t xo = pgm_read_byte(&glyph->xOffset),
-           yo = pgm_read_byte(&glyph->yOffset);
-    uint8_t xx, yy, bits = 0, bit = 0;
-    int16_t xo16 = 0, yo16 = 0;
-
-    if (size_x > 1 || size_y > 1) {
-      xo16 = xo;
-      yo16 = yo;
-    }
-
-    // Todo: Add character clipping here
-
-    // NOTE: THERE IS NO 'BACKGROUND' COLOR OPTION ON CUSTOM FONTS.
-    // THIS IS ON PURPOSE AND BY DESIGN.  The background color feature
-    // has typically been used with the 'classic' font to overwrite old
-    // screen contents with new data.  This ONLY works because the
-    // characters are a uniform size; it's not a sensible thing to do with
-    // proportionally-spaced fonts with glyphs of varying sizes (and that
-    // may overlap).  To replace previously-drawn text when using a custom
-    // font, use the getTextBounds() function to determine the smallest
-    // rectangle encompassing a string, erase the area with fillRect(),
-    // then draw new text.  This WILL infortunately 'blink' the text, but
-    // is unavoidable.  Drawing 'background' pixels will NOT fix this,
-    // only creates a new set of problems.  Have an idea to work around
-    // this (a canvas object type for MCUs that can afford the RAM and
-    // displays supporting setAddrWindow() and pushColors()), but haven't
-    // implemented this yet.
-
-    startWrite();
-    for (yy = 0; yy < h; yy++) {
-      for (xx = 0; xx < w; xx++) {
-        if (!(bit++ & 7)) {
-          bits = pgm_read_byte(&bitmap[bo++]);
-        }
-        if (bits & 0x80) {
-          if (size_x == 1 && size_y == 1) {
-            writePixel(x + xo + xx, y + yo + yy, color);
-          } else {
-            writeFillRect(x + (xo16 + xx) * size_x, y + (yo16 + yy) * size_y,
-                          size_x, size_y, color);
-          }
-        }
-        bits <<= 1;
-      }
-    }
-    endWrite();
-
-  } // End classic vs custom font
-}
-/**************************************************************************/
-/*!
-    @brief  Print one byte/character of data, used to support print()
-    @param  c  The 8-bit ascii character to write
-*/
-/**************************************************************************/
-size_t Adafruit_GFX::write(uint8_t c) {
-  if (!gfxFont) { // 'Classic' built-in font
-
-    if (c == '\n') {              // Newline?
-      cursor_x = 0;               // Reset x to zero,
-      cursor_y += textsize_y * 8; // advance y one line
-    } else if (c != '\r') {       // Ignore carriage returns
-      if (wrap && ((cursor_x + textsize_x * 6) > _width)) { // Off right?
-        cursor_x = 0;                                       // Reset x to zero,
-        cursor_y += textsize_y * 8; // advance y one line
-      }
-      drawChar(cursor_x, cursor_y, c, textcolor, textbgcolor, textsize_x,
-               textsize_y);
-      cursor_x += textsize_x * 6; // Advance x one char
-    }
-
-  } else { // Custom font
-
-    if (c == '\n') {
-      cursor_x = 0;
-      cursor_y +=
-          (int16_t)textsize_y * (uint8_t)pgm_read_byte(&gfxFont->yAdvance);
-    } else if (c != '\r') {
-      uint8_t first = pgm_read_byte(&gfxFont->first);
-      if ((c >= first) && (c <= (uint8_t)pgm_read_byte(&gfxFont->last))) {
-        GFXglyph *glyph = pgm_read_glyph_ptr(gfxFont, c - first);
-        uint8_t w = pgm_read_byte(&glyph->width),
-                h = pgm_read_byte(&glyph->height);
-        if ((w > 0) && (h > 0)) { // Is there an associated bitmap?
-          int16_t xo = (int8_t)pgm_read_byte(&glyph->xOffset); // sic
-          if (wrap && ((cursor_x + textsize_x * (xo + w)) > _width)) {
-            cursor_x = 0;
-            cursor_y += (int16_t)textsize_y *
-                        (uint8_t)pgm_read_byte(&gfxFont->yAdvance);
-          }
-          drawChar(cursor_x, cursor_y, c, textcolor, textbgcolor, textsize_x,
-                   textsize_y);
-        }
-        cursor_x +=
-            (uint8_t)pgm_read_byte(&glyph->xAdvance) * (int16_t)textsize_x;
-      }
-    }
-  }
-  return 1;
-}
-
-/**************************************************************************/
-/*!
-    @brief   Set text 'magnification' size. Each increase in s makes 1 pixel
-   that much bigger.
-    @param  s  Desired text size. 1 is default 6x8, 2 is 12x16, 3 is 18x24, etc
-*/
-/**************************************************************************/
-void Adafruit_GFX::setTextSize(uint8_t s) { setTextSize(s, s); }
-
-/**************************************************************************/
-/*!
-    @brief   Set text 'magnification' size. Each increase in s makes 1 pixel
-   that much bigger.
-    @param  s_x  Desired text width magnification level in X-axis. 1 is default
-    @param  s_y  Desired text width magnification level in Y-axis. 1 is default
-*/
-/**************************************************************************/
-void Adafruit_GFX::setTextSize(uint8_t s_x, uint8_t s_y) {
-  textsize_x = (s_x > 0) ? s_x : 1;
-  textsize_y = (s_y > 0) ? s_y : 1;
-}
-
-/**************************************************************************/
-/*!
-    @brief      Set rotation setting for display
-    @param  x   0 thru 3 corresponding to 4 cardinal rotations
-*/
-/**************************************************************************/
-void Adafruit_GFX::setRotation(uint8_t x) {
-  rotation = (x & 3);
-  switch (rotation) {
-  case 0:
-  case 2:
-    _width = WIDTH;
-    _height = HEIGHT;
-    break;
-  case 1:
-  case 3:
-    _width = HEIGHT;
-    _height = WIDTH;
-    break;
-  }
-}
-
-/**************************************************************************/
-/*!
-    @brief Set the font to display when print()ing, either custom or default
-    @param  f  The GFXfont object, if NULL use built in 6x8 font
-*/
-/**************************************************************************/
-void Adafruit_GFX::setFont(const GFXfont *f) {
-  if (f) {          // Font struct pointer passed in?
-    if (!gfxFont) { // And no current font struct?
-      // Switching from classic to new font behavior.
-      // Move cursor pos down 6 pixels so it's on baseline.
-      cursor_y += 6;
-    }
-  } else if (gfxFont) { // NULL passed.  Current font struct defined?
-    // Switching from new to classic font behavior.
-    // Move cursor pos up 6 pixels so it's at top-left of char.
-    cursor_y -= 6;
-  }
-  gfxFont = (GFXfont *)f;
-}
-
-/**************************************************************************/
-/*!
-    @brief    Helper to determine size of a character with current font/size.
-       Broke this out as it's used by both the PROGMEM- and RAM-resident
-   getTextBounds() functions.
-    @param    c     The ascii character in question
-    @param    x     Pointer to x location of character
-    @param    y     Pointer to y location of character
-    @param    minx  Minimum clipping value for X
-    @param    miny  Minimum clipping value for Y
-    @param    maxx  Maximum clipping value for X
-    @param    maxy  Maximum clipping value for Y
-*/
-/**************************************************************************/
-void Adafruit_GFX::charBounds(unsigned char c, int16_t *x, int16_t *y,
-                              int16_t *minx, int16_t *miny, int16_t *maxx,
-                              int16_t *maxy) {
-
-  if (gfxFont) {
-
-    if (c == '\n') { // Newline?
-      *x = 0;        // Reset x to zero, advance y by one line
-      *y += textsize_y * (uint8_t)pgm_read_byte(&gfxFont->yAdvance);
-    } else if (c != '\r') { // Not a carriage return; is normal char
-      uint8_t first = pgm_read_byte(&gfxFont->first),
-              last = pgm_read_byte(&gfxFont->last);
-      if ((c >= first) && (c <= last)) { // Char present in this font?
-        GFXglyph *glyph = pgm_read_glyph_ptr(gfxFont, c - first);
-        uint8_t gw = pgm_read_byte(&glyph->width),
-                gh = pgm_read_byte(&glyph->height),
-                xa = pgm_read_byte(&glyph->xAdvance);
-        int8_t xo = pgm_read_byte(&glyph->xOffset),
-               yo = pgm_read_byte(&glyph->yOffset);
-        if (wrap && ((*x + (((int16_t)xo + gw) * textsize_x)) > _width)) {
-          *x = 0; // Reset x to zero, advance y by one line
-          *y += textsize_y * (uint8_t)pgm_read_byte(&gfxFont->yAdvance);
-        }
-        int16_t tsx = (int16_t)textsize_x, tsy = (int16_t)textsize_y,
-                x1 = *x + xo * tsx, y1 = *y + yo * tsy, x2 = x1 + gw * tsx - 1,
-                y2 = y1 + gh * tsy - 1;
-        if (x1 < *minx)
-          *minx = x1;
-        if (y1 < *miny)
-          *miny = y1;
-        if (x2 > *maxx)
-          *maxx = x2;
-        if (y2 > *maxy)
-          *maxy = y2;
-        *x += xa * tsx;
-      }
-    }
-
-  } else { // Default font
-
-    if (c == '\n') {        // Newline?
-      *x = 0;               // Reset x to zero,
-      *y += textsize_y * 8; // advance y one line
-      // min/max x/y unchaged -- that waits for next 'normal' character
-    } else if (c != '\r') { // Normal char; ignore carriage returns
-      if (wrap && ((*x + textsize_x * 6) > _width)) { // Off right?
-        *x = 0;                                       // Reset x to zero,
-        *y += textsize_y * 8;                         // advance y one line
-      }
-      int x2 = *x + textsize_x * 6 - 1, // Lower-right pixel of char
-          y2 = *y + textsize_y * 8 - 1;
-      if (x2 > *maxx)
-        *maxx = x2; // Track max x, y
-      if (y2 > *maxy)
-        *maxy = y2;
-      if (*x < *minx)
-        *minx = *x; // Track min x, y
-      if (*y < *miny)
-        *miny = *y;
-      *x += textsize_x * 6; // Advance x one char
-    }
-  }
-}
-
-/**************************************************************************/
-/*!
-    @brief    Helper to determine size of a string with current font/size. Pass
-   string and a cursor position, returns UL corner and W,H.
-    @param    str     The ascii string to measure
-    @param    x       The current cursor X
-    @param    y       The current cursor Y
-    @param    x1      The boundary X coordinate, set by function
-    @param    y1      The boundary Y coordinate, set by function
-    @param    w      The boundary width, set by function
-    @param    h      The boundary height, set by function
-*/
-/**************************************************************************/
-void Adafruit_GFX::getTextBounds(const char *str, int16_t x, int16_t y,
-                                 int16_t *x1, int16_t *y1, uint16_t *w,
-                                 uint16_t *h) {
-  uint8_t c; // Current character
-
-  *x1 = x;
-  *y1 = y;
-  *w = *h = 0;
-
-  int16_t minx = _width, miny = _height, maxx = -1, maxy = -1;
-
-  while ((c = *str++))
-    charBounds(c, &x, &y, &minx, &miny, &maxx, &maxy);
-
-  if (maxx >= minx) {
-    *x1 = minx;
-    *w = maxx - minx + 1;
-  }
-  if (maxy >= miny) {
-    *y1 = miny;
-    *h = maxy - miny + 1;
-  }
-}
-
-/**************************************************************************/
-/*!
-    @brief    Helper to determine size of a string with current font/size. Pass
-   string and a cursor position, returns UL corner and W,H.
-    @param    str    The ascii string to measure (as an arduino String() class)
-    @param    x      The current cursor X
-    @param    y      The current cursor Y
-    @param    x1     The boundary X coordinate, set by function
-    @param    y1     The boundary Y coordinate, set by function
-    @param    w      The boundary width, set by function
-    @param    h      The boundary height, set by function
-*/
-/**************************************************************************/
-void Adafruit_GFX::getTextBounds(const String &str, int16_t x, int16_t y,
-                                 int16_t *x1, int16_t *y1, uint16_t *w,
-                                 uint16_t *h) {
-  if (str.length() != 0) {
-    getTextBounds(const_cast<char *>(str.c_str()), x, y, x1, y1, w, h);
-  }
-}
-
-/**************************************************************************/
-/*!
-    @brief    Helper to determine size of a PROGMEM string with current
-   font/size. Pass string and a cursor position, returns UL corner and W,H.
-    @param    str     The flash-memory ascii string to measure
-    @param    x       The current cursor X
-    @param    y       The current cursor Y
-    @param    x1      The boundary X coordinate, set by function
-    @param    y1      The boundary Y coordinate, set by function
-    @param    w      The boundary width, set by function
-    @param    h      The boundary height, set by function
-*/
-/**************************************************************************/
-void Adafruit_GFX::getTextBounds(const __FlashStringHelper *str, int16_t x,
-                                 int16_t y, int16_t *x1, int16_t *y1,
-                                 uint16_t *w, uint16_t *h) {
-  uint8_t *s = (uint8_t *)str, c;
-
-  *x1 = x;
-  *y1 = y;
-  *w = *h = 0;
-
-  int16_t minx = _width, miny = _height, maxx = -1, maxy = -1;
-
-  while ((c = pgm_read_byte(s++)))
-    charBounds(c, &x, &y, &minx, &miny, &maxx, &maxy);
-
-  if (maxx >= minx) {
-    *x1 = minx;
-    *w = maxx - minx + 1;
-  }
-  if (maxy >= miny) {
-    *y1 = miny;
-    *h = maxy - miny + 1;
-  }
-}
-
-/**************************************************************************/
-/*!
-    @brief      Invert the display (ideally using built-in hardware command)
-    @param   i  True if you want to invert, false to make 'normal'
-*/
-/**************************************************************************/
-void Adafruit_GFX::invertDisplay(bool i) {
-  // Do nothing, must be subclassed if supported by hardware
-}
-
-/***************************************************************************/
-
-/**************************************************************************/
-/*!
-   @brief    Create a simple drawn button UI element
-*/
-/**************************************************************************/
-Adafruit_GFX_Button::Adafruit_GFX_Button(void) { _gfx = 0; }
-
-/**************************************************************************/
-/*!
-   @brief    Initialize button with our desired color/size/settings
-   @param    gfx     Pointer to our display so we can draw to it!
-   @param    x       The X coordinate of the center of the button
-   @param    y       The Y coordinate of the center of the button
-   @param    w       Width of the buttton
-   @param    h       Height of the buttton
-   @param    outline  Color of the outline (16-bit 5-6-5 standard)
-   @param    fill  Color of the button fill (16-bit 5-6-5 standard)
-   @param    textcolor  Color of the button label (16-bit 5-6-5 standard)
-   @param    label  Ascii string of the text inside the button
-   @param    textsize The font magnification of the label text
-*/
-/**************************************************************************/
-// Classic initButton() function: pass center & size
-void Adafruit_GFX_Button::initButton(Adafruit_GFX *gfx, int16_t x, int16_t y,
-                                     uint16_t w, uint16_t h, uint16_t outline,
-                                     uint16_t fill, uint16_t textcolor,
-                                     char *label, uint8_t textsize) {
-  // Tweak arguments and pass to the newer initButtonUL() function...
-  initButtonUL(gfx, x - (w / 2), y - (h / 2), w, h, outline, fill, textcolor,
-               label, textsize);
-}
-
-/**************************************************************************/
-/*!
-   @brief    Initialize button with our desired color/size/settings
-   @param    gfx     Pointer to our display so we can draw to it!
-   @param    x       The X coordinate of the center of the button
-   @param    y       The Y coordinate of the center of the button
-   @param    w       Width of the buttton
-   @param    h       Height of the buttton
-   @param    outline  Color of the outline (16-bit 5-6-5 standard)
-   @param    fill  Color of the button fill (16-bit 5-6-5 standard)
-   @param    textcolor  Color of the button label (16-bit 5-6-5 standard)
-   @param    label  Ascii string of the text inside the button
-   @param    textsize_x The font magnification in X-axis of the label text
-   @param    textsize_y The font magnification in Y-axis of the label text
-*/
-/**************************************************************************/
-// Classic initButton() function: pass center & size
-void Adafruit_GFX_Button::initButton(Adafruit_GFX *gfx, int16_t x, int16_t y,
-                                     uint16_t w, uint16_t h, uint16_t outline,
-                                     uint16_t fill, uint16_t textcolor,
-                                     char *label, uint8_t textsize_x,
-                                     uint8_t textsize_y) {
-  // Tweak arguments and pass to the newer initButtonUL() function...
-  initButtonUL(gfx, x - (w / 2), y - (h / 2), w, h, outline, fill, textcolor,
-               label, textsize_x, textsize_y);
-}
-
-/**************************************************************************/
-/*!
-   @brief    Initialize button with our desired color/size/settings, with
-   upper-left coordinates
-   @param    gfx     Pointer to our display so we can draw to it!
-   @param    x1       The X coordinate of the Upper-Left corner of the button
-   @param    y1       The Y coordinate of the Upper-Left corner of the button
-   @param    w       Width of the buttton
-   @param    h       Height of the buttton
-   @param    outline  Color of the outline (16-bit 5-6-5 standard)
-   @param    fill  Color of the button fill (16-bit 5-6-5 standard)
-   @param    textcolor  Color of the button label (16-bit 5-6-5 standard)
-   @param    label  Ascii string of the text inside the button
-   @param    textsize The font magnification of the label text
-*/
-/**************************************************************************/
-void Adafruit_GFX_Button::initButtonUL(Adafruit_GFX *gfx, int16_t x1,
-                                       int16_t y1, uint16_t w, uint16_t h,
-                                       uint16_t outline, uint16_t fill,
-                                       uint16_t textcolor, char *label,
-                                       uint8_t textsize) {
-  initButtonUL(gfx, x1, y1, w, h, outline, fill, textcolor, label, textsize,
-               textsize);
-}
-
-/**************************************************************************/
-/*!
-   @brief    Initialize button with our desired color/size/settings, with
-   upper-left coordinates
-   @param    gfx     Pointer to our display so we can draw to it!
-   @param    x1       The X coordinate of the Upper-Left corner of the button
-   @param    y1       The Y coordinate of the Upper-Left corner of the button
-   @param    w       Width of the buttton
-   @param    h       Height of the buttton
-   @param    outline  Color of the outline (16-bit 5-6-5 standard)
-   @param    fill  Color of the button fill (16-bit 5-6-5 standard)
-   @param    textcolor  Color of the button label (16-bit 5-6-5 standard)
-   @param    label  Ascii string of the text inside the button
-   @param    textsize_x The font magnification in X-axis of the label text
-   @param    textsize_y The font magnification in Y-axis of the label text
-*/
-/**************************************************************************/
-void Adafruit_GFX_Button::initButtonUL(Adafruit_GFX *gfx, int16_t x1,
-                                       int16_t y1, uint16_t w, uint16_t h,
-                                       uint16_t outline, uint16_t fill,
-                                       uint16_t textcolor, char *label,
-                                       uint8_t textsize_x, uint8_t textsize_y) {
-  _x1 = x1;
-  _y1 = y1;
-  _w = w;
-  _h = h;
-  _outlinecolor = outline;
-  _fillcolor = fill;
-  _textcolor = textcolor;
-  _textsize_x = textsize_x;
-  _textsize_y = textsize_y;
-  _gfx = gfx;
-  strncpy(_label, label, 9);
-}
-
-/**************************************************************************/
-/*!
-   @brief    Draw the button on the screen
-   @param    inverted Whether to draw with fill/text swapped to indicate
-   'pressed'
-*/
-/**************************************************************************/
-void Adafruit_GFX_Button::drawButton(bool inverted) {
-  uint16_t fill, outline, text;
-
-  if (!inverted) {
-    fill = _fillcolor;
-    outline = _outlinecolor;
-    text = _textcolor;
-  } else {
-    fill = _textcolor;
-    outline = _outlinecolor;
-    text = _fillcolor;
-  }
-
-  uint8_t r = min(_w, _h) / 4; // Corner radius
-  _gfx->fillRoundRect(_x1, _y1, _w, _h, r, fill);
-  _gfx->drawRoundRect(_x1, _y1, _w, _h, r, outline);
-
-  _gfx->setCursor(_x1 + (_w / 2) - (strlen(_label) * 3 * _textsize_x),
-                  _y1 + (_h / 2) - (4 * _textsize_y));
-  _gfx->setTextColor(text);
-  _gfx->setTextSize(_textsize_x, _textsize_y);
-  _gfx->print(_label);
-}
-
-/**************************************************************************/
-/*!
-    @brief    Helper to let us know if a coordinate is within the bounds of the
-   button
-    @param    x       The X coordinate to check
-    @param    y       The Y coordinate to check
-    @returns  True if within button graphics outline
-*/
-/**************************************************************************/
-bool Adafruit_GFX_Button::contains(int16_t x, int16_t y) {
-  return ((x >= _x1) && (x < (int16_t)(_x1 + _w)) && (y >= _y1) &&
-          (y < (int16_t)(_y1 + _h)));
-}
-
-/**************************************************************************/
-/*!
-   @brief    Query whether the button was pressed since we last checked state
-   @returns  True if was not-pressed before, now is.
-*/
-/**************************************************************************/
-bool Adafruit_GFX_Button::justPressed() { return (currstate && !laststate); }
-
-/**************************************************************************/
-/*!
-   @brief    Query whether the button was released since we last checked state
-   @returns  True if was pressed before, now is not.
-*/
-/**************************************************************************/
-bool Adafruit_GFX_Button::justReleased() { return (!currstate && laststate); }
-
-// -------------------------------------------------------------------------
-
-// GFXcanvas1, GFXcanvas8 and GFXcanvas16 (currently a WIP, don't get too
-// comfy with the implementation) provide 1-, 8- and 16-bit offscreen
-// canvases, the address of which can be passed to drawBitmap() or
-// pushColors() (the latter appears only in a couple of GFX-subclassed TFT
-// libraries at this time).  This is here mostly to help with the recently-
-// added proportionally-spaced fonts; adds a way to refresh a section of the
-// screen without a massive flickering clear-and-redraw...but maybe you'll
-// find other uses too.  VERY RAM-intensive, since the buffer is in MCU
-// memory and not the display driver...GXFcanvas1 might be minimally useful
-// on an Uno-class board, but this and the others are much more likely to
-// require at least a Mega or various recent ARM-type boards (recommended,
-// as the text+bitmap draw can be pokey).  GFXcanvas1 requires 1 bit per
-// pixel (rounded up to nearest byte per scanline), GFXcanvas8 is 1 byte
-// per pixel (no scanline pad), and GFXcanvas16 uses 2 bytes per pixel (no
-// scanline pad).
-// NOT EXTENSIVELY TESTED YET.  MAY CONTAIN WORST BUGS KNOWN TO HUMANKIND.
-
-#ifdef __AVR__
-// Bitmask tables of 0x80>>X and ~(0x80>>X), because X>>Y is slow on AVR
-const uint8_t PROGMEM GFXcanvas1::GFXsetBit[] = {0x80, 0x40, 0x20, 0x10,
-                                                 0x08, 0x04, 0x02, 0x01};
-const uint8_t PROGMEM GFXcanvas1::GFXclrBit[] = {0x7F, 0xBF, 0xDF, 0xEF,
-                                                 0xF7, 0xFB, 0xFD, 0xFE};
-#endif
-
-/**************************************************************************/
-/*!
-   @brief    Instatiate a GFX 1-bit canvas context for graphics
-   @param    w   Display width, in pixels
-   @param    h   Display height, in pixels
-*/
-/**************************************************************************/
-GFXcanvas1::GFXcanvas1(uint16_t w, uint16_t h) : Adafruit_GFX(w, h) {
-  uint16_t bytes = ((w + 7) / 8) * h;
-  if ((buffer = (uint8_t *)malloc(bytes))) {
-    memset(buffer, 0, bytes);
-  }
-}
-
-/**************************************************************************/
-/*!
-   @brief    Delete the canvas, free memory
-*/
-/**************************************************************************/
-GFXcanvas1::~GFXcanvas1(void) {
-  if (buffer)
-    free(buffer);
-}
-
-/**************************************************************************/
-/*!
-    @brief  Draw a pixel to the canvas framebuffer
-    @param  x     x coordinate
-    @param  y     y coordinate
-    @param  color Binary (on or off) color to fill with
-*/
-/**************************************************************************/
-void GFXcanvas1::drawPixel(int16_t x, int16_t y, uint16_t color) {
-  if (buffer) {
-    if ((x < 0) || (y < 0) || (x >= _width) || (y >= _height))
-      return;
-
-    int16_t t;
-    switch (rotation) {
-    case 1:
-      t = x;
-      x = WIDTH - 1 - y;
-      y = t;
-      break;
-    case 2:
-      x = WIDTH - 1 - x;
-      y = HEIGHT - 1 - y;
-      break;
-    case 3:
-      t = x;
-      x = y;
-      y = HEIGHT - 1 - t;
-      break;
-    }
-
-    uint8_t *ptr = &buffer[(x / 8) + y * ((WIDTH + 7) / 8)];
-#ifdef __AVR__
-    if (color)
-      *ptr |= pgm_read_byte(&GFXsetBit[x & 7]);
-    else
-      *ptr &= pgm_read_byte(&GFXclrBit[x & 7]);
-#else
-    if (color)
-      *ptr |= 0x80 >> (x & 7);
-    else
-      *ptr &= ~(0x80 >> (x & 7));
-#endif
-  }
-}
-
-/**********************************************************************/
-/*!
-        @brief    Get the pixel color value at a given coordinate
-        @param    x   x coordinate
-        @param    y   y coordinate
-        @returns  The desired pixel's binary color value, either 0x1 (on) or 0x0
-   (off)
-*/
-/**********************************************************************/
-bool GFXcanvas1::getPixel(int16_t x, int16_t y) const {
-  int16_t t;
-  switch (rotation) {
-  case 1:
-    t = x;
-    x = WIDTH - 1 - y;
-    y = t;
-    break;
-  case 2:
-    x = WIDTH - 1 - x;
-    y = HEIGHT - 1 - y;
-    break;
-  case 3:
-    t = x;
-    x = y;
-    y = HEIGHT - 1 - t;
-    break;
-  }
-  return getRawPixel(x, y);
-}
-
-/**********************************************************************/
-/*!
-        @brief    Get the pixel color value at a given, unrotated coordinate.
-              This method is intended for hardware drivers to get pixel value
-              in physical coordinates.
-        @param    x   x coordinate
-        @param    y   y coordinate
-        @returns  The desired pixel's binary color value, either 0x1 (on) or 0x0
-   (off)
-*/
-/**********************************************************************/
-bool GFXcanvas1::getRawPixel(int16_t x, int16_t y) const {
-  if ((x < 0) || (y < 0) || (x >= WIDTH) || (y >= HEIGHT))
-    return 0;
-  if (this->getBuffer()) {
-    uint8_t *buffer = this->getBuffer();
-    uint8_t *ptr = &buffer[(x / 8) + y * ((WIDTH + 7) / 8)];
-
-#ifdef __AVR__
-    return ((*ptr) & pgm_read_byte(&GFXsetBit[x & 7])) != 0;
-#else
-    return ((*ptr) & (0x80 >> (x & 7))) != 0;
-#endif
-  }
-  return 0;
-}
-
-/**************************************************************************/
-/*!
-    @brief  Fill the framebuffer completely with one color
-    @param  color Binary (on or off) color to fill with
-*/
-/**************************************************************************/
-void GFXcanvas1::fillScreen(uint16_t color) {
-  if (buffer) {
-    uint16_t bytes = ((WIDTH + 7) / 8) * HEIGHT;
-    memset(buffer, color ? 0xFF : 0x00, bytes);
-  }
-}
-
-/**************************************************************************/
-/*!
-   @brief    Instatiate a GFX 8-bit canvas context for graphics
-   @param    w   Display width, in pixels
-   @param    h   Display height, in pixels
-*/
-/**************************************************************************/
-GFXcanvas8::GFXcanvas8(uint16_t w, uint16_t h) : Adafruit_GFX(w, h) {
-  uint32_t bytes = w * h;
-  if ((buffer = (uint8_t *)malloc(bytes))) {
-    memset(buffer, 0, bytes);
-  }
-}
-
-/**************************************************************************/
-/*!
-   @brief    Delete the canvas, free memory
-*/
-/**************************************************************************/
-GFXcanvas8::~GFXcanvas8(void) {
-  if (buffer)
-    free(buffer);
-}
-
-/**************************************************************************/
-/*!
-    @brief  Draw a pixel to the canvas framebuffer
-    @param  x   x coordinate
-    @param  y   y coordinate
-    @param  color 8-bit Color to fill with. Only lower byte of uint16_t is used.
-*/
-/**************************************************************************/
-void GFXcanvas8::drawPixel(int16_t x, int16_t y, uint16_t color) {
-  if (buffer) {
-    if ((x < 0) || (y < 0) || (x >= _width) || (y >= _height))
-      return;
-
-    int16_t t;
-    switch (rotation) {
-    case 1:
-      t = x;
-      x = WIDTH - 1 - y;
-      y = t;
-      break;
-    case 2:
-      x = WIDTH - 1 - x;
-      y = HEIGHT - 1 - y;
-      break;
-    case 3:
-      t = x;
-      x = y;
-      y = HEIGHT - 1 - t;
-      break;
-    }
-
-    buffer[x + y * WIDTH] = color;
-  }
-}
-
-/**********************************************************************/
-/*!
-        @brief    Get the pixel color value at a given coordinate
-        @param    x   x coordinate
-        @param    y   y coordinate
-        @returns  The desired pixel's 8-bit color value
-*/
-/**********************************************************************/
-uint8_t GFXcanvas8::getPixel(int16_t x, int16_t y) const {
-  int16_t t;
-  switch (rotation) {
-  case 1:
-    t = x;
-    x = WIDTH - 1 - y;
-    y = t;
-    break;
-  case 2:
-    x = WIDTH - 1 - x;
-    y = HEIGHT - 1 - y;
-    break;
-  case 3:
-    t = x;
-    x = y;
-    y = HEIGHT - 1 - t;
-    break;
-  }
-  return getRawPixel(x, y);
-}
-
-/**********************************************************************/
-/*!
-        @brief    Get the pixel color value at a given, unrotated coordinate.
-              This method is intended for hardware drivers to get pixel value
-              in physical coordinates.
-        @param    x   x coordinate
-        @param    y   y coordinate
-        @returns  The desired pixel's 8-bit color value
-*/
-/**********************************************************************/
-uint8_t GFXcanvas8::getRawPixel(int16_t x, int16_t y) const {
-  if ((x < 0) || (y < 0) || (x >= WIDTH) || (y >= HEIGHT))
-    return 0;
-  if (buffer) {
-    return buffer[x + y * WIDTH];
-  }
-  return 0;
-}
-
-/**************************************************************************/
-/*!
-    @brief  Fill the framebuffer completely with one color
-    @param  color 8-bit Color to fill with. Only lower byte of uint16_t is used.
-*/
-/**************************************************************************/
-void GFXcanvas8::fillScreen(uint16_t color) {
-  if (buffer) {
-    memset(buffer, color, WIDTH * HEIGHT);
-  }
-}
-
-void GFXcanvas8::writeFastHLine(int16_t x, int16_t y, int16_t w,
-                                uint16_t color) {
-
-  if ((x >= _width) || (y < 0) || (y >= _height))
-    return;
-  int16_t x2 = x + w - 1;
-  if (x2 < 0)
-    return;
-
-  // Clip left/right
-  if (x < 0) {
-    x = 0;
-    w = x2 + 1;
-  }
-  if (x2 >= _width)
-    w = _width - x;
-
-  int16_t t;
-  switch (rotation) {
-  case 1:
-    t = x;
-    x = WIDTH - 1 - y;
-    y = t;
-    break;
-  case 2:
-    x = WIDTH - 1 - x;
-    y = HEIGHT - 1 - y;
-    break;
-  case 3:
-    t = x;
-    x = y;
-    y = HEIGHT - 1 - t;
-    break;
-  }
-
-  memset(buffer + y * WIDTH + x, color, w);
-}
-
-/**************************************************************************/
-/*!
-   @brief    Instatiate a GFX 16-bit canvas context for graphics
-   @param    w   Display width, in pixels
-   @param    h   Display height, in pixels
-*/
-/**************************************************************************/
-GFXcanvas16::GFXcanvas16(uint16_t w, uint16_t h) : Adafruit_GFX(w, h) {
-  uint32_t bytes = w * h * 2;
-  if ((buffer = (uint16_t *)malloc(bytes))) {
-    memset(buffer, 0, bytes);
-  }
-}
-
-/**************************************************************************/
-/*!
-   @brief    Delete the canvas, free memory
-*/
-/**************************************************************************/
-GFXcanvas16::~GFXcanvas16(void) {
-  if (buffer)
-    free(buffer);
-}
-
-/**************************************************************************/
-/*!
-    @brief  Draw a pixel to the canvas framebuffer
-    @param  x   x coordinate
-    @param  y   y coordinate
-    @param  color 16-bit 5-6-5 Color to fill with
-*/
-/**************************************************************************/
-void GFXcanvas16::drawPixel(int16_t x, int16_t y, uint16_t color) {
-  if (buffer) {
-    if ((x < 0) || (y < 0) || (x >= _width) || (y >= _height))
-      return;
-
-    int16_t t;
-    switch (rotation) {
-    case 1:
-      t = x;
-      x = WIDTH - 1 - y;
-      y = t;
-      break;
-    case 2:
-      x = WIDTH - 1 - x;
-      y = HEIGHT - 1 - y;
-      break;
-    case 3:
-      t = x;
-      x = y;
-      y = HEIGHT - 1 - t;
-      break;
-    }
-
-    buffer[x + y * WIDTH] = color;
-  }
-}
-
-/**********************************************************************/
-/*!
-        @brief    Get the pixel color value at a given coordinate
-        @param    x   x coordinate
-        @param    y   y coordinate
-        @returns  The desired pixel's 16-bit 5-6-5 color value
-*/
-/**********************************************************************/
-uint16_t GFXcanvas16::getPixel(int16_t x, int16_t y) const {
-  int16_t t;
-  switch (rotation) {
-  case 1:
-    t = x;
-    x = WIDTH - 1 - y;
-    y = t;
-    break;
-  case 2:
-    x = WIDTH - 1 - x;
-    y = HEIGHT - 1 - y;
-    break;
-  case 3:
-    t = x;
-    x = y;
-    y = HEIGHT - 1 - t;
-    break;
-  }
-  return getRawPixel(x, y);
-}
-
-/**********************************************************************/
-/*!
-        @brief    Get the pixel color value at a given, unrotated coordinate.
-              This method is intended for hardware drivers to get pixel value
-              in physical coordinates.
-        @param    x   x coordinate
-        @param    y   y coordinate
-        @returns  The desired pixel's 16-bit 5-6-5 color value
-*/
-/**********************************************************************/
-uint16_t GFXcanvas16::getRawPixel(int16_t x, int16_t y) const {
-  if ((x < 0) || (y < 0) || (x >= WIDTH) || (y >= HEIGHT))
-    return 0;
-  if (buffer) {
-    return buffer[x + y * WIDTH];
-  }
-  return 0;
-}
-
-/**************************************************************************/
-/*!
-    @brief  Fill the framebuffer completely with one color
-    @param  color 16-bit 5-6-5 Color to fill with
-*/
-/**************************************************************************/
-void GFXcanvas16::fillScreen(uint16_t color) {
-  if (buffer) {
-    uint8_t hi = color >> 8, lo = color & 0xFF;
-    if (hi == lo) {
-      memset(buffer, lo, WIDTH * HEIGHT * 2);
-    } else {
-      uint32_t i, pixels = WIDTH * HEIGHT;
-      for (i = 0; i < pixels; i++)
-        buffer[i] = color;
-    }
-  }
-}
-
-/**************************************************************************/
-/*!
-    @brief  Reverses the "endian-ness" of each 16-bit pixel within the
-            canvas; little-endian to big-endian, or big-endian to little.
-            Most microcontrollers (such as SAMD) are little-endian, while
-            most displays tend toward big-endianness. All the drawing
-            functions (including RGB bitmap drawing) take care of this
-            automatically, but some specialized code (usually involving
-            DMA) can benefit from having pixel data already in the
-            display-native order. Note that this does NOT convert to a
-            SPECIFIC endian-ness, it just flips the bytes within each word.
-*/
-/**************************************************************************/
-void GFXcanvas16::byteSwap(void) {
-  if (buffer) {
-    uint32_t i, pixels = WIDTH * HEIGHT;
-    for (i = 0; i < pixels; i++)
-      buffer[i] = __builtin_bswap16(buffer[i]);
-  }
-}

+ 0 - 382
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Adafruit_GFX.h

@@ -1,382 +0,0 @@
-#ifndef _ADAFRUIT_GFX_H
-#define _ADAFRUIT_GFX_H
-
-#if ARDUINO >= 100
-#include "Arduino.h"
-#include "Print.h"
-#else
-#include "WProgram.h"
-#endif
-#include "gfxfont.h"
-
-/// A generic graphics superclass that can handle all sorts of drawing. At a
-/// minimum you can subclass and provide drawPixel(). At a maximum you can do a
-/// ton of overriding to optimize. Used for any/all Adafruit displays!
-class Adafruit_GFX : public Print {
-
-public:
-  Adafruit_GFX(int16_t w, int16_t h); // Constructor
-
-  /**********************************************************************/
-  /*!
-    @brief  Draw to the screen/framebuffer/etc.
-    Must be overridden in subclass.
-    @param  x    X coordinate in pixels
-    @param  y    Y coordinate in pixels
-    @param color  16-bit pixel color.
-  */
-  /**********************************************************************/
-  virtual void drawPixel(int16_t x, int16_t y, uint16_t color) = 0;
-
-  // TRANSACTION API / CORE DRAW API
-  // These MAY be overridden by the subclass to provide device-specific
-  // optimized code.  Otherwise 'generic' versions are used.
-  virtual void startWrite(void);
-  virtual void writePixel(int16_t x, int16_t y, uint16_t color);
-  virtual void writeFillRect(int16_t x, int16_t y, int16_t w, int16_t h,
-                             uint16_t color);
-  virtual void writeFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color);
-  virtual void writeFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color);
-  virtual void writeLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1,
-                         uint16_t color);
-  virtual void endWrite(void);
-
-  // CONTROL API
-  // These MAY be overridden by the subclass to provide device-specific
-  // optimized code.  Otherwise 'generic' versions are used.
-  virtual void setRotation(uint8_t r);
-  virtual void invertDisplay(bool i);
-
-  // BASIC DRAW API
-  // These MAY be overridden by the subclass to provide device-specific
-  // optimized code.  Otherwise 'generic' versions are used.
-
-  // It's good to implement those, even if using transaction API
-  virtual void drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color);
-  virtual void drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color);
-  virtual void fillRect(int16_t x, int16_t y, int16_t w, int16_t h,
-                        uint16_t color);
-  virtual void fillScreen(uint16_t color);
-  // Optional and probably not necessary to change
-  virtual void drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1,
-                        uint16_t color);
-  virtual void drawRect(int16_t x, int16_t y, int16_t w, int16_t h,
-                        uint16_t color);
-
-  // These exist only with Adafruit_GFX (no subclass overrides)
-  void drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color);
-  void drawCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername,
-                        uint16_t color);
-  void fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color);
-  void fillCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername,
-                        int16_t delta, uint16_t color);
-  void drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2,
-                    int16_t y2, uint16_t color);
-  void fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2,
-                    int16_t y2, uint16_t color);
-  void drawRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h,
-                     int16_t radius, uint16_t color);
-  void fillRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h,
-                     int16_t radius, uint16_t color);
-  void drawBitmap(int16_t x, int16_t y, const uint8_t bitmap[], int16_t w,
-                  int16_t h, uint16_t color);
-  void drawBitmap(int16_t x, int16_t y, const uint8_t bitmap[], int16_t w,
-                  int16_t h, uint16_t color, uint16_t bg);
-  void drawBitmap(int16_t x, int16_t y, uint8_t *bitmap, int16_t w, int16_t h,
-                  uint16_t color);
-  void drawBitmap(int16_t x, int16_t y, uint8_t *bitmap, int16_t w, int16_t h,
-                  uint16_t color, uint16_t bg);
-  void drawXBitmap(int16_t x, int16_t y, const uint8_t bitmap[], int16_t w,
-                   int16_t h, uint16_t color);
-  void drawGrayscaleBitmap(int16_t x, int16_t y, const uint8_t bitmap[],
-                           int16_t w, int16_t h);
-  void drawGrayscaleBitmap(int16_t x, int16_t y, uint8_t *bitmap, int16_t w,
-                           int16_t h);
-  void drawGrayscaleBitmap(int16_t x, int16_t y, const uint8_t bitmap[],
-                           const uint8_t mask[], int16_t w, int16_t h);
-  void drawGrayscaleBitmap(int16_t x, int16_t y, uint8_t *bitmap, uint8_t *mask,
-                           int16_t w, int16_t h);
-  void drawRGBBitmap(int16_t x, int16_t y, const uint16_t bitmap[], int16_t w,
-                     int16_t h);
-  void drawRGBBitmap(int16_t x, int16_t y, uint16_t *bitmap, int16_t w,
-                     int16_t h);
-  void drawRGBBitmap(int16_t x, int16_t y, const uint16_t bitmap[],
-                     const uint8_t mask[], int16_t w, int16_t h);
-  void drawRGBBitmap(int16_t x, int16_t y, uint16_t *bitmap, uint8_t *mask,
-                     int16_t w, int16_t h);
-  void drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color,
-                uint16_t bg, uint8_t size);
-  void drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color,
-                uint16_t bg, uint8_t size_x, uint8_t size_y);
-  void getTextBounds(const char *string, int16_t x, int16_t y, int16_t *x1,
-                     int16_t *y1, uint16_t *w, uint16_t *h);
-  void getTextBounds(const __FlashStringHelper *s, int16_t x, int16_t y,
-                     int16_t *x1, int16_t *y1, uint16_t *w, uint16_t *h);
-  void getTextBounds(const String &str, int16_t x, int16_t y, int16_t *x1,
-                     int16_t *y1, uint16_t *w, uint16_t *h);
-  void setTextSize(uint8_t s);
-  void setTextSize(uint8_t sx, uint8_t sy);
-  void setFont(const GFXfont *f = NULL);
-
-  /**********************************************************************/
-  /*!
-    @brief  Set text cursor location
-    @param  x    X coordinate in pixels
-    @param  y    Y coordinate in pixels
-  */
-  /**********************************************************************/
-  void setCursor(int16_t x, int16_t y) {
-    cursor_x = x;
-    cursor_y = y;
-  }
-
-  /**********************************************************************/
-  /*!
-    @brief   Set text font color with transparant background
-    @param   c   16-bit 5-6-5 Color to draw text with
-    @note    For 'transparent' background, background and foreground
-             are set to same color rather than using a separate flag.
-  */
-  /**********************************************************************/
-  void setTextColor(uint16_t c) { textcolor = textbgcolor = c; }
-
-  /**********************************************************************/
-  /*!
-    @brief   Set text font color with custom background color
-    @param   c   16-bit 5-6-5 Color to draw text with
-    @param   bg  16-bit 5-6-5 Color to draw background/fill with
-  */
-  /**********************************************************************/
-  void setTextColor(uint16_t c, uint16_t bg) {
-    textcolor = c;
-    textbgcolor = bg;
-  }
-
-  /**********************************************************************/
-  /*!
-  @brief  Set whether text that is too long for the screen width should
-          automatically wrap around to the next line (else clip right).
-  @param  w  true for wrapping, false for clipping
-  */
-  /**********************************************************************/
-  void setTextWrap(bool w) { wrap = w; }
-
-  /**********************************************************************/
-  /*!
-    @brief  Enable (or disable) Code Page 437-compatible charset.
-            There was an error in glcdfont.c for the longest time -- one
-            character (#176, the 'light shade' block) was missing -- this
-            threw off the index of every character that followed it.
-            But a TON of code has been written with the erroneous
-            character indices. By default, the library uses the original
-            'wrong' behavior and old sketches will still work. Pass
-            'true' to this function to use correct CP437 character values
-            in your code.
-    @param  x  true = enable (new behavior), false = disable (old behavior)
-  */
-  /**********************************************************************/
-  void cp437(bool x = true) { _cp437 = x; }
-
-  using Print::write;
-#if ARDUINO >= 100
-  virtual size_t write(uint8_t);
-#else
-  virtual void write(uint8_t);
-#endif
-
-  /************************************************************************/
-  /*!
-    @brief      Get width of the display, accounting for current rotation
-    @returns    Width in pixels
-  */
-  /************************************************************************/
-  int16_t width(void) const { return _width; };
-
-  /************************************************************************/
-  /*!
-    @brief      Get height of the display, accounting for current rotation
-    @returns    Height in pixels
-  */
-  /************************************************************************/
-  int16_t height(void) const { return _height; }
-
-  /************************************************************************/
-  /*!
-    @brief      Get rotation setting for display
-    @returns    0 thru 3 corresponding to 4 cardinal rotations
-  */
-  /************************************************************************/
-  uint8_t getRotation(void) const { return rotation; }
-
-  // get current cursor position (get rotation safe maximum values,
-  // using: width() for x, height() for y)
-  /************************************************************************/
-  /*!
-    @brief  Get text cursor X location
-    @returns    X coordinate in pixels
-  */
-  /************************************************************************/
-  int16_t getCursorX(void) const { return cursor_x; }
-
-  /************************************************************************/
-  /*!
-    @brief      Get text cursor Y location
-    @returns    Y coordinate in pixels
-  */
-  /************************************************************************/
-  int16_t getCursorY(void) const { return cursor_y; };
-
-protected:
-  void charBounds(unsigned char c, int16_t *x, int16_t *y, int16_t *minx,
-                  int16_t *miny, int16_t *maxx, int16_t *maxy);
-  int16_t WIDTH;        ///< This is the 'raw' display width - never changes
-  int16_t HEIGHT;       ///< This is the 'raw' display height - never changes
-  int16_t _width;       ///< Display width as modified by current rotation
-  int16_t _height;      ///< Display height as modified by current rotation
-  int16_t cursor_x;     ///< x location to start print()ing text
-  int16_t cursor_y;     ///< y location to start print()ing text
-  uint16_t textcolor;   ///< 16-bit background color for print()
-  uint16_t textbgcolor; ///< 16-bit text color for print()
-  uint8_t textsize_x;   ///< Desired magnification in X-axis of text to print()
-  uint8_t textsize_y;   ///< Desired magnification in Y-axis of text to print()
-  uint8_t rotation;     ///< Display rotation (0 thru 3)
-  bool wrap;            ///< If set, 'wrap' text at right edge of display
-  bool _cp437;          ///< If set, use correct CP437 charset (default is off)
-  GFXfont *gfxFont;     ///< Pointer to special font
-};
-
-/// A simple drawn button UI element
-class Adafruit_GFX_Button {
-
-public:
-  Adafruit_GFX_Button(void);
-  // "Classic" initButton() uses center & size
-  void initButton(Adafruit_GFX *gfx, int16_t x, int16_t y, uint16_t w,
-                  uint16_t h, uint16_t outline, uint16_t fill,
-                  uint16_t textcolor, char *label, uint8_t textsize);
-  void initButton(Adafruit_GFX *gfx, int16_t x, int16_t y, uint16_t w,
-                  uint16_t h, uint16_t outline, uint16_t fill,
-                  uint16_t textcolor, char *label, uint8_t textsize_x,
-                  uint8_t textsize_y);
-  // New/alt initButton() uses upper-left corner & size
-  void initButtonUL(Adafruit_GFX *gfx, int16_t x1, int16_t y1, uint16_t w,
-                    uint16_t h, uint16_t outline, uint16_t fill,
-                    uint16_t textcolor, char *label, uint8_t textsize);
-  void initButtonUL(Adafruit_GFX *gfx, int16_t x1, int16_t y1, uint16_t w,
-                    uint16_t h, uint16_t outline, uint16_t fill,
-                    uint16_t textcolor, char *label, uint8_t textsize_x,
-                    uint8_t textsize_y);
-  void drawButton(bool inverted = false);
-  bool contains(int16_t x, int16_t y);
-
-  /**********************************************************************/
-  /*!
-    @brief    Sets button state, should be done by some touch function
-    @param    p  True for pressed, false for not.
-  */
-  /**********************************************************************/
-  void press(bool p) {
-    laststate = currstate;
-    currstate = p;
-  }
-
-  bool justPressed();
-  bool justReleased();
-
-  /**********************************************************************/
-  /*!
-    @brief    Query whether the button is currently pressed
-    @returns  True if pressed
-  */
-  /**********************************************************************/
-  bool isPressed(void) { return currstate; };
-
-private:
-  Adafruit_GFX *_gfx;
-  int16_t _x1, _y1; // Coordinates of top-left corner
-  uint16_t _w, _h;
-  uint8_t _textsize_x;
-  uint8_t _textsize_y;
-  uint16_t _outlinecolor, _fillcolor, _textcolor;
-  char _label[10];
-
-  bool currstate, laststate;
-};
-
-/// A GFX 1-bit canvas context for graphics
-class GFXcanvas1 : public Adafruit_GFX {
-public:
-  GFXcanvas1(uint16_t w, uint16_t h);
-  ~GFXcanvas1(void);
-  void drawPixel(int16_t x, int16_t y, uint16_t color);
-  void fillScreen(uint16_t color);
-  bool getPixel(int16_t x, int16_t y) const;
-  /**********************************************************************/
-  /*!
-    @brief    Get a pointer to the internal buffer memory
-    @returns  A pointer to the allocated buffer
-  */
-  /**********************************************************************/
-  uint8_t *getBuffer(void) const { return buffer; }
-
-protected:
-  bool getRawPixel(int16_t x, int16_t y) const;
-
-private:
-  uint8_t *buffer;
-
-#ifdef __AVR__
-  // Bitmask tables of 0x80>>X and ~(0x80>>X), because X>>Y is slow on AVR
-  static const uint8_t PROGMEM GFXsetBit[], GFXclrBit[];
-#endif
-};
-
-/// A GFX 8-bit canvas context for graphics
-class GFXcanvas8 : public Adafruit_GFX {
-public:
-  GFXcanvas8(uint16_t w, uint16_t h);
-  ~GFXcanvas8(void);
-  void drawPixel(int16_t x, int16_t y, uint16_t color);
-  void fillScreen(uint16_t color);
-  void writeFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color);
-  uint8_t getPixel(int16_t x, int16_t y) const;
-  /**********************************************************************/
-  /*!
-   @brief    Get a pointer to the internal buffer memory
-   @returns  A pointer to the allocated buffer
-  */
-  /**********************************************************************/
-  uint8_t *getBuffer(void) const { return buffer; }
-
-protected:
-  uint8_t getRawPixel(int16_t x, int16_t y) const;
-
-private:
-  uint8_t *buffer;
-};
-
-///  A GFX 16-bit canvas context for graphics
-class GFXcanvas16 : public Adafruit_GFX {
-public:
-  GFXcanvas16(uint16_t w, uint16_t h);
-  ~GFXcanvas16(void);
-  void drawPixel(int16_t x, int16_t y, uint16_t color);
-  void fillScreen(uint16_t color);
-  void byteSwap(void);
-  uint16_t getPixel(int16_t x, int16_t y) const;
-  /**********************************************************************/
-  /*!
-    @brief    Get a pointer to the internal buffer memory
-    @returns  A pointer to the allocated buffer
-  */
-  /**********************************************************************/
-  uint16_t *getBuffer(void) const { return buffer; }
-
-protected:
-  uint16_t getRawPixel(int16_t x, int16_t y) const;
-
-private:
-  uint16_t *buffer;
-};
-
-#endif // _ADAFRUIT_GFX_H

+ 0 - 402
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Adafruit_MonoOLED.cpp

@@ -1,402 +0,0 @@
-/*!
- * @file Adafruit_MonoOLED.cpp
- *
- * This is documentation for Adafruit's generic library for monochrome
- * OLED displays: http://www.adafruit.com/category/63_98
- *
- * These displays use I2C or SPI to communicate. I2C requires 2 pins
- * (SCL+SDA) and optionally a RESET pin. SPI requires 4 pins (MOSI, SCK,
- * select, data/command) and optionally a reset pin. Hardware SPI or
- * 'bitbang' software SPI are both supported.
- *
- * Adafruit invests time and resources providing this open source code,
- * please support Adafruit and open-source hardware by purchasing
- * products from Adafruit!
- *
- */
-
-#if !defined(__AVR_ATtiny85__) // Not for ATtiny, at all
-
-#include "Adafruit_MonoOLED.h"
-#include <Adafruit_GFX.h>
-
-// SOME DEFINES AND STATIC VARIABLES USED INTERNALLY -----------------------
-
-#define monooled_swap(a, b)                                                    \
-  (((a) ^= (b)), ((b) ^= (a)), ((a) ^= (b))) ///< No-temp-var swap operation
-
-// CONSTRUCTORS, DESTRUCTOR ------------------------------------------------
-
-/*!
-    @brief  Constructor for I2C-interfaced OLED displays.
-    @param  w
-            Display width in pixels
-    @param  h
-            Display height in pixels
-    @param  twi
-            Pointer to an existing TwoWire instance (e.g. &Wire, the
-            microcontroller's primary I2C bus).
-    @param  rst_pin
-            Reset pin (using Arduino pin numbering), or -1 if not used
-            (some displays might be wired to share the microcontroller's
-            reset pin).
-    @param  clkDuring
-            Speed (in Hz) for Wire transmissions in library calls.
-            Defaults to 400000 (400 KHz), a known 'safe' value for most
-            microcontrollers, and meets the OLED datasheet spec.
-            Some systems can operate I2C faster (800 KHz for ESP32, 1 MHz
-            for many other 32-bit MCUs), and some (perhaps not all)
-            Many OLED's can work with this -- so it's optionally be specified
-            here and is not a default behavior. (Ignored if using pre-1.5.7
-            Arduino software, which operates I2C at a fixed 100 KHz.)
-    @param  clkAfter
-            Speed (in Hz) for Wire transmissions following library
-            calls. Defaults to 100000 (100 KHz), the default Arduino Wire
-            speed. This is done rather than leaving it at the 'during' speed
-            because other devices on the I2C bus might not be compatible
-            with the faster rate. (Ignored if using pre-1.5.7 Arduino
-            software, which operates I2C at a fixed 100 KHz.)
-    @note   Call the object's begin() function before use -- buffer
-            allocation is performed there!
-*/
-Adafruit_MonoOLED::Adafruit_MonoOLED(uint16_t w, uint16_t h, TwoWire *twi,
-                                     int8_t rst_pin, uint32_t clkDuring,
-                                     uint32_t clkAfter)
-    : Adafruit_GFX(w, h), i2c_preclk(clkDuring), i2c_postclk(clkAfter),
-      buffer(NULL), dcPin(-1), csPin(-1), rstPin(rst_pin) {
-  i2c_dev = NULL;
-  _theWire = twi;
-}
-
-/*!
-    @brief  Constructor for SPI MonoOLED displays, using software (bitbang)
-            SPI.
-    @param  w
-            Display width in pixels
-    @param  h
-            Display height in pixels
-    @param  mosi_pin
-            MOSI (master out, slave in) pin (using Arduino pin numbering).
-            This transfers serial data from microcontroller to display.
-    @param  sclk_pin
-            SCLK (serial clock) pin (using Arduino pin numbering).
-            This clocks each bit from MOSI.
-    @param  dc_pin
-            Data/command pin (using Arduino pin numbering), selects whether
-            display is receiving commands (low) or data (high).
-    @param  rst_pin
-            Reset pin (using Arduino pin numbering), or -1 if not used
-            (some displays might be wired to share the microcontroller's
-            reset pin).
-    @param  cs_pin
-            Chip-select pin (using Arduino pin numbering) for sharing the
-            bus with other devices. Active low.
-    @note   Call the object's begin() function before use -- buffer
-            allocation is performed there!
-*/
-Adafruit_MonoOLED::Adafruit_MonoOLED(uint16_t w, uint16_t h, int8_t mosi_pin,
-                                     int8_t sclk_pin, int8_t dc_pin,
-                                     int8_t rst_pin, int8_t cs_pin)
-    : Adafruit_GFX(w, h), dcPin(dc_pin), csPin(cs_pin), rstPin(rst_pin) {
-
-  spi_dev = new Adafruit_SPIDevice(cs_pin, sclk_pin, -1, mosi_pin, 1000000);
-}
-
-/*!
-    @brief  Constructor for SPI MonoOLED displays, using native hardware SPI.
-    @param  w
-            Display width in pixels
-    @param  h
-            Display height in pixels
-    @param  spi
-            Pointer to an existing SPIClass instance (e.g. &SPI, the
-            microcontroller's primary SPI bus).
-    @param  dc_pin
-            Data/command pin (using Arduino pin numbering), selects whether
-            display is receiving commands (low) or data (high).
-    @param  rst_pin
-            Reset pin (using Arduino pin numbering), or -1 if not used
-            (some displays might be wired to share the microcontroller's
-            reset pin).
-    @param  cs_pin
-            Chip-select pin (using Arduino pin numbering) for sharing the
-            bus with other devices. Active low.
-    @param  bitrate
-            SPI clock rate for transfers to this display. Default if
-            unspecified is 8000000UL (8 MHz).
-    @note   Call the object's begin() function before use -- buffer
-            allocation is performed there!
-*/
-Adafruit_MonoOLED::Adafruit_MonoOLED(uint16_t w, uint16_t h, SPIClass *spi,
-                                     int8_t dc_pin, int8_t rst_pin,
-                                     int8_t cs_pin, uint32_t bitrate)
-    : Adafruit_GFX(w, h), dcPin(dc_pin), csPin(cs_pin), rstPin(rst_pin) {
-
-  spi_dev = new Adafruit_SPIDevice(cs_pin, bitrate, SPI_BITORDER_MSBFIRST,
-                                   SPI_MODE0, spi);
-}
-
-/*!
-    @brief  Destructor for Adafruit_MonoOLED object.
-*/
-Adafruit_MonoOLED::~Adafruit_MonoOLED(void) {
-  if (buffer) {
-    free(buffer);
-    buffer = NULL;
-  }
-  if (spi_dev)
-    delete spi_dev;
-  if (i2c_dev)
-    delete i2c_dev;
-}
-
-// LOW-LEVEL UTILS ---------------------------------------------------------
-
-/*!
-    @brief Issue single command byte to OLED, using I2C or hard/soft SPI as
-   needed.
-    @param c The single byte command
-*/
-void Adafruit_MonoOLED::oled_command(uint8_t c) {
-  if (i2c_dev) {                // I2C
-    uint8_t buf[2] = {0x00, c}; // Co = 0, D/C = 0
-    i2c_dev->write(buf, 2);
-  } else { // SPI (hw or soft) -- transaction started in calling function
-    digitalWrite(dcPin, LOW);
-    spi_dev->write(&c, 1);
-  }
-}
-
-// Issue list of commands to MonoOLED
-/*!
-    @brief Issue multiple bytes of commands OLED, using I2C or hard/soft SPI as
-   needed.
-    @param c Pointer to the command array
-    @param n The number of bytes in the command array
-    @returns True for success on ability to write the data in I2C.
-*/
-
-bool Adafruit_MonoOLED::oled_commandList(const uint8_t *c, uint8_t n) {
-  if (i2c_dev) {            // I2C
-    uint8_t dc_byte = 0x00; // Co = 0, D/C = 0
-    if (!i2c_dev->write((uint8_t *)c, n, true, &dc_byte, 1)) {
-      return false;
-    }
-  } else { // SPI -- transaction started in calling function
-    digitalWrite(dcPin, LOW);
-    if (!spi_dev->write((uint8_t *)c, n)) {
-      return false;
-    }
-  }
-  return true;
-}
-
-// ALLOCATE & INIT DISPLAY -------------------------------------------------
-
-/*!
-    @brief  Allocate RAM for image buffer, initialize peripherals and pins.
-            Note that subclasses must call this before other begin() init
-    @param  addr
-            I2C address of corresponding oled display.
-            SPI displays (hardware or software) do not use addresses, but
-            this argument is still required. Default if unspecified is 0x3C.
-    @param  reset
-            If true, and if the reset pin passed to the constructor is
-            valid, a hard reset will be performed before initializing the
-            display. If using multiple oled displays on the same bus, and
-            if they all share the same reset pin, you should only pass true
-            on the first display being initialized, false on all others,
-            else the already-initialized displays would be reset. Default if
-            unspecified is true.
-    @return true on successful allocation/init, false otherwise.
-            Well-behaved code should check the return value before
-            proceeding.
-    @note   MUST call this function before any drawing or updates!
-*/
-bool Adafruit_MonoOLED::_init(uint8_t addr, bool reset) {
-
-  // attempt to malloc the bitmap framebuffer
-  if ((!buffer) && !(buffer = (uint8_t *)malloc(WIDTH * ((HEIGHT + 7) / 8)))) {
-    return false;
-  }
-
-  // Reset OLED if requested and reset pin specified in constructor
-  if (reset && (rstPin >= 0)) {
-    pinMode(rstPin, OUTPUT);
-    digitalWrite(rstPin, HIGH);
-    delay(10);                  // VDD goes high at start, pause
-    digitalWrite(rstPin, LOW);  // Bring reset low
-    delay(10);                  // Wait 10 ms
-    digitalWrite(rstPin, HIGH); // Bring out of reset
-    delay(10);
-  }
-
-  // Setup pin directions
-  if (_theWire) { // using I2C
-    i2c_dev = new Adafruit_I2CDevice(addr, _theWire);
-    // look for i2c address:
-    if (!i2c_dev || !i2c_dev->begin()) {
-      return false;
-    }
-  } else { // Using one of the SPI modes, either soft or hardware
-    if (!spi_dev || !spi_dev->begin()) {
-      return false;
-    }
-    pinMode(dcPin, OUTPUT); // Set data/command pin as output
-  }
-
-  clearDisplay();
-
-  // set max dirty window
-  window_x1 = 0;
-  window_y1 = 0;
-  window_x2 = WIDTH - 1;
-  window_y2 = HEIGHT - 1;
-
-  return true; // Success
-}
-
-// DRAWING FUNCTIONS -------------------------------------------------------
-
-/*!
-    @brief  Set/clear/invert a single pixel. This is also invoked by the
-            Adafruit_GFX library in generating many higher-level graphics
-            primitives.
-    @param  x
-            Column of display -- 0 at left to (screen width - 1) at right.
-    @param  y
-            Row of display -- 0 at top to (screen height -1) at bottom.
-    @param  color
-            Pixel color, one of: MONOOLED_BLACK, MONOOLED_WHITE or
-   MONOOLED_INVERT.
-    @return None (void).
-    @note   Changes buffer contents only, no immediate effect on display.
-            Follow up with a call to display(), or with other graphics
-            commands as needed by one's own application.
-*/
-void Adafruit_MonoOLED::drawPixel(int16_t x, int16_t y, uint16_t color) {
-  if ((x >= 0) && (x < width()) && (y >= 0) && (y < height())) {
-    // Pixel is in-bounds. Rotate coordinates if needed.
-    switch (getRotation()) {
-    case 1:
-      monooled_swap(x, y);
-      x = WIDTH - x - 1;
-      break;
-    case 2:
-      x = WIDTH - x - 1;
-      y = HEIGHT - y - 1;
-      break;
-    case 3:
-      monooled_swap(x, y);
-      y = HEIGHT - y - 1;
-      break;
-    }
-
-    // adjust dirty window
-    window_x1 = min(window_x1, x);
-    window_y1 = min(window_y1, y);
-    window_x2 = max(window_x2, x);
-    window_y2 = max(window_y2, y);
-
-    switch (color) {
-    case MONOOLED_WHITE:
-      buffer[x + (y / 8) * WIDTH] |= (1 << (y & 7));
-      break;
-    case MONOOLED_BLACK:
-      buffer[x + (y / 8) * WIDTH] &= ~(1 << (y & 7));
-      break;
-    case MONOOLED_INVERSE:
-      buffer[x + (y / 8) * WIDTH] ^= (1 << (y & 7));
-      break;
-    }
-  }
-}
-
-/*!
-    @brief  Clear contents of display buffer (set all pixels to off).
-    @return None (void).
-    @note   Changes buffer contents only, no immediate effect on display.
-            Follow up with a call to display(), or with other graphics
-            commands as needed by one's own application.
-*/
-void Adafruit_MonoOLED::clearDisplay(void) {
-  memset(buffer, 0, WIDTH * ((HEIGHT + 7) / 8));
-  // set max dirty window
-  window_x1 = 0;
-  window_y1 = 0;
-  window_x2 = WIDTH - 1;
-  window_y2 = HEIGHT - 1;
-}
-
-/*!
-    @brief  Return color of a single pixel in display buffer.
-    @param  x
-            Column of display -- 0 at left to (screen width - 1) at right.
-    @param  y
-            Row of display -- 0 at top to (screen height -1) at bottom.
-    @return true if pixel is set (usually MONOOLED_WHITE, unless display invert
-   mode is enabled), false if clear (MONOOLED_BLACK).
-    @note   Reads from buffer contents; may not reflect current contents of
-            screen if display() has not been called.
-*/
-bool Adafruit_MonoOLED::getPixel(int16_t x, int16_t y) {
-  if ((x >= 0) && (x < width()) && (y >= 0) && (y < height())) {
-    // Pixel is in-bounds. Rotate coordinates if needed.
-    switch (getRotation()) {
-    case 1:
-      monooled_swap(x, y);
-      x = WIDTH - x - 1;
-      break;
-    case 2:
-      x = WIDTH - x - 1;
-      y = HEIGHT - y - 1;
-      break;
-    case 3:
-      monooled_swap(x, y);
-      y = HEIGHT - y - 1;
-      break;
-    }
-    return (buffer[x + (y / 8) * WIDTH] & (1 << (y & 7)));
-  }
-  return false; // Pixel out of bounds
-}
-
-/*!
-    @brief  Get base address of display buffer for direct reading or writing.
-    @return Pointer to an unsigned 8-bit array, column-major, columns padded
-            to full byte boundary if needed.
-*/
-uint8_t *Adafruit_MonoOLED::getBuffer(void) { return buffer; }
-
-// OTHER HARDWARE SETTINGS -------------------------------------------------
-
-/*!
-    @brief  Enable or disable display invert mode (white-on-black vs
-            black-on-white). Handy for testing!
-    @param  i
-            If true, switch to invert mode (black-on-white), else normal
-            mode (white-on-black).
-    @return None (void).
-    @note   This has an immediate effect on the display, no need to call the
-            display() function -- buffer contents are not changed, rather a
-            different pixel mode of the display hardware is used. When
-            enabled, drawing MONOOLED_BLACK (value 0) pixels will actually draw
-   white, MONOOLED_WHITE (value 1) will draw black.
-*/
-void Adafruit_MonoOLED::invertDisplay(bool i) {
-  oled_command(i ? MONOOLED_INVERTDISPLAY : MONOOLED_NORMALDISPLAY);
-}
-
-/*!
-    @brief  Adjust the display contrast.
-    @param  level The contrast level from 0 to 0x7F
-    @return None (void).
-    @note   This has an immediate effect on the display, no need to call the
-            display() function -- buffer contents are not changed.
-*/
-void Adafruit_MonoOLED::setContrast(uint8_t level) {
-  uint8_t cmd[] = {MONOOLED_SETCONTRAST, level};
-  oled_commandList(cmd, 2);
-}
-
-#endif /* ATTIN85 not supported */

+ 0 - 101
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Adafruit_MonoOLED.h

@@ -1,101 +0,0 @@
-/*!
- * @file Adafruit_MonoOLED.h
- *
- * This is part of for Adafruit's GFX library, supplying generic support
- * for monochrome OLED displays: http://www.adafruit.com/category/63_98
- *
- * These displays use I2C or SPI to communicate. I2C requires 2 pins
- * (SCL+SDA) and optionally a RESET pin. SPI requires 4 pins (MOSI, SCK,
- * select, data/command) and optionally a reset pin. Hardware SPI or
- * 'bitbang' software SPI are both supported.
- *
- * Adafruit invests time and resources providing this open source code,
- * please support Adafruit and open-source hardware by purchasing
- * products from Adafruit!
- *
- * Written by Limor Fried/Ladyada for Adafruit Industries, with
- * contributions from the open source community.
- *
- * BSD license, all text above, and the splash screen header file,
- * must be included in any redistribution.
- *
- */
-
-#ifndef _Adafruit_MONOOLED_H_
-#define _Adafruit_MONOOLED_H_
-
-#if !defined(__AVR_ATtiny85__) // Not for ATtiny, at all
-
-#include <Adafruit_GFX.h>
-#include <Adafruit_I2CDevice.h>
-#include <Adafruit_SPIDevice.h>
-#include <SPI.h>
-#include <Wire.h>
-
-#define MONOOLED_BLACK 0   ///< Draw 'off' pixels
-#define MONOOLED_WHITE 1   ///< Draw 'on' pixels
-#define MONOOLED_INVERSE 2 ///< Invert pixels
-
-/// These seem to be common commands for OLEDs
-#define MONOOLED_SETCONTRAST 0x81   ///< See datasheet
-#define MONOOLED_NORMALDISPLAY 0xA6 ///< See datasheet
-#define MONOOLED_INVERTDISPLAY 0xA7 ///< See datasheet
-#define MONOOLED_DISPLAYOFF 0xAE    ///< See datasheet
-#define MONOOLED_DISPLAYON 0xAF     ///< See datasheet
-
-/*!
-    @brief  Class that stores state and functions for interacting with
-            generic monochrome OLED displays.
-*/
-class Adafruit_MonoOLED : public Adafruit_GFX {
-public:
-  Adafruit_MonoOLED(uint16_t w, uint16_t h, TwoWire *twi = &Wire,
-                    int8_t rst_pin = -1, uint32_t preclk = 400000,
-                    uint32_t postclk = 100000);
-  Adafruit_MonoOLED(uint16_t w, uint16_t h, int8_t mosi_pin, int8_t sclk_pin,
-                    int8_t dc_pin, int8_t rst_pin, int8_t cs_pin);
-  Adafruit_MonoOLED(uint16_t w, uint16_t h, SPIClass *spi, int8_t dc_pin,
-                    int8_t rst_pin, int8_t cs_pin,
-                    uint32_t bitrate = 8000000UL);
-
-  ~Adafruit_MonoOLED(void);
-
-  /**
-   @brief The function that sub-classes define that writes out the buffer to
-   the display over I2C or SPI
-   **/
-  virtual void display(void) = 0;
-  void clearDisplay(void);
-  void invertDisplay(bool i);
-  void setContrast(uint8_t contrastlevel);
-  void drawPixel(int16_t x, int16_t y, uint16_t color);
-  bool getPixel(int16_t x, int16_t y);
-  uint8_t *getBuffer(void);
-
-  void oled_command(uint8_t c);
-  bool oled_commandList(const uint8_t *c, uint8_t n);
-
-protected:
-  bool _init(uint8_t i2caddr = 0x3C, bool reset = true);
-
-  Adafruit_SPIDevice *spi_dev = NULL; ///< The SPI interface BusIO device
-  Adafruit_I2CDevice *i2c_dev = NULL; ///< The I2C interface BusIO device
-  int32_t i2c_preclk = 400000,        ///< Configurable 'high speed' I2C rate
-      i2c_postclk = 100000;           ///< Configurable 'low speed' I2C rate
-  uint8_t *buffer = NULL; ///< Internal 1:1 framebuffer of display mem
-
-  int16_t window_x1, ///< Dirty tracking window minimum x
-      window_y1,     ///< Dirty tracking window minimum y
-      window_x2,     ///< Dirty tracking window maximum x
-      window_y2;     ///< Dirty tracking window maximum y
-
-  int dcPin,  ///< The Arduino pin connected to D/C (for SPI)
-      csPin,  ///< The Arduino pin connected to CS (for SPI)
-      rstPin; ///< The Arduino pin connected to reset (-1 if unused)
-
-private:
-  TwoWire *_theWire = NULL; ///< The underlying hardware I2C
-};
-
-#endif // end __AVR_ATtiny85__
-#endif // _Adafruit_MonoOLED_H_

+ 0 - 2511
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Adafruit_SPITFT.cpp

@@ -1,2511 +0,0 @@
-/*!
- * @file Adafruit_SPITFT.cpp
- *
- * @mainpage Adafruit SPI TFT Displays (and some others)
- *
- * @section intro_sec Introduction
- *
- * Part of Adafruit's GFX graphics library. Originally this class was
- * written to handle a range of color TFT displays connected via SPI,
- * but over time this library and some display-specific subclasses have
- * mutated to include some color OLEDs as well as parallel-interfaced
- * displays. The name's been kept for the sake of older code.
- *
- * Adafruit invests time and resources providing this open source code,
- * please support Adafruit and open-source hardware by purchasing
- * products from Adafruit!
-
- * @section dependencies Dependencies
- *
- * This library depends on <a href="https://github.com/adafruit/Adafruit_GFX">
- * Adafruit_GFX</a> being present on your system. Please make sure you have
- * installed the latest version before using this library.
- *
- * @section author Author
- *
- * Written by Limor "ladyada" Fried for Adafruit Industries,
- * with contributions from the open source community.
- *
- * @section license License
- *
- * BSD license, all text here must be included in any redistribution.
- */
-
-#if !defined(__AVR_ATtiny85__) // Not for ATtiny, at all
-
-#include "Adafruit_SPITFT.h"
-
-#if defined(__AVR__)
-#if defined(__AVR_XMEGA__) // only tested with __AVR_ATmega4809__
-#define AVR_WRITESPI(x)                                                        \
-  for (SPI0_DATA = (x); (!(SPI0_INTFLAGS & _BV(SPI_IF_bp)));)
-#else
-#define AVR_WRITESPI(x) for (SPDR = (x); (!(SPSR & _BV(SPIF)));)
-#endif
-#endif
-
-#if defined(PORT_IOBUS)
-// On SAMD21, redefine digitalPinToPort() to use the slightly-faster
-// PORT_IOBUS rather than PORT (not needed on SAMD51).
-#undef digitalPinToPort
-#define digitalPinToPort(P) (&(PORT_IOBUS->Group[g_APinDescription[P].ulPort]))
-#endif // end PORT_IOBUS
-
-#if defined(USE_SPI_DMA) && (defined(__SAMD51__) || defined(ARDUINO_SAMD_ZERO))
-// #pragma message ("GFX DMA IS ENABLED. HIGHLY EXPERIMENTAL.")
-#include "wiring_private.h" // pinPeripheral() function
-#include <Adafruit_ZeroDMA.h>
-#include <malloc.h>          // memalign() function
-#define tcNum 2              // Timer/Counter for parallel write strobe PWM
-#define wrPeripheral PIO_CCL // Use CCL to invert write strobe
-
-// DMA transfer-in-progress indicator and callback
-static volatile bool dma_busy = false;
-static void dma_callback(Adafruit_ZeroDMA *dma) { dma_busy = false; }
-
-#if defined(__SAMD51__)
-// Timer/counter info by index #
-static const struct {
-  Tc *tc;   // -> Timer/Counter base address
-  int gclk; // GCLK ID
-  int evu;  // EVSYS user ID
-} tcList[] = {{TC0, TC0_GCLK_ID, EVSYS_ID_USER_TC0_EVU},
-              {TC1, TC1_GCLK_ID, EVSYS_ID_USER_TC1_EVU},
-              {TC2, TC2_GCLK_ID, EVSYS_ID_USER_TC2_EVU},
-              {TC3, TC3_GCLK_ID, EVSYS_ID_USER_TC3_EVU},
-#if defined(TC4)
-              {TC4, TC4_GCLK_ID, EVSYS_ID_USER_TC4_EVU},
-#endif
-#if defined(TC5)
-              {TC5, TC5_GCLK_ID, EVSYS_ID_USER_TC5_EVU},
-#endif
-#if defined(TC6)
-              {TC6, TC6_GCLK_ID, EVSYS_ID_USER_TC6_EVU},
-#endif
-#if defined(TC7)
-              {TC7, TC7_GCLK_ID, EVSYS_ID_USER_TC7_EVU}
-#endif
-};
-#define NUM_TIMERS (sizeof tcList / sizeof tcList[0]) ///< # timer/counters
-#endif                                                // end __SAMD51__
-
-#endif // end USE_SPI_DMA
-
-// Possible values for Adafruit_SPITFT.connection:
-#define TFT_HARD_SPI 0 ///< Display interface = hardware SPI
-#define TFT_SOFT_SPI 1 ///< Display interface = software SPI
-#define TFT_PARALLEL 2 ///< Display interface = 8- or 16-bit parallel
-
-// CONSTRUCTORS ------------------------------------------------------------
-
-/*!
-    @brief   Adafruit_SPITFT constructor for software (bitbang) SPI.
-    @param   w     Display width in pixels at default rotation setting (0).
-    @param   h     Display height in pixels at default rotation setting (0).
-    @param   cs    Arduino pin # for chip-select (-1 if unused, tie CS low).
-    @param   dc    Arduino pin # for data/command select (required).
-    @param   mosi  Arduino pin # for bitbang SPI MOSI signal (required).
-    @param   sck   Arduino pin # for bitbang SPI SCK signal (required).
-    @param   rst   Arduino pin # for display reset (optional, display reset
-                   can be tied to MCU reset, default of -1 means unused).
-    @param   miso  Arduino pin # for bitbang SPI MISO signal (optional,
-                   -1 default, many displays don't support SPI read).
-    @note    Output pins are not initialized; application typically will
-             need to call subclass' begin() function, which in turn calls
-             this library's initSPI() function to initialize pins.
-*/
-Adafruit_SPITFT::Adafruit_SPITFT(uint16_t w, uint16_t h, int8_t cs, int8_t dc,
-                                 int8_t mosi, int8_t sck, int8_t rst,
-                                 int8_t miso)
-    : Adafruit_GFX(w, h), connection(TFT_SOFT_SPI), _rst(rst), _cs(cs),
-      _dc(dc) {
-  swspi._sck = sck;
-  swspi._mosi = mosi;
-  swspi._miso = miso;
-#if defined(USE_FAST_PINIO)
-#if defined(HAS_PORT_SET_CLR)
-#if defined(CORE_TEENSY)
-#if !defined(KINETISK)
-  dcPinMask = digitalPinToBitMask(dc);
-  swspi.sckPinMask = digitalPinToBitMask(sck);
-  swspi.mosiPinMask = digitalPinToBitMask(mosi);
-#endif
-  dcPortSet = portSetRegister(dc);
-  dcPortClr = portClearRegister(dc);
-  swspi.sckPortSet = portSetRegister(sck);
-  swspi.sckPortClr = portClearRegister(sck);
-  swspi.mosiPortSet = portSetRegister(mosi);
-  swspi.mosiPortClr = portClearRegister(mosi);
-  if (cs >= 0) {
-#if !defined(KINETISK)
-    csPinMask = digitalPinToBitMask(cs);
-#endif
-    csPortSet = portSetRegister(cs);
-    csPortClr = portClearRegister(cs);
-  } else {
-#if !defined(KINETISK)
-    csPinMask = 0;
-#endif
-    csPortSet = dcPortSet;
-    csPortClr = dcPortClr;
-  }
-  if (miso >= 0) {
-    swspi.misoPort = portInputRegister(miso);
-#if !defined(KINETISK)
-    swspi.misoPinMask = digitalPinToBitMask(miso);
-#endif
-  } else {
-    swspi.misoPort = portInputRegister(dc);
-  }
-#else  // !CORE_TEENSY
-  dcPinMask = digitalPinToBitMask(dc);
-  swspi.sckPinMask = digitalPinToBitMask(sck);
-  swspi.mosiPinMask = digitalPinToBitMask(mosi);
-  dcPortSet = &(PORT->Group[g_APinDescription[dc].ulPort].OUTSET.reg);
-  dcPortClr = &(PORT->Group[g_APinDescription[dc].ulPort].OUTCLR.reg);
-  swspi.sckPortSet = &(PORT->Group[g_APinDescription[sck].ulPort].OUTSET.reg);
-  swspi.sckPortClr = &(PORT->Group[g_APinDescription[sck].ulPort].OUTCLR.reg);
-  swspi.mosiPortSet = &(PORT->Group[g_APinDescription[mosi].ulPort].OUTSET.reg);
-  swspi.mosiPortClr = &(PORT->Group[g_APinDescription[mosi].ulPort].OUTCLR.reg);
-  if (cs >= 0) {
-    csPinMask = digitalPinToBitMask(cs);
-    csPortSet = &(PORT->Group[g_APinDescription[cs].ulPort].OUTSET.reg);
-    csPortClr = &(PORT->Group[g_APinDescription[cs].ulPort].OUTCLR.reg);
-  } else {
-    // No chip-select line defined; might be permanently tied to GND.
-    // Assign a valid GPIO register (though not used for CS), and an
-    // empty pin bitmask...the nonsense bit-twiddling might be faster
-    // than checking _cs and possibly branching.
-    csPortSet = dcPortSet;
-    csPortClr = dcPortClr;
-    csPinMask = 0;
-  }
-  if (miso >= 0) {
-    swspi.misoPinMask = digitalPinToBitMask(miso);
-    swspi.misoPort = (PORTreg_t)portInputRegister(digitalPinToPort(miso));
-  } else {
-    swspi.misoPinMask = 0;
-    swspi.misoPort = (PORTreg_t)portInputRegister(digitalPinToPort(dc));
-  }
-#endif // end !CORE_TEENSY
-#else  // !HAS_PORT_SET_CLR
-  dcPort = (PORTreg_t)portOutputRegister(digitalPinToPort(dc));
-  dcPinMaskSet = digitalPinToBitMask(dc);
-  swspi.sckPort = (PORTreg_t)portOutputRegister(digitalPinToPort(sck));
-  swspi.sckPinMaskSet = digitalPinToBitMask(sck);
-  swspi.mosiPort = (PORTreg_t)portOutputRegister(digitalPinToPort(mosi));
-  swspi.mosiPinMaskSet = digitalPinToBitMask(mosi);
-  if (cs >= 0) {
-    csPort = (PORTreg_t)portOutputRegister(digitalPinToPort(cs));
-    csPinMaskSet = digitalPinToBitMask(cs);
-  } else {
-    // No chip-select line defined; might be permanently tied to GND.
-    // Assign a valid GPIO register (though not used for CS), and an
-    // empty pin bitmask...the nonsense bit-twiddling might be faster
-    // than checking _cs and possibly branching.
-    csPort = dcPort;
-    csPinMaskSet = 0;
-  }
-  if (miso >= 0) {
-    swspi.misoPort = (PORTreg_t)portInputRegister(digitalPinToPort(miso));
-    swspi.misoPinMask = digitalPinToBitMask(miso);
-  } else {
-    swspi.misoPort = (PORTreg_t)portInputRegister(digitalPinToPort(dc));
-    swspi.misoPinMask = 0;
-  }
-  csPinMaskClr = ~csPinMaskSet;
-  dcPinMaskClr = ~dcPinMaskSet;
-  swspi.sckPinMaskClr = ~swspi.sckPinMaskSet;
-  swspi.mosiPinMaskClr = ~swspi.mosiPinMaskSet;
-#endif // !end HAS_PORT_SET_CLR
-#endif // end USE_FAST_PINIO
-}
-
-/*!
-    @brief   Adafruit_SPITFT constructor for hardware SPI using the board's
-             default SPI peripheral.
-    @param   w     Display width in pixels at default rotation setting (0).
-    @param   h     Display height in pixels at default rotation setting (0).
-    @param   cs    Arduino pin # for chip-select (-1 if unused, tie CS low).
-    @param   dc    Arduino pin # for data/command select (required).
-    @param   rst   Arduino pin # for display reset (optional, display reset
-                   can be tied to MCU reset, default of -1 means unused).
-    @note    Output pins are not initialized; application typically will
-             need to call subclass' begin() function, which in turn calls
-             this library's initSPI() function to initialize pins.
-*/
-#if defined(ESP8266) // See notes below
-Adafruit_SPITFT::Adafruit_SPITFT(uint16_t w, uint16_t h, int8_t cs, int8_t dc,
-                                 int8_t rst)
-    : Adafruit_GFX(w, h), connection(TFT_HARD_SPI), _rst(rst), _cs(cs),
-      _dc(dc) {
-  hwspi._spi = &SPI;
-}
-#else  // !ESP8266
-Adafruit_SPITFT::Adafruit_SPITFT(uint16_t w, uint16_t h, int8_t cs, int8_t dc,
-                                 int8_t rst)
-    : Adafruit_SPITFT(w, h, &SPI, cs, dc, rst) {
-  // This just invokes the hardware SPI constructor below,
-  // passing the default SPI device (&SPI).
-}
-#endif // end !ESP8266
-
-#if !defined(ESP8266)
-// ESP8266 compiler freaks out at this constructor -- it can't disambiguate
-// beteween the SPIClass pointer (argument #3) and a regular integer.
-// Solution here it to just not offer this variant on the ESP8266. You can
-// use the default hardware SPI peripheral, or you can use software SPI,
-// but if there's any library out there that creates a 'virtual' SPIClass
-// peripheral and drives it with software bitbanging, that's not supported.
-/*!
-    @brief   Adafruit_SPITFT constructor for hardware SPI using a specific
-             SPI peripheral.
-    @param   w         Display width in pixels at default rotation (0).
-    @param   h         Display height in pixels at default rotation (0).
-    @param   spiClass  Pointer to SPIClass type (e.g. &SPI or &SPI1).
-    @param   cs        Arduino pin # for chip-select (-1 if unused, tie CS low).
-    @param   dc        Arduino pin # for data/command select (required).
-    @param   rst       Arduino pin # for display reset (optional, display reset
-                       can be tied to MCU reset, default of -1 means unused).
-    @note    Output pins are not initialized in constructor; application
-             typically will need to call subclass' begin() function, which
-             in turn calls this library's initSPI() function to initialize
-             pins. EXCEPT...if you have built your own SERCOM SPI peripheral
-             (calling the SPIClass constructor) rather than one of the
-             built-in SPI devices (e.g. &SPI, &SPI1 and so forth), you will
-             need to call the begin() function for your object as well as
-             pinPeripheral() for the MOSI, MISO and SCK pins to configure
-             GPIO manually. Do this BEFORE calling the display-specific
-             begin or init function. Unfortunate but unavoidable.
-*/
-Adafruit_SPITFT::Adafruit_SPITFT(uint16_t w, uint16_t h, SPIClass *spiClass,
-                                 int8_t cs, int8_t dc, int8_t rst)
-    : Adafruit_GFX(w, h), connection(TFT_HARD_SPI), _rst(rst), _cs(cs),
-      _dc(dc) {
-  hwspi._spi = spiClass;
-#if defined(USE_FAST_PINIO)
-#if defined(HAS_PORT_SET_CLR)
-#if defined(CORE_TEENSY)
-#if !defined(KINETISK)
-  dcPinMask = digitalPinToBitMask(dc);
-#endif
-  dcPortSet = portSetRegister(dc);
-  dcPortClr = portClearRegister(dc);
-  if (cs >= 0) {
-#if !defined(KINETISK)
-    csPinMask = digitalPinToBitMask(cs);
-#endif
-    csPortSet = portSetRegister(cs);
-    csPortClr = portClearRegister(cs);
-  } else { // see comments below
-#if !defined(KINETISK)
-    csPinMask = 0;
-#endif
-    csPortSet = dcPortSet;
-    csPortClr = dcPortClr;
-  }
-#else  // !CORE_TEENSY
-  dcPinMask = digitalPinToBitMask(dc);
-  dcPortSet = &(PORT->Group[g_APinDescription[dc].ulPort].OUTSET.reg);
-  dcPortClr = &(PORT->Group[g_APinDescription[dc].ulPort].OUTCLR.reg);
-  if (cs >= 0) {
-    csPinMask = digitalPinToBitMask(cs);
-    csPortSet = &(PORT->Group[g_APinDescription[cs].ulPort].OUTSET.reg);
-    csPortClr = &(PORT->Group[g_APinDescription[cs].ulPort].OUTCLR.reg);
-  } else {
-    // No chip-select line defined; might be permanently tied to GND.
-    // Assign a valid GPIO register (though not used for CS), and an
-    // empty pin bitmask...the nonsense bit-twiddling might be faster
-    // than checking _cs and possibly branching.
-    csPortSet = dcPortSet;
-    csPortClr = dcPortClr;
-    csPinMask = 0;
-  }
-#endif // end !CORE_TEENSY
-#else  // !HAS_PORT_SET_CLR
-  dcPort = (PORTreg_t)portOutputRegister(digitalPinToPort(dc));
-  dcPinMaskSet = digitalPinToBitMask(dc);
-  if (cs >= 0) {
-    csPort = (PORTreg_t)portOutputRegister(digitalPinToPort(cs));
-    csPinMaskSet = digitalPinToBitMask(cs);
-  } else {
-    // No chip-select line defined; might be permanently tied to GND.
-    // Assign a valid GPIO register (though not used for CS), and an
-    // empty pin bitmask...the nonsense bit-twiddling might be faster
-    // than checking _cs and possibly branching.
-    csPort = dcPort;
-    csPinMaskSet = 0;
-  }
-  csPinMaskClr = ~csPinMaskSet;
-  dcPinMaskClr = ~dcPinMaskSet;
-#endif // end !HAS_PORT_SET_CLR
-#endif // end USE_FAST_PINIO
-}
-#endif // end !ESP8266
-
-/*!
-    @brief   Adafruit_SPITFT constructor for parallel display connection.
-    @param   w         Display width in pixels at default rotation (0).
-    @param   h         Display height in pixels at default rotation (0).
-    @param   busWidth  If tft16 (enumeration in header file), is a 16-bit
-                       parallel connection, else 8-bit.
-                       16-bit isn't fully implemented or tested yet so
-                       applications should pass "tft8bitbus" for now...needed to
-                       stick a required enum argument in there to
-                       disambiguate this constructor from the soft-SPI case.
-                       Argument is ignored on 8-bit architectures (no 'wide'
-                       support there since PORTs are 8 bits anyway).
-    @param   d0        Arduino pin # for data bit 0 (1+ are extrapolated).
-                       The 8 (or 16) data bits MUST be contiguous and byte-
-                       aligned (or word-aligned for wide interface) within
-                       the same PORT register (might not correspond to
-                       Arduino pin sequence).
-    @param   wr        Arduino pin # for write strobe (required).
-    @param   dc        Arduino pin # for data/command select (required).
-    @param   cs        Arduino pin # for chip-select (optional, -1 if unused,
-                       tie CS low).
-    @param   rst       Arduino pin # for display reset (optional, display reset
-                       can be tied to MCU reset, default of -1 means unused).
-    @param   rd        Arduino pin # for read strobe (optional, -1 if unused).
-    @note    Output pins are not initialized; application typically will need
-             to call subclass' begin() function, which in turn calls this
-             library's initSPI() function to initialize pins.
-             Yes, the name is a misnomer...this library originally handled
-             only SPI displays, parallel being a recent addition (but not
-             wanting to break existing code).
-*/
-Adafruit_SPITFT::Adafruit_SPITFT(uint16_t w, uint16_t h, tftBusWidth busWidth,
-                                 int8_t d0, int8_t wr, int8_t dc, int8_t cs,
-                                 int8_t rst, int8_t rd)
-    : Adafruit_GFX(w, h), connection(TFT_PARALLEL), _rst(rst), _cs(cs),
-      _dc(dc) {
-  tft8._d0 = d0;
-  tft8._wr = wr;
-  tft8._rd = rd;
-  tft8.wide = (busWidth == tft16bitbus);
-#if defined(USE_FAST_PINIO)
-#if defined(HAS_PORT_SET_CLR)
-#if defined(CORE_TEENSY)
-  tft8.wrPortSet = portSetRegister(wr);
-  tft8.wrPortClr = portClearRegister(wr);
-#if !defined(KINETISK)
-  dcPinMask = digitalPinToBitMask(dc);
-#endif
-  dcPortSet = portSetRegister(dc);
-  dcPortClr = portClearRegister(dc);
-  if (cs >= 0) {
-#if !defined(KINETISK)
-    csPinMask = digitalPinToBitMask(cs);
-#endif
-    csPortSet = portSetRegister(cs);
-    csPortClr = portClearRegister(cs);
-  } else { // see comments below
-#if !defined(KINETISK)
-    csPinMask = 0;
-#endif
-    csPortSet = dcPortSet;
-    csPortClr = dcPortClr;
-  }
-  if (rd >= 0) { // if read-strobe pin specified...
-#if defined(KINETISK)
-    tft8.rdPinMask = 1;
-#else // !KINETISK
-    tft8.rdPinMask = digitalPinToBitMask(rd);
-#endif
-    tft8.rdPortSet = portSetRegister(rd);
-    tft8.rdPortClr = portClearRegister(rd);
-  } else {
-    tft8.rdPinMask = 0;
-    tft8.rdPortSet = dcPortSet;
-    tft8.rdPortClr = dcPortClr;
-  }
-  // These are all uint8_t* pointers -- elsewhere they're recast
-  // as necessary if a 'wide' 16-bit interface is in use.
-  tft8.writePort = portOutputRegister(d0);
-  tft8.readPort = portInputRegister(d0);
-  tft8.dirSet = portModeRegister(d0);
-  tft8.dirClr = portModeRegister(d0);
-#else  // !CORE_TEENSY
-  tft8.wrPinMask = digitalPinToBitMask(wr);
-  tft8.wrPortSet = &(PORT->Group[g_APinDescription[wr].ulPort].OUTSET.reg);
-  tft8.wrPortClr = &(PORT->Group[g_APinDescription[wr].ulPort].OUTCLR.reg);
-  dcPinMask = digitalPinToBitMask(dc);
-  dcPortSet = &(PORT->Group[g_APinDescription[dc].ulPort].OUTSET.reg);
-  dcPortClr = &(PORT->Group[g_APinDescription[dc].ulPort].OUTCLR.reg);
-  if (cs >= 0) {
-    csPinMask = digitalPinToBitMask(cs);
-    csPortSet = &(PORT->Group[g_APinDescription[cs].ulPort].OUTSET.reg);
-    csPortClr = &(PORT->Group[g_APinDescription[cs].ulPort].OUTCLR.reg);
-  } else {
-    // No chip-select line defined; might be permanently tied to GND.
-    // Assign a valid GPIO register (though not used for CS), and an
-    // empty pin bitmask...the nonsense bit-twiddling might be faster
-    // than checking _cs and possibly branching.
-    csPortSet = dcPortSet;
-    csPortClr = dcPortClr;
-    csPinMask = 0;
-  }
-  if (rd >= 0) { // if read-strobe pin specified...
-    tft8.rdPinMask = digitalPinToBitMask(rd);
-    tft8.rdPortSet = &(PORT->Group[g_APinDescription[rd].ulPort].OUTSET.reg);
-    tft8.rdPortClr = &(PORT->Group[g_APinDescription[rd].ulPort].OUTCLR.reg);
-  } else {
-    tft8.rdPinMask = 0;
-    tft8.rdPortSet = dcPortSet;
-    tft8.rdPortClr = dcPortClr;
-  }
-  // Get pointers to PORT write/read/dir bytes within 32-bit PORT
-  uint8_t dBit = g_APinDescription[d0].ulPin; // d0 bit # in PORT
-  PortGroup *p = (&(PORT->Group[g_APinDescription[d0].ulPort]));
-  uint8_t offset = dBit / 8; // d[7:0] byte # within PORT
-  if (tft8.wide)
-    offset &= ~1; // d[15:8] byte # within PORT
-  // These are all uint8_t* pointers -- elsewhere they're recast
-  // as necessary if a 'wide' 16-bit interface is in use.
-  tft8.writePort = (volatile uint8_t *)&(p->OUT.reg) + offset;
-  tft8.readPort = (volatile uint8_t *)&(p->IN.reg) + offset;
-  tft8.dirSet = (volatile uint8_t *)&(p->DIRSET.reg) + offset;
-  tft8.dirClr = (volatile uint8_t *)&(p->DIRCLR.reg) + offset;
-#endif // end !CORE_TEENSY
-#else  // !HAS_PORT_SET_CLR
-  tft8.wrPort = (PORTreg_t)portOutputRegister(digitalPinToPort(wr));
-  tft8.wrPinMaskSet = digitalPinToBitMask(wr);
-  dcPort = (PORTreg_t)portOutputRegister(digitalPinToPort(dc));
-  dcPinMaskSet = digitalPinToBitMask(dc);
-  if (cs >= 0) {
-    csPort = (PORTreg_t)portOutputRegister(digitalPinToPort(cs));
-    csPinMaskSet = digitalPinToBitMask(cs);
-  } else {
-    // No chip-select line defined; might be permanently tied to GND.
-    // Assign a valid GPIO register (though not used for CS), and an
-    // empty pin bitmask...the nonsense bit-twiddling might be faster
-    // than checking _cs and possibly branching.
-    csPort = dcPort;
-    csPinMaskSet = 0;
-  }
-  if (rd >= 0) { // if read-strobe pin specified...
-    tft8.rdPort = (PORTreg_t)portOutputRegister(digitalPinToPort(rd));
-    tft8.rdPinMaskSet = digitalPinToBitMask(rd);
-  } else {
-    tft8.rdPort = dcPort;
-    tft8.rdPinMaskSet = 0;
-  }
-  csPinMaskClr = ~csPinMaskSet;
-  dcPinMaskClr = ~dcPinMaskSet;
-  tft8.wrPinMaskClr = ~tft8.wrPinMaskSet;
-  tft8.rdPinMaskClr = ~tft8.rdPinMaskSet;
-  tft8.writePort = (PORTreg_t)portOutputRegister(digitalPinToPort(d0));
-  tft8.readPort = (PORTreg_t)portInputRegister(digitalPinToPort(d0));
-  tft8.portDir = (PORTreg_t)portModeRegister(digitalPinToPort(d0));
-#endif // end !HAS_PORT_SET_CLR
-#endif // end USE_FAST_PINIO
-}
-
-// end constructors -------
-
-// CLASS MEMBER FUNCTIONS --------------------------------------------------
-
-// begin() and setAddrWindow() MUST be declared by any subclass.
-
-/*!
-    @brief  Configure microcontroller pins for TFT interfacing. Typically
-            called by a subclass' begin() function.
-    @param  freq     SPI frequency when using hardware SPI. If default (0)
-                     is passed, will fall back on a device-specific value.
-                     Value is ignored when using software SPI or parallel
-                     connection.
-    @param  spiMode  SPI mode when using hardware SPI. MUST be one of the
-                     values SPI_MODE0, SPI_MODE1, SPI_MODE2 or SPI_MODE3
-                     defined in SPI.h. Do NOT attempt to pass '0' for
-                     SPI_MODE0 and so forth...the values are NOT the same!
-                     Use ONLY the defines! (Pity it's not an enum.)
-    @note   Another anachronistically-named function; this is called even
-            when the display connection is parallel (not SPI). Also, this
-            could probably be made private...quite a few class functions
-            were generously put in the public section.
-*/
-void Adafruit_SPITFT::initSPI(uint32_t freq, uint8_t spiMode) {
-
-  if (!freq)
-    freq = DEFAULT_SPI_FREQ; // If no freq specified, use default
-
-  // Init basic control pins common to all connection types
-  if (_cs >= 0) {
-    pinMode(_cs, OUTPUT);
-    digitalWrite(_cs, HIGH); // Deselect
-  }
-  pinMode(_dc, OUTPUT);
-  digitalWrite(_dc, HIGH); // Data mode
-
-  if (connection == TFT_HARD_SPI) {
-
-#if defined(SPI_HAS_TRANSACTION)
-    hwspi.settings = SPISettings(freq, MSBFIRST, spiMode);
-#else
-    hwspi._freq = freq; // Save freq value for later
-#endif
-    hwspi._mode = spiMode; // Save spiMode value for later
-    // Call hwspi._spi->begin() ONLY if this is among the 'established'
-    // SPI interfaces in variant.h. For DIY roll-your-own SERCOM SPIs,
-    // begin() and pinPeripheral() calls MUST be made in one's calling
-    // code, BEFORE the screen-specific begin/init function is called.
-    // Reason for this is that SPI::begin() makes its own calls to
-    // pinPeripheral() based on g_APinDescription[n].ulPinType, which
-    // on non-established SPI interface pins will always be PIO_DIGITAL
-    // or similar, while we need PIO_SERCOM or PIO_SERCOM_ALT...it's
-    // highly unique between devices and variants for each pin or
-    // SERCOM so we can't make those calls ourselves here. And the SPI
-    // device needs to be set up before calling this because it's
-    // immediately followed with initialization commands. Blargh.
-    if (
-#if !defined(SPI_INTERFACES_COUNT)
-        1
-#endif
-#if SPI_INTERFACES_COUNT > 0
-        (hwspi._spi == &SPI)
-#endif
-#if SPI_INTERFACES_COUNT > 1
-        || (hwspi._spi == &SPI1)
-#endif
-#if SPI_INTERFACES_COUNT > 2
-        || (hwspi._spi == &SPI2)
-#endif
-#if SPI_INTERFACES_COUNT > 3
-        || (hwspi._spi == &SPI3)
-#endif
-#if SPI_INTERFACES_COUNT > 4
-        || (hwspi._spi == &SPI4)
-#endif
-#if SPI_INTERFACES_COUNT > 5
-        || (hwspi._spi == &SPI5)
-#endif
-    ) {
-      hwspi._spi->begin();
-    }
-  } else if (connection == TFT_SOFT_SPI) {
-
-    pinMode(swspi._mosi, OUTPUT);
-    digitalWrite(swspi._mosi, LOW);
-    pinMode(swspi._sck, OUTPUT);
-    digitalWrite(swspi._sck, LOW);
-    if (swspi._miso >= 0) {
-      pinMode(swspi._miso, INPUT);
-    }
-
-  } else { // TFT_PARALLEL
-           // Initialize data pins.  We were only passed d0, so scan
-           // the pin description list looking for the other pins.
-           // They'll be on the same PORT, and within the next 7 (or 15) bits
-           // (because we need to write to a contiguous PORT byte or word).
-#if defined(__AVR__)
-    // PORT registers are 8 bits wide, so just need a register match...
-    for (uint8_t i = 0; i < NUM_DIGITAL_PINS; i++) {
-      if ((PORTreg_t)portOutputRegister(digitalPinToPort(i)) ==
-          tft8.writePort) {
-        pinMode(i, OUTPUT);
-        digitalWrite(i, LOW);
-      }
-    }
-#elif defined(USE_FAST_PINIO)
-#if defined(CORE_TEENSY)
-    if (!tft8.wide) {
-      *tft8.dirSet = 0xFF;    // Set port to output
-      *tft8.writePort = 0x00; // Write all 0s
-    } else {
-      *(volatile uint16_t *)tft8.dirSet = 0xFFFF;
-      *(volatile uint16_t *)tft8.writePort = 0x0000;
-    }
-#else  // !CORE_TEENSY
-    uint8_t portNum = g_APinDescription[tft8._d0].ulPort, // d0 PORT #
-        dBit = g_APinDescription[tft8._d0].ulPin,         // d0 bit in PORT
-        lastBit = dBit + (tft8.wide ? 15 : 7);
-    for (uint8_t i = 0; i < PINS_COUNT; i++) {
-      if ((g_APinDescription[i].ulPort == portNum) &&
-          (g_APinDescription[i].ulPin >= dBit) &&
-          (g_APinDescription[i].ulPin <= (uint32_t)lastBit)) {
-        pinMode(i, OUTPUT);
-        digitalWrite(i, LOW);
-      }
-    }
-#endif // end !CORE_TEENSY
-#endif
-    pinMode(tft8._wr, OUTPUT);
-    digitalWrite(tft8._wr, HIGH);
-    if (tft8._rd >= 0) {
-      pinMode(tft8._rd, OUTPUT);
-      digitalWrite(tft8._rd, HIGH);
-    }
-  }
-
-  if (_rst >= 0) {
-    // Toggle _rst low to reset
-    pinMode(_rst, OUTPUT);
-    digitalWrite(_rst, HIGH);
-    delay(100);
-    digitalWrite(_rst, LOW);
-    delay(100);
-    digitalWrite(_rst, HIGH);
-    delay(200);
-  }
-
-#if defined(USE_SPI_DMA) && (defined(__SAMD51__) || defined(ARDUINO_SAMD_ZERO))
-  if (((connection == TFT_HARD_SPI) || (connection == TFT_PARALLEL)) &&
-      (dma.allocate() == DMA_STATUS_OK)) { // Allocate channel
-    // The DMA library needs to alloc at least one valid descriptor,
-    // so we do that here. It's not used in the usual sense though,
-    // just before a transfer we copy descriptor[0] to this address.
-    if (dptr = dma.addDescriptor(NULL, NULL, 42, DMA_BEAT_SIZE_BYTE, false,
-                                 false)) {
-      // Alloc 2 scanlines worth of pixels on display's major axis,
-      // whichever that is, rounding each up to 2-pixel boundary.
-      int major = (WIDTH > HEIGHT) ? WIDTH : HEIGHT;
-      major += (major & 1);   // -> next 2-pixel bound, if needed.
-      maxFillLen = major * 2; // 2 scanlines
-      // Note to future self: if you decide to make the pixel buffer
-      // much larger, remember that DMA transfer descriptors can't
-      // exceed 65,535 bytes (not 65,536), meaning 32,767 pixels max.
-      // Not that we have that kind of RAM to throw around right now.
-      if ((pixelBuf[0] = (uint16_t *)malloc(maxFillLen * sizeof(uint16_t)))) {
-        // Alloc OK. Get pointer to start of second scanline.
-        pixelBuf[1] = &pixelBuf[0][major];
-        // Determine number of DMA descriptors needed to cover
-        // entire screen when entire 2-line pixelBuf is used
-        // (round up for fractional last descriptor).
-        int numDescriptors = (WIDTH * HEIGHT + (maxFillLen - 1)) / maxFillLen;
-        // DMA descriptors MUST be 128-bit (16 byte) aligned.
-        // memalign() is considered obsolete but it's replacements
-        // (aligned_alloc() or posix_memalign()) are not currently
-        // available in the version of ARM GCC in use, but this
-        // is, so here we are.
-        if ((descriptor = (DmacDescriptor *)memalign(
-                 16, numDescriptors * sizeof(DmacDescriptor)))) {
-          int dmac_id;
-          volatile uint32_t *data_reg;
-
-          if (connection == TFT_HARD_SPI) {
-            // THIS IS AN AFFRONT TO NATURE, but I don't know
-            // any "clean" way to get the sercom number from the
-            // the SPIClass pointer (e.g. &SPI or &SPI1), which
-            // is all we have to work with. SPIClass does contain
-            // a SERCOM pointer but it is a PRIVATE member!
-            // Doing an UNSPEAKABLY HORRIBLE THING here, directly
-            // accessing the first 32-bit value in the SPIClass
-            // structure, knowing that's (currently) where the
-            // SERCOM pointer lives, but this ENTIRELY DEPENDS on
-            // that structure not changing nor the compiler
-            // rearranging things. Oh the humanity!
-
-            if (*(SERCOM **)hwspi._spi == &sercom0) {
-              dmac_id = SERCOM0_DMAC_ID_TX;
-              data_reg = &SERCOM0->SPI.DATA.reg;
-#if defined SERCOM1
-            } else if (*(SERCOM **)hwspi._spi == &sercom1) {
-              dmac_id = SERCOM1_DMAC_ID_TX;
-              data_reg = &SERCOM1->SPI.DATA.reg;
-#endif
-#if defined SERCOM2
-            } else if (*(SERCOM **)hwspi._spi == &sercom2) {
-              dmac_id = SERCOM2_DMAC_ID_TX;
-              data_reg = &SERCOM2->SPI.DATA.reg;
-#endif
-#if defined SERCOM3
-            } else if (*(SERCOM **)hwspi._spi == &sercom3) {
-              dmac_id = SERCOM3_DMAC_ID_TX;
-              data_reg = &SERCOM3->SPI.DATA.reg;
-#endif
-#if defined SERCOM4
-            } else if (*(SERCOM **)hwspi._spi == &sercom4) {
-              dmac_id = SERCOM4_DMAC_ID_TX;
-              data_reg = &SERCOM4->SPI.DATA.reg;
-#endif
-#if defined SERCOM5
-            } else if (*(SERCOM **)hwspi._spi == &sercom5) {
-              dmac_id = SERCOM5_DMAC_ID_TX;
-              data_reg = &SERCOM5->SPI.DATA.reg;
-#endif
-#if defined SERCOM6
-            } else if (*(SERCOM **)hwspi._spi == &sercom6) {
-              dmac_id = SERCOM6_DMAC_ID_TX;
-              data_reg = &SERCOM6->SPI.DATA.reg;
-#endif
-#if defined SERCOM7
-            } else if (*(SERCOM **)hwspi._spi == &sercom7) {
-              dmac_id = SERCOM7_DMAC_ID_TX;
-              data_reg = &SERCOM7->SPI.DATA.reg;
-#endif
-            }
-            dma.setPriority(DMA_PRIORITY_3);
-            dma.setTrigger(dmac_id);
-            dma.setAction(DMA_TRIGGER_ACTON_BEAT);
-
-            // Initialize descriptor list.
-            for (int d = 0; d < numDescriptors; d++) {
-              // No need to set SRCADDR, DESCADDR or BTCNT --
-              // those are done in the pixel-writing functions.
-              descriptor[d].BTCTRL.bit.VALID = true;
-              descriptor[d].BTCTRL.bit.EVOSEL = DMA_EVENT_OUTPUT_DISABLE;
-              descriptor[d].BTCTRL.bit.BLOCKACT = DMA_BLOCK_ACTION_NOACT;
-              descriptor[d].BTCTRL.bit.BEATSIZE = DMA_BEAT_SIZE_BYTE;
-              descriptor[d].BTCTRL.bit.DSTINC = 0;
-              descriptor[d].BTCTRL.bit.STEPSEL = DMA_STEPSEL_SRC;
-              descriptor[d].BTCTRL.bit.STEPSIZE =
-                  DMA_ADDRESS_INCREMENT_STEP_SIZE_1;
-              descriptor[d].DSTADDR.reg = (uint32_t)data_reg;
-            }
-
-          } else { // Parallel connection
-
-#if defined(__SAMD51__)
-            int dmaChannel = dma.getChannel();
-            // Enable event output, use EVOSEL output
-            DMAC->Channel[dmaChannel].CHEVCTRL.bit.EVOE = 1;
-            DMAC->Channel[dmaChannel].CHEVCTRL.bit.EVOMODE = 0;
-
-            // CONFIGURE TIMER/COUNTER (for write strobe)
-
-            Tc *timer = tcList[tcNum].tc; // -> Timer struct
-            int id = tcList[tcNum].gclk;  // Timer GCLK ID
-            GCLK_PCHCTRL_Type pchctrl;
-
-            // Set up timer clock source from GCLK
-            GCLK->PCHCTRL[id].bit.CHEN = 0; // Stop timer
-            while (GCLK->PCHCTRL[id].bit.CHEN)
-              ; // Wait for it
-            pchctrl.bit.GEN = GCLK_PCHCTRL_GEN_GCLK0_Val;
-            pchctrl.bit.CHEN = 1; // Enable
-            GCLK->PCHCTRL[id].reg = pchctrl.reg;
-            while (!GCLK->PCHCTRL[id].bit.CHEN)
-              ; // Wait for it
-
-            // Disable timer/counter before configuring it
-            timer->COUNT8.CTRLA.bit.ENABLE = 0;
-            while (timer->COUNT8.SYNCBUSY.bit.STATUS)
-              ;
-
-            timer->COUNT8.WAVE.bit.WAVEGEN = 2;    // NPWM
-            timer->COUNT8.CTRLA.bit.MODE = 1;      // 8-bit
-            timer->COUNT8.CTRLA.bit.PRESCALER = 0; // 1:1
-            while (timer->COUNT8.SYNCBUSY.bit.STATUS)
-              ;
-
-            timer->COUNT8.CTRLBCLR.bit.DIR = 1; // Count UP
-            while (timer->COUNT8.SYNCBUSY.bit.CTRLB)
-              ;
-            timer->COUNT8.CTRLBSET.bit.ONESHOT = 1; // One-shot
-            while (timer->COUNT8.SYNCBUSY.bit.CTRLB)
-              ;
-            timer->COUNT8.PER.reg = 6; // PWM top
-            while (timer->COUNT8.SYNCBUSY.bit.PER)
-              ;
-            timer->COUNT8.CC[0].reg = 2; // Compare
-            while (timer->COUNT8.SYNCBUSY.bit.CC0)
-              ;
-            // Enable async input events,
-            // event action = restart.
-            timer->COUNT8.EVCTRL.bit.TCEI = 1;
-            timer->COUNT8.EVCTRL.bit.EVACT = 1;
-
-            // Enable timer
-            timer->COUNT8.CTRLA.reg |= TC_CTRLA_ENABLE;
-            while (timer->COUNT8.SYNCBUSY.bit.STATUS)
-              ;
-
-#if (wrPeripheral == PIO_CCL)
-            // CONFIGURE CCL (inverts timer/counter output)
-
-            MCLK->APBCMASK.bit.CCL_ = 1;         // Enable CCL clock
-            CCL->CTRL.bit.ENABLE = 0;            // Disable to config
-            CCL->CTRL.bit.SWRST = 1;             // Reset CCL registers
-            CCL->LUTCTRL[tcNum].bit.ENABLE = 0;  // Disable LUT
-            CCL->LUTCTRL[tcNum].bit.FILTSEL = 0; // No filter
-            CCL->LUTCTRL[tcNum].bit.INSEL0 = 6;  // TC input
-            CCL->LUTCTRL[tcNum].bit.INSEL1 = 0;  // MASK
-            CCL->LUTCTRL[tcNum].bit.INSEL2 = 0;  // MASK
-            CCL->LUTCTRL[tcNum].bit.TRUTH = 1;   // Invert in 0
-            CCL->LUTCTRL[tcNum].bit.ENABLE = 1;  // Enable LUT
-            CCL->CTRL.bit.ENABLE = 1;            // Enable CCL
-#endif
-
-            // CONFIGURE EVENT SYSTEM
-
-            // Set up event system clock source from GCLK...
-            // Disable EVSYS, wait for disable
-            GCLK->PCHCTRL[EVSYS_GCLK_ID_0].bit.CHEN = 0;
-            while (GCLK->PCHCTRL[EVSYS_GCLK_ID_0].bit.CHEN)
-              ;
-            pchctrl.bit.GEN = GCLK_PCHCTRL_GEN_GCLK0_Val;
-            pchctrl.bit.CHEN = 1; // Re-enable
-            GCLK->PCHCTRL[EVSYS_GCLK_ID_0].reg = pchctrl.reg;
-            // Wait for it, then enable EVSYS clock
-            while (!GCLK->PCHCTRL[EVSYS_GCLK_ID_0].bit.CHEN)
-              ;
-            MCLK->APBBMASK.bit.EVSYS_ = 1;
-
-            // Connect Timer EVU to ch 0
-            EVSYS->USER[tcList[tcNum].evu].reg = 1;
-            // Datasheet recommends single write operation;
-            // reg instead of bit. Also datasheet: PATH bits
-            // must be zero when using async!
-            EVSYS_CHANNEL_Type ev;
-            ev.reg = 0;
-            ev.bit.PATH = 2;                  // Asynchronous
-            ev.bit.EVGEN = 0x22 + dmaChannel; // DMA channel 0+
-            EVSYS->Channel[0].CHANNEL.reg = ev.reg;
-
-            // Initialize descriptor list.
-            for (int d = 0; d < numDescriptors; d++) {
-              // No need to set SRCADDR, DESCADDR or BTCNT --
-              // those are done in the pixel-writing functions.
-              descriptor[d].BTCTRL.bit.VALID = true;
-              // Event strobe on beat xfer:
-              descriptor[d].BTCTRL.bit.EVOSEL = 0x3;
-              descriptor[d].BTCTRL.bit.BLOCKACT = DMA_BLOCK_ACTION_NOACT;
-              descriptor[d].BTCTRL.bit.BEATSIZE =
-                  tft8.wide ? DMA_BEAT_SIZE_HWORD : DMA_BEAT_SIZE_BYTE;
-              descriptor[d].BTCTRL.bit.SRCINC = 1;
-              descriptor[d].BTCTRL.bit.DSTINC = 0;
-              descriptor[d].BTCTRL.bit.STEPSEL = DMA_STEPSEL_SRC;
-              descriptor[d].BTCTRL.bit.STEPSIZE =
-                  DMA_ADDRESS_INCREMENT_STEP_SIZE_1;
-              descriptor[d].DSTADDR.reg = (uint32_t)tft8.writePort;
-            }
-#endif      // __SAMD51
-          } // end parallel-specific DMA setup
-
-          lastFillColor = 0x0000;
-          lastFillLen = 0;
-          dma.setCallback(dma_callback);
-          return; // Success!
-                  // else clean up any partial allocation...
-        }         // end descriptor memalign()
-        free(pixelBuf[0]);
-        pixelBuf[0] = pixelBuf[1] = NULL;
-      }         // end pixelBuf malloc()
-                // Don't currently have a descriptor delete function in
-                // ZeroDMA lib, but if we did, it would be called here.
-    }           // end addDescriptor()
-    dma.free(); // Deallocate DMA channel
-  }
-#endif // end USE_SPI_DMA
-}
-
-/*!
-    @brief  Allow changing the SPI clock speed after initialization
-    @param  freq Desired frequency of SPI clock, may not be the
-    end frequency you get based on what the chip can do!
-*/
-void Adafruit_SPITFT::setSPISpeed(uint32_t freq) {
-#if defined(SPI_HAS_TRANSACTION)
-  hwspi.settings = SPISettings(freq, MSBFIRST, hwspi._mode);
-#else
-  hwspi._freq = freq; // Save freq value for later
-#endif
-}
-
-/*!
-    @brief  Call before issuing command(s) or data to display. Performs
-            chip-select (if required) and starts an SPI transaction (if
-            using hardware SPI and transactions are supported). Required
-            for all display types; not an SPI-specific function.
-*/
-void Adafruit_SPITFT::startWrite(void) {
-  SPI_BEGIN_TRANSACTION();
-  if (_cs >= 0)
-    SPI_CS_LOW();
-}
-
-/*!
-    @brief  Call after issuing command(s) or data to display. Performs
-            chip-deselect (if required) and ends an SPI transaction (if
-            using hardware SPI and transactions are supported). Required
-            for all display types; not an SPI-specific function.
-*/
-void Adafruit_SPITFT::endWrite(void) {
-  if (_cs >= 0)
-    SPI_CS_HIGH();
-  SPI_END_TRANSACTION();
-}
-
-// -------------------------------------------------------------------------
-// Lower-level graphics operations. These functions require a chip-select
-// and/or SPI transaction around them (via startWrite(), endWrite() above).
-// Higher-level graphics primitives might start a single transaction and
-// then make multiple calls to these functions (e.g. circle or text
-// rendering might make repeated lines or rects) before ending the
-// transaction. It's more efficient than starting a transaction every time.
-
-/*!
-    @brief  Draw a single pixel to the display at requested coordinates.
-            Not self-contained; should follow a startWrite() call.
-    @param  x      Horizontal position (0 = left).
-    @param  y      Vertical position   (0 = top).
-    @param  color  16-bit pixel color in '565' RGB format.
-*/
-void Adafruit_SPITFT::writePixel(int16_t x, int16_t y, uint16_t color) {
-  if ((x >= 0) && (x < _width) && (y >= 0) && (y < _height)) {
-    setAddrWindow(x, y, 1, 1);
-    SPI_WRITE16(color);
-  }
-}
-
-/*!
-    @brief  Issue a series of pixels from memory to the display. Not self-
-            contained; should follow startWrite() and setAddrWindow() calls.
-    @param  colors     Pointer to array of 16-bit pixel values in '565' RGB
-                       format.
-    @param  len        Number of elements in 'colors' array.
-    @param  block      If true (default case if unspecified), function blocks
-                       until DMA transfer is complete. This is simply IGNORED
-                       if DMA is not enabled. If false, the function returns
-                       immediately after the last DMA transfer is started,
-                       and one should use the dmaWait() function before
-                       doing ANY other display-related activities (or even
-                       any SPI-related activities, if using an SPI display
-                       that shares the bus with other devices).
-    @param  bigEndian  If using DMA, and if set true, bitmap in memory is in
-                       big-endian order (most significant byte first). By
-                       default this is false, as most microcontrollers seem
-                       to be little-endian and 16-bit pixel values must be
-                       byte-swapped before issuing to the display (which tend
-                       to be big-endian when using SPI or 8-bit parallel).
-                       If an application can optimize around this -- for
-                       example, a bitmap in a uint16_t array having the byte
-                       values already reordered big-endian, this can save
-                       some processing time here, ESPECIALLY if using this
-                       function's non-blocking DMA mode. Not all cases are
-                       covered...this is really here only for SAMD DMA and
-                       much forethought on the application side.
-*/
-void Adafruit_SPITFT::writePixels(uint16_t *colors, uint32_t len, bool block,
-                                  bool bigEndian) {
-
-  if (!len)
-    return; // Avoid 0-byte transfers
-
-  // avoid paramater-not-used complaints
-  (void)block;
-  (void)bigEndian;
-
-#if defined(ESP32) // ESP32 has a special SPI pixel-writing function...
-  if (connection == TFT_HARD_SPI) {
-    hwspi._spi->writePixels(colors, len * 2);
-    return;
-  }
-#elif defined(ARDUINO_NRF52_ADAFRUIT) &&                                       \
-    defined(NRF52840_XXAA) // Adafruit nRF52 use SPIM3 DMA at 32Mhz
-  // TFT and SPI DMA endian is different we need to swap bytes
-  if (!bigEndian) {
-    for (uint32_t i = 0; i < len; i++) {
-      colors[i] = __builtin_bswap16(colors[i]);
-    }
-  }
-
-  // use the separate tx, rx buf variant to prevent overwrite the buffer
-  hwspi._spi->transfer(colors, NULL, 2 * len);
-
-  // swap back color buffer
-  if (!bigEndian) {
-    for (uint32_t i = 0; i < len; i++) {
-      colors[i] = __builtin_bswap16(colors[i]);
-    }
-  }
-
-  return;
-#elif defined(USE_SPI_DMA) &&                                                  \
-    (defined(__SAMD51__) || defined(ARDUINO_SAMD_ZERO))
-  if ((connection == TFT_HARD_SPI) || (connection == TFT_PARALLEL)) {
-    int maxSpan = maxFillLen / 2; // One scanline max
-    uint8_t pixelBufIdx = 0;      // Active pixel buffer number
-#if defined(__SAMD51__)
-    if (connection == TFT_PARALLEL) {
-      // Switch WR pin to PWM or CCL
-      pinPeripheral(tft8._wr, wrPeripheral);
-    }
-#endif // end __SAMD51__
-    if (!bigEndian) { // Normal little-endian situation...
-      while (len) {
-        int count = (len < maxSpan) ? len : maxSpan;
-
-        // Because TFT and SAMD endianisms are different, must swap
-        // bytes from the 'colors' array passed into a DMA working
-        // buffer. This can take place while the prior DMA transfer
-        // is in progress, hence the need for two pixelBufs.
-        for (int i = 0; i < count; i++) {
-          pixelBuf[pixelBufIdx][i] = __builtin_bswap16(*colors++);
-        }
-        // The transfers themselves are relatively small, so we don't
-        // need a long descriptor list. We just alternate between the
-        // first two, sharing pixelBufIdx for that purpose.
-        descriptor[pixelBufIdx].SRCADDR.reg =
-            (uint32_t)pixelBuf[pixelBufIdx] + count * 2;
-        descriptor[pixelBufIdx].BTCTRL.bit.SRCINC = 1;
-        descriptor[pixelBufIdx].BTCNT.reg = count * 2;
-        descriptor[pixelBufIdx].DESCADDR.reg = 0;
-
-        while (dma_busy)
-          ; // Wait for prior line to finish
-
-        // Move new descriptor into place...
-        memcpy(dptr, &descriptor[pixelBufIdx], sizeof(DmacDescriptor));
-        dma_busy = true;
-        dma.startJob(); // Trigger SPI DMA transfer
-        if (connection == TFT_PARALLEL)
-          dma.trigger();
-        pixelBufIdx = 1 - pixelBufIdx; // Swap DMA pixel buffers
-
-        len -= count;
-      }
-    } else { // bigEndian == true
-      // With big-endian pixel data, this can be handled as a single
-      // DMA transfer using chained descriptors. Even full screen, this
-      // needs only a relatively short descriptor list, each
-      // transferring a max of 32,767 (not 32,768) pixels. The list
-      // was allocated large enough to accommodate a full screen's
-      // worth of data, so this won't run past the end of the list.
-      int d, numDescriptors = (len + 32766) / 32767;
-      for (d = 0; d < numDescriptors; d++) {
-        int count = (len < 32767) ? len : 32767;
-        descriptor[d].SRCADDR.reg = (uint32_t)colors + count * 2;
-        descriptor[d].BTCTRL.bit.SRCINC = 1;
-        descriptor[d].BTCNT.reg = count * 2;
-        descriptor[d].DESCADDR.reg = (uint32_t)&descriptor[d + 1];
-        len -= count;
-        colors += count;
-      }
-      descriptor[d - 1].DESCADDR.reg = 0;
-
-      while (dma_busy)
-        ; // Wait for prior transfer (if any) to finish
-
-      // Move first descriptor into place and start transfer...
-      memcpy(dptr, &descriptor[0], sizeof(DmacDescriptor));
-      dma_busy = true;
-      dma.startJob(); // Trigger SPI DMA transfer
-      if (connection == TFT_PARALLEL)
-        dma.trigger();
-    } // end bigEndian
-
-    lastFillColor = 0x0000; // pixelBuf has been sullied
-    lastFillLen = 0;
-    if (block) {
-      while (dma_busy)
-        ; // Wait for last line to complete
-#if defined(__SAMD51__) || defined(ARDUINO_SAMD_ZERO)
-      if (connection == TFT_HARD_SPI) {
-        // See SAMD51/21 note in writeColor()
-        hwspi._spi->setDataMode(hwspi._mode);
-      } else {
-        pinPeripheral(tft8._wr, PIO_OUTPUT); // Switch WR back to GPIO
-      }
-#endif // end __SAMD51__ || ARDUINO_SAMD_ZERO
-    }
-    return;
-  }
-#endif // end USE_SPI_DMA
-
-  // All other cases (bitbang SPI or non-DMA hard SPI or parallel),
-  // use a loop with the normal 16-bit data write function:
-  while (len--) {
-    SPI_WRITE16(*colors++);
-  }
-}
-
-/*!
-    @brief  Wait for the last DMA transfer in a prior non-blocking
-            writePixels() call to complete. This does nothing if DMA
-            is not enabled, and is not needed if blocking writePixels()
-            was used (as is the default case).
-*/
-void Adafruit_SPITFT::dmaWait(void) {
-#if defined(USE_SPI_DMA) && (defined(__SAMD51__) || defined(ARDUINO_SAMD_ZERO))
-  while (dma_busy)
-    ;
-#if defined(__SAMD51__) || defined(ARDUINO_SAMD_ZERO)
-  if (connection == TFT_HARD_SPI) {
-    // See SAMD51/21 note in writeColor()
-    hwspi._spi->setDataMode(hwspi._mode);
-  } else {
-    pinPeripheral(tft8._wr, PIO_OUTPUT); // Switch WR back to GPIO
-  }
-#endif // end __SAMD51__ || ARDUINO_SAMD_ZERO
-#endif
-}
-
-/*!
-    @brief  Issue a series of pixels, all the same color. Not self-
-            contained; should follow startWrite() and setAddrWindow() calls.
-    @param  color  16-bit pixel color in '565' RGB format.
-    @param  len    Number of pixels to draw.
-*/
-void Adafruit_SPITFT::writeColor(uint16_t color, uint32_t len) {
-
-  if (!len)
-    return; // Avoid 0-byte transfers
-
-  uint8_t hi = color >> 8, lo = color;
-
-#if defined(ESP32) // ESP32 has a special SPI pixel-writing function...
-  if (connection == TFT_HARD_SPI) {
-#define SPI_MAX_PIXELS_AT_ONCE 32
-#define TMPBUF_LONGWORDS (SPI_MAX_PIXELS_AT_ONCE + 1) / 2
-#define TMPBUF_PIXELS (TMPBUF_LONGWORDS * 2)
-    static uint32_t temp[TMPBUF_LONGWORDS];
-    uint32_t c32 = color * 0x00010001;
-    uint16_t bufLen = (len < TMPBUF_PIXELS) ? len : TMPBUF_PIXELS, xferLen,
-             fillLen;
-    // Fill temp buffer 32 bits at a time
-    fillLen = (bufLen + 1) / 2; // Round up to next 32-bit boundary
-    for (uint32_t t = 0; t < fillLen; t++) {
-      temp[t] = c32;
-    }
-    // Issue pixels in blocks from temp buffer
-    while (len) {                              // While pixels remain
-      xferLen = (bufLen < len) ? bufLen : len; // How many this pass?
-      writePixels((uint16_t *)temp, xferLen);
-      len -= xferLen;
-    }
-    return;
-  }
-#elif defined(ARDUINO_NRF52_ADAFRUIT) &&                                       \
-    defined(NRF52840_XXAA) // Adafruit nRF52840 use SPIM3 DMA at 32Mhz
-  // at most 2 scan lines
-  uint32_t const pixbufcount = min(len, ((uint32_t)2 * width()));
-  uint16_t *pixbuf = (uint16_t *)rtos_malloc(2 * pixbufcount);
-
-  // use SPI3 DMA if we could allocate buffer, else fall back to writing each
-  // pixel loop below
-  if (pixbuf) {
-    uint16_t const swap_color = __builtin_bswap16(color);
-
-    // fill buffer with color
-    for (uint32_t i = 0; i < pixbufcount; i++) {
-      pixbuf[i] = swap_color;
-    }
-
-    while (len) {
-      uint32_t const count = min(len, pixbufcount);
-      writePixels(pixbuf, count, true, true);
-      len -= count;
-    }
-
-    rtos_free(pixbuf);
-    return;
-  }
-#else                      // !ESP32
-#if defined(USE_SPI_DMA) && (defined(__SAMD51__) || defined(ARDUINO_SAMD_ZERO))
-  if (((connection == TFT_HARD_SPI) || (connection == TFT_PARALLEL)) &&
-      (len >= 16)) { // Don't bother with DMA on short pixel runs
-    int i, d, numDescriptors;
-    if (hi == lo) { // If high & low bytes are same...
-      onePixelBuf = color;
-      // Can do this with a relatively short descriptor list,
-      // each transferring a max of 32,767 (not 32,768) pixels.
-      // This won't run off the end of the allocated descriptor list,
-      // since we're using much larger chunks per descriptor here.
-      numDescriptors = (len + 32766) / 32767;
-      for (d = 0; d < numDescriptors; d++) {
-        int count = (len < 32767) ? len : 32767;
-        descriptor[d].SRCADDR.reg = (uint32_t)&onePixelBuf;
-        descriptor[d].BTCTRL.bit.SRCINC = 0;
-        descriptor[d].BTCNT.reg = count * 2;
-        descriptor[d].DESCADDR.reg = (uint32_t)&descriptor[d + 1];
-        len -= count;
-      }
-      descriptor[d - 1].DESCADDR.reg = 0;
-    } else {
-      // If high and low bytes are distinct, it's necessary to fill
-      // a buffer with pixel data (swapping high and low bytes because
-      // TFT and SAMD are different endianisms) and create a longer
-      // descriptor list pointing repeatedly to this data. We can do
-      // this slightly faster working 2 pixels (32 bits) at a time.
-      uint32_t *pixelPtr = (uint32_t *)pixelBuf[0],
-               twoPixels = __builtin_bswap16(color) * 0x00010001;
-      // We can avoid some or all of the buffer-filling if the color
-      // is the same as last time...
-      if (color == lastFillColor) {
-        // If length is longer than prior instance, fill only the
-        // additional pixels in the buffer and update lastFillLen.
-        if (len > lastFillLen) {
-          int fillStart = lastFillLen / 2,
-              fillEnd = (((len < maxFillLen) ? len : maxFillLen) + 1) / 2;
-          for (i = fillStart; i < fillEnd; i++)
-            pixelPtr[i] = twoPixels;
-          lastFillLen = fillEnd * 2;
-        } // else do nothing, don't set pixels or change lastFillLen
-      } else {
-        int fillEnd = (((len < maxFillLen) ? len : maxFillLen) + 1) / 2;
-        for (i = 0; i < fillEnd; i++)
-          pixelPtr[i] = twoPixels;
-        lastFillLen = fillEnd * 2;
-        lastFillColor = color;
-      }
-
-      numDescriptors = (len + maxFillLen - 1) / maxFillLen;
-      for (d = 0; d < numDescriptors; d++) {
-        int pixels = (len < maxFillLen) ? len : maxFillLen, bytes = pixels * 2;
-        descriptor[d].SRCADDR.reg = (uint32_t)pixelPtr + bytes;
-        descriptor[d].BTCTRL.bit.SRCINC = 1;
-        descriptor[d].BTCNT.reg = bytes;
-        descriptor[d].DESCADDR.reg = (uint32_t)&descriptor[d + 1];
-        len -= pixels;
-      }
-      descriptor[d - 1].DESCADDR.reg = 0;
-    }
-    memcpy(dptr, &descriptor[0], sizeof(DmacDescriptor));
-#if defined(__SAMD51__)
-    if (connection == TFT_PARALLEL) {
-      // Switch WR pin to PWM or CCL
-      pinPeripheral(tft8._wr, wrPeripheral);
-    }
-#endif // end __SAMD51__
-
-    dma_busy = true;
-    dma.startJob();
-    if (connection == TFT_PARALLEL)
-      dma.trigger();
-    while (dma_busy)
-      ; // Wait for completion
-      // Unfortunately blocking is necessary. An earlier version returned
-      // immediately and checked dma_busy on startWrite() instead, but it
-      // turns out to be MUCH slower on many graphics operations (as when
-      // drawing lines, pixel-by-pixel), perhaps because it's a volatile
-      // type and doesn't cache. Working on this.
-#if defined(__SAMD51__) || defined(ARDUINO_SAMD_ZERO)
-    if (connection == TFT_HARD_SPI) {
-      // SAMD51: SPI DMA seems to leave the SPI peripheral in a freaky
-      // state on completion. Workaround is to explicitly set it back...
-      // (5/17/2019: apparently SAMD21 too, in certain cases, observed
-      // with ST7789 display.)
-      hwspi._spi->setDataMode(hwspi._mode);
-    } else {
-      pinPeripheral(tft8._wr, PIO_OUTPUT); // Switch WR back to GPIO
-    }
-#endif // end __SAMD51__
-    return;
-  }
-#endif // end USE_SPI_DMA
-#endif // end !ESP32
-
-  // All other cases (non-DMA hard SPI, bitbang SPI, parallel)...
-
-  if (connection == TFT_HARD_SPI) {
-#if defined(ESP8266)
-    do {
-      uint32_t pixelsThisPass = len;
-      if (pixelsThisPass > 50000)
-        pixelsThisPass = 50000;
-      len -= pixelsThisPass;
-      yield(); // Periodic yield() on long fills
-      while (pixelsThisPass--) {
-        hwspi._spi->write(hi);
-        hwspi._spi->write(lo);
-      }
-    } while (len);
-#else // !ESP8266
-    while (len--) {
-#if defined(__AVR__)
-      AVR_WRITESPI(hi);
-      AVR_WRITESPI(lo);
-#elif defined(ESP32)
-      hwspi._spi->write(hi);
-      hwspi._spi->write(lo);
-#else
-      hwspi._spi->transfer(hi);
-      hwspi._spi->transfer(lo);
-#endif
-    }
-#endif // end !ESP8266
-  } else if (connection == TFT_SOFT_SPI) {
-#if defined(ESP8266)
-    do {
-      uint32_t pixelsThisPass = len;
-      if (pixelsThisPass > 20000)
-        pixelsThisPass = 20000;
-      len -= pixelsThisPass;
-      yield(); // Periodic yield() on long fills
-      while (pixelsThisPass--) {
-        for (uint16_t bit = 0, x = color; bit < 16; bit++) {
-          if (x & 0x8000)
-            SPI_MOSI_HIGH();
-          else
-            SPI_MOSI_LOW();
-          SPI_SCK_HIGH();
-          SPI_SCK_LOW();
-          x <<= 1;
-        }
-      }
-    } while (len);
-#else // !ESP8266
-    while (len--) {
-#if defined(__AVR__)
-      for (uint8_t bit = 0, x = hi; bit < 8; bit++) {
-        if (x & 0x80)
-          SPI_MOSI_HIGH();
-        else
-          SPI_MOSI_LOW();
-        SPI_SCK_HIGH();
-        SPI_SCK_LOW();
-        x <<= 1;
-      }
-      for (uint8_t bit = 0, x = lo; bit < 8; bit++) {
-        if (x & 0x80)
-          SPI_MOSI_HIGH();
-        else
-          SPI_MOSI_LOW();
-        SPI_SCK_HIGH();
-        SPI_SCK_LOW();
-        x <<= 1;
-      }
-#else      // !__AVR__
-      for (uint16_t bit = 0, x = color; bit < 16; bit++) {
-        if (x & 0x8000)
-          SPI_MOSI_HIGH();
-        else
-          SPI_MOSI_LOW();
-        SPI_SCK_HIGH();
-        x <<= 1;
-        SPI_SCK_LOW();
-      }
-#endif     // end !__AVR__
-    }
-#endif     // end !ESP8266
-  } else { // PARALLEL
-    if (hi == lo) {
-#if defined(__AVR__)
-      len *= 2;
-      *tft8.writePort = hi;
-      while (len--) {
-        TFT_WR_STROBE();
-      }
-#elif defined(USE_FAST_PINIO)
-      if (!tft8.wide) {
-        len *= 2;
-        *tft8.writePort = hi;
-      } else {
-        *(volatile uint16_t *)tft8.writePort = color;
-      }
-      while (len--) {
-        TFT_WR_STROBE();
-      }
-#endif
-    } else {
-      while (len--) {
-#if defined(__AVR__)
-        *tft8.writePort = hi;
-        TFT_WR_STROBE();
-        *tft8.writePort = lo;
-#elif defined(USE_FAST_PINIO)
-        if (!tft8.wide) {
-          *tft8.writePort = hi;
-          TFT_WR_STROBE();
-          *tft8.writePort = lo;
-        } else {
-          *(volatile uint16_t *)tft8.writePort = color;
-        }
-#endif
-        TFT_WR_STROBE();
-      }
-    }
-  }
-}
-
-/*!
-    @brief  Draw a filled rectangle to the display. Not self-contained;
-            should follow startWrite(). Typically used by higher-level
-            graphics primitives; user code shouldn't need to call this and
-            is likely to use the self-contained fillRect() instead.
-            writeFillRect() performs its own edge clipping and rejection;
-            see writeFillRectPreclipped() for a more 'raw' implementation.
-    @param  x      Horizontal position of first corner.
-    @param  y      Vertical position of first corner.
-    @param  w      Rectangle width in pixels (positive = right of first
-                   corner, negative = left of first corner).
-    @param  h      Rectangle height in pixels (positive = below first
-                   corner, negative = above first corner).
-    @param  color  16-bit fill color in '565' RGB format.
-    @note   Written in this deep-nested way because C by definition will
-            optimize for the 'if' case, not the 'else' -- avoids branches
-            and rejects clipped rectangles at the least-work possibility.
-*/
-void Adafruit_SPITFT::writeFillRect(int16_t x, int16_t y, int16_t w, int16_t h,
-                                    uint16_t color) {
-  if (w && h) {   // Nonzero width and height?
-    if (w < 0) {  // If negative width...
-      x += w + 1; //   Move X to left edge
-      w = -w;     //   Use positive width
-    }
-    if (x < _width) { // Not off right
-      if (h < 0) {    // If negative height...
-        y += h + 1;   //   Move Y to top edge
-        h = -h;       //   Use positive height
-      }
-      if (y < _height) { // Not off bottom
-        int16_t x2 = x + w - 1;
-        if (x2 >= 0) { // Not off left
-          int16_t y2 = y + h - 1;
-          if (y2 >= 0) { // Not off top
-            // Rectangle partly or fully overlaps screen
-            if (x < 0) {
-              x = 0;
-              w = x2 + 1;
-            } // Clip left
-            if (y < 0) {
-              y = 0;
-              h = y2 + 1;
-            } // Clip top
-            if (x2 >= _width) {
-              w = _width - x;
-            } // Clip right
-            if (y2 >= _height) {
-              h = _height - y;
-            } // Clip bottom
-            writeFillRectPreclipped(x, y, w, h, color);
-          }
-        }
-      }
-    }
-  }
-}
-
-/*!
-    @brief  Draw a horizontal line on the display. Performs edge clipping
-            and rejection. Not self-contained; should follow startWrite().
-            Typically used by higher-level graphics primitives; user code
-            shouldn't need to call this and is likely to use the self-
-            contained drawFastHLine() instead.
-    @param  x      Horizontal position of first point.
-    @param  y      Vertical position of first point.
-    @param  w      Line width in pixels (positive = right of first point,
-                   negative = point of first corner).
-    @param  color  16-bit line color in '565' RGB format.
-*/
-void inline Adafruit_SPITFT::writeFastHLine(int16_t x, int16_t y, int16_t w,
-                                            uint16_t color) {
-  if ((y >= 0) && (y < _height) && w) { // Y on screen, nonzero width
-    if (w < 0) {                        // If negative width...
-      x += w + 1;                       //   Move X to left edge
-      w = -w;                           //   Use positive width
-    }
-    if (x < _width) { // Not off right
-      int16_t x2 = x + w - 1;
-      if (x2 >= 0) { // Not off left
-        // Line partly or fully overlaps screen
-        if (x < 0) {
-          x = 0;
-          w = x2 + 1;
-        } // Clip left
-        if (x2 >= _width) {
-          w = _width - x;
-        } // Clip right
-        writeFillRectPreclipped(x, y, w, 1, color);
-      }
-    }
-  }
-}
-
-/*!
-    @brief  Draw a vertical line on the display. Performs edge clipping and
-            rejection. Not self-contained; should follow startWrite().
-            Typically used by higher-level graphics primitives; user code
-            shouldn't need to call this and is likely to use the self-
-            contained drawFastVLine() instead.
-    @param  x      Horizontal position of first point.
-    @param  y      Vertical position of first point.
-    @param  h      Line height in pixels (positive = below first point,
-                   negative = above first point).
-    @param  color  16-bit line color in '565' RGB format.
-*/
-void inline Adafruit_SPITFT::writeFastVLine(int16_t x, int16_t y, int16_t h,
-                                            uint16_t color) {
-  if ((x >= 0) && (x < _width) && h) { // X on screen, nonzero height
-    if (h < 0) {                       // If negative height...
-      y += h + 1;                      //   Move Y to top edge
-      h = -h;                          //   Use positive height
-    }
-    if (y < _height) { // Not off bottom
-      int16_t y2 = y + h - 1;
-      if (y2 >= 0) { // Not off top
-        // Line partly or fully overlaps screen
-        if (y < 0) {
-          y = 0;
-          h = y2 + 1;
-        } // Clip top
-        if (y2 >= _height) {
-          h = _height - y;
-        } // Clip bottom
-        writeFillRectPreclipped(x, y, 1, h, color);
-      }
-    }
-  }
-}
-
-/*!
-    @brief  A lower-level version of writeFillRect(). This version requires
-            all inputs are in-bounds, that width and height are positive,
-            and no part extends offscreen. NO EDGE CLIPPING OR REJECTION IS
-            PERFORMED. If higher-level graphics primitives are written to
-            handle their own clipping earlier in the drawing process, this
-            can avoid unnecessary function calls and repeated clipping
-            operations in the lower-level functions.
-    @param  x      Horizontal position of first corner. MUST BE WITHIN
-                   SCREEN BOUNDS.
-    @param  y      Vertical position of first corner. MUST BE WITHIN SCREEN
-                   BOUNDS.
-    @param  w      Rectangle width in pixels. MUST BE POSITIVE AND NOT
-                   EXTEND OFF SCREEN.
-    @param  h      Rectangle height in pixels. MUST BE POSITIVE AND NOT
-                   EXTEND OFF SCREEN.
-    @param  color  16-bit fill color in '565' RGB format.
-    @note   This is a new function, no graphics primitives besides rects
-            and horizontal/vertical lines are written to best use this yet.
-*/
-inline void Adafruit_SPITFT::writeFillRectPreclipped(int16_t x, int16_t y,
-                                                     int16_t w, int16_t h,
-                                                     uint16_t color) {
-  setAddrWindow(x, y, w, h);
-  writeColor(color, (uint32_t)w * h);
-}
-
-// -------------------------------------------------------------------------
-// Ever-so-slightly higher-level graphics operations. Similar to the 'write'
-// functions above, but these contain their own chip-select and SPI
-// transactions as needed (via startWrite(), endWrite()). They're typically
-// used solo -- as graphics primitives in themselves, not invoked by higher-
-// level primitives (which should use the functions above for better
-// performance).
-
-/*!
-    @brief  Draw a single pixel to the display at requested coordinates.
-            Self-contained and provides its own transaction as needed
-            (see writePixel(x,y,color) for a lower-level variant).
-            Edge clipping is performed here.
-    @param  x      Horizontal position (0 = left).
-    @param  y      Vertical position   (0 = top).
-    @param  color  16-bit pixel color in '565' RGB format.
-*/
-void Adafruit_SPITFT::drawPixel(int16_t x, int16_t y, uint16_t color) {
-  // Clip first...
-  if ((x >= 0) && (x < _width) && (y >= 0) && (y < _height)) {
-    // THEN set up transaction (if needed) and draw...
-    startWrite();
-    setAddrWindow(x, y, 1, 1);
-    SPI_WRITE16(color);
-    endWrite();
-  }
-}
-
-/*!
-    @brief  Draw a filled rectangle to the display. Self-contained and
-            provides its own transaction as needed (see writeFillRect() or
-            writeFillRectPreclipped() for lower-level variants). Edge
-            clipping and rejection is performed here.
-    @param  x      Horizontal position of first corner.
-    @param  y      Vertical position of first corner.
-    @param  w      Rectangle width in pixels (positive = right of first
-                   corner, negative = left of first corner).
-    @param  h      Rectangle height in pixels (positive = below first
-                   corner, negative = above first corner).
-    @param  color  16-bit fill color in '565' RGB format.
-    @note   This repeats the writeFillRect() function almost in its entirety,
-            with the addition of a transaction start/end. It's done this way
-            (rather than starting the transaction and calling writeFillRect()
-            to handle clipping and so forth) so that the transaction isn't
-            performed at all if the rectangle is rejected. It's really not
-            that much code.
-*/
-void Adafruit_SPITFT::fillRect(int16_t x, int16_t y, int16_t w, int16_t h,
-                               uint16_t color) {
-  if (w && h) {   // Nonzero width and height?
-    if (w < 0) {  // If negative width...
-      x += w + 1; //   Move X to left edge
-      w = -w;     //   Use positive width
-    }
-    if (x < _width) { // Not off right
-      if (h < 0) {    // If negative height...
-        y += h + 1;   //   Move Y to top edge
-        h = -h;       //   Use positive height
-      }
-      if (y < _height) { // Not off bottom
-        int16_t x2 = x + w - 1;
-        if (x2 >= 0) { // Not off left
-          int16_t y2 = y + h - 1;
-          if (y2 >= 0) { // Not off top
-            // Rectangle partly or fully overlaps screen
-            if (x < 0) {
-              x = 0;
-              w = x2 + 1;
-            } // Clip left
-            if (y < 0) {
-              y = 0;
-              h = y2 + 1;
-            } // Clip top
-            if (x2 >= _width) {
-              w = _width - x;
-            } // Clip right
-            if (y2 >= _height) {
-              h = _height - y;
-            } // Clip bottom
-            startWrite();
-            writeFillRectPreclipped(x, y, w, h, color);
-            endWrite();
-          }
-        }
-      }
-    }
-  }
-}
-
-/*!
-    @brief  Draw a horizontal line on the display. Self-contained and
-            provides its own transaction as needed (see writeFastHLine() for
-            a lower-level variant). Edge clipping and rejection is performed
-            here.
-    @param  x      Horizontal position of first point.
-    @param  y      Vertical position of first point.
-    @param  w      Line width in pixels (positive = right of first point,
-                   negative = point of first corner).
-    @param  color  16-bit line color in '565' RGB format.
-    @note   This repeats the writeFastHLine() function almost in its
-            entirety, with the addition of a transaction start/end. It's
-            done this way (rather than starting the transaction and calling
-            writeFastHLine() to handle clipping and so forth) so that the
-            transaction isn't performed at all if the line is rejected.
-*/
-void Adafruit_SPITFT::drawFastHLine(int16_t x, int16_t y, int16_t w,
-                                    uint16_t color) {
-  if ((y >= 0) && (y < _height) && w) { // Y on screen, nonzero width
-    if (w < 0) {                        // If negative width...
-      x += w + 1;                       //   Move X to left edge
-      w = -w;                           //   Use positive width
-    }
-    if (x < _width) { // Not off right
-      int16_t x2 = x + w - 1;
-      if (x2 >= 0) { // Not off left
-        // Line partly or fully overlaps screen
-        if (x < 0) {
-          x = 0;
-          w = x2 + 1;
-        } // Clip left
-        if (x2 >= _width) {
-          w = _width - x;
-        } // Clip right
-        startWrite();
-        writeFillRectPreclipped(x, y, w, 1, color);
-        endWrite();
-      }
-    }
-  }
-}
-
-/*!
-    @brief  Draw a vertical line on the display. Self-contained and provides
-            its own transaction as needed (see writeFastHLine() for a lower-
-            level variant). Edge clipping and rejection is performed here.
-    @param  x      Horizontal position of first point.
-    @param  y      Vertical position of first point.
-    @param  h      Line height in pixels (positive = below first point,
-                   negative = above first point).
-    @param  color  16-bit line color in '565' RGB format.
-    @note   This repeats the writeFastVLine() function almost in its
-            entirety, with the addition of a transaction start/end. It's
-            done this way (rather than starting the transaction and calling
-            writeFastVLine() to handle clipping and so forth) so that the
-            transaction isn't performed at all if the line is rejected.
-*/
-void Adafruit_SPITFT::drawFastVLine(int16_t x, int16_t y, int16_t h,
-                                    uint16_t color) {
-  if ((x >= 0) && (x < _width) && h) { // X on screen, nonzero height
-    if (h < 0) {                       // If negative height...
-      y += h + 1;                      //   Move Y to top edge
-      h = -h;                          //   Use positive height
-    }
-    if (y < _height) { // Not off bottom
-      int16_t y2 = y + h - 1;
-      if (y2 >= 0) { // Not off top
-        // Line partly or fully overlaps screen
-        if (y < 0) {
-          y = 0;
-          h = y2 + 1;
-        } // Clip top
-        if (y2 >= _height) {
-          h = _height - y;
-        } // Clip bottom
-        startWrite();
-        writeFillRectPreclipped(x, y, 1, h, color);
-        endWrite();
-      }
-    }
-  }
-}
-
-/*!
-    @brief  Essentially writePixel() with a transaction around it. I don't
-            think this is in use by any of our code anymore (believe it was
-            for some older BMP-reading examples), but is kept here in case
-            any user code relies on it. Consider it DEPRECATED.
-    @param  color  16-bit pixel color in '565' RGB format.
-*/
-void Adafruit_SPITFT::pushColor(uint16_t color) {
-  startWrite();
-  SPI_WRITE16(color);
-  endWrite();
-}
-
-/*!
-    @brief  Draw a 16-bit image (565 RGB) at the specified (x,y) position.
-            For 16-bit display devices; no color reduction performed.
-            Adapted from https://github.com/PaulStoffregen/ILI9341_t3
-            by Marc MERLIN. See examples/pictureEmbed to use this.
-            5/6/2017: function name and arguments have changed for
-            compatibility with current GFX library and to avoid naming
-            problems in prior implementation.  Formerly drawBitmap() with
-            arguments in different order. Handles its own transaction and
-            edge clipping/rejection.
-    @param  x        Top left corner horizontal coordinate.
-    @param  y        Top left corner vertical coordinate.
-    @param  pcolors  Pointer to 16-bit array of pixel values.
-    @param  w        Width of bitmap in pixels.
-    @param  h        Height of bitmap in pixels.
-*/
-void Adafruit_SPITFT::drawRGBBitmap(int16_t x, int16_t y, uint16_t *pcolors,
-                                    int16_t w, int16_t h) {
-
-  int16_t x2, y2;                 // Lower-right coord
-  if ((x >= _width) ||            // Off-edge right
-      (y >= _height) ||           // " top
-      ((x2 = (x + w - 1)) < 0) || // " left
-      ((y2 = (y + h - 1)) < 0))
-    return; // " bottom
-
-  int16_t bx1 = 0, by1 = 0, // Clipped top-left within bitmap
-      saveW = w;            // Save original bitmap width value
-  if (x < 0) {              // Clip left
-    w += x;
-    bx1 = -x;
-    x = 0;
-  }
-  if (y < 0) { // Clip top
-    h += y;
-    by1 = -y;
-    y = 0;
-  }
-  if (x2 >= _width)
-    w = _width - x; // Clip right
-  if (y2 >= _height)
-    h = _height - y; // Clip bottom
-
-  pcolors += by1 * saveW + bx1; // Offset bitmap ptr to clipped top-left
-  startWrite();
-  setAddrWindow(x, y, w, h); // Clipped area
-  while (h--) {              // For each (clipped) scanline...
-    writePixels(pcolors, w); // Push one (clipped) row
-    pcolors += saveW;        // Advance pointer by one full (unclipped) line
-  }
-  endWrite();
-}
-
-// -------------------------------------------------------------------------
-// Miscellaneous class member functions that don't draw anything.
-
-/*!
-    @brief  Invert the colors of the display (if supported by hardware).
-            Self-contained, no transaction setup required.
-    @param  i  true = inverted display, false = normal display.
-*/
-void Adafruit_SPITFT::invertDisplay(bool i) {
-  startWrite();
-  writeCommand(i ? invertOnCommand : invertOffCommand);
-  endWrite();
-}
-
-/*!
-    @brief   Given 8-bit red, green and blue values, return a 'packed'
-             16-bit color value in '565' RGB format (5 bits red, 6 bits
-             green, 5 bits blue). This is just a mathematical operation,
-             no hardware is touched.
-    @param   red    8-bit red brightnesss (0 = off, 255 = max).
-    @param   green  8-bit green brightnesss (0 = off, 255 = max).
-    @param   blue   8-bit blue brightnesss (0 = off, 255 = max).
-    @return  'Packed' 16-bit color value (565 format).
-*/
-uint16_t Adafruit_SPITFT::color565(uint8_t red, uint8_t green, uint8_t blue) {
-  return ((red & 0xF8) << 8) | ((green & 0xFC) << 3) | (blue >> 3);
-}
-
-/*!
-@brief   Adafruit_SPITFT Send Command handles complete sending of commands and
-data
-@param   commandByte       The Command Byte
-@param   dataBytes         A pointer to the Data bytes to send
-@param   numDataBytes      The number of bytes we should send
-*/
-void Adafruit_SPITFT::sendCommand(uint8_t commandByte, uint8_t *dataBytes,
-                                  uint8_t numDataBytes) {
-  SPI_BEGIN_TRANSACTION();
-  if (_cs >= 0)
-    SPI_CS_LOW();
-
-  SPI_DC_LOW();          // Command mode
-  spiWrite(commandByte); // Send the command byte
-
-  SPI_DC_HIGH();
-  for (int i = 0; i < numDataBytes; i++) {
-    if ((connection == TFT_PARALLEL) && tft8.wide) {
-      SPI_WRITE16(*(uint16_t *)dataBytes);
-      dataBytes += 2;
-    } else {
-      spiWrite(*dataBytes); // Send the data bytes
-      dataBytes++;
-    }
-  }
-
-  if (_cs >= 0)
-    SPI_CS_HIGH();
-  SPI_END_TRANSACTION();
-}
-
-/*!
- @brief   Adafruit_SPITFT Send Command handles complete sending of commands and
- data
- @param   commandByte       The Command Byte
- @param   dataBytes         A pointer to the Data bytes to send
- @param   numDataBytes      The number of bytes we should send
- */
-void Adafruit_SPITFT::sendCommand(uint8_t commandByte, const uint8_t *dataBytes,
-                                  uint8_t numDataBytes) {
-  SPI_BEGIN_TRANSACTION();
-  if (_cs >= 0)
-    SPI_CS_LOW();
-
-  SPI_DC_LOW();          // Command mode
-  spiWrite(commandByte); // Send the command byte
-
-  SPI_DC_HIGH();
-  for (int i = 0; i < numDataBytes; i++) {
-    if ((connection == TFT_PARALLEL) && tft8.wide) {
-      SPI_WRITE16(*(uint16_t *)dataBytes);
-      dataBytes += 2;
-    } else {
-      spiWrite(pgm_read_byte(dataBytes++));
-    }
-  }
-
-  if (_cs >= 0)
-    SPI_CS_HIGH();
-  SPI_END_TRANSACTION();
-}
-
-/*!
- @brief  Adafruit_SPITFT sendCommand16 handles complete sending of
-         commands and data for 16-bit parallel displays. Currently somewhat
-         rigged for the NT35510, which has the odd behavior of wanting
-         commands 16-bit, but subsequent data as 8-bit values, despite
-         the 16-bit bus (high byte is always 0). Also seems to require
-         issuing and incrementing address with each transfer.
- @param  commandWord   The command word (16 bits)
- @param  dataBytes     A pointer to the data bytes to send
- @param  numDataBytes  The number of bytes we should send
- */
-void Adafruit_SPITFT::sendCommand16(uint16_t commandWord,
-                                    const uint8_t *dataBytes,
-                                    uint8_t numDataBytes) {
-  SPI_BEGIN_TRANSACTION();
-  if (_cs >= 0)
-    SPI_CS_LOW();
-
-  if (numDataBytes == 0) {
-    SPI_DC_LOW();             // Command mode
-    SPI_WRITE16(commandWord); // Send the command word
-    SPI_DC_HIGH();            // Data mode
-  }
-  for (int i = 0; i < numDataBytes; i++) {
-    SPI_DC_LOW();             // Command mode
-    SPI_WRITE16(commandWord); // Send the command word
-    SPI_DC_HIGH();            // Data mode
-    commandWord++;
-    SPI_WRITE16((uint16_t)pgm_read_byte(dataBytes++));
-  }
-
-  if (_cs >= 0)
-    SPI_CS_HIGH();
-  SPI_END_TRANSACTION();
-}
-
-/*!
- @brief   Read 8 bits of data from display configuration memory (not RAM).
- This is highly undocumented/supported and should be avoided,
- function is only included because some of the examples use it.
- @param   commandByte
- The command register to read data from.
- @param   index
- The byte index into the command to read from.
- @return  Unsigned 8-bit data read from display register.
- */
-/**************************************************************************/
-uint8_t Adafruit_SPITFT::readcommand8(uint8_t commandByte, uint8_t index) {
-  uint8_t result;
-  startWrite();
-  SPI_DC_LOW(); // Command mode
-  spiWrite(commandByte);
-  SPI_DC_HIGH(); // Data mode
-  do {
-    result = spiRead();
-  } while (index--); // Discard bytes up to index'th
-  endWrite();
-  return result;
-}
-
-/*!
- @brief   Read 16 bits of data from display register.
-          For 16-bit parallel displays only.
- @param   addr  Command/register to access.
- @return  Unsigned 16-bit data.
- */
-uint16_t Adafruit_SPITFT::readcommand16(uint16_t addr) {
-#if defined(USE_FAST_PINIO) // NOT SUPPORTED without USE_FAST_PINIO
-  uint16_t result = 0;
-  if ((connection == TFT_PARALLEL) && tft8.wide) {
-    startWrite();
-    SPI_DC_LOW(); // Command mode
-    SPI_WRITE16(addr);
-    SPI_DC_HIGH(); // Data mode
-    TFT_RD_LOW();  // Read line LOW
-#if defined(HAS_PORT_SET_CLR)
-    *(volatile uint16_t *)tft8.dirClr = 0xFFFF;   // Input state
-    result = *(volatile uint16_t *)tft8.readPort; // 16-bit read
-    *(volatile uint16_t *)tft8.dirSet = 0xFFFF;   // Output state
-#else                                             // !HAS_PORT_SET_CLR
-    *(volatile uint16_t *)tft8.portDir = 0x0000;    // Input state
-    result = *(volatile uint16_t *)tft8.readPort;   // 16-bit read
-    *(volatile uint16_t *)tft8.portDir = 0xFFFF;    // Output state
-#endif                                            // end !HAS_PORT_SET_CLR
-    TFT_RD_HIGH();                                // Read line HIGH
-    endWrite();
-  }
-  return result;
-#else
-  return 0;
-#endif // end !USE_FAST_PINIO
-}
-
-// -------------------------------------------------------------------------
-// Lowest-level hardware-interfacing functions. Many of these are inline and
-// compile to different things based on #defines -- typically just a few
-// instructions. Others, not so much, those are not inlined.
-
-/*!
-    @brief  Start an SPI transaction if using the hardware SPI interface to
-            the display. If using an earlier version of the Arduino platform
-            (before the addition of SPI transactions), this instead attempts
-            to set up the SPI clock and mode. No action is taken if the
-            connection is not hardware SPI-based. This does NOT include a
-            chip-select operation -- see startWrite() for a function that
-            encapsulated both actions.
-*/
-inline void Adafruit_SPITFT::SPI_BEGIN_TRANSACTION(void) {
-  if (connection == TFT_HARD_SPI) {
-#if defined(SPI_HAS_TRANSACTION)
-    hwspi._spi->beginTransaction(hwspi.settings);
-#else // No transactions, configure SPI manually...
-#if defined(__AVR__) || defined(TEENSYDUINO) || defined(ARDUINO_ARCH_STM32F1)
-    hwspi._spi->setClockDivider(SPI_CLOCK_DIV2);
-#elif defined(__arm__)
-    hwspi._spi->setClockDivider(11);
-#elif defined(ESP8266) || defined(ESP32)
-    hwspi._spi->setFrequency(hwspi._freq);
-#elif defined(RASPI) || defined(ARDUINO_ARCH_STM32F1)
-    hwspi._spi->setClock(hwspi._freq);
-#endif
-    hwspi._spi->setBitOrder(MSBFIRST);
-    hwspi._spi->setDataMode(hwspi._mode);
-#endif // end !SPI_HAS_TRANSACTION
-  }
-}
-
-/*!
-    @brief  End an SPI transaction if using the hardware SPI interface to
-            the display. No action is taken if the connection is not
-            hardware SPI-based or if using an earlier version of the Arduino
-            platform (before the addition of SPI transactions). This does
-            NOT include a chip-deselect operation -- see endWrite() for a
-            function that encapsulated both actions.
-*/
-inline void Adafruit_SPITFT::SPI_END_TRANSACTION(void) {
-#if defined(SPI_HAS_TRANSACTION)
-  if (connection == TFT_HARD_SPI) {
-    hwspi._spi->endTransaction();
-  }
-#endif
-}
-
-/*!
-    @brief  Issue a single 8-bit value to the display. Chip-select,
-            transaction and data/command selection must have been
-            previously set -- this ONLY issues the byte. This is another of
-            those functions in the library with a now-not-accurate name
-            that's being maintained for compatibility with outside code.
-            This function is used even if display connection is parallel.
-    @param  b  8-bit value to write.
-*/
-void Adafruit_SPITFT::spiWrite(uint8_t b) {
-  if (connection == TFT_HARD_SPI) {
-#if defined(__AVR__)
-    AVR_WRITESPI(b);
-#elif defined(ESP8266) || defined(ESP32)
-    hwspi._spi->write(b);
-#else
-    hwspi._spi->transfer(b);
-#endif
-  } else if (connection == TFT_SOFT_SPI) {
-    for (uint8_t bit = 0; bit < 8; bit++) {
-      if (b & 0x80)
-        SPI_MOSI_HIGH();
-      else
-        SPI_MOSI_LOW();
-      SPI_SCK_HIGH();
-      b <<= 1;
-      SPI_SCK_LOW();
-    }
-  } else { // TFT_PARALLEL
-#if defined(__AVR__)
-    *tft8.writePort = b;
-#elif defined(USE_FAST_PINIO)
-    if (!tft8.wide)
-      *tft8.writePort = b;
-    else
-      *(volatile uint16_t *)tft8.writePort = b;
-#endif
-    TFT_WR_STROBE();
-  }
-}
-
-/*!
-    @brief  Write a single command byte to the display. Chip-select and
-            transaction must have been previously set -- this ONLY sets
-            the device to COMMAND mode, issues the byte and then restores
-            DATA mode. There is no corresponding explicit writeData()
-            function -- just use spiWrite().
-    @param  cmd  8-bit command to write.
-*/
-void Adafruit_SPITFT::writeCommand(uint8_t cmd) {
-  SPI_DC_LOW();
-  spiWrite(cmd);
-  SPI_DC_HIGH();
-}
-
-/*!
-    @brief   Read a single 8-bit value from the display. Chip-select and
-             transaction must have been previously set -- this ONLY reads
-             the byte. This is another of those functions in the library
-             with a now-not-accurate name that's being maintained for
-             compatibility with outside code. This function is used even if
-             display connection is parallel.
-    @return  Unsigned 8-bit value read (always zero if USE_FAST_PINIO is
-             not supported by the MCU architecture).
-*/
-uint8_t Adafruit_SPITFT::spiRead(void) {
-  uint8_t b = 0;
-  uint16_t w = 0;
-  if (connection == TFT_HARD_SPI) {
-    return hwspi._spi->transfer((uint8_t)0);
-  } else if (connection == TFT_SOFT_SPI) {
-    if (swspi._miso >= 0) {
-      for (uint8_t i = 0; i < 8; i++) {
-        SPI_SCK_HIGH();
-        b <<= 1;
-        if (SPI_MISO_READ())
-          b++;
-        SPI_SCK_LOW();
-      }
-    }
-    return b;
-  } else { // TFT_PARALLEL
-    if (tft8._rd >= 0) {
-#if defined(USE_FAST_PINIO)
-      TFT_RD_LOW(); // Read line LOW
-#if defined(__AVR__)
-      *tft8.portDir = 0x00; // Set port to input state
-      w = *tft8.readPort;   // Read value from port
-      *tft8.portDir = 0xFF; // Restore port to output
-#else                       // !__AVR__
-      if (!tft8.wide) {                             // 8-bit TFT connection
-#if defined(HAS_PORT_SET_CLR)
-        *tft8.dirClr = 0xFF;                        // Set port to input state
-        w = *tft8.readPort;                         // Read value from port
-        *tft8.dirSet = 0xFF;                        // Restore port to output
-#else  // !HAS_PORT_SET_CLR
-        *tft8.portDir = 0x00;                        // Set port to input state
-        w = *tft8.readPort;                          // Read value from port
-        *tft8.portDir = 0xFF;                        // Restore port to output
-#endif // end HAS_PORT_SET_CLR
-      } else {                                      // 16-bit TFT connection
-#if defined(HAS_PORT_SET_CLR)
-        *(volatile uint16_t *)tft8.dirClr = 0xFFFF; // Input state
-        w = *(volatile uint16_t *)tft8.readPort;    // 16-bit read
-        *(volatile uint16_t *)tft8.dirSet = 0xFFFF; // Output state
-#else  // !HAS_PORT_SET_CLR
-        *(volatile uint16_t *)tft8.portDir = 0x0000; // Input state
-        w = *(volatile uint16_t *)tft8.readPort;     // 16-bit read
-        *(volatile uint16_t *)tft8.portDir = 0xFFFF; // Output state
-#endif // end !HAS_PORT_SET_CLR
-      }
-      TFT_RD_HIGH();                                 // Read line HIGH
-#endif // end !__AVR__
-#else  // !USE_FAST_PINIO
-      w = 0; // Parallel TFT is NOT SUPPORTED without USE_FAST_PINIO
-#endif // end !USE_FAST_PINIO
-    }
-    return w;
-  }
-}
-
-/*!
-    @brief  Issue a single 16-bit value to the display. Chip-select,
-            transaction and data/command selection must have been
-            previously set -- this ONLY issues the word.
-            Thus operates ONLY on 'wide' (16-bit) parallel displays!
-    @param  w  16-bit value to write.
-*/
-void Adafruit_SPITFT::write16(uint16_t w) {
-  if (connection == TFT_PARALLEL) {
-#if defined(USE_FAST_PINIO)
-    if (tft8.wide)
-      *(volatile uint16_t *)tft8.writePort = w;
-#endif
-    TFT_WR_STROBE();
-  }
-}
-
-/*!
-    @brief  Write a single command word to the display. Chip-select and
-            transaction must have been previously set -- this ONLY sets
-            the device to COMMAND mode, issues the byte and then restores
-            DATA mode. This operates ONLY on 'wide' (16-bit) parallel
-            displays!
-    @param  cmd  16-bit command to write.
-*/
-void Adafruit_SPITFT::writeCommand16(uint16_t cmd) {
-  SPI_DC_LOW();
-  write16(cmd);
-  SPI_DC_HIGH();
-}
-
-/*!
-    @brief   Read a single 16-bit value from the display. Chip-select and
-             transaction must have been previously set -- this ONLY reads
-             the byte. This operates ONLY on 'wide' (16-bit) parallel
-             displays!
-    @return  Unsigned 16-bit value read (always zero if USE_FAST_PINIO is
-             not supported by the MCU architecture).
-*/
-uint16_t Adafruit_SPITFT::read16(void) {
-  uint16_t w = 0;
-  if (connection == TFT_PARALLEL) {
-    if (tft8._rd >= 0) {
-#if defined(USE_FAST_PINIO)
-      TFT_RD_LOW();    // Read line LOW
-      if (tft8.wide) { // 16-bit TFT connection
-#if defined(HAS_PORT_SET_CLR)
-        *(volatile uint16_t *)tft8.dirClr = 0xFFFF; // Input state
-        w = *(volatile uint16_t *)tft8.readPort;    // 16-bit read
-        *(volatile uint16_t *)tft8.dirSet = 0xFFFF; // Output state
-#else                                               // !HAS_PORT_SET_CLR
-        *(volatile uint16_t *)tft8.portDir = 0x0000; // Input state
-        w = *(volatile uint16_t *)tft8.readPort;     // 16-bit read
-        *(volatile uint16_t *)tft8.portDir = 0xFFFF; // Output state
-#endif                                              // end !HAS_PORT_SET_CLR
-      }
-      TFT_RD_HIGH(); // Read line HIGH
-#else                // !USE_FAST_PINIO
-      w = 0; // Parallel TFT is NOT SUPPORTED without USE_FAST_PINIO
-#endif               // end !USE_FAST_PINIO
-    }
-  }
-  return w;
-}
-
-/*!
-    @brief  Set the software (bitbang) SPI MOSI line HIGH.
-*/
-inline void Adafruit_SPITFT::SPI_MOSI_HIGH(void) {
-#if defined(USE_FAST_PINIO)
-#if defined(HAS_PORT_SET_CLR)
-#if defined(KINETISK)
-  *swspi.mosiPortSet = 1;
-#else // !KINETISK
-  *swspi.mosiPortSet = swspi.mosiPinMask;
-#endif
-#else  // !HAS_PORT_SET_CLR
-  *swspi.mosiPort |= swspi.mosiPinMaskSet;
-#endif // end !HAS_PORT_SET_CLR
-#else  // !USE_FAST_PINIO
-  digitalWrite(swspi._mosi, HIGH);
-#if defined(ESP32)
-  for (volatile uint8_t i = 0; i < 1; i++)
-    ;
-#endif // end ESP32
-#endif // end !USE_FAST_PINIO
-}
-
-/*!
-    @brief  Set the software (bitbang) SPI MOSI line LOW.
-*/
-inline void Adafruit_SPITFT::SPI_MOSI_LOW(void) {
-#if defined(USE_FAST_PINIO)
-#if defined(HAS_PORT_SET_CLR)
-#if defined(KINETISK)
-  *swspi.mosiPortClr = 1;
-#else // !KINETISK
-  *swspi.mosiPortClr = swspi.mosiPinMask;
-#endif
-#else  // !HAS_PORT_SET_CLR
-  *swspi.mosiPort &= swspi.mosiPinMaskClr;
-#endif // end !HAS_PORT_SET_CLR
-#else  // !USE_FAST_PINIO
-  digitalWrite(swspi._mosi, LOW);
-#if defined(ESP32)
-  for (volatile uint8_t i = 0; i < 1; i++)
-    ;
-#endif // end ESP32
-#endif // end !USE_FAST_PINIO
-}
-
-/*!
-    @brief  Set the software (bitbang) SPI SCK line HIGH.
-*/
-inline void Adafruit_SPITFT::SPI_SCK_HIGH(void) {
-#if defined(USE_FAST_PINIO)
-#if defined(HAS_PORT_SET_CLR)
-#if defined(KINETISK)
-  *swspi.sckPortSet = 1;
-#else                                                // !KINETISK
-  *swspi.sckPortSet = swspi.sckPinMask;
-#if defined(__IMXRT1052__) || defined(__IMXRT1062__) // Teensy 4.x
-  for (volatile uint8_t i = 0; i < 1; i++)
-    ;
-#endif
-#endif
-#else  // !HAS_PORT_SET_CLR
-  *swspi.sckPort |= swspi.sckPinMaskSet;
-#endif // end !HAS_PORT_SET_CLR
-#else  // !USE_FAST_PINIO
-  digitalWrite(swspi._sck, HIGH);
-#if defined(ESP32)
-  for (volatile uint8_t i = 0; i < 1; i++)
-    ;
-#endif // end ESP32
-#endif // end !USE_FAST_PINIO
-}
-
-/*!
-    @brief  Set the software (bitbang) SPI SCK line LOW.
-*/
-inline void Adafruit_SPITFT::SPI_SCK_LOW(void) {
-#if defined(USE_FAST_PINIO)
-#if defined(HAS_PORT_SET_CLR)
-#if defined(KINETISK)
-  *swspi.sckPortClr = 1;
-#else                                                // !KINETISK
-  *swspi.sckPortClr = swspi.sckPinMask;
-#if defined(__IMXRT1052__) || defined(__IMXRT1062__) // Teensy 4.x
-  for (volatile uint8_t i = 0; i < 1; i++)
-    ;
-#endif
-#endif
-#else  // !HAS_PORT_SET_CLR
-  *swspi.sckPort &= swspi.sckPinMaskClr;
-#endif // end !HAS_PORT_SET_CLR
-#else  // !USE_FAST_PINIO
-  digitalWrite(swspi._sck, LOW);
-#if defined(ESP32)
-  for (volatile uint8_t i = 0; i < 1; i++)
-    ;
-#endif // end ESP32
-#endif // end !USE_FAST_PINIO
-}
-
-/*!
-    @brief   Read the state of the software (bitbang) SPI MISO line.
-    @return  true if HIGH, false if LOW.
-*/
-inline bool Adafruit_SPITFT::SPI_MISO_READ(void) {
-#if defined(USE_FAST_PINIO)
-#if defined(KINETISK)
-  return *swspi.misoPort;
-#else  // !KINETISK
-  return *swspi.misoPort & swspi.misoPinMask;
-#endif // end !KINETISK
-#else  // !USE_FAST_PINIO
-  return digitalRead(swspi._miso);
-#endif // end !USE_FAST_PINIO
-}
-
-/*!
-    @brief  Issue a single 16-bit value to the display. Chip-select,
-            transaction and data/command selection must have been
-            previously set -- this ONLY issues the word. Despite the name,
-            this function is used even if display connection is parallel;
-            name was maintaned for backward compatibility. Naming is also
-            not consistent with the 8-bit version, spiWrite(). Sorry about
-            that. Again, staying compatible with outside code.
-    @param  w  16-bit value to write.
-*/
-void Adafruit_SPITFT::SPI_WRITE16(uint16_t w) {
-  if (connection == TFT_HARD_SPI) {
-#if defined(__AVR__)
-    AVR_WRITESPI(w >> 8);
-    AVR_WRITESPI(w);
-#elif defined(ESP8266) || defined(ESP32)
-    hwspi._spi->write16(w);
-#else
-    hwspi._spi->transfer(w >> 8);
-    hwspi._spi->transfer(w);
-#endif
-  } else if (connection == TFT_SOFT_SPI) {
-    for (uint8_t bit = 0; bit < 16; bit++) {
-      if (w & 0x8000)
-        SPI_MOSI_HIGH();
-      else
-        SPI_MOSI_LOW();
-      SPI_SCK_HIGH();
-      SPI_SCK_LOW();
-      w <<= 1;
-    }
-  } else { // TFT_PARALLEL
-#if defined(__AVR__)
-    *tft8.writePort = w >> 8;
-    TFT_WR_STROBE();
-    *tft8.writePort = w;
-#elif defined(USE_FAST_PINIO)
-    if (!tft8.wide) {
-      *tft8.writePort = w >> 8;
-      TFT_WR_STROBE();
-      *tft8.writePort = w;
-    } else {
-      *(volatile uint16_t *)tft8.writePort = w;
-    }
-#endif
-    TFT_WR_STROBE();
-  }
-}
-
-/*!
-    @brief  Issue a single 32-bit value to the display. Chip-select,
-            transaction and data/command selection must have been
-            previously set -- this ONLY issues the longword. Despite the
-            name, this function is used even if display connection is
-            parallel; name was maintaned for backward compatibility. Naming
-            is also not consistent with the 8-bit version, spiWrite().
-            Sorry about that. Again, staying compatible with outside code.
-    @param  l  32-bit value to write.
-*/
-void Adafruit_SPITFT::SPI_WRITE32(uint32_t l) {
-  if (connection == TFT_HARD_SPI) {
-#if defined(__AVR__)
-    AVR_WRITESPI(l >> 24);
-    AVR_WRITESPI(l >> 16);
-    AVR_WRITESPI(l >> 8);
-    AVR_WRITESPI(l);
-#elif defined(ESP8266) || defined(ESP32)
-    hwspi._spi->write32(l);
-#else
-    hwspi._spi->transfer(l >> 24);
-    hwspi._spi->transfer(l >> 16);
-    hwspi._spi->transfer(l >> 8);
-    hwspi._spi->transfer(l);
-#endif
-  } else if (connection == TFT_SOFT_SPI) {
-    for (uint8_t bit = 0; bit < 32; bit++) {
-      if (l & 0x80000000)
-        SPI_MOSI_HIGH();
-      else
-        SPI_MOSI_LOW();
-      SPI_SCK_HIGH();
-      SPI_SCK_LOW();
-      l <<= 1;
-    }
-  } else { // TFT_PARALLEL
-#if defined(__AVR__)
-    *tft8.writePort = l >> 24;
-    TFT_WR_STROBE();
-    *tft8.writePort = l >> 16;
-    TFT_WR_STROBE();
-    *tft8.writePort = l >> 8;
-    TFT_WR_STROBE();
-    *tft8.writePort = l;
-#elif defined(USE_FAST_PINIO)
-    if (!tft8.wide) {
-      *tft8.writePort = l >> 24;
-      TFT_WR_STROBE();
-      *tft8.writePort = l >> 16;
-      TFT_WR_STROBE();
-      *tft8.writePort = l >> 8;
-      TFT_WR_STROBE();
-      *tft8.writePort = l;
-    } else {
-      *(volatile uint16_t *)tft8.writePort = l >> 16;
-      TFT_WR_STROBE();
-      *(volatile uint16_t *)tft8.writePort = l;
-    }
-#endif
-    TFT_WR_STROBE();
-  }
-}
-
-/*!
-    @brief  Set the WR line LOW, then HIGH. Used for parallel-connected
-            interfaces when writing data.
-*/
-inline void Adafruit_SPITFT::TFT_WR_STROBE(void) {
-#if defined(USE_FAST_PINIO)
-#if defined(HAS_PORT_SET_CLR)
-#if defined(KINETISK)
-  *tft8.wrPortClr = 1;
-  *tft8.wrPortSet = 1;
-#else  // !KINETISK
-  *tft8.wrPortClr = tft8.wrPinMask;
-  *tft8.wrPortSet = tft8.wrPinMask;
-#endif // end !KINETISK
-#else  // !HAS_PORT_SET_CLR
-  *tft8.wrPort &= tft8.wrPinMaskClr;
-  *tft8.wrPort |= tft8.wrPinMaskSet;
-#endif // end !HAS_PORT_SET_CLR
-#else  // !USE_FAST_PINIO
-  digitalWrite(tft8._wr, LOW);
-  digitalWrite(tft8._wr, HIGH);
-#endif // end !USE_FAST_PINIO
-}
-
-/*!
-    @brief  Set the RD line HIGH. Used for parallel-connected interfaces
-            when reading data.
-*/
-inline void Adafruit_SPITFT::TFT_RD_HIGH(void) {
-#if defined(USE_FAST_PINIO)
-#if defined(HAS_PORT_SET_CLR)
-  *tft8.rdPortSet = tft8.rdPinMask;
-#else  // !HAS_PORT_SET_CLR
-  *tft8.rdPort |= tft8.rdPinMaskSet;
-#endif // end !HAS_PORT_SET_CLR
-#else  // !USE_FAST_PINIO
-  digitalWrite(tft8._rd, HIGH);
-#endif // end !USE_FAST_PINIO
-}
-
-/*!
-    @brief  Set the RD line LOW. Used for parallel-connected interfaces
-            when reading data.
-*/
-inline void Adafruit_SPITFT::TFT_RD_LOW(void) {
-#if defined(USE_FAST_PINIO)
-#if defined(HAS_PORT_SET_CLR)
-  *tft8.rdPortClr = tft8.rdPinMask;
-#else  // !HAS_PORT_SET_CLR
-  *tft8.rdPort &= tft8.rdPinMaskClr;
-#endif // end !HAS_PORT_SET_CLR
-#else  // !USE_FAST_PINIO
-  digitalWrite(tft8._rd, LOW);
-#endif // end !USE_FAST_PINIO
-}
-
-#endif // end __AVR_ATtiny85__

+ 0 - 521
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Adafruit_SPITFT.h

@@ -1,521 +0,0 @@
-/*!
- * @file Adafruit_SPITFT.h
- *
- * Part of Adafruit's GFX graphics library. Originally this class was
- * written to handle a range of color TFT displays connected via SPI,
- * but over time this library and some display-specific subclasses have
- * mutated to include some color OLEDs as well as parallel-interfaced
- * displays. The name's been kept for the sake of older code.
- *
- * Adafruit invests time and resources providing this open source code,
- * please support Adafruit and open-source hardware by purchasing
- * products from Adafruit!
- *
- * Written by Limor "ladyada" Fried for Adafruit Industries,
- * with contributions from the open source community.
- *
- * BSD license, all text here must be included in any redistribution.
- */
-
-#ifndef _ADAFRUIT_SPITFT_H_
-#define _ADAFRUIT_SPITFT_H_
-
-#if !defined(__AVR_ATtiny85__) // Not for ATtiny, at all
-
-#include "Adafruit_GFX.h"
-#include <SPI.h>
-
-// HARDWARE CONFIG ---------------------------------------------------------
-
-#if defined(__AVR__)
-typedef uint8_t ADAGFX_PORT_t;       ///< PORT values are 8-bit
-#define USE_FAST_PINIO               ///< Use direct PORT register access
-#elif defined(ARDUINO_STM32_FEATHER) // WICED
-typedef class HardwareSPI SPIClass;        ///< SPI is a bit odd on WICED
-typedef uint32_t ADAGFX_PORT_t;            ///< PORT values are 32-bit
-#elif defined(__arm__)
-#if defined(ARDUINO_ARCH_SAMD)
-// Adafruit M0, M4
-typedef uint32_t ADAGFX_PORT_t; ///< PORT values are 32-bit
-#define USE_FAST_PINIO   ///< Use direct PORT register access
-#define HAS_PORT_SET_CLR ///< PORTs have set & clear registers
-#elif defined(CORE_TEENSY)
-// PJRC Teensy 4.x
-#if defined(__IMXRT1052__) || defined(__IMXRT1062__) // Teensy 4.x
-typedef uint32_t ADAGFX_PORT_t; ///< PORT values are 32-bit
-                                // PJRC Teensy 3.x
-#else
-typedef uint8_t ADAGFX_PORT_t; ///< PORT values are 8-bit
-#endif
-#define USE_FAST_PINIO   ///< Use direct PORT register access
-#define HAS_PORT_SET_CLR ///< PORTs have set & clear registers
-#else
-// Arduino Due?
-typedef uint32_t ADAGFX_PORT_t; ///< PORT values are 32-bit
-// USE_FAST_PINIO not available here (yet)...Due has a totally different
-// GPIO register set and will require some changes elsewhere (e.g. in
-// constructors especially).
-#endif
-#else                                      // !ARM
-// Probably ESP8266 or ESP32. USE_FAST_PINIO is not available here (yet)
-// but don't worry about it too much...the digitalWrite() implementation
-// on these platforms is reasonably efficient and already RAM-resident,
-// only gotcha then is no parallel connection support for now.
-typedef uint32_t ADAGFX_PORT_t; ///< PORT values are 32-bit
-#endif                                     // end !ARM
-typedef volatile ADAGFX_PORT_t *PORTreg_t; ///< PORT register type
-
-#if defined(__AVR__)
-#define DEFAULT_SPI_FREQ 8000000L ///< Hardware SPI default speed
-#else
-#define DEFAULT_SPI_FREQ 16000000L ///< Hardware SPI default speed
-#endif
-
-#if defined(ADAFRUIT_PYPORTAL) || defined(ADAFRUIT_PYBADGE_M4_EXPRESS) ||      \
-    defined(ADAFRUIT_PYGAMER_M4_EXPRESS) ||                                    \
-    defined(ADAFRUIT_MONSTER_M4SK_EXPRESS) || defined(NRF52_SERIES) ||         \
-    defined(ADAFRUIT_CIRCUITPLAYGROUND_M0)
-#define USE_SPI_DMA ///< Auto DMA
-#else
-                                           //#define USE_SPI_DMA ///< If set,
-                                           // use DMA if available
-#endif
-// Another "oops" name -- this now also handles parallel DMA.
-// If DMA is enabled, Arduino sketch MUST #include <Adafruit_ZeroDMA.h>
-// Estimated RAM usage:
-// 4 bytes/pixel on display major axis + 8 bytes/pixel on minor axis,
-// e.g. 320x240 pixels = 320 * 4 + 240 * 8 = 3,200 bytes.
-
-#if defined(USE_SPI_DMA) && (defined(__SAMD51__) || defined(ARDUINO_SAMD_ZERO))
-#include <Adafruit_ZeroDMA.h>
-#endif
-
-// This is kind of a kludge. Needed a way to disambiguate the software SPI
-// and parallel constructors via their argument lists. Originally tried a
-// bool as the first argument to the parallel constructor (specifying 8-bit
-// vs 16-bit interface) but the compiler regards this as equivalent to an
-// integer and thus still ambiguous. SO...the parallel constructor requires
-// an enumerated type as the first argument: tft8 (for 8-bit parallel) or
-// tft16 (for 16-bit)...even though 16-bit isn't fully implemented or tested
-// and might never be, still needed that disambiguation from soft SPI.
-/*! For first arg to parallel constructor */
-enum tftBusWidth { tft8bitbus, tft16bitbus };
-
-// CLASS DEFINITION --------------------------------------------------------
-
-/*!
-  @brief  Adafruit_SPITFT is an intermediary class between Adafruit_GFX
-          and various hardware-specific subclasses for different displays.
-          It handles certain operations that are common to a range of
-          displays (address window, area fills, etc.). Originally these were
-          all color TFT displays interfaced via SPI, but it's since expanded
-          to include color OLEDs and parallel-interfaced TFTs. THE NAME HAS
-          BEEN KEPT TO AVOID BREAKING A LOT OF SUBCLASSES AND EXAMPLE CODE.
-          Many of the class member functions similarly live on with names
-          that don't necessarily accurately describe what they're doing,
-          again to avoid breaking a lot of other code. If in doubt, read
-          the comments.
-*/
-class Adafruit_SPITFT : public Adafruit_GFX {
-
-public:
-  // CONSTRUCTORS --------------------------------------------------------
-
-  // Software SPI constructor: expects width & height (at default rotation
-  // setting 0), 4 signal pins (cs, dc, mosi, sclk), 2 optional pins
-  // (reset, miso). cs argument is required but can be -1 if unused --
-  // rather than moving it to the optional arguments, it was done this way
-  // to avoid breaking existing code (-1 option was a later addition).
-  Adafruit_SPITFT(uint16_t w, uint16_t h, int8_t cs, int8_t dc, int8_t mosi,
-                  int8_t sck, int8_t rst = -1, int8_t miso = -1);
-
-  // Hardware SPI constructor using the default SPI port: expects width &
-  // height (at default rotation setting 0), 2 signal pins (cs, dc),
-  // optional reset pin. cs is required but can be -1 if unused -- rather
-  // than moving it to the optional arguments, it was done this way to
-  // avoid breaking existing code (-1 option was a later addition).
-  Adafruit_SPITFT(uint16_t w, uint16_t h, int8_t cs, int8_t dc,
-                  int8_t rst = -1);
-
-#if !defined(ESP8266) // See notes in .cpp
-  // Hardware SPI constructor using an arbitrary SPI peripheral: expects
-  // width & height (rotation 0), SPIClass pointer, 2 signal pins (cs, dc)
-  // and optional reset pin. cs is required but can be -1 if unused.
-  Adafruit_SPITFT(uint16_t w, uint16_t h, SPIClass *spiClass, int8_t cs,
-                  int8_t dc, int8_t rst = -1);
-#endif // end !ESP8266
-
-  // Parallel constructor: expects width & height (rotation 0), flag
-  // indicating whether 16-bit (true) or 8-bit (false) interface, 3 signal
-  // pins (d0, wr, dc), 3 optional pins (cs, rst, rd). 16-bit parallel
-  // isn't even fully implemented but the 'wide' flag was added as a
-  // required argument to avoid ambiguity with other constructors.
-  Adafruit_SPITFT(uint16_t w, uint16_t h, tftBusWidth busWidth, int8_t d0,
-                  int8_t wr, int8_t dc, int8_t cs = -1, int8_t rst = -1,
-                  int8_t rd = -1);
-
-  // CLASS MEMBER FUNCTIONS ----------------------------------------------
-
-  // These first two functions MUST be declared by subclasses:
-
-  /*!
-      @brief  Display-specific initialization function.
-      @param  freq  SPI frequency, in hz (or 0 for default or unused).
-  */
-  virtual void begin(uint32_t freq) = 0;
-
-  /*!
-      @brief  Set up the specific display hardware's "address window"
-              for subsequent pixel-pushing operations.
-      @param  x  Leftmost pixel of area to be drawn (MUST be within
-                 display bounds at current rotation setting).
-      @param  y  Topmost pixel of area to be drawn (MUST be within
-                 display bounds at current rotation setting).
-      @param  w  Width of area to be drawn, in pixels (MUST be >0 and,
-                 added to x, within display bounds at current rotation).
-      @param  h  Height of area to be drawn, in pixels (MUST be >0 and,
-                 added to x, within display bounds at current rotation).
-  */
-  virtual void setAddrWindow(uint16_t x, uint16_t y, uint16_t w,
-                             uint16_t h) = 0;
-
-  // Remaining functions do not need to be declared in subclasses
-  // unless they wish to provide hardware-specific optimizations.
-  // Brief comments here...documented more thoroughly in .cpp file.
-
-  // Subclass' begin() function invokes this to initialize hardware.
-  // freq=0 to use default SPI speed. spiMode must be one of the SPI_MODEn
-  // values defined in SPI.h, which are NOT the same as 0 for SPI_MODE0,
-  // 1 for SPI_MODE1, etc...use ONLY the SPI_MODEn defines! Only!
-  // Name is outdated (interface may be parallel) but for compatibility:
-  void initSPI(uint32_t freq = 0, uint8_t spiMode = SPI_MODE0);
-  void setSPISpeed(uint32_t freq);
-  // Chip select and/or hardware SPI transaction start as needed:
-  void startWrite(void);
-  // Chip deselect and/or hardware SPI transaction end as needed:
-  void endWrite(void);
-  void sendCommand(uint8_t commandByte, uint8_t *dataBytes,
-                   uint8_t numDataBytes);
-  void sendCommand(uint8_t commandByte, const uint8_t *dataBytes = NULL,
-                   uint8_t numDataBytes = 0);
-  void sendCommand16(uint16_t commandWord, const uint8_t *dataBytes = NULL,
-                     uint8_t numDataBytes = 0);
-  uint8_t readcommand8(uint8_t commandByte, uint8_t index = 0);
-  uint16_t readcommand16(uint16_t addr);
-
-  // These functions require a chip-select and/or SPI transaction
-  // around them. Higher-level graphics primitives might start a
-  // single transaction and then make multiple calls to these functions
-  // (e.g. circle or text rendering might make repeated lines or rects)
-  // before ending the transaction. It's more efficient than starting a
-  // transaction every time.
-  void writePixel(int16_t x, int16_t y, uint16_t color);
-  void writePixels(uint16_t *colors, uint32_t len, bool block = true,
-                   bool bigEndian = false);
-  void writeColor(uint16_t color, uint32_t len);
-  void writeFillRect(int16_t x, int16_t y, int16_t w, int16_t h,
-                     uint16_t color);
-  void writeFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color);
-  void writeFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color);
-  // This is a new function, similar to writeFillRect() except that
-  // all arguments MUST be onscreen, sorted and clipped. If higher-level
-  // primitives can handle their own sorting/clipping, it avoids repeating
-  // such operations in the low-level code, making it potentially faster.
-  // CALLING THIS WITH UNCLIPPED OR NEGATIVE VALUES COULD BE DISASTROUS.
-  inline void writeFillRectPreclipped(int16_t x, int16_t y, int16_t w,
-                                      int16_t h, uint16_t color);
-  // Another new function, companion to the new non-blocking
-  // writePixels() variant.
-  void dmaWait(void);
-
-  // These functions are similar to the 'write' functions above, but with
-  // a chip-select and/or SPI transaction built-in. They're typically used
-  // solo -- that is, as graphics primitives in themselves, not invoked by
-  // higher-level primitives (which should use the functions above).
-  void drawPixel(int16_t x, int16_t y, uint16_t color);
-  void fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color);
-  void drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color);
-  void drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color);
-  // A single-pixel push encapsulated in a transaction. I don't think
-  // this is used anymore (BMP demos might've used it?) but is provided
-  // for backward compatibility, consider it deprecated:
-  void pushColor(uint16_t color);
-
-  using Adafruit_GFX::drawRGBBitmap; // Check base class first
-  void drawRGBBitmap(int16_t x, int16_t y, uint16_t *pcolors, int16_t w,
-                     int16_t h);
-
-  void invertDisplay(bool i);
-  uint16_t color565(uint8_t r, uint8_t g, uint8_t b);
-
-  // Despite parallel additions, function names kept for compatibility:
-  void spiWrite(uint8_t b);          // Write single byte as DATA
-  void writeCommand(uint8_t cmd);    // Write single byte as COMMAND
-  uint8_t spiRead(void);             // Read single byte of data
-  void write16(uint16_t w);          // Write 16-bit value as DATA
-  void writeCommand16(uint16_t cmd); // Write 16-bit value as COMMAND
-  uint16_t read16(void);             // Read single 16-bit value
-
-  // Most of these low-level functions were formerly macros in
-  // Adafruit_SPITFT_Macros.h. Some have been made into inline functions
-  // to avoid macro mishaps. Despite the addition of code for a parallel
-  // display interface, the names have been kept for backward
-  // compatibility (some subclasses may be invoking these):
-  void SPI_WRITE16(uint16_t w); // Not inline
-  void SPI_WRITE32(uint32_t l); // Not inline
-  // Old code had both a spiWrite16() function and SPI_WRITE16 macro
-  // in addition to the SPI_WRITE32 macro. The latter two have been
-  // made into functions here, and spiWrite16() removed (use SPI_WRITE16()
-  // instead). It looks like most subclasses had gotten comfortable with
-  // SPI_WRITE16 and SPI_WRITE32 anyway so those names were kept rather
-  // than the less-obnoxious camelcase variants, oh well.
-
-  // Placing these functions entirely in the class definition inlines
-  // them implicitly them while allowing their use in other code:
-
-  /*!
-      @brief  Set the chip-select line HIGH. Does NOT check whether CS pin
-              is set (>=0), that should be handled in calling function.
-              Despite function name, this is used even if the display
-              connection is parallel.
-  */
-  void SPI_CS_HIGH(void) {
-#if defined(USE_FAST_PINIO)
-#if defined(HAS_PORT_SET_CLR)
-#if defined(KINETISK)
-    *csPortSet = 1;
-#else  // !KINETISK
-    *csPortSet = csPinMask;
-#endif // end !KINETISK
-#else  // !HAS_PORT_SET_CLR
-    *csPort |= csPinMaskSet;
-#endif // end !HAS_PORT_SET_CLR
-#else  // !USE_FAST_PINIO
-    digitalWrite(_cs, HIGH);
-#endif // end !USE_FAST_PINIO
-  }
-
-  /*!
-      @brief  Set the chip-select line LOW. Does NOT check whether CS pin
-              is set (>=0), that should be handled in calling function.
-              Despite function name, this is used even if the display
-              connection is parallel.
-  */
-  void SPI_CS_LOW(void) {
-#if defined(USE_FAST_PINIO)
-#if defined(HAS_PORT_SET_CLR)
-#if defined(KINETISK)
-    *csPortClr = 1;
-#else  // !KINETISK
-    *csPortClr = csPinMask;
-#endif // end !KINETISK
-#else  // !HAS_PORT_SET_CLR
-    *csPort &= csPinMaskClr;
-#endif // end !HAS_PORT_SET_CLR
-#else  // !USE_FAST_PINIO
-    digitalWrite(_cs, LOW);
-#endif // end !USE_FAST_PINIO
-  }
-
-  /*!
-      @brief  Set the data/command line HIGH (data mode).
-  */
-  void SPI_DC_HIGH(void) {
-#if defined(USE_FAST_PINIO)
-#if defined(HAS_PORT_SET_CLR)
-#if defined(KINETISK)
-    *dcPortSet = 1;
-#else  // !KINETISK
-    *dcPortSet = dcPinMask;
-#endif // end !KINETISK
-#else  // !HAS_PORT_SET_CLR
-    *dcPort |= dcPinMaskSet;
-#endif // end !HAS_PORT_SET_CLR
-#else  // !USE_FAST_PINIO
-    digitalWrite(_dc, HIGH);
-#endif // end !USE_FAST_PINIO
-  }
-
-  /*!
-      @brief  Set the data/command line LOW (command mode).
-  */
-  void SPI_DC_LOW(void) {
-#if defined(USE_FAST_PINIO)
-#if defined(HAS_PORT_SET_CLR)
-#if defined(KINETISK)
-    *dcPortClr = 1;
-#else  // !KINETISK
-    *dcPortClr = dcPinMask;
-#endif // end !KINETISK
-#else  // !HAS_PORT_SET_CLR
-    *dcPort &= dcPinMaskClr;
-#endif // end !HAS_PORT_SET_CLR
-#else  // !USE_FAST_PINIO
-    digitalWrite(_dc, LOW);
-#endif // end !USE_FAST_PINIO
-  }
-
-protected:
-  // A few more low-level member functions -- some may have previously
-  // been macros. Shouldn't have a need to access these externally, so
-  // they've been moved to the protected section. Additionally, they're
-  // declared inline here and the code is in the .cpp file, since outside
-  // code doesn't need to see these.
-  inline void SPI_MOSI_HIGH(void);
-  inline void SPI_MOSI_LOW(void);
-  inline void SPI_SCK_HIGH(void);
-  inline void SPI_SCK_LOW(void);
-  inline bool SPI_MISO_READ(void);
-  inline void SPI_BEGIN_TRANSACTION(void);
-  inline void SPI_END_TRANSACTION(void);
-  inline void TFT_WR_STROBE(void); // Parallel interface write strobe
-  inline void TFT_RD_HIGH(void);   // Parallel interface read high
-  inline void TFT_RD_LOW(void);    // Parallel interface read low
-
-  // CLASS INSTANCE VARIABLES --------------------------------------------
-
-  // Here be dragons! There's a big union of three structures here --
-  // one each for hardware SPI, software (bitbang) SPI, and parallel
-  // interfaces. This is to save some memory, since a display's connection
-  // will be only one of these. The order of some things is a little weird
-  // in an attempt to get values to align and pack better in RAM.
-
-#if defined(USE_FAST_PINIO)
-#if defined(HAS_PORT_SET_CLR)
-  PORTreg_t csPortSet; ///< PORT register for chip select SET
-  PORTreg_t csPortClr; ///< PORT register for chip select CLEAR
-  PORTreg_t dcPortSet; ///< PORT register for data/command SET
-  PORTreg_t dcPortClr; ///< PORT register for data/command CLEAR
-#else                  // !HAS_PORT_SET_CLR
-  PORTreg_t csPort;                 ///< PORT register for chip select
-  PORTreg_t dcPort;                 ///< PORT register for data/command
-#endif                 // end HAS_PORT_SET_CLR
-#endif                 // end USE_FAST_PINIO
-#if defined(__cplusplus) && (__cplusplus >= 201100)
-  union {
-#endif
-    struct {          //   Values specific to HARDWARE SPI:
-      SPIClass *_spi; ///< SPI class pointer
-#if defined(SPI_HAS_TRANSACTION)
-      SPISettings settings; ///< SPI transaction settings
-#else
-    uint32_t _freq; ///< SPI bitrate (if no SPI transactions)
-#endif
-      uint32_t _mode; ///< SPI data mode (transactions or no)
-    } hwspi;          ///< Hardware SPI values
-    struct {          //   Values specific to SOFTWARE SPI:
-#if defined(USE_FAST_PINIO)
-      PORTreg_t misoPort; ///< PORT (PIN) register for MISO
-#if defined(HAS_PORT_SET_CLR)
-      PORTreg_t mosiPortSet; ///< PORT register for MOSI SET
-      PORTreg_t mosiPortClr; ///< PORT register for MOSI CLEAR
-      PORTreg_t sckPortSet;  ///< PORT register for SCK SET
-      PORTreg_t sckPortClr;  ///< PORT register for SCK CLEAR
-#if !defined(KINETISK)
-      ADAGFX_PORT_t mosiPinMask; ///< Bitmask for MOSI
-      ADAGFX_PORT_t sckPinMask;  ///< Bitmask for SCK
-#endif                           // end !KINETISK
-#else                            // !HAS_PORT_SET_CLR
-      PORTreg_t mosiPort;           ///< PORT register for MOSI
-      PORTreg_t sckPort;            ///< PORT register for SCK
-      ADAGFX_PORT_t mosiPinMaskSet; ///< Bitmask for MOSI SET (OR)
-      ADAGFX_PORT_t mosiPinMaskClr; ///< Bitmask for MOSI CLEAR (AND)
-      ADAGFX_PORT_t sckPinMaskSet;  ///< Bitmask for SCK SET (OR bitmask)
-      ADAGFX_PORT_t sckPinMaskClr;  ///< Bitmask for SCK CLEAR (AND)
-#endif                           // end HAS_PORT_SET_CLR
-#if !defined(KINETISK)
-      ADAGFX_PORT_t misoPinMask; ///< Bitmask for MISO
-#endif                           // end !KINETISK
-#endif                           // end USE_FAST_PINIO
-      int8_t _mosi;              ///< MOSI pin #
-      int8_t _miso;              ///< MISO pin #
-      int8_t _sck;               ///< SCK pin #
-    } swspi;                     ///< Software SPI values
-    struct {                     //   Values specific to 8-bit parallel:
-#if defined(USE_FAST_PINIO)
-
-#if defined(__IMXRT1052__) || defined(__IMXRT1062__) // Teensy 4.x
-      volatile uint32_t *writePort; ///< PORT register for DATA WRITE
-      volatile uint32_t *readPort;  ///< PORT (PIN) register for DATA READ
-#else
-      volatile uint8_t *writePort;  ///< PORT register for DATA WRITE
-      volatile uint8_t *readPort;   ///< PORT (PIN) register for DATA READ
-#endif
-#if defined(HAS_PORT_SET_CLR)
-      // Port direction register pointers are always 8-bit regardless of
-      // PORTreg_t -- even if 32-bit port, we modify a byte-aligned 8 bits.
-#if defined(__IMXRT1052__) || defined(__IMXRT1062__) // Teensy 4.x
-      volatile uint32_t *dirSet; ///< PORT byte data direction SET
-      volatile uint32_t *dirClr; ///< PORT byte data direction CLEAR
-#else
-      volatile uint8_t *dirSet; ///< PORT byte data direction SET
-      volatile uint8_t *dirClr; ///< PORT byte data direction CLEAR
-#endif
-      PORTreg_t wrPortSet; ///< PORT register for write strobe SET
-      PORTreg_t wrPortClr; ///< PORT register for write strobe CLEAR
-      PORTreg_t rdPortSet; ///< PORT register for read strobe SET
-      PORTreg_t rdPortClr; ///< PORT register for read strobe CLEAR
-#if !defined(KINETISK)
-      ADAGFX_PORT_t wrPinMask; ///< Bitmask for write strobe
-#endif                         // end !KINETISK
-      ADAGFX_PORT_t rdPinMask; ///< Bitmask for read strobe
-#else                          // !HAS_PORT_SET_CLR
-      // Port direction register pointer is always 8-bit regardless of
-      // PORTreg_t -- even if 32-bit port, we modify a byte-aligned 8 bits.
-      volatile uint8_t *portDir;  ///< PORT direction register
-      PORTreg_t wrPort;           ///< PORT register for write strobe
-      PORTreg_t rdPort;           ///< PORT register for read strobe
-      ADAGFX_PORT_t wrPinMaskSet; ///< Bitmask for write strobe SET (OR)
-      ADAGFX_PORT_t wrPinMaskClr; ///< Bitmask for write strobe CLEAR (AND)
-      ADAGFX_PORT_t rdPinMaskSet; ///< Bitmask for read strobe SET (OR)
-      ADAGFX_PORT_t rdPinMaskClr; ///< Bitmask for read strobe CLEAR (AND)
-#endif                         // end HAS_PORT_SET_CLR
-#endif                         // end USE_FAST_PINIO
-      int8_t _d0;              ///< Data pin 0 #
-      int8_t _wr;              ///< Write strobe pin #
-      int8_t _rd;              ///< Read strobe pin # (or -1)
-      bool wide = 0;           ///< If true, is 16-bit interface
-    } tft8;                    ///< Parallel interface settings
-#if defined(__cplusplus) && (__cplusplus >= 201100)
-  }; ///< Only one interface is active
-#endif
-#if defined(USE_SPI_DMA) &&                                                    \
-    (defined(__SAMD51__) ||                                                    \
-     defined(ARDUINO_SAMD_ZERO))     // Used by hardware SPI and tft8
-  Adafruit_ZeroDMA dma;              ///< DMA instance
-  DmacDescriptor *dptr = NULL;       ///< 1st descriptor
-  DmacDescriptor *descriptor = NULL; ///< Allocated descriptor list
-  uint16_t *pixelBuf[2];             ///< Working buffers
-  uint16_t maxFillLen;               ///< Max pixels per DMA xfer
-  uint16_t lastFillColor = 0;        ///< Last color used w/fill
-  uint32_t lastFillLen = 0;          ///< # of pixels w/last fill
-  uint8_t onePixelBuf;               ///< For hi==lo fill
-#endif
-#if defined(USE_FAST_PINIO)
-#if defined(HAS_PORT_SET_CLR)
-#if !defined(KINETISK)
-  ADAGFX_PORT_t csPinMask; ///< Bitmask for chip select
-  ADAGFX_PORT_t dcPinMask; ///< Bitmask for data/command
-#endif                     // end !KINETISK
-#else                      // !HAS_PORT_SET_CLR
-  ADAGFX_PORT_t csPinMaskSet;     ///< Bitmask for chip select SET (OR)
-  ADAGFX_PORT_t csPinMaskClr;     ///< Bitmask for chip select CLEAR (AND)
-  ADAGFX_PORT_t dcPinMaskSet;     ///< Bitmask for data/command SET (OR)
-  ADAGFX_PORT_t dcPinMaskClr;     ///< Bitmask for data/command CLEAR (AND)
-#endif                     // end HAS_PORT_SET_CLR
-#endif                     // end USE_FAST_PINIO
-  uint8_t connection;      ///< TFT_HARD_SPI, TFT_SOFT_SPI, etc.
-  int8_t _rst;             ///< Reset pin # (or -1)
-  int8_t _cs;              ///< Chip select pin # (or -1)
-  int8_t _dc;              ///< Data/command pin #
-
-  int16_t _xstart = 0;          ///< Internal framebuffer X offset
-  int16_t _ystart = 0;          ///< Internal framebuffer Y offset
-  uint8_t invertOnCommand = 0;  ///< Command to enable invert mode
-  uint8_t invertOffCommand = 0; ///< Command to disable invert mode
-
-  uint32_t _freq = 0; ///< Dummy var to keep subclasses happy
-};
-
-#endif // end __AVR_ATtiny85__
-#endif // end _ADAFRUIT_SPITFT_H_

+ 0 - 6
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Adafruit_SPITFT_Macros.h

@@ -1,6 +0,0 @@
-// THIS FILE INTENTIONALLY LEFT BLANK.
-
-// Macros previously #defined here have been made into (mostly) inline
-// functions in the Adafruit_SPITFT class. Other libraries might still
-// contain code trying to #include this header file, so until everything's
-// updated this file still exists (but doing nothing) to avoid trouble.

+ 0 - 226
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMono12pt7b.h

@@ -1,226 +0,0 @@
-const uint8_t FreeMono12pt7bBitmaps[] PROGMEM = {
-    0x49, 0x24, 0x92, 0x48, 0x01, 0xF8, 0xE7, 0xE7, 0x67, 0x42, 0x42, 0x42,
-    0x42, 0x09, 0x02, 0x41, 0x10, 0x44, 0x11, 0x1F, 0xF1, 0x10, 0x4C, 0x12,
-    0x3F, 0xE1, 0x20, 0x48, 0x12, 0x04, 0x81, 0x20, 0x48, 0x04, 0x07, 0xA2,
-    0x19, 0x02, 0x40, 0x10, 0x03, 0x00, 0x3C, 0x00, 0x80, 0x10, 0x06, 0x01,
-    0xE0, 0xA7, 0xC0, 0x40, 0x10, 0x04, 0x00, 0x3C, 0x19, 0x84, 0x21, 0x08,
-    0x66, 0x0F, 0x00, 0x0C, 0x1C, 0x78, 0x01, 0xE0, 0xCC, 0x21, 0x08, 0x43,
-    0x30, 0x78, 0x3E, 0x30, 0x10, 0x08, 0x02, 0x03, 0x03, 0x47, 0x14, 0x8A,
-    0x43, 0x11, 0x8F, 0x60, 0xFD, 0xA4, 0x90, 0x05, 0x25, 0x24, 0x92, 0x48,
-    0x92, 0x24, 0x11, 0x24, 0x89, 0x24, 0x92, 0x92, 0x90, 0x00, 0x04, 0x02,
-    0x11, 0x07, 0xF0, 0xC0, 0x50, 0x48, 0x42, 0x00, 0x08, 0x04, 0x02, 0x01,
-    0x00, 0x87, 0xFC, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x3B, 0x9C, 0xCE,
-    0x62, 0x00, 0xFF, 0xE0, 0xFF, 0x80, 0x00, 0x80, 0xC0, 0x40, 0x20, 0x20,
-    0x10, 0x10, 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x00, 0x80,
-    0x80, 0x40, 0x00, 0x1C, 0x31, 0x90, 0x58, 0x38, 0x0C, 0x06, 0x03, 0x01,
-    0x80, 0xC0, 0x60, 0x30, 0x34, 0x13, 0x18, 0x70, 0x30, 0xE1, 0x44, 0x81,
-    0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x81, 0x1F, 0xC0, 0x1E, 0x10, 0x90,
-    0x68, 0x10, 0x08, 0x0C, 0x04, 0x04, 0x04, 0x06, 0x06, 0x06, 0x06, 0x0E,
-    0x07, 0xFE, 0x3E, 0x10, 0x40, 0x08, 0x02, 0x00, 0x80, 0x40, 0xE0, 0x04,
-    0x00, 0x80, 0x10, 0x04, 0x01, 0x00, 0xD8, 0x63, 0xE0, 0x06, 0x0A, 0x0A,
-    0x12, 0x22, 0x22, 0x42, 0x42, 0x82, 0x82, 0xFF, 0x02, 0x02, 0x02, 0x0F,
-    0x7F, 0x20, 0x10, 0x08, 0x04, 0x02, 0xF1, 0x8C, 0x03, 0x00, 0x80, 0x40,
-    0x20, 0x18, 0x16, 0x18, 0xF0, 0x0F, 0x8C, 0x08, 0x08, 0x04, 0x04, 0x02,
-    0x79, 0x46, 0xC1, 0xE0, 0x60, 0x28, 0x14, 0x19, 0x08, 0x78, 0xFF, 0x81,
-    0x81, 0x02, 0x02, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08,
-    0x08, 0x3E, 0x31, 0xB0, 0x70, 0x18, 0x0C, 0x05, 0x8C, 0x38, 0x63, 0x40,
-    0x60, 0x30, 0x18, 0x1B, 0x18, 0xF8, 0x3C, 0x31, 0x30, 0x50, 0x28, 0x0C,
-    0x0F, 0x06, 0x85, 0x3C, 0x80, 0x40, 0x40, 0x20, 0x20, 0x63, 0xE0, 0xFF,
-    0x80, 0x07, 0xFC, 0x39, 0xCE, 0x00, 0x00, 0x06, 0x33, 0x98, 0xC4, 0x00,
-    0x00, 0xC0, 0x60, 0x18, 0x0C, 0x06, 0x01, 0x80, 0x0C, 0x00, 0x60, 0x03,
-    0x00, 0x30, 0x01, 0x00, 0xFF, 0xF0, 0x00, 0x00, 0x0F, 0xFF, 0xC0, 0x06,
-    0x00, 0x30, 0x01, 0x80, 0x18, 0x01, 0x80, 0xC0, 0x30, 0x18, 0x0C, 0x02,
-    0x00, 0x00, 0x3E, 0x60, 0xA0, 0x20, 0x10, 0x08, 0x08, 0x18, 0x10, 0x08,
-    0x00, 0x00, 0x00, 0x01, 0xC0, 0xE0, 0x1C, 0x31, 0x10, 0x50, 0x28, 0x14,
-    0x3A, 0x25, 0x22, 0x91, 0x4C, 0xA3, 0xF0, 0x08, 0x02, 0x01, 0x80, 0x7C,
-    0x3F, 0x00, 0x0C, 0x00, 0x48, 0x01, 0x20, 0x04, 0x40, 0x21, 0x00, 0x84,
-    0x04, 0x08, 0x1F, 0xE0, 0x40, 0x82, 0x01, 0x08, 0x04, 0x20, 0x13, 0xE1,
-    0xF0, 0xFF, 0x08, 0x11, 0x01, 0x20, 0x24, 0x04, 0x81, 0x1F, 0xC2, 0x06,
-    0x40, 0x68, 0x05, 0x00, 0xA0, 0x14, 0x05, 0xFF, 0x00, 0x1E, 0x48, 0x74,
-    0x05, 0x01, 0x80, 0x20, 0x08, 0x02, 0x00, 0x80, 0x20, 0x04, 0x01, 0x01,
-    0x30, 0x87, 0xC0, 0xFE, 0x10, 0x44, 0x09, 0x02, 0x40, 0x50, 0x14, 0x05,
-    0x01, 0x40, 0x50, 0x14, 0x0D, 0x02, 0x41, 0x3F, 0x80, 0xFF, 0xC8, 0x09,
-    0x01, 0x20, 0x04, 0x00, 0x88, 0x1F, 0x02, 0x20, 0x40, 0x08, 0x01, 0x00,
-    0xA0, 0x14, 0x03, 0xFF, 0xC0, 0xFF, 0xE8, 0x05, 0x00, 0xA0, 0x04, 0x00,
-    0x88, 0x1F, 0x02, 0x20, 0x40, 0x08, 0x01, 0x00, 0x20, 0x04, 0x01, 0xF0,
-    0x00, 0x1F, 0x46, 0x19, 0x01, 0x60, 0x28, 0x01, 0x00, 0x20, 0x04, 0x00,
-    0x83, 0xF0, 0x0B, 0x01, 0x20, 0x23, 0x0C, 0x3E, 0x00, 0xE1, 0xD0, 0x24,
-    0x09, 0x02, 0x40, 0x90, 0x27, 0xF9, 0x02, 0x40, 0x90, 0x24, 0x09, 0x02,
-    0x40, 0xB8, 0x70, 0xFE, 0x20, 0x40, 0x81, 0x02, 0x04, 0x08, 0x10, 0x20,
-    0x40, 0x81, 0x1F, 0xC0, 0x0F, 0xE0, 0x10, 0x02, 0x00, 0x40, 0x08, 0x01,
-    0x00, 0x20, 0x04, 0x80, 0x90, 0x12, 0x02, 0x40, 0xC6, 0x30, 0x7C, 0x00,
-    0xF1, 0xE4, 0x0C, 0x41, 0x04, 0x20, 0x44, 0x04, 0x80, 0x5C, 0x06, 0x60,
-    0x43, 0x04, 0x10, 0x40, 0x84, 0x08, 0x40, 0xCF, 0x07, 0xF8, 0x04, 0x00,
-    0x80, 0x10, 0x02, 0x00, 0x40, 0x08, 0x01, 0x00, 0x20, 0x04, 0x04, 0x80,
-    0x90, 0x12, 0x03, 0xFF, 0xC0, 0xE0, 0x3B, 0x01, 0x94, 0x14, 0xA0, 0xA4,
-    0x89, 0x24, 0x49, 0x14, 0x48, 0xA2, 0x45, 0x12, 0x10, 0x90, 0x04, 0x80,
-    0x24, 0x01, 0x78, 0x3C, 0xE0, 0xF6, 0x02, 0x50, 0x25, 0x02, 0x48, 0x24,
-    0xC2, 0x44, 0x24, 0x22, 0x43, 0x24, 0x12, 0x40, 0xA4, 0x0A, 0x40, 0x6F,
-    0x06, 0x0F, 0x03, 0x0C, 0x60, 0x64, 0x02, 0x80, 0x18, 0x01, 0x80, 0x18,
-    0x01, 0x80, 0x18, 0x01, 0x40, 0x26, 0x06, 0x30, 0xC0, 0xF0, 0xFF, 0x10,
-    0x64, 0x05, 0x01, 0x40, 0x50, 0x34, 0x19, 0xFC, 0x40, 0x10, 0x04, 0x01,
-    0x00, 0x40, 0x3E, 0x00, 0x0F, 0x03, 0x0C, 0x60, 0x64, 0x02, 0x80, 0x18,
-    0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x40, 0x26, 0x06, 0x30, 0xC1,
-    0xF0, 0x0C, 0x01, 0xF1, 0x30, 0xE0, 0xFF, 0x04, 0x18, 0x40, 0xC4, 0x04,
-    0x40, 0x44, 0x0C, 0x41, 0x87, 0xE0, 0x43, 0x04, 0x10, 0x40, 0x84, 0x04,
-    0x40, 0x4F, 0x03, 0x1F, 0x48, 0x34, 0x05, 0x01, 0x40, 0x08, 0x01, 0xC0,
-    0x0E, 0x00, 0x40, 0x18, 0x06, 0x01, 0xE1, 0xA7, 0xC0, 0xFF, 0xF0, 0x86,
-    0x10, 0x82, 0x00, 0x40, 0x08, 0x01, 0x00, 0x20, 0x04, 0x00, 0x80, 0x10,
-    0x02, 0x00, 0x40, 0x7F, 0x00, 0xF0, 0xF4, 0x02, 0x40, 0x24, 0x02, 0x40,
-    0x24, 0x02, 0x40, 0x24, 0x02, 0x40, 0x24, 0x02, 0x40, 0x22, 0x04, 0x30,
-    0xC0, 0xF0, 0xF8, 0x7C, 0x80, 0x22, 0x01, 0x04, 0x04, 0x10, 0x20, 0x40,
-    0x80, 0x82, 0x02, 0x10, 0x08, 0x40, 0x11, 0x00, 0x48, 0x01, 0xA0, 0x03,
-    0x00, 0x0C, 0x00, 0xF8, 0x7C, 0x80, 0x22, 0x00, 0x88, 0xC2, 0x23, 0x10,
-    0x8E, 0x42, 0x29, 0x09, 0x24, 0x24, 0x90, 0x91, 0x41, 0x85, 0x06, 0x14,
-    0x18, 0x70, 0x60, 0x80, 0xF0, 0xF2, 0x06, 0x30, 0x41, 0x08, 0x09, 0x80,
-    0x50, 0x06, 0x00, 0x60, 0x0D, 0x00, 0x88, 0x10, 0xC2, 0x04, 0x60, 0x2F,
-    0x0F, 0xF0, 0xF2, 0x02, 0x10, 0x41, 0x04, 0x08, 0x80, 0x50, 0x05, 0x00,
-    0x20, 0x02, 0x00, 0x20, 0x02, 0x00, 0x20, 0x02, 0x01, 0xFC, 0xFF, 0x40,
-    0xA0, 0x90, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x10, 0x50, 0x30, 0x18,
-    0x0F, 0xFC, 0xF2, 0x49, 0x24, 0x92, 0x49, 0x24, 0x9C, 0x80, 0x60, 0x10,
-    0x08, 0x02, 0x01, 0x00, 0x40, 0x20, 0x08, 0x04, 0x01, 0x00, 0x80, 0x20,
-    0x10, 0x04, 0x02, 0x00, 0x80, 0x40, 0xE4, 0x92, 0x49, 0x24, 0x92, 0x49,
-    0x3C, 0x08, 0x0C, 0x09, 0x0C, 0x4C, 0x14, 0x04, 0xFF, 0xFC, 0x84, 0x21,
-    0x3E, 0x00, 0x60, 0x08, 0x02, 0x3F, 0x98, 0x28, 0x0A, 0x02, 0xC3, 0x9F,
-    0x30, 0xE0, 0x01, 0x00, 0x08, 0x00, 0x40, 0x02, 0x00, 0x13, 0xE0, 0xA0,
-    0x86, 0x02, 0x20, 0x09, 0x00, 0x48, 0x02, 0x40, 0x13, 0x01, 0x14, 0x1B,
-    0x9F, 0x00, 0x1F, 0x4C, 0x19, 0x01, 0x40, 0x28, 0x01, 0x00, 0x20, 0x02,
-    0x00, 0x60, 0x43, 0xF0, 0x00, 0xC0, 0x08, 0x01, 0x00, 0x20, 0x04, 0x3C,
-    0x98, 0x52, 0x06, 0x80, 0x50, 0x0A, 0x01, 0x40, 0x24, 0x0C, 0xC2, 0x87,
-    0x98, 0x3F, 0x18, 0x68, 0x06, 0x01, 0xFF, 0xE0, 0x08, 0x03, 0x00, 0x60,
-    0xC7, 0xC0, 0x0F, 0x98, 0x08, 0x04, 0x02, 0x07, 0xF8, 0x80, 0x40, 0x20,
-    0x10, 0x08, 0x04, 0x02, 0x01, 0x03, 0xF8, 0x1E, 0x6C, 0x39, 0x03, 0x40,
-    0x28, 0x05, 0x00, 0xA0, 0x12, 0x06, 0x61, 0x43, 0xC8, 0x01, 0x00, 0x20,
-    0x08, 0x3E, 0x00, 0xC0, 0x10, 0x04, 0x01, 0x00, 0x40, 0x13, 0x87, 0x11,
-    0x82, 0x40, 0x90, 0x24, 0x09, 0x02, 0x40, 0x90, 0x2E, 0x1C, 0x08, 0x04,
-    0x02, 0x00, 0x00, 0x03, 0xC0, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00,
-    0x80, 0x43, 0xFE, 0x04, 0x08, 0x10, 0x00, 0x1F, 0xC0, 0x81, 0x02, 0x04,
-    0x08, 0x10, 0x20, 0x40, 0x81, 0x02, 0x0B, 0xE0, 0xE0, 0x02, 0x00, 0x20,
-    0x02, 0x00, 0x20, 0x02, 0x3C, 0x21, 0x02, 0x60, 0x2C, 0x03, 0x80, 0x24,
-    0x02, 0x20, 0x21, 0x02, 0x08, 0xE1, 0xF0, 0x78, 0x04, 0x02, 0x01, 0x00,
-    0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x80, 0x43, 0xFE,
-    0xDC, 0xE3, 0x19, 0x90, 0x84, 0x84, 0x24, 0x21, 0x21, 0x09, 0x08, 0x48,
-    0x42, 0x42, 0x17, 0x18, 0xC0, 0x67, 0x83, 0x84, 0x20, 0x22, 0x02, 0x20,
-    0x22, 0x02, 0x20, 0x22, 0x02, 0x20, 0x2F, 0x07, 0x1F, 0x04, 0x11, 0x01,
-    0x40, 0x18, 0x03, 0x00, 0x60, 0x0A, 0x02, 0x20, 0x83, 0xE0, 0xCF, 0x85,
-    0x06, 0x60, 0x24, 0x01, 0x40, 0x14, 0x01, 0x40, 0x16, 0x02, 0x50, 0x44,
-    0xF8, 0x40, 0x04, 0x00, 0x40, 0x0F, 0x00, 0x1E, 0x6C, 0x3B, 0x03, 0x40,
-    0x28, 0x05, 0x00, 0xA0, 0x12, 0x06, 0x61, 0x43, 0xC8, 0x01, 0x00, 0x20,
-    0x04, 0x03, 0xC0, 0xE3, 0x8B, 0x13, 0x80, 0x80, 0x20, 0x08, 0x02, 0x00,
-    0x80, 0x20, 0x3F, 0x80, 0x1F, 0x58, 0x34, 0x05, 0x80, 0x1E, 0x00, 0x60,
-    0x06, 0x01, 0xC0, 0xAF, 0xC0, 0x20, 0x04, 0x00, 0x80, 0x10, 0x0F, 0xF0,
-    0x40, 0x08, 0x01, 0x00, 0x20, 0x04, 0x00, 0x80, 0x10, 0x03, 0x04, 0x3F,
-    0x00, 0xC1, 0xC8, 0x09, 0x01, 0x20, 0x24, 0x04, 0x80, 0x90, 0x12, 0x02,
-    0x61, 0xC7, 0xCC, 0xF8, 0xF9, 0x01, 0x08, 0x10, 0x60, 0x81, 0x08, 0x08,
-    0x40, 0x22, 0x01, 0x20, 0x05, 0x00, 0x30, 0x00, 0xF0, 0x7A, 0x01, 0x10,
-    0x08, 0x8C, 0x42, 0x62, 0x12, 0x90, 0xA5, 0x05, 0x18, 0x28, 0xC0, 0x86,
-    0x00, 0x78, 0xF3, 0x04, 0x18, 0x80, 0xD0, 0x06, 0x00, 0x70, 0x09, 0x81,
-    0x0C, 0x20, 0x6F, 0x8F, 0xF0, 0xF2, 0x02, 0x20, 0x41, 0x04, 0x10, 0x80,
-    0x88, 0x09, 0x00, 0x50, 0x06, 0x00, 0x20, 0x04, 0x00, 0x40, 0x08, 0x0F,
-    0xE0, 0xFF, 0x41, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x40, 0xBF,
-    0xC0, 0x19, 0x08, 0x42, 0x10, 0x84, 0x64, 0x18, 0x42, 0x10, 0x84, 0x20,
-    0xC0, 0xFF, 0xFF, 0xC0, 0xC1, 0x08, 0x42, 0x10, 0x84, 0x10, 0x4C, 0x42,
-    0x10, 0x84, 0x26, 0x00, 0x38, 0x13, 0x38, 0x38};
-
-const GFXglyph FreeMono12pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 14, 0, 1},        // 0x20 ' '
-    {0, 3, 15, 14, 6, -14},     // 0x21 '!'
-    {6, 8, 7, 14, 3, -14},      // 0x22 '"'
-    {13, 10, 16, 14, 2, -14},   // 0x23 '#'
-    {33, 10, 17, 14, 2, -14},   // 0x24 '$'
-    {55, 10, 15, 14, 2, -14},   // 0x25 '%'
-    {74, 9, 12, 14, 3, -11},    // 0x26 '&'
-    {88, 3, 7, 14, 5, -14},     // 0x27 '''
-    {91, 3, 18, 14, 7, -14},    // 0x28 '('
-    {98, 3, 18, 14, 4, -14},    // 0x29 ')'
-    {105, 9, 9, 14, 3, -14},    // 0x2A '*'
-    {116, 9, 11, 14, 3, -11},   // 0x2B '+'
-    {129, 5, 7, 14, 3, -3},     // 0x2C ','
-    {134, 11, 1, 14, 2, -6},    // 0x2D '-'
-    {136, 3, 3, 14, 5, -2},     // 0x2E '.'
-    {138, 9, 18, 14, 3, -15},   // 0x2F '/'
-    {159, 9, 15, 14, 3, -14},   // 0x30 '0'
-    {176, 7, 14, 14, 4, -13},   // 0x31 '1'
-    {189, 9, 15, 14, 2, -14},   // 0x32 '2'
-    {206, 10, 15, 14, 2, -14},  // 0x33 '3'
-    {225, 8, 15, 14, 3, -14},   // 0x34 '4'
-    {240, 9, 15, 14, 3, -14},   // 0x35 '5'
-    {257, 9, 15, 14, 3, -14},   // 0x36 '6'
-    {274, 8, 15, 14, 3, -14},   // 0x37 '7'
-    {289, 9, 15, 14, 3, -14},   // 0x38 '8'
-    {306, 9, 15, 14, 3, -14},   // 0x39 '9'
-    {323, 3, 10, 14, 5, -9},    // 0x3A ':'
-    {327, 5, 13, 14, 3, -9},    // 0x3B ';'
-    {336, 11, 11, 14, 2, -11},  // 0x3C '<'
-    {352, 12, 4, 14, 1, -8},    // 0x3D '='
-    {358, 11, 11, 14, 2, -11},  // 0x3E '>'
-    {374, 9, 14, 14, 3, -13},   // 0x3F '?'
-    {390, 9, 16, 14, 3, -14},   // 0x40 '@'
-    {408, 14, 14, 14, 0, -13},  // 0x41 'A'
-    {433, 11, 14, 14, 2, -13},  // 0x42 'B'
-    {453, 10, 14, 14, 2, -13},  // 0x43 'C'
-    {471, 10, 14, 14, 2, -13},  // 0x44 'D'
-    {489, 11, 14, 14, 2, -13},  // 0x45 'E'
-    {509, 11, 14, 14, 2, -13},  // 0x46 'F'
-    {529, 11, 14, 14, 2, -13},  // 0x47 'G'
-    {549, 10, 14, 14, 2, -13},  // 0x48 'H'
-    {567, 7, 14, 14, 4, -13},   // 0x49 'I'
-    {580, 11, 14, 14, 2, -13},  // 0x4A 'J'
-    {600, 12, 14, 14, 2, -13},  // 0x4B 'K'
-    {621, 11, 14, 14, 2, -13},  // 0x4C 'L'
-    {641, 13, 14, 14, 1, -13},  // 0x4D 'M'
-    {664, 12, 14, 14, 1, -13},  // 0x4E 'N'
-    {685, 12, 14, 14, 1, -13},  // 0x4F 'O'
-    {706, 10, 14, 14, 2, -13},  // 0x50 'P'
-    {724, 12, 17, 14, 1, -13},  // 0x51 'Q'
-    {750, 12, 14, 14, 2, -13},  // 0x52 'R'
-    {771, 10, 14, 14, 2, -13},  // 0x53 'S'
-    {789, 11, 14, 14, 2, -13},  // 0x54 'T'
-    {809, 12, 14, 14, 1, -13},  // 0x55 'U'
-    {830, 14, 14, 14, 0, -13},  // 0x56 'V'
-    {855, 14, 14, 14, 0, -13},  // 0x57 'W'
-    {880, 12, 14, 14, 1, -13},  // 0x58 'X'
-    {901, 12, 14, 14, 1, -13},  // 0x59 'Y'
-    {922, 9, 14, 14, 3, -13},   // 0x5A 'Z'
-    {938, 3, 18, 14, 7, -14},   // 0x5B '['
-    {945, 9, 18, 14, 3, -15},   // 0x5C '\'
-    {966, 3, 18, 14, 5, -14},   // 0x5D ']'
-    {973, 9, 6, 14, 3, -14},    // 0x5E '^'
-    {980, 14, 1, 14, 0, 3},     // 0x5F '_'
-    {982, 4, 4, 14, 4, -15},    // 0x60 '`'
-    {984, 10, 10, 14, 2, -9},   // 0x61 'a'
-    {997, 13, 15, 14, 0, -14},  // 0x62 'b'
-    {1022, 11, 10, 14, 2, -9},  // 0x63 'c'
-    {1036, 11, 15, 14, 2, -14}, // 0x64 'd'
-    {1057, 10, 10, 14, 2, -9},  // 0x65 'e'
-    {1070, 9, 15, 14, 4, -14},  // 0x66 'f'
-    {1087, 11, 14, 14, 2, -9},  // 0x67 'g'
-    {1107, 10, 15, 14, 2, -14}, // 0x68 'h'
-    {1126, 9, 15, 14, 3, -14},  // 0x69 'i'
-    {1143, 7, 19, 14, 3, -14},  // 0x6A 'j'
-    {1160, 12, 15, 14, 1, -14}, // 0x6B 'k'
-    {1183, 9, 15, 14, 3, -14},  // 0x6C 'l'
-    {1200, 13, 10, 14, 1, -9},  // 0x6D 'm'
-    {1217, 12, 10, 14, 1, -9},  // 0x6E 'n'
-    {1232, 11, 10, 14, 2, -9},  // 0x6F 'o'
-    {1246, 12, 14, 14, 1, -9},  // 0x70 'p'
-    {1267, 11, 14, 14, 2, -9},  // 0x71 'q'
-    {1287, 10, 10, 14, 3, -9},  // 0x72 'r'
-    {1300, 10, 10, 14, 2, -9},  // 0x73 's'
-    {1313, 11, 14, 14, 1, -13}, // 0x74 't'
-    {1333, 11, 10, 14, 2, -9},  // 0x75 'u'
-    {1347, 13, 10, 14, 1, -9},  // 0x76 'v'
-    {1364, 13, 10, 14, 1, -9},  // 0x77 'w'
-    {1381, 12, 10, 14, 1, -9},  // 0x78 'x'
-    {1396, 12, 14, 14, 1, -9},  // 0x79 'y'
-    {1417, 9, 10, 14, 3, -9},   // 0x7A 'z'
-    {1429, 5, 18, 14, 5, -14},  // 0x7B '{'
-    {1441, 1, 18, 14, 7, -14},  // 0x7C '|'
-    {1444, 5, 18, 14, 5, -14},  // 0x7D '}'
-    {1456, 10, 3, 14, 2, -7}};  // 0x7E '~'
-
-const GFXfont FreeMono12pt7b PROGMEM = {(uint8_t *)FreeMono12pt7bBitmaps,
-                                        (GFXglyph *)FreeMono12pt7bGlyphs, 0x20,
-                                        0x7E, 24};
-
-// Approx. 2132 bytes

+ 0 - 362
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMono18pt7b.h

@@ -1,362 +0,0 @@
-const uint8_t FreeMono18pt7bBitmaps[] PROGMEM = {
-    0x27, 0x77, 0x77, 0x77, 0x77, 0x22, 0x22, 0x20, 0x00, 0x6F, 0xF6, 0xF1,
-    0xFE, 0x3F, 0xC7, 0xF8, 0xFF, 0x1E, 0xC3, 0x98, 0x33, 0x06, 0x60, 0xCC,
-    0x18, 0x04, 0x20, 0x10, 0x80, 0x42, 0x01, 0x08, 0x04, 0x20, 0x10, 0x80,
-    0x42, 0x01, 0x10, 0x04, 0x41, 0xFF, 0xF0, 0x44, 0x02, 0x10, 0x08, 0x40,
-    0x21, 0x0F, 0xFF, 0xC2, 0x10, 0x08, 0x40, 0x21, 0x00, 0x84, 0x02, 0x10,
-    0x08, 0x40, 0x23, 0x00, 0x88, 0x02, 0x20, 0x02, 0x00, 0x10, 0x00, 0x80,
-    0x1F, 0xA3, 0x07, 0x10, 0x09, 0x00, 0x48, 0x00, 0x40, 0x03, 0x00, 0x0C,
-    0x00, 0x3C, 0x00, 0x1E, 0x00, 0x18, 0x00, 0x20, 0x01, 0x80, 0x0C, 0x00,
-    0x70, 0x05, 0xE0, 0xC9, 0xF8, 0x01, 0x00, 0x08, 0x00, 0x40, 0x02, 0x00,
-    0x10, 0x00, 0x1E, 0x00, 0x42, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08,
-    0x10, 0x08, 0x40, 0x0F, 0x00, 0x00, 0x1E, 0x01, 0xF0, 0x1F, 0x01, 0xE0,
-    0x0E, 0x00, 0x00, 0x3C, 0x00, 0x86, 0x02, 0x06, 0x04, 0x04, 0x08, 0x08,
-    0x10, 0x30, 0x10, 0xC0, 0x1E, 0x00, 0x0F, 0xC1, 0x00, 0x20, 0x02, 0x00,
-    0x20, 0x02, 0x00, 0x10, 0x01, 0x00, 0x08, 0x03, 0xC0, 0x6C, 0x3C, 0x62,
-    0x82, 0x68, 0x34, 0x81, 0xCC, 0x08, 0x61, 0xC3, 0xE7, 0xFF, 0xFF, 0xF6,
-    0x66, 0x66, 0x08, 0xC4, 0x62, 0x31, 0x8C, 0xC6, 0x31, 0x8C, 0x63, 0x18,
-    0xC3, 0x18, 0xC2, 0x18, 0xC3, 0x18, 0x86, 0x10, 0xC2, 0x18, 0xC6, 0x10,
-    0xC6, 0x31, 0x8C, 0x63, 0x18, 0x8C, 0x62, 0x31, 0x98, 0x80, 0x02, 0x00,
-    0x10, 0x00, 0x80, 0x04, 0x0C, 0x21, 0x9D, 0x70, 0x1C, 0x00, 0xA0, 0x0D,
-    0x80, 0xC6, 0x04, 0x10, 0x40, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00,
-    0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0xFF, 0xFE, 0x02,
-    0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80,
-    0x01, 0x00, 0x3E, 0x78, 0xF3, 0xC7, 0x8E, 0x18, 0x70, 0xC1, 0x80, 0xFF,
-    0xFE, 0x77, 0xFF, 0xF7, 0x00, 0x00, 0x08, 0x00, 0xC0, 0x04, 0x00, 0x60,
-    0x02, 0x00, 0x30, 0x01, 0x00, 0x18, 0x00, 0x80, 0x0C, 0x00, 0x40, 0x02,
-    0x00, 0x20, 0x01, 0x00, 0x10, 0x00, 0x80, 0x08, 0x00, 0x40, 0x04, 0x00,
-    0x20, 0x02, 0x00, 0x10, 0x01, 0x00, 0x08, 0x00, 0x80, 0x04, 0x00, 0x00,
-    0x0F, 0x81, 0x82, 0x08, 0x08, 0x80, 0x24, 0x01, 0x60, 0x0E, 0x00, 0x30,
-    0x01, 0x80, 0x0C, 0x00, 0x60, 0x03, 0x00, 0x18, 0x00, 0xC0, 0x06, 0x00,
-    0x30, 0x03, 0x40, 0x12, 0x00, 0x88, 0x08, 0x60, 0xC0, 0xF8, 0x00, 0x06,
-    0x00, 0x70, 0x06, 0x80, 0x64, 0x06, 0x20, 0x31, 0x00, 0x08, 0x00, 0x40,
-    0x02, 0x00, 0x10, 0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x00, 0x08, 0x00,
-    0x40, 0x02, 0x00, 0x10, 0x00, 0x80, 0x04, 0x0F, 0xFF, 0x80, 0x0F, 0x80,
-    0xC3, 0x08, 0x04, 0x80, 0x24, 0x00, 0x80, 0x04, 0x00, 0x20, 0x02, 0x00,
-    0x10, 0x01, 0x00, 0x10, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x01, 0x80,
-    0x18, 0x01, 0x80, 0x58, 0x03, 0x80, 0x1F, 0xFF, 0x80, 0x0F, 0xC0, 0xC0,
-    0x86, 0x01, 0x00, 0x02, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, 0x04, 0x00,
-    0x20, 0x0F, 0x00, 0x06, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x40,
-    0x01, 0x00, 0x04, 0x00, 0x2C, 0x01, 0x9C, 0x0C, 0x0F, 0xC0, 0x01, 0xC0,
-    0x14, 0x02, 0x40, 0x64, 0x04, 0x40, 0xC4, 0x08, 0x41, 0x84, 0x10, 0x42,
-    0x04, 0x20, 0x44, 0x04, 0x40, 0x48, 0x04, 0xFF, 0xF0, 0x04, 0x00, 0x40,
-    0x04, 0x00, 0x40, 0x04, 0x07, 0xF0, 0x3F, 0xF0, 0x80, 0x02, 0x00, 0x08,
-    0x00, 0x20, 0x00, 0x80, 0x02, 0x00, 0x0B, 0xF0, 0x30, 0x30, 0x00, 0x60,
-    0x00, 0x80, 0x01, 0x00, 0x04, 0x00, 0x10, 0x00, 0x40, 0x01, 0x00, 0x0E,
-    0x00, 0x2C, 0x01, 0x0C, 0x18, 0x0F, 0xC0, 0x01, 0xF0, 0x60, 0x18, 0x03,
-    0x00, 0x20, 0x04, 0x00, 0x40, 0x0C, 0x00, 0x80, 0x08, 0xF8, 0x98, 0x4A,
-    0x02, 0xE0, 0x3C, 0x01, 0x80, 0x14, 0x01, 0x40, 0x14, 0x03, 0x20, 0x21,
-    0x0C, 0x0F, 0x80, 0xFF, 0xF8, 0x01, 0x80, 0x18, 0x03, 0x00, 0x20, 0x02,
-    0x00, 0x20, 0x04, 0x00, 0x40, 0x04, 0x00, 0xC0, 0x08, 0x00, 0x80, 0x18,
-    0x01, 0x00, 0x10, 0x01, 0x00, 0x30, 0x02, 0x00, 0x20, 0x02, 0x00, 0x0F,
-    0x81, 0x83, 0x10, 0x05, 0x80, 0x38, 0x00, 0xC0, 0x06, 0x00, 0x30, 0x03,
-    0x40, 0x11, 0x83, 0x07, 0xF0, 0x60, 0xC4, 0x01, 0x60, 0x0E, 0x00, 0x30,
-    0x01, 0x80, 0x0E, 0x00, 0xD0, 0x04, 0x60, 0xC1, 0xFC, 0x00, 0x1F, 0x03,
-    0x08, 0x40, 0x4C, 0x02, 0x80, 0x28, 0x02, 0x80, 0x18, 0x03, 0xC0, 0x74,
-    0x05, 0x21, 0x91, 0xF1, 0x00, 0x10, 0x03, 0x00, 0x20, 0x02, 0x00, 0x40,
-    0x0C, 0x01, 0x80, 0x60, 0xF8, 0x00, 0x77, 0xFF, 0xF7, 0x00, 0x00, 0x00,
-    0x1D, 0xFF, 0xFD, 0xC0, 0x1C, 0x7C, 0xF9, 0xF1, 0xC0, 0x00, 0x00, 0x00,
-    0x00, 0xF1, 0xE3, 0x8F, 0x1C, 0x38, 0xE1, 0xC3, 0x06, 0x00, 0x00, 0x06,
-    0x00, 0x18, 0x00, 0xE0, 0x07, 0x00, 0x38, 0x01, 0xC0, 0x06, 0x00, 0x38,
-    0x00, 0xE0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x18, 0x00, 0x1C, 0x00, 0x0E,
-    0x00, 0x07, 0x00, 0x03, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x07, 0xFF, 0xFC, 0xC0, 0x00, 0xC0, 0x00, 0xE0, 0x00, 0x70,
-    0x00, 0x38, 0x00, 0x1C, 0x00, 0x0C, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x70,
-    0x03, 0x80, 0x0C, 0x00, 0x70, 0x03, 0x80, 0x1C, 0x00, 0x60, 0x00, 0x3F,
-    0x8E, 0x0C, 0x80, 0x28, 0x01, 0x80, 0x10, 0x01, 0x00, 0x10, 0x02, 0x00,
-    0xC0, 0x38, 0x06, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E,
-    0x01, 0xF0, 0x1F, 0x00, 0xE0, 0x0F, 0x01, 0x86, 0x08, 0x08, 0x80, 0x24,
-    0x01, 0x40, 0x0A, 0x00, 0x50, 0x1E, 0x83, 0x14, 0x20, 0xA2, 0x05, 0x10,
-    0x28, 0x81, 0x46, 0x0A, 0x18, 0x50, 0x3F, 0x80, 0x04, 0x00, 0x10, 0x00,
-    0x80, 0x02, 0x00, 0x18, 0x18, 0x3F, 0x00, 0x1F, 0xF0, 0x00, 0x06, 0x80,
-    0x00, 0x34, 0x00, 0x01, 0x30, 0x00, 0x18, 0x80, 0x00, 0x86, 0x00, 0x04,
-    0x30, 0x00, 0x60, 0x80, 0x02, 0x06, 0x00, 0x10, 0x10, 0x01, 0x80, 0x80,
-    0x08, 0x06, 0x00, 0x7F, 0xF0, 0x06, 0x00, 0x80, 0x20, 0x06, 0x01, 0x00,
-    0x10, 0x18, 0x00, 0xC0, 0x80, 0x06, 0x04, 0x00, 0x11, 0xFC, 0x0F, 0xF0,
-    0xFF, 0xF8, 0x04, 0x01, 0x01, 0x00, 0x20, 0x40, 0x04, 0x10, 0x01, 0x04,
-    0x00, 0x41, 0x00, 0x10, 0x40, 0x08, 0x10, 0x0C, 0x07, 0xFF, 0x01, 0x00,
-    0x70, 0x40, 0x06, 0x10, 0x00, 0x84, 0x00, 0x11, 0x00, 0x04, 0x40, 0x01,
-    0x10, 0x00, 0x44, 0x00, 0x21, 0x00, 0x33, 0xFF, 0xF8, 0x03, 0xF1, 0x06,
-    0x0E, 0x8C, 0x01, 0xC4, 0x00, 0x64, 0x00, 0x12, 0x00, 0x0A, 0x00, 0x01,
-    0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00,
-    0x04, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x20, 0x01, 0x88, 0x01, 0x83,
-    0x03, 0x80, 0x7E, 0x00, 0xFF, 0xE0, 0x20, 0x18, 0x20, 0x0C, 0x20, 0x04,
-    0x20, 0x02, 0x20, 0x02, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01,
-    0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x02, 0x20, 0x02,
-    0x20, 0x04, 0x20, 0x0C, 0x20, 0x18, 0xFF, 0xE0, 0xFF, 0xFF, 0x08, 0x00,
-    0x84, 0x00, 0x42, 0x00, 0x21, 0x00, 0x10, 0x80, 0x00, 0x40, 0x00, 0x20,
-    0x40, 0x10, 0x20, 0x0F, 0xF0, 0x04, 0x08, 0x02, 0x04, 0x01, 0x00, 0x00,
-    0x80, 0x00, 0x40, 0x02, 0x20, 0x01, 0x10, 0x00, 0x88, 0x00, 0x44, 0x00,
-    0x3F, 0xFF, 0xF0, 0xFF, 0xFF, 0x88, 0x00, 0x44, 0x00, 0x22, 0x00, 0x11,
-    0x00, 0x08, 0x80, 0x00, 0x40, 0x00, 0x20, 0x40, 0x10, 0x20, 0x0F, 0xF0,
-    0x04, 0x08, 0x02, 0x04, 0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20,
-    0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x1F, 0xF8, 0x00, 0x03, 0xF9,
-    0x06, 0x07, 0x84, 0x00, 0xC4, 0x00, 0x24, 0x00, 0x12, 0x00, 0x02, 0x00,
-    0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x0F, 0xF8,
-    0x00, 0x14, 0x00, 0x09, 0x00, 0x04, 0x80, 0x02, 0x20, 0x01, 0x18, 0x00,
-    0x83, 0x01, 0xC0, 0x7F, 0x00, 0xFC, 0x3F, 0x20, 0x04, 0x20, 0x04, 0x20,
-    0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x3F,
-    0xFC, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20,
-    0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0xFC, 0x3F, 0xFF, 0xF8, 0x10,
-    0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x00, 0x08, 0x00, 0x40, 0x02, 0x00,
-    0x10, 0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x00, 0x08, 0x00, 0x40, 0x02,
-    0x00, 0x10, 0x00, 0x81, 0xFF, 0xF0, 0x03, 0xFF, 0x80, 0x04, 0x00, 0x02,
-    0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00,
-    0x08, 0x00, 0x04, 0x00, 0x02, 0x10, 0x01, 0x08, 0x00, 0x84, 0x00, 0x42,
-    0x00, 0x21, 0x00, 0x10, 0x80, 0x10, 0x20, 0x18, 0x0C, 0x18, 0x01, 0xF0,
-    0x00, 0xFF, 0x1F, 0x84, 0x01, 0x81, 0x00, 0xC0, 0x40, 0x60, 0x10, 0x30,
-    0x04, 0x18, 0x01, 0x0C, 0x00, 0x46, 0x00, 0x13, 0x00, 0x05, 0xF0, 0x01,
-    0xC6, 0x00, 0x60, 0xC0, 0x10, 0x18, 0x04, 0x06, 0x01, 0x00, 0xC0, 0x40,
-    0x30, 0x10, 0x04, 0x04, 0x01, 0x81, 0x00, 0x23, 0xFC, 0x0F, 0xFF, 0x80,
-    0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04,
-    0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00,
-    0x42, 0x00, 0x84, 0x01, 0x08, 0x02, 0x10, 0x04, 0x20, 0x0F, 0xFF, 0xF0,
-    0xF0, 0x01, 0xE7, 0x00, 0x70, 0xA0, 0x0A, 0x16, 0x03, 0x42, 0x40, 0x48,
-    0x4C, 0x19, 0x08, 0x82, 0x21, 0x10, 0x44, 0x23, 0x18, 0x84, 0x22, 0x10,
-    0x86, 0xC2, 0x10, 0x50, 0x42, 0x0E, 0x08, 0x41, 0xC1, 0x08, 0x00, 0x21,
-    0x00, 0x04, 0x20, 0x00, 0x84, 0x00, 0x10, 0x80, 0x02, 0x7F, 0x03, 0xF0,
-    0xF8, 0x1F, 0xC6, 0x00, 0x41, 0xC0, 0x10, 0x50, 0x04, 0x12, 0x01, 0x04,
-    0xC0, 0x41, 0x10, 0x10, 0x46, 0x04, 0x10, 0x81, 0x04, 0x10, 0x41, 0x04,
-    0x10, 0x40, 0x84, 0x10, 0x31, 0x04, 0x04, 0x41, 0x01, 0x90, 0x40, 0x24,
-    0x10, 0x05, 0x04, 0x01, 0xC1, 0x00, 0x31, 0xFC, 0x0C, 0x03, 0xE0, 0x06,
-    0x0C, 0x04, 0x01, 0x04, 0x00, 0x46, 0x00, 0x32, 0x00, 0x0B, 0x00, 0x05,
-    0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00,
-    0x0E, 0x00, 0x0D, 0x00, 0x04, 0xC0, 0x06, 0x20, 0x02, 0x08, 0x02, 0x03,
-    0x06, 0x00, 0x7C, 0x00, 0xFF, 0xF0, 0x10, 0x0C, 0x10, 0x02, 0x10, 0x03,
-    0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x03, 0x10, 0x06, 0x10, 0x0C,
-    0x1F, 0xF0, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00,
-    0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xFF, 0xC0, 0x03, 0xE0, 0x06, 0x0C,
-    0x04, 0x01, 0x04, 0x00, 0x46, 0x00, 0x32, 0x00, 0x0B, 0x00, 0x07, 0x00,
-    0x01, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0E,
-    0x00, 0x0D, 0x00, 0x04, 0xC0, 0x06, 0x20, 0x02, 0x08, 0x02, 0x03, 0x06,
-    0x00, 0xFC, 0x00, 0x30, 0x00, 0x30, 0x00, 0x7F, 0xC6, 0x38, 0x1E, 0xFF,
-    0xF0, 0x02, 0x01, 0x80, 0x40, 0x08, 0x08, 0x01, 0x81, 0x00, 0x10, 0x20,
-    0x02, 0x04, 0x00, 0x40, 0x80, 0x18, 0x10, 0x06, 0x02, 0x03, 0x80, 0x7F,
-    0xC0, 0x08, 0x18, 0x01, 0x01, 0x80, 0x20, 0x18, 0x04, 0x01, 0x80, 0x80,
-    0x10, 0x10, 0x03, 0x02, 0x00, 0x20, 0x40, 0x06, 0x7F, 0x80, 0x70, 0x0F,
-    0xC8, 0x61, 0xE2, 0x01, 0x90, 0x02, 0x40, 0x09, 0x00, 0x04, 0x00, 0x08,
-    0x00, 0x38, 0x00, 0x3E, 0x00, 0x0F, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x18,
-    0x00, 0x60, 0x01, 0x80, 0x0F, 0x00, 0x2B, 0x03, 0x23, 0xF0, 0xFF, 0xFF,
-    0x02, 0x06, 0x04, 0x0C, 0x08, 0x18, 0x10, 0x20, 0x20, 0x00, 0x40, 0x00,
-    0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20,
-    0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x01, 0xFF, 0xC0,
-    0xFC, 0x1F, 0x90, 0x01, 0x08, 0x00, 0x84, 0x00, 0x42, 0x00, 0x21, 0x00,
-    0x10, 0x80, 0x08, 0x40, 0x04, 0x20, 0x02, 0x10, 0x01, 0x08, 0x00, 0x84,
-    0x00, 0x42, 0x00, 0x21, 0x00, 0x10, 0x80, 0x08, 0x40, 0x04, 0x10, 0x04,
-    0x0C, 0x06, 0x03, 0x06, 0x00, 0x7C, 0x00, 0xFE, 0x03, 0xF8, 0x80, 0x02,
-    0x04, 0x00, 0x10, 0x30, 0x01, 0x80, 0x80, 0x08, 0x06, 0x00, 0xC0, 0x30,
-    0x06, 0x00, 0x80, 0x20, 0x06, 0x03, 0x00, 0x30, 0x10, 0x00, 0x80, 0x80,
-    0x06, 0x0C, 0x00, 0x10, 0x40, 0x00, 0x86, 0x00, 0x06, 0x20, 0x00, 0x11,
-    0x00, 0x00, 0xD8, 0x00, 0x06, 0x80, 0x00, 0x1C, 0x00, 0x00, 0xE0, 0x00,
-    0xFC, 0x0F, 0xE8, 0x00, 0x19, 0x00, 0x03, 0x10, 0x00, 0x62, 0x00, 0x08,
-    0x41, 0x81, 0x08, 0x28, 0x21, 0x05, 0x04, 0x21, 0xA0, 0x84, 0x36, 0x30,
-    0x84, 0x46, 0x08, 0x88, 0xC1, 0x31, 0x18, 0x24, 0x12, 0x04, 0x82, 0x40,
-    0xB0, 0x48, 0x14, 0x09, 0x02, 0x80, 0xA0, 0x30, 0x1C, 0x06, 0x03, 0x80,
-    0x7E, 0x0F, 0xC2, 0x00, 0x60, 0x60, 0x0C, 0x06, 0x03, 0x00, 0x60, 0xC0,
-    0x0C, 0x10, 0x00, 0xC6, 0x00, 0x0D, 0x80, 0x00, 0xA0, 0x00, 0x1C, 0x00,
-    0x03, 0x80, 0x00, 0xD8, 0x00, 0x11, 0x00, 0x06, 0x30, 0x01, 0x83, 0x00,
-    0x60, 0x30, 0x08, 0x06, 0x03, 0x00, 0x60, 0xC0, 0x06, 0x7F, 0x07, 0xF0,
-    0xFC, 0x1F, 0x98, 0x03, 0x04, 0x01, 0x03, 0x01, 0x80, 0xC1, 0x80, 0x20,
-    0x80, 0x18, 0xC0, 0x04, 0x40, 0x03, 0x60, 0x00, 0xE0, 0x00, 0x20, 0x00,
-    0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80,
-    0x00, 0x40, 0x00, 0x20, 0x03, 0xFF, 0x80, 0xFF, 0xF4, 0x00, 0xA0, 0x09,
-    0x00, 0x48, 0x04, 0x40, 0x40, 0x02, 0x00, 0x20, 0x02, 0x00, 0x10, 0x01,
-    0x00, 0x10, 0x00, 0x80, 0x08, 0x04, 0x80, 0x24, 0x01, 0x40, 0x0C, 0x00,
-    0x60, 0x03, 0xFF, 0xF0, 0xFC, 0x21, 0x08, 0x42, 0x10, 0x84, 0x21, 0x08,
-    0x42, 0x10, 0x84, 0x21, 0x08, 0x42, 0x10, 0xF8, 0x80, 0x02, 0x00, 0x10,
-    0x00, 0xC0, 0x02, 0x00, 0x18, 0x00, 0x40, 0x03, 0x00, 0x08, 0x00, 0x40,
-    0x01, 0x00, 0x08, 0x00, 0x20, 0x01, 0x00, 0x04, 0x00, 0x20, 0x00, 0x80,
-    0x04, 0x00, 0x10, 0x00, 0x80, 0x02, 0x00, 0x10, 0x00, 0x40, 0x02, 0x00,
-    0x08, 0x00, 0x40, 0xF8, 0x42, 0x10, 0x84, 0x21, 0x08, 0x42, 0x10, 0x84,
-    0x21, 0x08, 0x42, 0x10, 0x84, 0x21, 0xF8, 0x02, 0x00, 0x38, 0x03, 0x60,
-    0x11, 0x01, 0x8C, 0x18, 0x31, 0x80, 0xD8, 0x03, 0x80, 0x08, 0xFF, 0xFF,
-    0xF8, 0xC1, 0x83, 0x06, 0x0C, 0x0F, 0xC0, 0x70, 0x30, 0x00, 0x10, 0x00,
-    0x08, 0x00, 0x08, 0x00, 0x08, 0x0F, 0xF8, 0x30, 0x08, 0x40, 0x08, 0x80,
-    0x08, 0x80, 0x08, 0x80, 0x08, 0x80, 0x38, 0x60, 0xE8, 0x3F, 0x8F, 0xF0,
-    0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x10, 0x00, 0x04, 0x00,
-    0x01, 0x0F, 0x80, 0x4C, 0x18, 0x14, 0x01, 0x06, 0x00, 0x21, 0x80, 0x08,
-    0x40, 0x01, 0x10, 0x00, 0x44, 0x00, 0x11, 0x00, 0x04, 0x40, 0x01, 0x18,
-    0x00, 0x86, 0x00, 0x21, 0xC0, 0x10, 0x5C, 0x18, 0xF1, 0xF8, 0x00, 0x07,
-    0xE4, 0x30, 0x78, 0x80, 0x32, 0x00, 0x24, 0x00, 0x50, 0x00, 0x20, 0x00,
-    0x40, 0x00, 0x80, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x12, 0x00, 0xC3,
-    0x07, 0x01, 0xF8, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x80, 0x00, 0x20, 0x00,
-    0x08, 0x00, 0x02, 0x00, 0x00, 0x80, 0x7C, 0x20, 0x60, 0xC8, 0x20, 0x0A,
-    0x10, 0x01, 0x84, 0x00, 0x62, 0x00, 0x08, 0x80, 0x02, 0x20, 0x00, 0x88,
-    0x00, 0x22, 0x00, 0x08, 0xC0, 0x06, 0x10, 0x01, 0x82, 0x00, 0xE0, 0x60,
-    0xE8, 0x0F, 0xE3, 0xC0, 0x07, 0xE0, 0x1C, 0x18, 0x30, 0x0C, 0x60, 0x06,
-    0x40, 0x03, 0xC0, 0x03, 0xC0, 0x01, 0xFF, 0xFF, 0xC0, 0x00, 0xC0, 0x00,
-    0x40, 0x00, 0x60, 0x00, 0x30, 0x03, 0x0C, 0x0E, 0x03, 0xF0, 0x03, 0xFC,
-    0x18, 0x00, 0x80, 0x02, 0x00, 0x08, 0x00, 0x20, 0x0F, 0xFF, 0x82, 0x00,
-    0x08, 0x00, 0x20, 0x00, 0x80, 0x02, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80,
-    0x02, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, 0x02, 0x00, 0xFF, 0xF0, 0x0F,
-    0xC7, 0x9C, 0x3A, 0x18, 0x07, 0x08, 0x01, 0x8C, 0x00, 0xC4, 0x00, 0x22,
-    0x00, 0x11, 0x00, 0x08, 0x80, 0x04, 0x40, 0x02, 0x10, 0x03, 0x08, 0x01,
-    0x82, 0x01, 0x40, 0xC3, 0x20, 0x3F, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00,
-    0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x7F, 0x00, 0xF0, 0x00,
-    0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x47,
-    0xC0, 0x2C, 0x18, 0x1C, 0x04, 0x0C, 0x01, 0x04, 0x00, 0x82, 0x00, 0x41,
-    0x00, 0x20, 0x80, 0x10, 0x40, 0x08, 0x20, 0x04, 0x10, 0x02, 0x08, 0x01,
-    0x04, 0x00, 0x82, 0x00, 0x47, 0xC0, 0xF8, 0x06, 0x00, 0x18, 0x00, 0x60,
-    0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x80, 0x02, 0x00, 0x08,
-    0x00, 0x20, 0x00, 0x80, 0x02, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, 0x02,
-    0x00, 0x08, 0x00, 0x20, 0x00, 0x80, 0x02, 0x03, 0xFF, 0xF0, 0x03, 0x00,
-    0xC0, 0x30, 0x0C, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x00, 0x40, 0x10, 0x04,
-    0x01, 0x00, 0x40, 0x10, 0x04, 0x01, 0x00, 0x40, 0x10, 0x04, 0x01, 0x00,
-    0x40, 0x10, 0x04, 0x01, 0x00, 0x40, 0x10, 0x08, 0x06, 0xFE, 0x00, 0xF0,
-    0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10,
-    0xFE, 0x10, 0x30, 0x10, 0xE0, 0x11, 0xC0, 0x13, 0x00, 0x16, 0x00, 0x1E,
-    0x00, 0x1B, 0x00, 0x11, 0x80, 0x10, 0xC0, 0x10, 0x60, 0x10, 0x30, 0x10,
-    0x18, 0x10, 0x1C, 0xF0, 0x3F, 0x7E, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80,
-    0x02, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, 0x02, 0x00, 0x08, 0x00, 0x20,
-    0x00, 0x80, 0x02, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, 0x02, 0x00, 0x08,
-    0x00, 0x20, 0x00, 0x80, 0xFF, 0xFC, 0xEF, 0x9E, 0x07, 0x1E, 0x20, 0xC1,
-    0x82, 0x10, 0x20, 0x42, 0x04, 0x08, 0x40, 0x81, 0x08, 0x10, 0x21, 0x02,
-    0x04, 0x20, 0x40, 0x84, 0x08, 0x10, 0x81, 0x02, 0x10, 0x20, 0x42, 0x04,
-    0x08, 0x40, 0x81, 0x3E, 0x1C, 0x38, 0x71, 0xF0, 0x0B, 0x06, 0x07, 0x01,
-    0x03, 0x00, 0x41, 0x00, 0x20, 0x80, 0x10, 0x40, 0x08, 0x20, 0x04, 0x10,
-    0x02, 0x08, 0x01, 0x04, 0x00, 0x82, 0x00, 0x41, 0x00, 0x20, 0x80, 0x13,
-    0xF0, 0x3E, 0x07, 0xC0, 0x30, 0x60, 0x80, 0x22, 0x00, 0x24, 0x00, 0x50,
-    0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x05, 0x00, 0x12, 0x00,
-    0x22, 0x00, 0x83, 0x06, 0x01, 0xF0, 0x00, 0xF1, 0xFC, 0x05, 0xC1, 0x81,
-    0xC0, 0x10, 0x60, 0x02, 0x18, 0x00, 0xC4, 0x00, 0x11, 0x00, 0x04, 0x40,
-    0x01, 0x10, 0x00, 0x44, 0x00, 0x11, 0x80, 0x08, 0x60, 0x02, 0x14, 0x01,
-    0x04, 0xC1, 0x81, 0x0F, 0x80, 0x40, 0x00, 0x10, 0x00, 0x04, 0x00, 0x01,
-    0x00, 0x00, 0x40, 0x00, 0x10, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xE3, 0xC6,
-    0x0E, 0x86, 0x00, 0xE1, 0x00, 0x18, 0xC0, 0x06, 0x20, 0x00, 0x88, 0x00,
-    0x22, 0x00, 0x08, 0x80, 0x02, 0x20, 0x00, 0x84, 0x00, 0x61, 0x00, 0x18,
-    0x20, 0x0A, 0x06, 0x0C, 0x80, 0x7C, 0x20, 0x00, 0x08, 0x00, 0x02, 0x00,
-    0x00, 0x80, 0x00, 0x20, 0x00, 0x08, 0x00, 0x02, 0x00, 0x0F, 0xF0, 0xF8,
-    0x7C, 0x11, 0x8C, 0x2C, 0x00, 0x70, 0x00, 0xC0, 0x01, 0x00, 0x02, 0x00,
-    0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01,
-    0x00, 0x3F, 0xFC, 0x00, 0x0F, 0xD1, 0x83, 0x98, 0x04, 0x80, 0x24, 0x00,
-    0x30, 0x00, 0xF0, 0x00, 0xFC, 0x00, 0x30, 0x00, 0xE0, 0x03, 0x00, 0x1C,
-    0x01, 0xF0, 0x1A, 0x7F, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08,
-    0x00, 0x08, 0x00, 0xFF, 0xFC, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08,
-    0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08,
-    0x00, 0x08, 0x00, 0x08, 0x01, 0x06, 0x0F, 0x03, 0xF8, 0xF0, 0x3E, 0x08,
-    0x01, 0x04, 0x00, 0x82, 0x00, 0x41, 0x00, 0x20, 0x80, 0x10, 0x40, 0x08,
-    0x20, 0x04, 0x10, 0x02, 0x08, 0x01, 0x04, 0x00, 0x82, 0x00, 0x41, 0x00,
-    0xE0, 0x41, 0xD0, 0x1F, 0x8E, 0xFE, 0x0F, 0xE2, 0x00, 0x20, 0x60, 0x0C,
-    0x0C, 0x01, 0x80, 0x80, 0x20, 0x18, 0x0C, 0x01, 0x01, 0x00, 0x30, 0x60,
-    0x02, 0x08, 0x00, 0x41, 0x00, 0x0C, 0x60, 0x00, 0x88, 0x00, 0x19, 0x00,
-    0x01, 0x40, 0x00, 0x38, 0x00, 0xFC, 0x07, 0xE4, 0x00, 0x10, 0x80, 0x02,
-    0x18, 0x20, 0xC3, 0x0E, 0x18, 0x21, 0x42, 0x04, 0x28, 0x40, 0x8D, 0x88,
-    0x19, 0x93, 0x03, 0x22, 0x60, 0x2C, 0x68, 0x05, 0x85, 0x00, 0xA0, 0xA0,
-    0x1C, 0x1C, 0x01, 0x81, 0x80, 0x7C, 0x1F, 0x18, 0x03, 0x06, 0x03, 0x01,
-    0x83, 0x00, 0x63, 0x00, 0x1B, 0x00, 0x07, 0x00, 0x03, 0x80, 0x03, 0x60,
-    0x03, 0x18, 0x03, 0x06, 0x03, 0x01, 0x83, 0x00, 0x61, 0x00, 0x33, 0xF0,
-    0x7E, 0xFC, 0x1F, 0x90, 0x01, 0x8C, 0x00, 0x86, 0x00, 0xC1, 0x80, 0x40,
-    0xC0, 0x60, 0x20, 0x20, 0x18, 0x30, 0x04, 0x10, 0x03, 0x08, 0x00, 0x8C,
-    0x00, 0x64, 0x00, 0x16, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x01, 0x00, 0x01,
-    0x80, 0x00, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x20, 0x07, 0xFE, 0x00,
-    0xFF, 0xF4, 0x01, 0x20, 0x09, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00,
-    0xC0, 0x04, 0x00, 0x40, 0x04, 0x00, 0x40, 0x14, 0x00, 0xA0, 0x07, 0xFF,
-    0xE0, 0x07, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
-    0x30, 0xC0, 0x30, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
-    0x0C, 0x07, 0xFF, 0xFF, 0xFF, 0x80, 0xE0, 0x30, 0x10, 0x10, 0x10, 0x10,
-    0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x07, 0x0C, 0x10, 0x10, 0x10, 0x10,
-    0x10, 0x10, 0x10, 0x10, 0x10, 0x30, 0xE0, 0x1C, 0x00, 0x44, 0x0D, 0x84,
-    0x36, 0x04, 0x40, 0x07, 0x00};
-
-const GFXglyph FreeMono18pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 21, 0, 1},        // 0x20 ' '
-    {0, 4, 22, 21, 8, -21},     // 0x21 '!'
-    {11, 11, 10, 21, 5, -20},   // 0x22 '"'
-    {25, 14, 24, 21, 3, -21},   // 0x23 '#'
-    {67, 13, 26, 21, 4, -22},   // 0x24 '$'
-    {110, 15, 21, 21, 3, -20},  // 0x25 '%'
-    {150, 12, 18, 21, 4, -17},  // 0x26 '&'
-    {177, 4, 10, 21, 8, -20},   // 0x27 '''
-    {182, 5, 25, 21, 10, -20},  // 0x28 '('
-    {198, 5, 25, 21, 6, -20},   // 0x29 ')'
-    {214, 13, 12, 21, 4, -20},  // 0x2A '*'
-    {234, 15, 17, 21, 3, -17},  // 0x2B '+'
-    {266, 7, 10, 21, 5, -4},    // 0x2C ','
-    {275, 15, 1, 21, 3, -9},    // 0x2D '-'
-    {277, 5, 5, 21, 8, -4},     // 0x2E '.'
-    {281, 13, 26, 21, 4, -22},  // 0x2F '/'
-    {324, 13, 21, 21, 4, -20},  // 0x30 '0'
-    {359, 13, 21, 21, 4, -20},  // 0x31 '1'
-    {394, 13, 21, 21, 3, -20},  // 0x32 '2'
-    {429, 14, 21, 21, 3, -20},  // 0x33 '3'
-    {466, 12, 21, 21, 4, -20},  // 0x34 '4'
-    {498, 14, 21, 21, 3, -20},  // 0x35 '5'
-    {535, 12, 21, 21, 5, -20},  // 0x36 '6'
-    {567, 12, 21, 21, 4, -20},  // 0x37 '7'
-    {599, 13, 21, 21, 4, -20},  // 0x38 '8'
-    {634, 12, 21, 21, 5, -20},  // 0x39 '9'
-    {666, 5, 15, 21, 8, -14},   // 0x3A ':'
-    {676, 7, 20, 21, 5, -14},   // 0x3B ';'
-    {694, 15, 16, 21, 3, -17},  // 0x3C '<'
-    {724, 17, 6, 21, 2, -12},   // 0x3D '='
-    {737, 15, 16, 21, 3, -17},  // 0x3E '>'
-    {767, 12, 20, 21, 5, -19},  // 0x3F '?'
-    {797, 13, 23, 21, 4, -20},  // 0x40 '@'
-    {835, 21, 20, 21, 0, -19},  // 0x41 'A'
-    {888, 18, 20, 21, 1, -19},  // 0x42 'B'
-    {933, 17, 20, 21, 2, -19},  // 0x43 'C'
-    {976, 16, 20, 21, 2, -19},  // 0x44 'D'
-    {1016, 17, 20, 21, 1, -19}, // 0x45 'E'
-    {1059, 17, 20, 21, 1, -19}, // 0x46 'F'
-    {1102, 17, 20, 21, 2, -19}, // 0x47 'G'
-    {1145, 16, 20, 21, 2, -19}, // 0x48 'H'
-    {1185, 13, 20, 21, 4, -19}, // 0x49 'I'
-    {1218, 17, 20, 21, 3, -19}, // 0x4A 'J'
-    {1261, 18, 20, 21, 1, -19}, // 0x4B 'K'
-    {1306, 15, 20, 21, 3, -19}, // 0x4C 'L'
-    {1344, 19, 20, 21, 1, -19}, // 0x4D 'M'
-    {1392, 18, 20, 21, 1, -19}, // 0x4E 'N'
-    {1437, 17, 20, 21, 2, -19}, // 0x4F 'O'
-    {1480, 16, 20, 21, 1, -19}, // 0x50 'P'
-    {1520, 17, 24, 21, 2, -19}, // 0x51 'Q'
-    {1571, 19, 20, 21, 1, -19}, // 0x52 'R'
-    {1619, 14, 20, 21, 3, -19}, // 0x53 'S'
-    {1654, 15, 20, 21, 3, -19}, // 0x54 'T'
-    {1692, 17, 20, 21, 2, -19}, // 0x55 'U'
-    {1735, 21, 20, 21, 0, -19}, // 0x56 'V'
-    {1788, 19, 20, 21, 1, -19}, // 0x57 'W'
-    {1836, 19, 20, 21, 1, -19}, // 0x58 'X'
-    {1884, 17, 20, 21, 2, -19}, // 0x59 'Y'
-    {1927, 13, 20, 21, 4, -19}, // 0x5A 'Z'
-    {1960, 5, 25, 21, 10, -20}, // 0x5B '['
-    {1976, 13, 26, 21, 4, -22}, // 0x5C '\'
-    {2019, 5, 25, 21, 6, -20},  // 0x5D ']'
-    {2035, 13, 9, 21, 4, -20},  // 0x5E '^'
-    {2050, 21, 1, 21, 0, 4},    // 0x5F '_'
-    {2053, 6, 5, 21, 5, -21},   // 0x60 '`'
-    {2057, 16, 15, 21, 3, -14}, // 0x61 'a'
-    {2087, 18, 21, 21, 1, -20}, // 0x62 'b'
-    {2135, 15, 15, 21, 3, -14}, // 0x63 'c'
-    {2164, 18, 21, 21, 2, -20}, // 0x64 'd'
-    {2212, 16, 15, 21, 2, -14}, // 0x65 'e'
-    {2242, 14, 21, 21, 4, -20}, // 0x66 'f'
-    {2279, 17, 22, 21, 2, -14}, // 0x67 'g'
-    {2326, 17, 21, 21, 1, -20}, // 0x68 'h'
-    {2371, 14, 22, 21, 4, -21}, // 0x69 'i'
-    {2410, 10, 29, 21, 5, -21}, // 0x6A 'j'
-    {2447, 16, 21, 21, 2, -20}, // 0x6B 'k'
-    {2489, 14, 21, 21, 4, -20}, // 0x6C 'l'
-    {2526, 19, 15, 21, 1, -14}, // 0x6D 'm'
-    {2562, 17, 15, 21, 1, -14}, // 0x6E 'n'
-    {2594, 15, 15, 21, 3, -14}, // 0x6F 'o'
-    {2623, 18, 22, 21, 1, -14}, // 0x70 'p'
-    {2673, 18, 22, 21, 2, -14}, // 0x71 'q'
-    {2723, 15, 15, 21, 3, -14}, // 0x72 'r'
-    {2752, 13, 15, 21, 4, -14}, // 0x73 's'
-    {2777, 16, 20, 21, 1, -19}, // 0x74 't'
-    {2817, 17, 15, 21, 1, -14}, // 0x75 'u'
-    {2849, 19, 15, 21, 1, -14}, // 0x76 'v'
-    {2885, 19, 15, 21, 1, -14}, // 0x77 'w'
-    {2921, 17, 15, 21, 2, -14}, // 0x78 'x'
-    {2953, 17, 22, 21, 2, -14}, // 0x79 'y'
-    {3000, 13, 15, 21, 4, -14}, // 0x7A 'z'
-    {3025, 8, 25, 21, 6, -20},  // 0x7B '{'
-    {3050, 1, 25, 21, 10, -20}, // 0x7C '|'
-    {3054, 8, 25, 21, 7, -20},  // 0x7D '}'
-    {3079, 15, 5, 21, 3, -11}}; // 0x7E '~'
-
-const GFXfont FreeMono18pt7b PROGMEM = {(uint8_t *)FreeMono18pt7bBitmaps,
-                                        (GFXglyph *)FreeMono18pt7bGlyphs, 0x20,
-                                        0x7E, 35};
-
-// Approx. 3761 bytes

+ 0 - 576
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMono24pt7b.h

@@ -1,576 +0,0 @@
-const uint8_t FreeMono24pt7bBitmaps[] PROGMEM = {
-    0x73, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x9C, 0xE7, 0x10, 0x84, 0x21, 0x08,
-    0x00, 0x00, 0x00, 0x03, 0xBF, 0xFF, 0xB8, 0xFE, 0x7F, 0x7C, 0x3E, 0x7C,
-    0x3E, 0x7C, 0x3E, 0x7C, 0x3E, 0x7C, 0x3E, 0x7C, 0x3E, 0x7C, 0x3E, 0x3C,
-    0x3E, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x01,
-    0x86, 0x00, 0x30, 0xC0, 0x06, 0x18, 0x00, 0xC3, 0x00, 0x18, 0x60, 0x03,
-    0x0C, 0x00, 0x61, 0x80, 0x0C, 0x70, 0x01, 0x8C, 0x00, 0x61, 0x80, 0x0C,
-    0x30, 0x3F, 0xFF, 0xF7, 0xFF, 0xFE, 0x06, 0x18, 0x00, 0xC3, 0x00, 0x18,
-    0x60, 0x03, 0x0C, 0x00, 0x61, 0x80, 0x0C, 0x30, 0x7F, 0xFF, 0xEF, 0xFF,
-    0xFC, 0x06, 0x18, 0x00, 0xC7, 0x00, 0x38, 0xC0, 0x06, 0x18, 0x00, 0xC3,
-    0x00, 0x18, 0x60, 0x03, 0x0C, 0x00, 0x61, 0x80, 0x0C, 0x30, 0x01, 0x86,
-    0x00, 0x30, 0xC0, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x0F, 0xC0,
-    0x0F, 0xFD, 0x87, 0x03, 0xE3, 0x80, 0x39, 0xC0, 0x06, 0x60, 0x01, 0x98,
-    0x00, 0x06, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x07, 0xC0, 0x00, 0x7F,
-    0x80, 0x03, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0x60, 0x00, 0x1C, 0x00, 0x03,
-    0x80, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x1F, 0x80, 0x0E, 0xFC, 0x0F, 0x37,
-    0xFF, 0x80, 0x7F, 0x80, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C,
-    0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x07, 0x80, 0x01, 0xFE, 0x00, 0x38,
-    0x70, 0x03, 0x03, 0x00, 0x60, 0x18, 0x06, 0x01, 0x80, 0x60, 0x18, 0x06,
-    0x01, 0x80, 0x30, 0x30, 0x03, 0x87, 0x00, 0x1F, 0xE0, 0x30, 0x78, 0x1F,
-    0x00, 0x1F, 0x80, 0x0F, 0xC0, 0x07, 0xE0, 0x03, 0xF0, 0x00, 0xF8, 0x00,
-    0x0C, 0x01, 0xE0, 0x00, 0x7F, 0x80, 0x0E, 0x1C, 0x00, 0xC0, 0xC0, 0x18,
-    0x06, 0x01, 0x80, 0x60, 0x18, 0x06, 0x01, 0x80, 0x60, 0x0C, 0x0E, 0x00,
-    0xE1, 0xC0, 0x07, 0xF8, 0x00, 0x1E, 0x00, 0x03, 0xEC, 0x01, 0xFF, 0x00,
-    0xE1, 0x00, 0x70, 0x00, 0x18, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0x30,
-    0x00, 0x0C, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x7C, 0x00, 0x3B, 0x83,
-    0xD8, 0x60, 0xFE, 0x0C, 0x33, 0x03, 0x98, 0xC0, 0x66, 0x30, 0x0D, 0x8C,
-    0x03, 0xC3, 0x00, 0x70, 0x60, 0x1C, 0x1C, 0x0F, 0x03, 0x87, 0x7C, 0x7F,
-    0x9F, 0x07, 0x80, 0x00, 0xFE, 0xF9, 0xF3, 0xE7, 0xCF, 0x9F, 0x3E, 0x3C,
-    0x70, 0xE1, 0xC3, 0x87, 0x00, 0x06, 0x1C, 0x30, 0xE1, 0x87, 0x0E, 0x18,
-    0x70, 0xE1, 0xC3, 0x0E, 0x1C, 0x38, 0x70, 0xE1, 0xC3, 0x87, 0x0E, 0x0C,
-    0x1C, 0x38, 0x70, 0x60, 0xE1, 0xC1, 0x83, 0x83, 0x06, 0x06, 0x04, 0xC1,
-    0xC1, 0x83, 0x83, 0x07, 0x0E, 0x0C, 0x1C, 0x38, 0x70, 0xE0, 0xE1, 0xC3,
-    0x87, 0x0E, 0x1C, 0x38, 0x70, 0xE1, 0x87, 0x0E, 0x1C, 0x30, 0x61, 0xC3,
-    0x0E, 0x18, 0x70, 0xC1, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00,
-    0x03, 0x00, 0x00, 0xC0, 0x10, 0x30, 0x3F, 0x8C, 0x7C, 0xFF, 0xFC, 0x07,
-    0xF8, 0x00, 0x78, 0x00, 0x1F, 0x00, 0x0C, 0xC0, 0x06, 0x18, 0x03, 0x87,
-    0x00, 0xC0, 0xC0, 0x60, 0x18, 0x00, 0x60, 0x00, 0x06, 0x00, 0x00, 0x60,
-    0x00, 0x06, 0x00, 0x00, 0x60, 0x00, 0x06, 0x00, 0x00, 0x60, 0x00, 0x06,
-    0x00, 0x00, 0x60, 0x00, 0x06, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
-    0x60, 0x00, 0x06, 0x00, 0x00, 0x60, 0x00, 0x06, 0x00, 0x00, 0x60, 0x00,
-    0x06, 0x00, 0x00, 0x60, 0x00, 0x06, 0x00, 0x00, 0x60, 0x00, 0x06, 0x00,
-    0x1F, 0x8F, 0x87, 0xC7, 0xC3, 0xE1, 0xE1, 0xF0, 0xF0, 0x78, 0x38, 0x3C,
-    0x1C, 0x0E, 0x06, 0x00, 0x7F, 0xFF, 0xFD, 0xFF, 0xFF, 0xF0, 0x7D, 0xFF,
-    0xFF, 0xFF, 0xEF, 0x80, 0x00, 0x00, 0xC0, 0x00, 0x70, 0x00, 0x18, 0x00,
-    0x06, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x18, 0x00, 0x0C,
-    0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x30, 0x00, 0x0C, 0x00,
-    0x06, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x18, 0x00, 0x06,
-    0x00, 0x03, 0x80, 0x00, 0xC0, 0x00, 0x70, 0x00, 0x18, 0x00, 0x0E, 0x00,
-    0x03, 0x00, 0x01, 0xC0, 0x00, 0x60, 0x00, 0x38, 0x00, 0x0C, 0x00, 0x07,
-    0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x00, 0x03,
-    0xF0, 0x03, 0xFF, 0x01, 0xE1, 0xE0, 0xE0, 0x18, 0x30, 0x03, 0x1C, 0x00,
-    0xE6, 0x00, 0x19, 0x80, 0x06, 0xE0, 0x01, 0xF0, 0x00, 0x3C, 0x00, 0x0F,
-    0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0,
-    0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF8, 0x00,
-    0x76, 0x00, 0x19, 0x80, 0x06, 0x70, 0x03, 0x8C, 0x00, 0xC3, 0x80, 0x60,
-    0x78, 0x78, 0x0F, 0xFC, 0x00, 0xFC, 0x00, 0x03, 0x80, 0x07, 0x80, 0x0F,
-    0x80, 0x1D, 0x80, 0x39, 0x80, 0x71, 0x80, 0xE1, 0x80, 0xC1, 0x80, 0x01,
-    0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
-    0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
-    0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
-    0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xF0, 0x03, 0xFF, 0x01, 0xC0, 0xE0,
-    0xC0, 0x1C, 0x60, 0x03, 0xB8, 0x00, 0x6C, 0x00, 0x0F, 0x00, 0x03, 0x00,
-    0x00, 0xC0, 0x00, 0x30, 0x00, 0x18, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01,
-    0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0C, 0x00,
-    0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30,
-    0x00, 0xD0, 0x00, 0x38, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03,
-    0xF8, 0x01, 0xFF, 0xC0, 0x70, 0x3C, 0x18, 0x01, 0xC6, 0x00, 0x18, 0x00,
-    0x01, 0x80, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00, 0xC0, 0x00, 0x18, 0x00,
-    0x06, 0x00, 0x01, 0xC0, 0x00, 0x70, 0x01, 0xFC, 0x00, 0x3F, 0x00, 0x00,
-    0x78, 0x00, 0x03, 0x80, 0x00, 0x38, 0x00, 0x03, 0x00, 0x00, 0x30, 0x00,
-    0x06, 0x00, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x03, 0x00, 0x00, 0xD8, 0x00,
-    0x3B, 0x80, 0x0E, 0x3E, 0x07, 0x81, 0xFF, 0xE0, 0x07, 0xE0, 0x00, 0x00,
-    0x3C, 0x00, 0x7C, 0x00, 0x6C, 0x00, 0xCC, 0x00, 0x8C, 0x01, 0x8C, 0x03,
-    0x0C, 0x03, 0x0C, 0x06, 0x0C, 0x04, 0x0C, 0x0C, 0x0C, 0x08, 0x0C, 0x10,
-    0x0C, 0x30, 0x0C, 0x20, 0x0C, 0x60, 0x0C, 0x40, 0x0C, 0x80, 0x0C, 0xFF,
-    0xFF, 0xFF, 0xFF, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00,
-    0x0C, 0x00, 0x0C, 0x00, 0xFF, 0x00, 0xFF, 0x3F, 0xFF, 0x07, 0xFF, 0xE0,
-    0xC0, 0x00, 0x18, 0x00, 0x03, 0x00, 0x00, 0x60, 0x00, 0x0C, 0x00, 0x01,
-    0x80, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00, 0xC7, 0xE0, 0x1F, 0xFF, 0x03,
-    0x80, 0x70, 0x00, 0x03, 0x00, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00, 0x60,
-    0x00, 0x0C, 0x00, 0x01, 0x80, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00, 0xC0,
-    0x00, 0x30, 0x00, 0x06, 0xC0, 0x01, 0xDC, 0x00, 0x71, 0xF0, 0x3C, 0x0F,
-    0xFF, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x80, 0x3F, 0xF0, 0x3E, 0x00, 0x1E,
-    0x00, 0x0E, 0x00, 0x07, 0x00, 0x03, 0x80, 0x00, 0xC0, 0x00, 0x70, 0x00,
-    0x18, 0x00, 0x06, 0x00, 0x03, 0x80, 0x00, 0xC1, 0xF8, 0x31, 0xFF, 0x0C,
-    0xF0, 0xF3, 0x70, 0x0C, 0xD8, 0x01, 0xBC, 0x00, 0x6E, 0x00, 0x0F, 0x80,
-    0x03, 0xC0, 0x00, 0xD8, 0x00, 0x36, 0x00, 0x0D, 0x80, 0x03, 0x30, 0x01,
-    0x8E, 0x00, 0x61, 0xC0, 0x30, 0x38, 0x38, 0x07, 0xFC, 0x00, 0x7C, 0x00,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x01, 0xC0,
-    0x00, 0x60, 0x00, 0x18, 0x00, 0x0E, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00,
-    0x30, 0x00, 0x18, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x30,
-    0x00, 0x0C, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x30, 0x00,
-    0x0C, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x18, 0x00, 0x0C,
-    0x00, 0x03, 0x00, 0x03, 0xF0, 0x03, 0xFF, 0x03, 0xC0, 0xF1, 0xC0, 0x0E,
-    0x60, 0x01, 0xB8, 0x00, 0x7C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0,
-    0x00, 0x36, 0x00, 0x18, 0xC0, 0x0C, 0x1C, 0x0E, 0x03, 0xFF, 0x00, 0xFF,
-    0xC0, 0x70, 0x38, 0x30, 0x03, 0x18, 0x00, 0x66, 0x00, 0x1B, 0x00, 0x03,
-    0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0x60, 0x01, 0x98,
-    0x00, 0xE3, 0x00, 0x70, 0x70, 0x38, 0x0F, 0xFC, 0x00, 0xFC, 0x00, 0x07,
-    0xE0, 0x03, 0xFE, 0x01, 0xC1, 0xC0, 0xC0, 0x38, 0x60, 0x07, 0x18, 0x00,
-    0xCC, 0x00, 0x1B, 0x00, 0x06, 0xC0, 0x01, 0xB0, 0x00, 0x3C, 0x00, 0x1F,
-    0x00, 0x07, 0x60, 0x03, 0xD8, 0x01, 0xB3, 0x00, 0xCC, 0xF0, 0xF3, 0x0F,
-    0xF8, 0xC1, 0xF8, 0x30, 0x00, 0x1C, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00,
-    0xE0, 0x00, 0x30, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x07, 0x80,
-    0x07, 0xC0, 0xFF, 0xC0, 0x1F, 0xC0, 0x00, 0x7D, 0xFF, 0xFF, 0xFF, 0xEF,
-    0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0xFF, 0xFF, 0xFF,
-    0xF7, 0xC0, 0x0F, 0x87, 0xF1, 0xFC, 0x7F, 0x1F, 0xC3, 0xE0, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF1, 0xF8, 0x7C, 0x3F, 0x0F,
-    0x83, 0xE0, 0xF0, 0x7C, 0x1E, 0x07, 0x81, 0xC0, 0xF0, 0x38, 0x04, 0x00,
-    0x00, 0x00, 0x18, 0x00, 0x01, 0xE0, 0x00, 0x1E, 0x00, 0x00, 0xE0, 0x00,
-    0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x00,
-    0x00, 0x78, 0x00, 0x07, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x1E, 0x00, 0x00,
-    0x1E, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x1E, 0x00, 0x00,
-    0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x38, 0x00, 0x00,
-    0x20, 0x7F, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF,
-    0xFF, 0x7F, 0xFF, 0xFF, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x0F, 0x00, 0x00,
-    0x1E, 0x00, 0x00, 0x38, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xE0, 0x00, 0x03,
-    0xC0, 0x00, 0x07, 0x80, 0x00, 0x0E, 0x00, 0x00, 0x3C, 0x00, 0x01, 0xE0,
-    0x00, 0x3C, 0x00, 0x07, 0x80, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x01, 0xE0,
-    0x00, 0x3C, 0x00, 0x07, 0x80, 0x00, 0xF0, 0x00, 0x0E, 0x00, 0x00, 0x60,
-    0x00, 0x00, 0x07, 0xF0, 0x1F, 0xFE, 0x3E, 0x07, 0x98, 0x00, 0xEC, 0x00,
-    0x36, 0x00, 0x0F, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x01, 0xC0,
-    0x00, 0xC0, 0x01, 0xC0, 0x03, 0xC0, 0x07, 0xC0, 0x07, 0x00, 0x03, 0x00,
-    0x01, 0x80, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x07, 0x80, 0x07, 0xE0, 0x03, 0xF0, 0x01, 0xF8, 0x00,
-    0x78, 0x00, 0x03, 0xF0, 0x03, 0xFF, 0x01, 0xE0, 0xE0, 0xE0, 0x1C, 0x30,
-    0x03, 0x1C, 0x00, 0x66, 0x00, 0x19, 0x80, 0x06, 0xC0, 0x01, 0xB0, 0x07,
-    0xEC, 0x07, 0xFB, 0x03, 0xC6, 0xC1, 0xC1, 0xB0, 0xE0, 0x6C, 0x30, 0x1B,
-    0x0C, 0x06, 0xC3, 0x01, 0xB0, 0xC0, 0x6C, 0x18, 0x1B, 0x07, 0x86, 0xC0,
-    0xFF, 0xF0, 0x0F, 0xFC, 0x00, 0x03, 0x00, 0x00, 0x60, 0x00, 0x18, 0x00,
-    0x07, 0x00, 0x00, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x80, 0xC0, 0xFF, 0xF0,
-    0x0F, 0xE0, 0x07, 0xFF, 0x00, 0x00, 0x7F, 0xF0, 0x00, 0x00, 0x1B, 0x00,
-    0x00, 0x01, 0x98, 0x00, 0x00, 0x11, 0x80, 0x00, 0x03, 0x0C, 0x00, 0x00,
-    0x30, 0xC0, 0x00, 0x06, 0x0C, 0x00, 0x00, 0x60, 0x60, 0x00, 0x06, 0x06,
-    0x00, 0x00, 0xC0, 0x30, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x80, 0x30, 0x00,
-    0x18, 0x01, 0x80, 0x01, 0x80, 0x18, 0x00, 0x3F, 0xFF, 0x80, 0x03, 0xFF,
-    0xFC, 0x00, 0x20, 0x00, 0xC0, 0x06, 0x00, 0x06, 0x00, 0x60, 0x00, 0x60,
-    0x0C, 0x00, 0x06, 0x00, 0xC0, 0x00, 0x30, 0x0C, 0x00, 0x03, 0x01, 0x80,
-    0x00, 0x18, 0x7F, 0xC0, 0x3F, 0xF7, 0xFC, 0x03, 0xFF, 0xFF, 0xFF, 0x03,
-    0xFF, 0xFF, 0x01, 0x80, 0x0E, 0x06, 0x00, 0x1C, 0x18, 0x00, 0x38, 0x60,
-    0x00, 0x61, 0x80, 0x01, 0x86, 0x00, 0x06, 0x18, 0x00, 0x38, 0x60, 0x01,
-    0xC1, 0x80, 0x1E, 0x07, 0xFF, 0xE0, 0x1F, 0xFF, 0xC0, 0x60, 0x03, 0xC1,
-    0x80, 0x03, 0x86, 0x00, 0x06, 0x18, 0x00, 0x1C, 0x60, 0x00, 0x31, 0x80,
-    0x00, 0xC6, 0x00, 0x03, 0x18, 0x00, 0x0C, 0x60, 0x00, 0x61, 0x80, 0x03,
-    0x86, 0x00, 0x1C, 0xFF, 0xFF, 0xE3, 0xFF, 0xFE, 0x00, 0x00, 0xFC, 0x00,
-    0x0F, 0xFE, 0x60, 0xF0, 0x3D, 0x87, 0x00, 0x3E, 0x38, 0x00, 0x38, 0xC0,
-    0x00, 0xE7, 0x00, 0x01, 0x98, 0x00, 0x06, 0x60, 0x00, 0x03, 0x00, 0x00,
-    0x0C, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x0C,
-    0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x00,
-    0x00, 0x18, 0x00, 0x00, 0x60, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00,
-    0xC7, 0x00, 0x06, 0x0E, 0x00, 0x70, 0x1E, 0x07, 0x80, 0x3F, 0xFC, 0x00,
-    0x1F, 0x80, 0xFF, 0xFE, 0x03, 0xFF, 0xFE, 0x03, 0x00, 0x3C, 0x0C, 0x00,
-    0x38, 0x30, 0x00, 0x70, 0xC0, 0x00, 0xC3, 0x00, 0x03, 0x8C, 0x00, 0x06,
-    0x30, 0x00, 0x1C, 0xC0, 0x00, 0x33, 0x00, 0x00, 0xCC, 0x00, 0x03, 0x30,
-    0x00, 0x0C, 0xC0, 0x00, 0x33, 0x00, 0x00, 0xCC, 0x00, 0x03, 0x30, 0x00,
-    0x0C, 0xC0, 0x00, 0x33, 0x00, 0x01, 0x8C, 0x00, 0x06, 0x30, 0x00, 0x30,
-    0xC0, 0x01, 0xC3, 0x00, 0x0E, 0x0C, 0x00, 0xF0, 0xFF, 0xFF, 0x83, 0xFF,
-    0xF8, 0x00, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xE1, 0x80, 0x01, 0x86, 0x00,
-    0x06, 0x18, 0x00, 0x18, 0x60, 0x00, 0x61, 0x80, 0x01, 0x86, 0x00, 0x00,
-    0x18, 0x0C, 0x00, 0x60, 0x30, 0x01, 0x80, 0xC0, 0x07, 0xFF, 0x00, 0x1F,
-    0xFC, 0x00, 0x60, 0x30, 0x01, 0x80, 0xC0, 0x06, 0x03, 0x00, 0x18, 0x00,
-    0x00, 0x60, 0x00, 0x01, 0x80, 0x00, 0xC6, 0x00, 0x03, 0x18, 0x00, 0x0C,
-    0x60, 0x00, 0x31, 0x80, 0x00, 0xC6, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0x80, 0x00, 0xC6, 0x00,
-    0x03, 0x18, 0x00, 0x0C, 0x60, 0x00, 0x31, 0x80, 0x00, 0xC6, 0x00, 0x00,
-    0x18, 0x0C, 0x00, 0x60, 0x30, 0x01, 0x80, 0xC0, 0x07, 0xFF, 0x00, 0x1F,
-    0xFC, 0x00, 0x60, 0x30, 0x01, 0x80, 0xC0, 0x06, 0x03, 0x00, 0x18, 0x00,
-    0x00, 0x60, 0x00, 0x01, 0x80, 0x00, 0x06, 0x00, 0x00, 0x18, 0x00, 0x00,
-    0x60, 0x00, 0x01, 0x80, 0x00, 0x06, 0x00, 0x00, 0xFF, 0xF0, 0x03, 0xFF,
-    0xC0, 0x00, 0x00, 0xFF, 0x00, 0x07, 0xFF, 0x98, 0x1E, 0x03, 0xF0, 0x70,
-    0x01, 0xE1, 0x80, 0x01, 0xC6, 0x00, 0x01, 0x9C, 0x00, 0x03, 0x30, 0x00,
-    0x00, 0x60, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x06, 0x00, 0x00,
-    0x0C, 0x00, 0x00, 0x18, 0x00, 0x00, 0x30, 0x00, 0x00, 0x60, 0x03, 0xFF,
-    0xC0, 0x07, 0xFF, 0x80, 0x00, 0x1B, 0x00, 0x00, 0x37, 0x00, 0x00, 0x66,
-    0x00, 0x00, 0xCC, 0x00, 0x01, 0x8C, 0x00, 0x03, 0x1C, 0x00, 0x06, 0x1E,
-    0x00, 0x0C, 0x0F, 0x00, 0xF8, 0x0F, 0xFF, 0xC0, 0x03, 0xFC, 0x00, 0x7F,
-    0x01, 0xFC, 0xFE, 0x03, 0xF8, 0x60, 0x00, 0xC0, 0xC0, 0x01, 0x81, 0x80,
-    0x03, 0x03, 0x00, 0x06, 0x06, 0x00, 0x0C, 0x0C, 0x00, 0x18, 0x18, 0x00,
-    0x30, 0x30, 0x00, 0x60, 0x60, 0x00, 0xC0, 0xFF, 0xFF, 0x81, 0xFF, 0xFF,
-    0x03, 0x00, 0x06, 0x06, 0x00, 0x0C, 0x0C, 0x00, 0x18, 0x18, 0x00, 0x30,
-    0x30, 0x00, 0x60, 0x60, 0x00, 0xC0, 0xC0, 0x01, 0x81, 0x80, 0x03, 0x03,
-    0x00, 0x06, 0x06, 0x00, 0x0C, 0x0C, 0x00, 0x18, 0xFF, 0x01, 0xFF, 0xFE,
-    0x03, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80,
-    0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80,
-    0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80,
-    0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80,
-    0x01, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFE, 0x01, 0xFF, 0xFC,
-    0x00, 0x03, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x18, 0x00,
-    0x00, 0x30, 0x00, 0x00, 0x60, 0x00, 0x00, 0xC0, 0x00, 0x01, 0x80, 0x00,
-    0x03, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x18, 0x00, 0x00,
-    0x30, 0x60, 0x00, 0x60, 0xC0, 0x00, 0xC1, 0x80, 0x01, 0x83, 0x00, 0x03,
-    0x06, 0x00, 0x06, 0x0C, 0x00, 0x0C, 0x18, 0x00, 0x30, 0x38, 0x00, 0x60,
-    0x38, 0x01, 0x80, 0x3C, 0x0E, 0x00, 0x3F, 0xF8, 0x00, 0x0F, 0xC0, 0x00,
-    0xFF, 0x81, 0xFE, 0xFF, 0x81, 0xFE, 0x18, 0x00, 0x30, 0x18, 0x00, 0xE0,
-    0x18, 0x01, 0xC0, 0x18, 0x03, 0x80, 0x18, 0x07, 0x00, 0x18, 0x0E, 0x00,
-    0x18, 0x18, 0x00, 0x18, 0x70, 0x00, 0x18, 0xE0, 0x00, 0x19, 0xE0, 0x00,
-    0x1B, 0xF8, 0x00, 0x1F, 0x1C, 0x00, 0x1C, 0x06, 0x00, 0x18, 0x03, 0x00,
-    0x18, 0x03, 0x80, 0x18, 0x01, 0x80, 0x18, 0x00, 0xC0, 0x18, 0x00, 0xC0,
-    0x18, 0x00, 0x60, 0x18, 0x00, 0x60, 0x18, 0x00, 0x70, 0x18, 0x00, 0x30,
-    0xFF, 0x80, 0x3F, 0xFF, 0x80, 0x1F, 0xFF, 0xF0, 0x07, 0xFF, 0x80, 0x01,
-    0x80, 0x00, 0x0C, 0x00, 0x00, 0x60, 0x00, 0x03, 0x00, 0x00, 0x18, 0x00,
-    0x00, 0xC0, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x01, 0x80, 0x00, 0x0C,
-    0x00, 0x00, 0x60, 0x00, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0xC0, 0x00,
-    0x06, 0x00, 0x18, 0x30, 0x00, 0xC1, 0x80, 0x06, 0x0C, 0x00, 0x30, 0x60,
-    0x01, 0x83, 0x00, 0x0C, 0x18, 0x00, 0x60, 0xC0, 0x03, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xC0, 0xFC, 0x00, 0x0F, 0xFF, 0x00, 0x03, 0xF3, 0x60, 0x01,
-    0xB0, 0xD8, 0x00, 0x6C, 0x33, 0x00, 0x33, 0x0C, 0xC0, 0x0C, 0xC3, 0x38,
-    0x07, 0x30, 0xC6, 0x01, 0x8C, 0x31, 0xC0, 0xE3, 0x0C, 0x30, 0x30, 0xC3,
-    0x0C, 0x0C, 0x30, 0xC1, 0x86, 0x0C, 0x30, 0x61, 0x83, 0x0C, 0x0C, 0xC0,
-    0xC3, 0x03, 0x30, 0x30, 0xC0, 0x78, 0x0C, 0x30, 0x1E, 0x03, 0x0C, 0x03,
-    0x00, 0xC3, 0x00, 0x00, 0x30, 0xC0, 0x00, 0x0C, 0x30, 0x00, 0x03, 0x0C,
-    0x00, 0x00, 0xC3, 0x00, 0x00, 0x30, 0xC0, 0x00, 0x0C, 0xFF, 0x00, 0x3F,
-    0xFF, 0xC0, 0x0F, 0xF0, 0xFC, 0x00, 0xFF, 0xFC, 0x00, 0xFF, 0x1E, 0x00,
-    0x0C, 0x1F, 0x00, 0x0C, 0x1B, 0x00, 0x0C, 0x19, 0x80, 0x0C, 0x19, 0xC0,
-    0x0C, 0x18, 0xC0, 0x0C, 0x18, 0x60, 0x0C, 0x18, 0x60, 0x0C, 0x18, 0x30,
-    0x0C, 0x18, 0x38, 0x0C, 0x18, 0x18, 0x0C, 0x18, 0x0C, 0x0C, 0x18, 0x0E,
-    0x0C, 0x18, 0x06, 0x0C, 0x18, 0x03, 0x0C, 0x18, 0x03, 0x0C, 0x18, 0x01,
-    0x8C, 0x18, 0x01, 0xCC, 0x18, 0x00, 0xCC, 0x18, 0x00, 0x6C, 0x18, 0x00,
-    0x7C, 0x18, 0x00, 0x3C, 0x7F, 0x80, 0x1C, 0x7F, 0x80, 0x1C, 0x00, 0x7E,
-    0x00, 0x01, 0xFF, 0xC0, 0x07, 0x81, 0xE0, 0x0E, 0x00, 0x70, 0x1C, 0x00,
-    0x38, 0x38, 0x00, 0x1C, 0x30, 0x00, 0x0C, 0x70, 0x00, 0x0E, 0x60, 0x00,
-    0x06, 0x60, 0x00, 0x06, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00,
-    0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00,
-    0x03, 0xC0, 0x00, 0x03, 0x60, 0x00, 0x06, 0x60, 0x00, 0x06, 0x70, 0x00,
-    0x0E, 0x30, 0x00, 0x0C, 0x38, 0x00, 0x1C, 0x1C, 0x00, 0x38, 0x0E, 0x00,
-    0x70, 0x07, 0x81, 0xE0, 0x03, 0xFF, 0xC0, 0x00, 0x7E, 0x00, 0xFF, 0xFF,
-    0x07, 0xFF, 0xFE, 0x06, 0x00, 0x78, 0x30, 0x00, 0xE1, 0x80, 0x03, 0x0C,
-    0x00, 0x0C, 0x60, 0x00, 0x63, 0x00, 0x03, 0x18, 0x00, 0x18, 0xC0, 0x01,
-    0xC6, 0x00, 0x0C, 0x30, 0x00, 0xC1, 0x80, 0x1E, 0x0F, 0xFF, 0xC0, 0x7F,
-    0xF8, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0xC0, 0x00, 0x06, 0x00, 0x00,
-    0x30, 0x00, 0x01, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x60, 0x00, 0x03, 0x00,
-    0x00, 0xFF, 0xF0, 0x07, 0xFF, 0x80, 0x00, 0x00, 0x7E, 0x00, 0x01, 0xFF,
-    0x80, 0x07, 0x81, 0xE0, 0x0E, 0x00, 0x70, 0x1C, 0x00, 0x38, 0x38, 0x00,
-    0x1C, 0x30, 0x00, 0x0C, 0x70, 0x00, 0x0E, 0x60, 0x00, 0x06, 0x60, 0x00,
-    0x06, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00,
-    0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00,
-    0x03, 0x60, 0x00, 0x06, 0x60, 0x00, 0x06, 0x70, 0x00, 0x0E, 0x30, 0x00,
-    0x0C, 0x18, 0x00, 0x1C, 0x0C, 0x00, 0x38, 0x06, 0x00, 0x70, 0x03, 0x81,
-    0xE0, 0x00, 0xFF, 0xC0, 0x00, 0x7E, 0x00, 0x00, 0xE0, 0x00, 0x03, 0xFF,
-    0x87, 0x07, 0xFF, 0xFE, 0x07, 0x00, 0xF8, 0xFF, 0xFE, 0x00, 0xFF, 0xFF,
-    0x80, 0x18, 0x03, 0xC0, 0x18, 0x00, 0xE0, 0x18, 0x00, 0x60, 0x18, 0x00,
-    0x30, 0x18, 0x00, 0x30, 0x18, 0x00, 0x30, 0x18, 0x00, 0x30, 0x18, 0x00,
-    0x70, 0x18, 0x00, 0x60, 0x18, 0x01, 0xC0, 0x18, 0x07, 0x80, 0x1F, 0xFF,
-    0x00, 0x1F, 0xFC, 0x00, 0x18, 0x0E, 0x00, 0x18, 0x07, 0x00, 0x18, 0x03,
-    0x80, 0x18, 0x01, 0xC0, 0x18, 0x00, 0xE0, 0x18, 0x00, 0x60, 0x18, 0x00,
-    0x30, 0x18, 0x00, 0x30, 0x18, 0x00, 0x18, 0xFF, 0x80, 0x1F, 0xFF, 0x80,
-    0x0F, 0x03, 0xF8, 0x00, 0xFF, 0xE6, 0x1E, 0x07, 0xE3, 0x80, 0x1E, 0x30,
-    0x00, 0xE6, 0x00, 0x06, 0x60, 0x00, 0x66, 0x00, 0x06, 0x60, 0x00, 0x07,
-    0x00, 0x00, 0x30, 0x00, 0x01, 0xC0, 0x00, 0x0F, 0xC0, 0x00, 0x3F, 0xC0,
-    0x00, 0x3F, 0x80, 0x00, 0x1C, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x00, 0x00,
-    0x30, 0x00, 0x03, 0xC0, 0x00, 0x3C, 0x00, 0x03, 0xE0, 0x00, 0x7E, 0x00,
-    0x06, 0xF8, 0x01, 0xED, 0xE0, 0x7C, 0xCF, 0xFF, 0x00, 0x3F, 0xC0, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x03, 0x00, 0xF0, 0x0C, 0x03, 0xC0, 0x30,
-    0x0F, 0x00, 0xC0, 0x3C, 0x03, 0x00, 0xC0, 0x0C, 0x00, 0x00, 0x30, 0x00,
-    0x00, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x00, 0x00,
-    0xC0, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0,
-    0x00, 0x03, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00,
-    0x03, 0x00, 0x00, 0x0C, 0x00, 0x0F, 0xFF, 0xC0, 0x3F, 0xFF, 0x00, 0xFF,
-    0x01, 0xFF, 0xFE, 0x03, 0xFC, 0xC0, 0x00, 0x61, 0x80, 0x00, 0xC3, 0x00,
-    0x01, 0x86, 0x00, 0x03, 0x0C, 0x00, 0x06, 0x18, 0x00, 0x0C, 0x30, 0x00,
-    0x18, 0x60, 0x00, 0x30, 0xC0, 0x00, 0x61, 0x80, 0x00, 0xC3, 0x00, 0x01,
-    0x86, 0x00, 0x03, 0x0C, 0x00, 0x06, 0x18, 0x00, 0x0C, 0x30, 0x00, 0x18,
-    0x60, 0x00, 0x30, 0xC0, 0x00, 0x61, 0x80, 0x00, 0xC3, 0x80, 0x03, 0x83,
-    0x00, 0x06, 0x07, 0x00, 0x1C, 0x07, 0x00, 0x70, 0x07, 0x83, 0xC0, 0x07,
-    0xFF, 0x00, 0x03, 0xF8, 0x00, 0x7F, 0xC0, 0x3F, 0xF7, 0xFC, 0x03, 0xFF,
-    0x18, 0x00, 0x01, 0x80, 0xC0, 0x00, 0x30, 0x0C, 0x00, 0x03, 0x00, 0x60,
-    0x00, 0x30, 0x06, 0x00, 0x06, 0x00, 0x60, 0x00, 0x60, 0x03, 0x00, 0x0C,
-    0x00, 0x30, 0x00, 0xC0, 0x03, 0x80, 0x0C, 0x00, 0x18, 0x01, 0x80, 0x01,
-    0x80, 0x18, 0x00, 0x0C, 0x03, 0x00, 0x00, 0xC0, 0x30, 0x00, 0x0E, 0x03,
-    0x00, 0x00, 0x60, 0x60, 0x00, 0x06, 0x06, 0x00, 0x00, 0x30, 0xC0, 0x00,
-    0x03, 0x0C, 0x00, 0x00, 0x30, 0x80, 0x00, 0x01, 0x98, 0x00, 0x00, 0x19,
-    0x80, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xE0, 0x00,
-    0xFF, 0x80, 0x7F, 0xFF, 0xE0, 0x1F, 0xF3, 0x00, 0x00, 0x30, 0xC0, 0x00,
-    0x0C, 0x30, 0x00, 0x03, 0x0C, 0x03, 0x80, 0xC3, 0x01, 0xE0, 0x30, 0x60,
-    0x78, 0x0C, 0x18, 0x1F, 0x02, 0x06, 0x04, 0xC0, 0x81, 0x83, 0x30, 0x60,
-    0x60, 0xCC, 0x18, 0x18, 0x31, 0x86, 0x06, 0x18, 0x61, 0x81, 0x86, 0x18,
-    0x60, 0x71, 0x87, 0x18, 0x0C, 0x40, 0xC6, 0x03, 0x30, 0x31, 0x00, 0xCC,
-    0x0C, 0xC0, 0x33, 0x01, 0xB0, 0x0D, 0x80, 0x6C, 0x03, 0x60, 0x1B, 0x00,
-    0xD8, 0x06, 0xC0, 0x34, 0x00, 0xF0, 0x07, 0x00, 0x3C, 0x01, 0xC0, 0x0E,
-    0x00, 0x7F, 0x00, 0xFF, 0x7F, 0x00, 0xFF, 0x18, 0x00, 0x18, 0x0C, 0x00,
-    0x38, 0x0E, 0x00, 0x70, 0x07, 0x00, 0x60, 0x03, 0x00, 0xC0, 0x01, 0x81,
-    0x80, 0x01, 0xC3, 0x80, 0x00, 0xE7, 0x00, 0x00, 0x76, 0x00, 0x00, 0x3C,
-    0x00, 0x00, 0x18, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x66,
-    0x00, 0x00, 0xC3, 0x00, 0x01, 0x81, 0x80, 0x03, 0x81, 0xC0, 0x07, 0x00,
-    0xE0, 0x06, 0x00, 0x60, 0x0C, 0x00, 0x30, 0x18, 0x00, 0x18, 0x38, 0x00,
-    0x1C, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00,
-    0xFF, 0x18, 0x00, 0x18, 0x0C, 0x00, 0x30, 0x0E, 0x00, 0x70, 0x06, 0x00,
-    0x60, 0x03, 0x00, 0xC0, 0x03, 0x81, 0xC0, 0x01, 0x81, 0x80, 0x00, 0xC3,
-    0x00, 0x00, 0xE7, 0x00, 0x00, 0x66, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3C,
-    0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18,
-    0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18,
-    0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x07, 0xFF, 0xE0, 0x07, 0xFF,
-    0xE0, 0x7F, 0xFF, 0x9F, 0xFF, 0xE6, 0x00, 0x19, 0x80, 0x0C, 0x60, 0x07,
-    0x18, 0x03, 0x86, 0x00, 0xC1, 0x80, 0x70, 0x00, 0x38, 0x00, 0x0C, 0x00,
-    0x07, 0x00, 0x03, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x38, 0x00, 0x1C,
-    0x00, 0x06, 0x00, 0x03, 0x80, 0x31, 0xC0, 0x0C, 0x60, 0x03, 0x30, 0x00,
-    0xDC, 0x00, 0x3E, 0x00, 0x0F, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0,
-    0xFF, 0xFF, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x18,
-    0x30, 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x06,
-    0x0C, 0x18, 0x30, 0x60, 0xFF, 0xFC, 0xC0, 0x00, 0x30, 0x00, 0x06, 0x00,
-    0x01, 0x80, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00,
-    0x0C, 0x00, 0x03, 0x00, 0x00, 0x60, 0x00, 0x18, 0x00, 0x03, 0x00, 0x00,
-    0xC0, 0x00, 0x18, 0x00, 0x06, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x06,
-    0x00, 0x01, 0x80, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x80, 0x00, 0x60,
-    0x00, 0x1C, 0x00, 0x03, 0x00, 0x00, 0xE0, 0x00, 0x18, 0x00, 0x07, 0x00,
-    0x00, 0xC0, 0x00, 0x30, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0x30, 0x00,
-    0x0C, 0xFF, 0xFC, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x30,
-    0x60, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x06, 0x0C,
-    0x18, 0x30, 0x60, 0xC1, 0x83, 0xFF, 0xFC, 0x00, 0x40, 0x00, 0x30, 0x00,
-    0x1E, 0x00, 0x0E, 0xC0, 0x07, 0x38, 0x01, 0x87, 0x00, 0xC0, 0xC0, 0x60,
-    0x18, 0x38, 0x03, 0x1C, 0x00, 0xE6, 0x00, 0x1F, 0x00, 0x03, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xE0, 0x70, 0x3C, 0x0E, 0x07, 0x03,
-    0x01, 0xFC, 0x00, 0x7F, 0xFC, 0x01, 0xC0, 0x3C, 0x00, 0x00, 0x30, 0x00,
-    0x00, 0x60, 0x00, 0x01, 0x80, 0x00, 0x06, 0x00, 0x00, 0x18, 0x00, 0x00,
-    0x60, 0x0F, 0xF9, 0x81, 0xFF, 0xFE, 0x0F, 0x80, 0x38, 0x70, 0x00, 0x63,
-    0x80, 0x01, 0x8C, 0x00, 0x06, 0x30, 0x00, 0x18, 0xC0, 0x00, 0xE3, 0x00,
-    0x07, 0x86, 0x00, 0x76, 0x1E, 0x07, 0x9F, 0x3F, 0xF8, 0x7C, 0x3F, 0x80,
-    0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x60, 0x00, 0x00, 0xC0, 0x00,
-    0x01, 0x80, 0x00, 0x03, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0C, 0x1F, 0x80,
-    0x18, 0xFF, 0xC0, 0x33, 0x81, 0xC0, 0x6E, 0x01, 0xC0, 0xF0, 0x00, 0xC1,
-    0xE0, 0x01, 0xC3, 0x80, 0x01, 0x87, 0x00, 0x03, 0x8C, 0x00, 0x03, 0x18,
-    0x00, 0x06, 0x30, 0x00, 0x0C, 0x60, 0x00, 0x18, 0xC0, 0x00, 0x31, 0x80,
-    0x00, 0x63, 0x80, 0x01, 0x87, 0x00, 0x03, 0x0F, 0x00, 0x0E, 0x1F, 0x00,
-    0x38, 0x37, 0x00, 0xE3, 0xE7, 0x03, 0x87, 0xC7, 0xFE, 0x00, 0x03, 0xF0,
-    0x00, 0x01, 0xFC, 0x00, 0x3F, 0xF9, 0x83, 0xC0, 0xFC, 0x38, 0x01, 0xE3,
-    0x00, 0x07, 0x38, 0x00, 0x19, 0x80, 0x00, 0xDC, 0x00, 0x06, 0xC0, 0x00,
-    0x06, 0x00, 0x00, 0x30, 0x00, 0x01, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x60,
-    0x00, 0x03, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x70, 0x00, 0x01, 0x80, 0x00,
-    0xC7, 0x00, 0x1E, 0x1E, 0x03, 0xC0, 0x7F, 0xFC, 0x00, 0xFF, 0x00, 0x00,
-    0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00,
-    0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x01, 0xF8, 0x18, 0x07,
-    0xFE, 0x18, 0x0F, 0x07, 0x98, 0x1C, 0x01, 0xD8, 0x38, 0x00, 0xF8, 0x70,
-    0x00, 0x78, 0x60, 0x00, 0x38, 0xE0, 0x00, 0x38, 0xC0, 0x00, 0x18, 0xC0,
-    0x00, 0x18, 0xC0, 0x00, 0x18, 0xC0, 0x00, 0x18, 0xC0, 0x00, 0x18, 0xC0,
-    0x00, 0x18, 0x60, 0x00, 0x38, 0x60, 0x00, 0x38, 0x70, 0x00, 0x78, 0x38,
-    0x00, 0xD8, 0x1C, 0x01, 0xD8, 0x0F, 0x07, 0x9F, 0x07, 0xFE, 0x1F, 0x01,
-    0xF8, 0x00, 0x01, 0xFC, 0x00, 0x3F, 0xF8, 0x07, 0x80, 0xF0, 0x70, 0x01,
-    0xC3, 0x00, 0x07, 0x30, 0x00, 0x19, 0x80, 0x00, 0x78, 0x00, 0x03, 0xC0,
-    0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x0C, 0x00, 0x00,
-    0x60, 0x00, 0x01, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x00, 0x01, 0xC0,
-    0x00, 0xC7, 0x00, 0x0E, 0x1E, 0x03, 0xE0, 0x3F, 0xFC, 0x00, 0x7F, 0x00,
-    0x00, 0x7F, 0xC0, 0x3F, 0xFC, 0x0E, 0x00, 0x03, 0x80, 0x00, 0x60, 0x00,
-    0x0C, 0x00, 0x01, 0x80, 0x00, 0x30, 0x00, 0xFF, 0xFF, 0x9F, 0xFF, 0xF0,
-    0x18, 0x00, 0x03, 0x00, 0x00, 0x60, 0x00, 0x0C, 0x00, 0x01, 0x80, 0x00,
-    0x30, 0x00, 0x06, 0x00, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x03, 0x00, 0x00,
-    0x60, 0x00, 0x0C, 0x00, 0x01, 0x80, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00,
-    0xC0, 0x03, 0xFF, 0xFC, 0x7F, 0xFF, 0x80, 0x01, 0xF8, 0x00, 0x0F, 0xFC,
-    0x7C, 0x38, 0x1C, 0xF8, 0xE0, 0x0D, 0x83, 0x00, 0x0F, 0x0E, 0x00, 0x1E,
-    0x18, 0x00, 0x1C, 0x70, 0x00, 0x38, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x63,
-    0x00, 0x00, 0xC6, 0x00, 0x01, 0x8C, 0x00, 0x03, 0x18, 0x00, 0x06, 0x18,
-    0x00, 0x1C, 0x30, 0x00, 0x38, 0x30, 0x00, 0xF0, 0x70, 0x03, 0x60, 0x78,
-    0x1C, 0xC0, 0x3F, 0xF1, 0x80, 0x1F, 0x83, 0x00, 0x00, 0x06, 0x00, 0x00,
-    0x0C, 0x00, 0x00, 0x18, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x03,
-    0x80, 0x00, 0x0E, 0x00, 0x3F, 0xF8, 0x00, 0x7F, 0xC0, 0x00, 0xF8, 0x00,
-    0x01, 0xF0, 0x00, 0x00, 0x60, 0x00, 0x00, 0xC0, 0x00, 0x01, 0x80, 0x00,
-    0x03, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0C, 0x3F, 0x00, 0x18, 0xFF, 0x80,
-    0x37, 0x03, 0x80, 0x7C, 0x03, 0x80, 0xF0, 0x03, 0x81, 0xC0, 0x03, 0x03,
-    0x00, 0x06, 0x06, 0x00, 0x0C, 0x0C, 0x00, 0x18, 0x18, 0x00, 0x30, 0x30,
-    0x00, 0x60, 0x60, 0x00, 0xC0, 0xC0, 0x01, 0x81, 0x80, 0x03, 0x03, 0x00,
-    0x06, 0x06, 0x00, 0x0C, 0x0C, 0x00, 0x18, 0x18, 0x00, 0x30, 0x30, 0x00,
-    0x63, 0xFC, 0x07, 0xFF, 0xF8, 0x0F, 0xF0, 0x01, 0xC0, 0x00, 0x70, 0x00,
-    0x1C, 0x00, 0x07, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x0F, 0xF0, 0x03, 0xFC, 0x00, 0x03, 0x00, 0x00, 0xC0,
-    0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00,
-    0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03,
-    0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x03, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xC0, 0x00, 0x70, 0x01, 0xC0, 0x07, 0x00, 0x1C, 0x00, 0x70, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0x00, 0x0C,
-    0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03,
-    0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00,
-    0xC0, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00,
-    0x70, 0x03, 0x80, 0x1C, 0xFF, 0xE3, 0xFF, 0x00, 0xF8, 0x00, 0x03, 0xE0,
-    0x00, 0x01, 0x80, 0x00, 0x06, 0x00, 0x00, 0x18, 0x00, 0x00, 0x60, 0x00,
-    0x01, 0x80, 0x00, 0x06, 0x00, 0x00, 0x18, 0x1F, 0xE0, 0x60, 0x7F, 0x81,
-    0x80, 0x60, 0x06, 0x07, 0x00, 0x18, 0x38, 0x00, 0x61, 0xC0, 0x01, 0x8E,
-    0x00, 0x06, 0x70, 0x00, 0x1B, 0x80, 0x00, 0x7F, 0x00, 0x01, 0xCE, 0x00,
-    0x06, 0x1C, 0x00, 0x18, 0x38, 0x00, 0x60, 0x70, 0x01, 0x80, 0xE0, 0x06,
-    0x01, 0xC0, 0x18, 0x03, 0x80, 0x60, 0x07, 0x0F, 0x80, 0x7F, 0xFE, 0x01,
-    0xFF, 0x3F, 0xC0, 0x0F, 0xF0, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0,
-    0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00,
-    0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03,
-    0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0,
-    0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x0F,
-    0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xF0, 0x3C, 0x0F, 0x9F, 0x87, 0xE0, 0xFB,
-    0x1C, 0xC7, 0x01, 0xE0, 0xD8, 0x38, 0x1C, 0x07, 0x01, 0x81, 0x80, 0x60,
-    0x18, 0x18, 0x06, 0x01, 0x81, 0x80, 0x60, 0x18, 0x18, 0x06, 0x01, 0x81,
-    0x80, 0x60, 0x18, 0x18, 0x06, 0x01, 0x81, 0x80, 0x60, 0x18, 0x18, 0x06,
-    0x01, 0x81, 0x80, 0x60, 0x18, 0x18, 0x06, 0x01, 0x81, 0x80, 0x60, 0x18,
-    0x18, 0x06, 0x01, 0x81, 0x80, 0x60, 0x18, 0x18, 0x06, 0x01, 0x8F, 0xE0,
-    0x7C, 0x1F, 0xFE, 0x07, 0xC1, 0xF0, 0x00, 0x1F, 0x00, 0xF8, 0xFF, 0x81,
-    0xF3, 0x83, 0x80, 0x6C, 0x03, 0x80, 0xF0, 0x03, 0x81, 0xC0, 0x03, 0x03,
-    0x00, 0x06, 0x06, 0x00, 0x0C, 0x0C, 0x00, 0x18, 0x18, 0x00, 0x30, 0x30,
-    0x00, 0x60, 0x60, 0x00, 0xC0, 0xC0, 0x01, 0x81, 0x80, 0x03, 0x03, 0x00,
-    0x06, 0x06, 0x00, 0x0C, 0x0C, 0x00, 0x18, 0x18, 0x00, 0x30, 0x30, 0x00,
-    0x67, 0xFC, 0x03, 0xFF, 0xF8, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0xFE,
-    0x00, 0xF0, 0x3C, 0x07, 0x00, 0x38, 0x38, 0x00, 0x71, 0xC0, 0x00, 0xE6,
-    0x00, 0x01, 0x98, 0x00, 0x06, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00,
-    0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x36, 0x00, 0x01,
-    0x98, 0x00, 0x06, 0x70, 0x00, 0x38, 0xE0, 0x01, 0xC1, 0xC0, 0x0E, 0x03,
-    0xC0, 0xF0, 0x07, 0xFF, 0x80, 0x03, 0xF0, 0x00, 0x00, 0x3F, 0x01, 0xF1,
-    0xFF, 0x83, 0xE7, 0x03, 0x80, 0xD8, 0x01, 0x81, 0xE0, 0x01, 0x83, 0xC0,
-    0x03, 0x87, 0x00, 0x03, 0x0E, 0x00, 0x07, 0x18, 0x00, 0x06, 0x30, 0x00,
-    0x0C, 0x60, 0x00, 0x18, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x63, 0x00, 0x00,
-    0xC7, 0x00, 0x03, 0x0E, 0x00, 0x06, 0x1E, 0x00, 0x18, 0x36, 0x00, 0x70,
-    0x67, 0x03, 0xC0, 0xC7, 0xFE, 0x01, 0x83, 0xF0, 0x03, 0x00, 0x00, 0x06,
-    0x00, 0x00, 0x0C, 0x00, 0x00, 0x18, 0x00, 0x00, 0x30, 0x00, 0x00, 0x60,
-    0x00, 0x00, 0xC0, 0x00, 0x0F, 0xFC, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x01,
-    0xF8, 0x00, 0x07, 0xFF, 0x1F, 0x0F, 0x07, 0x9F, 0x1C, 0x01, 0xD8, 0x38,
-    0x00, 0x78, 0x70, 0x00, 0x78, 0x60, 0x00, 0x38, 0xE0, 0x00, 0x38, 0xC0,
-    0x00, 0x18, 0xC0, 0x00, 0x18, 0xC0, 0x00, 0x18, 0xC0, 0x00, 0x18, 0xC0,
-    0x00, 0x18, 0xC0, 0x00, 0x18, 0x60, 0x00, 0x38, 0x70, 0x00, 0x78, 0x30,
-    0x00, 0x78, 0x1C, 0x01, 0xD8, 0x0F, 0x07, 0x98, 0x07, 0xFF, 0x18, 0x01,
-    0xFC, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00,
-    0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00,
-    0x03, 0xFF, 0x00, 0x03, 0xFF, 0x7E, 0x03, 0xC3, 0xF0, 0x7F, 0x81, 0x8F,
-    0x0E, 0x0C, 0xE0, 0x00, 0x7E, 0x00, 0x03, 0xC0, 0x00, 0x1C, 0x00, 0x00,
-    0xC0, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x01, 0x80, 0x00, 0x0C, 0x00,
-    0x00, 0x60, 0x00, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0xC0, 0x00, 0x06,
-    0x00, 0x00, 0x30, 0x00, 0x3F, 0xFF, 0xC1, 0xFF, 0xFE, 0x00, 0x07, 0xF0,
-    0x07, 0xFF, 0x63, 0xC0, 0xF9, 0xC0, 0x0E, 0x60, 0x01, 0x98, 0x00, 0x66,
-    0x00, 0x19, 0xC0, 0x00, 0x38, 0x00, 0x07, 0xC0, 0x00, 0x7F, 0xC0, 0x00,
-    0x7C, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00,
-    0xF8, 0x00, 0x7F, 0x00, 0x3B, 0xF0, 0x3C, 0xDF, 0xFE, 0x00, 0xFE, 0x00,
-    0x0C, 0x00, 0x00, 0x60, 0x00, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0xC0,
-    0x00, 0x06, 0x00, 0x03, 0xFF, 0xFE, 0x1F, 0xFF, 0xF0, 0x0C, 0x00, 0x00,
-    0x60, 0x00, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0xC0, 0x00, 0x06, 0x00,
-    0x00, 0x30, 0x00, 0x01, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x60, 0x00, 0x03,
-    0x00, 0x00, 0x18, 0x00, 0x00, 0xC0, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00,
-    0x00, 0xC0, 0x07, 0x07, 0x01, 0xF0, 0x1F, 0xFF, 0x00, 0x3F, 0x80, 0xF8,
-    0x03, 0xF1, 0xF0, 0x07, 0xE0, 0x60, 0x00, 0xC0, 0xC0, 0x01, 0x81, 0x80,
-    0x03, 0x03, 0x00, 0x06, 0x06, 0x00, 0x0C, 0x0C, 0x00, 0x18, 0x18, 0x00,
-    0x30, 0x30, 0x00, 0x60, 0x60, 0x00, 0xC0, 0xC0, 0x01, 0x81, 0x80, 0x03,
-    0x03, 0x00, 0x06, 0x06, 0x00, 0x0C, 0x0C, 0x00, 0x38, 0x18, 0x00, 0xF0,
-    0x18, 0x03, 0x60, 0x38, 0x3C, 0xF8, 0x3F, 0xF1, 0xF0, 0x1F, 0x00, 0x00,
-    0x7F, 0xC0, 0xFF, 0xDF, 0xF0, 0x3F, 0xF0, 0xC0, 0x00, 0xC0, 0x30, 0x00,
-    0x30, 0x06, 0x00, 0x1C, 0x01, 0x80, 0x06, 0x00, 0x30, 0x01, 0x80, 0x0C,
-    0x00, 0xC0, 0x03, 0x80, 0x30, 0x00, 0x60, 0x18, 0x00, 0x18, 0x06, 0x00,
-    0x03, 0x03, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x18, 0x30, 0x00, 0x06, 0x18,
-    0x00, 0x00, 0xC6, 0x00, 0x00, 0x33, 0x00, 0x00, 0x0E, 0xC0, 0x00, 0x01,
-    0xE0, 0x00, 0x00, 0x78, 0x00, 0x7F, 0x00, 0x3F, 0xDF, 0xC0, 0x0F, 0xF1,
-    0x80, 0x00, 0x20, 0x60, 0x00, 0x18, 0x18, 0x00, 0x06, 0x06, 0x03, 0x01,
-    0x80, 0x81, 0xE0, 0x60, 0x30, 0x78, 0x10, 0x0C, 0x1E, 0x0C, 0x03, 0x0C,
-    0xC3, 0x00, 0xC3, 0x30, 0xC0, 0x10, 0xCC, 0x30, 0x06, 0x61, 0x98, 0x01,
-    0x98, 0x66, 0x00, 0x66, 0x19, 0x80, 0x0B, 0x03, 0x60, 0x03, 0xC0, 0xD0,
-    0x00, 0xF0, 0x1C, 0x00, 0x38, 0x07, 0x00, 0x0E, 0x01, 0xC0, 0x3F, 0x81,
-    0xFE, 0x3F, 0x81, 0xFE, 0x0C, 0x00, 0x38, 0x06, 0x00, 0x70, 0x03, 0x00,
-    0xE0, 0x01, 0x81, 0xC0, 0x00, 0xC3, 0x80, 0x00, 0x67, 0x00, 0x00, 0x3C,
-    0x00, 0x00, 0x18, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x67, 0x00, 0x00, 0xC3,
-    0x80, 0x01, 0x81, 0xC0, 0x03, 0x00, 0xE0, 0x06, 0x00, 0x70, 0x0C, 0x00,
-    0x38, 0x18, 0x00, 0x1C, 0x7F, 0x81, 0xFF, 0x7F, 0x81, 0xFF, 0x7F, 0x00,
-    0xFF, 0x7F, 0x00, 0xFF, 0x18, 0x00, 0x0C, 0x18, 0x00, 0x18, 0x0C, 0x00,
-    0x18, 0x0C, 0x00, 0x30, 0x06, 0x00, 0x30, 0x06, 0x00, 0x60, 0x03, 0x00,
-    0x60, 0x03, 0x00, 0xC0, 0x01, 0x80, 0xC0, 0x01, 0x81, 0x80, 0x00, 0xC1,
-    0x80, 0x00, 0xC3, 0x00, 0x00, 0x63, 0x00, 0x00, 0x66, 0x00, 0x00, 0x36,
-    0x00, 0x00, 0x34, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18,
-    0x00, 0x00, 0x18, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x60,
-    0x00, 0x00, 0x60, 0x00, 0x00, 0xC0, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xFC,
-    0x00, 0xFF, 0xFF, 0x7F, 0xFF, 0xB0, 0x01, 0x98, 0x01, 0xCC, 0x01, 0xC0,
-    0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xE0,
-    0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x03, 0x70,
-    0x01, 0xB0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0xE0, 0x7C, 0x0C,
-    0x03, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x03,
-    0x00, 0x60, 0x0C, 0x03, 0x00, 0xE0, 0xF0, 0x1E, 0x00, 0x70, 0x06, 0x00,
-    0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x60,
-    0x0C, 0x01, 0x80, 0x18, 0x03, 0xE0, 0x1C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xF0, 0xE0, 0x1F, 0x00, 0x60, 0x06, 0x00, 0xC0, 0x18,
-    0x03, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x01,
-    0x80, 0x38, 0x01, 0xE0, 0x3C, 0x1C, 0x03, 0x00, 0xC0, 0x18, 0x03, 0x00,
-    0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x03, 0x00, 0xC0,
-    0xF8, 0x1C, 0x00, 0x0F, 0x00, 0x03, 0xFC, 0x03, 0x70, 0xE0, 0x76, 0x07,
-    0x8E, 0xC0, 0x1F, 0xC0, 0x00, 0xF0};
-
-const GFXglyph FreeMono24pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 28, 0, 1},        // 0x20 ' '
-    {0, 5, 30, 28, 11, -28},    // 0x21 '!'
-    {19, 16, 14, 28, 6, -28},   // 0x22 '"'
-    {47, 19, 32, 28, 4, -29},   // 0x23 '#'
-    {123, 18, 33, 28, 5, -29},  // 0x24 '$'
-    {198, 20, 29, 28, 4, -27},  // 0x25 '%'
-    {271, 18, 25, 28, 5, -23},  // 0x26 '&'
-    {328, 7, 14, 28, 11, -28},  // 0x27 '''
-    {341, 7, 34, 28, 14, -27},  // 0x28 '('
-    {371, 7, 34, 28, 8, -27},   // 0x29 ')'
-    {401, 18, 16, 28, 5, -27},  // 0x2A '*'
-    {437, 20, 22, 28, 4, -23},  // 0x2B '+'
-    {492, 9, 14, 28, 6, -6},    // 0x2C ','
-    {508, 22, 2, 28, 3, -13},   // 0x2D '-'
-    {514, 7, 6, 28, 11, -4},    // 0x2E '.'
-    {520, 18, 35, 28, 5, -30},  // 0x2F '/'
-    {599, 18, 30, 28, 5, -28},  // 0x30 '0'
-    {667, 16, 29, 28, 6, -28},  // 0x31 '1'
-    {725, 18, 29, 28, 5, -28},  // 0x32 '2'
-    {791, 19, 30, 28, 5, -28},  // 0x33 '3'
-    {863, 16, 28, 28, 6, -27},  // 0x34 '4'
-    {919, 19, 29, 28, 5, -27},  // 0x35 '5'
-    {988, 18, 30, 28, 6, -28},  // 0x36 '6'
-    {1056, 18, 28, 28, 5, -27}, // 0x37 '7'
-    {1119, 18, 30, 28, 5, -28}, // 0x38 '8'
-    {1187, 18, 30, 28, 6, -28}, // 0x39 '9'
-    {1255, 7, 21, 28, 11, -19}, // 0x3A ':'
-    {1274, 10, 27, 28, 7, -19}, // 0x3B ';'
-    {1308, 22, 22, 28, 3, -23}, // 0x3C '<'
-    {1369, 24, 9, 28, 2, -17},  // 0x3D '='
-    {1396, 21, 22, 28, 4, -23}, // 0x3E '>'
-    {1454, 17, 28, 28, 6, -26}, // 0x3F '?'
-    {1514, 18, 32, 28, 5, -28}, // 0x40 '@'
-    {1586, 28, 26, 28, 0, -25}, // 0x41 'A'
-    {1677, 22, 26, 28, 3, -25}, // 0x42 'B'
-    {1749, 22, 28, 28, 3, -26}, // 0x43 'C'
-    {1826, 22, 26, 28, 3, -25}, // 0x44 'D'
-    {1898, 22, 26, 28, 3, -25}, // 0x45 'E'
-    {1970, 22, 26, 28, 3, -25}, // 0x46 'F'
-    {2042, 23, 28, 28, 3, -26}, // 0x47 'G'
-    {2123, 23, 26, 28, 3, -25}, // 0x48 'H'
-    {2198, 16, 26, 28, 6, -25}, // 0x49 'I'
-    {2250, 23, 27, 28, 4, -25}, // 0x4A 'J'
-    {2328, 24, 26, 28, 3, -25}, // 0x4B 'K'
-    {2406, 21, 26, 28, 4, -25}, // 0x4C 'L'
-    {2475, 26, 26, 28, 1, -25}, // 0x4D 'M'
-    {2560, 24, 26, 28, 2, -25}, // 0x4E 'N'
-    {2638, 24, 28, 28, 2, -26}, // 0x4F 'O'
-    {2722, 21, 26, 28, 3, -25}, // 0x50 'P'
-    {2791, 24, 32, 28, 2, -26}, // 0x51 'Q'
-    {2887, 24, 26, 28, 3, -25}, // 0x52 'R'
-    {2965, 20, 28, 28, 4, -26}, // 0x53 'S'
-    {3035, 22, 26, 28, 3, -25}, // 0x54 'T'
-    {3107, 23, 27, 28, 3, -25}, // 0x55 'U'
-    {3185, 28, 26, 28, 0, -25}, // 0x56 'V'
-    {3276, 26, 26, 28, 1, -25}, // 0x57 'W'
-    {3361, 24, 26, 28, 2, -25}, // 0x58 'X'
-    {3439, 24, 26, 28, 2, -25}, // 0x59 'Y'
-    {3517, 18, 26, 28, 5, -25}, // 0x5A 'Z'
-    {3576, 7, 34, 28, 13, -27}, // 0x5B '['
-    {3606, 18, 35, 28, 5, -30}, // 0x5C '\'
-    {3685, 7, 34, 28, 8, -27},  // 0x5D ']'
-    {3715, 18, 12, 28, 5, -28}, // 0x5E '^'
-    {3742, 28, 2, 28, 0, 5},    // 0x5F '_'
-    {3749, 8, 7, 28, 7, -29},   // 0x60 '`'
-    {3756, 22, 22, 28, 3, -20}, // 0x61 'a'
-    {3817, 23, 29, 28, 2, -27}, // 0x62 'b'
-    {3901, 21, 22, 28, 4, -20}, // 0x63 'c'
-    {3959, 24, 29, 28, 3, -27}, // 0x64 'd'
-    {4046, 21, 22, 28, 3, -20}, // 0x65 'e'
-    {4104, 19, 28, 28, 6, -27}, // 0x66 'f'
-    {4171, 23, 30, 28, 3, -20}, // 0x67 'g'
-    {4258, 23, 28, 28, 3, -27}, // 0x68 'h'
-    {4339, 18, 29, 28, 5, -28}, // 0x69 'i'
-    {4405, 14, 38, 28, 6, -28}, // 0x6A 'j'
-    {4472, 22, 28, 28, 4, -27}, // 0x6B 'k'
-    {4549, 18, 28, 28, 5, -27}, // 0x6C 'l'
-    {4612, 28, 21, 28, 0, -20}, // 0x6D 'm'
-    {4686, 23, 21, 28, 2, -20}, // 0x6E 'n'
-    {4747, 22, 22, 28, 3, -20}, // 0x6F 'o'
-    {4808, 23, 30, 28, 2, -20}, // 0x70 'p'
-    {4895, 24, 30, 28, 3, -20}, // 0x71 'q'
-    {4985, 21, 20, 28, 5, -19}, // 0x72 'r'
-    {5038, 18, 22, 28, 5, -20}, // 0x73 's'
-    {5088, 21, 27, 28, 3, -25}, // 0x74 't'
-    {5159, 23, 21, 28, 3, -19}, // 0x75 'u'
-    {5220, 26, 20, 28, 1, -19}, // 0x76 'v'
-    {5285, 26, 20, 28, 1, -19}, // 0x77 'w'
-    {5350, 24, 20, 28, 2, -19}, // 0x78 'x'
-    {5410, 24, 29, 28, 2, -19}, // 0x79 'y'
-    {5497, 17, 20, 28, 6, -19}, // 0x7A 'z'
-    {5540, 11, 34, 28, 8, -27}, // 0x7B '{'
-    {5587, 2, 34, 28, 13, -27}, // 0x7C '|'
-    {5596, 11, 34, 28, 9, -27}, // 0x7D '}'
-    {5643, 20, 6, 28, 4, -15}}; // 0x7E '~'
-
-const GFXfont FreeMono24pt7b PROGMEM = {(uint8_t *)FreeMono24pt7bBitmaps,
-                                        (GFXglyph *)FreeMono24pt7bGlyphs, 0x20,
-                                        0x7E, 47};
-
-// Approx. 6330 bytes

+ 0 - 175
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMono9pt7b.h

@@ -1,175 +0,0 @@
-const uint8_t FreeMono9pt7bBitmaps[] PROGMEM = {
-    0xAA, 0xA8, 0x0C, 0xED, 0x24, 0x92, 0x48, 0x24, 0x48, 0x91, 0x2F, 0xE4,
-    0x89, 0x7F, 0x28, 0x51, 0x22, 0x40, 0x08, 0x3E, 0x62, 0x40, 0x30, 0x0E,
-    0x01, 0x81, 0xC3, 0xBE, 0x08, 0x08, 0x71, 0x12, 0x23, 0x80, 0x23, 0xB8,
-    0x0E, 0x22, 0x44, 0x70, 0x38, 0x81, 0x02, 0x06, 0x1A, 0x65, 0x46, 0xC8,
-    0xEC, 0xE9, 0x24, 0x5A, 0xAA, 0xA9, 0x40, 0xA9, 0x55, 0x5A, 0x80, 0x10,
-    0x22, 0x4B, 0xE3, 0x05, 0x11, 0x00, 0x10, 0x20, 0x47, 0xF1, 0x02, 0x04,
-    0x00, 0x6B, 0x48, 0xFF, 0x00, 0xF0, 0x02, 0x08, 0x10, 0x60, 0x81, 0x04,
-    0x08, 0x20, 0x41, 0x02, 0x08, 0x00, 0x38, 0x8A, 0x0C, 0x18, 0x30, 0x60,
-    0xC1, 0x82, 0x88, 0xE0, 0x27, 0x28, 0x42, 0x10, 0x84, 0x21, 0x3E, 0x38,
-    0x8A, 0x08, 0x10, 0x20, 0x82, 0x08, 0x61, 0x03, 0xF8, 0x7C, 0x06, 0x02,
-    0x02, 0x1C, 0x06, 0x01, 0x01, 0x01, 0x42, 0x3C, 0x18, 0xA2, 0x92, 0x8A,
-    0x28, 0xBF, 0x08, 0x21, 0xC0, 0x7C, 0x81, 0x03, 0xE4, 0x40, 0x40, 0x81,
-    0x03, 0x88, 0xE0, 0x1E, 0x41, 0x04, 0x0B, 0x98, 0xB0, 0xC1, 0xC2, 0x88,
-    0xE0, 0xFE, 0x04, 0x08, 0x20, 0x40, 0x82, 0x04, 0x08, 0x20, 0x40, 0x38,
-    0x8A, 0x0C, 0x14, 0x47, 0x11, 0x41, 0x83, 0x8C, 0xE0, 0x38, 0x8A, 0x1C,
-    0x18, 0x68, 0xCE, 0x81, 0x04, 0x13, 0xC0, 0xF0, 0x0F, 0x6C, 0x00, 0xD2,
-    0xD2, 0x00, 0x03, 0x04, 0x18, 0x60, 0x60, 0x18, 0x04, 0x03, 0xFF, 0x80,
-    0x00, 0x1F, 0xF0, 0x40, 0x18, 0x03, 0x00, 0x60, 0x20, 0x60, 0xC0, 0x80,
-    0x3D, 0x84, 0x08, 0x30, 0xC2, 0x00, 0x00, 0x00, 0x30, 0x3C, 0x46, 0x82,
-    0x8E, 0xB2, 0xA2, 0xA2, 0x9F, 0x80, 0x80, 0x40, 0x3C, 0x3C, 0x01, 0x40,
-    0x28, 0x09, 0x01, 0x10, 0x42, 0x0F, 0xC1, 0x04, 0x40, 0x9E, 0x3C, 0xFE,
-    0x21, 0x90, 0x48, 0x67, 0xE2, 0x09, 0x02, 0x81, 0x41, 0xFF, 0x80, 0x3E,
-    0xB0, 0xF0, 0x30, 0x08, 0x04, 0x02, 0x00, 0x80, 0x60, 0x8F, 0x80, 0xFE,
-    0x21, 0x90, 0x68, 0x14, 0x0A, 0x05, 0x02, 0x83, 0x43, 0x7F, 0x00, 0xFF,
-    0x20, 0x90, 0x08, 0x87, 0xC2, 0x21, 0x00, 0x81, 0x40, 0xFF, 0xC0, 0xFF,
-    0xA0, 0x50, 0x08, 0x87, 0xC2, 0x21, 0x00, 0x80, 0x40, 0x78, 0x00, 0x1E,
-    0x98, 0x6C, 0x0A, 0x00, 0x80, 0x20, 0xF8, 0x0B, 0x02, 0x60, 0x87, 0xC0,
-    0xE3, 0xA0, 0x90, 0x48, 0x27, 0xF2, 0x09, 0x04, 0x82, 0x41, 0x71, 0xC0,
-    0xF9, 0x08, 0x42, 0x10, 0x84, 0x27, 0xC0, 0x1F, 0x02, 0x02, 0x02, 0x02,
-    0x02, 0x82, 0x82, 0xC6, 0x78, 0xE3, 0xA1, 0x11, 0x09, 0x05, 0x83, 0x21,
-    0x08, 0x84, 0x41, 0x70, 0xC0, 0xE0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x41,
-    0x41, 0x41, 0xFF, 0xE0, 0xEC, 0x19, 0x45, 0x28, 0xA4, 0xA4, 0x94, 0x91,
-    0x12, 0x02, 0x40, 0x5C, 0x1C, 0xC3, 0xB0, 0x94, 0x4A, 0x24, 0x92, 0x49,
-    0x14, 0x8A, 0x43, 0x70, 0x80, 0x1E, 0x31, 0x90, 0x50, 0x18, 0x0C, 0x06,
-    0x02, 0x82, 0x63, 0x0F, 0x00, 0xFE, 0x43, 0x41, 0x41, 0x42, 0x7C, 0x40,
-    0x40, 0x40, 0xF0, 0x1C, 0x31, 0x90, 0x50, 0x18, 0x0C, 0x06, 0x02, 0x82,
-    0x63, 0x1F, 0x04, 0x07, 0x92, 0x30, 0xFE, 0x21, 0x90, 0x48, 0x24, 0x23,
-    0xE1, 0x10, 0x84, 0x41, 0x70, 0xC0, 0x3A, 0xCD, 0x0A, 0x03, 0x01, 0x80,
-    0xC1, 0xC7, 0x78, 0xFF, 0xC4, 0x62, 0x21, 0x00, 0x80, 0x40, 0x20, 0x10,
-    0x08, 0x1F, 0x00, 0xE3, 0xA0, 0x90, 0x48, 0x24, 0x12, 0x09, 0x04, 0x82,
-    0x22, 0x0E, 0x00, 0xF1, 0xE8, 0x10, 0x82, 0x10, 0x42, 0x10, 0x22, 0x04,
-    0x80, 0x50, 0x0C, 0x00, 0x80, 0xF1, 0xE8, 0x09, 0x11, 0x25, 0x44, 0xA8,
-    0x55, 0x0C, 0xA1, 0x8C, 0x31, 0x84, 0x30, 0xE3, 0xA0, 0x88, 0x82, 0x80,
-    0x80, 0xC0, 0x90, 0x44, 0x41, 0x71, 0xC0, 0xE3, 0xA0, 0x88, 0x82, 0x81,
-    0x40, 0x40, 0x20, 0x10, 0x08, 0x1F, 0x00, 0xFD, 0x0A, 0x20, 0x81, 0x04,
-    0x10, 0x21, 0x83, 0xFC, 0xEA, 0xAA, 0xAA, 0xC0, 0x80, 0x81, 0x03, 0x02,
-    0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0xD5, 0x55, 0x55, 0xC0,
-    0x10, 0x51, 0x22, 0x28, 0x20, 0xFF, 0xE0, 0x88, 0x80, 0x7E, 0x00, 0x80,
-    0x47, 0xEC, 0x14, 0x0A, 0x0C, 0xFB, 0xC0, 0x20, 0x10, 0x0B, 0xC6, 0x12,
-    0x05, 0x02, 0x81, 0x40, 0xB0, 0xB7, 0x80, 0x3A, 0x8E, 0x0C, 0x08, 0x10,
-    0x10, 0x9E, 0x03, 0x00, 0x80, 0x47, 0xA4, 0x34, 0x0A, 0x05, 0x02, 0x81,
-    0x21, 0x8F, 0x60, 0x3C, 0x43, 0x81, 0xFF, 0x80, 0x80, 0x61, 0x3E, 0x3D,
-    0x04, 0x3E, 0x41, 0x04, 0x10, 0x41, 0x0F, 0x80, 0x3D, 0xA1, 0xA0, 0x50,
-    0x28, 0x14, 0x09, 0x0C, 0x7A, 0x01, 0x01, 0x87, 0x80, 0xC0, 0x20, 0x10,
-    0x0B, 0xC6, 0x32, 0x09, 0x04, 0x82, 0x41, 0x20, 0xB8, 0xE0, 0x10, 0x01,
-    0xC0, 0x81, 0x02, 0x04, 0x08, 0x11, 0xFC, 0x10, 0x3E, 0x10, 0x84, 0x21,
-    0x08, 0x42, 0x3F, 0x00, 0xC0, 0x40, 0x40, 0x4F, 0x44, 0x58, 0x70, 0x48,
-    0x44, 0x42, 0xC7, 0x70, 0x20, 0x40, 0x81, 0x02, 0x04, 0x08, 0x10, 0x23,
-    0xF8, 0xB7, 0x64, 0x62, 0x31, 0x18, 0x8C, 0x46, 0x23, 0x91, 0x5E, 0x31,
-    0x90, 0x48, 0x24, 0x12, 0x09, 0x05, 0xC7, 0x3E, 0x31, 0xA0, 0x30, 0x18,
-    0x0C, 0x05, 0x8C, 0x7C, 0xDE, 0x30, 0x90, 0x28, 0x14, 0x0A, 0x05, 0x84,
-    0xBC, 0x40, 0x20, 0x38, 0x00, 0x3D, 0xA1, 0xA0, 0x50, 0x28, 0x14, 0x09,
-    0x0C, 0x7A, 0x01, 0x00, 0x80, 0xE0, 0xCE, 0xA1, 0x82, 0x04, 0x08, 0x10,
-    0x7C, 0x3A, 0x8D, 0x0B, 0x80, 0xF0, 0x70, 0xDE, 0x40, 0x40, 0xFC, 0x40,
-    0x40, 0x40, 0x40, 0x40, 0x41, 0x3E, 0xC3, 0x41, 0x41, 0x41, 0x41, 0x41,
-    0x43, 0x3D, 0xE3, 0xA0, 0x90, 0x84, 0x42, 0x20, 0xA0, 0x50, 0x10, 0xE3,
-    0xC0, 0x92, 0x4B, 0x25, 0x92, 0xA9, 0x98, 0x44, 0xE3, 0x31, 0x05, 0x01,
-    0x01, 0x41, 0x11, 0x05, 0xC7, 0xE3, 0xA0, 0x90, 0x84, 0x42, 0x40, 0xA0,
-    0x60, 0x10, 0x10, 0x08, 0x3E, 0x00, 0xFD, 0x08, 0x20, 0x82, 0x08, 0x10,
-    0xBF, 0x29, 0x24, 0xA2, 0x49, 0x26, 0xFF, 0xF8, 0x89, 0x24, 0x8A, 0x49,
-    0x2C, 0x61, 0x24, 0x30};
-
-const GFXglyph FreeMono9pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 11, 0, 1},      // 0x20 ' '
-    {0, 2, 11, 11, 4, -10},   // 0x21 '!'
-    {3, 6, 5, 11, 2, -10},    // 0x22 '"'
-    {7, 7, 12, 11, 2, -10},   // 0x23 '#'
-    {18, 8, 12, 11, 1, -10},  // 0x24 '$'
-    {30, 7, 11, 11, 2, -10},  // 0x25 '%'
-    {40, 7, 10, 11, 2, -9},   // 0x26 '&'
-    {49, 3, 5, 11, 4, -10},   // 0x27 '''
-    {51, 2, 13, 11, 5, -10},  // 0x28 '('
-    {55, 2, 13, 11, 4, -10},  // 0x29 ')'
-    {59, 7, 7, 11, 2, -10},   // 0x2A '*'
-    {66, 7, 7, 11, 2, -8},    // 0x2B '+'
-    {73, 3, 5, 11, 2, -1},    // 0x2C ','
-    {75, 9, 1, 11, 1, -5},    // 0x2D '-'
-    {77, 2, 2, 11, 4, -1},    // 0x2E '.'
-    {78, 7, 13, 11, 2, -11},  // 0x2F '/'
-    {90, 7, 11, 11, 2, -10},  // 0x30 '0'
-    {100, 5, 11, 11, 3, -10}, // 0x31 '1'
-    {107, 7, 11, 11, 2, -10}, // 0x32 '2'
-    {117, 8, 11, 11, 1, -10}, // 0x33 '3'
-    {128, 6, 11, 11, 3, -10}, // 0x34 '4'
-    {137, 7, 11, 11, 2, -10}, // 0x35 '5'
-    {147, 7, 11, 11, 2, -10}, // 0x36 '6'
-    {157, 7, 11, 11, 2, -10}, // 0x37 '7'
-    {167, 7, 11, 11, 2, -10}, // 0x38 '8'
-    {177, 7, 11, 11, 2, -10}, // 0x39 '9'
-    {187, 2, 8, 11, 4, -7},   // 0x3A ':'
-    {189, 3, 11, 11, 3, -7},  // 0x3B ';'
-    {194, 8, 8, 11, 1, -8},   // 0x3C '<'
-    {202, 9, 4, 11, 1, -6},   // 0x3D '='
-    {207, 9, 8, 11, 1, -8},   // 0x3E '>'
-    {216, 7, 10, 11, 2, -9},  // 0x3F '?'
-    {225, 8, 12, 11, 2, -10}, // 0x40 '@'
-    {237, 11, 10, 11, 0, -9}, // 0x41 'A'
-    {251, 9, 10, 11, 1, -9},  // 0x42 'B'
-    {263, 9, 10, 11, 1, -9},  // 0x43 'C'
-    {275, 9, 10, 11, 1, -9},  // 0x44 'D'
-    {287, 9, 10, 11, 1, -9},  // 0x45 'E'
-    {299, 9, 10, 11, 1, -9},  // 0x46 'F'
-    {311, 10, 10, 11, 1, -9}, // 0x47 'G'
-    {324, 9, 10, 11, 1, -9},  // 0x48 'H'
-    {336, 5, 10, 11, 3, -9},  // 0x49 'I'
-    {343, 8, 10, 11, 2, -9},  // 0x4A 'J'
-    {353, 9, 10, 11, 1, -9},  // 0x4B 'K'
-    {365, 8, 10, 11, 2, -9},  // 0x4C 'L'
-    {375, 11, 10, 11, 0, -9}, // 0x4D 'M'
-    {389, 9, 10, 11, 1, -9},  // 0x4E 'N'
-    {401, 9, 10, 11, 1, -9},  // 0x4F 'O'
-    {413, 8, 10, 11, 1, -9},  // 0x50 'P'
-    {423, 9, 13, 11, 1, -9},  // 0x51 'Q'
-    {438, 9, 10, 11, 1, -9},  // 0x52 'R'
-    {450, 7, 10, 11, 2, -9},  // 0x53 'S'
-    {459, 9, 10, 11, 1, -9},  // 0x54 'T'
-    {471, 9, 10, 11, 1, -9},  // 0x55 'U'
-    {483, 11, 10, 11, 0, -9}, // 0x56 'V'
-    {497, 11, 10, 11, 0, -9}, // 0x57 'W'
-    {511, 9, 10, 11, 1, -9},  // 0x58 'X'
-    {523, 9, 10, 11, 1, -9},  // 0x59 'Y'
-    {535, 7, 10, 11, 2, -9},  // 0x5A 'Z'
-    {544, 2, 13, 11, 5, -10}, // 0x5B '['
-    {548, 7, 13, 11, 2, -11}, // 0x5C '\'
-    {560, 2, 13, 11, 4, -10}, // 0x5D ']'
-    {564, 7, 5, 11, 2, -10},  // 0x5E '^'
-    {569, 11, 1, 11, 0, 2},   // 0x5F '_'
-    {571, 3, 3, 11, 3, -11},  // 0x60 '`'
-    {573, 9, 8, 11, 1, -7},   // 0x61 'a'
-    {582, 9, 11, 11, 1, -10}, // 0x62 'b'
-    {595, 7, 8, 11, 2, -7},   // 0x63 'c'
-    {602, 9, 11, 11, 1, -10}, // 0x64 'd'
-    {615, 8, 8, 11, 1, -7},   // 0x65 'e'
-    {623, 6, 11, 11, 3, -10}, // 0x66 'f'
-    {632, 9, 11, 11, 1, -7},  // 0x67 'g'
-    {645, 9, 11, 11, 1, -10}, // 0x68 'h'
-    {658, 7, 10, 11, 2, -9},  // 0x69 'i'
-    {667, 5, 13, 11, 3, -9},  // 0x6A 'j'
-    {676, 8, 11, 11, 2, -10}, // 0x6B 'k'
-    {687, 7, 11, 11, 2, -10}, // 0x6C 'l'
-    {697, 9, 8, 11, 1, -7},   // 0x6D 'm'
-    {706, 9, 8, 11, 1, -7},   // 0x6E 'n'
-    {715, 9, 8, 11, 1, -7},   // 0x6F 'o'
-    {724, 9, 11, 11, 1, -7},  // 0x70 'p'
-    {737, 9, 11, 11, 1, -7},  // 0x71 'q'
-    {750, 7, 8, 11, 3, -7},   // 0x72 'r'
-    {757, 7, 8, 11, 2, -7},   // 0x73 's'
-    {764, 8, 10, 11, 2, -9},  // 0x74 't'
-    {774, 8, 8, 11, 1, -7},   // 0x75 'u'
-    {782, 9, 8, 11, 1, -7},   // 0x76 'v'
-    {791, 9, 8, 11, 1, -7},   // 0x77 'w'
-    {800, 9, 8, 11, 1, -7},   // 0x78 'x'
-    {809, 9, 11, 11, 1, -7},  // 0x79 'y'
-    {822, 7, 8, 11, 2, -7},   // 0x7A 'z'
-    {829, 3, 13, 11, 4, -10}, // 0x7B '{'
-    {834, 1, 13, 11, 5, -10}, // 0x7C '|'
-    {836, 3, 13, 11, 4, -10}, // 0x7D '}'
-    {841, 7, 3, 11, 2, -6}};  // 0x7E '~'
-
-const GFXfont FreeMono9pt7b PROGMEM = {(uint8_t *)FreeMono9pt7bBitmaps,
-                                       (GFXglyph *)FreeMono9pt7bGlyphs, 0x20,
-                                       0x7E, 18};
-
-// Approx. 1516 bytes

+ 0 - 249
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoBold12pt7b.h

@@ -1,249 +0,0 @@
-const uint8_t FreeMonoBold12pt7bBitmaps[] PROGMEM = {
-    0xFF, 0xFF, 0xFF, 0xF6, 0x66, 0x60, 0x6F, 0x60, 0xE7, 0xE7, 0x62, 0x42,
-    0x42, 0x42, 0x42, 0x11, 0x87, 0x30, 0xC6, 0x18, 0xC3, 0x31, 0xFF, 0xFF,
-    0xF9, 0x98, 0x33, 0x06, 0x60, 0xCC, 0x7F, 0xEF, 0xFC, 0x66, 0x0C, 0xC3,
-    0x98, 0x63, 0x04, 0x40, 0x0C, 0x03, 0x00, 0xC0, 0xFE, 0x7F, 0x9C, 0x66,
-    0x09, 0x80, 0x78, 0x0F, 0xE0, 0x7F, 0x03, 0xE0, 0xF8, 0x7F, 0xFB, 0xFC,
-    0x0C, 0x03, 0x00, 0xC0, 0x30, 0x38, 0x1F, 0x0C, 0x42, 0x10, 0xC4, 0x1F,
-    0x03, 0x9C, 0x3C, 0x7F, 0x33, 0xE0, 0x8C, 0x21, 0x08, 0xC3, 0xE0, 0x70,
-    0x3E, 0x1F, 0xC6, 0x61, 0x80, 0x70, 0x0C, 0x07, 0x83, 0xEE, 0xDF, 0xB3,
-    0xCC, 0x73, 0xFE, 0x7F, 0x80, 0xFD, 0x24, 0x90, 0x39, 0xDC, 0xE6, 0x73,
-    0x18, 0xC6, 0x31, 0x8C, 0x31, 0x8E, 0x31, 0xC4, 0xE7, 0x1C, 0xE3, 0x1C,
-    0x63, 0x18, 0xC6, 0x31, 0x98, 0xCE, 0x67, 0x10, 0x0C, 0x03, 0x00, 0xC3,
-    0xB7, 0xFF, 0xDF, 0xE1, 0xE0, 0xFC, 0x33, 0x0C, 0xC0, 0x06, 0x00, 0x60,
-    0x06, 0x00, 0x60, 0x06, 0x0F, 0xFF, 0xFF, 0xF0, 0x60, 0x06, 0x00, 0x60,
-    0x06, 0x00, 0x60, 0x06, 0x00, 0x3B, 0x9C, 0xCE, 0x62, 0x00, 0xFF, 0xFF,
-    0xFF, 0xFF, 0x80, 0x00, 0x40, 0x30, 0x1C, 0x07, 0x03, 0x80, 0xE0, 0x30,
-    0x1C, 0x06, 0x03, 0x80, 0xC0, 0x70, 0x18, 0x0E, 0x03, 0x01, 0xC0, 0x60,
-    0x38, 0x0E, 0x01, 0x00, 0x1E, 0x0F, 0xC6, 0x1B, 0x87, 0xC0, 0xF0, 0x3C,
-    0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x87, 0x61, 0x8F, 0xC1, 0xE0, 0x1C,
-    0x0F, 0x0F, 0xC3, 0xB0, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00,
-    0xC0, 0x30, 0x0C, 0x3F, 0xFF, 0xFC, 0x1F, 0x1F, 0xEE, 0x1F, 0x83, 0xC0,
-    0xC0, 0x70, 0x38, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE3, 0xF0, 0xFF, 0xFF,
-    0xFC, 0x3F, 0x0F, 0xF1, 0x87, 0x00, 0x60, 0x0C, 0x03, 0x83, 0xE0, 0x7C,
-    0x01, 0xC0, 0x0C, 0x01, 0x80, 0x3C, 0x0F, 0xFF, 0x9F, 0xC0, 0x07, 0x07,
-    0x83, 0xC3, 0xE1, 0xB1, 0xD8, 0xCC, 0xC6, 0xE3, 0x7F, 0xFF, 0xE0, 0x61,
-    0xF8, 0xFC, 0x7F, 0x9F, 0xE6, 0x01, 0x80, 0x60, 0x1F, 0x87, 0xF9, 0x86,
-    0x00, 0xC0, 0x30, 0x0C, 0x03, 0xC1, 0xBF, 0xE7, 0xE0, 0x07, 0xC7, 0xF3,
-    0xC1, 0xC0, 0x60, 0x38, 0x0E, 0xF3, 0xFE, 0xF1, 0xF8, 0x3E, 0x0F, 0x83,
-    0x71, 0xCF, 0xE1, 0xF0, 0xFF, 0xFF, 0xFC, 0x1F, 0x07, 0x01, 0x80, 0x60,
-    0x38, 0x0C, 0x03, 0x01, 0xC0, 0x60, 0x18, 0x0E, 0x03, 0x00, 0xC0, 0x1E,
-    0x1F, 0xEE, 0x1F, 0x03, 0xC0, 0xF0, 0x36, 0x19, 0xFE, 0x7F, 0xB8, 0x7C,
-    0x0F, 0x03, 0xE1, 0xDF, 0xE3, 0xF0, 0x3E, 0x1F, 0xCE, 0x3B, 0x07, 0xC1,
-    0xF0, 0x7E, 0x3D, 0xFF, 0x3D, 0xC0, 0x70, 0x18, 0x0E, 0x0F, 0x3F, 0x8F,
-    0x80, 0xFF, 0x80, 0x00, 0xFF, 0x80, 0x77, 0x70, 0x00, 0x00, 0x76, 0x6C,
-    0xC8, 0x80, 0x00, 0x30, 0x0F, 0x03, 0xE0, 0xF8, 0x3E, 0x0F, 0x80, 0x3E,
-    0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x00, 0x20, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
-    0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF0, 0x60, 0x0F, 0x80, 0x3E, 0x00, 0xF8,
-    0x03, 0xE0, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x0F, 0x00, 0x40, 0x00, 0x7C,
-    0x7F, 0xB0, 0xF8, 0x30, 0x18, 0x1C, 0x3C, 0x3C, 0x18, 0x08, 0x00, 0x07,
-    0x03, 0x81, 0xC0, 0x1E, 0x07, 0xF1, 0xC7, 0x30, 0x6C, 0x0D, 0x87, 0xB3,
-    0xF6, 0xE6, 0xD8, 0xDB, 0x1B, 0x73, 0x67, 0xFC, 0x7F, 0x80, 0x30, 0x03,
-    0x00, 0x71, 0xC7, 0xF8, 0x7C, 0x00, 0x3F, 0x80, 0x7F, 0x80, 0x1F, 0x00,
-    0x76, 0x00, 0xEE, 0x01, 0x8C, 0x07, 0x18, 0x0E, 0x38, 0x1F, 0xF0, 0x7F,
-    0xF0, 0xC0, 0x61, 0x80, 0xCF, 0xC7, 0xFF, 0x8F, 0xC0, 0xFF, 0xC7, 0xFF,
-    0x0C, 0x1C, 0x60, 0x63, 0x03, 0x18, 0x38, 0xFF, 0x87, 0xFE, 0x30, 0x39,
-    0x80, 0xCC, 0x06, 0x60, 0x7F, 0xFF, 0x7F, 0xF0, 0x0F, 0xF3, 0xFF, 0x70,
-    0x76, 0x03, 0xC0, 0x3C, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0x60,
-    0x37, 0x07, 0x3F, 0xF0, 0xFC, 0xFF, 0x0F, 0xFC, 0x60, 0xE6, 0x06, 0x60,
-    0x36, 0x03, 0x60, 0x36, 0x03, 0x60, 0x36, 0x03, 0x60, 0x76, 0x0E, 0xFF,
-    0xCF, 0xF8, 0xFF, 0xF7, 0xFF, 0x8C, 0x0C, 0x60, 0x63, 0x1B, 0x18, 0xC0,
-    0xFE, 0x07, 0xF0, 0x31, 0x81, 0x8C, 0xCC, 0x06, 0x60, 0x3F, 0xFF, 0xFF,
-    0xFC, 0xFF, 0xFF, 0xFF, 0xCC, 0x06, 0x60, 0x33, 0x19, 0x98, 0xC0, 0xFE,
-    0x07, 0xF0, 0x31, 0x81, 0x8C, 0x0C, 0x00, 0x60, 0x0F, 0xF0, 0x7F, 0x80,
-    0x0F, 0xF1, 0xFF, 0x9C, 0x1C, 0xC0, 0x6C, 0x03, 0x60, 0x03, 0x00, 0x18,
-    0x7F, 0xC3, 0xFE, 0x01, 0xB8, 0x0C, 0xE0, 0xE3, 0xFF, 0x07, 0xE0, 0x7C,
-    0xF9, 0xF3, 0xE3, 0x03, 0x0C, 0x0C, 0x30, 0x30, 0xC0, 0xC3, 0xFF, 0x0F,
-    0xFC, 0x30, 0x30, 0xC0, 0xC3, 0x03, 0x0C, 0x0C, 0xFC, 0xFF, 0xF3, 0xF0,
-    0xFF, 0xFF, 0xF0, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03,
-    0x00, 0xC0, 0x30, 0xFF, 0xFF, 0xF0, 0x0F, 0xF8, 0x7F, 0xC0, 0x30, 0x01,
-    0x80, 0x0C, 0x00, 0x60, 0x03, 0x18, 0x18, 0xC0, 0xC6, 0x06, 0x30, 0x31,
-    0xC3, 0x0F, 0xF8, 0x1F, 0x00, 0xFC, 0xFB, 0xF3, 0xE3, 0x0E, 0x0C, 0x70,
-    0x33, 0x80, 0xFC, 0x03, 0xF0, 0x0F, 0xE0, 0x39, 0xC0, 0xC3, 0x03, 0x0E,
-    0x0C, 0x18, 0xFC, 0x7F, 0xF0, 0xF0, 0xFF, 0x0F, 0xF0, 0x18, 0x01, 0x80,
-    0x18, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x31, 0x83, 0x18, 0x31, 0x83,
-    0xFF, 0xFF, 0xFF, 0xF0, 0x3F, 0xC0, 0xF7, 0x87, 0x9E, 0x1E, 0x7C, 0xF9,
-    0xB3, 0xE6, 0xFD, 0x99, 0xF6, 0x67, 0x99, 0x8E, 0x66, 0x31, 0x98, 0x06,
-    0xFC, 0xFF, 0xF3, 0xF0, 0xF1, 0xFF, 0xCF, 0xCF, 0x0C, 0x78, 0x63, 0xE3,
-    0x1B, 0x18, 0xDC, 0xC6, 0x76, 0x31, 0xB1, 0x8F, 0x8C, 0x3C, 0x61, 0xE7,
-    0xE7, 0x3F, 0x18, 0x0F, 0x03, 0xFC, 0x70, 0xE6, 0x06, 0xE0, 0x7C, 0x03,
-    0xC0, 0x3C, 0x03, 0xC0, 0x3E, 0x07, 0x60, 0x67, 0x0E, 0x3F, 0xC0, 0xF0,
-    0xFF, 0x8F, 0xFE, 0x30, 0x73, 0x03, 0x30, 0x33, 0x03, 0x30, 0x73, 0xFE,
-    0x3F, 0x83, 0x00, 0x30, 0x03, 0x00, 0xFF, 0x0F, 0xF0, 0x0F, 0x03, 0xFC,
-    0x70, 0xE6, 0x06, 0xE0, 0x7C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3E, 0x07,
-    0x60, 0x67, 0x0E, 0x3F, 0xC1, 0xF0, 0x18, 0x33, 0xFF, 0x3F, 0xE0, 0xFF,
-    0x83, 0xFF, 0x83, 0x07, 0x0C, 0x0C, 0x30, 0x30, 0xC1, 0xC3, 0xFE, 0x0F,
-    0xF0, 0x31, 0xE0, 0xC3, 0x83, 0x07, 0x0C, 0x0C, 0xFE, 0x3F, 0xF8, 0x70,
-    0x3F, 0xDF, 0xFE, 0x1F, 0x03, 0xC0, 0xF8, 0x07, 0xE0, 0x7E, 0x01, 0xF0,
-    0x3C, 0x0F, 0x87, 0xFF, 0xBF, 0xC0, 0xFF, 0xFF, 0xFF, 0xC6, 0x3C, 0x63,
-    0xC6, 0x3C, 0x63, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60,
-    0x3F, 0xC3, 0xFC, 0xFF, 0xFF, 0xFF, 0x60, 0x66, 0x06, 0x60, 0x66, 0x06,
-    0x60, 0x66, 0x06, 0x60, 0x66, 0x06, 0x60, 0x63, 0x9C, 0x1F, 0xC0, 0xF0,
-    0xFC, 0x3F, 0xFC, 0x3F, 0x30, 0x0C, 0x38, 0x1C, 0x18, 0x18, 0x1C, 0x38,
-    0x1C, 0x38, 0x0E, 0x70, 0x0E, 0x70, 0x0F, 0x60, 0x07, 0xE0, 0x07, 0xE0,
-    0x03, 0xC0, 0x03, 0xC0, 0xFC, 0xFF, 0xF3, 0xF6, 0x01, 0xDC, 0xC6, 0x77,
-    0x99, 0xDE, 0x67, 0x79, 0x8D, 0xFE, 0x3F, 0xF8, 0xF3, 0xE3, 0xCF, 0x8F,
-    0x3C, 0x38, 0x70, 0xE1, 0xC0, 0xF8, 0xFB, 0xE3, 0xE3, 0x86, 0x0F, 0x38,
-    0x1F, 0xC0, 0x3E, 0x00, 0x70, 0x03, 0xE0, 0x0F, 0x80, 0x77, 0x03, 0x8E,
-    0x1E, 0x1C, 0xFC, 0xFF, 0xF3, 0xF0, 0xF9, 0xFF, 0x9F, 0x30, 0xC3, 0x9C,
-    0x19, 0x81, 0xF8, 0x0F, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60,
-    0x3F, 0xC3, 0xFC, 0xFF, 0xBF, 0xEC, 0x3B, 0x0C, 0xC6, 0x33, 0x80, 0xC0,
-    0x60, 0x38, 0xCC, 0x36, 0x0F, 0x03, 0xFF, 0xFF, 0xF0, 0xFF, 0xF1, 0x8C,
-    0x63, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0xC7, 0xFE, 0x40, 0x30, 0x0E,
-    0x01, 0x80, 0x70, 0x0C, 0x03, 0x80, 0x60, 0x1C, 0x03, 0x00, 0xE0, 0x18,
-    0x07, 0x00, 0xC0, 0x38, 0x0E, 0x01, 0xC0, 0x70, 0x0C, 0x01, 0xFF, 0xC6,
-    0x31, 0x8C, 0x63, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x1F, 0xFE, 0x04, 0x03,
-    0x01, 0xE0, 0xFC, 0x7B, 0x9C, 0x7E, 0x1F, 0x03, 0xFF, 0xFF, 0xFF, 0xF0,
-    0xCE, 0x73, 0x3F, 0x07, 0xF8, 0x00, 0xC0, 0x0C, 0x1F, 0xC7, 0xFC, 0x60,
-    0xCC, 0x0C, 0xC1, 0xCF, 0xFF, 0x3F, 0xF0, 0xF0, 0x07, 0x80, 0x0C, 0x00,
-    0x60, 0x03, 0x7C, 0x1F, 0xF8, 0xF1, 0xC7, 0x07, 0x30, 0x19, 0x80, 0xCC,
-    0x06, 0x60, 0x73, 0xC7, 0x7F, 0xFB, 0xDF, 0x00, 0x1F, 0xB3, 0xFF, 0x70,
-    0xFE, 0x07, 0xC0, 0x3C, 0x00, 0xC0, 0x0C, 0x00, 0x70, 0x77, 0xFF, 0x1F,
-    0xC0, 0x01, 0xE0, 0x0F, 0x00, 0x18, 0x00, 0xC1, 0xF6, 0x3F, 0xF1, 0xC7,
-    0x9C, 0x1C, 0xC0, 0x66, 0x03, 0x30, 0x19, 0x81, 0xC7, 0x1E, 0x3F, 0xFC,
-    0x7D, 0xE0, 0x1F, 0x83, 0xFC, 0x70, 0xEE, 0x07, 0xFF, 0xFF, 0xFF, 0xE0,
-    0x0E, 0x00, 0x70, 0x73, 0xFF, 0x1F, 0xC0, 0x07, 0xC3, 0xFC, 0x60, 0x0C,
-    0x0F, 0xFD, 0xFF, 0x86, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x60, 0x0C, 0x01,
-    0x81, 0xFF, 0xBF, 0xF0, 0x1F, 0x79, 0xFF, 0xDC, 0x79, 0x81, 0xCC, 0x06,
-    0x60, 0x33, 0x01, 0x9C, 0x1C, 0x71, 0xE1, 0xFF, 0x07, 0xD8, 0x00, 0xC0,
-    0x06, 0x00, 0x70, 0x7F, 0x03, 0xF0, 0xF0, 0x03, 0xC0, 0x03, 0x00, 0x0C,
-    0x00, 0x37, 0xC0, 0xFF, 0x83, 0xC7, 0x0C, 0x0C, 0x30, 0x30, 0xC0, 0xC3,
-    0x03, 0x0C, 0x0C, 0x30, 0x33, 0xF3, 0xFF, 0xCF, 0xC0, 0x06, 0x00, 0xC0,
-    0x00, 0x3F, 0x07, 0xE0, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18,
-    0x03, 0x0F, 0xFF, 0xFF, 0xC0, 0x06, 0x06, 0x00, 0xFF, 0xFF, 0x03, 0x03,
-    0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07, 0xFE, 0xFC,
-    0xF0, 0x07, 0x80, 0x0C, 0x00, 0x60, 0x03, 0x3F, 0x19, 0xF8, 0xDE, 0x07,
-    0xE0, 0x3E, 0x01, 0xF0, 0x0F, 0xC0, 0x6F, 0x03, 0x1C, 0x78, 0xFF, 0xC7,
-    0xE0, 0x7E, 0x0F, 0xC0, 0x18, 0x03, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30,
-    0x06, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x61, 0xFF, 0xFF, 0xF8, 0xFE, 0xF1,
-    0xFF, 0xF1, 0xCE, 0x63, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0xC6, 0x31,
-    0x8C, 0x63, 0x19, 0xF7, 0xBF, 0xEF, 0x78, 0x77, 0xC1, 0xFF, 0x83, 0xC7,
-    0x0C, 0x0C, 0x30, 0x30, 0xC0, 0xC3, 0x03, 0x0C, 0x0C, 0x30, 0x33, 0xF1,
-    0xFF, 0xC7, 0xC0, 0x1F, 0x83, 0xFC, 0x70, 0xEE, 0x07, 0xC0, 0x3C, 0x03,
-    0xC0, 0x3E, 0x07, 0x70, 0xE3, 0xFC, 0x1F, 0x80, 0xF7, 0xE3, 0xFF, 0xC3,
-    0xC3, 0x8E, 0x07, 0x30, 0x0C, 0xC0, 0x33, 0x00, 0xCE, 0x07, 0x3C, 0x38,
-    0xFF, 0xC3, 0x7E, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x0F, 0xE0, 0x3F, 0x80,
-    0x1F, 0xBC, 0xFF, 0xF7, 0x0F, 0x38, 0x1C, 0xC0, 0x33, 0x00, 0xCC, 0x03,
-    0x38, 0x1C, 0x70, 0xF0, 0xFF, 0xC1, 0xFB, 0x00, 0x0C, 0x00, 0x30, 0x00,
-    0xC0, 0x1F, 0xC0, 0x7F, 0x79, 0xE7, 0xFF, 0x1F, 0x31, 0xC0, 0x18, 0x01,
-    0x80, 0x18, 0x01, 0x80, 0x18, 0x0F, 0xFC, 0xFF, 0xC0, 0x3F, 0x9F, 0xFE,
-    0x1F, 0x82, 0xFE, 0x1F, 0xE0, 0xFF, 0x03, 0xE0, 0xFF, 0xFF, 0xF0, 0x30,
-    0x06, 0x00, 0xC0, 0x7F, 0xEF, 0xFC, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06,
-    0x00, 0xC0, 0x18, 0x71, 0xFE, 0x1F, 0x00, 0xF1, 0xF7, 0x8F, 0x8C, 0x0C,
-    0x60, 0x63, 0x03, 0x18, 0x18, 0xC0, 0xC6, 0x06, 0x38, 0xF0, 0xFF, 0xC3,
-    0xEE, 0xFC, 0xFF, 0xF3, 0xF3, 0x87, 0x0E, 0x1C, 0x1C, 0x60, 0x73, 0x80,
-    0xEC, 0x03, 0xF0, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x00, 0xF8, 0x7F, 0xE1,
-    0xF7, 0x39, 0x8C, 0xE6, 0x37, 0xB0, 0xFF, 0xC3, 0xFF, 0x07, 0xBC, 0x1C,
-    0xF0, 0x73, 0x81, 0x86, 0x00, 0x7C, 0xF9, 0xF3, 0xE3, 0xCF, 0x07, 0xF8,
-    0x0F, 0xC0, 0x1E, 0x00, 0xFC, 0x07, 0x38, 0x38, 0x73, 0xF3, 0xFF, 0xCF,
-    0xC0, 0xF9, 0xFF, 0x9F, 0x70, 0xE3, 0x0C, 0x39, 0xC1, 0x98, 0x19, 0x81,
-    0xF8, 0x0F, 0x00, 0xF0, 0x06, 0x00, 0x60, 0x0E, 0x00, 0xC0, 0xFF, 0x0F,
-    0xF0, 0x7F, 0xCF, 0xF9, 0x8E, 0x33, 0x80, 0x70, 0x1C, 0x07, 0x01, 0xC6,
-    0x70, 0xFF, 0xFF, 0xFF, 0x80, 0x0E, 0x3C, 0x60, 0xC1, 0x83, 0x06, 0x0C,
-    0x39, 0xE3, 0xC0, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x3C, 0x38, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xF0, 0xE1, 0xC0, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x30, 0x3C,
-    0x79, 0x83, 0x06, 0x0C, 0x18, 0x31, 0xE3, 0x80, 0x3C, 0x37, 0xE7, 0x67,
-    0xE6, 0x1C};
-
-const GFXglyph FreeMonoBold12pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 14, 0, 1},        // 0x20 ' '
-    {0, 4, 15, 14, 5, -14},     // 0x21 '!'
-    {8, 8, 7, 14, 3, -13},      // 0x22 '"'
-    {15, 11, 18, 14, 2, -15},   // 0x23 '#'
-    {40, 10, 20, 14, 2, -16},   // 0x24 '$'
-    {65, 10, 15, 14, 2, -14},   // 0x25 '%'
-    {84, 10, 13, 14, 2, -12},   // 0x26 '&'
-    {101, 3, 7, 14, 5, -13},    // 0x27 '''
-    {104, 5, 19, 14, 6, -14},   // 0x28 '('
-    {116, 5, 19, 14, 3, -14},   // 0x29 ')'
-    {128, 10, 10, 14, 2, -14},  // 0x2A '*'
-    {141, 12, 13, 14, 1, -12},  // 0x2B '+'
-    {161, 5, 7, 14, 4, -2},     // 0x2C ','
-    {166, 12, 2, 14, 1, -7},    // 0x2D '-'
-    {169, 3, 3, 14, 5, -2},     // 0x2E '.'
-    {171, 10, 20, 14, 2, -16},  // 0x2F '/'
-    {196, 10, 15, 14, 2, -14},  // 0x30 '0'
-    {215, 10, 15, 14, 2, -14},  // 0x31 '1'
-    {234, 10, 15, 14, 2, -14},  // 0x32 '2'
-    {253, 11, 15, 14, 1, -14},  // 0x33 '3'
-    {274, 9, 14, 14, 2, -13},   // 0x34 '4'
-    {290, 10, 15, 14, 2, -14},  // 0x35 '5'
-    {309, 10, 15, 14, 2, -14},  // 0x36 '6'
-    {328, 10, 15, 14, 2, -14},  // 0x37 '7'
-    {347, 10, 15, 14, 2, -14},  // 0x38 '8'
-    {366, 10, 15, 14, 3, -14},  // 0x39 '9'
-    {385, 3, 11, 14, 5, -10},   // 0x3A ':'
-    {390, 4, 15, 14, 4, -10},   // 0x3B ';'
-    {398, 12, 11, 14, 1, -11},  // 0x3C '<'
-    {415, 12, 7, 14, 1, -9},    // 0x3D '='
-    {426, 12, 11, 14, 1, -11},  // 0x3E '>'
-    {443, 9, 14, 14, 3, -13},   // 0x3F '?'
-    {459, 11, 19, 14, 2, -14},  // 0x40 '@'
-    {486, 15, 14, 14, -1, -13}, // 0x41 'A'
-    {513, 13, 14, 14, 0, -13},  // 0x42 'B'
-    {536, 12, 14, 14, 1, -13},  // 0x43 'C'
-    {557, 12, 14, 14, 1, -13},  // 0x44 'D'
-    {578, 13, 14, 14, 0, -13},  // 0x45 'E'
-    {601, 13, 14, 14, 0, -13},  // 0x46 'F'
-    {624, 13, 14, 14, 1, -13},  // 0x47 'G'
-    {647, 14, 14, 14, 0, -13},  // 0x48 'H'
-    {672, 10, 14, 14, 2, -13},  // 0x49 'I'
-    {690, 13, 14, 14, 1, -13},  // 0x4A 'J'
-    {713, 14, 14, 14, 0, -13},  // 0x4B 'K'
-    {738, 12, 14, 14, 1, -13},  // 0x4C 'L'
-    {759, 14, 14, 14, 0, -13},  // 0x4D 'M'
-    {784, 13, 14, 14, 0, -13},  // 0x4E 'N'
-    {807, 12, 14, 14, 1, -13},  // 0x4F 'O'
-    {828, 12, 14, 14, 0, -13},  // 0x50 'P'
-    {849, 12, 17, 14, 1, -13},  // 0x51 'Q'
-    {875, 14, 14, 14, 0, -13},  // 0x52 'R'
-    {900, 10, 14, 14, 2, -13},  // 0x53 'S'
-    {918, 12, 14, 14, 1, -13},  // 0x54 'T'
-    {939, 12, 14, 14, 1, -13},  // 0x55 'U'
-    {960, 16, 14, 14, -1, -13}, // 0x56 'V'
-    {988, 14, 14, 14, 0, -13},  // 0x57 'W'
-    {1013, 14, 14, 14, 0, -13}, // 0x58 'X'
-    {1038, 12, 14, 14, 1, -13}, // 0x59 'Y'
-    {1059, 10, 14, 14, 2, -13}, // 0x5A 'Z'
-    {1077, 5, 19, 14, 6, -14},  // 0x5B '['
-    {1089, 10, 20, 14, 2, -16}, // 0x5C '\'
-    {1114, 5, 19, 14, 3, -14},  // 0x5D ']'
-    {1126, 10, 8, 14, 2, -15},  // 0x5E '^'
-    {1136, 14, 2, 14, 0, 4},    // 0x5F '_'
-    {1140, 4, 4, 14, 4, -15},   // 0x60 '`'
-    {1142, 12, 11, 14, 1, -10}, // 0x61 'a'
-    {1159, 13, 15, 14, 0, -14}, // 0x62 'b'
-    {1184, 12, 11, 14, 1, -10}, // 0x63 'c'
-    {1201, 13, 15, 14, 1, -14}, // 0x64 'd'
-    {1226, 12, 11, 14, 1, -10}, // 0x65 'e'
-    {1243, 11, 15, 14, 2, -14}, // 0x66 'f'
-    {1264, 13, 16, 14, 1, -10}, // 0x67 'g'
-    {1290, 14, 15, 14, 0, -14}, // 0x68 'h'
-    {1317, 11, 14, 14, 1, -13}, // 0x69 'i'
-    {1337, 8, 19, 15, 3, -13},  // 0x6A 'j'
-    {1356, 13, 15, 14, 1, -14}, // 0x6B 'k'
-    {1381, 11, 15, 14, 1, -14}, // 0x6C 'l'
-    {1402, 15, 11, 14, 0, -10}, // 0x6D 'm'
-    {1423, 14, 11, 14, 0, -10}, // 0x6E 'n'
-    {1443, 12, 11, 14, 1, -10}, // 0x6F 'o'
-    {1460, 14, 16, 14, 0, -10}, // 0x70 'p'
-    {1488, 14, 16, 14, 0, -10}, // 0x71 'q'
-    {1516, 12, 11, 14, 1, -10}, // 0x72 'r'
-    {1533, 10, 11, 14, 2, -10}, // 0x73 's'
-    {1547, 11, 14, 14, 1, -13}, // 0x74 't'
-    {1567, 13, 11, 14, 0, -10}, // 0x75 'u'
-    {1585, 14, 11, 14, 0, -10}, // 0x76 'v'
-    {1605, 14, 11, 14, 0, -10}, // 0x77 'w'
-    {1625, 14, 11, 14, 0, -10}, // 0x78 'x'
-    {1645, 12, 16, 14, 1, -10}, // 0x79 'y'
-    {1669, 11, 11, 14, 1, -10}, // 0x7A 'z'
-    {1685, 7, 19, 14, 3, -14},  // 0x7B '{'
-    {1702, 2, 19, 14, 6, -14},  // 0x7C '|'
-    {1707, 7, 19, 14, 4, -14},  // 0x7D '}'
-    {1724, 12, 4, 14, 1, -7}};  // 0x7E '~'
-
-const GFXfont FreeMonoBold12pt7b PROGMEM = {
-    (uint8_t *)FreeMonoBold12pt7bBitmaps, (GFXglyph *)FreeMonoBold12pt7bGlyphs,
-    0x20, 0x7E, 24};
-
-// Approx. 2402 bytes

+ 0 - 422
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoBold18pt7b.h

@@ -1,422 +0,0 @@
-const uint8_t FreeMonoBold18pt7bBitmaps[] PROGMEM = {
-    0x77, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0x9C, 0xE7, 0x39, 0xC4, 0x03, 0xBF,
-    0xFF, 0xB8, 0xF1, 0xFE, 0x3F, 0xC7, 0xF8, 0xFF, 0x1E, 0xC1, 0x98, 0x33,
-    0x06, 0x60, 0xCC, 0x18, 0x0E, 0x1C, 0x0F, 0x3C, 0x1F, 0x3C, 0x1E, 0x3C,
-    0x1E, 0x3C, 0x1E, 0x78, 0x1E, 0x78, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFE, 0x1E, 0x78, 0x1E, 0x78, 0x1E, 0x78, 0x7F, 0xFE, 0x7F, 0xFE,
-    0x7F, 0xFE, 0x7F, 0xFE, 0x3C, 0x78, 0x3C, 0x78, 0x3C, 0x78, 0x3C, 0xF0,
-    0x3C, 0xF0, 0x3C, 0xF0, 0x3C, 0xF0, 0x03, 0x00, 0x1E, 0x00, 0x78, 0x01,
-    0xE0, 0x1F, 0xF1, 0xFF, 0xE7, 0xFF, 0xBE, 0x1E, 0xF0, 0x3B, 0xC0, 0xCF,
-    0xE0, 0x3F, 0xF8, 0x7F, 0xF0, 0x7F, 0xE0, 0x1F, 0xF0, 0x0F, 0xE0, 0x3F,
-    0x80, 0xFF, 0x87, 0xFF, 0xFE, 0xFF, 0xF3, 0x7F, 0x80, 0x78, 0x01, 0xE0,
-    0x07, 0x80, 0x1E, 0x00, 0x78, 0x00, 0xC0, 0x1E, 0x00, 0xFF, 0x03, 0x86,
-    0x06, 0x06, 0x0C, 0x0C, 0x18, 0x18, 0x38, 0x70, 0x3F, 0xC2, 0x1E, 0x3E,
-    0x03, 0xF8, 0x3F, 0x83, 0xF8, 0x0F, 0x8F, 0x18, 0x7F, 0x01, 0xC7, 0x03,
-    0x06, 0x06, 0x0C, 0x0C, 0x18, 0x1C, 0x70, 0x1F, 0xC0, 0x0F, 0x00, 0x03,
-    0xD0, 0x1F, 0xF0, 0x7F, 0xE1, 0xFF, 0xC3, 0xE6, 0x07, 0x80, 0x0F, 0x00,
-    0x0F, 0x00, 0x1F, 0x00, 0x3E, 0x00, 0xFE, 0x03, 0xFE, 0xFF, 0xBD, 0xFE,
-    0x3F, 0xFC, 0x3F, 0x7C, 0x7C, 0xFF, 0xFE, 0xFF, 0xFC, 0xFF, 0xF8, 0x7E,
-    0xF0, 0xFF, 0xFF, 0xF6, 0x66, 0x66, 0x07, 0x0F, 0x1F, 0x1E, 0x3E, 0x3C,
-    0x78, 0x78, 0x78, 0x70, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
-    0x78, 0x78, 0x78, 0x3C, 0x3C, 0x1E, 0x1F, 0x0F, 0x07, 0xE0, 0xF0, 0xF8,
-    0x78, 0x7C, 0x3C, 0x3E, 0x1E, 0x1E, 0x1E, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
-    0x0F, 0x0F, 0x0E, 0x1E, 0x1E, 0x1E, 0x3C, 0x3C, 0x78, 0xF8, 0xF0, 0xE0,
-    0x01, 0x80, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0xFF, 0xFF,
-    0xFF, 0xFF, 0x7F, 0xFE, 0x1F, 0xF8, 0x07, 0xE0, 0x0F, 0xF0, 0x1F, 0xF8,
-    0x1E, 0x78, 0x1C, 0x38, 0x18, 0x18, 0x01, 0xC0, 0x03, 0xC0, 0x03, 0xC0,
-    0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0,
-    0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x01, 0x80, 0x3E, 0x78, 0xF3, 0xC7,
-    0x8E, 0x1C, 0x70, 0xE1, 0x80, 0x7F, 0xFF, 0xDF, 0xFF, 0xF9, 0xFF, 0xFF,
-    0x3F, 0xFF, 0xE0, 0x77, 0xFF, 0xF7, 0x00, 0x00, 0x0E, 0x00, 0x3C, 0x00,
-    0x78, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x00, 0x1E, 0x00, 0x38, 0x00, 0xF0,
-    0x01, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x3C, 0x00, 0x78, 0x01, 0xE0, 0x03,
-    0xC0, 0x0F, 0x00, 0x1E, 0x00, 0x78, 0x00, 0xF0, 0x03, 0xC0, 0x07, 0x80,
-    0x1E, 0x00, 0x3C, 0x00, 0x70, 0x01, 0xE0, 0x03, 0x80, 0x03, 0x00, 0x00,
-    0x07, 0xE0, 0x1F, 0xF8, 0x3F, 0xFC, 0x3F, 0xFC, 0x7C, 0x3E, 0x78, 0x1E,
-    0xF8, 0x1F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F,
-    0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF8, 0x1F, 0x78, 0x1E,
-    0x7C, 0x3E, 0x3F, 0xFC, 0x3F, 0xFC, 0x1F, 0xF8, 0x07, 0xE0, 0x07, 0xC0,
-    0x1F, 0x80, 0xFF, 0x03, 0xFE, 0x0F, 0xBC, 0x0C, 0x78, 0x00, 0xF0, 0x01,
-    0xE0, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x78,
-    0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x81, 0xFF, 0xFB, 0xFF, 0xF7,
-    0xFF, 0xE7, 0xFF, 0x80, 0x0F, 0xC0, 0x7F, 0xE1, 0xFF, 0xE3, 0xFF, 0xEF,
-    0x87, 0xDE, 0x07, 0xF8, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x7C, 0x01,
-    0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00,
-    0x78, 0x03, 0xE0, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80,
-    0x0F, 0xC0, 0x7F, 0xF0, 0xFF, 0xF8, 0xFF, 0xFC, 0x70, 0x3E, 0x00, 0x1E,
-    0x00, 0x1E, 0x00, 0x1E, 0x00, 0x3C, 0x03, 0xFC, 0x03, 0xF0, 0x03, 0xF0,
-    0x03, 0xFC, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F,
-    0xE0, 0x3F, 0xFF, 0xFE, 0xFF, 0xFC, 0x7F, 0xF8, 0x1F, 0xE0, 0x00, 0xF8,
-    0x03, 0xF0, 0x07, 0xE0, 0x1F, 0xC0, 0x77, 0x80, 0xEF, 0x03, 0x9E, 0x0F,
-    0x3C, 0x1C, 0x78, 0x70, 0xF1, 0xE1, 0xE3, 0x83, 0xCF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x78, 0x07, 0xFC, 0x0F, 0xF8, 0x1F, 0xF0,
-    0x1F, 0xC0, 0x3F, 0xFC, 0x1F, 0xFE, 0x0F, 0xFF, 0x07, 0xFF, 0x83, 0xC0,
-    0x01, 0xE0, 0x00, 0xF0, 0x00, 0x7B, 0xE0, 0x3F, 0xFC, 0x1F, 0xFF, 0x0F,
-    0xFF, 0xC3, 0x83, 0xE0, 0x00, 0xF8, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F,
-    0x00, 0x0F, 0xB8, 0x0F, 0xBF, 0xFF, 0xCF, 0xFF, 0xC3, 0xFF, 0xC0, 0x7F,
-    0x80, 0x00, 0xFC, 0x07, 0xFC, 0x3F, 0xF8, 0xFF, 0xF1, 0xF8, 0x07, 0xC0,
-    0x1F, 0x00, 0x3C, 0x00, 0xF0, 0x01, 0xE7, 0xC3, 0xDF, 0xC7, 0x7F, 0xCF,
-    0xFF, 0xDF, 0x8F, 0xFC, 0x07, 0xF0, 0x0F, 0xF0, 0x1F, 0xE0, 0x3D, 0xE0,
-    0xFB, 0xFF, 0xE3, 0xFF, 0xC3, 0xFF, 0x01, 0xF8, 0x00, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x01, 0xE0, 0x03, 0x80, 0x0F, 0x00, 0x1E,
-    0x00, 0x38, 0x00, 0xF0, 0x01, 0xE0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00,
-    0x78, 0x00, 0xF0, 0x01, 0xE0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x38,
-    0x00, 0x70, 0x00, 0x07, 0xC0, 0x3F, 0xE0, 0xFF, 0xE3, 0xFF, 0xEF, 0x83,
-    0xFE, 0x03, 0xFC, 0x07, 0xF8, 0x0F, 0xF0, 0x1E, 0xF0, 0x78, 0xFF, 0xE0,
-    0xFF, 0x81, 0xFF, 0x0F, 0xFF, 0x9E, 0x0F, 0x78, 0x0F, 0xF0, 0x1F, 0xE0,
-    0x3F, 0xE0, 0xFB, 0xFF, 0xE7, 0xFF, 0xC7, 0xFF, 0x03, 0xF8, 0x00, 0x0F,
-    0xC0, 0x3F, 0xE0, 0xFF, 0xE3, 0xFF, 0xEF, 0xC3, 0xDF, 0x03, 0xBC, 0x07,
-    0xF8, 0x0F, 0xF0, 0x1F, 0xF0, 0x3D, 0xF1, 0xFB, 0xFF, 0xF3, 0xFE, 0xE3,
-    0xFB, 0xC3, 0xE7, 0x80, 0x1E, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xE7, 0xFF,
-    0x8F, 0xFE, 0x1F, 0xF0, 0x1F, 0x80, 0x00, 0x77, 0xFF, 0xF7, 0x00, 0x00,
-    0x00, 0x00, 0xEF, 0xFF, 0xEE, 0x1C, 0x7C, 0xF9, 0xF1, 0xC0, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0xF3, 0xC7, 0x8E, 0x3C, 0x70, 0xE1, 0x87, 0x0C, 0x00,
-    0x00, 0x00, 0x00, 0x80, 0x00, 0xF0, 0x00, 0xFC, 0x00, 0xFE, 0x00, 0xFE,
-    0x00, 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00,
-    0x7F, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00, 0x7C, 0x00,
-    0x07, 0x7F, 0xFF, 0xDF, 0xFF, 0xF9, 0xFF, 0xFF, 0x3F, 0xFF, 0xE0, 0x00,
-    0x00, 0x00, 0x00, 0x1F, 0xFF, 0xF7, 0xFF, 0xFE, 0x7F, 0xFF, 0xCF, 0xFF,
-    0xF8, 0x00, 0x00, 0x3C, 0x00, 0x0F, 0xC0, 0x01, 0xFC, 0x00, 0x1F, 0xC0,
-    0x01, 0xFC, 0x00, 0x1F, 0xC0, 0x01, 0xFC, 0x00, 0x3F, 0x80, 0x3F, 0x80,
-    0x3F, 0x80, 0x3F, 0x80, 0x3F, 0x80, 0x3F, 0x80, 0x0F, 0x80, 0x03, 0x80,
-    0x00, 0x1F, 0xC0, 0xFF, 0xE3, 0xFF, 0xF7, 0xFF, 0xEF, 0x07, 0xFE, 0x03,
-    0xDC, 0x07, 0x80, 0x0F, 0x00, 0x7C, 0x03, 0xF8, 0x1F, 0xC0, 0x1E, 0x00,
-    0x30, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x1F, 0x00, 0x3E,
-    0x00, 0x7C, 0x00, 0x70, 0x00, 0x07, 0xE0, 0x1F, 0xE0, 0x7F, 0xE1, 0xE1,
-    0xC7, 0x83, 0xCE, 0x03, 0xBC, 0x07, 0x70, 0x0E, 0xE0, 0x7D, 0xC3, 0xFB,
-    0x8F, 0xF7, 0x3C, 0xEE, 0x71, 0xDC, 0xE3, 0xB9, 0xC7, 0x73, 0xCE, 0xE3,
-    0xFF, 0xC3, 0xFF, 0x83, 0xFF, 0x00, 0x07, 0x00, 0x0E, 0x00, 0x1E, 0x02,
-    0x1E, 0x1E, 0x3F, 0xFC, 0x1F, 0xF0, 0x1F, 0x80, 0x0F, 0xF8, 0x00, 0x7F,
-    0xF0, 0x01, 0xFF, 0xC0, 0x03, 0xFF, 0x00, 0x01, 0xFE, 0x00, 0x07, 0xF8,
-    0x00, 0x1C, 0xF0, 0x00, 0xF3, 0xC0, 0x03, 0xCF, 0x00, 0x1E, 0x1E, 0x00,
-    0x78, 0x78, 0x03, 0xC0, 0xF0, 0x0F, 0xFF, 0xC0, 0x3F, 0xFF, 0x01, 0xFF,
-    0xFE, 0x07, 0xFF, 0xF8, 0x3C, 0x00, 0xF3, 0xFC, 0x1F, 0xEF, 0xF8, 0x7F,
-    0xFF, 0xE1, 0xFF, 0x7F, 0x03, 0xF8, 0x7F, 0xFC, 0x0F, 0xFF, 0xF0, 0xFF,
-    0xFF, 0x8F, 0xFF, 0xF8, 0x3C, 0x07, 0xC3, 0xC0, 0x3C, 0x3C, 0x03, 0xC3,
-    0xC0, 0x7C, 0x3F, 0xFF, 0x83, 0xFF, 0xF0, 0x3F, 0xFF, 0x83, 0xFF, 0xFE,
-    0x3C, 0x03, 0xE3, 0xC0, 0x1F, 0x3C, 0x00, 0xF3, 0xC0, 0x0F, 0x3C, 0x01,
-    0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xEF, 0xFF, 0xFC, 0x7F, 0xFF, 0x00, 0x01,
-    0xF8, 0xC1, 0xFF, 0xFC, 0x7F, 0xFF, 0x9F, 0xFF, 0xF7, 0xE0, 0x7E, 0xF8,
-    0x07, 0xFE, 0x00, 0x7F, 0x80, 0x0E, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0xC0,
-    0x00, 0x78, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x3E, 0x00, 0x03, 0xE0,
-    0x07, 0x7F, 0x03, 0xE7, 0xFF, 0xFC, 0x7F, 0xFF, 0x03, 0xFF, 0xC0, 0x1F,
-    0xE0, 0xFF, 0xF0, 0x3F, 0xFF, 0x0F, 0xFF, 0xE3, 0xFF, 0xFC, 0x78, 0x1F,
-    0x9E, 0x03, 0xE7, 0x80, 0x79, 0xE0, 0x0F, 0x78, 0x03, 0xDE, 0x00, 0xF7,
-    0x80, 0x3D, 0xE0, 0x0F, 0x78, 0x03, 0xDE, 0x00, 0xF7, 0x80, 0x7D, 0xE0,
-    0x1E, 0x78, 0x1F, 0xBF, 0xFF, 0xCF, 0xFF, 0xF3, 0xFF, 0xF0, 0x7F, 0xF0,
-    0x00, 0x7F, 0xFF, 0xDF, 0xFF, 0xFB, 0xFF, 0xFF, 0x7F, 0xFF, 0xE3, 0xC0,
-    0x3C, 0x78, 0x07, 0x8F, 0x1C, 0xF1, 0xE3, 0xCC, 0x3F, 0xF8, 0x07, 0xFF,
-    0x00, 0xFF, 0xE0, 0x1F, 0xFC, 0x03, 0xC7, 0x80, 0x78, 0xF1, 0x8F, 0x0C,
-    0x79, 0xE0, 0x0F, 0x3C, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xF7, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xF3, 0xC0, 0x1E, 0x78, 0x63, 0xCF, 0x1E, 0x79, 0xE3, 0xC6, 0x3F, 0xF8,
-    0x07, 0xFF, 0x00, 0xFF, 0xE0, 0x1F, 0xFC, 0x03, 0xC7, 0x80, 0x78, 0xE0,
-    0x0F, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x1F, 0xFC, 0x03, 0xFF, 0x80,
-    0x7F, 0xF0, 0x07, 0xFC, 0x00, 0x01, 0xFC, 0xE0, 0x7F, 0xFE, 0x1F, 0xFF,
-    0xE3, 0xFF, 0xFE, 0x7F, 0x03, 0xE7, 0xC0, 0x1E, 0xF8, 0x00, 0xEF, 0x00,
-    0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x03, 0xFE, 0xF0,
-    0x3F, 0xFF, 0x03, 0xFF, 0xF8, 0x3F, 0xF7, 0x80, 0x1E, 0x7E, 0x01, 0xE3,
-    0xFF, 0xFE, 0x1F, 0xFF, 0xE0, 0xFF, 0xF8, 0x01, 0xFE, 0x00, 0x7F, 0x0F,
-    0xE3, 0xFC, 0x7F, 0x9F, 0xE3, 0xFC, 0x7F, 0x1F, 0xC1, 0xE0, 0x3C, 0x0F,
-    0x01, 0xE0, 0x78, 0x0F, 0x03, 0xC0, 0x78, 0x1E, 0x03, 0xC0, 0xFF, 0xFE,
-    0x07, 0xFF, 0xF0, 0x3F, 0xFF, 0x81, 0xFF, 0xFC, 0x0F, 0x01, 0xE0, 0x78,
-    0x0F, 0x03, 0xC0, 0x78, 0x1E, 0x03, 0xC3, 0xFC, 0x7F, 0xBF, 0xE3, 0xFF,
-    0xFF, 0x1F, 0xF7, 0xF0, 0x7F, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x01, 0xE0, 0x07, 0x80, 0x1E, 0x00,
-    0x78, 0x01, 0xE0, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x01, 0xE0, 0x07, 0x83,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xF8, 0x01, 0xFF, 0xE0, 0x3F, 0xFC,
-    0x07, 0xFF, 0x80, 0xFF, 0xF0, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0xC0,
-    0x00, 0x78, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x38, 0x07, 0x8F,
-    0x00, 0xF1, 0xE0, 0x1E, 0x3C, 0x03, 0xC7, 0x80, 0xF8, 0xF8, 0x3F, 0x1F,
-    0xFF, 0xC3, 0xFF, 0xF0, 0x1F, 0xFC, 0x00, 0x7E, 0x00, 0xFF, 0x0F, 0xCF,
-    0xF9, 0xFE, 0xFF, 0x9F, 0xEF, 0xF8, 0xFC, 0x3C, 0x1F, 0x03, 0xC3, 0xE0,
-    0x3C, 0x7C, 0x03, 0xCF, 0x80, 0x3D, 0xF0, 0x03, 0xFE, 0x00, 0x3F, 0xF8,
-    0x03, 0xFF, 0x80, 0x3E, 0x7C, 0x03, 0xC3, 0xE0, 0x3C, 0x1E, 0x03, 0xC0,
-    0xF0, 0x3C, 0x0F, 0x0F, 0xF8, 0x7E, 0xFF, 0x87, 0xFF, 0xF8, 0x7F, 0x7F,
-    0x03, 0xE0, 0xFF, 0xC0, 0x3F, 0xF0, 0x0F, 0xFC, 0x03, 0xFF, 0x00, 0x1E,
-    0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x80,
-    0x01, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x01, 0x87, 0x80, 0xF1, 0xE0, 0x3C,
-    0x78, 0x0F, 0x1E, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F,
-    0xFF, 0xC0, 0x3E, 0x00, 0xF8, 0xFC, 0x01, 0xF9, 0xFC, 0x07, 0xF3, 0xF8,
-    0x0F, 0xE3, 0xF8, 0x3F, 0x87, 0xF0, 0x7F, 0x0F, 0xF1, 0xFE, 0x1F, 0xE3,
-    0xFC, 0x3D, 0xE7, 0x78, 0x7B, 0xDE, 0xF0, 0xF7, 0xBD, 0xE1, 0xE7, 0xF3,
-    0xC3, 0xCF, 0xE7, 0x87, 0x8F, 0x8F, 0x0F, 0x1F, 0x1E, 0x1E, 0x1E, 0x3C,
-    0x3C, 0x00, 0x79, 0xFF, 0x07, 0xFF, 0xFE, 0x0F, 0xFF, 0xFC, 0x1F, 0xF7,
-    0xF0, 0x1F, 0xC0, 0xFC, 0x1F, 0xEF, 0xE1, 0xFF, 0xFE, 0x1F, 0xFF, 0xF1,
-    0xFF, 0x3F, 0x83, 0xC3, 0xF8, 0x3C, 0x3F, 0xC3, 0xC3, 0xFC, 0x3C, 0x3D,
-    0xE3, 0xC3, 0xDE, 0x3C, 0x3C, 0xF3, 0xC3, 0xC7, 0xBC, 0x3C, 0x7B, 0xC3,
-    0xC3, 0xFC, 0x3C, 0x3F, 0xC3, 0xC1, 0xFC, 0x3C, 0x1F, 0xCF, 0xF8, 0xFC,
-    0xFF, 0x87, 0xCF, 0xF8, 0x7C, 0x7F, 0x03, 0xC0, 0x01, 0xF8, 0x00, 0x7F,
-    0xE0, 0x0F, 0xFF, 0x81, 0xFF, 0xFC, 0x3F, 0x0F, 0xC7, 0xC0, 0x3E, 0x78,
-    0x01, 0xEF, 0x80, 0x1F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF,
-    0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x80, 0x1F, 0x78, 0x01, 0xE7, 0xC0, 0x3E,
-    0x3F, 0x0F, 0xC1, 0xFF, 0xF8, 0x1F, 0xFF, 0x00, 0x7F, 0xE0, 0x01, 0xF8,
-    0x00, 0x7F, 0xF8, 0x3F, 0xFF, 0x8F, 0xFF, 0xF3, 0xFF, 0xFE, 0x3C, 0x0F,
-    0xCF, 0x00, 0xF3, 0xC0, 0x3C, 0xF0, 0x0F, 0x3C, 0x03, 0xCF, 0x03, 0xF3,
-    0xFF, 0xF8, 0xFF, 0xFC, 0x3F, 0xFE, 0x0F, 0xFE, 0x03, 0xC0, 0x00, 0xF0,
-    0x00, 0x3C, 0x00, 0x3F, 0xF8, 0x0F, 0xFE, 0x03, 0xFF, 0x80, 0x7F, 0xC0,
-    0x00, 0x01, 0xF8, 0x00, 0x7F, 0xE0, 0x0F, 0xFF, 0x01, 0xFF, 0xF8, 0x3F,
-    0x0F, 0xC7, 0xC0, 0x3E, 0x78, 0x01, 0xEF, 0x80, 0x1F, 0xF0, 0x00, 0xFF,
-    0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x80, 0x1F,
-    0x78, 0x01, 0xE7, 0xC0, 0x3E, 0x3F, 0x0F, 0xC1, 0xFF, 0xF8, 0x0F, 0xFF,
-    0x00, 0x7F, 0xE0, 0x03, 0xF8, 0x00, 0x3F, 0x8E, 0x07, 0xFF, 0xF0, 0xFF,
-    0xFF, 0x0F, 0xFF, 0xE0, 0x60, 0x78, 0x7F, 0xF8, 0x07, 0xFF, 0xF0, 0x3F,
-    0xFF, 0xE0, 0xFF, 0xFF, 0x01, 0xE0, 0x7C, 0x0F, 0x01, 0xE0, 0x78, 0x0F,
-    0x03, 0xC0, 0x78, 0x1E, 0x0F, 0xC0, 0xFF, 0xFC, 0x07, 0xFF, 0xC0, 0x3F,
-    0xF8, 0x01, 0xFF, 0xE0, 0x0F, 0x0F, 0x80, 0x78, 0x3C, 0x03, 0xC0, 0xF0,
-    0x1E, 0x07, 0xC3, 0xFE, 0x1F, 0xBF, 0xF0, 0x7F, 0xFF, 0x83, 0xF7, 0xF8,
-    0x0F, 0x00, 0x07, 0xE7, 0x07, 0xFF, 0x8F, 0xFF, 0xC7, 0xFF, 0xE7, 0xC1,
-    0xF3, 0xC0, 0x79, 0xE0, 0x3C, 0xF8, 0x00, 0x7F, 0x80, 0x1F, 0xFC, 0x07,
-    0xFF, 0x81, 0xFF, 0xE0, 0x0F, 0xFB, 0x00, 0x7F, 0xC0, 0x1F, 0xE0, 0x0F,
-    0xFC, 0x1F, 0xFF, 0xFF, 0xBF, 0xFF, 0x8D, 0xFF, 0x80, 0x3F, 0x00, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x1F, 0xE1,
-    0xE3, 0xFC, 0x3C, 0x7F, 0x87, 0x8F, 0x60, 0xF0, 0xC0, 0x1E, 0x00, 0x03,
-    0xC0, 0x00, 0x78, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x07,
-    0x80, 0x00, 0xF0, 0x01, 0xFF, 0xE0, 0x3F, 0xFC, 0x07, 0xFF, 0x80, 0x7F,
-    0xE0, 0xFF, 0x0F, 0xF7, 0xFC, 0x7F, 0xFF, 0xE3, 0xFE, 0xFF, 0x1F, 0xF3,
-    0xC0, 0x1E, 0x1E, 0x00, 0xF0, 0xF0, 0x07, 0x87, 0x80, 0x3C, 0x3C, 0x01,
-    0xE1, 0xE0, 0x0F, 0x0F, 0x00, 0x78, 0x78, 0x03, 0xC3, 0xC0, 0x1E, 0x1E,
-    0x00, 0xF0, 0xF0, 0x07, 0x87, 0xC0, 0x7C, 0x1F, 0x07, 0xC0, 0xFF, 0xFE,
-    0x03, 0xFF, 0xE0, 0x0F, 0xFE, 0x00, 0x1F, 0xC0, 0x00, 0xFF, 0x03, 0xFD,
-    0xFF, 0x07, 0xFF, 0xFE, 0x0F, 0xFB, 0xF8, 0x1F, 0xE1, 0xC0, 0x07, 0x03,
-    0xC0, 0x1E, 0x07, 0x80, 0x3C, 0x07, 0x80, 0xF0, 0x0F, 0x01, 0xE0, 0x0F,
-    0x03, 0x80, 0x1E, 0x0F, 0x00, 0x3E, 0x1E, 0x00, 0x3C, 0x78, 0x00, 0x78,
-    0xF0, 0x00, 0x7B, 0xC0, 0x00, 0xF7, 0x80, 0x01, 0xFF, 0x00, 0x01, 0xFC,
-    0x00, 0x03, 0xF8, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0xFF, 0x0F,
-    0xF7, 0xFC, 0x7F, 0xFF, 0xE3, 0xFF, 0xFE, 0x0F, 0xF7, 0x80, 0x0F, 0x3C,
-    0x38, 0x78, 0xE3, 0xE3, 0x87, 0x1F, 0x1C, 0x38, 0xF8, 0xE1, 0xEF, 0xE7,
-    0x0F, 0x7F, 0x78, 0x7B, 0xBB, 0xC3, 0xFD, 0xFE, 0x0F, 0xEF, 0xF0, 0x7E,
-    0x3F, 0x03, 0xF1, 0xF8, 0x1F, 0x8F, 0xC0, 0xFC, 0x3E, 0x07, 0xC1, 0xF0,
-    0x3E, 0x0F, 0x81, 0xF0, 0x7C, 0x00, 0x7E, 0x0F, 0xDF, 0xE3, 0xFF, 0xFC,
-    0x7F, 0xBF, 0x07, 0xE1, 0xE0, 0xF8, 0x3E, 0x3E, 0x03, 0xEF, 0x80, 0x3D,
-    0xE0, 0x03, 0xF8, 0x00, 0x3E, 0x00, 0x03, 0xC0, 0x00, 0xF8, 0x00, 0x3F,
-    0x80, 0x0F, 0x78, 0x03, 0xC7, 0x80, 0xF8, 0x78, 0x3E, 0x0F, 0x8F, 0xE3,
-    0xFF, 0xFC, 0x7F, 0xFF, 0x8F, 0xF7, 0xE0, 0xFC, 0x7E, 0x07, 0xEF, 0xF0,
-    0xFF, 0xFF, 0x0F, 0xF7, 0xE0, 0x7E, 0x1E, 0x07, 0x81, 0xF0, 0xF8, 0x0F,
-    0x0F, 0x00, 0x79, 0xE0, 0x07, 0xFE, 0x00, 0x3F, 0xC0, 0x01, 0xF8, 0x00,
-    0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00,
-    0x00, 0xF0, 0x00, 0xFF, 0xE0, 0x0F, 0xFF, 0x00, 0xFF, 0xF0, 0x07, 0xFE,
-    0x00, 0xFF, 0xFC, 0xFF, 0xFC, 0xFF, 0xFC, 0xFF, 0xFC, 0xF0, 0x3C, 0xF0,
-    0x78, 0xF0, 0xF0, 0x70, 0xE0, 0x01, 0xE0, 0x03, 0xC0, 0x03, 0x80, 0x07,
-    0x00, 0x0F, 0x00, 0x1E, 0x0E, 0x1C, 0x0F, 0x38, 0x0F, 0x78, 0x0F, 0x7F,
-    0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xF0,
-    0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
-    0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xFE, 0xFF, 0xFF, 0xFE, 0xE0, 0x01,
-    0xE0, 0x03, 0xC0, 0x03, 0xC0, 0x07, 0x80, 0x07, 0x00, 0x0F, 0x00, 0x0E,
-    0x00, 0x1E, 0x00, 0x1C, 0x00, 0x3C, 0x00, 0x78, 0x00, 0x78, 0x00, 0xF0,
-    0x00, 0xF0, 0x01, 0xE0, 0x01, 0xE0, 0x03, 0xC0, 0x03, 0xC0, 0x07, 0x80,
-    0x07, 0x80, 0x0F, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x1C, 0x00, 0x3C, 0x00,
-    0x38, 0x00, 0x70, 0x7F, 0xFF, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
-    0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
-    0x0F, 0x0F, 0x7F, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x07, 0x00, 0x1F, 0x00,
-    0x7F, 0x00, 0xFE, 0x03, 0xDE, 0x0F, 0x1E, 0x3E, 0x3E, 0xF8, 0x3F, 0xE0,
-    0x3F, 0x80, 0x38, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xF0, 0xC3, 0x87, 0x0E, 0x1C, 0x30, 0x01, 0xFC, 0x01, 0xFF, 0xC0,
-    0x3F, 0xFC, 0x07, 0xFF, 0xC0, 0x00, 0x78, 0x0F, 0xFF, 0x07, 0xFF, 0xE1,
-    0xFF, 0xFC, 0x7F, 0xFF, 0x9F, 0x80, 0xF3, 0xC0, 0x1E, 0x78, 0x0F, 0xCF,
-    0xFF, 0xFE, 0xFF, 0xFF, 0xCF, 0xFF, 0xF8, 0x7F, 0x3E, 0x7C, 0x00, 0x1F,
-    0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x0F,
-    0x3F, 0x01, 0xFF, 0xF8, 0x3F, 0xFF, 0x87, 0xFF, 0xF0, 0xFC, 0x1F, 0x1F,
-    0x01, 0xF3, 0xC0, 0x1E, 0x78, 0x03, 0xCF, 0x00, 0x79, 0xE0, 0x0F, 0x3E,
-    0x03, 0xE7, 0xE0, 0xFB, 0xFF, 0xFF, 0x7F, 0xFF, 0xCF, 0xFF, 0xF0, 0xF9,
-    0xF8, 0x00, 0x03, 0xF3, 0x87, 0xFF, 0xCF, 0xFF, 0xEF, 0xFF, 0xF7, 0xE0,
-    0xFF, 0xC0, 0x3F, 0xC0, 0x0F, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3E,
-    0x00, 0x4F, 0x80, 0xF7, 0xFF, 0xF9, 0xFF, 0xF8, 0x7F, 0xF8, 0x0F, 0xF0,
-    0x00, 0x0F, 0xC0, 0x00, 0xFC, 0x00, 0x0F, 0xC0, 0x00, 0xFC, 0x00, 0x03,
-    0xC0, 0x00, 0x3C, 0x03, 0xF3, 0xC0, 0xFF, 0xBC, 0x1F, 0xFF, 0xC3, 0xFF,
-    0xFC, 0x7E, 0x0F, 0xC7, 0x80, 0x7C, 0xF0, 0x03, 0xCF, 0x00, 0x3C, 0xF0,
-    0x03, 0xCF, 0x00, 0x3C, 0xF8, 0x07, 0xC7, 0xE0, 0xFC, 0x7F, 0xFF, 0xF3,
-    0xFF, 0xFF, 0x0F, 0xFF, 0xF0, 0x3F, 0x3E, 0x03, 0xF0, 0x03, 0xFF, 0x01,
-    0xFF, 0xE0, 0xFF, 0xFC, 0x7E, 0x0F, 0x9E, 0x01, 0xEF, 0x00, 0x3F, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xE0, 0x00, 0x7F, 0xFF,
-    0xCF, 0xFF, 0xF1, 0xFF, 0xF8, 0x0F, 0xF0, 0x03, 0xFC, 0x07, 0xFF, 0x0F,
-    0xFF, 0x1F, 0xFF, 0x1E, 0x00, 0x1E, 0x00, 0xFF, 0xF8, 0xFF, 0xFC, 0xFF,
-    0xFC, 0xFF, 0xF8, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E,
-    0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0xFF, 0xF8, 0xFF, 0xF8, 0xFF,
-    0xF8, 0xFF, 0xF8, 0x07, 0xE7, 0xC3, 0xFF, 0xFC, 0xFF, 0xFF, 0xBF, 0xFF,
-    0xF7, 0xC1, 0xF9, 0xF0, 0x1F, 0x3C, 0x01, 0xE7, 0x80, 0x3C, 0xF0, 0x07,
-    0x9E, 0x00, 0xF3, 0xE0, 0x3E, 0x3E, 0x0F, 0xC7, 0xFF, 0xF8, 0x7F, 0xFF,
-    0x07, 0xFD, 0xE0, 0x3F, 0x3C, 0x00, 0x07, 0x80, 0x00, 0xF0, 0x00, 0x3E,
-    0x03, 0xFF, 0x80, 0x7F, 0xF0, 0x0F, 0xFC, 0x00, 0xFE, 0x00, 0x3E, 0x00,
-    0x03, 0xF0, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x01, 0xE0, 0x00, 0x0F,
-    0x00, 0x00, 0x78, 0xF8, 0x03, 0xDF, 0xE0, 0x1F, 0xFF, 0x80, 0xFF, 0xFE,
-    0x07, 0xE1, 0xF0, 0x3E, 0x07, 0x81, 0xE0, 0x3C, 0x0F, 0x01, 0xE0, 0x78,
-    0x0F, 0x03, 0xC0, 0x78, 0x1E, 0x03, 0xC0, 0xF0, 0x1E, 0x1F, 0xC1, 0xFD,
-    0xFE, 0x0F, 0xFF, 0xF0, 0x7F, 0xBF, 0x01, 0xF8, 0x03, 0xC0, 0x03, 0xC0,
-    0x03, 0xC0, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xC0, 0x3F, 0xC0,
-    0x3F, 0xC0, 0x3F, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0,
-    0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0xFF, 0xFE, 0xFF, 0xFF,
-    0xFF, 0xFF, 0x7F, 0xFE, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x00, 0x00,
-    0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0x00, 0xF0, 0x0F, 0x00, 0xF0,
-    0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0,
-    0x0F, 0x00, 0xF0, 0x0F, 0x01, 0xFF, 0xFE, 0xFF, 0xEF, 0xFC, 0x7F, 0x00,
-    0x7C, 0x00, 0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF0, 0x00, 0x3C, 0x00, 0x0F,
-    0x00, 0x03, 0xC7, 0xF0, 0xF3, 0xFC, 0x3C, 0xFF, 0x0F, 0x3F, 0x83, 0xDF,
-    0x00, 0xFF, 0x80, 0x3F, 0xC0, 0x0F, 0xE0, 0x03, 0xFC, 0x00, 0xF7, 0x80,
-    0x3C, 0xF0, 0x0F, 0x1F, 0x0F, 0xC3, 0xFB, 0xF1, 0xFF, 0xFC, 0x7F, 0xDF,
-    0x0F, 0xE0, 0x3F, 0xC0, 0x3F, 0xC0, 0x3F, 0xC0, 0x3F, 0xC0, 0x03, 0xC0,
-    0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0,
-    0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0,
-    0x03, 0xC0, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0x3D, 0xE3,
-    0xC1, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0x1F, 0xFF, 0xFE, 0x3E, 0x3C, 0x78,
-    0xF0, 0xF1, 0xE3, 0xC3, 0xC7, 0x8F, 0x0F, 0x1E, 0x3C, 0x3C, 0x78, 0xF0,
-    0xF1, 0xE3, 0xC3, 0xC7, 0x8F, 0x0F, 0x1E, 0xFE, 0x3E, 0x7F, 0xF8, 0xF9,
-    0xFF, 0xE3, 0xE7, 0xDF, 0x0F, 0x1E, 0x1E, 0x7C, 0x03, 0xEF, 0xF0, 0x3F,
-    0xFF, 0x83, 0xFF, 0xFC, 0x1F, 0x87, 0xC1, 0xE0, 0x3C, 0x1E, 0x03, 0xC1,
-    0xE0, 0x3C, 0x1E, 0x03, 0xC1, 0xE0, 0x3C, 0x1E, 0x03, 0xC1, 0xE0, 0x3C,
-    0x7F, 0x0F, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xF7, 0xE0, 0x7E, 0x03, 0xF8,
-    0x01, 0xFF, 0xC0, 0x7F, 0xFC, 0x1F, 0xFF, 0xC7, 0xE0, 0xFD, 0xF0, 0x07,
-    0xFC, 0x00, 0x7F, 0x80, 0x0F, 0xF0, 0x01, 0xFE, 0x00, 0x3F, 0xE0, 0x0F,
-    0xBF, 0x07, 0xE3, 0xFF, 0xF8, 0x3F, 0xFE, 0x03, 0xFF, 0x80, 0x1F, 0xC0,
-    0x3E, 0x7E, 0x03, 0xF7, 0xFC, 0x1F, 0xFF, 0xF0, 0xFF, 0xFF, 0xC1, 0xF8,
-    0x3F, 0x0F, 0x80, 0x7C, 0x78, 0x01, 0xE3, 0xC0, 0x0F, 0x1E, 0x00, 0x78,
-    0xF0, 0x03, 0xC7, 0xC0, 0x3E, 0x3F, 0x07, 0xE1, 0xFF, 0xFE, 0x0F, 0xFF,
-    0xE0, 0x7B, 0xFE, 0x03, 0xCF, 0xC0, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07,
-    0x80, 0x00, 0xFF, 0x80, 0x0F, 0xFC, 0x00, 0x7F, 0xE0, 0x01, 0xFE, 0x00,
-    0x00, 0x03, 0xF3, 0xE0, 0x7F, 0xDF, 0x87, 0xFF, 0xFC, 0x7F, 0xFF, 0xE7,
-    0xE0, 0xFC, 0x7C, 0x03, 0xE3, 0xC0, 0x0F, 0x1E, 0x00, 0x78, 0xF0, 0x03,
-    0xC7, 0x80, 0x1E, 0x3E, 0x01, 0xF0, 0xFC, 0x1F, 0x83, 0xFF, 0xFC, 0x1F,
-    0xFF, 0xE0, 0x3F, 0xEF, 0x00, 0x7E, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E,
-    0x00, 0x00, 0xF0, 0x00, 0x3F, 0xE0, 0x01, 0xFF, 0x80, 0x0F, 0xFC, 0x00,
-    0x3F, 0xC0, 0x7E, 0x1E, 0x7F, 0x3F, 0xFF, 0xBF, 0xFF, 0xFF, 0xF1, 0xFE,
-    0x00, 0xFC, 0x00, 0x7C, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07,
-    0x80, 0x03, 0xC0, 0x0F, 0xFF, 0x87, 0xFF, 0xC3, 0xFF, 0xE1, 0xFF, 0xE0,
-    0x07, 0xE6, 0x1F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x78, 0x1E, 0x78, 0x0E,
-    0x7F, 0xE0, 0x3F, 0xFC, 0x03, 0xFE, 0x60, 0x1F, 0xE0, 0x0F, 0xF8, 0x1F,
-    0xFF, 0xFF, 0xFF, 0xFE, 0x7F, 0xFC, 0x07, 0xE0, 0x0C, 0x00, 0x0F, 0x00,
-    0x07, 0x80, 0x03, 0xC0, 0x01, 0xE0, 0x07, 0xFF, 0xF3, 0xFF, 0xF9, 0xFF,
-    0xFC, 0xFF, 0xFC, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x01, 0xE0, 0x00,
-    0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x07, 0x8F, 0xFF, 0xC3, 0xFF,
-    0xC1, 0xFF, 0xC0, 0x3F, 0x80, 0xFC, 0x1F, 0xBF, 0x0F, 0xEF, 0xC3, 0xFB,
-    0xF0, 0xFE, 0x3C, 0x07, 0x8F, 0x01, 0xE3, 0xC0, 0x78, 0xF0, 0x1E, 0x3C,
-    0x07, 0x8F, 0x01, 0xE3, 0xC0, 0x78, 0xF8, 0x7E, 0x3F, 0xFF, 0xC7, 0xFF,
-    0xF0, 0xFF, 0x7C, 0x0F, 0x9E, 0x7F, 0x07, 0xF7, 0xFC, 0x7F, 0xFF, 0xE3,
-    0xFE, 0xFE, 0x0F, 0xE1, 0xE0, 0x3C, 0x0F, 0x01, 0xE0, 0x3C, 0x1E, 0x01,
-    0xE0, 0xF0, 0x07, 0x8F, 0x00, 0x3E, 0x78, 0x00, 0xF7, 0x80, 0x07, 0xFC,
-    0x00, 0x1F, 0xC0, 0x00, 0xFE, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x7E,
-    0x03, 0xF7, 0xF8, 0x3F, 0xFF, 0xC1, 0xFE, 0xFC, 0x07, 0xF3, 0xC7, 0x0F,
-    0x1E, 0x7C, 0xF0, 0x73, 0xE7, 0x83, 0x9F, 0x7C, 0x1F, 0xFF, 0xC0, 0xFF,
-    0xFE, 0x03, 0xF7, 0xF0, 0x1F, 0xBF, 0x80, 0xFC, 0xF8, 0x07, 0xC7, 0xC0,
-    0x1E, 0x3E, 0x00, 0xE0, 0xE0, 0x7E, 0x0F, 0xDF, 0xE3, 0xFF, 0xFC, 0x7F,
-    0xBF, 0x07, 0xE1, 0xF1, 0xF0, 0x1F, 0xFC, 0x01, 0xFF, 0x00, 0x1F, 0xC0,
-    0x07, 0xF8, 0x01, 0xFF, 0xC0, 0x7E, 0xFC, 0x1F, 0x8F, 0xC7, 0xE0, 0xFD,
-    0xFE, 0x3F, 0xFF, 0xC7, 0xFF, 0xF0, 0x7F, 0x7E, 0x0F, 0xDF, 0xE3, 0xFF,
-    0xFC, 0x7F, 0xBF, 0x07, 0xE3, 0xC0, 0x78, 0x3C, 0x0E, 0x07, 0x83, 0xC0,
-    0x78, 0x70, 0x0F, 0x1E, 0x00, 0xE3, 0x80, 0x1E, 0xF0, 0x01, 0xDC, 0x00,
-    0x3F, 0x80, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x07, 0x00, 0x01, 0xE0, 0x00,
-    0x38, 0x00, 0x0F, 0x00, 0x3F, 0xF0, 0x0F, 0xFF, 0x01, 0xFF, 0xE0, 0x1F,
-    0xF8, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF9, 0xC7,
-    0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x78, 0x03, 0xC0, 0x1E, 0x07, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x81, 0xF0, 0xFC, 0x7E, 0x1F,
-    0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0xF8, 0xFC, 0x3E, 0x0F,
-    0x83, 0xF0, 0x3E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xF0, 0x7E,
-    0x0F, 0xC3, 0xF0, 0x38, 0x6F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x70, 0x3E, 0x0F, 0xC1, 0xF8, 0x3E,
-    0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x7C, 0x0F, 0xC1, 0xF0,
-    0x7C, 0x3F, 0x1F, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x83, 0xE1, 0xF8,
-    0xFC, 0x3F, 0x07, 0x00, 0x1E, 0x00, 0x1F, 0xC0, 0x1F, 0xF0, 0xDF, 0xFC,
-    0xFF, 0x3F, 0xFB, 0x0F, 0xF8, 0x03, 0xF8, 0x00, 0x78};
-
-const GFXglyph FreeMonoBold18pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 21, 0, 1},         // 0x20 ' '
-    {0, 5, 22, 21, 8, -21},      // 0x21 '!'
-    {14, 11, 10, 21, 5, -20},    // 0x22 '"'
-    {28, 16, 25, 21, 3, -22},    // 0x23 '#'
-    {78, 14, 28, 21, 4, -23},    // 0x24 '$'
-    {127, 15, 21, 21, 3, -20},   // 0x25 '%'
-    {167, 15, 20, 21, 3, -19},   // 0x26 '&'
-    {205, 4, 10, 21, 8, -20},    // 0x27 '''
-    {210, 8, 27, 21, 9, -21},    // 0x28 '('
-    {237, 8, 27, 21, 4, -21},    // 0x29 ')'
-    {264, 16, 15, 21, 3, -21},   // 0x2A '*'
-    {294, 16, 19, 21, 3, -18},   // 0x2B '+'
-    {332, 7, 10, 21, 5, -3},     // 0x2C ','
-    {341, 19, 4, 21, 1, -11},    // 0x2D '-'
-    {351, 5, 5, 21, 8, -4},      // 0x2E '.'
-    {355, 15, 28, 21, 3, -23},   // 0x2F '/'
-    {408, 16, 23, 21, 3, -22},   // 0x30 '0'
-    {454, 15, 22, 21, 3, -21},   // 0x31 '1'
-    {496, 15, 23, 21, 3, -22},   // 0x32 '2'
-    {540, 16, 23, 21, 3, -22},   // 0x33 '3'
-    {586, 15, 21, 21, 3, -20},   // 0x34 '4'
-    {626, 17, 22, 21, 2, -21},   // 0x35 '5'
-    {673, 15, 23, 21, 4, -22},   // 0x36 '6'
-    {717, 15, 22, 21, 3, -21},   // 0x37 '7'
-    {759, 15, 23, 21, 3, -22},   // 0x38 '8'
-    {803, 15, 23, 21, 4, -22},   // 0x39 '9'
-    {847, 5, 16, 21, 8, -15},    // 0x3A ':'
-    {857, 7, 22, 21, 5, -15},    // 0x3B ';'
-    {877, 18, 16, 21, 1, -17},   // 0x3C '<'
-    {913, 19, 10, 21, 1, -14},   // 0x3D '='
-    {937, 18, 16, 21, 2, -17},   // 0x3E '>'
-    {973, 15, 21, 21, 4, -20},   // 0x3F '?'
-    {1013, 15, 27, 21, 3, -21},  // 0x40 '@'
-    {1064, 22, 21, 21, -1, -20}, // 0x41 'A'
-    {1122, 20, 21, 21, 1, -20},  // 0x42 'B'
-    {1175, 19, 21, 21, 1, -20},  // 0x43 'C'
-    {1225, 18, 21, 21, 2, -20},  // 0x44 'D'
-    {1273, 19, 21, 21, 1, -20},  // 0x45 'E'
-    {1323, 19, 21, 21, 1, -20},  // 0x46 'F'
-    {1373, 20, 21, 21, 1, -20},  // 0x47 'G'
-    {1426, 21, 21, 21, 0, -20},  // 0x48 'H'
-    {1482, 14, 21, 21, 4, -20},  // 0x49 'I'
-    {1519, 19, 21, 21, 2, -20},  // 0x4A 'J'
-    {1569, 20, 21, 21, 1, -20},  // 0x4B 'K'
-    {1622, 18, 21, 21, 2, -20},  // 0x4C 'L'
-    {1670, 23, 21, 21, -1, -20}, // 0x4D 'M'
-    {1731, 20, 21, 21, 1, -20},  // 0x4E 'N'
-    {1784, 20, 21, 21, 1, -20},  // 0x4F 'O'
-    {1837, 18, 21, 21, 1, -20},  // 0x50 'P'
-    {1885, 20, 26, 21, 1, -20},  // 0x51 'Q'
-    {1950, 21, 21, 21, 0, -20},  // 0x52 'R'
-    {2006, 17, 21, 21, 2, -20},  // 0x53 'S'
-    {2051, 19, 21, 21, 1, -20},  // 0x54 'T'
-    {2101, 21, 21, 21, 0, -20},  // 0x55 'U'
-    {2157, 23, 21, 21, -1, -20}, // 0x56 'V'
-    {2218, 21, 21, 21, 0, -20},  // 0x57 'W'
-    {2274, 19, 21, 21, 1, -20},  // 0x58 'X'
-    {2324, 20, 21, 21, 1, -20},  // 0x59 'Y'
-    {2377, 16, 21, 21, 3, -20},  // 0x5A 'Z'
-    {2419, 8, 27, 21, 9, -21},   // 0x5B '['
-    {2446, 15, 28, 21, 3, -23},  // 0x5C '\'
-    {2499, 8, 27, 21, 4, -21},   // 0x5D ']'
-    {2526, 15, 11, 21, 3, -21},  // 0x5E '^'
-    {2547, 21, 4, 21, 0, 4},     // 0x5F '_'
-    {2558, 6, 6, 21, 6, -22},    // 0x60 '`'
-    {2563, 19, 16, 21, 1, -15},  // 0x61 'a'
-    {2601, 19, 22, 21, 1, -21},  // 0x62 'b'
-    {2654, 17, 16, 21, 2, -15},  // 0x63 'c'
-    {2688, 20, 22, 21, 1, -21},  // 0x64 'd'
-    {2743, 18, 16, 21, 1, -15},  // 0x65 'e'
-    {2779, 16, 22, 21, 4, -21},  // 0x66 'f'
-    {2823, 19, 23, 21, 1, -15},  // 0x67 'g'
-    {2878, 21, 22, 21, 0, -21},  // 0x68 'h'
-    {2936, 16, 22, 21, 3, -21},  // 0x69 'i'
-    {2980, 12, 29, 21, 5, -21},  // 0x6A 'j'
-    {3024, 18, 22, 21, 2, -21},  // 0x6B 'k'
-    {3074, 16, 22, 21, 3, -21},  // 0x6C 'l'
-    {3118, 22, 16, 21, -1, -15}, // 0x6D 'm'
-    {3162, 20, 16, 21, 0, -15},  // 0x6E 'n'
-    {3202, 19, 16, 21, 1, -15},  // 0x6F 'o'
-    {3240, 21, 23, 21, 0, -15},  // 0x70 'p'
-    {3301, 21, 23, 22, 1, -15},  // 0x71 'q'
-    {3362, 17, 16, 21, 3, -15},  // 0x72 'r'
-    {3396, 16, 16, 21, 3, -15},  // 0x73 's'
-    {3428, 17, 21, 21, 1, -20},  // 0x74 't'
-    {3473, 18, 16, 21, 1, -15},  // 0x75 'u'
-    {3509, 21, 16, 21, 0, -15},  // 0x76 'v'
-    {3551, 21, 16, 21, 0, -15},  // 0x77 'w'
-    {3593, 19, 16, 21, 1, -15},  // 0x78 'x'
-    {3631, 19, 23, 21, 1, -15},  // 0x79 'y'
-    {3686, 14, 16, 21, 3, -15},  // 0x7A 'z'
-    {3714, 10, 27, 21, 6, -21},  // 0x7B '{'
-    {3748, 4, 27, 21, 9, -21},   // 0x7C '|'
-    {3762, 10, 27, 21, 6, -21},  // 0x7D '}'
-    {3796, 17, 8, 21, 2, -13}};  // 0x7E '~'
-
-const GFXfont FreeMonoBold18pt7b PROGMEM = {
-    (uint8_t *)FreeMonoBold18pt7bBitmaps, (GFXglyph *)FreeMonoBold18pt7bGlyphs,
-    0x20, 0x7E, 35};
-
-// Approx. 4485 bytes

+ 0 - 671
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoBold24pt7b.h

@@ -1,671 +0,0 @@
-const uint8_t FreeMonoBold24pt7bBitmaps[] PROGMEM = {
-    0x38, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xF3, 0xE7, 0xCF,
-    0x9F, 0x3E, 0x7C, 0xF9, 0xF3, 0xE3, 0x82, 0x00, 0x00, 0x00, 0x71, 0xF7,
-    0xFF, 0xEF, 0x9E, 0x00, 0xFC, 0x7E, 0xF8, 0x7D, 0xF0, 0xFB, 0xE1, 0xF7,
-    0xC3, 0xEF, 0x87, 0xDF, 0x0F, 0xBE, 0x1F, 0x38, 0x1C, 0x70, 0x38, 0xE0,
-    0x71, 0xC0, 0xE3, 0x81, 0xC7, 0x03, 0x80, 0x01, 0xC1, 0xC0, 0x0F, 0x8F,
-    0x80, 0x3E, 0x3E, 0x00, 0xF8, 0xF8, 0x03, 0xE3, 0xE0, 0x0F, 0x8F, 0x80,
-    0x7E, 0x3E, 0x01, 0xF0, 0xF8, 0x07, 0xC7, 0xC0, 0x1F, 0x1F, 0x03, 0xFF,
-    0xFF, 0x9F, 0xFF, 0xFF, 0x7F, 0xFF, 0xFD, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF,
-    0x81, 0xF1, 0xF0, 0x07, 0xC7, 0xC0, 0x1F, 0x1F, 0x00, 0x7C, 0x7C, 0x1F,
-    0xFF, 0xFC, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0x9F, 0xFF,
-    0xFC, 0x0F, 0x8F, 0x80, 0x3E, 0x3E, 0x00, 0xF8, 0xF8, 0x03, 0xE3, 0xE0,
-    0x0F, 0x8F, 0x80, 0x3E, 0x3E, 0x00, 0xF8, 0xF8, 0x03, 0xE3, 0xE0, 0x0F,
-    0x8F, 0x80, 0x3C, 0x3C, 0x00, 0x00, 0xE0, 0x00, 0x3E, 0x00, 0x07, 0xC0,
-    0x00, 0xF8, 0x00, 0x1F, 0x00, 0x1F, 0xFF, 0x07, 0xFF, 0xF1, 0xFF, 0xFE,
-    0x7F, 0xFF, 0xDF, 0xC1, 0xFB, 0xF0, 0x1F, 0x7C, 0x01, 0xEF, 0x80, 0x39,
-    0xF8, 0x00, 0x3F, 0xF8, 0x03, 0xFF, 0xE0, 0x3F, 0xFF, 0x03, 0xFF, 0xF0,
-    0x0F, 0xFF, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0xC0, 0x07, 0xF8, 0x00, 0xFF,
-    0x80, 0x1F, 0xF8, 0x07, 0xFF, 0x81, 0xFB, 0xFF, 0xFF, 0x7F, 0xFF, 0xCF,
-    0xFF, 0xF1, 0xDF, 0xFC, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00,
-    0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x01, 0xC0, 0x00,
-    0x0F, 0x80, 0x00, 0xFF, 0x00, 0x1F, 0xFC, 0x00, 0xF0, 0xE0, 0x0F, 0x07,
-    0x80, 0x70, 0x1C, 0x03, 0x80, 0xE0, 0x1C, 0x07, 0x00, 0xF0, 0x78, 0x03,
-    0xC3, 0x80, 0x1F, 0xFC, 0x00, 0x7F, 0xC1, 0xF0, 0xF8, 0x7F, 0x00, 0x3F,
-    0xF0, 0x0F, 0xFC, 0x03, 0xFF, 0x00, 0xFF, 0xC0, 0x07, 0xE0, 0xF8, 0x38,
-    0x1F, 0xE0, 0x01, 0xFF, 0x80, 0x0F, 0x1E, 0x00, 0xF0, 0x78, 0x07, 0x01,
-    0xC0, 0x38, 0x0E, 0x01, 0xC0, 0x70, 0x0F, 0x07, 0x80, 0x38, 0x78, 0x01,
-    0xFF, 0xC0, 0x07, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x1F, 0xFC,
-    0x01, 0xFF, 0xE0, 0x1F, 0xFF, 0x00, 0xFF, 0xF8, 0x0F, 0xC7, 0x00, 0x7C,
-    0x10, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xF0, 0x00,
-    0x1F, 0x80, 0x00, 0xFE, 0x00, 0x0F, 0xF8, 0x00, 0xFF, 0xC7, 0xCF, 0xFF,
-    0x3F, 0x7E, 0xFF, 0xFF, 0xE7, 0xFF, 0xBE, 0x1F, 0xF9, 0xF0, 0x7F, 0x8F,
-    0x83, 0xFC, 0x7C, 0x0F, 0xE3, 0xF0, 0x7F, 0xCF, 0xFF, 0xFF, 0x7F, 0xFF,
-    0xF9, 0xFF, 0xFF, 0xC7, 0xFF, 0xFC, 0x0F, 0xE0, 0x00, 0xFD, 0xF7, 0xDF,
-    0x7D, 0xF7, 0xDF, 0x38, 0xE3, 0x8E, 0x38, 0xE0, 0x01, 0x80, 0xF0, 0x7C,
-    0x3F, 0x0F, 0xC7, 0xE1, 0xF8, 0xFC, 0x3E, 0x0F, 0x87, 0xC1, 0xF0, 0x7C,
-    0x1F, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F,
-    0x81, 0xF0, 0x7C, 0x1F, 0x07, 0xC0, 0xF8, 0x3E, 0x0F, 0xC1, 0xF0, 0x7E,
-    0x0F, 0x83, 0xF0, 0x7C, 0x1F, 0x03, 0xC0, 0x60, 0x3C, 0x0F, 0x83, 0xF0,
-    0xFC, 0x1F, 0x83, 0xE0, 0xFC, 0x1F, 0x07, 0xC1, 0xF8, 0x3E, 0x0F, 0x83,
-    0xE0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C,
-    0x1E, 0x0F, 0x83, 0xE0, 0xF8, 0x7C, 0x1F, 0x0F, 0xC3, 0xE1, 0xF8, 0x7C,
-    0x3F, 0x0F, 0x83, 0xE0, 0xF0, 0x00, 0x00, 0x70, 0x00, 0x07, 0xC0, 0x00,
-    0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x10, 0x7C, 0x11, 0xF3, 0xE7,
-    0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0x87, 0xFF, 0xF0, 0x07,
-    0xFC, 0x00, 0x3F, 0xE0, 0x03, 0xFF, 0x80, 0x3F, 0x7E, 0x01, 0xFB, 0xF0,
-    0x1F, 0x8F, 0xC0, 0xF8, 0x3E, 0x03, 0x80, 0xE0, 0x00, 0x38, 0x00, 0x00,
-    0xF8, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F,
-    0x80, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8,
-    0x01, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xDF, 0xFF, 0xFF, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00,
-    0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00,
-    0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x70, 0x00, 0x1F,
-    0x8F, 0x87, 0xC7, 0xC3, 0xE1, 0xE1, 0xF0, 0xF0, 0x78, 0x38, 0x3C, 0x1C,
-    0x0E, 0x06, 0x00, 0x7F, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFE, 0x7D, 0xFF, 0xFF, 0xFF, 0xEF, 0x80,
-    0x00, 0x00, 0x60, 0x00, 0x0F, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x01,
-    0xF0, 0x00, 0x3E, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00,
-    0xF8, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00,
-    0x3E, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x0F, 0xC0, 0x00, 0xF8, 0x00,
-    0x1F, 0x80, 0x01, 0xF0, 0x00, 0x3F, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00,
-    0x07, 0xC0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x1F, 0x00,
-    0x01, 0xF0, 0x00, 0x3E, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x07, 0xC0,
-    0x00, 0xFC, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x00, 0x00, 0x01,
-    0xFC, 0x00, 0x3F, 0xF8, 0x03, 0xFF, 0xE0, 0x3F, 0xFF, 0x83, 0xFF, 0xFE,
-    0x1F, 0x83, 0xF1, 0xF8, 0x0F, 0xCF, 0x80, 0x3E, 0x7C, 0x01, 0xF7, 0xC0,
-    0x07, 0xFE, 0x00, 0x3F, 0xF0, 0x01, 0xFF, 0x80, 0x0F, 0xFC, 0x00, 0x7F,
-    0xE0, 0x03, 0xFF, 0x00, 0x1F, 0xF8, 0x00, 0xFF, 0xC0, 0x07, 0xFE, 0x00,
-    0x3F, 0xF0, 0x01, 0xFF, 0x80, 0x0F, 0xFC, 0x00, 0x7D, 0xF0, 0x07, 0xCF,
-    0x80, 0x3E, 0x7E, 0x03, 0xF1, 0xF8, 0x3F, 0x0F, 0xFF, 0xF8, 0x3F, 0xFF,
-    0x80, 0xFF, 0xF8, 0x03, 0xFF, 0x80, 0x07, 0xF0, 0x00, 0x01, 0xF8, 0x00,
-    0x3F, 0x80, 0x0F, 0xF8, 0x01, 0xFF, 0x80, 0x7F, 0xF8, 0x0F, 0xEF, 0x80,
-    0xFC, 0xF8, 0x07, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8,
-    0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F,
-    0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00,
-    0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x3F, 0xFF, 0xE7,
-    0xFF, 0xFF, 0x7F, 0xFF, 0xF7, 0xFF, 0xFF, 0x3F, 0xFF, 0xE0, 0x01, 0xFC,
-    0x00, 0x3F, 0xF8, 0x07, 0xFF, 0xF0, 0x7F, 0xFF, 0xC7, 0xFF, 0xFF, 0x3F,
-    0x03, 0xFB, 0xF0, 0x07, 0xFF, 0x00, 0x1F, 0xF8, 0x00, 0xFB, 0x80, 0x07,
-    0xC0, 0x00, 0x3E, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0x00, 0x03, 0xF8, 0x00,
-    0x3F, 0x80, 0x03, 0xF8, 0x00, 0x3F, 0x80, 0x03, 0xF8, 0x00, 0x3F, 0x00,
-    0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xE0,
-    0x0E, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x03, 0xF8, 0x00, 0xFF, 0xF8, 0x0F, 0xFF,
-    0xE0, 0xFF, 0xFF, 0x8F, 0xFF, 0xFE, 0x7E, 0x03, 0xF1, 0xC0, 0x0F, 0xC0,
-    0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0xFC, 0x00, 0x0F,
-    0xC0, 0x0F, 0xFC, 0x00, 0xFF, 0xC0, 0x07, 0xFC, 0x00, 0x3F, 0xF0, 0x00,
-    0xFF, 0xC0, 0x00, 0x7F, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xF0, 0x00, 0x0F,
-    0x80, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x01, 0xFF, 0xC0,
-    0x3F, 0xBF, 0xFF, 0xFD, 0xFF, 0xFF, 0xC7, 0xFF, 0xFC, 0x1F, 0xFF, 0xC0,
-    0x1F, 0xF0, 0x00, 0x00, 0x3F, 0x80, 0x03, 0xF8, 0x00, 0x7F, 0x80, 0x07,
-    0xF8, 0x00, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xEF, 0x80, 0x3E, 0xF8, 0x03,
-    0xCF, 0x80, 0x7C, 0xF8, 0x0F, 0x8F, 0x80, 0xF0, 0xF8, 0x1F, 0x0F, 0x81,
-    0xE0, 0xF8, 0x3E, 0x0F, 0x87, 0xC0, 0xF8, 0x78, 0x0F, 0x8F, 0xFF, 0xFE,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x0F,
-    0x80, 0x07, 0xFE, 0x00, 0xFF, 0xF0, 0x0F, 0xFF, 0x00, 0xFF, 0xF0, 0x07,
-    0xFE, 0x3F, 0xFF, 0xC1, 0xFF, 0xFF, 0x0F, 0xFF, 0xF8, 0x7F, 0xFF, 0xC3,
-    0xFF, 0xFC, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00,
-    0x01, 0xF0, 0x00, 0x0F, 0xBF, 0x00, 0x7F, 0xFF, 0x03, 0xFF, 0xFC, 0x1F,
-    0xFF, 0xF0, 0xFF, 0xFF, 0x83, 0xC0, 0xFE, 0x00, 0x01, 0xF0, 0x00, 0x0F,
-    0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00,
-    0x03, 0xE0, 0x00, 0x3F, 0xF0, 0x03, 0xF7, 0xE0, 0x3F, 0xBF, 0xFF, 0xF9,
-    0xFF, 0xFF, 0xC7, 0xFF, 0xFC, 0x1F, 0xFF, 0x80, 0x1F, 0xF0, 0x00, 0x00,
-    0x1F, 0xC0, 0x0F, 0xFF, 0x01, 0xFF, 0xF0, 0x7F, 0xFF, 0x0F, 0xFF, 0xE1,
-    0xFF, 0x00, 0x1F, 0xC0, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x07, 0xE0, 0x00,
-    0x7C, 0x00, 0x0F, 0x8F, 0xC0, 0xF9, 0xFF, 0x0F, 0xFF, 0xF8, 0xFF, 0xFF,
-    0xCF, 0xFF, 0xFC, 0xFF, 0x0F, 0xEF, 0xE0, 0x3E, 0xFC, 0x03, 0xFF, 0x80,
-    0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xF7, 0xC0, 0x3F, 0x7E,
-    0x03, 0xF3, 0xF0, 0x7E, 0x3F, 0xFF, 0xE1, 0xFF, 0xFC, 0x0F, 0xFF, 0x80,
-    0x7F, 0xF0, 0x01, 0xFC, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x1F, 0xF0, 0x03, 0xE0, 0x00,
-    0x3E, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00,
-    0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x1F, 0x00,
-    0x01, 0xF0, 0x00, 0x3E, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x07, 0xC0,
-    0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8,
-    0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x06, 0x00, 0x01, 0xF8, 0x00, 0xFF,
-    0xF0, 0x1F, 0xFF, 0x83, 0xFF, 0xFC, 0x7F, 0xFF, 0xE7, 0xE0, 0x7E, 0xFC,
-    0x03, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xF7,
-    0xC0, 0x3E, 0x7E, 0x07, 0xE3, 0xFF, 0xFC, 0x0F, 0xFF, 0x00, 0xFF, 0xF0,
-    0x1F, 0xFF, 0x83, 0xFF, 0xFC, 0x7F, 0x0F, 0xE7, 0xC0, 0x3E, 0xF8, 0x01,
-    0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xFC, 0x03, 0xF7, 0xE0,
-    0x7E, 0x7F, 0xFF, 0xE3, 0xFF, 0xFC, 0x1F, 0xFF, 0x80, 0xFF, 0xF0, 0x03,
-    0xFC, 0x00, 0x03, 0xF8, 0x00, 0xFF, 0xE0, 0x1F, 0xFF, 0x83, 0xFF, 0xF8,
-    0x7F, 0xFF, 0xC7, 0xE0, 0xFE, 0xFC, 0x03, 0xEF, 0x80, 0x3E, 0xF8, 0x01,
-    0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x3F, 0xFC, 0x07, 0xF7, 0xE0,
-    0xFF, 0x7F, 0xFF, 0xF3, 0xFF, 0xFF, 0x1F, 0xFF, 0xF0, 0xFF, 0x9F, 0x03,
-    0xF1, 0xF0, 0x00, 0x3F, 0x00, 0x03, 0xE0, 0x00, 0x7E, 0x00, 0x0F, 0xC0,
-    0x01, 0xFC, 0x00, 0x3F, 0x80, 0x0F, 0xF0, 0x7F, 0xFE, 0x0F, 0xFF, 0xC0,
-    0xFF, 0xF8, 0x0F, 0xFF, 0x00, 0x3F, 0x80, 0x00, 0x7D, 0xFF, 0xFF, 0xFF,
-    0xEF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xFF,
-    0xFF, 0xFF, 0xEF, 0x80, 0x0F, 0x87, 0xF1, 0xFC, 0x7F, 0x1F, 0xC3, 0xE0,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
-    0x1F, 0x87, 0xE1, 0xF0, 0xFC, 0x3E, 0x0F, 0x03, 0xC1, 0xE0, 0x78, 0x1C,
-    0x07, 0x01, 0x80, 0x00, 0x00, 0x04, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x7F,
-    0x00, 0x01, 0xFE, 0x00, 0x07, 0xFC, 0x00, 0x1F, 0xF0, 0x00, 0x7F, 0xC0,
-    0x01, 0xFF, 0x00, 0x07, 0xFE, 0x00, 0x1F, 0xF8, 0x00, 0x7F, 0xE0, 0x00,
-    0xFF, 0xE0, 0x00, 0x1F, 0xF8, 0x00, 0x07, 0xFE, 0x00, 0x01, 0xFF, 0x80,
-    0x00, 0x7F, 0xE0, 0x00, 0x1F, 0xF8, 0x00, 0x07, 0xFC, 0x00, 0x01, 0xFE,
-    0x00, 0x00, 0x7F, 0x00, 0x00, 0x1E, 0x7F, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFE, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFE,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFE,
-    0x00, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x07,
-    0xFC, 0x00, 0x03, 0xFE, 0x00, 0x01, 0xFF, 0x00, 0x00, 0xFF, 0x80, 0x00,
-    0x7F, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x3F, 0xF0, 0x00, 0x3F, 0xF0, 0x01,
-    0xFF, 0x00, 0x0F, 0xF8, 0x00, 0x7F, 0xC0, 0x03, 0xFE, 0x00, 0x1F, 0xF0,
-    0x00, 0xFF, 0x80, 0x03, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x03, 0xF8, 0x01, 0xFF, 0xF0, 0xFF, 0xFF, 0x8F,
-    0xFF, 0xFC, 0xFF, 0xFF, 0xEF, 0xC0, 0x7E, 0xF8, 0x03, 0xFF, 0x80, 0x1F,
-    0x70, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x3F,
-    0xE0, 0x0F, 0xFC, 0x01, 0xFF, 0x00, 0x0F, 0xC0, 0x00, 0xF0, 0x00, 0x0F,
-    0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x1F, 0x00, 0x03, 0xF8, 0x00, 0x3F, 0x80, 0x03, 0xF8, 0x00,
-    0x3F, 0x80, 0x01, 0xF0, 0x00, 0x01, 0xF0, 0x00, 0xFF, 0x80, 0x3F, 0xF8,
-    0x0F, 0xFF, 0x83, 0xE0, 0xF8, 0x78, 0x07, 0x1E, 0x00, 0xF3, 0x80, 0x0E,
-    0x70, 0x01, 0xDE, 0x00, 0x3B, 0x80, 0x3F, 0x70, 0x1F, 0xEE, 0x07, 0xFD,
-    0xC1, 0xFF, 0xB8, 0x7E, 0x77, 0x0F, 0x0E, 0xE3, 0xC1, 0xDC, 0x70, 0x3B,
-    0x8E, 0x07, 0x71, 0xC0, 0xEE, 0x3C, 0x1D, 0xC3, 0xC3, 0xB8, 0x7F, 0xF7,
-    0x07, 0xFF, 0xE0, 0x7F, 0xFC, 0x03, 0xFB, 0xC0, 0x00, 0x38, 0x00, 0x07,
-    0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x61, 0xF0, 0x3E, 0x1F, 0xFF, 0xC3,
-    0xFF, 0xF0, 0x1F, 0xFC, 0x01, 0xFC, 0x00, 0x07, 0xFF, 0x80, 0x00, 0x7F,
-    0xFE, 0x00, 0x03, 0xFF, 0xF0, 0x00, 0x1F, 0xFF, 0xC0, 0x00, 0x7F, 0xFE,
-    0x00, 0x00, 0x1F, 0xF0, 0x00, 0x01, 0xF7, 0xC0, 0x00, 0x0F, 0xBE, 0x00,
-    0x00, 0x7D, 0xF8, 0x00, 0x07, 0xC7, 0xC0, 0x00, 0x3E, 0x3E, 0x00, 0x03,
-    0xE0, 0xF8, 0x00, 0x1F, 0x07, 0xC0, 0x00, 0xF0, 0x3F, 0x00, 0x0F, 0x80,
-    0xF8, 0x00, 0x7F, 0xFF, 0xC0, 0x07, 0xFF, 0xFF, 0x00, 0x3F, 0xFF, 0xF8,
-    0x03, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xFF, 0x00, 0xF8, 0x00, 0xF8, 0x0F,
-    0x80, 0x03, 0xE1, 0xFF, 0x80, 0xFF, 0xDF, 0xFE, 0x0F, 0xFF, 0xFF, 0xF0,
-    0x7F, 0xFF, 0xFF, 0x83, 0xFF, 0xDF, 0xF8, 0x0F, 0xFC, 0x7F, 0xFF, 0xC0,
-    0x3F, 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xF8, 0x7F, 0xFF,
-    0xFE, 0x07, 0xC0, 0x1F, 0xC1, 0xF0, 0x01, 0xF0, 0x7C, 0x00, 0x7C, 0x1F,
-    0x00, 0x1F, 0x07, 0xC0, 0x0F, 0xC1, 0xF0, 0x07, 0xE0, 0x7F, 0xFF, 0xF0,
-    0x1F, 0xFF, 0xF8, 0x07, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF,
-    0xFC, 0x1F, 0x00, 0x3F, 0x87, 0xC0, 0x03, 0xF1, 0xF0, 0x00, 0x7C, 0x7C,
-    0x00, 0x1F, 0x1F, 0x00, 0x07, 0xC7, 0xC0, 0x03, 0xF7, 0xFF, 0xFF, 0xFB,
-    0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x87, 0xFF, 0xFF,
-    0x00, 0x00, 0x7F, 0x00, 0x00, 0xFF, 0xE7, 0x01, 0xFF, 0xFF, 0xC1, 0xFF,
-    0xFF, 0xE1, 0xFF, 0xFF, 0xF1, 0xFE, 0x07, 0xF8, 0xFC, 0x01, 0xFC, 0xFC,
-    0x00, 0x7E, 0x7C, 0x00, 0x1F, 0x7E, 0x00, 0x0F, 0xBE, 0x00, 0x03, 0x9F,
-    0x00, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01,
-    0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x3E, 0x00, 0x00,
-    0x1F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xF0, 0x00, 0x39, 0xFC, 0x00,
-    0x7C, 0x7F, 0x80, 0xFF, 0x1F, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0x81, 0xFF,
-    0xFF, 0x00, 0x3F, 0xFF, 0x00, 0x07, 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x7F,
-    0xFF, 0xF0, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xC1,
-    0xF0, 0x0F, 0xF0, 0xF8, 0x01, 0xF8, 0x7C, 0x00, 0x7E, 0x3E, 0x00, 0x1F,
-    0x1F, 0x00, 0x0F, 0xCF, 0x80, 0x03, 0xE7, 0xC0, 0x01, 0xF3, 0xE0, 0x00,
-    0xF9, 0xF0, 0x00, 0x7C, 0xF8, 0x00, 0x3E, 0x7C, 0x00, 0x1F, 0x3E, 0x00,
-    0x0F, 0x9F, 0x00, 0x07, 0xCF, 0x80, 0x07, 0xE7, 0xC0, 0x03, 0xE3, 0xE0,
-    0x03, 0xF1, 0xF0, 0x07, 0xF1, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xF8, 0xFF,
-    0xFF, 0xF8, 0x7F, 0xFF, 0xF0, 0x1F, 0xFF, 0xE0, 0x00, 0x7F, 0xFF, 0xFF,
-    0x7F, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF,
-    0xF0, 0xF8, 0x00, 0xF8, 0x7C, 0x00, 0x7C, 0x3E, 0x0E, 0x3E, 0x1F, 0x0F,
-    0x9F, 0x0F, 0x87, 0xC7, 0x07, 0xC3, 0xE0, 0x03, 0xFF, 0xF0, 0x01, 0xFF,
-    0xF8, 0x00, 0xFF, 0xFC, 0x00, 0x7F, 0xFE, 0x00, 0x3F, 0xFF, 0x00, 0x1F,
-    0x0F, 0x80, 0x0F, 0x87, 0xC3, 0x87, 0xC1, 0xC3, 0xE3, 0xE0, 0x01, 0xF1,
-    0xF0, 0x00, 0xF8, 0xF8, 0x00, 0x7D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF,
-    0xFF, 0xF8, 0xF8, 0x00, 0x7C, 0x7C, 0x00, 0x3E, 0x3E, 0x00, 0x1F, 0x1F,
-    0x07, 0x0F, 0x8F, 0x87, 0xC3, 0x87, 0xC3, 0xE0, 0x03, 0xFF, 0xF0, 0x01,
-    0xFF, 0xF8, 0x00, 0xFF, 0xFC, 0x00, 0x7F, 0xFE, 0x00, 0x3F, 0xFF, 0x00,
-    0x1F, 0x0F, 0x80, 0x0F, 0x87, 0xC0, 0x07, 0xC3, 0xE0, 0x03, 0xE0, 0xE0,
-    0x01, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xFF, 0xF0, 0x01, 0xFF, 0xFC,
-    0x00, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0x00, 0x1F, 0xFF, 0x00, 0x00, 0x00,
-    0x7F, 0x8E, 0x00, 0xFF, 0xF7, 0x81, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xE1,
-    0xFF, 0xFF, 0xF1, 0xFE, 0x03, 0xF8, 0xFC, 0x00, 0xFC, 0xFC, 0x00, 0x3E,
-    0x7C, 0x00, 0x1F, 0x7E, 0x00, 0x07, 0x3E, 0x00, 0x00, 0x1F, 0x00, 0x00,
-    0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01, 0xF0, 0x0F,
-    0xFE, 0xF8, 0x0F, 0xFF, 0xFC, 0x07, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0x00,
-    0xFF, 0xFF, 0xC0, 0x01, 0xF3, 0xF0, 0x00, 0xF9, 0xFC, 0x00, 0x7C, 0x7F,
-    0x80, 0xFE, 0x3F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0x80,
-    0x7F, 0xFF, 0x00, 0x07, 0xFC, 0x00, 0x3F, 0xE1, 0xFF, 0x1F, 0xFC, 0xFF,
-    0xE7, 0xFF, 0x3F, 0xF9, 0xFF, 0xCF, 0xFE, 0x3F, 0xE1, 0xFF, 0x07, 0xC0,
-    0x0F, 0x81, 0xF0, 0x03, 0xE0, 0x7C, 0x00, 0xF8, 0x1F, 0x00, 0x3E, 0x07,
-    0xC0, 0x0F, 0x81, 0xF0, 0x03, 0xE0, 0x7F, 0xFF, 0xF8, 0x1F, 0xFF, 0xFE,
-    0x07, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xF8, 0x1F, 0x00,
-    0x3E, 0x07, 0xC0, 0x0F, 0x81, 0xF0, 0x03, 0xE0, 0x7C, 0x00, 0xF8, 0x1F,
-    0x00, 0x3E, 0x07, 0xC0, 0x0F, 0x87, 0xFE, 0x1F, 0xFB, 0xFF, 0xCF, 0xFF,
-    0xFF, 0xF3, 0xFF, 0xFF, 0xFC, 0xFF, 0xF7, 0xFE, 0x1F, 0xF8, 0x7F, 0xFF,
-    0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFC, 0x03, 0xE0,
-    0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0,
-    0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80,
-    0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00,
-    0x03, 0xE0, 0x1F, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD,
-    0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF,
-    0xE0, 0x3F, 0xFF, 0xF0, 0x0F, 0xFF, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x07,
-    0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00,
-    0x7C, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F, 0x80, 0x00,
-    0x07, 0xC0, 0xE0, 0x03, 0xE0, 0xF8, 0x01, 0xF0, 0x7C, 0x00, 0xF8, 0x3E,
-    0x00, 0x7C, 0x1F, 0x00, 0x3E, 0x0F, 0x80, 0x1F, 0x07, 0xC0, 0x1F, 0x83,
-    0xF8, 0x3F, 0x81, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xC0,
-    0x07, 0xFF, 0xC0, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0xE0, 0xFF, 0x9F, 0xFE,
-    0x3F, 0xFB, 0xFF, 0xC7, 0xFF, 0x7F, 0xF8, 0xFF, 0xE7, 0xFE, 0x0F, 0xF8,
-    0x3E, 0x01, 0xF8, 0x07, 0xC0, 0xFE, 0x00, 0xF8, 0x3F, 0x80, 0x1F, 0x0F,
-    0xE0, 0x03, 0xE3, 0xF8, 0x00, 0x7D, 0xFC, 0x00, 0x0F, 0xFF, 0x00, 0x01,
-    0xFF, 0xF0, 0x00, 0x3F, 0xFF, 0x00, 0x07, 0xFF, 0xF0, 0x00, 0xFE, 0x7F,
-    0x00, 0x1F, 0x87, 0xF0, 0x03, 0xE0, 0x7E, 0x00, 0x7C, 0x07, 0xE0, 0x0F,
-    0x80, 0x7E, 0x01, 0xF0, 0x0F, 0xC0, 0x3E, 0x00, 0xF8, 0x1F, 0xF8, 0x1F,
-    0xF7, 0xFF, 0x81, 0xFF, 0xFF, 0xF0, 0x3F, 0xFF, 0xFE, 0x07, 0xFD, 0xFF,
-    0x80, 0x7F, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x3F, 0xFF, 0x80,
-    0x1F, 0xFF, 0xC0, 0x07, 0xFF, 0xC0, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x00,
-    0x00, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01, 0xF0,
-    0x00, 0x00, 0xF8, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F,
-    0x00, 0x00, 0x0F, 0x80, 0x0E, 0x07, 0xC0, 0x0F, 0x83, 0xE0, 0x07, 0xC1,
-    0xF0, 0x03, 0xE0, 0xF8, 0x01, 0xF0, 0x7C, 0x00, 0xF8, 0x3E, 0x00, 0x7D,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xDF, 0xFF, 0xFF, 0xE0, 0x3F, 0x80, 0x03, 0xF8, 0xFF, 0x80, 0x0F, 0xF9,
-    0xFF, 0x00, 0x1F, 0xF3, 0xFF, 0x00, 0x7F, 0xE3, 0xFE, 0x00, 0xFF, 0x83,
-    0xFE, 0x03, 0xFE, 0x07, 0xFC, 0x07, 0xFC, 0x0F, 0xFC, 0x1F, 0xF8, 0x1F,
-    0xF8, 0x3F, 0xF0, 0x3F, 0xF0, 0x7F, 0xE0, 0x7D, 0xF1, 0xF7, 0xC0, 0xFB,
-    0xE3, 0xEF, 0x81, 0xF7, 0xEF, 0xDF, 0x03, 0xE7, 0xDF, 0x3E, 0x07, 0xCF,
-    0xFE, 0x7C, 0x0F, 0x8F, 0xF8, 0xF8, 0x1F, 0x1F, 0xF1, 0xF0, 0x3E, 0x1F,
-    0xE3, 0xE0, 0x7C, 0x3F, 0x87, 0xC0, 0xF8, 0x3F, 0x0F, 0x81, 0xF0, 0x00,
-    0x1F, 0x03, 0xE0, 0x00, 0x3E, 0x1F, 0xF8, 0x03, 0xFF, 0x7F, 0xF8, 0x0F,
-    0xFF, 0xFF, 0xF0, 0x1F, 0xFF, 0xFF, 0xE0, 0x3F, 0xFD, 0xFF, 0x80, 0x3F,
-    0xF0, 0x7F, 0x00, 0x7F, 0xEF, 0xF8, 0x0F, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF,
-    0xFC, 0x0F, 0xFF, 0x7F, 0xE0, 0x7F, 0xE1, 0xFF, 0x00, 0xF8, 0x1F, 0xF0,
-    0x0F, 0x81, 0xFF, 0x80, 0xF8, 0x1F, 0xFC, 0x0F, 0x81, 0xFF, 0xC0, 0xF8,
-    0x1F, 0x7E, 0x0F, 0x81, 0xF3, 0xF0, 0xF8, 0x1F, 0x3F, 0x0F, 0x81, 0xF1,
-    0xF8, 0xF8, 0x1F, 0x0F, 0xCF, 0x81, 0xF0, 0xFC, 0xF8, 0x1F, 0x07, 0xEF,
-    0x81, 0xF0, 0x3F, 0xF8, 0x1F, 0x03, 0xFF, 0x81, 0xF0, 0x1F, 0xF8, 0x1F,
-    0x00, 0xFF, 0x81, 0xF0, 0x0F, 0xF8, 0x7F, 0xE0, 0x7F, 0x8F, 0xFF, 0x03,
-    0xF8, 0xFF, 0xF0, 0x3F, 0x8F, 0xFF, 0x01, 0xF8, 0x7F, 0xE0, 0x0F, 0x80,
-    0x00, 0x3F, 0x80, 0x00, 0x3F, 0xFC, 0x00, 0x0F, 0xFF, 0xE0, 0x03, 0xFF,
-    0xFE, 0x00, 0xFF, 0xFF, 0xE0, 0x3F, 0xC1, 0xFE, 0x0F, 0xE0, 0x0F, 0xE1,
-    0xF8, 0x00, 0xFC, 0x7E, 0x00, 0x0F, 0xCF, 0x80, 0x00, 0xFB, 0xF0, 0x00,
-    0x1F, 0xFC, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x3F, 0xF0, 0x00, 0x07, 0xFE,
-    0x00, 0x00, 0xFF, 0xC0, 0x00, 0x1F, 0xF8, 0x00, 0x03, 0xFF, 0x00, 0x00,
-    0x7F, 0xF0, 0x00, 0x1F, 0xBE, 0x00, 0x03, 0xE7, 0xE0, 0x00, 0xFC, 0x7E,
-    0x00, 0x3F, 0x0F, 0xE0, 0x0F, 0xE0, 0xFF, 0x07, 0xF8, 0x0F, 0xFF, 0xFE,
-    0x00, 0xFF, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x00, 0xFF, 0xF8, 0x00, 0x03,
-    0xF8, 0x00, 0x7F, 0xFF, 0x80, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xF8, 0xFF,
-    0xFF, 0xFC, 0x7F, 0xFF, 0xFE, 0x1F, 0x00, 0xFE, 0x1F, 0x00, 0x3F, 0x1F,
-    0x00, 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x00, 0x1F, 0x1F,
-    0x00, 0x3F, 0x1F, 0x00, 0x7E, 0x1F, 0xFF, 0xFE, 0x1F, 0xFF, 0xFC, 0x1F,
-    0xFF, 0xF8, 0x1F, 0xFF, 0xF0, 0x1F, 0xFF, 0x80, 0x1F, 0x00, 0x00, 0x1F,
-    0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x7F, 0xFC, 0x00, 0xFF,
-    0xFE, 0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, 0x7F, 0xFC, 0x00, 0x00,
-    0x3F, 0x80, 0x00, 0x3F, 0xFC, 0x00, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xFE,
-    0x00, 0xFF, 0xFF, 0xE0, 0x3F, 0xC1, 0xFE, 0x0F, 0xE0, 0x0F, 0xE1, 0xF8,
-    0x00, 0xFC, 0x7E, 0x00, 0x0F, 0xCF, 0x80, 0x00, 0xFB, 0xF0, 0x00, 0x1F,
-    0xFC, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x3F, 0xF0, 0x00, 0x07, 0xFE, 0x00,
-    0x00, 0xFF, 0xC0, 0x00, 0x1F, 0xF8, 0x00, 0x03, 0xFF, 0x80, 0x00, 0xFD,
-    0xF0, 0x00, 0x1F, 0x3F, 0x00, 0x07, 0xE7, 0xF0, 0x01, 0xF8, 0x7F, 0x00,
-    0x7F, 0x07, 0xF8, 0x3F, 0xC0, 0xFF, 0xFF, 0xF0, 0x07, 0xFF, 0xFC, 0x00,
-    0x7F, 0xFF, 0x00, 0x07, 0xFF, 0xC0, 0x00, 0x7F, 0xC0, 0x00, 0x0F, 0x00,
-    0x00, 0x03, 0xFF, 0x87, 0x80, 0xFF, 0xFF, 0xF8, 0x3F, 0xFF, 0xFF, 0x07,
-    0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xF0, 0x0F, 0x01, 0xF8, 0x00, 0x7F, 0xFF,
-    0x80, 0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xF8, 0x0F, 0xFF, 0xFF, 0xC0,
-    0x7F, 0xFF, 0xFE, 0x00, 0xF8, 0x07, 0xE0, 0x0F, 0x80, 0x3F, 0x00, 0xF8,
-    0x01, 0xF0, 0x0F, 0x80, 0x1F, 0x00, 0xF8, 0x01, 0xF0, 0x0F, 0x80, 0x3F,
-    0x00, 0xF8, 0x0F, 0xE0, 0x0F, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xC0, 0x0F,
-    0xFF, 0xF0, 0x00, 0xFF, 0xFE, 0x00, 0x0F, 0xFF, 0xF0, 0x00, 0xF8, 0x3F,
-    0x80, 0x0F, 0x81, 0xFC, 0x00, 0xF8, 0x0F, 0xE0, 0x0F, 0x80, 0x7E, 0x00,
-    0xF8, 0x03, 0xF0, 0x7F, 0xF0, 0x1F, 0xEF, 0xFF, 0x81, 0xFF, 0xFF, 0xF8,
-    0x0F, 0xFF, 0xFF, 0x80, 0x7F, 0x7F, 0xF0, 0x07, 0xE0, 0x01, 0xFC, 0x70,
-    0x1F, 0xFD, 0xE0, 0xFF, 0xFF, 0x87, 0xFF, 0xFE, 0x3F, 0xFF, 0xF8, 0xFC,
-    0x0F, 0xE7, 0xE0, 0x1F, 0x9F, 0x00, 0x3E, 0x7C, 0x00, 0xF9, 0xF0, 0x01,
-    0xC7, 0xF0, 0x00, 0x0F, 0xF8, 0x00, 0x3F, 0xFF, 0x00, 0x7F, 0xFF, 0x00,
-    0xFF, 0xFF, 0x00, 0xFF, 0xFC, 0x00, 0x1F, 0xF8, 0x00, 0x07, 0xE0, 0x00,
-    0x0F, 0xDC, 0x00, 0x1F, 0xF8, 0x00, 0x7F, 0xE0, 0x01, 0xFF, 0xC0, 0x0F,
-    0xFF, 0xC0, 0xFE, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xCF, 0xFF, 0xFE, 0x1C,
-    0xFF, 0xF0, 0x00, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC1, 0xF0, 0x7F,
-    0xE0, 0xF8, 0x3F, 0xF0, 0x7C, 0x1F, 0xF8, 0x3E, 0x0F, 0xFC, 0x1F, 0x07,
-    0xFE, 0x0F, 0x83, 0xEE, 0x07, 0xC0, 0xE0, 0x03, 0xE0, 0x00, 0x01, 0xF0,
-    0x00, 0x00, 0xF8, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F,
-    0x00, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01,
-    0xF0, 0x00, 0x0F, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x07, 0xFF, 0xF0, 0x03,
-    0xFF, 0xF8, 0x00, 0xFF, 0xF8, 0x00, 0x7F, 0xE0, 0x7F, 0xEF, 0xFF, 0x0F,
-    0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0x7F, 0xE0, 0x7F, 0xE1,
-    0xF0, 0x00, 0xF8, 0x1F, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0xF8, 0x1F, 0x00,
-    0x0F, 0x81, 0xF0, 0x00, 0xF8, 0x1F, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0xF8,
-    0x1F, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0xF8, 0x1F, 0x00, 0x0F, 0x81, 0xF0,
-    0x00, 0xF8, 0x1F, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0xF8, 0x1F, 0x00, 0x0F,
-    0x81, 0xF0, 0x00, 0xF8, 0x1F, 0x80, 0x1F, 0x80, 0xF8, 0x01, 0xF0, 0x0F,
-    0xE0, 0x7F, 0x00, 0x7F, 0xFF, 0xE0, 0x03, 0xFF, 0xFE, 0x00, 0x1F, 0xFF,
-    0x80, 0x00, 0xFF, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x7F, 0xE0, 0x1F, 0xFB,
-    0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xFC, 0x0F, 0xFF, 0x7F,
-    0xE0, 0x1F, 0xF8, 0x7C, 0x00, 0x0F, 0x80, 0xF8, 0x00, 0x7C, 0x03, 0xE0,
-    0x01, 0xF0, 0x07, 0xC0, 0x0F, 0x80, 0x1F, 0x00, 0x3E, 0x00, 0x7E, 0x00,
-    0xF8, 0x00, 0xF8, 0x07, 0xC0, 0x03, 0xF0, 0x1F, 0x00, 0x07, 0xC0, 0xF8,
-    0x00, 0x1F, 0x03, 0xE0, 0x00, 0x7E, 0x1F, 0x00, 0x00, 0xF8, 0x7C, 0x00,
-    0x03, 0xF3, 0xF0, 0x00, 0x07, 0xCF, 0x80, 0x00, 0x1F, 0xBE, 0x00, 0x00,
-    0x3F, 0xF0, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x07,
-    0xF8, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0xFC,
-    0x00, 0x00, 0x7F, 0xE0, 0x7F, 0xEF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF,
-    0xFF, 0xFF, 0x0F, 0xFF, 0x7F, 0xE0, 0x7F, 0xE3, 0xE0, 0x00, 0x3C, 0x3E,
-    0x0F, 0x83, 0xC3, 0xE1, 0xF8, 0x3C, 0x3E, 0x1F, 0x87, 0xC3, 0xE1, 0xFC,
-    0x7C, 0x3E, 0x3F, 0xC7, 0xC1, 0xE3, 0xFC, 0x7C, 0x1F, 0x3F, 0xE7, 0xC1,
-    0xF7, 0xFE, 0x78, 0x1F, 0x7F, 0xE7, 0x81, 0xF7, 0x9F, 0xF8, 0x1F, 0xF9,
-    0xFF, 0x81, 0xFF, 0x9F, 0xF8, 0x0F, 0xF9, 0xFF, 0x80, 0xFF, 0x0F, 0xF8,
-    0x0F, 0xF0, 0xFF, 0x80, 0xFF, 0x0F, 0xF0, 0x0F, 0xE0, 0x7F, 0x00, 0xFE,
-    0x07, 0xF0, 0x0F, 0xE0, 0x7F, 0x00, 0xFC, 0x03, 0xF0, 0x07, 0xC0, 0x3F,
-    0x00, 0x7F, 0x80, 0xFF, 0x3F, 0xF0, 0x7F, 0xEF, 0xFC, 0x1F, 0xFB, 0xFF,
-    0x07, 0xFE, 0x7F, 0x80, 0xFF, 0x07, 0xE0, 0x3F, 0x00, 0xFC, 0x0F, 0x80,
-    0x1F, 0x87, 0xC0, 0x03, 0xF3, 0xE0, 0x00, 0xFF, 0xF8, 0x00, 0x1F, 0xFC,
-    0x00, 0x03, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x07,
-    0xF0, 0x00, 0x03, 0xFE, 0x00, 0x01, 0xFF, 0xC0, 0x00, 0xFC, 0xF8, 0x00,
-    0x7E, 0x3F, 0x00, 0x3F, 0x07, 0xE0, 0x1F, 0x80, 0xFC, 0x07, 0xE0, 0x1F,
-    0x07, 0xFC, 0x0F, 0xFB, 0xFF, 0x87, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xF8,
-    0x7F, 0xF7, 0xFC, 0x0F, 0xF8, 0x7F, 0x80, 0x7F, 0xBF, 0xF0, 0x3F, 0xFF,
-    0xFC, 0x0F, 0xFF, 0xFF, 0x03, 0xFF, 0x7F, 0x80, 0x7F, 0x87, 0xE0, 0x1F,
-    0x80, 0xFC, 0x07, 0xC0, 0x1F, 0x03, 0xE0, 0x03, 0xE1, 0xF8, 0x00, 0xFC,
-    0x7C, 0x00, 0x1F, 0xBE, 0x00, 0x03, 0xFF, 0x80, 0x00, 0x7F, 0xC0, 0x00,
-    0x1F, 0xE0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x00,
-    0x00, 0x07, 0xC0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F,
-    0x00, 0x00, 0x07, 0xC0, 0x00, 0x1F, 0xFF, 0x00, 0x0F, 0xFF, 0xE0, 0x03,
-    0xFF, 0xF8, 0x00, 0xFF, 0xFE, 0x00, 0x1F, 0xFF, 0x00, 0x7F, 0xFF, 0xF3,
-    0xFF, 0xFF, 0x9F, 0xFF, 0xFC, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0x3E, 0x03,
-    0xF1, 0xF0, 0x1F, 0x8F, 0x81, 0xF8, 0x7C, 0x1F, 0x83, 0xE1, 0xF8, 0x0E,
-    0x1F, 0x80, 0x01, 0xFC, 0x00, 0x0F, 0xC0, 0x00, 0xFC, 0x00, 0x0F, 0xC0,
-    0x00, 0xFC, 0x00, 0x0F, 0xE0, 0x70, 0x7E, 0x07, 0xC7, 0xE0, 0x3E, 0x7E,
-    0x01, 0xF7, 0xE0, 0x0F, 0xFF, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xBF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xBE, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8,
-    0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F,
-    0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0,
-    0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x60, 0x00, 0x0F, 0x00, 0x00,
-    0xF8, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x7E, 0x00,
-    0x03, 0xE0, 0x00, 0x3F, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x00, 0xF8,
-    0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x03,
-    0xE0, 0x00, 0x1F, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00,
-    0x07, 0xC0, 0x00, 0x7C, 0x00, 0x07, 0xE0, 0x00, 0x3E, 0x00, 0x03, 0xF0,
-    0x00, 0x1F, 0x00, 0x01, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x07,
-    0xC0, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00,
-    0x1F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F,
-    0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0,
-    0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F,
-    0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x7F, 0xFF,
-    0xFF, 0xFF, 0xFF, 0x7F, 0xC0, 0x00, 0x40, 0x00, 0x06, 0x00, 0x00, 0xF0,
-    0x00, 0x1F, 0x80, 0x03, 0xFC, 0x00, 0x7F, 0xE0, 0x0F, 0xFF, 0x00, 0xFF,
-    0xF8, 0x1F, 0x9F, 0x83, 0xF0, 0xFC, 0x7E, 0x07, 0xEF, 0xC0, 0x3F, 0xF8,
-    0x01, 0xFF, 0x80, 0x0F, 0x70, 0x00, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xF0, 0xE0, 0x78, 0x3E, 0x0F, 0xC3, 0xF0, 0x7C, 0x1E, 0x06, 0x01, 0xFF,
-    0x00, 0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0xE0, 0x1F, 0xFF, 0xF0, 0x0F, 0xFF,
-    0xF8, 0x00, 0x01, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x01, 0xFF,
-    0xF8, 0x07, 0xFF, 0xF8, 0x1F, 0xFF, 0xF8, 0x3F, 0xFF, 0xF8, 0x7F, 0xFF,
-    0xF8, 0x7F, 0x00, 0xF8, 0xFC, 0x00, 0xF8, 0xF8, 0x00, 0xF8, 0xF8, 0x03,
-    0xF8, 0xFC, 0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x3F, 0xFF,
-    0xFF, 0x1F, 0xFE, 0xFE, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x00, 0x1F, 0xE0,
-    0x00, 0x03, 0xFC, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x07, 0xF0, 0x00, 0x00,
-    0x3E, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x1F, 0x0F,
-    0xE0, 0x03, 0xEF, 0xFF, 0x00, 0x7F, 0xFF, 0xF8, 0x0F, 0xFF, 0xFF, 0x81,
-    0xFF, 0xFF, 0xF8, 0x3F, 0xE0, 0x7F, 0x07, 0xF0, 0x03, 0xF0, 0xFC, 0x00,
-    0x3E, 0x1F, 0x80, 0x07, 0xE3, 0xE0, 0x00, 0x7C, 0x7C, 0x00, 0x0F, 0x8F,
-    0x80, 0x01, 0xF1, 0xF0, 0x00, 0x3E, 0x3E, 0x00, 0x07, 0xC7, 0xE0, 0x01,
-    0xF8, 0xFC, 0x00, 0x3E, 0x1F, 0xC0, 0x0F, 0xCF, 0xFE, 0x07, 0xF3, 0xFF,
-    0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xE0, 0xFE, 0x7F, 0xF0,
-    0x00, 0x03, 0xF8, 0x00, 0x00, 0xFF, 0x18, 0x03, 0xFF, 0xFC, 0x0F, 0xFF,
-    0xFC, 0x1F, 0xFF, 0xFC, 0x3F, 0xFF, 0xFC, 0x3F, 0x81, 0xFC, 0x7E, 0x00,
-    0x7C, 0x7C, 0x00, 0x7C, 0xFC, 0x00, 0x3C, 0xF8, 0x00, 0x38, 0xF8, 0x00,
-    0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xFC, 0x00,
-    0x00, 0x7C, 0x00, 0x06, 0x7E, 0x00, 0x1F, 0x7F, 0x80, 0x7F, 0x3F, 0xFF,
-    0xFF, 0x1F, 0xFF, 0xFE, 0x0F, 0xFF, 0xFC, 0x07, 0xFF, 0xF8, 0x00, 0xFF,
-    0xC0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x1F, 0xE0, 0x00,
-    0x07, 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x03, 0xE0,
-    0x00, 0x00, 0xF8, 0x00, 0xFE, 0x3E, 0x00, 0xFF, 0xEF, 0x80, 0xFF, 0xFF,
-    0xE0, 0x7F, 0xFF, 0xF8, 0x3F, 0xFF, 0xFE, 0x1F, 0xE0, 0xFF, 0x87, 0xE0,
-    0x0F, 0xE1, 0xF0, 0x01, 0xF8, 0xFC, 0x00, 0x7E, 0x3E, 0x00, 0x0F, 0x8F,
-    0x80, 0x03, 0xE3, 0xE0, 0x00, 0xF8, 0xF8, 0x00, 0x3E, 0x3E, 0x00, 0x0F,
-    0x8F, 0xC0, 0x07, 0xE1, 0xF0, 0x01, 0xF8, 0x7E, 0x00, 0xFE, 0x0F, 0xE0,
-    0x7F, 0xE3, 0xFF, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xC0,
-    0xFF, 0xEF, 0xE0, 0x0F, 0xC0, 0x00, 0x00, 0xFE, 0x00, 0x03, 0xFF, 0xC0,
-    0x0F, 0xFF, 0xE0, 0x1F, 0xFF, 0xF0, 0x3F, 0xFF, 0xF8, 0x7F, 0x81, 0xFC,
-    0x7E, 0x00, 0x7E, 0xFC, 0x00, 0x3E, 0xF8, 0x00, 0x3E, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xF8, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7F, 0x80, 0x7E,
-    0x3F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFE, 0x07, 0xFF, 0xF8,
-    0x00, 0xFF, 0x80, 0x00, 0x3F, 0xE0, 0x03, 0xFF, 0xE0, 0x1F, 0xFF, 0xC0,
-    0xFF, 0xFF, 0x07, 0xFF, 0xF8, 0x1F, 0x80, 0x00, 0x7C, 0x00, 0x01, 0xF0,
-    0x00, 0x07, 0xC0, 0x01, 0xFF, 0xFF, 0x0F, 0xFF, 0xFE, 0x3F, 0xFF, 0xF8,
-    0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0x00, 0x7C, 0x00, 0x01, 0xF0, 0x00, 0x07,
-    0xC0, 0x00, 0x1F, 0x00, 0x00, 0x7C, 0x00, 0x01, 0xF0, 0x00, 0x07, 0xC0,
-    0x00, 0x1F, 0x00, 0x00, 0x7C, 0x00, 0x01, 0xF0, 0x00, 0x07, 0xC0, 0x01,
-    0xFF, 0xFF, 0x0F, 0xFF, 0xFE, 0x3F, 0xFF, 0xF8, 0xFF, 0xFF, 0xE1, 0xFF,
-    0xFF, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xFF, 0xBF, 0x83, 0xFF, 0xFF, 0xE3,
-    0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFB, 0xFC, 0x3F, 0xF9, 0xF8, 0x07, 0xF0,
-    0xF8, 0x01, 0xF8, 0xFC, 0x00, 0xFC, 0x7C, 0x00, 0x3E, 0x3E, 0x00, 0x1F,
-    0x1F, 0x00, 0x0F, 0x8F, 0x80, 0x07, 0xC7, 0xC0, 0x03, 0xE3, 0xF0, 0x03,
-    0xF0, 0xF8, 0x01, 0xF8, 0x7E, 0x01, 0xFC, 0x3F, 0xC3, 0xFE, 0x0F, 0xFF,
-    0xFF, 0x03, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xC0, 0x3F, 0xFB, 0xE0, 0x07,
-    0xF1, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFE, 0x00,
-    0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0x00, 0x3F, 0xFE, 0x00,
-    0x0F, 0xFC, 0x00, 0x7F, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00,
-    0x03, 0xFC, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xF0,
-    0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x0F, 0xC0, 0x07, 0xCF, 0xFC, 0x01,
-    0xF7, 0xFF, 0x80, 0x7F, 0xFF, 0xF0, 0x1F, 0xFF, 0xFC, 0x07, 0xFC, 0x1F,
-    0x81, 0xFC, 0x03, 0xE0, 0x7E, 0x00, 0xF8, 0x1F, 0x00, 0x3E, 0x07, 0xC0,
-    0x0F, 0x81, 0xF0, 0x03, 0xE0, 0x7C, 0x00, 0xF8, 0x1F, 0x00, 0x3E, 0x07,
-    0xC0, 0x0F, 0x81, 0xF0, 0x03, 0xE0, 0x7C, 0x00, 0xF8, 0x1F, 0x00, 0x3E,
-    0x1F, 0xF0, 0x3F, 0xEF, 0xFE, 0x1F, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xE1,
-    0xFF, 0xDF, 0xF0, 0x3F, 0xE0, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C,
-    0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x1F, 0xF8, 0x01, 0xFF, 0xC0, 0x0F, 0xFE, 0x00, 0x7F, 0xF0,
-    0x01, 0xFF, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x00,
-    0xF8, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80,
-    0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x7F, 0xFF, 0xF7, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0x00, 0x00, 0x7C,
-    0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7,
-    0xFF, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07,
-    0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00,
-    0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8,
-    0x00, 0x7C, 0x00, 0x3E, 0x00, 0x3F, 0x00, 0x3F, 0xBF, 0xFF, 0xBF, 0xFF,
-    0x9F, 0xFF, 0xCF, 0xFF, 0x83, 0xFF, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x80,
-    0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xF8,
-    0x00, 0x00, 0x7C, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F,
-    0x87, 0xFC, 0x07, 0xC7, 0xFF, 0x03, 0xE3, 0xFF, 0x81, 0xF1, 0xFF, 0xC0,
-    0xF8, 0x7F, 0xC0, 0x7C, 0xFE, 0x00, 0x3E, 0xFE, 0x00, 0x1F, 0xFE, 0x00,
-    0x0F, 0xFE, 0x00, 0x07, 0xFE, 0x00, 0x03, 0xFF, 0x80, 0x01, 0xFF, 0xE0,
-    0x00, 0xFF, 0xF8, 0x00, 0x7C, 0xFE, 0x00, 0x3E, 0x3F, 0x80, 0x1F, 0x0F,
-    0xE0, 0x3F, 0x81, 0xFF, 0xBF, 0xC1, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF0,
-    0x7F, 0xFB, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x01, 0xFF, 0xC0, 0x0F, 0xFE,
-    0x00, 0x7F, 0xF0, 0x01, 0xFF, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00,
-    0x1F, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0,
-    0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x00,
-    0xF8, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80,
-    0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x03, 0xFF,
-    0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xF8,
-    0x00, 0x3C, 0x1F, 0x00, 0xFD, 0xFC, 0xFF, 0x07, 0xFF, 0xFF, 0xFE, 0x1F,
-    0xFF, 0xFF, 0xF8, 0x7F, 0xFF, 0xFF, 0xF0, 0xFF, 0x1F, 0x87, 0xC1, 0xF8,
-    0x7E, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F,
-    0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1,
-    0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C,
-    0x1F, 0x07, 0xC1, 0xF1, 0xFE, 0x1F, 0x87, 0xEF, 0xFC, 0x7F, 0x1F, 0xFF,
-    0xF1, 0xFC, 0x7F, 0xFF, 0xC7, 0xF1, 0xFD, 0xFE, 0x1F, 0x87, 0xE0, 0x00,
-    0x1F, 0x80, 0x1F, 0x9F, 0xF8, 0x1F, 0xDF, 0xFE, 0x0F, 0xFF, 0xFF, 0x87,
-    0xFF, 0xFF, 0xC1, 0xFF, 0x07, 0xF0, 0x7F, 0x01, 0xF8, 0x3F, 0x00, 0x7C,
-    0x1F, 0x00, 0x3E, 0x0F, 0x80, 0x1F, 0x07, 0xC0, 0x0F, 0x83, 0xE0, 0x07,
-    0xC1, 0xF0, 0x03, 0xE0, 0xF8, 0x01, 0xF0, 0x7C, 0x00, 0xF8, 0x3E, 0x00,
-    0x7C, 0x1F, 0x00, 0x3E, 0x3F, 0xE0, 0x7F, 0xBF, 0xF8, 0x7F, 0xFF, 0xFC,
-    0x3F, 0xFF, 0xFE, 0x1F, 0xFB, 0xFE, 0x07, 0xF8, 0x00, 0x7F, 0x00, 0x01,
-    0xFF, 0xF0, 0x01, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xC1,
-    0xFE, 0x0F, 0xF1, 0xFC, 0x01, 0xFC, 0xFC, 0x00, 0x7E, 0xFC, 0x00, 0x1F,
-    0xFC, 0x00, 0x07, 0xFE, 0x00, 0x03, 0xFF, 0x00, 0x01, 0xFF, 0x80, 0x00,
-    0xFF, 0xC0, 0x00, 0x7F, 0xF0, 0x00, 0x7E, 0xF8, 0x00, 0x7E, 0x7F, 0x00,
-    0x7F, 0x1F, 0xC0, 0xFF, 0x07, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x80, 0x7F,
-    0xFF, 0x00, 0x1F, 0xFF, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x07, 0xE0, 0x03,
-    0xF9, 0xFF, 0xC0, 0x7F, 0xBF, 0xFE, 0x07, 0xFF, 0xFF, 0xF8, 0x7F, 0xFF,
-    0xFF, 0xC3, 0xFF, 0x83, 0xFC, 0x0F, 0xE0, 0x0F, 0xE0, 0xFC, 0x00, 0x7E,
-    0x0F, 0xC0, 0x03, 0xF0, 0xF8, 0x00, 0x1F, 0x0F, 0x80, 0x01, 0xF0, 0xF8,
-    0x00, 0x1F, 0x0F, 0x80, 0x01, 0xF0, 0xF8, 0x00, 0x3F, 0x0F, 0xC0, 0x03,
-    0xF0, 0xFE, 0x00, 0x7E, 0x0F, 0xF8, 0x1F, 0xE0, 0xFF, 0xFF, 0xFC, 0x0F,
-    0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xF0, 0x0F, 0x9F, 0xFC, 0x00, 0xF8, 0x7F,
-    0x00, 0x0F, 0x80, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00,
-    0xF8, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x0F, 0xFF, 0xC0, 0x00, 0xFF, 0xFC,
-    0x00, 0x0F, 0xFF, 0xC0, 0x00, 0x7F, 0xF8, 0x00, 0x00, 0x00, 0x7E, 0x00,
-    0x00, 0x3F, 0xF9, 0xFC, 0x0F, 0xFF, 0xDF, 0xE1, 0xFF, 0xFF, 0xFE, 0x3F,
-    0xFF, 0xFF, 0xE3, 0xF8, 0x1F, 0xFC, 0x7F, 0x00, 0x7F, 0x07, 0xC0, 0x03,
-    0xF0, 0xFC, 0x00, 0x3F, 0x0F, 0x80, 0x01, 0xF0, 0xF8, 0x00, 0x1F, 0x0F,
-    0x80, 0x01, 0xF0, 0xF8, 0x00, 0x1F, 0x0F, 0xC0, 0x01, 0xF0, 0xFC, 0x00,
-    0x3F, 0x07, 0xE0, 0x07, 0xF0, 0x7F, 0x81, 0xFF, 0x03, 0xFF, 0xFF, 0xF0,
-    0x1F, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xF0, 0x03, 0xFF, 0x9F, 0x00, 0x0F,
-    0xE1, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1F,
-    0x00, 0x00, 0x01, 0xF0, 0x00, 0x01, 0xFF, 0xE0, 0x00, 0x3F, 0xFF, 0x00,
-    0x03, 0xFF, 0xF0, 0x00, 0x3F, 0xFF, 0x00, 0x01, 0xFF, 0xE0, 0x00, 0x01,
-    0xF0, 0x3F, 0xC7, 0xFC, 0x7F, 0xCF, 0xFE, 0x7F, 0xDF, 0xFF, 0x7F, 0xFF,
-    0xFF, 0x3F, 0xFF, 0x0E, 0x07, 0xFC, 0x00, 0x07, 0xF8, 0x00, 0x07, 0xF0,
-    0x00, 0x07, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xC0,
-    0x00, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xC0,
-    0x00, 0x7F, 0xFF, 0xC0, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF,
-    0xE0, 0x7F, 0xFF, 0xC0, 0x03, 0xFC, 0x60, 0x7F, 0xFF, 0x87, 0xFF, 0xFC,
-    0x7F, 0xFF, 0xE7, 0xFF, 0xFF, 0x3F, 0x01, 0xF9, 0xF0, 0x07, 0xCF, 0xC0,
-    0x1C, 0x7F, 0xF0, 0x03, 0xFF, 0xF8, 0x0F, 0xFF, 0xF0, 0x3F, 0xFF, 0xC0,
-    0x3F, 0xFF, 0x00, 0x0F, 0xFD, 0xC0, 0x07, 0xFE, 0x00, 0x1F, 0xF8, 0x00,
-    0xFF, 0xF0, 0x1F, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xEF, 0xFF, 0xFE, 0x3F,
-    0xFF, 0xC0, 0x07, 0xF8, 0x00, 0x07, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x3E,
-    0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0xFF,
-    0xF8, 0x7F, 0xFF, 0xF8, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF,
-    0x80, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00,
-    0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00,
-    0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x03, 0x83, 0xF0, 0x1F, 0x87,
-    0xFF, 0xFF, 0x07, 0xFF, 0xFE, 0x0F, 0xFF, 0xF8, 0x07, 0xFF, 0xC0, 0x03,
-    0xFC, 0x00, 0x7F, 0x01, 0xFE, 0x7F, 0x81, 0xFF, 0x3F, 0xC0, 0xFF, 0x9F,
-    0xE0, 0x7F, 0xC7, 0xF0, 0x1F, 0xE0, 0xF8, 0x01, 0xF0, 0x7C, 0x00, 0xF8,
-    0x3E, 0x00, 0x7C, 0x1F, 0x00, 0x3E, 0x0F, 0x80, 0x1F, 0x07, 0xC0, 0x0F,
-    0x83, 0xE0, 0x07, 0xC1, 0xF0, 0x03, 0xE0, 0xF8, 0x01, 0xF0, 0x7C, 0x01,
-    0xF8, 0x3F, 0x01, 0xFC, 0x1F, 0xC1, 0xFF, 0x07, 0xFF, 0xFF, 0xC3, 0xFF,
-    0xFF, 0xE0, 0xFF, 0xF7, 0xF0, 0x3F, 0xF3, 0xF0, 0x03, 0xF0, 0x00, 0x7F,
-    0xE0, 0x7F, 0xEF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F,
-    0xFF, 0x7F, 0xE0, 0x7F, 0xE0, 0xF8, 0x01, 0xF0, 0x0F, 0xC0, 0x1F, 0x00,
-    0x7C, 0x03, 0xE0, 0x07, 0xE0, 0x3E, 0x00, 0x3E, 0x07, 0xC0, 0x03, 0xF0,
-    0x7C, 0x00, 0x1F, 0x0F, 0x80, 0x01, 0xF8, 0xF8, 0x00, 0x0F, 0x9F, 0x00,
-    0x00, 0xFD, 0xF0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x03,
-    0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x1F, 0x80,
-    0x00, 0x7F, 0x80, 0x1F, 0xEF, 0xFC, 0x03, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF,
-    0xFC, 0x03, 0xFF, 0x7F, 0x80, 0x1F, 0xE1, 0xF0, 0xF8, 0x7C, 0x1F, 0x1F,
-    0x87, 0xC1, 0xF1, 0xF8, 0xFC, 0x1F, 0x1F, 0xCF, 0x80, 0xFB, 0xFC, 0xF8,
-    0x0F, 0xBF, 0xDF, 0x80, 0xFB, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0x00, 0x7F,
-    0xDF, 0xF0, 0x07, 0xF9, 0xFF, 0x00, 0x7F, 0x9F, 0xE0, 0x07, 0xF0, 0xFE,
-    0x00, 0x3F, 0x0F, 0xE0, 0x03, 0xF0, 0x7E, 0x00, 0x3E, 0x07, 0xC0, 0x03,
-    0xE0, 0x3C, 0x00, 0x3F, 0xC0, 0xFF, 0x1F, 0xF8, 0x7F, 0xE7, 0xFE, 0x1F,
-    0xF9, 0xFF, 0x87, 0xFE, 0x3F, 0xC0, 0xFF, 0x03, 0xF8, 0x7F, 0x00, 0x7F,
-    0x3F, 0x80, 0x0F, 0xFF, 0xC0, 0x01, 0xFF, 0xE0, 0x00, 0x3F, 0xE0, 0x00,
-    0x07, 0xF8, 0x00, 0x07, 0xFF, 0x00, 0x03, 0xFF, 0xE0, 0x01, 0xFF, 0xFE,
-    0x00, 0xFE, 0x1F, 0xC0, 0x7F, 0x03, 0xF8, 0x7F, 0xC0, 0xFF, 0xBF, 0xF8,
-    0x7F, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0x87, 0xFF, 0x7F, 0xC0, 0xFF, 0x80,
-    0x7F, 0x80, 0x7F, 0xBF, 0xF0, 0x3F, 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0x03,
-    0xFF, 0x7F, 0x80, 0x7F, 0x8F, 0xC0, 0x07, 0x81, 0xF0, 0x03, 0xE0, 0x7E,
-    0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xF0, 0x3E, 0x00, 0x7C, 0x0F, 0x80,
-    0x0F, 0x87, 0xC0, 0x03, 0xE1, 0xF0, 0x00, 0x7C, 0xF8, 0x00, 0x1F, 0xFE,
-    0x00, 0x03, 0xFF, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x07,
-    0xF0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x80, 0x00,
-    0x07, 0xC0, 0x00, 0x03, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x1F, 0xFF, 0x80,
-    0x0F, 0xFF, 0xF0, 0x03, 0xFF, 0xFC, 0x00, 0xFF, 0xFF, 0x00, 0x1F, 0xFF,
-    0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xF0, 0x3F, 0xBE, 0x0F, 0xC3, 0x83, 0xF0, 0x00, 0xFC, 0x00,
-    0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF0, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F,
-    0xC0, 0x3B, 0xF0, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x78, 0x03, 0xF0, 0x1F, 0xC0, 0xFF, 0x07,
-    0xF8, 0x1F, 0x80, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01,
-    0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x0F, 0x81, 0xFE, 0x0F,
-    0xF0, 0x3F, 0x80, 0xFF, 0x01, 0xFE, 0x00, 0xFC, 0x01, 0xF0, 0x07, 0xC0,
-    0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF8,
-    0x07, 0xF8, 0x0F, 0xF0, 0x3F, 0xC0, 0x7F, 0x00, 0x78, 0x77, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xE0, 0x78, 0x03, 0xF0, 0x0F,
-    0xE0, 0x3F, 0xC0, 0x7F, 0x00, 0x7E, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80,
-    0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xE0,
-    0x07, 0xC0, 0x1F, 0xE0, 0x3F, 0xC0, 0x7F, 0x03, 0xFC, 0x1F, 0xE0, 0xFC,
-    0x03, 0xE0, 0x0F, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x3E,
-    0x00, 0xF8, 0x07, 0xE0, 0x7F, 0x83, 0xFC, 0x0F, 0xF0, 0x3F, 0x80, 0x78,
-    0x00, 0x07, 0x80, 0x00, 0x7F, 0x80, 0x03, 0xFF, 0x03, 0x9F, 0xFE, 0x1F,
-    0xFF, 0xFC, 0xFF, 0xF3, 0xFF, 0xFF, 0x87, 0xFF, 0x9C, 0x0F, 0xFC, 0x00,
-    0x0F, 0xE0, 0x00, 0x1F, 0x00};
-
-const GFXglyph FreeMonoBold24pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 28, 0, 1},         // 0x20 ' '
-    {0, 7, 31, 28, 10, -29},     // 0x21 '!'
-    {28, 15, 14, 28, 6, -28},    // 0x22 '"'
-    {55, 22, 34, 28, 3, -30},    // 0x23 '#'
-    {149, 19, 38, 28, 5, -31},   // 0x24 '$'
-    {240, 21, 30, 28, 4, -28},   // 0x25 '%'
-    {319, 21, 28, 28, 4, -26},   // 0x26 '&'
-    {393, 6, 14, 28, 11, -28},   // 0x27 '''
-    {404, 10, 37, 28, 12, -29},  // 0x28 '('
-    {451, 10, 37, 28, 6, -29},   // 0x29 ')'
-    {498, 21, 19, 28, 4, -28},   // 0x2A '*'
-    {548, 23, 26, 28, 3, -25},   // 0x2B '+'
-    {623, 9, 14, 28, 7, -6},     // 0x2C ','
-    {639, 24, 5, 28, 2, -15},    // 0x2D '-'
-    {654, 7, 6, 28, 11, -4},     // 0x2E '.'
-    {660, 20, 38, 28, 4, -32},   // 0x2F '/'
-    {755, 21, 31, 28, 4, -29},   // 0x30 '0'
-    {837, 20, 29, 28, 4, -28},   // 0x31 '1'
-    {910, 21, 30, 28, 3, -29},   // 0x32 '2'
-    {989, 21, 31, 28, 4, -29},   // 0x33 '3'
-    {1071, 20, 28, 28, 4, -27},  // 0x34 '4'
-    {1141, 21, 31, 28, 4, -29},  // 0x35 '5'
-    {1223, 20, 31, 28, 5, -29},  // 0x36 '6'
-    {1301, 20, 30, 28, 4, -29},  // 0x37 '7'
-    {1376, 20, 31, 28, 4, -29},  // 0x38 '8'
-    {1454, 20, 31, 28, 5, -29},  // 0x39 '9'
-    {1532, 7, 22, 28, 11, -20},  // 0x3A ':'
-    {1552, 10, 28, 28, 6, -20},  // 0x3B ';'
-    {1587, 24, 21, 28, 2, -23},  // 0x3C '<'
-    {1650, 24, 14, 28, 2, -19},  // 0x3D '='
-    {1692, 23, 22, 28, 3, -23},  // 0x3E '>'
-    {1756, 20, 29, 28, 5, -27},  // 0x3F '?'
-    {1829, 19, 36, 28, 4, -28},  // 0x40 '@'
-    {1915, 29, 27, 28, -1, -26}, // 0x41 'A'
-    {2013, 26, 27, 28, 1, -26},  // 0x42 'B'
-    {2101, 25, 29, 28, 2, -27},  // 0x43 'C'
-    {2192, 25, 27, 28, 1, -26},  // 0x44 'D'
-    {2277, 25, 27, 28, 1, -26},  // 0x45 'E'
-    {2362, 25, 27, 28, 1, -26},  // 0x46 'F'
-    {2447, 25, 29, 28, 2, -27},  // 0x47 'G'
-    {2538, 26, 27, 28, 1, -26},  // 0x48 'H'
-    {2626, 19, 27, 28, 5, -26},  // 0x49 'I'
-    {2691, 25, 28, 28, 3, -26},  // 0x4A 'J'
-    {2779, 27, 27, 28, 1, -26},  // 0x4B 'K'
-    {2871, 25, 27, 28, 2, -26},  // 0x4C 'L'
-    {2956, 31, 27, 28, -1, -26}, // 0x4D 'M'
-    {3061, 28, 27, 28, 0, -26},  // 0x4E 'N'
-    {3156, 27, 29, 28, 1, -27},  // 0x4F 'O'
-    {3254, 24, 27, 28, 1, -26},  // 0x50 'P'
-    {3335, 27, 35, 28, 1, -27},  // 0x51 'Q'
-    {3454, 28, 27, 28, 0, -26},  // 0x52 'R'
-    {3549, 22, 29, 28, 3, -27},  // 0x53 'S'
-    {3629, 25, 27, 28, 2, -26},  // 0x54 'T'
-    {3714, 28, 28, 28, 0, -26},  // 0x55 'U'
-    {3812, 30, 27, 28, -1, -26}, // 0x56 'V'
-    {3914, 28, 27, 28, 0, -26},  // 0x57 'W'
-    {4009, 26, 27, 28, 1, -26},  // 0x58 'X'
-    {4097, 26, 27, 28, 1, -26},  // 0x59 'Y'
-    {4185, 21, 27, 28, 4, -26},  // 0x5A 'Z'
-    {4256, 10, 37, 28, 12, -29}, // 0x5B '['
-    {4303, 20, 38, 28, 4, -32},  // 0x5C '\'
-    {4398, 10, 37, 28, 6, -29},  // 0x5D ']'
-    {4445, 20, 15, 28, 4, -29},  // 0x5E '^'
-    {4483, 28, 5, 28, 0, 5},     // 0x5F '_'
-    {4501, 9, 8, 28, 8, -30},    // 0x60 '`'
-    {4510, 24, 23, 28, 2, -21},  // 0x61 'a'
-    {4579, 27, 31, 28, 0, -29},  // 0x62 'b'
-    {4684, 24, 23, 28, 3, -21},  // 0x63 'c'
-    {4753, 26, 31, 28, 2, -29},  // 0x64 'd'
-    {4854, 24, 23, 28, 2, -21},  // 0x65 'e'
-    {4923, 22, 30, 28, 4, -29},  // 0x66 'f'
-    {5006, 25, 31, 28, 2, -21},  // 0x67 'g'
-    {5103, 26, 30, 28, 1, -29},  // 0x68 'h'
-    {5201, 21, 29, 28, 4, -28},  // 0x69 'i'
-    {5278, 17, 38, 28, 5, -28},  // 0x6A 'j'
-    {5359, 25, 30, 28, 2, -29},  // 0x6B 'k'
-    {5453, 21, 30, 28, 4, -29},  // 0x6C 'l'
-    {5532, 30, 22, 28, -1, -21}, // 0x6D 'm'
-    {5615, 25, 22, 28, 1, -21},  // 0x6E 'n'
-    {5684, 25, 23, 28, 2, -21},  // 0x6F 'o'
-    {5756, 28, 31, 28, 0, -21},  // 0x70 'p'
-    {5865, 28, 31, 28, 1, -21},  // 0x71 'q'
-    {5974, 24, 22, 28, 3, -21},  // 0x72 'r'
-    {6040, 21, 23, 28, 4, -21},  // 0x73 's'
-    {6101, 23, 28, 28, 1, -26},  // 0x74 't'
-    {6182, 25, 22, 28, 1, -20},  // 0x75 'u'
-    {6251, 28, 21, 28, 0, -20},  // 0x76 'v'
-    {6325, 28, 21, 28, 0, -20},  // 0x77 'w'
-    {6399, 26, 21, 28, 1, -20},  // 0x78 'x'
-    {6468, 26, 30, 28, 1, -20},  // 0x79 'y'
-    {6566, 19, 21, 28, 5, -20},  // 0x7A 'z'
-    {6616, 14, 37, 28, 7, -29},  // 0x7B '{'
-    {6681, 5, 36, 28, 12, -28},  // 0x7C '|'
-    {6704, 14, 37, 28, 8, -29},  // 0x7D '}'
-    {6769, 22, 10, 28, 3, -17}}; // 0x7E '~'
-
-const GFXfont FreeMonoBold24pt7b PROGMEM = {
-    (uint8_t *)FreeMonoBold24pt7bBitmaps, (GFXglyph *)FreeMonoBold24pt7bGlyphs,
-    0x20, 0x7E, 47};
-
-// Approx. 7469 bytes

+ 0 - 188
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoBold9pt7b.h

@@ -1,188 +0,0 @@
-const uint8_t FreeMonoBold9pt7bBitmaps[] PROGMEM = {
-    0xFF, 0xFF, 0xD2, 0x1F, 0x80, 0xEC, 0x89, 0x12, 0x24, 0x40, 0x36, 0x36,
-    0x36, 0x7F, 0x7F, 0x36, 0xFF, 0xFF, 0x3C, 0x3C, 0x3C, 0x00, 0x18, 0xFF,
-    0xFE, 0x3C, 0x1F, 0x1F, 0x83, 0x46, 0x8D, 0xF0, 0xC1, 0x83, 0x00, 0x61,
-    0x22, 0x44, 0x86, 0x67, 0x37, 0x11, 0x22, 0x4C, 0x70, 0x3C, 0x7E, 0x60,
-    0x60, 0x30, 0x7B, 0xDF, 0xCE, 0xFF, 0x7F, 0xC9, 0x24, 0x37, 0x66, 0xCC,
-    0xCC, 0xCC, 0x66, 0x31, 0xCE, 0x66, 0x33, 0x33, 0x33, 0x66, 0xC8, 0x18,
-    0x18, 0xFF, 0xFF, 0x3C, 0x3C, 0x66, 0x18, 0x18, 0x18, 0xFF, 0xFF, 0x18,
-    0x18, 0x18, 0x18, 0x6B, 0x48, 0xFF, 0xFF, 0xC0, 0xF0, 0x02, 0x0C, 0x18,
-    0x60, 0xC3, 0x06, 0x0C, 0x30, 0x61, 0x83, 0x0C, 0x18, 0x20, 0x00, 0x38,
-    0xFB, 0xBE, 0x3C, 0x78, 0xF1, 0xE3, 0xC7, 0xDD, 0xF1, 0xC0, 0x38, 0xF3,
-    0x60, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0xFD, 0xF8, 0x3C, 0xFE, 0xC7, 0x03,
-    0x03, 0x06, 0x0C, 0x18, 0x70, 0xE3, 0xFF, 0xFF, 0x7C, 0xFE, 0x03, 0x03,
-    0x03, 0x1E, 0x1E, 0x07, 0x03, 0x03, 0xFE, 0x7C, 0x1C, 0x38, 0xB1, 0x64,
-    0xD9, 0xBF, 0xFF, 0x3E, 0x7C, 0x7E, 0x3F, 0x18, 0x0F, 0xC7, 0xF3, 0x1C,
-    0x06, 0x03, 0xC3, 0xFF, 0x9F, 0x80, 0x0F, 0x3F, 0x30, 0x60, 0x60, 0xDC,
-    0xFE, 0xE3, 0xC3, 0x63, 0x7E, 0x3C, 0xFF, 0xFF, 0xC3, 0x03, 0x06, 0x06,
-    0x06, 0x0C, 0x0C, 0x0C, 0x18, 0x38, 0xFB, 0x1E, 0x3C, 0x6F, 0x9F, 0x63,
-    0xC7, 0x8F, 0xF1, 0xC0, 0x3C, 0x7E, 0xE6, 0xC3, 0xC3, 0xE7, 0x7F, 0x3B,
-    0x06, 0x0E, 0xFC, 0xF0, 0xF0, 0x0F, 0x6C, 0x00, 0x1A, 0xD2, 0x00, 0x01,
-    0x83, 0x87, 0x0E, 0x0F, 0x80, 0xE0, 0x1C, 0x03, 0xFF, 0xFF, 0xC0, 0x00,
-    0x0F, 0xFF, 0xFC, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0xF9, 0xE3, 0xC1, 0x80,
-    0x7C, 0xFE, 0xC7, 0x03, 0x0E, 0x1C, 0x00, 0x00, 0x00, 0x30, 0x30, 0x1E,
-    0x1F, 0x1C, 0xDC, 0x6C, 0x76, 0x7B, 0x6D, 0xB6, 0xDB, 0x6F, 0xF3, 0xFC,
-    0x06, 0x33, 0xF8, 0x78, 0x3C, 0x07, 0xC0, 0x38, 0x05, 0x81, 0xB0, 0x36,
-    0x0F, 0xE1, 0xFC, 0x71, 0xDF, 0x7F, 0xEF, 0x80, 0xFF, 0x3F, 0xE6, 0x19,
-    0x86, 0x7F, 0x1F, 0xE6, 0x1D, 0x83, 0x60, 0xFF, 0xFF, 0xF0, 0x1F, 0xBF,
-    0xD8, 0xF8, 0x3C, 0x06, 0x03, 0x01, 0x80, 0x61, 0xBF, 0xC7, 0xC0, 0xFE,
-    0x3F, 0xE6, 0x19, 0x83, 0x60, 0xD8, 0x36, 0x0D, 0x83, 0x61, 0xBF, 0xEF,
-    0xE0, 0xFF, 0xFF, 0xD8, 0x6D, 0xB7, 0xC3, 0xE1, 0xB0, 0xC3, 0x61, 0xFF,
-    0xFF, 0xE0, 0xFF, 0xFF, 0xD8, 0x6D, 0xB7, 0xC3, 0xE1, 0xB0, 0xC0, 0x60,
-    0x7C, 0x3E, 0x00, 0x1F, 0x9F, 0xE6, 0x1B, 0x06, 0xC0, 0x30, 0x0C, 0x7F,
-    0x1F, 0xE1, 0x9F, 0xE3, 0xF0, 0xF7, 0xFB, 0xD8, 0xCC, 0x66, 0x33, 0xF9,
-    0xFC, 0xC6, 0x63, 0x7B, 0xFD, 0xE0, 0xFF, 0xF3, 0x0C, 0x30, 0xC3, 0x0C,
-    0x33, 0xFF, 0xC0, 0x1F, 0xC7, 0xF0, 0x30, 0x0C, 0x03, 0x00, 0xCC, 0x33,
-    0x0C, 0xC7, 0x3F, 0x87, 0xC0, 0xF7, 0xBD, 0xE6, 0x61, 0xB0, 0x78, 0x1F,
-    0x06, 0xE1, 0x98, 0x63, 0x3C, 0xFF, 0x3C, 0xFC, 0x7E, 0x0C, 0x06, 0x03,
-    0x01, 0x80, 0xC6, 0x63, 0x31, 0xFF, 0xFF, 0xE0, 0xE0, 0xFE, 0x3D, 0xC7,
-    0x3D, 0xE7, 0xBC, 0xD7, 0x9B, 0xB3, 0x76, 0x60, 0xDE, 0x3F, 0xC7, 0x80,
-    0xE1, 0xFE, 0x3D, 0xE3, 0x3C, 0x66, 0xCC, 0xDD, 0x99, 0xB3, 0x1E, 0x63,
-    0xDE, 0x3B, 0xC3, 0x00, 0x1F, 0x07, 0xF1, 0xC7, 0x70, 0x7C, 0x07, 0x80,
-    0xF0, 0x1F, 0x07, 0x71, 0xC7, 0xF0, 0x7C, 0x00, 0xFE, 0x7F, 0x98, 0x6C,
-    0x36, 0x1B, 0xF9, 0xF8, 0xC0, 0x60, 0x7C, 0x3E, 0x00, 0x1F, 0x07, 0xF1,
-    0xC7, 0x70, 0x7C, 0x07, 0x80, 0xF0, 0x1F, 0x07, 0x71, 0xC7, 0xF0, 0x7C,
-    0x0C, 0x33, 0xFE, 0x7F, 0x80, 0xFC, 0x7F, 0x18, 0xCC, 0x66, 0x73, 0xF1,
-    0xF0, 0xCC, 0x63, 0x7D, 0xFE, 0x60, 0x3F, 0xBF, 0xF0, 0x78, 0x0F, 0x03,
-    0xF8, 0x3F, 0x83, 0xC3, 0xFF, 0xBF, 0x80, 0xFF, 0xFF, 0xF6, 0x7B, 0x3D,
-    0x98, 0xC0, 0x60, 0x30, 0x18, 0x3F, 0x1F, 0x80, 0xF1, 0xFE, 0x3D, 0x83,
-    0x30, 0x66, 0x0C, 0xC1, 0x98, 0x33, 0x06, 0x60, 0xC7, 0xF0, 0x7C, 0x00,
-    0xFB, 0xFF, 0x7D, 0xC3, 0x18, 0xC3, 0x18, 0x36, 0x06, 0xC0, 0x50, 0x0E,
-    0x01, 0xC0, 0x10, 0x00, 0xFB, 0xFE, 0xF6, 0x0D, 0x93, 0x6E, 0xDB, 0xB7,
-    0xAD, 0xEE, 0x7B, 0x8E, 0xE3, 0x18, 0xF3, 0xFC, 0xF7, 0x38, 0xFC, 0x1E,
-    0x03, 0x01, 0xE0, 0xCC, 0x73, 0xBC, 0xFF, 0x3C, 0xF3, 0xFC, 0xF7, 0x38,
-    0xCC, 0x1E, 0x07, 0x80, 0xC0, 0x30, 0x0C, 0x0F, 0xC3, 0xF0, 0xFE, 0xFE,
-    0xC6, 0xCC, 0x18, 0x18, 0x30, 0x63, 0xC3, 0xFF, 0xFF, 0xFF, 0xCC, 0xCC,
-    0xCC, 0xCC, 0xCC, 0xFF, 0x01, 0x03, 0x06, 0x06, 0x0C, 0x0C, 0x18, 0x18,
-    0x30, 0x30, 0x60, 0x60, 0xC0, 0x80, 0xFF, 0x33, 0x33, 0x33, 0x33, 0x33,
-    0xFF, 0x10, 0x71, 0xE3, 0x6C, 0x70, 0x40, 0xFF, 0xFF, 0xFC, 0x88, 0x80,
-    0x7E, 0x3F, 0x8F, 0xCF, 0xEE, 0x36, 0x1B, 0xFE, 0xFF, 0xE0, 0x38, 0x06,
-    0x01, 0xBC, 0x7F, 0x9C, 0x76, 0x0D, 0x83, 0x71, 0xFF, 0xEE, 0xF0, 0x3F,
-    0xBF, 0xF8, 0x78, 0x3C, 0x07, 0x05, 0xFE, 0x7E, 0x03, 0x80, 0xE0, 0x18,
-    0xF6, 0x7F, 0xB8, 0xEC, 0x1B, 0x06, 0xE3, 0x9F, 0xF3, 0xFC, 0x3E, 0x3F,
-    0xB0, 0xFF, 0xFF, 0xFE, 0x01, 0xFE, 0x7E, 0x1F, 0x3F, 0x30, 0x7E, 0x7E,
-    0x30, 0x30, 0x30, 0x30, 0xFE, 0xFE, 0x3F, 0xBF, 0xF9, 0xD8, 0x6C, 0x37,
-    0x39, 0xFC, 0x76, 0x03, 0x01, 0x8F, 0xC7, 0xC0, 0xE0, 0x70, 0x18, 0x0D,
-    0xC7, 0xF3, 0x99, 0x8C, 0xC6, 0x63, 0x7B, 0xFD, 0xE0, 0x18, 0x18, 0x00,
-    0x78, 0x78, 0x18, 0x18, 0x18, 0x18, 0xFF, 0xFF, 0x18, 0x60, 0x3F, 0xFC,
-    0x30, 0xC3, 0x0C, 0x30, 0xC3, 0x0F, 0xFF, 0x80, 0xE0, 0x70, 0x18, 0x0D,
-    0xE6, 0xF3, 0xE1, 0xE0, 0xF8, 0x6E, 0x73, 0xF9, 0xE0, 0x78, 0x78, 0x18,
-    0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0xFF, 0xFD, 0x9F, 0xF9, 0x9B,
-    0x33, 0x66, 0x6C, 0xCD, 0xBD, 0xFF, 0xBF, 0xEE, 0x7F, 0x98, 0xCC, 0x66,
-    0x33, 0x1B, 0xDF, 0xEF, 0x3E, 0x3F, 0xB8, 0xF8, 0x3C, 0x1F, 0x1D, 0xFC,
-    0x7C, 0xEF, 0x1F, 0xF9, 0xC3, 0xB0, 0x36, 0x06, 0xE1, 0xDF, 0xF3, 0x78,
-    0x60, 0x0C, 0x03, 0xE0, 0x7C, 0x00, 0x1E, 0xEF, 0xFF, 0x87, 0x60, 0x6C,
-    0x0D, 0xC3, 0x9F, 0xF0, 0xF6, 0x00, 0xC0, 0x18, 0x0F, 0x81, 0xF0, 0x77,
-    0xBF, 0xCF, 0x06, 0x03, 0x01, 0x83, 0xF9, 0xFC, 0x3F, 0xFF, 0xC3, 0xFC,
-    0x3F, 0xC3, 0xFF, 0xFC, 0x60, 0x60, 0x60, 0xFE, 0xFE, 0x60, 0x60, 0x60,
-    0x61, 0x7F, 0x3E, 0xE7, 0x73, 0x98, 0xCC, 0x66, 0x33, 0x19, 0xFE, 0x7F,
-    0xFB, 0xFF, 0x7C, 0xC6, 0x18, 0xC1, 0xB0, 0x36, 0x03, 0x80, 0x70, 0xF1,
-    0xFE, 0x3D, 0xBB, 0x37, 0x63, 0xF8, 0x77, 0x0E, 0xE1, 0x8C, 0xF7, 0xFB,
-    0xCD, 0x83, 0x83, 0xC3, 0xBB, 0xDF, 0xEF, 0xF3, 0xFC, 0xF6, 0x18, 0xCC,
-    0x33, 0x07, 0x81, 0xE0, 0x30, 0x0C, 0x06, 0x0F, 0xC3, 0xF0, 0xFF, 0xFF,
-    0x30, 0xC3, 0x0C, 0x7F, 0xFF, 0x37, 0x66, 0x66, 0xCC, 0x66, 0x66, 0x73,
-    0xFF, 0xFF, 0xFF, 0xF0, 0xCE, 0x66, 0x66, 0x33, 0x66, 0x66, 0xEC, 0x70,
-    0x7C, 0xF3, 0xC0, 0xC0};
-
-const GFXglyph FreeMonoBold9pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 11, 0, 1},       // 0x20 ' '
-    {0, 3, 11, 11, 4, -10},    // 0x21 '!'
-    {5, 7, 5, 11, 2, -10},     // 0x22 '"'
-    {10, 8, 12, 11, 1, -10},   // 0x23 '#'
-    {22, 7, 14, 11, 2, -11},   // 0x24 '$'
-    {35, 7, 11, 11, 2, -10},   // 0x25 '%'
-    {45, 8, 10, 11, 1, -9},    // 0x26 '&'
-    {55, 3, 5, 11, 4, -10},    // 0x27 '''
-    {57, 4, 14, 11, 5, -10},   // 0x28 '('
-    {64, 4, 14, 11, 2, -10},   // 0x29 ')'
-    {71, 8, 7, 11, 2, -10},    // 0x2A '*'
-    {78, 8, 9, 11, 2, -8},     // 0x2B '+'
-    {87, 3, 5, 11, 3, -1},     // 0x2C ','
-    {89, 9, 2, 11, 1, -5},     // 0x2D '-'
-    {92, 2, 2, 11, 4, -1},     // 0x2E '.'
-    {93, 7, 15, 11, 2, -12},   // 0x2F '/'
-    {107, 7, 12, 11, 2, -11},  // 0x30 '0'
-    {118, 7, 11, 11, 2, -10},  // 0x31 '1'
-    {128, 8, 12, 11, 1, -11},  // 0x32 '2'
-    {140, 8, 12, 11, 2, -11},  // 0x33 '3'
-    {152, 7, 10, 11, 2, -9},   // 0x34 '4'
-    {161, 9, 11, 11, 1, -10},  // 0x35 '5'
-    {174, 8, 12, 11, 2, -11},  // 0x36 '6'
-    {186, 8, 11, 11, 1, -10},  // 0x37 '7'
-    {197, 7, 12, 11, 2, -11},  // 0x38 '8'
-    {208, 8, 12, 11, 2, -11},  // 0x39 '9'
-    {220, 2, 8, 11, 4, -7},    // 0x3A ':'
-    {222, 3, 11, 11, 3, -7},   // 0x3B ';'
-    {227, 9, 8, 11, 1, -8},    // 0x3C '<'
-    {236, 9, 6, 11, 1, -7},    // 0x3D '='
-    {243, 9, 8, 11, 1, -8},    // 0x3E '>'
-    {252, 8, 11, 11, 2, -10},  // 0x3F '?'
-    {263, 9, 15, 11, 1, -11},  // 0x40 '@'
-    {280, 11, 11, 11, 0, -10}, // 0x41 'A'
-    {296, 10, 11, 11, 1, -10}, // 0x42 'B'
-    {310, 9, 11, 11, 1, -10},  // 0x43 'C'
-    {323, 10, 11, 11, 0, -10}, // 0x44 'D'
-    {337, 9, 11, 11, 1, -10},  // 0x45 'E'
-    {350, 9, 11, 11, 1, -10},  // 0x46 'F'
-    {363, 10, 11, 11, 1, -10}, // 0x47 'G'
-    {377, 9, 11, 11, 1, -10},  // 0x48 'H'
-    {390, 6, 11, 11, 3, -10},  // 0x49 'I'
-    {399, 10, 11, 11, 1, -10}, // 0x4A 'J'
-    {413, 10, 11, 11, 1, -10}, // 0x4B 'K'
-    {427, 9, 11, 11, 1, -10},  // 0x4C 'L'
-    {440, 11, 11, 11, 0, -10}, // 0x4D 'M'
-    {456, 11, 11, 11, 0, -10}, // 0x4E 'N'
-    {472, 11, 11, 11, 0, -10}, // 0x4F 'O'
-    {488, 9, 11, 11, 1, -10},  // 0x50 'P'
-    {501, 11, 14, 11, 0, -10}, // 0x51 'Q'
-    {521, 9, 11, 11, 1, -10},  // 0x52 'R'
-    {534, 9, 11, 11, 1, -10},  // 0x53 'S'
-    {547, 9, 11, 11, 1, -10},  // 0x54 'T'
-    {560, 11, 11, 11, 0, -10}, // 0x55 'U'
-    {576, 11, 11, 11, 0, -10}, // 0x56 'V'
-    {592, 10, 11, 11, 0, -10}, // 0x57 'W'
-    {606, 10, 11, 11, 0, -10}, // 0x58 'X'
-    {620, 10, 11, 11, 0, -10}, // 0x59 'Y'
-    {634, 8, 11, 11, 2, -10},  // 0x5A 'Z'
-    {645, 4, 14, 11, 5, -10},  // 0x5B '['
-    {652, 7, 15, 11, 2, -12},  // 0x5C '\'
-    {666, 4, 14, 11, 2, -10},  // 0x5D ']'
-    {673, 7, 6, 11, 2, -11},   // 0x5E '^'
-    {679, 11, 2, 11, 0, 3},    // 0x5F '_'
-    {682, 3, 3, 11, 3, -11},   // 0x60 '`'
-    {684, 9, 8, 11, 1, -7},    // 0x61 'a'
-    {693, 10, 11, 11, 0, -10}, // 0x62 'b'
-    {707, 9, 8, 11, 1, -7},    // 0x63 'c'
-    {716, 10, 11, 11, 1, -10}, // 0x64 'd'
-    {730, 9, 8, 11, 1, -7},    // 0x65 'e'
-    {739, 8, 11, 11, 2, -10},  // 0x66 'f'
-    {750, 9, 12, 11, 1, -7},   // 0x67 'g'
-    {764, 9, 11, 11, 1, -10},  // 0x68 'h'
-    {777, 8, 11, 11, 2, -10},  // 0x69 'i'
-    {788, 6, 15, 11, 2, -10},  // 0x6A 'j'
-    {800, 9, 11, 11, 1, -10},  // 0x6B 'k'
-    {813, 8, 11, 11, 2, -10},  // 0x6C 'l'
-    {824, 11, 8, 11, 0, -7},   // 0x6D 'm'
-    {835, 9, 8, 11, 1, -7},    // 0x6E 'n'
-    {844, 9, 8, 11, 1, -7},    // 0x6F 'o'
-    {853, 11, 12, 11, 0, -7},  // 0x70 'p'
-    {870, 11, 12, 11, 0, -7},  // 0x71 'q'
-    {887, 9, 8, 11, 1, -7},    // 0x72 'r'
-    {896, 8, 8, 11, 2, -7},    // 0x73 's'
-    {904, 8, 11, 11, 1, -10},  // 0x74 't'
-    {915, 9, 8, 11, 1, -7},    // 0x75 'u'
-    {924, 11, 8, 11, 0, -7},   // 0x76 'v'
-    {935, 11, 8, 11, 0, -7},   // 0x77 'w'
-    {946, 9, 8, 11, 1, -7},    // 0x78 'x'
-    {955, 10, 12, 11, 0, -7},  // 0x79 'y'
-    {970, 7, 8, 11, 2, -7},    // 0x7A 'z'
-    {977, 4, 14, 11, 3, -10},  // 0x7B '{'
-    {984, 2, 14, 11, 5, -10},  // 0x7C '|'
-    {988, 4, 14, 11, 4, -10},  // 0x7D '}'
-    {995, 9, 4, 11, 1, -6}};   // 0x7E '~'
-
-const GFXfont FreeMonoBold9pt7b PROGMEM = {(uint8_t *)FreeMonoBold9pt7bBitmaps,
-                                           (GFXglyph *)FreeMonoBold9pt7bGlyphs,
-                                           0x20, 0x7E, 18};
-
-// Approx. 1672 bytes

+ 0 - 268
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoBoldOblique12pt7b.h

@@ -1,268 +0,0 @@
-const uint8_t FreeMonoBoldOblique12pt7bBitmaps[] PROGMEM = {
-    0x1C, 0xF3, 0xCE, 0x38, 0xE7, 0x1C, 0x61, 0x86, 0x00, 0x63, 0x8C, 0x00,
-    0xE7, 0xE7, 0xE6, 0xC6, 0xC6, 0xC4, 0x84, 0x03, 0x30, 0x19, 0x81, 0xDC,
-    0x0C, 0xE0, 0x66, 0x1F, 0xFC, 0xFF, 0xE1, 0x98, 0x0C, 0xC0, 0xEE, 0x06,
-    0x70, 0xFF, 0xCF, 0xFE, 0x1D, 0xC0, 0xCC, 0x06, 0x60, 0x77, 0x03, 0x30,
-    0x00, 0x01, 0x00, 0x70, 0x0C, 0x07, 0xF1, 0xFE, 0x71, 0xCC, 0x11, 0x80,
-    0x3F, 0x03, 0xF0, 0x0F, 0x20, 0x6E, 0x0D, 0xC3, 0x3F, 0xE7, 0xF8, 0x1C,
-    0x03, 0x00, 0x60, 0x0C, 0x00, 0x0E, 0x03, 0xE0, 0xC4, 0x10, 0x82, 0x30,
-    0x7C, 0x07, 0x78, 0x7C, 0x7F, 0x19, 0xF0, 0x62, 0x08, 0x41, 0x18, 0x3E,
-    0x03, 0x80, 0x07, 0xC1, 0xF8, 0x62, 0x0C, 0x01, 0x80, 0x38, 0x0F, 0x03,
-    0xF7, 0x6F, 0xD8, 0xF3, 0x1E, 0x7F, 0xE7, 0xF8, 0xFF, 0x6D, 0x20, 0x06,
-    0x1C, 0x70, 0xC3, 0x06, 0x18, 0x30, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x30,
-    0x70, 0x60, 0xC1, 0x00, 0x0C, 0x18, 0x38, 0x30, 0x60, 0xC1, 0x83, 0x06,
-    0x0C, 0x30, 0x61, 0xC3, 0x0E, 0x38, 0x61, 0xC2, 0x00, 0x06, 0x00, 0xC0,
-    0x18, 0x3F, 0x7F, 0xFE, 0xFF, 0x07, 0x81, 0xF8, 0x77, 0x0C, 0x60, 0x03,
-    0x00, 0x70, 0x07, 0x00, 0x60, 0x06, 0x0F, 0xFF, 0xFF, 0xF0, 0xE0, 0x0C,
-    0x00, 0xC0, 0x0C, 0x01, 0xC0, 0x18, 0x00, 0x1C, 0xE3, 0x1C, 0x63, 0x08,
-    0x00, 0x7F, 0xFF, 0xFF, 0xC0, 0x7F, 0x00, 0x00, 0x08, 0x00, 0x70, 0x01,
-    0x80, 0x0E, 0x00, 0x70, 0x03, 0x80, 0x0C, 0x00, 0x70, 0x03, 0x80, 0x0C,
-    0x00, 0x70, 0x03, 0x80, 0x0C, 0x00, 0x70, 0x03, 0x80, 0x0C, 0x00, 0x70,
-    0x03, 0x80, 0x0C, 0x00, 0x20, 0x00, 0x07, 0x83, 0xF8, 0xE3, 0x98, 0x37,
-    0x06, 0xC0, 0xD8, 0x1B, 0x03, 0xE0, 0xF8, 0x1B, 0x03, 0x60, 0xEE, 0x38,
-    0xFE, 0x0F, 0x00, 0x03, 0xC1, 0xF0, 0x7E, 0x0C, 0xC0, 0x38, 0x07, 0x00,
-    0xC0, 0x18, 0x07, 0x00, 0xE0, 0x18, 0x03, 0x00, 0x61, 0xFF, 0xFF, 0xF0,
-    0x03, 0xE0, 0x3F, 0x83, 0x8E, 0x38, 0x31, 0x81, 0x80, 0x18, 0x01, 0xC0,
-    0x1C, 0x01, 0xC0, 0x38, 0x03, 0x80, 0x38, 0x47, 0x87, 0x3F, 0xF3, 0xFF,
-    0x80, 0x07, 0xC1, 0xFF, 0x18, 0x70, 0x03, 0x00, 0x30, 0x06, 0x07, 0xC0,
-    0x7C, 0x00, 0xE0, 0x06, 0x00, 0x60, 0x06, 0xC1, 0xCF, 0xF8, 0x7E, 0x00,
-    0x01, 0xE0, 0x3C, 0x0F, 0x03, 0x60, 0xCC, 0x3B, 0x8E, 0x63, 0x8C, 0x61,
-    0x9F, 0xFB, 0xFF, 0x01, 0x81, 0xF8, 0x3F, 0x00, 0x0F, 0xF1, 0xFE, 0x18,
-    0x01, 0x80, 0x18, 0x03, 0xF8, 0x3F, 0xC3, 0x8E, 0x00, 0x60, 0x06, 0x00,
-    0x60, 0x0C, 0xC1, 0xCF, 0xF8, 0x7E, 0x00, 0x03, 0xE1, 0xFC, 0x70, 0x1C,
-    0x03, 0x00, 0xC0, 0x1B, 0xC7, 0xFC, 0xF3, 0x98, 0x33, 0x06, 0x60, 0xCE,
-    0x30, 0xFC, 0x0F, 0x00, 0xFF, 0xFF, 0xFB, 0x07, 0x60, 0xC0, 0x38, 0x06,
-    0x01, 0xC0, 0x30, 0x0E, 0x01, 0x80, 0x70, 0x1C, 0x03, 0x80, 0x60, 0x08,
-    0x00, 0x07, 0x83, 0xF8, 0xE3, 0xB0, 0x36, 0x06, 0xC0, 0xDC, 0x31, 0xFC,
-    0x3F, 0x8C, 0x3B, 0x03, 0x60, 0x6C, 0x39, 0xFE, 0x1F, 0x00, 0x07, 0x81,
-    0xF8, 0x63, 0x98, 0x33, 0x06, 0x60, 0xCE, 0x79, 0xFF, 0x1E, 0xC0, 0x18,
-    0x06, 0x01, 0xC0, 0x71, 0xFC, 0x3E, 0x00, 0x19, 0xCC, 0x00, 0x00, 0x00,
-    0x67, 0x30, 0x06, 0x1C, 0x30, 0x00, 0x00, 0x00, 0x00, 0x38, 0x71, 0xC3,
-    0x0E, 0x18, 0x20, 0x00, 0x00, 0x18, 0x03, 0xC0, 0x7C, 0x1F, 0x03, 0xE0,
-    0x3E, 0x00, 0x7C, 0x01, 0xF0, 0x03, 0xE0, 0x07, 0x80, 0x08, 0x7F, 0xFB,
-    0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFB, 0xFF, 0xC0, 0x30, 0x01,
-    0xE0, 0x07, 0xC0, 0x0F, 0x00, 0x3E, 0x00, 0x7C, 0x1F, 0x03, 0xE0, 0x7C,
-    0x07, 0x80, 0x20, 0x00, 0x3E, 0x7F, 0xB0, 0xF8, 0x30, 0x18, 0x1C, 0x1C,
-    0x3C, 0x38, 0x18, 0x00, 0x06, 0x07, 0x03, 0x00, 0x03, 0xC0, 0x7E, 0x0C,
-    0x71, 0x83, 0x30, 0x33, 0x0F, 0x33, 0xE6, 0x76, 0x6C, 0x66, 0xC6, 0x6C,
-    0x6C, 0xFC, 0xC7, 0xEC, 0x00, 0xC0, 0x0C, 0x00, 0xE3, 0x07, 0xF0, 0x3C,
-    0x00, 0x07, 0xF0, 0x1F, 0xE0, 0x07, 0xC0, 0x1F, 0x80, 0x3B, 0x00, 0xE7,
-    0x01, 0x8E, 0x07, 0x1C, 0x1F, 0xF8, 0x3F, 0xF0, 0xE0, 0x71, 0x80, 0xEF,
-    0xC7, 0xFF, 0x8F, 0xC0, 0x3F, 0xF1, 0xFF, 0xC3, 0x06, 0x38, 0x31, 0xC1,
-    0x8C, 0x18, 0x7F, 0xC3, 0xFE, 0x38, 0x39, 0xC0, 0xCC, 0x06, 0x60, 0x6F,
-    0xFF, 0x7F, 0xE0, 0x03, 0xEC, 0x3F, 0xF1, 0xC3, 0x8C, 0x06, 0x60, 0x19,
-    0x80, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x03, 0x3C, 0x1C,
-    0x7F, 0xE0, 0x7E, 0x00, 0x3F, 0xE1, 0xFF, 0x87, 0x0C, 0x30, 0x31, 0x81,
-    0x8C, 0x0C, 0xE0, 0x67, 0x03, 0x30, 0x31, 0x81, 0x8C, 0x0C, 0xE1, 0xCF,
-    0xFC, 0x7F, 0x80, 0x1F, 0xFE, 0x3F, 0xFC, 0x38, 0x38, 0x70, 0x70, 0xCC,
-    0xC1, 0x98, 0x03, 0xF0, 0x0F, 0xE0, 0x1D, 0x80, 0x31, 0x18, 0x60, 0x70,
-    0xC0, 0xE7, 0xFF, 0x9F, 0xFF, 0x00, 0x1F, 0xFF, 0x1F, 0xFE, 0x0E, 0x06,
-    0x0C, 0x0E, 0x0C, 0xC4, 0x0C, 0xC0, 0x1F, 0xC0, 0x1F, 0xC0, 0x19, 0xC0,
-    0x19, 0x80, 0x18, 0x00, 0x38, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x07, 0xEC,
-    0x7F, 0xF3, 0x83, 0x9C, 0x06, 0x60, 0x19, 0x80, 0x0C, 0x00, 0x30, 0xFE,
-    0xC3, 0xFB, 0x01, 0xCC, 0x07, 0x3C, 0x38, 0x7F, 0xE0, 0x7E, 0x00, 0x0F,
-    0xBF, 0x1F, 0xBE, 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x1C, 0x0C, 0x1C, 0x1F,
-    0xF8, 0x1F, 0xF8, 0x18, 0x18, 0x18, 0x38, 0x18, 0x38, 0x38, 0x30, 0x7C,
-    0xFC, 0xFC, 0xF8, 0x3F, 0xF3, 0xFF, 0x03, 0x00, 0x70, 0x07, 0x00, 0x60,
-    0x06, 0x00, 0x60, 0x0E, 0x00, 0xE0, 0x0E, 0x00, 0xC0, 0xFF, 0xCF, 0xFC,
-    0x03, 0xFF, 0x03, 0xFF, 0x00, 0x38, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30,
-    0x00, 0x70, 0x20, 0x70, 0x60, 0x60, 0x60, 0x60, 0x60, 0xE0, 0xE1, 0xC0,
-    0xFF, 0x80, 0x3F, 0x00, 0x1F, 0x9F, 0x1F, 0x9E, 0x0E, 0x38, 0x0C, 0x70,
-    0x0C, 0xE0, 0x0F, 0xC0, 0x1F, 0xC0, 0x1F, 0xE0, 0x1C, 0xE0, 0x18, 0x60,
-    0x18, 0x70, 0x38, 0x70, 0xFE, 0x3C, 0xFC, 0x3C, 0x3F, 0xC1, 0xFE, 0x01,
-    0x80, 0x1C, 0x00, 0xE0, 0x06, 0x00, 0x30, 0x01, 0x80, 0x1C, 0x18, 0xE0,
-    0xC6, 0x06, 0x30, 0x7F, 0xFF, 0xFF, 0xF8, 0x1E, 0x07, 0x87, 0x81, 0xE0,
-    0xF0, 0xF0, 0x7C, 0x7C, 0x1F, 0x1F, 0x06, 0xCF, 0x81, 0xBF, 0x60, 0xEF,
-    0x98, 0x3B, 0xEE, 0x0C, 0x73, 0x83, 0x1C, 0xC0, 0xC0, 0x30, 0xFC, 0x7E,
-    0x3F, 0x1F, 0x80, 0x3C, 0x3F, 0x3E, 0x3F, 0x1E, 0x0C, 0x1F, 0x1C, 0x1F,
-    0x1C, 0x1B, 0x98, 0x3B, 0x98, 0x3B, 0x98, 0x31, 0xF8, 0x31, 0xF8, 0x30,
-    0xF0, 0x70, 0xF0, 0xFC, 0x70, 0xF8, 0x70, 0x03, 0xE0, 0x3F, 0xE1, 0xC3,
-    0x8C, 0x07, 0x60, 0x0D, 0x80, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x1B, 0x00,
-    0x6E, 0x03, 0x1C, 0x38, 0x7F, 0xC0, 0x7C, 0x00, 0x3F, 0xE1, 0xFF, 0x83,
-    0x0E, 0x38, 0x31, 0xC1, 0x8C, 0x0C, 0x60, 0xC3, 0xFC, 0x3F, 0xC1, 0xC0,
-    0x0C, 0x00, 0x60, 0x0F, 0xF0, 0x7F, 0x80, 0x03, 0xE0, 0x3F, 0xE1, 0xC3,
-    0x8C, 0x07, 0x60, 0x0D, 0x80, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x1B, 0x00,
-    0x6E, 0x03, 0x1C, 0x38, 0x7F, 0xC0, 0xFC, 0x03, 0x02, 0x1F, 0xFC, 0xFF,
-    0xE0, 0x1F, 0xF0, 0x3F, 0xF0, 0x38, 0x70, 0x60, 0x60, 0xC0, 0xC1, 0x87,
-    0x07, 0xFC, 0x0F, 0xF0, 0x18, 0xF0, 0x30, 0xE0, 0x60, 0xC1, 0xC1, 0xCF,
-    0xE1, 0xFF, 0xC3, 0xC0, 0x0F, 0xB1, 0xFF, 0x30, 0xE6, 0x06, 0x60, 0x67,
-    0x80, 0x7F, 0x01, 0xFC, 0x01, 0xC4, 0x0C, 0xC0, 0xCE, 0x18, 0xFF, 0x8B,
-    0xE0, 0x7F, 0xFB, 0xFF, 0xD9, 0xCF, 0xCE, 0x7C, 0x63, 0x63, 0x18, 0x18,
-    0x01, 0xC0, 0x0E, 0x00, 0x60, 0x03, 0x00, 0x18, 0x0F, 0xF8, 0x7F, 0xC0,
-    0x7E, 0xFF, 0xF3, 0xF3, 0x03, 0x1C, 0x0C, 0x60, 0x31, 0x81, 0xC6, 0x06,
-    0x38, 0x18, 0xE0, 0x63, 0x03, 0x8C, 0x0C, 0x30, 0x70, 0x7F, 0x80, 0xF8,
-    0x00, 0xFC, 0x7F, 0xF8, 0xFD, 0xC0, 0x61, 0x81, 0xC3, 0x87, 0x07, 0x0C,
-    0x0E, 0x38, 0x0C, 0x60, 0x19, 0xC0, 0x3F, 0x00, 0x7C, 0x00, 0xF8, 0x00,
-    0xE0, 0x01, 0x80, 0x00, 0x7E, 0x7E, 0xFC, 0xFD, 0xC0, 0x73, 0x9C, 0xE7,
-    0x79, 0x8E, 0xF7, 0x1B, 0xEE, 0x36, 0xD8, 0x7D, 0xF0, 0xF3, 0xE1, 0xE7,
-    0x83, 0x8F, 0x07, 0x1E, 0x1C, 0x38, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x0E,
-    0x1C, 0x07, 0x38, 0x07, 0x70, 0x03, 0xE0, 0x03, 0xC0, 0x03, 0xC0, 0x07,
-    0xE0, 0x0E, 0xE0, 0x1C, 0x70, 0x38, 0x70, 0xFC, 0xFC, 0xFC, 0xFC, 0xF8,
-    0xFF, 0xC7, 0xCC, 0x38, 0x73, 0x83, 0x9C, 0x0F, 0xC0, 0x7C, 0x01, 0xC0,
-    0x0C, 0x00, 0x60, 0x03, 0x00, 0x38, 0x0F, 0xF8, 0x7F, 0x80, 0x0F, 0xF8,
-    0x7F, 0xE1, 0xC7, 0x86, 0x1C, 0x18, 0xE0, 0x07, 0x00, 0x38, 0x01, 0xC0,
-    0x0E, 0x00, 0x70, 0xC3, 0x83, 0x1C, 0x1C, 0x7F, 0xF3, 0xFF, 0x80, 0x0F,
-    0x87, 0xC3, 0x03, 0x81, 0xC0, 0xC0, 0x60, 0x30, 0x38, 0x1C, 0x0C, 0x06,
-    0x03, 0x03, 0x81, 0xC0, 0xC0, 0x60, 0x3E, 0x3F, 0x00, 0x41, 0xC3, 0x83,
-    0x07, 0x0E, 0x1C, 0x18, 0x38, 0x70, 0xE0, 0xC1, 0xC3, 0x83, 0x06, 0x0E,
-    0x1C, 0x18, 0x20, 0x1F, 0x0F, 0x80, 0xC0, 0xE0, 0x70, 0x30, 0x18, 0x0C,
-    0x0E, 0x07, 0x03, 0x01, 0x80, 0xC0, 0xE0, 0x70, 0x30, 0x18, 0x7C, 0x3E,
-    0x00, 0x02, 0x01, 0x80, 0xF0, 0x7E, 0x3B, 0x9C, 0x7E, 0x1F, 0x03, 0xFF,
-    0xFF, 0xFF, 0xFC, 0xCE, 0x73, 0x1F, 0xC3, 0xFE, 0x00, 0x60, 0x06, 0x0F,
-    0xE3, 0xFE, 0x70, 0xCC, 0x0C, 0xC3, 0xCF, 0xFF, 0x7F, 0xF0, 0x1E, 0x00,
-    0x3C, 0x00, 0x38, 0x00, 0x70, 0x00, 0xDF, 0x81, 0xFF, 0x83, 0xC3, 0x8F,
-    0x03, 0x1C, 0x06, 0x38, 0x0C, 0x70, 0x18, 0xE0, 0x63, 0xE1, 0x9F, 0xFE,
-    0x3D, 0xF8, 0x00, 0x0F, 0xF3, 0xFF, 0x30, 0x76, 0x07, 0xE0, 0x6C, 0x00,
-    0xC0, 0x0C, 0x00, 0xE0, 0x67, 0xFE, 0x3F, 0x80, 0x00, 0x3C, 0x00, 0xF0,
-    0x01, 0xC0, 0x06, 0x07, 0xD8, 0x7F, 0xE3, 0x0F, 0x98, 0x1E, 0x60, 0x73,
-    0x01, 0xCC, 0x07, 0x30, 0x3C, 0xE1, 0xF1, 0xFF, 0xE3, 0xF7, 0x80, 0x0F,
-    0xC1, 0xFE, 0x78, 0x76, 0x03, 0xFF, 0xFF, 0xFF, 0xC0, 0x0C, 0x00, 0xE0,
-    0xE7, 0xFE, 0x1F, 0x80, 0x00, 0xFC, 0x07, 0xF8, 0x0C, 0x00, 0x38, 0x01,
-    0xFF, 0x07, 0xFE, 0x01, 0x80, 0x07, 0x00, 0x0E, 0x00, 0x18, 0x00, 0x30,
-    0x00, 0x60, 0x01, 0xC0, 0x1F, 0xF8, 0x3F, 0xF0, 0x00, 0x0F, 0xBC, 0x7F,
-    0xF3, 0x0F, 0x18, 0x1C, 0xC0, 0x73, 0x01, 0x8C, 0x0E, 0x30, 0x38, 0xE3,
-    0xE1, 0xFF, 0x83, 0xEC, 0x00, 0x30, 0x01, 0xC0, 0x06, 0x07, 0xF0, 0x1F,
-    0x80, 0x1E, 0x01, 0xF0, 0x03, 0x00, 0x18, 0x00, 0xDE, 0x0F, 0xF8, 0x78,
-    0xC3, 0x86, 0x18, 0x30, 0xC1, 0x8E, 0x1C, 0x70, 0xE3, 0x06, 0x7E, 0xFF,
-    0xE7, 0xE0, 0x03, 0x80, 0x70, 0x00, 0x0F, 0xC1, 0xF0, 0x06, 0x00, 0xC0,
-    0x38, 0x07, 0x00, 0xC0, 0x18, 0x03, 0x0F, 0xFF, 0xFF, 0xC0, 0x00, 0x70,
-    0x07, 0x00, 0x00, 0xFF, 0x1F, 0xF0, 0x07, 0x00, 0x70, 0x06, 0x00, 0x60,
-    0x06, 0x00, 0xE0, 0x0E, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x1C, 0x03, 0x87,
-    0xF0, 0xFE, 0x00, 0x1E, 0x00, 0x78, 0x00, 0xE0, 0x03, 0x80, 0x0C, 0xFC,
-    0x33, 0xE0, 0xDE, 0x07, 0xE0, 0x1F, 0x00, 0x7C, 0x01, 0xF8, 0x06, 0xF0,
-    0x39, 0xC3, 0xE7, 0xEF, 0x1F, 0x80, 0x0F, 0x81, 0xF0, 0x06, 0x01, 0xC0,
-    0x38, 0x06, 0x00, 0xC0, 0x18, 0x07, 0x00, 0xE0, 0x18, 0x03, 0x00, 0x61,
-    0xFF, 0xFF, 0xF8, 0x3F, 0xBC, 0x7F, 0xFC, 0xF3, 0x98, 0xC6, 0x33, 0x9C,
-    0xE7, 0x39, 0xCC, 0x63, 0x18, 0xC6, 0x31, 0x8D, 0xF7, 0xBF, 0xEF, 0x78,
-    0x3D, 0xE1, 0xFF, 0x8F, 0x8C, 0x38, 0x61, 0x83, 0x0C, 0x18, 0xE1, 0xC7,
-    0x0E, 0x30, 0x67, 0xEF, 0xFE, 0x7E, 0x07, 0xC1, 0xFE, 0x38, 0x76, 0x03,
-    0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x06, 0xE1, 0xC7, 0xF8, 0x3E, 0x00, 0x1E,
-    0xFC, 0x1F, 0xFE, 0x0F, 0x87, 0x0F, 0x03, 0x0E, 0x03, 0x0E, 0x03, 0x0E,
-    0x07, 0x0E, 0x06, 0x1F, 0x0C, 0x1F, 0xF8, 0x19, 0xF0, 0x18, 0x00, 0x18,
-    0x00, 0x38, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0x0F, 0xDE, 0x3F, 0xFC, 0xC3,
-    0xE3, 0x03, 0x84, 0x07, 0x18, 0x0E, 0x30, 0x1C, 0x60, 0x78, 0xE1, 0xE0,
-    0xFF, 0xC0, 0xF9, 0x80, 0x03, 0x00, 0x0E, 0x00, 0x1C, 0x01, 0xFC, 0x03,
-    0xF8, 0x1E, 0x78, 0x7F, 0xF0, 0x7C, 0xC3, 0xC0, 0x0E, 0x00, 0x30, 0x00,
-    0xC0, 0x03, 0x00, 0x1C, 0x03, 0xFF, 0x0F, 0xFC, 0x00, 0x07, 0xF1, 0xFF,
-    0x30, 0x73, 0x86, 0x3F, 0x81, 0xFE, 0x03, 0xE6, 0x06, 0xE0, 0xEF, 0xFC,
-    0xFF, 0x00, 0x0C, 0x07, 0x01, 0x83, 0xFF, 0xFF, 0xCE, 0x03, 0x00, 0xC0,
-    0x30, 0x1C, 0x07, 0x01, 0x83, 0x7F, 0xCF, 0xC0, 0xF0, 0xFF, 0x1F, 0x60,
-    0x76, 0x07, 0x60, 0x76, 0x06, 0x60, 0x66, 0x0E, 0x61, 0xE7, 0xFF, 0x3E,
-    0xF0, 0x7E, 0x7E, 0xFC, 0xFC, 0xE0, 0xC0, 0xC3, 0x81, 0x86, 0x03, 0x98,
-    0x07, 0x70, 0x06, 0xC0, 0x0F, 0x80, 0x1E, 0x00, 0x38, 0x00, 0xF8, 0x7F,
-    0xE3, 0xE6, 0x63, 0x1B, 0xDC, 0x6F, 0x61, 0xFF, 0x87, 0xFC, 0x1E, 0xF0,
-    0x73, 0x81, 0xCE, 0x06, 0x38, 0x00, 0x3E, 0x7C, 0xF9, 0xF1, 0xE7, 0x03,
-    0xF8, 0x07, 0xC0, 0x1F, 0x01, 0xFC, 0x0F, 0x38, 0x78, 0xFB, 0xF7, 0xEF,
-    0x9F, 0x80, 0x1F, 0x1F, 0x3E, 0x1F, 0x1C, 0x1C, 0x0C, 0x18, 0x0E, 0x38,
-    0x0E, 0x70, 0x06, 0x60, 0x07, 0xE0, 0x07, 0xC0, 0x07, 0xC0, 0x03, 0x80,
-    0x07, 0x00, 0x07, 0x00, 0x0E, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x1F, 0xF1,
-    0xFF, 0x38, 0xE3, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC6, 0x38, 0x67,
-    0xFE, 0x7F, 0xE0, 0x01, 0xC0, 0xF0, 0x70, 0x18, 0x06, 0x03, 0x80, 0xE0,
-    0x30, 0x1C, 0x3E, 0x0F, 0x00, 0x60, 0x18, 0x06, 0x03, 0x80, 0xC0, 0x30,
-    0x0F, 0x01, 0xC0, 0x0C, 0x71, 0xC7, 0x18, 0x63, 0x8E, 0x30, 0xC3, 0x1C,
-    0x71, 0x86, 0x38, 0xE3, 0x04, 0x00, 0x0E, 0x07, 0x80, 0xC0, 0x60, 0x70,
-    0x30, 0x18, 0x0C, 0x06, 0x01, 0xC1, 0xE1, 0xC0, 0xC0, 0xE0, 0x70, 0x30,
-    0x38, 0x78, 0x38, 0x00, 0x3C, 0x27, 0xE6, 0xEF, 0xCC, 0x38};
-
-const GFXglyph FreeMonoBoldOblique12pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 14, 0, 1},         // 0x20 ' '
-    {0, 6, 15, 14, 6, -14},      // 0x21 '!'
-    {12, 8, 7, 14, 6, -13},      // 0x22 '"'
-    {19, 13, 18, 14, 2, -15},    // 0x23 '#'
-    {49, 11, 20, 14, 3, -16},    // 0x24 '$'
-    {77, 11, 15, 14, 3, -14},    // 0x25 '%'
-    {98, 11, 13, 14, 2, -12},    // 0x26 '&'
-    {116, 3, 7, 14, 8, -13},     // 0x27 '''
-    {119, 7, 19, 14, 7, -14},    // 0x28 '('
-    {136, 7, 19, 14, 2, -14},    // 0x29 ')'
-    {153, 11, 10, 14, 4, -14},   // 0x2A '*'
-    {167, 12, 13, 14, 3, -12},   // 0x2B '+'
-    {187, 6, 7, 14, 3, -2},      // 0x2C ','
-    {193, 13, 2, 14, 2, -7},     // 0x2D '-'
-    {197, 3, 3, 14, 6, -2},      // 0x2E '.'
-    {199, 14, 20, 14, 2, -16},   // 0x2F '/'
-    {234, 11, 15, 14, 3, -14},   // 0x30 '0'
-    {255, 11, 15, 14, 2, -14},   // 0x31 '1'
-    {276, 13, 15, 14, 1, -14},   // 0x32 '2'
-    {301, 12, 15, 14, 2, -14},   // 0x33 '3'
-    {324, 11, 14, 14, 3, -13},   // 0x34 '4'
-    {344, 12, 15, 14, 2, -14},   // 0x35 '5'
-    {367, 11, 15, 14, 4, -14},   // 0x36 '6'
-    {388, 11, 15, 14, 4, -14},   // 0x37 '7'
-    {409, 11, 15, 14, 3, -14},   // 0x38 '8'
-    {430, 11, 15, 14, 3, -14},   // 0x39 '9'
-    {451, 5, 11, 14, 5, -10},    // 0x3A ':'
-    {458, 7, 15, 14, 3, -10},    // 0x3B ';'
-    {472, 13, 11, 14, 2, -11},   // 0x3C '<'
-    {490, 13, 7, 14, 2, -9},     // 0x3D '='
-    {502, 13, 11, 14, 2, -11},   // 0x3E '>'
-    {520, 9, 14, 14, 5, -13},    // 0x3F '?'
-    {536, 12, 19, 14, 2, -14},   // 0x40 '@'
-    {565, 15, 14, 14, 0, -13},   // 0x41 'A'
-    {592, 13, 14, 14, 1, -13},   // 0x42 'B'
-    {615, 14, 14, 14, 2, -13},   // 0x43 'C'
-    {640, 13, 14, 14, 1, -13},   // 0x44 'D'
-    {663, 15, 14, 14, 0, -13},   // 0x45 'E'
-    {690, 16, 14, 14, 0, -13},   // 0x46 'F'
-    {718, 14, 14, 14, 1, -13},   // 0x47 'G'
-    {743, 16, 14, 14, 0, -13},   // 0x48 'H'
-    {771, 12, 14, 14, 2, -13},   // 0x49 'I'
-    {792, 16, 14, 14, 0, -13},   // 0x4A 'J'
-    {820, 16, 14, 14, 0, -13},   // 0x4B 'K'
-    {848, 13, 14, 14, 1, -13},   // 0x4C 'L'
-    {871, 18, 14, 14, 0, -13},   // 0x4D 'M'
-    {903, 16, 14, 14, 1, -13},   // 0x4E 'N'
-    {931, 14, 14, 14, 1, -13},   // 0x4F 'O'
-    {956, 13, 14, 14, 1, -13},   // 0x50 'P'
-    {979, 14, 17, 14, 1, -13},   // 0x51 'Q'
-    {1009, 15, 14, 14, 0, -13},  // 0x52 'R'
-    {1036, 12, 14, 14, 3, -13},  // 0x53 'S'
-    {1057, 13, 14, 14, 2, -13},  // 0x54 'T'
-    {1080, 14, 14, 14, 2, -13},  // 0x55 'U'
-    {1105, 15, 14, 14, 1, -13},  // 0x56 'V'
-    {1132, 15, 14, 14, 1, -13},  // 0x57 'W'
-    {1159, 16, 14, 14, 0, -13},  // 0x58 'X'
-    {1187, 13, 14, 14, 2, -13},  // 0x59 'Y'
-    {1210, 14, 14, 14, 1, -13},  // 0x5A 'Z'
-    {1235, 9, 19, 14, 5, -14},   // 0x5B '['
-    {1257, 7, 20, 14, 5, -16},   // 0x5C '\'
-    {1275, 9, 19, 14, 3, -14},   // 0x5D ']'
-    {1297, 10, 8, 14, 4, -15},   // 0x5E '^'
-    {1307, 15, 2, 14, -1, 4},    // 0x5F '_'
-    {1311, 4, 4, 14, 7, -15},    // 0x60 '`'
-    {1313, 12, 11, 14, 2, -10},  // 0x61 'a'
-    {1330, 15, 15, 14, -1, -14}, // 0x62 'b'
-    {1359, 12, 11, 14, 2, -10},  // 0x63 'c'
-    {1376, 14, 15, 14, 2, -14},  // 0x64 'd'
-    {1403, 12, 11, 14, 2, -10},  // 0x65 'e'
-    {1420, 15, 15, 14, 2, -14},  // 0x66 'f'
-    {1449, 14, 16, 14, 2, -10},  // 0x67 'g'
-    {1477, 13, 15, 14, 1, -14},  // 0x68 'h'
-    {1502, 11, 14, 14, 2, -13},  // 0x69 'i'
-    {1522, 12, 19, 14, 1, -13},  // 0x6A 'j'
-    {1551, 14, 15, 14, 1, -14},  // 0x6B 'k'
-    {1578, 11, 15, 14, 2, -14},  // 0x6C 'l'
-    {1599, 15, 11, 14, 0, -10},  // 0x6D 'm'
-    {1620, 13, 11, 14, 1, -10},  // 0x6E 'n'
-    {1638, 12, 11, 14, 2, -10},  // 0x6F 'o'
-    {1655, 16, 16, 14, -1, -10}, // 0x70 'p'
-    {1687, 15, 16, 14, 1, -10},  // 0x71 'q'
-    {1717, 14, 11, 14, 1, -10},  // 0x72 'r'
-    {1737, 12, 11, 14, 2, -10},  // 0x73 's'
-    {1754, 10, 14, 14, 2, -13},  // 0x74 't'
-    {1772, 12, 11, 14, 2, -10},  // 0x75 'u'
-    {1789, 15, 11, 14, 1, -10},  // 0x76 'v'
-    {1810, 14, 11, 14, 2, -10},  // 0x77 'w'
-    {1830, 14, 11, 14, 1, -10},  // 0x78 'x'
-    {1850, 16, 16, 14, 0, -10},  // 0x79 'y'
-    {1882, 12, 11, 14, 2, -10},  // 0x7A 'z'
-    {1899, 10, 19, 14, 4, -14},  // 0x7B '{'
-    {1923, 6, 19, 14, 5, -14},   // 0x7C '|'
-    {1938, 9, 19, 14, 3, -14},   // 0x7D '}'
-    {1960, 12, 4, 14, 3, -7}};   // 0x7E '~'
-
-const GFXfont FreeMonoBoldOblique12pt7b PROGMEM = {
-    (uint8_t *)FreeMonoBoldOblique12pt7bBitmaps,
-    (GFXglyph *)FreeMonoBoldOblique12pt7bGlyphs, 0x20, 0x7E, 24};
-
-// Approx. 2638 bytes

+ 0 - 459
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoBoldOblique18pt7b.h

@@ -1,459 +0,0 @@
-const uint8_t FreeMonoBoldOblique18pt7bBitmaps[] PROGMEM = {
-    0x0F, 0x07, 0xC7, 0xE3, 0xF1, 0xF0, 0xF8, 0xFC, 0x7C, 0x3E, 0x1F, 0x0F,
-    0x07, 0x87, 0xC3, 0xC1, 0xE0, 0x60, 0x00, 0x38, 0x3E, 0x1F, 0x0F, 0x83,
-    0x80, 0xF8, 0xFF, 0x0E, 0xF1, 0xEF, 0x1E, 0xE1, 0xCE, 0x1C, 0xC1, 0xCC,
-    0x18, 0xC1, 0x88, 0x18, 0x00, 0xE3, 0x80, 0x79, 0xE0, 0x1C, 0x70, 0x07,
-    0x1C, 0x03, 0xCF, 0x00, 0xF3, 0xC0, 0x38, 0xE0, 0x7F, 0xFF, 0x3F, 0xFF,
-    0xCF, 0xFF, 0xF3, 0xFF, 0xF8, 0x3C, 0xF0, 0x0F, 0x3C, 0x03, 0x8E, 0x0F,
-    0xFF, 0xE3, 0xFF, 0xFC, 0xFF, 0xFF, 0x3F, 0xFF, 0x83, 0xCF, 0x00, 0xF3,
-    0xC0, 0x38, 0xE0, 0x1E, 0x78, 0x07, 0x9E, 0x01, 0xC7, 0x00, 0x71, 0xC0,
-    0x00, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x07, 0x80, 0x03, 0xF0, 0x03, 0xFF,
-    0x81, 0xFF, 0xF0, 0xFF, 0xF8, 0x3C, 0x1E, 0x1E, 0x07, 0x87, 0x80, 0x01,
-    0xF0, 0x00, 0x7F, 0xC0, 0x0F, 0xFC, 0x01, 0xFF, 0x80, 0x07, 0xF0, 0x00,
-    0x3C, 0x70, 0x0F, 0x3C, 0x03, 0xCF, 0x83, 0xE3, 0xFF, 0xF8, 0xFF, 0xFC,
-    0x3F, 0xFE, 0x0C, 0xFE, 0x00, 0x1C, 0x00, 0x07, 0x00, 0x03, 0xC0, 0x00,
-    0xF0, 0x00, 0x18, 0x00, 0x03, 0xC0, 0x0F, 0xE0, 0x1C, 0x70, 0x30, 0x30,
-    0x30, 0x30, 0x30, 0x70, 0x38, 0xE0, 0x1F, 0xC3, 0x0F, 0x1F, 0x01, 0xFC,
-    0x0F, 0xE0, 0x7F, 0x00, 0xF8, 0xF0, 0x83, 0xF8, 0x07, 0x1C, 0x0E, 0x0C,
-    0x0C, 0x0C, 0x0C, 0x1C, 0x0E, 0x38, 0x07, 0xF0, 0x03, 0xC0, 0x00, 0x7A,
-    0x01, 0xFF, 0x03, 0xFF, 0x07, 0xFE, 0x0F, 0x9C, 0x0F, 0x00, 0x0F, 0x00,
-    0x0F, 0x00, 0x07, 0x80, 0x1F, 0x80, 0x3F, 0xC0, 0x7F, 0xCF, 0x79, 0xFF,
-    0xF1, 0xFE, 0xF1, 0xFC, 0xF0, 0xF8, 0xFF, 0xFE, 0xFF, 0xFE, 0x7F, 0xFE,
-    0x1F, 0xBC, 0x7B, 0xFD, 0xEF, 0x73, 0x9C, 0xC6, 0x00, 0x01, 0xC0, 0xF0,
-    0x3C, 0x1E, 0x0F, 0x03, 0xC1, 0xE0, 0x70, 0x3C, 0x0F, 0x07, 0x81, 0xE0,
-    0x78, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3E,
-    0x07, 0x81, 0xE0, 0x7C, 0x1F, 0x03, 0x80, 0x07, 0x03, 0xC0, 0xF8, 0x3E,
-    0x07, 0x81, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0,
-    0xF0, 0x78, 0x1E, 0x07, 0x81, 0xC0, 0xF0, 0x3C, 0x1E, 0x07, 0x83, 0xC1,
-    0xE0, 0x78, 0x3C, 0x0E, 0x00, 0x00, 0xC0, 0x03, 0xC0, 0x07, 0x00, 0x0E,
-    0x02, 0x3C, 0x0F, 0xFF, 0xFF, 0xFF, 0xBF, 0xFE, 0x1F, 0xF0, 0x1F, 0x80,
-    0x7F, 0x81, 0xEF, 0x07, 0x8F, 0x0F, 0x1E, 0x08, 0x10, 0x00, 0x00, 0x70,
-    0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xE0, 0x00, 0x38, 0x00,
-    0x1E, 0x03, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x0F,
-    0x00, 0x03, 0xC0, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x07, 0x80,
-    0x01, 0xC0, 0x00, 0x70, 0x00, 0x0F, 0x87, 0x87, 0x83, 0x83, 0xC1, 0xC1,
-    0xC0, 0xC0, 0xE0, 0x60, 0x00, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFE, 0x77, 0xFF, 0xF7, 0x00, 0x00, 0x00, 0x38, 0x00, 0x03, 0xC0,
-    0x00, 0x1C, 0x00, 0x01, 0xE0, 0x00, 0x1E, 0x00, 0x01, 0xE0, 0x00, 0x0F,
-    0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x07, 0x80, 0x00,
-    0x78, 0x00, 0x03, 0xC0, 0x00, 0x3C, 0x00, 0x03, 0xC0, 0x00, 0x1C, 0x00,
-    0x01, 0xE0, 0x00, 0x1E, 0x00, 0x00, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0xF0,
-    0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x07, 0x80, 0x00, 0x78, 0x00, 0x03,
-    0xC0, 0x00, 0x3C, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xFC, 0x01, 0xFF,
-    0x01, 0xFF, 0xC1, 0xFF, 0xE1, 0xF1, 0xF9, 0xE0, 0x7C, 0xF0, 0x1E, 0xF0,
-    0x0F, 0x78, 0x07, 0xB8, 0x03, 0x9C, 0x03, 0xDE, 0x01, 0xCF, 0x00, 0xE7,
-    0x00, 0x73, 0xC0, 0x79, 0xE0, 0x3C, 0xF0, 0x1C, 0x78, 0x1E, 0x3E, 0x1E,
-    0x0F, 0xFF, 0x07, 0xFF, 0x01, 0xFF, 0x00, 0x7E, 0x00, 0x00, 0x7C, 0x03,
-    0xF8, 0x0F, 0xE0, 0x7F, 0xC0, 0xF7, 0x81, 0x8F, 0x00, 0x1C, 0x00, 0x38,
-    0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x00, 0x0E, 0x00, 0x3C, 0x00,
-    0x78, 0x00, 0xF0, 0x01, 0xC0, 0x03, 0x81, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xEF, 0xFF, 0xC0, 0x00, 0x1F, 0x00, 0x07, 0xFC, 0x00, 0xFF, 0xE0, 0x1F,
-    0xFF, 0x03, 0xC1, 0xF0, 0x78, 0x0F, 0x07, 0x80, 0xF0, 0x70, 0x0F, 0x00,
-    0x01, 0xE0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x3F, 0x00,
-    0x07, 0xE0, 0x01, 0xFC, 0x00, 0x3F, 0x80, 0x07, 0xE0, 0x01, 0xF8, 0x00,
-    0x3F, 0x03, 0x87, 0xFF, 0xF8, 0x7F, 0xFF, 0x87, 0xFF, 0xF8, 0xFF, 0xFF,
-    0x00, 0x00, 0xFE, 0x00, 0xFF, 0xC0, 0x7F, 0xF8, 0x3F, 0xFF, 0x0E, 0x07,
-    0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x1F, 0x00, 0x07, 0x80, 0x1F, 0xC0,
-    0x0F, 0xE0, 0x03, 0xF0, 0x00, 0xFF, 0x00, 0x03, 0xE0, 0x00, 0x78, 0x00,
-    0x1E, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x03, 0xF1, 0xFF, 0xF8, 0xFF, 0xFC,
-    0x3F, 0xFE, 0x03, 0xFE, 0x00, 0x00, 0x1F, 0x00, 0x3F, 0x00, 0x7F, 0x00,
-    0xFE, 0x00, 0xFE, 0x01, 0xEE, 0x03, 0xDE, 0x07, 0x9E, 0x0F, 0x1C, 0x1E,
-    0x1C, 0x3C, 0x3C, 0x78, 0x3C, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF,
-    0xFC, 0x00, 0x70, 0x03, 0xFC, 0x07, 0xFC, 0x07, 0xFC, 0x07, 0xF8, 0x07,
-    0xFF, 0xC1, 0xFF, 0xF0, 0x7F, 0xFC, 0x3F, 0xFE, 0x0F, 0x00, 0x03, 0xC0,
-    0x00, 0xE0, 0x00, 0x3B, 0xE0, 0x1F, 0xFE, 0x07, 0xFF, 0xC1, 0xFF, 0xF8,
-    0x78, 0x3E, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x00,
-    0x0F, 0x18, 0x0F, 0xCF, 0xFF, 0xE3, 0xFF, 0xF0, 0x7F, 0xF8, 0x07, 0xF0,
-    0x00, 0x00, 0x0F, 0xC0, 0x0F, 0xFC, 0x03, 0xFF, 0x81, 0xFF, 0xE0, 0x7F,
-    0x00, 0x1F, 0x80, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x9F,
-    0x01, 0xEF, 0xF0, 0x3F, 0xFF, 0x0F, 0xFF, 0xF1, 0xFC, 0x3E, 0x3E, 0x03,
-    0xC7, 0x80, 0x78, 0xF0, 0x0F, 0x1E, 0x03, 0xC3, 0xE0, 0xF8, 0x7F, 0xFE,
-    0x07, 0xFF, 0x80, 0x7F, 0xE0, 0x07, 0xF0, 0x00, 0x7F, 0xFF, 0x7F, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x0E, 0x00, 0x1E, 0x00, 0x1C, 0x00, 0x3C,
-    0x00, 0x78, 0x00, 0x70, 0x00, 0xF0, 0x00, 0xE0, 0x01, 0xE0, 0x01, 0xC0,
-    0x03, 0xC0, 0x07, 0x80, 0x07, 0x80, 0x0F, 0x00, 0x0E, 0x00, 0x1E, 0x00,
-    0x1C, 0x00, 0x1C, 0x00, 0x00, 0x7E, 0x00, 0x3F, 0xF0, 0x0F, 0xFF, 0x03,
-    0xFF, 0xF0, 0xF8, 0x3E, 0x3E, 0x03, 0xC7, 0x80, 0x78, 0xF0, 0x0F, 0x1E,
-    0x03, 0xC3, 0xE0, 0xF0, 0x3F, 0xFC, 0x03, 0xFF, 0x00, 0xFF, 0xE0, 0x7F,
-    0xFE, 0x1F, 0x83, 0xE3, 0xC0, 0x3C, 0xF0, 0x07, 0x9E, 0x01, 0xF3, 0xE0,
-    0x7C, 0x7F, 0xFF, 0x87, 0xFF, 0xE0, 0x7F, 0xF0, 0x03, 0xF8, 0x00, 0x00,
-    0x7E, 0x00, 0x7F, 0xC0, 0x3F, 0xF8, 0x1F, 0xFE, 0x0F, 0x87, 0xC3, 0xC0,
-    0xF1, 0xE0, 0x3C, 0x78, 0x0F, 0x1E, 0x03, 0xC7, 0x81, 0xF1, 0xF1, 0xFC,
-    0x7F, 0xFE, 0x0F, 0xFF, 0x81, 0xFD, 0xE0, 0x3E, 0xF0, 0x00, 0x7C, 0x00,
-    0x3E, 0x00, 0x1F, 0x00, 0x1F, 0x81, 0xFF, 0xC0, 0xFF, 0xE0, 0x3F, 0xE0,
-    0x07, 0xE0, 0x00, 0x1C, 0x7C, 0xF9, 0xF1, 0xC0, 0x00, 0x00, 0x00, 0x00,
-    0x03, 0x8F, 0x9F, 0x3E, 0x38, 0x01, 0xC0, 0x7C, 0x0F, 0x81, 0xF0, 0x3C,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0xF0, 0x1E,
-    0x07, 0x80, 0xE0, 0x38, 0x07, 0x01, 0xC0, 0x30, 0x0E, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xFC, 0x00, 0xFE, 0x00, 0xFE, 0x00,
-    0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFE,
-    0x00, 0x1F, 0xC0, 0x01, 0xFC, 0x00, 0x1F, 0xC0, 0x01, 0xF0, 0x00, 0x38,
-    0x3F, 0xFF, 0xEF, 0xFF, 0xFD, 0xFF, 0xFF, 0x9F, 0xFF, 0xE0, 0x00, 0x00,
-    0x00, 0x00, 0x1F, 0xFF, 0xF7, 0xFF, 0xFE, 0xFF, 0xFF, 0xDF, 0xFF, 0xF0,
-    0x00, 0x00, 0x03, 0x80, 0x00, 0xFC, 0x00, 0x0F, 0xE0, 0x00, 0x7F, 0x00,
-    0x07, 0xF0, 0x00, 0x3F, 0x80, 0x01, 0xFC, 0x00, 0x1F, 0xC0, 0x0F, 0xE0,
-    0x07, 0xF0, 0x07, 0xF8, 0x03, 0xF8, 0x01, 0xFC, 0x00, 0x3E, 0x00, 0x07,
-    0x00, 0x00, 0x07, 0xE0, 0xFF, 0xC7, 0xFF, 0xBF, 0xFF, 0xF0, 0x7F, 0x80,
-    0xFE, 0x03, 0xC0, 0x0F, 0x00, 0x78, 0x0F, 0xE1, 0xFE, 0x0F, 0xF0, 0x7E,
-    0x01, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x70, 0x03, 0xE0, 0x0F, 0x80, 0x3E,
-    0x00, 0x70, 0x00, 0x00, 0x3E, 0x00, 0x3F, 0xE0, 0x1F, 0xF8, 0x0F, 0x0F,
-    0x07, 0x01, 0xC3, 0x80, 0x71, 0xE0, 0x1C, 0x70, 0x0E, 0x18, 0x0F, 0x8E,
-    0x1F, 0xE3, 0x8F, 0xF0, 0xE7, 0x9C, 0x33, 0xC7, 0x1C, 0xE1, 0xC7, 0x38,
-    0x71, 0xCF, 0x18, 0x73, 0xFE, 0x38, 0x7F, 0xCE, 0x0F, 0xF3, 0x80, 0x00,
-    0xE0, 0x00, 0x38, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0xC0, 0x7F, 0xF0, 0x0F,
-    0xF8, 0x01, 0xF8, 0x00, 0x01, 0xFF, 0x80, 0x07, 0xFE, 0x00, 0x1F, 0xF8,
-    0x00, 0x7F, 0xE0, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x00, 0x07, 0xBC, 0x00,
-    0x1C, 0xF0, 0x00, 0xF3, 0xC0, 0x07, 0x87, 0x80, 0x1E, 0x1E, 0x00, 0xF0,
-    0x78, 0x07, 0xFF, 0xE0, 0x1F, 0xFF, 0x80, 0xFF, 0xFF, 0x07, 0xFF, 0xFC,
-    0x1E, 0x00, 0xF1, 0xFE, 0x1F, 0xFF, 0xF8, 0x7F, 0xFF, 0xE1, 0xFF, 0xFF,
-    0x07, 0xF8, 0x0F, 0xFF, 0xC0, 0x7F, 0xFF, 0x87, 0xFF, 0xFC, 0x1F, 0xFF,
-    0xF0, 0x38, 0x0F, 0x81, 0xC0, 0x3C, 0x1E, 0x01, 0xE0, 0xF0, 0x3E, 0x07,
-    0xFF, 0xE0, 0x3F, 0xFE, 0x03, 0xFF, 0xF8, 0x1F, 0xFF, 0xE0, 0xE0, 0x1F,
-    0x87, 0x00, 0x3C, 0x38, 0x01, 0xE3, 0xC0, 0x0F, 0x1E, 0x00, 0xF3, 0xFF,
-    0xFF, 0xBF, 0xFF, 0xF9, 0xFF, 0xFF, 0x8F, 0xFF, 0xF0, 0x00, 0x00, 0x7F,
-    0x30, 0x0F, 0xFF, 0xC1, 0xFF, 0xFE, 0x1F, 0xFF, 0xF1, 0xF8, 0x3F, 0x1F,
-    0x00, 0x78, 0xF0, 0x03, 0xCF, 0x80, 0x1C, 0x78, 0x00, 0x03, 0xC0, 0x00,
-    0x3C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0,
-    0x00, 0x1F, 0x00, 0x38, 0x7E, 0x07, 0xC3, 0xFF, 0xFC, 0x0F, 0xFF, 0xC0,
-    0x3F, 0xFC, 0x00, 0x7F, 0x80, 0x00, 0x0F, 0xFF, 0x80, 0x7F, 0xFE, 0x07,
-    0xFF, 0xF8, 0x1F, 0xFF, 0xE0, 0x78, 0x1F, 0x03, 0x80, 0x7C, 0x1C, 0x01,
-    0xE1, 0xE0, 0x0F, 0x0F, 0x00, 0x78, 0x70, 0x03, 0xC3, 0x80, 0x1E, 0x1C,
-    0x00, 0xF1, 0xE0, 0x0F, 0x0F, 0x00, 0x78, 0x70, 0x07, 0xC3, 0x80, 0x7C,
-    0x3C, 0x07, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC1, 0xFF, 0xFC, 0x0F, 0xFF,
-    0x80, 0x00, 0x07, 0xFF, 0xFC, 0x3F, 0xFF, 0xF0, 0xFF, 0xFF, 0xC3, 0xFF,
-    0xFF, 0x03, 0xC0, 0x3C, 0x0F, 0x00, 0xE0, 0x3C, 0x73, 0x80, 0xE3, 0xCC,
-    0x03, 0xFF, 0x00, 0x1F, 0xFC, 0x00, 0x7F, 0xE0, 0x01, 0xFF, 0x80, 0x07,
-    0x1E, 0x00, 0x3C, 0x70, 0x00, 0xF0, 0x07, 0x03, 0xC0, 0x1C, 0x0E, 0x00,
-    0xF1, 0xFF, 0xFF, 0xC7, 0xFF, 0xFE, 0x3F, 0xFF, 0xF8, 0x7F, 0xFF, 0xE0,
-    0x07, 0xFF, 0xFE, 0x1F, 0xFF, 0xFC, 0x3F, 0xFF, 0xF0, 0x7F, 0xFF, 0xE0,
-    0x3C, 0x01, 0xC0, 0x70, 0x07, 0x80, 0xE1, 0x8E, 0x03, 0xC7, 0x1C, 0x07,
-    0xFE, 0x00, 0x0F, 0xFC, 0x00, 0x1F, 0xF8, 0x00, 0x3F, 0xF0, 0x00, 0xF1,
-    0xC0, 0x01, 0xE3, 0x80, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x1E, 0x00,
-    0x00, 0xFF, 0xE0, 0x03, 0xFF, 0xC0, 0x07, 0xFF, 0x80, 0x0F, 0xFE, 0x00,
-    0x00, 0x00, 0x3F, 0x18, 0x0F, 0xFF, 0xC0, 0xFF, 0xFE, 0x0F, 0xFF, 0xF0,
-    0xFC, 0x0F, 0x0F, 0x80, 0x38, 0xF8, 0x01, 0x87, 0x80, 0x00, 0x78, 0x00,
-    0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xE0, 0x7F, 0xEF, 0x07, 0xFF, 0x78,
-    0x3F, 0xFB, 0xC0, 0xFF, 0x9E, 0x00, 0x38, 0xFC, 0x03, 0xC3, 0xFF, 0xFE,
-    0x1F, 0xFF, 0xE0, 0x3F, 0xFC, 0x00, 0x7F, 0x80, 0x00, 0x03, 0xF8, 0xFE,
-    0x0F, 0xF3, 0xFC, 0x1F, 0xE7, 0xF8, 0x3F, 0x8F, 0xE0, 0x3C, 0x07, 0x80,
-    0x70, 0x0E, 0x00, 0xE0, 0x1C, 0x03, 0xC0, 0x78, 0x07, 0x80, 0xF0, 0x0F,
-    0xFF, 0xC0, 0x1F, 0xFF, 0x80, 0x3F, 0xFF, 0x00, 0xFF, 0xFE, 0x01, 0xE0,
-    0x3C, 0x03, 0x80, 0x70, 0x07, 0x00, 0xE0, 0x1E, 0x03, 0xC0, 0xFF, 0x1F,
-    0xE1, 0xFE, 0x7F, 0xC7, 0xFC, 0xFF, 0x87, 0xF1, 0xFE, 0x00, 0x07, 0xFF,
-    0xE1, 0xFF, 0xFC, 0x3F, 0xFF, 0x87, 0xFF, 0xE0, 0x07, 0x80, 0x00, 0xE0,
-    0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0x80,
-    0x00, 0x70, 0x00, 0x1E, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x0E, 0x00,
-    0x01, 0xC0, 0x0F, 0xFF, 0xC3, 0xFF, 0xF8, 0x7F, 0xFF, 0x07, 0xFF, 0xE0,
-    0x00, 0x3F, 0xFE, 0x00, 0xFF, 0xFC, 0x01, 0xFF, 0xF8, 0x03, 0xFF, 0xE0,
-    0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x01, 0xE0, 0x00,
-    0x03, 0xC0, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x80, 0x1C, 0x03, 0x80,
-    0x78, 0x0F, 0x00, 0xF0, 0x1E, 0x01, 0xC0, 0x38, 0x07, 0x80, 0x70, 0x1F,
-    0x01, 0xFF, 0xFC, 0x03, 0xFF, 0xF0, 0x03, 0xFF, 0xC0, 0x00, 0xFC, 0x00,
-    0x00, 0x07, 0xF8, 0xFC, 0x1F, 0xFB, 0xFC, 0x3F, 0xE7, 0xF0, 0x7F, 0xCF,
-    0xE0, 0x3C, 0x1E, 0x00, 0x70, 0xF8, 0x00, 0xE3, 0xE0, 0x03, 0xCF, 0x00,
-    0x07, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xF0, 0x00, 0x3F, 0xF0, 0x00,
-    0xF9, 0xF0, 0x01, 0xE1, 0xE0, 0x03, 0x83, 0xE0, 0x07, 0x03, 0xC0, 0x1E,
-    0x07, 0x80, 0xFF, 0x8F, 0xE3, 0xFF, 0x0F, 0xC7, 0xFE, 0x1F, 0x8F, 0xF8,
-    0x3E, 0x00, 0x0F, 0xFE, 0x00, 0xFF, 0xF0, 0x1F, 0xFE, 0x00, 0xFF, 0xE0,
-    0x01, 0xE0, 0x00, 0x1E, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x03, 0xC0,
-    0x00, 0x3C, 0x00, 0x03, 0x80, 0x00, 0x38, 0x00, 0x07, 0x80, 0x60, 0x78,
-    0x0F, 0x07, 0x80, 0xF0, 0x70, 0x0E, 0x07, 0x00, 0xE7, 0xFF, 0xFE, 0xFF,
-    0xFF, 0xEF, 0xFF, 0xFE, 0xFF, 0xFF, 0xC0, 0x0F, 0xC0, 0x1F, 0x87, 0xE0,
-    0x0F, 0xC7, 0xF8, 0x0F, 0xE1, 0xFC, 0x0F, 0xE0, 0x7E, 0x07, 0xE0, 0x3F,
-    0x07, 0xF0, 0x3F, 0xC7, 0xF8, 0x1F, 0xE3, 0xF8, 0x0E, 0xF3, 0xDC, 0x07,
-    0x7B, 0xDE, 0x03, 0x9F, 0xEF, 0x03, 0xCF, 0xE7, 0x81, 0xE7, 0xE3, 0x80,
-    0xE3, 0xF1, 0xC0, 0x70, 0xF1, 0xE0, 0x38, 0x70, 0xF0, 0x3C, 0x00, 0x70,
-    0x3F, 0xC1, 0xFE, 0x3F, 0xE1, 0xFF, 0x1F, 0xF0, 0xFF, 0x8F, 0xF0, 0x7F,
-    0x80, 0x0F, 0xC1, 0xFE, 0x1F, 0xC1, 0xFF, 0x1F, 0xC3, 0xFE, 0x1F, 0xE1,
-    0xFE, 0x07, 0xE0, 0x38, 0x07, 0xF0, 0x78, 0x07, 0xF0, 0x78, 0x0F, 0xF8,
-    0x70, 0x0F, 0x78, 0x70, 0x0E, 0x78, 0xF0, 0x0E, 0x7C, 0xF0, 0x1E, 0x3C,
-    0xF0, 0x1E, 0x3E, 0xE0, 0x1E, 0x1E, 0xE0, 0x1C, 0x1F, 0xE0, 0x1C, 0x0F,
-    0xE0, 0x3C, 0x0F, 0xE0, 0x7F, 0x87, 0xC0, 0xFF, 0x87, 0xC0, 0xFF, 0x87,
-    0xC0, 0xFF, 0x03, 0xC0, 0x00, 0x7E, 0x00, 0x1F, 0xF8, 0x07, 0xFF, 0xC0,
-    0xFF, 0xFE, 0x1F, 0x87, 0xE3, 0xE0, 0x1F, 0x3C, 0x01, 0xF7, 0xC0, 0x0F,
-    0x78, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x01,
-    0xEF, 0x00, 0x3E, 0xF8, 0x03, 0xCF, 0x80, 0x7C, 0x7C, 0x1F, 0x87, 0xFF,
-    0xF0, 0x3F, 0xFE, 0x01, 0xFF, 0x80, 0x07, 0xE0, 0x00, 0x0F, 0xFF, 0x80,
-    0x7F, 0xFF, 0x07, 0xFF, 0xFC, 0x1F, 0xFF, 0xF0, 0x38, 0x0F, 0x81, 0xC0,
-    0x3C, 0x1E, 0x01, 0xE0, 0xF0, 0x0F, 0x07, 0x00, 0xF0, 0x38, 0x0F, 0x83,
-    0xFF, 0xF8, 0x1F, 0xFF, 0x80, 0xFF, 0xF8, 0x07, 0xFF, 0x00, 0x38, 0x00,
-    0x03, 0xC0, 0x00, 0x1E, 0x00, 0x03, 0xFF, 0x80, 0x3F, 0xFC, 0x01, 0xFF,
-    0xE0, 0x0F, 0xFE, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x1F, 0xF8, 0x07, 0xFF,
-    0xC0, 0xFF, 0xFE, 0x1F, 0x87, 0xE3, 0xE0, 0x1F, 0x3C, 0x01, 0xF7, 0xC0,
-    0x0F, 0x78, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0,
-    0x01, 0xEF, 0x00, 0x3E, 0xF8, 0x03, 0xCF, 0x80, 0x7C, 0x7C, 0x1F, 0x87,
-    0xFF, 0xF0, 0x3F, 0xFE, 0x01, 0xFF, 0x80, 0x07, 0xE0, 0x01, 0xFE, 0x30,
-    0x3F, 0xFF, 0x87, 0xFF, 0xF0, 0x7F, 0xFF, 0x07, 0x83, 0xC0, 0x07, 0xFF,
-    0x80, 0x3F, 0xFF, 0x80, 0xFF, 0xFF, 0x03, 0xFF, 0xFE, 0x03, 0xC0, 0xF8,
-    0x0E, 0x01, 0xE0, 0x38, 0x07, 0x81, 0xE0, 0x3E, 0x07, 0x83, 0xF0, 0x1F,
-    0xFF, 0x80, 0x7F, 0xFC, 0x01, 0xFF, 0xC0, 0x0F, 0xFF, 0x80, 0x3C, 0x3E,
-    0x00, 0xE0, 0x7C, 0x03, 0x80, 0xF0, 0x1E, 0x03, 0xE1, 0xFF, 0x07, 0xFF,
-    0xFC, 0x1F, 0xFF, 0xF0, 0x3F, 0xFF, 0x80, 0xF8, 0x00, 0x7C, 0xE0, 0x7F,
-    0xFC, 0x1F, 0xFF, 0x87, 0xFF, 0xE0, 0xF8, 0x7C, 0x3C, 0x07, 0x87, 0x80,
-    0xE0, 0xF0, 0x00, 0x1F, 0x00, 0x03, 0xFE, 0x00, 0x3F, 0xF8, 0x03, 0xFF,
-    0x80, 0x07, 0xF8, 0x40, 0x1F, 0x3C, 0x01, 0xE7, 0x80, 0x3C, 0xFC, 0x1F,
-    0x1F, 0xFF, 0xE3, 0xFF, 0xF8, 0x7F, 0xFE, 0x00, 0x7E, 0x00, 0x7F, 0xFF,
-    0xEF, 0xFF, 0xFD, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0x0E, 0x1F, 0xE1, 0xC3,
-    0xBC, 0x78, 0x77, 0x0F, 0x1E, 0xE1, 0xC1, 0x80, 0x38, 0x00, 0x0F, 0x00,
-    0x01, 0xE0, 0x00, 0x3C, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x3C, 0x00,
-    0x07, 0x80, 0x0F, 0xFE, 0x03, 0xFF, 0xE0, 0x7F, 0xFC, 0x0F, 0xFF, 0x00,
-    0x7F, 0x8F, 0xF3, 0xFE, 0x7F, 0xDF, 0xF7, 0xFC, 0xFF, 0x1F, 0xE3, 0xC0,
-    0x3C, 0x1C, 0x01, 0xE0, 0xE0, 0x0F, 0x0F, 0x00, 0x70, 0x78, 0x03, 0x83,
-    0xC0, 0x3C, 0x1C, 0x01, 0xE0, 0xE0, 0x0E, 0x0F, 0x00, 0x70, 0x78, 0x03,
-    0x83, 0xC0, 0x3C, 0x1F, 0x01, 0xC0, 0xFC, 0x3E, 0x03, 0xFF, 0xE0, 0x1F,
-    0xFE, 0x00, 0x7F, 0xE0, 0x00, 0xFC, 0x00, 0x00, 0x7F, 0x81, 0xFE, 0xFF,
-    0x87, 0xFF, 0xFF, 0x0F, 0xFB, 0xFC, 0x1F, 0xE1, 0xC0, 0x0F, 0x03, 0xC0,
-    0x1C, 0x07, 0x80, 0x78, 0x0F, 0x01, 0xE0, 0x1E, 0x03, 0x80, 0x1E, 0x0F,
-    0x00, 0x3C, 0x3C, 0x00, 0x78, 0x70, 0x00, 0xF1, 0xE0, 0x01, 0xE7, 0x80,
-    0x01, 0xEF, 0x00, 0x03, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00,
-    0x0F, 0x80, 0x00, 0x1E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x7F, 0x87, 0xFF,
-    0xFF, 0x1F, 0xFF, 0xF8, 0x7F, 0xFF, 0xE1, 0xFE, 0x78, 0x00, 0xF1, 0xE3,
-    0xC3, 0x87, 0x8F, 0x0E, 0x1E, 0x7C, 0x78, 0x79, 0xF9, 0xC1, 0xEF, 0xEF,
-    0x07, 0xBF, 0xBC, 0x1D, 0xFE, 0xE0, 0x77, 0x7F, 0x81, 0xFD, 0xFE, 0x07,
-    0xE3, 0xF0, 0x3F, 0x8F, 0xC0, 0xFC, 0x3F, 0x03, 0xF0, 0xF8, 0x0F, 0x83,
-    0xE0, 0x3E, 0x0F, 0x80, 0xF0, 0x3C, 0x00, 0x07, 0xE0, 0x7E, 0x0F, 0xF0,
-    0xFF, 0x0F, 0xF0, 0xFE, 0x0F, 0xE0, 0xFE, 0x03, 0xC0, 0xF8, 0x01, 0xE1,
-    0xE0, 0x01, 0xF3, 0xC0, 0x00, 0xF7, 0x80, 0x00, 0x7F, 0x00, 0x00, 0x7E,
-    0x00, 0x00, 0x7C, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFF, 0x00, 0x03, 0xEF,
-    0x00, 0x07, 0xCF, 0x80, 0x0F, 0x87, 0xC0, 0x1F, 0x03, 0xC0, 0x7F, 0x07,
-    0xF0, 0xFF, 0x8F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xE0, 0x7E, 0x0F,
-    0xEF, 0xF0, 0xFF, 0xFF, 0x0F, 0xEF, 0xE0, 0xFE, 0x3C, 0x0F, 0x01, 0xE1,
-    0xE0, 0x1E, 0x3E, 0x00, 0xF7, 0xC0, 0x0F, 0xF8, 0x00, 0x7F, 0x00, 0x07,
-    0xE0, 0x00, 0x3C, 0x00, 0x03, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80, 0x00,
-    0x78, 0x00, 0x07, 0x00, 0x07, 0xFF, 0x00, 0xFF, 0xF8, 0x0F, 0xFF, 0x00,
-    0xFF, 0xF0, 0x00, 0x07, 0xFF, 0xE0, 0xFF, 0xFC, 0x3F, 0xFF, 0x87, 0xFF,
-    0xF0, 0xF0, 0x7C, 0x1C, 0x1F, 0x03, 0x87, 0xC0, 0x61, 0xF0, 0x00, 0x7C,
-    0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x07,
-    0x07, 0xC0, 0xE1, 0xF0, 0x3C, 0x7C, 0x07, 0x9F, 0xFF, 0xF3, 0xFF, 0xFC,
-    0x7F, 0xFF, 0x8F, 0xFF, 0xF0, 0x07, 0xF8, 0x3F, 0xC1, 0xFE, 0x0F, 0xE0,
-    0x70, 0x07, 0x80, 0x3C, 0x01, 0xC0, 0x0E, 0x00, 0xF0, 0x07, 0x80, 0x3C,
-    0x01, 0xC0, 0x0E, 0x00, 0xF0, 0x07, 0x80, 0x38, 0x01, 0xC0, 0x0E, 0x00,
-    0xF0, 0x07, 0x80, 0x38, 0x01, 0xC0, 0x1F, 0xE0, 0xFF, 0x07, 0xF8, 0x3F,
-    0x80, 0xE0, 0x38, 0x0F, 0x03, 0xC0, 0xF0, 0x1C, 0x07, 0x81, 0xE0, 0x78,
-    0x0E, 0x03, 0xC0, 0xF0, 0x3C, 0x07, 0x01, 0xE0, 0x78, 0x1E, 0x03, 0x80,
-    0xF0, 0x3C, 0x0F, 0x01, 0xE0, 0x78, 0x1E, 0x03, 0x80, 0xF0, 0x3C, 0x06,
-    0x07, 0xF8, 0x3F, 0xC1, 0xFC, 0x0F, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0,
-    0x1C, 0x00, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0x80, 0x1C, 0x01, 0xE0, 0x0F,
-    0x00, 0x78, 0x03, 0x80, 0x1C, 0x01, 0xE0, 0x0F, 0x00, 0x70, 0x03, 0x80,
-    0x1C, 0x0F, 0xE0, 0xFF, 0x07, 0xF0, 0x3F, 0x80, 0x00, 0x40, 0x01, 0x80,
-    0x07, 0x80, 0x3F, 0x80, 0xFF, 0x03, 0xFF, 0x0F, 0x9F, 0x3E, 0x1E, 0xF8,
-    0x3F, 0xE0, 0x3F, 0x00, 0x30, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xF0, 0xC3, 0xC7, 0x0E, 0x3C, 0x30, 0x00, 0xFE, 0x00,
-    0x7F, 0xF0, 0x1F, 0xFF, 0x03, 0xFF, 0xE0, 0x00, 0x3C, 0x07, 0xFF, 0x83,
-    0xFF, 0xF0, 0xFF, 0xFC, 0x3F, 0xFF, 0x8F, 0x80, 0xF3, 0xE0, 0x1E, 0x78,
-    0x1F, 0x8F, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xF8, 0xFE, 0x7E, 0x07,
-    0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFC, 0x00, 0x03, 0xF0, 0x00, 0x01, 0xC0,
-    0x00, 0x0F, 0x00, 0x00, 0x3C, 0xFC, 0x00, 0xEF, 0xFC, 0x03, 0xFF, 0xF8,
-    0x1F, 0xFF, 0xE0, 0x7E, 0x0F, 0xC1, 0xE0, 0x1F, 0x07, 0x00, 0x3C, 0x1C,
-    0x00, 0xF0, 0xE0, 0x03, 0xC3, 0x80, 0x1E, 0x0F, 0x00, 0xF8, 0x3E, 0x07,
-    0xC7, 0xFF, 0xFF, 0x3F, 0xFF, 0xF8, 0xFF, 0xFF, 0x81, 0xF1, 0xF8, 0x00,
-    0x00, 0xFE, 0x60, 0xFF, 0xFC, 0x3F, 0xFF, 0x8F, 0xFF, 0xF3, 0xF0, 0x3C,
-    0xF8, 0x03, 0x9E, 0x00, 0x67, 0x80, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x03,
-    0xC0, 0x00, 0x7E, 0x01, 0xC7, 0xFF, 0xF8, 0xFF, 0xFE, 0x0F, 0xFF, 0x80,
-    0x7F, 0x80, 0x00, 0x01, 0xF8, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x07,
-    0xE0, 0x00, 0x0F, 0x00, 0x00, 0x70, 0x07, 0xE3, 0x80, 0xFF, 0xDC, 0x0F,
-    0xFF, 0xE0, 0xFF, 0xFF, 0x0F, 0xC1, 0xF0, 0xF8, 0x07, 0x87, 0x80, 0x1C,
-    0x78, 0x00, 0xE3, 0xC0, 0x0F, 0x1E, 0x00, 0x70, 0xF0, 0x07, 0x87, 0xE0,
-    0xFC, 0x1F, 0xFF, 0xF8, 0xFF, 0xFF, 0xC3, 0xFF, 0xFE, 0x07, 0xE3, 0xE0,
-    0x00, 0xFC, 0x01, 0xFF, 0xC0, 0xFF, 0xF8, 0x7F, 0xFE, 0x3E, 0x0F, 0xCE,
-    0x00, 0xF7, 0x00, 0x3D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xE0, 0x1E, 0xFF, 0xFF, 0x9F, 0xFF, 0xE3, 0xFF, 0xF0, 0x3F, 0xF0,
-    0x00, 0x0F, 0xF0, 0x01, 0xFF, 0xC0, 0x1F, 0xFE, 0x01, 0xFF, 0xE0, 0x0F,
-    0x00, 0x00, 0xF0, 0x00, 0x3F, 0xFF, 0x03, 0xFF, 0xF8, 0x1F, 0xFF, 0xC0,
-    0xFF, 0xFC, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x38, 0x00, 0x01, 0xC0,
-    0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x00, 0x00, 0x38, 0x00, 0x1F,
-    0xFF, 0x81, 0xFF, 0xFC, 0x0F, 0xFF, 0xE0, 0x7F, 0xFE, 0x00, 0x01, 0xF9,
-    0xF8, 0x3F, 0xFF, 0xC3, 0xFF, 0xFE, 0x7F, 0xFF, 0xE3, 0xE0, 0xFC, 0x3E,
-    0x03, 0xE1, 0xE0, 0x0E, 0x1E, 0x00, 0x70, 0xF0, 0x03, 0x87, 0x80, 0x3C,
-    0x3E, 0x03, 0xE1, 0xF8, 0x7E, 0x07, 0xFF, 0xF0, 0x3F, 0xFF, 0x80, 0xFF,
-    0xFC, 0x01, 0xF9, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x80,
-    0x7F, 0xF8, 0x07, 0xFF, 0x80, 0x3F, 0xF8, 0x00, 0xFF, 0x00, 0x00, 0x0F,
-    0xC0, 0x00, 0xFC, 0x00, 0x0F, 0xC0, 0x00, 0xFC, 0x00, 0x03, 0xC0, 0x00,
-    0x38, 0x00, 0x03, 0x9F, 0x00, 0x7F, 0xFC, 0x07, 0xFF, 0xC0, 0x7F, 0xFE,
-    0x07, 0xC3, 0xE0, 0x70, 0x1E, 0x0F, 0x01, 0xC0, 0xF0, 0x1C, 0x0E, 0x03,
-    0xC0, 0xE0, 0x3C, 0x1E, 0x03, 0x81, 0xE0, 0x38, 0x7F, 0x0F, 0xFF, 0xF8,
-    0xFF, 0xFF, 0x8F, 0xF7, 0xF0, 0xFE, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78,
-    0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x0F, 0xF0, 0x1F, 0xF0,
-    0x0F, 0xF0, 0x00, 0xF0, 0x00, 0xE0, 0x00, 0xE0, 0x01, 0xE0, 0x01, 0xE0,
-    0x01, 0xE0, 0x01, 0xC0, 0x01, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFE, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0xF8, 0x00, 0x3C, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x7F, 0xFC, 0x3F, 0xFE, 0x0F, 0xFF, 0x81, 0xFF,
-    0xE0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x00, 0x01, 0xC0, 0x00, 0xF0,
-    0x00, 0x3C, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x00, 0xE0, 0x00, 0x78, 0x00,
-    0x1E, 0x00, 0x07, 0x00, 0x01, 0xC0, 0x00, 0xF0, 0x00, 0x7C, 0x1F, 0xFE,
-    0x0F, 0xFF, 0x03, 0xFF, 0x80, 0x7F, 0x80, 0x00, 0x07, 0xE0, 0x00, 0xFE,
-    0x00, 0x0F, 0xE0, 0x00, 0x7C, 0x00, 0x01, 0xC0, 0x00, 0x3C, 0x00, 0x03,
-    0xCF, 0xF0, 0x3C, 0xFF, 0x03, 0x9F, 0xF0, 0x38, 0xFE, 0x07, 0xBF, 0x00,
-    0x7F, 0xC0, 0x07, 0xF8, 0x00, 0x7F, 0x00, 0x07, 0xF8, 0x00, 0xFF, 0xC0,
-    0x0F, 0x7E, 0x00, 0xE3, 0xF0, 0x7E, 0x1F, 0xE7, 0xE1, 0xFE, 0xFE, 0x3F,
-    0xE7, 0xE1, 0xFC, 0x03, 0xFC, 0x07, 0xFC, 0x07, 0xF8, 0x07, 0xF8, 0x00,
-    0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x70, 0x00, 0x70, 0x00, 0xF0, 0x00,
-    0xF0, 0x00, 0xE0, 0x00, 0xE0, 0x01, 0xE0, 0x01, 0xE0, 0x01, 0xE0, 0x01,
-    0xC0, 0x01, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x1F,
-    0x7C, 0x78, 0x7F, 0xFF, 0xF8, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xF0, 0xF1,
-    0xF1, 0xE1, 0xC3, 0x83, 0xC7, 0x87, 0x07, 0x8F, 0x0E, 0x0E, 0x1C, 0x3C,
-    0x1C, 0x38, 0x78, 0x78, 0x70, 0xE0, 0xF1, 0xE1, 0xC1, 0xC7, 0xE3, 0xC3,
-    0xFF, 0xCF, 0xC7, 0xFF, 0x9F, 0x9F, 0xFF, 0x3E, 0x3E, 0x0F, 0x8F, 0x80,
-    0xFD, 0xFF, 0x07, 0xFF, 0xF8, 0x3F, 0xFF, 0xE0, 0x7E, 0x1F, 0x07, 0xC0,
-    0x78, 0x3C, 0x03, 0x81, 0xE0, 0x1C, 0x0E, 0x01, 0xE0, 0x70, 0x0F, 0x07,
-    0x80, 0x70, 0x3C, 0x03, 0x87, 0xF0, 0x3F, 0x7F, 0xC3, 0xFF, 0xFE, 0x1F,
-    0xEF, 0xE0, 0xFE, 0x01, 0xFC, 0x01, 0xFF, 0x80, 0xFF, 0xF8, 0x7F, 0xFE,
-    0x3E, 0x0F, 0xDF, 0x01, 0xF7, 0x80, 0x3F, 0xC0, 0x0F, 0xF0, 0x03, 0xFC,
-    0x01, 0xEF, 0x80, 0xFB, 0xF0, 0x7C, 0x7F, 0xFF, 0x1F, 0xFF, 0x03, 0xFF,
-    0x80, 0x3F, 0x80, 0x07, 0xC7, 0xE0, 0x1F, 0xBF, 0xF0, 0x3F, 0xFF, 0xF0,
-    0x7F, 0xFF, 0xE0, 0x3F, 0x07, 0xE0, 0x78, 0x03, 0xC0, 0xE0, 0x07, 0x81,
-    0xC0, 0x0F, 0x07, 0x00, 0x1E, 0x0F, 0x00, 0x78, 0x1E, 0x01, 0xF0, 0x3E,
-    0x07, 0xC0, 0xFF, 0xFF, 0x81, 0xFF, 0xFE, 0x03, 0xDF, 0xF0, 0x07, 0x1F,
-    0x80, 0x0E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x78, 0x00, 0x03, 0xFE, 0x00,
-    0x0F, 0xFE, 0x00, 0x1F, 0xF8, 0x00, 0x3F, 0xF0, 0x00, 0x00, 0x01, 0xF8,
-    0xF8, 0x1F, 0xFF, 0xF1, 0xFF, 0xFF, 0xCF, 0xFF, 0xFE, 0x3E, 0x07, 0xC1,
-    0xF0, 0x0F, 0x07, 0x80, 0x1C, 0x3C, 0x00, 0x70, 0xF0, 0x03, 0x83, 0xC0,
-    0x0E, 0x0F, 0x80, 0x78, 0x3F, 0x07, 0xE0, 0x7F, 0xFF, 0x81, 0xFF, 0xFC,
-    0x03, 0xFF, 0x70, 0x03, 0xF3, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00,
-    0x00, 0xE0, 0x00, 0x3F, 0xE0, 0x01, 0xFF, 0xC0, 0x07, 0xFF, 0x00, 0x1F,
-    0xF8, 0x00, 0x0F, 0xC3, 0xC1, 0xFC, 0xFF, 0x1F, 0xFF, 0xF1, 0xFF, 0xFE,
-    0x03, 0xFC, 0x00, 0x3F, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x07, 0x80,
-    0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0xF0, 0x00, 0xFF, 0xFC, 0x0F, 0xFF,
-    0xE0, 0xFF, 0xFC, 0x0F, 0xFF, 0xC0, 0x03, 0xF3, 0x0F, 0xFF, 0x3F, 0xFF,
-    0x3F, 0xFF, 0x7C, 0x0E, 0x78, 0x00, 0x7F, 0xE0, 0x3F, 0xFC, 0x1F, 0xFF,
-    0x00, 0x3F, 0x70, 0x0F, 0xF8, 0x1F, 0xFF, 0xFE, 0xFF, 0xFC, 0xFF, 0xF8,
-    0x0F, 0xE0, 0x06, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0E, 0x00, 0x0E, 0x00,
-    0x7F, 0xFE, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0xFC, 0x1C, 0x00, 0x3C, 0x00,
-    0x3C, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x78, 0x00, 0x7C, 0x0E,
-    0x7F, 0xFF, 0x7F, 0xFE, 0x3F, 0xFC, 0x0F, 0xE0, 0x7C, 0x0F, 0xFF, 0x07,
-    0xFF, 0x81, 0xFF, 0xE0, 0x7E, 0x78, 0x03, 0x9E, 0x00, 0xE7, 0x80, 0x79,
-    0xE0, 0x1E, 0x78, 0x07, 0x1E, 0x01, 0xC7, 0x80, 0xF1, 0xE0, 0xFC, 0x7F,
-    0xFF, 0x9F, 0xFF, 0xE3, 0xFF, 0xF8, 0x3E, 0x7C, 0x7F, 0x87, 0xFF, 0xFC,
-    0x7F, 0xFF, 0xE3, 0xFF, 0xFF, 0x1F, 0xE1, 0xE0, 0x3C, 0x0F, 0x03, 0xC0,
-    0x78, 0x3C, 0x01, 0xE1, 0xC0, 0x0F, 0x1E, 0x00, 0x79, 0xE0, 0x03, 0xCE,
-    0x00, 0x0F, 0xF0, 0x00, 0x7F, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0x80, 0x00,
-    0x78, 0x00, 0x7E, 0x03, 0xF7, 0xF0, 0x3F, 0xFF, 0x81, 0xFD, 0xF8, 0x0F,
-    0xE7, 0x8E, 0x1C, 0x3C, 0xF9, 0xE1, 0xE7, 0xCE, 0x0F, 0x7E, 0xF0, 0x7B,
-    0xF7, 0x03, 0xFF, 0xF8, 0x1F, 0xDF, 0x80, 0xFC, 0xFC, 0x07, 0xE7, 0xE0,
-    0x3E, 0x3E, 0x01, 0xF1, 0xF0, 0x0F, 0x07, 0x00, 0x0F, 0xE3, 0xF8, 0xFF,
-    0x1F, 0xC7, 0xF9, 0xFE, 0x1F, 0x87, 0xF0, 0x7E, 0x7C, 0x01, 0xFF, 0xC0,
-    0x07, 0xFC, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x1F, 0xF0, 0x01, 0xF7,
-    0xC0, 0x1F, 0x1F, 0x03, 0xF0, 0x7C, 0x7F, 0xCF, 0xFB, 0xFE, 0x7F, 0xDF,
-    0xE3, 0xFC, 0x07, 0xF0, 0x7F, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x07,
-    0xE0, 0xFE, 0x03, 0xC0, 0x78, 0x03, 0xC0, 0x78, 0x03, 0xC0, 0xF0, 0x01,
-    0xE1, 0xE0, 0x01, 0xE1, 0xC0, 0x01, 0xE3, 0xC0, 0x00, 0xF7, 0x80, 0x00,
-    0xFF, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7C, 0x00, 0x00,
-    0x78, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x7F,
-    0xF0, 0x00, 0xFF, 0xF8, 0x00, 0xFF, 0xF0, 0x00, 0x7F, 0xF0, 0x00, 0x1F,
-    0xFF, 0xC7, 0xFF, 0xF1, 0xFF, 0xF8, 0xFF, 0xFE, 0x3C, 0x1F, 0x0E, 0x1F,
-    0x00, 0x0F, 0x80, 0x07, 0xC0, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00,
-    0xF8, 0x3C, 0xFF, 0xFF, 0x3F, 0xFF, 0xCF, 0xFF, 0xE3, 0xFF, 0xF8, 0x00,
-    0xF0, 0x1F, 0x03, 0xF0, 0x7E, 0x07, 0x80, 0x70, 0x0F, 0x00, 0xF0, 0x0E,
-    0x00, 0xE0, 0x1E, 0x01, 0xC0, 0xFC, 0x0F, 0x80, 0xF8, 0x0F, 0xC0, 0x3C,
-    0x03, 0xC0, 0x38, 0x03, 0x80, 0x78, 0x07, 0x80, 0x78, 0x07, 0xE0, 0x7E,
-    0x03, 0xE0, 0x1C, 0x00, 0x02, 0x07, 0x07, 0x0F, 0x0F, 0x0E, 0x0E, 0x0E,
-    0x1E, 0x1E, 0x1C, 0x1C, 0x1C, 0x3C, 0x3C, 0x38, 0x38, 0x38, 0x78, 0x78,
-    0x70, 0x70, 0x70, 0xF0, 0xF0, 0xE0, 0xE0, 0x01, 0xC0, 0x1F, 0x00, 0xFC,
-    0x07, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1C, 0x00, 0xE0, 0x0F, 0x00,
-    0x78, 0x03, 0xC0, 0x1F, 0x80, 0x7C, 0x03, 0xE0, 0x3F, 0x03, 0xC0, 0x1C,
-    0x00, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0x80, 0x3C, 0x0F, 0xE0, 0x7E, 0x07,
-    0xE0, 0x1E, 0x00, 0x0F, 0x00, 0x1F, 0xC0, 0x1F, 0xF0, 0xFF, 0xFC, 0xFF,
-    0x3F, 0xFF, 0x0F, 0xF8, 0x03, 0xF8, 0x00, 0xF0};
-
-const GFXglyph FreeMonoBoldOblique18pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 21, 0, 1},         // 0x20 ' '
-    {0, 9, 22, 21, 9, -21},      // 0x21 '!'
-    {25, 12, 10, 21, 9, -20},    // 0x22 '"'
-    {40, 18, 25, 21, 4, -22},    // 0x23 '#'
-    {97, 18, 28, 21, 4, -23},    // 0x24 '$'
-    {160, 16, 21, 21, 5, -20},   // 0x25 '%'
-    {202, 16, 20, 21, 4, -19},   // 0x26 '&'
-    {242, 5, 10, 21, 12, -20},   // 0x27 '''
-    {249, 10, 27, 21, 11, -21},  // 0x28 '('
-    {283, 10, 27, 21, 4, -21},   // 0x29 ')'
-    {317, 15, 15, 21, 6, -21},   // 0x2A '*'
-    {346, 18, 19, 21, 4, -18},   // 0x2B '+'
-    {389, 9, 10, 21, 4, -3},     // 0x2C ','
-    {401, 18, 4, 21, 4, -11},    // 0x2D '-'
-    {410, 5, 5, 21, 8, -4},      // 0x2E '.'
-    {414, 21, 28, 21, 2, -23},   // 0x2F '/'
-    {488, 17, 23, 21, 5, -22},   // 0x30 '0'
-    {537, 15, 22, 21, 3, -21},   // 0x31 '1'
-    {579, 20, 23, 21, 2, -22},   // 0x32 '2'
-    {637, 18, 23, 21, 3, -22},   // 0x33 '3'
-    {689, 16, 21, 21, 4, -20},   // 0x34 '4'
-    {731, 18, 22, 21, 4, -21},   // 0x35 '5'
-    {781, 19, 23, 21, 5, -22},   // 0x36 '6'
-    {836, 16, 22, 21, 6, -21},   // 0x37 '7'
-    {880, 19, 23, 21, 3, -22},   // 0x38 '8'
-    {935, 18, 23, 21, 4, -22},   // 0x39 '9'
-    {987, 7, 16, 21, 9, -15},    // 0x3A ':'
-    {1001, 11, 22, 21, 4, -15},  // 0x3B ';'
-    {1032, 18, 16, 21, 4, -17},  // 0x3C '<'
-    {1068, 19, 10, 21, 3, -14},  // 0x3D '='
-    {1092, 19, 16, 21, 3, -17},  // 0x3E '>'
-    {1130, 14, 21, 21, 8, -20},  // 0x3F '?'
-    {1167, 18, 27, 21, 3, -21},  // 0x40 '@'
-    {1228, 22, 21, 21, 0, -20},  // 0x41 'A'
-    {1286, 21, 21, 21, 1, -20},  // 0x42 'B'
-    {1342, 21, 21, 21, 2, -20},  // 0x43 'C'
-    {1398, 21, 21, 21, 1, -20},  // 0x44 'D'
-    {1454, 22, 21, 21, 0, -20},  // 0x45 'E'
-    {1512, 23, 21, 21, 0, -20},  // 0x46 'F'
-    {1573, 21, 21, 21, 2, -20},  // 0x47 'G'
-    {1629, 23, 21, 21, 0, -20},  // 0x48 'H'
-    {1690, 19, 21, 21, 2, -20},  // 0x49 'I'
-    {1740, 23, 21, 21, 0, -20},  // 0x4A 'J'
-    {1801, 23, 21, 21, 0, -20},  // 0x4B 'K'
-    {1862, 20, 21, 21, 1, -20},  // 0x4C 'L'
-    {1915, 25, 21, 21, 0, -20},  // 0x4D 'M'
-    {1981, 24, 21, 21, 1, -20},  // 0x4E 'N'
-    {2044, 20, 21, 21, 2, -20},  // 0x4F 'O'
-    {2097, 21, 21, 21, 1, -20},  // 0x50 'P'
-    {2153, 20, 26, 21, 2, -20},  // 0x51 'Q'
-    {2218, 22, 21, 21, 0, -20},  // 0x52 'R'
-    {2276, 19, 21, 21, 3, -20},  // 0x53 'S'
-    {2326, 19, 21, 21, 3, -20},  // 0x54 'T'
-    {2376, 21, 21, 21, 3, -20},  // 0x55 'U'
-    {2432, 23, 21, 21, 1, -20},  // 0x56 'V'
-    {2493, 22, 21, 21, 2, -20},  // 0x57 'W'
-    {2551, 24, 21, 21, 0, -20},  // 0x58 'X'
-    {2614, 20, 21, 21, 3, -20},  // 0x59 'Y'
-    {2667, 19, 21, 21, 2, -20},  // 0x5A 'Z'
-    {2717, 13, 27, 21, 8, -21},  // 0x5B '['
-    {2761, 10, 28, 21, 8, -23},  // 0x5C '\'
-    {2796, 13, 27, 21, 4, -21},  // 0x5D ']'
-    {2840, 15, 11, 21, 6, -21},  // 0x5E '^'
-    {2861, 21, 4, 21, -1, 4},    // 0x5F '_'
-    {2872, 6, 6, 21, 10, -22},   // 0x60 '`'
-    {2877, 19, 16, 21, 2, -15},  // 0x61 'a'
-    {2915, 22, 22, 21, 0, -21},  // 0x62 'b'
-    {2976, 19, 16, 21, 3, -15},  // 0x63 'c'
-    {3014, 21, 22, 21, 3, -21},  // 0x64 'd'
-    {3072, 18, 16, 21, 3, -15},  // 0x65 'e'
-    {3108, 21, 22, 21, 3, -21},  // 0x66 'f'
-    {3166, 21, 23, 21, 2, -15},  // 0x67 'g'
-    {3227, 20, 22, 21, 1, -21},  // 0x68 'h'
-    {3282, 16, 22, 21, 3, -21},  // 0x69 'i'
-    {3326, 18, 29, 21, 2, -21},  // 0x6A 'j'
-    {3392, 20, 22, 21, 1, -21},  // 0x6B 'k'
-    {3447, 16, 22, 21, 3, -21},  // 0x6C 'l'
-    {3491, 23, 16, 21, 0, -15},  // 0x6D 'm'
-    {3537, 21, 16, 21, 1, -15},  // 0x6E 'n'
-    {3579, 18, 16, 21, 3, -15},  // 0x6F 'o'
-    {3615, 23, 23, 21, -1, -15}, // 0x70 'p'
-    {3682, 22, 23, 21, 2, -15},  // 0x71 'q'
-    {3746, 20, 16, 21, 2, -15},  // 0x72 'r'
-    {3786, 16, 16, 21, 4, -15},  // 0x73 's'
-    {3818, 16, 21, 21, 4, -20},  // 0x74 't'
-    {3860, 18, 16, 21, 3, -15},  // 0x75 'u'
-    {3896, 21, 16, 21, 2, -15},  // 0x76 'v'
-    {3938, 21, 16, 21, 3, -15},  // 0x77 'w'
-    {3980, 21, 16, 21, 1, -15},  // 0x78 'x'
-    {4022, 24, 23, 21, -1, -15}, // 0x79 'y'
-    {4091, 18, 16, 21, 3, -15},  // 0x7A 'z'
-    {4127, 12, 27, 21, 8, -21},  // 0x7B '{'
-    {4168, 8, 27, 21, 8, -21},   // 0x7C '|'
-    {4195, 13, 27, 21, 4, -21},  // 0x7D '}'
-    {4239, 17, 8, 21, 4, -13}};  // 0x7E '~'
-
-const GFXfont FreeMonoBoldOblique18pt7b PROGMEM = {
-    (uint8_t *)FreeMonoBoldOblique18pt7bBitmaps,
-    (GFXglyph *)FreeMonoBoldOblique18pt7bGlyphs, 0x20, 0x7E, 35};
-
-// Approx. 4928 bytes

+ 0 - 741
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoBoldOblique24pt7b.h

@@ -1,741 +0,0 @@
-const uint8_t FreeMonoBoldOblique24pt7bBitmaps[] PROGMEM = {
-    0x01, 0xE0, 0x3F, 0x07, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xE0, 0xFE,
-    0x0F, 0xE0, 0xFE, 0x0F, 0xC0, 0xFC, 0x1F, 0xC1, 0xF8, 0x1F, 0x81, 0xF8,
-    0x1F, 0x81, 0xF0, 0x1F, 0x01, 0xF0, 0x1E, 0x00, 0x80, 0x00, 0x00, 0x00,
-    0x00, 0x03, 0xC0, 0x7E, 0x0F, 0xE0, 0xFE, 0x0F, 0xC0, 0x78, 0x00, 0x7E,
-    0x1F, 0xBF, 0x0F, 0xDF, 0x87, 0xCF, 0x83, 0xE7, 0xC1, 0xF3, 0xE0, 0xF1,
-    0xE0, 0xF8, 0xF0, 0x7C, 0x78, 0x3C, 0x38, 0x1E, 0x1C, 0x0F, 0x0E, 0x07,
-    0x0E, 0x03, 0x83, 0x01, 0x80, 0x00, 0x1C, 0x1C, 0x00, 0x3E, 0x3E, 0x00,
-    0x3E, 0x3E, 0x00, 0x3C, 0x3C, 0x00, 0x7C, 0x7C, 0x00, 0x7C, 0x7C, 0x00,
-    0x7C, 0x7C, 0x00, 0xF8, 0xF8, 0x00, 0xF8, 0xF8, 0x00, 0xF8, 0xF8, 0x0F,
-    0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x1F,
-    0xFF, 0xFE, 0x03, 0xE3, 0xE0, 0x03, 0xE3, 0xE0, 0x03, 0xC3, 0xC0, 0x07,
-    0xC7, 0xC0, 0x7F, 0xFF, 0xF8, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, 0xFF,
-    0xFF, 0xF8, 0xFF, 0xFF, 0xF0, 0x0F, 0x0F, 0x00, 0x1F, 0x1F, 0x00, 0x1F,
-    0x1F, 0x00, 0x1F, 0x1F, 0x00, 0x3E, 0x1E, 0x00, 0x3E, 0x3E, 0x00, 0x3E,
-    0x3E, 0x00, 0x3C, 0x3C, 0x00, 0x7C, 0x7C, 0x00, 0x38, 0x38, 0x00, 0x00,
-    0x00, 0xE0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x7C, 0x00,
-    0x00, 0xFF, 0x00, 0x01, 0xFF, 0xFC, 0x03, 0xFF, 0xFE, 0x03, 0xFF, 0xFF,
-    0x01, 0xFF, 0xFF, 0x81, 0xFC, 0x1F, 0xC1, 0xF8, 0x03, 0xC0, 0xF8, 0x01,
-    0xE0, 0x7C, 0x00, 0x40, 0x3F, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x0F, 0xFF,
-    0x80, 0x03, 0xFF, 0xF8, 0x00, 0xFF, 0xFE, 0x00, 0x0F, 0xFF, 0x00, 0x00,
-    0x7F, 0xC0, 0x00, 0x07, 0xE0, 0xE0, 0x01, 0xF0, 0xF0, 0x00, 0xF8, 0xF8,
-    0x00, 0xFC, 0x7E, 0x00, 0xFC, 0x3F, 0x81, 0xFE, 0x1F, 0xFF, 0xFE, 0x0F,
-    0xFF, 0xFE, 0x0F, 0xFF, 0xFE, 0x03, 0xFF, 0xFC, 0x00, 0x07, 0xF0, 0x00,
-    0x01, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x7C, 0x00,
-    0x00, 0x3E, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0xF8,
-    0x00, 0x0F, 0xF8, 0x00, 0x7F, 0xE0, 0x03, 0xC3, 0xC0, 0x0E, 0x07, 0x00,
-    0x70, 0x1C, 0x01, 0xC0, 0x70, 0x07, 0x01, 0xC0, 0x1C, 0x0E, 0x00, 0x78,
-    0x78, 0x00, 0xFF, 0xC0, 0x03, 0xFE, 0x1F, 0x03, 0xE3, 0xFC, 0x00, 0x7F,
-    0xC0, 0x0F, 0xF8, 0x03, 0xFF, 0x00, 0x7F, 0xC0, 0x03, 0xF8, 0x7C, 0x0F,
-    0x07, 0xFC, 0x00, 0x3F, 0xF0, 0x01, 0xE1, 0xE0, 0x07, 0x03, 0x80, 0x38,
-    0x0E, 0x00, 0xE0, 0x38, 0x03, 0x80, 0xE0, 0x0E, 0x07, 0x00, 0x3C, 0x3C,
-    0x00, 0x7F, 0xE0, 0x01, 0xFF, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1F, 0x00,
-    0x01, 0xFF, 0x80, 0x3F, 0xFC, 0x03, 0xFF, 0xE0, 0x1F, 0xFE, 0x01, 0xF1,
-    0xE0, 0x1F, 0x04, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01,
-    0xF8, 0x00, 0x0F, 0xC0, 0x00, 0x3F, 0x00, 0x07, 0xF8, 0x00, 0x7F, 0xE3,
-    0xE7, 0xFF, 0x3F, 0x7E, 0xFF, 0xFB, 0xE7, 0xFF, 0x9E, 0x1F, 0xF1, 0xF0,
-    0xFF, 0x8F, 0x83, 0xF8, 0x7C, 0x1F, 0xC3, 0xF0, 0xFF, 0x9F, 0xFF, 0xFC,
-    0x7F, 0xFF, 0xE3, 0xFF, 0xFF, 0x0F, 0xFD, 0xF0, 0x1F, 0x80, 0x00, 0x7E,
-    0xFD, 0xF3, 0xE7, 0xCF, 0x3E, 0x7C, 0xF1, 0xE3, 0xC7, 0x0E, 0x18, 0x00,
-    0x00, 0x18, 0x00, 0xF0, 0x07, 0xC0, 0x3F, 0x01, 0xF8, 0x07, 0xC0, 0x3E,
-    0x01, 0xF8, 0x07, 0xC0, 0x3E, 0x00, 0xF8, 0x07, 0xC0, 0x1F, 0x00, 0xF8,
-    0x03, 0xE0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x3E, 0x00, 0xF8,
-    0x03, 0xE0, 0x0F, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x3E,
-    0x00, 0xFC, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x80, 0x7E, 0x00, 0xFC, 0x03,
-    0xF0, 0x07, 0xC0, 0x1E, 0x00, 0x00, 0xC0, 0x07, 0x80, 0x3F, 0x00, 0xFC,
-    0x03, 0xF0, 0x07, 0xE0, 0x1F, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xF0, 0x07,
-    0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01,
-    0xF0, 0x07, 0xC0, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x1F, 0x00, 0x7C, 0x01,
-    0xF0, 0x0F, 0x80, 0x3E, 0x01, 0xF0, 0x0F, 0xC0, 0x3E, 0x01, 0xF0, 0x0F,
-    0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x3E, 0x00, 0xF0, 0x00, 0x00, 0x3C,
-    0x00, 0x01, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x08,
-    0x3C, 0x09, 0xF9, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF,
-    0x87, 0xFF, 0xE0, 0x07, 0xF8, 0x00, 0x7F, 0xC0, 0x07, 0xFF, 0x00, 0x7F,
-    0xF8, 0x07, 0xE7, 0xE0, 0x3E, 0x3F, 0x01, 0xE0, 0xF8, 0x0E, 0x07, 0x80,
-    0x00, 0x07, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00,
-    0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1E, 0x00,
-    0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x7C, 0x00,
-    0x00, 0x78, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00,
-    0x00, 0xF8, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xF0, 0x00,
-    0x01, 0xF0, 0x00, 0x00, 0xE0, 0x00, 0x03, 0xF0, 0x7E, 0x07, 0xC0, 0xFC,
-    0x0F, 0x81, 0xF0, 0x1E, 0x03, 0xE0, 0x3C, 0x07, 0x80, 0x78, 0x0F, 0x00,
-    0xE0, 0x0C, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x3C, 0xFF, 0xFF, 0xFF, 0xCF, 0x00,
-    0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x01, 0xF0, 0x00,
-    0x00, 0x3E, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x0F,
-    0x80, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x03, 0xE0, 0x00,
-    0x00, 0x3E, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x1F,
-    0x80, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x07, 0xE0, 0x00,
-    0x00, 0x7C, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x1F,
-    0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x07, 0xC0, 0x00,
-    0x00, 0xF8, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x3E,
-    0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x0F, 0x80, 0x00,
-    0x01, 0xF0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x7C,
-    0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x07, 0x00, 0x00,
-    0x00, 0x00, 0x0F, 0xC0, 0x00, 0xFF, 0xE0, 0x03, 0xFF, 0xE0, 0x1F, 0xFF,
-    0xE0, 0x7F, 0xFF, 0xC0, 0xFC, 0x1F, 0x83, 0xF0, 0x1F, 0x8F, 0xC0, 0x1F,
-    0x1F, 0x00, 0x3E, 0x7C, 0x00, 0x7C, 0xF8, 0x00, 0xF9, 0xF0, 0x01, 0xF3,
-    0xC0, 0x07, 0xCF, 0x80, 0x0F, 0x9F, 0x00, 0x1E, 0x3E, 0x00, 0x3C, 0x78,
-    0x00, 0xF8, 0xF0, 0x01, 0xF3, 0xE0, 0x03, 0xE7, 0xC0, 0x07, 0x8F, 0x80,
-    0x1F, 0x1F, 0x00, 0x3E, 0x3E, 0x00, 0xF8, 0x7C, 0x01, 0xF0, 0xFC, 0x07,
-    0xC1, 0xFC, 0x3F, 0x81, 0xFF, 0xFE, 0x03, 0xFF, 0xF8, 0x03, 0xFF, 0xE0,
-    0x03, 0xFF, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x7E,
-    0x00, 0x0F, 0xF0, 0x01, 0xFF, 0x80, 0x1F, 0xFC, 0x03, 0xFB, 0xE0, 0x1F,
-    0x9E, 0x00, 0xF1, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xE0,
-    0x00, 0x1E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x03,
-    0xC0, 0x00, 0x1E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00,
-    0x03, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C,
-    0x01, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F,
-    0xFF, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xFF, 0x80, 0x03, 0xFF, 0xF0,
-    0x01, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0x80, 0x7F, 0x07, 0xF0, 0x1F, 0x00,
-    0xFC, 0x0F, 0x80, 0x1F, 0x03, 0xE0, 0x07, 0xC0, 0xF0, 0x01, 0xF0, 0x00,
-    0x00, 0xF8, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0xC0,
-    0x00, 0x0F, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xF8,
-    0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF,
-    0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0x80, 0x70, 0x3F, 0x80, 0x3E, 0x1F,
-    0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFC,
-    0x3F, 0xFF, 0xFF, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x0F, 0xFE, 0x00, 0x1F,
-    0xFF, 0x80, 0x1F, 0xFF, 0xE0, 0x1F, 0xFF, 0xF8, 0x0F, 0x81, 0xFC, 0x07,
-    0x00, 0x3E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x0F, 0xC0,
-    0x00, 0x07, 0xC0, 0x00, 0x0F, 0xC0, 0x01, 0xFF, 0xC0, 0x01, 0xFF, 0xC0,
-    0x00, 0xFF, 0x80, 0x00, 0x7F, 0xE0, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0xFE,
-    0x00, 0x00, 0x1F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01,
-    0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xFC, 0x3C, 0x01,
-    0xFC, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF, 0xFC, 0x0F, 0xFF, 0xFC, 0x03, 0xFF,
-    0xFC, 0x00, 0x3F, 0xF0, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x07, 0xF0, 0x00,
-    0x3F, 0xC0, 0x01, 0xFE, 0x00, 0x0F, 0xF8, 0x00, 0x7F, 0xE0, 0x03, 0xFF,
-    0x80, 0x1F, 0xBE, 0x00, 0x7C, 0xF0, 0x03, 0xE7, 0xC0, 0x1F, 0x1F, 0x00,
-    0xF8, 0x7C, 0x07, 0xE1, 0xE0, 0x3F, 0x07, 0x81, 0xF8, 0x3E, 0x07, 0xC0,
-    0xF8, 0x3E, 0x03, 0xC1, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFE,
-    0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0x80, 0x00, 0xF8, 0x00, 0x3F, 0xF8, 0x01,
-    0xFF, 0xE0, 0x07, 0xFF, 0x80, 0x1F, 0xFE, 0x00, 0x7F, 0xF0, 0x01, 0xFF,
-    0xFF, 0x00, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xC0, 0x3F, 0xFF, 0xE0, 0x3F,
-    0xFF, 0xE0, 0x1F, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03,
-    0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01, 0xF7, 0xF0, 0x00, 0xFF, 0xFE, 0x00,
-    0x7F, 0xFF, 0x80, 0x3F, 0xFF, 0xE0, 0x1F, 0xFF, 0xF0, 0x0F, 0x01, 0xFC,
-    0x00, 0x00, 0x7E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x07,
-    0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01, 0xF0, 0x00, 0x01, 0xF0, 0x00, 0x00,
-    0xF8, 0x00, 0x00, 0xF8, 0x3C, 0x03, 0xFC, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF,
-    0xFC, 0x0F, 0xFF, 0xFC, 0x03, 0xFF, 0xF8, 0x00, 0x3F, 0xE0, 0x00, 0x00,
-    0x01, 0xFC, 0x00, 0x07, 0xFE, 0x00, 0x1F, 0xFF, 0x00, 0x7F, 0xFF, 0x00,
-    0xFF, 0xFE, 0x01, 0xFE, 0x1C, 0x03, 0xF8, 0x00, 0x07, 0xE0, 0x00, 0x0F,
-    0xC0, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x3E, 0x00, 0x3E,
-    0xFF, 0x80, 0x7D, 0xFF, 0xC0, 0x7F, 0xFF, 0xE0, 0x7F, 0xFF, 0xE0, 0x7F,
-    0x87, 0xF0, 0xFF, 0x03, 0xF0, 0xFC, 0x01, 0xF0, 0xF8, 0x01, 0xF0, 0xF8,
-    0x01, 0xF0, 0xF8, 0x01, 0xF0, 0xF8, 0x03, 0xE0, 0xF8, 0x03, 0xE0, 0xFC,
-    0x07, 0xC0, 0xFE, 0x0F, 0xC0, 0x7F, 0xFF, 0x80, 0x7F, 0xFF, 0x00, 0x3F,
-    0xFE, 0x00, 0x1F, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0xFF, 0xFD, 0xFF,
-    0xFF, 0xE7, 0xFF, 0xFF, 0xBF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFB, 0xE0, 0x07,
-    0xCF, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00,
-    0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x01,
-    0xE0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80,
-    0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x00,
-    0xF8, 0x00, 0x07, 0xC0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xE0,
-    0x00, 0x1F, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0xFF,
-    0xE0, 0x07, 0xFF, 0xE0, 0x1F, 0xFF, 0xE0, 0x7F, 0xFF, 0xC0, 0xFC, 0x1F,
-    0xC3, 0xF0, 0x1F, 0x8F, 0xC0, 0x1F, 0x1F, 0x00, 0x3E, 0x3E, 0x00, 0x7C,
-    0x7C, 0x01, 0xF0, 0xFC, 0x07, 0xE0, 0xFC, 0x1F, 0x81, 0xFF, 0xFE, 0x01,
-    0xFF, 0xF0, 0x01, 0xFF, 0xE0, 0x0F, 0xFF, 0xE0, 0x3F, 0xFF, 0xE0, 0xFE,
-    0x0F, 0xC3, 0xF0, 0x0F, 0xC7, 0xC0, 0x0F, 0x9F, 0x00, 0x1F, 0x3E, 0x00,
-    0x3E, 0x7C, 0x00, 0xFC, 0xFC, 0x03, 0xF1, 0xFC, 0x1F, 0xE3, 0xFF, 0xFF,
-    0x83, 0xFF, 0xFE, 0x03, 0xFF, 0xF8, 0x03, 0xFF, 0xC0, 0x01, 0xFC, 0x00,
-    0x00, 0x00, 0x0F, 0xE0, 0x00, 0x3F, 0xF8, 0x00, 0xFF, 0xFC, 0x01, 0xFF,
-    0xFE, 0x03, 0xFF, 0xFE, 0x03, 0xF0, 0x7F, 0x07, 0xE0, 0x3F, 0x07, 0xC0,
-    0x1F, 0x0F, 0xC0, 0x1F, 0x0F, 0x80, 0x1F, 0x0F, 0x80, 0x1F, 0x0F, 0x80,
-    0x3F, 0x0F, 0xC0, 0x7F, 0x0F, 0xE1, 0xFF, 0x07, 0xFF, 0xFE, 0x07, 0xFF,
-    0xFE, 0x03, 0xFF, 0xBE, 0x01, 0xFF, 0x7C, 0x00, 0xFC, 0x7C, 0x00, 0x00,
-    0xFC, 0x00, 0x01, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x0F,
-    0xE0, 0x00, 0x1F, 0xC0, 0x38, 0x7F, 0x80, 0x7F, 0xFF, 0x00, 0xFF, 0xFE,
-    0x00, 0xFF, 0xF8, 0x00, 0x7F, 0xE0, 0x00, 0x3F, 0x80, 0x00, 0x07, 0x83,
-    0xF1, 0xFC, 0x7F, 0x1F, 0x83, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x1F, 0x8F, 0xE3, 0xF8, 0xFC,
-    0x1E, 0x00, 0x00, 0x3C, 0x00, 0xFC, 0x03, 0xF8, 0x07, 0xF0, 0x0F, 0xC0,
-    0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF8, 0x03, 0xE0, 0x0F, 0xC0,
-    0x1F, 0x00, 0x7C, 0x00, 0xF0, 0x03, 0xE0, 0x07, 0x80, 0x1E, 0x00, 0x38,
-    0x00, 0xF0, 0x01, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
-    0x03, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xF0, 0x00, 0x3F, 0xE0, 0x00,
-    0x7F, 0xC0, 0x00, 0xFF, 0x80, 0x03, 0xFF, 0x00, 0x07, 0xFE, 0x00, 0x0F,
-    0xFC, 0x00, 0x1F, 0xF0, 0x00, 0x1F, 0xFC, 0x00, 0x01, 0xFF, 0x00, 0x00,
-    0x3F, 0xE0, 0x00, 0x0F, 0xFC, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x3F, 0xE0,
-    0x00, 0x07, 0xFC, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07,
-    0x80, 0x1F, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFC, 0xFF,
-    0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF,
-    0xF3, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x80, 0x00,
-    0x00, 0x00, 0x07, 0x80, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00,
-    0xFF, 0x80, 0x00, 0x1F, 0xF0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0xFF, 0xC0,
-    0x00, 0x1F, 0xF0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x7F,
-    0xE0, 0x00, 0xFF, 0xC0, 0x01, 0xFF, 0x80, 0x03, 0xFE, 0x00, 0x07, 0xFC,
-    0x00, 0x1F, 0xF8, 0x00, 0x3F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0x80,
-    0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFC, 0x01, 0xFF,
-    0xE1, 0xFF, 0xFE, 0x3F, 0xFF, 0xE7, 0xFF, 0xFF, 0xF8, 0x1F, 0xFE, 0x00,
-    0xFF, 0x80, 0x1F, 0xF0, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x0F,
-    0xE0, 0x07, 0xF8, 0x07, 0xFE, 0x01, 0xFF, 0x80, 0x7F, 0xC0, 0x0F, 0xE0,
-    0x01, 0xF0, 0x00, 0x3C, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0xF0, 0x00, 0x3F, 0x00, 0x0F, 0xE0, 0x01, 0xFC, 0x00,
-    0x3F, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x7F, 0xF0, 0x01,
-    0xFF, 0xF0, 0x0F, 0xFF, 0xE0, 0x3F, 0x07, 0xE0, 0x7C, 0x07, 0xC1, 0xE0,
-    0x07, 0x87, 0xC0, 0x0F, 0x0F, 0x00, 0x1C, 0x3C, 0x00, 0x78, 0x78, 0x07,
-    0xF1, 0xE0, 0x3F, 0xE3, 0xC1, 0xFF, 0x87, 0x87, 0xFF, 0x0E, 0x1F, 0x9E,
-    0x3C, 0x7C, 0x3C, 0x78, 0xF0, 0x78, 0xF3, 0xC0, 0xE1, 0xC7, 0x83, 0xC3,
-    0x8F, 0x07, 0x8F, 0x1E, 0x0F, 0x1E, 0x3E, 0x1C, 0x3C, 0x7F, 0xFC, 0x78,
-    0x7F, 0xFC, 0xF0, 0x7F, 0xF1, 0xE0, 0x3F, 0xE3, 0xC0, 0x00, 0x07, 0x80,
-    0x00, 0x0F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x3F, 0x01,
-    0xC0, 0x7F, 0xFF, 0x80, 0x7F, 0xFE, 0x00, 0x7F, 0xF8, 0x00, 0x3F, 0x80,
-    0x00, 0x00, 0x3F, 0xFE, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x07, 0xFF, 0xE0,
-    0x00, 0x1F, 0xFF, 0x80, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x0F, 0xFC, 0x00,
-    0x00, 0x7F, 0xF0, 0x00, 0x01, 0xE7, 0xC0, 0x00, 0x0F, 0x9F, 0x00, 0x00,
-    0x7C, 0x7C, 0x00, 0x01, 0xE1, 0xF8, 0x00, 0x0F, 0x87, 0xE0, 0x00, 0x7C,
-    0x0F, 0x80, 0x01, 0xF0, 0x3E, 0x00, 0x0F, 0x80, 0xF8, 0x00, 0x3F, 0xFF,
-    0xF0, 0x01, 0xFF, 0xFF, 0xC0, 0x0F, 0xFF, 0xFF, 0x00, 0x3F, 0xFF, 0xFC,
-    0x01, 0xFF, 0xFF, 0xF8, 0x0F, 0xC0, 0x07, 0xE0, 0x3E, 0x00, 0x0F, 0x87,
-    0xFF, 0x03, 0xFF, 0xBF, 0xFC, 0x1F, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xFF,
-    0xC1, 0xFF, 0xEF, 0xFE, 0x07, 0xFF, 0x00, 0x03, 0xFF, 0xFF, 0x80, 0x3F,
-    0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF,
-    0xFF, 0x80, 0x7C, 0x00, 0xFC, 0x03, 0xE0, 0x03, 0xE0, 0x1E, 0x00, 0x1F,
-    0x01, 0xF0, 0x00, 0xF8, 0x0F, 0x80, 0x0F, 0x80, 0x7C, 0x01, 0xF8, 0x03,
-    0xFF, 0xFF, 0x80, 0x1F, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xC0, 0x0F, 0xFF,
-    0xFF, 0x80, 0x7F, 0xFF, 0xFC, 0x03, 0xC0, 0x0F, 0xF0, 0x3E, 0x00, 0x1F,
-    0x81, 0xF0, 0x00, 0x7C, 0x0F, 0x80, 0x03, 0xE0, 0x78, 0x00, 0x1F, 0x03,
-    0xC0, 0x03, 0xF1, 0xFF, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF,
-    0xFF, 0x87, 0xFF, 0xFF, 0xF0, 0x1F, 0xFF, 0xFE, 0x00, 0x00, 0x07, 0xF0,
-    0x00, 0x03, 0xFF, 0xE6, 0x00, 0x7F, 0xFF, 0xF0, 0x1F, 0xFF, 0xFF, 0x03,
-    0xFF, 0xFF, 0xF0, 0x7F, 0x81, 0xFF, 0x0F, 0xE0, 0x07, 0xE1, 0xF8, 0x00,
-    0x3E, 0x1F, 0x00, 0x03, 0xE3, 0xF0, 0x00, 0x3C, 0x3E, 0x00, 0x03, 0xC7,
-    0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x7C, 0x00,
-    0x00, 0x0F, 0x80, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00,
-    0xF8, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x0F, 0xC0,
-    0x00, 0x70, 0x7E, 0x00, 0x1F, 0x07, 0xF8, 0x07, 0xF0, 0x3F, 0xFF, 0xFF,
-    0x03, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xF8, 0x00, 0x7F, 0xFE, 0x00, 0x00,
-    0xFF, 0x00, 0x00, 0x03, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0xF0, 0x07, 0xFF,
-    0xFF, 0x80, 0x7F, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0xE0, 0x1F, 0x00, 0xFE,
-    0x01, 0xF0, 0x07, 0xE0, 0x1E, 0x00, 0x3F, 0x01, 0xE0, 0x01, 0xF0, 0x3E,
-    0x00, 0x1F, 0x03, 0xE0, 0x01, 0xF0, 0x3E, 0x00, 0x1F, 0x03, 0xC0, 0x01,
-    0xF0, 0x7C, 0x00, 0x1F, 0x07, 0xC0, 0x03, 0xF0, 0x7C, 0x00, 0x3E, 0x07,
-    0x80, 0x03, 0xE0, 0x78, 0x00, 0x7E, 0x0F, 0x80, 0x07, 0xC0, 0xF8, 0x00,
-    0xFC, 0x0F, 0x80, 0x1F, 0x80, 0xF0, 0x07, 0xF0, 0x7F, 0xFF, 0xFE, 0x07,
-    0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xF8, 0x0F, 0xFF, 0xFE, 0x00, 0x7F, 0xFF,
-    0x00, 0x00, 0x03, 0xFF, 0xFF, 0xF8, 0x3F, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF,
-    0xFE, 0x1F, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xFF, 0x00, 0x78, 0x00, 0xF8,
-    0x07, 0xC0, 0x07, 0xC0, 0x3E, 0x00, 0x3E, 0x01, 0xF0, 0xF1, 0xE0, 0x0F,
-    0x0F, 0x8E, 0x00, 0x78, 0x7C, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x3F, 0xFE,
-    0x00, 0x01, 0xFF, 0xF0, 0x00, 0x0F, 0xFF, 0x80, 0x00, 0xFF, 0xFC, 0x00,
-    0x07, 0xC3, 0xC0, 0x00, 0x3E, 0x1E, 0x1E, 0x01, 0xE0, 0xE0, 0xF0, 0x0F,
-    0x00, 0x0F, 0x80, 0xF8, 0x00, 0x7C, 0x07, 0xC0, 0x03, 0xE1, 0xFF, 0xFF,
-    0xFE, 0x1F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xFC,
-    0x3F, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xF8,
-    0x1F, 0xFF, 0xFF, 0xF0, 0x3F, 0xFF, 0xFF, 0xE0, 0x3F, 0xFF, 0xFF, 0xC0,
-    0x1F, 0x00, 0x0F, 0x80, 0x3E, 0x00, 0x1E, 0x00, 0x78, 0x00, 0x7C, 0x00,
-    0xF0, 0x70, 0xF8, 0x03, 0xE1, 0xF0, 0xE0, 0x07, 0xC3, 0xC0, 0x00, 0x0F,
-    0xFF, 0x80, 0x00, 0x1F, 0xFF, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0xFF,
-    0xFC, 0x00, 0x01, 0xFF, 0xF0, 0x00, 0x03, 0xC3, 0xE0, 0x00, 0x07, 0x87,
-    0xC0, 0x00, 0x1F, 0x07, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x7C, 0x00,
-    0x00, 0x00, 0xF0, 0x00, 0x00, 0x0F, 0xFF, 0xC0, 0x00, 0x3F, 0xFF, 0x80,
-    0x00, 0xFF, 0xFF, 0x00, 0x01, 0xFF, 0xFE, 0x00, 0x01, 0xFF, 0xF8, 0x00,
-    0x00, 0x00, 0x07, 0xF8, 0x60, 0x03, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0xF0,
-    0x1F, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xE0, 0x7F, 0x80, 0xFE, 0x0F, 0xE0,
-    0x03, 0xE0, 0xF8, 0x00, 0x3C, 0x1F, 0x00, 0x03, 0xC3, 0xF0, 0x00, 0x00,
-    0x3E, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x07, 0xC0,
-    0x00, 0x00, 0x7C, 0x00, 0x00, 0x07, 0xC0, 0x7F, 0xFC, 0xF8, 0x0F, 0xFF,
-    0xEF, 0x80, 0xFF, 0xFE, 0xF8, 0x0F, 0xFF, 0xCF, 0x80, 0x7F, 0xF8, 0xF8,
-    0x00, 0x1F, 0x0F, 0xC0, 0x01, 0xF0, 0xFE, 0x00, 0x1F, 0x07, 0xF8, 0x07,
-    0xE0, 0x7F, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xFC, 0x00,
-    0x7F, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x01, 0xFF, 0x0F, 0xF8, 0x0F,
-    0xFC, 0x7F, 0xF0, 0x7F, 0xF1, 0xFF, 0xC1, 0xFF, 0xC7, 0xFE, 0x03, 0xFE,
-    0x1F, 0xF0, 0x07, 0xC0, 0x0F, 0x80, 0x1F, 0x00, 0x3C, 0x00, 0x78, 0x00,
-    0xF0, 0x01, 0xE0, 0x07, 0xC0, 0x0F, 0x80, 0x1F, 0x00, 0x3E, 0x00, 0x7C,
-    0x00, 0xFF, 0xFF, 0xE0, 0x03, 0xFF, 0xFF, 0x80, 0x1F, 0xFF, 0xFE, 0x00,
-    0x7F, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xC0, 0x07, 0x80, 0x1F, 0x00, 0x1E,
-    0x00, 0x7C, 0x00, 0xF8, 0x01, 0xF0, 0x03, 0xE0, 0x07, 0xC0, 0x0F, 0x80,
-    0x1E, 0x00, 0x3C, 0x00, 0xF8, 0x07, 0xFE, 0x1F, 0xF8, 0x3F, 0xF8, 0xFF,
-    0xF0, 0xFF, 0xE3, 0xFF, 0xC3, 0xFF, 0x8F, 0xFE, 0x0F, 0xFC, 0x3F, 0xF8,
-    0x00, 0x03, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xE0, 0xFF,
-    0xFF, 0xF0, 0x7F, 0xFF, 0xF0, 0x00, 0x7C, 0x00, 0x00, 0x3E, 0x00, 0x00,
-    0x1E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00,
-    0x03, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0xF8, 0x00,
-    0x00, 0x7C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x00,
-    0x00, 0x0F, 0x80, 0x00, 0x07, 0x80, 0x00, 0x07, 0xC0, 0x01, 0xFF, 0xFF,
-    0xC1, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xF8, 0x1F, 0xFF,
-    0xF8, 0x00, 0x00, 0x07, 0xFF, 0xFE, 0x00, 0x1F, 0xFF, 0xFC, 0x00, 0x3F,
-    0xFF, 0xF8, 0x00, 0x7F, 0xFF, 0xF0, 0x00, 0x7F, 0xFF, 0xC0, 0x00, 0x01,
-    0xF0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x0F,
-    0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xF8,
-    0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x07, 0xC0, 0x07, 0x00, 0x0F, 0x80,
-    0x1F, 0x00, 0x1F, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x78, 0x00, 0x78, 0x01,
-    0xF0, 0x01, 0xF0, 0x03, 0xE0, 0x03, 0xE0, 0x07, 0xC0, 0x0F, 0x80, 0x0F,
-    0x80, 0x3F, 0x00, 0x1F, 0xC0, 0xFC, 0x00, 0x7F, 0xFF, 0xF8, 0x00, 0xFF,
-    0xFF, 0xE0, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x1F,
-    0xC0, 0x00, 0x00, 0x03, 0xFF, 0xC3, 0xFE, 0x0F, 0xFF, 0x8F, 0xFC, 0x1F,
-    0xFF, 0x3F, 0xF8, 0x3F, 0xFE, 0x7F, 0xF0, 0x7F, 0xF8, 0x7F, 0xC0, 0x1F,
-    0x01, 0xFC, 0x00, 0x3E, 0x07, 0xF0, 0x00, 0x78, 0x3F, 0x80, 0x01, 0xF0,
-    0xFE, 0x00, 0x03, 0xE3, 0xF0, 0x00, 0x07, 0xDF, 0xC0, 0x00, 0x0F, 0xFE,
-    0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0xFF, 0xFE,
-    0x00, 0x01, 0xFC, 0xFC, 0x00, 0x03, 0xE0, 0xFC, 0x00, 0x0F, 0x81, 0xF8,
-    0x00, 0x1F, 0x01, 0xF8, 0x00, 0x3E, 0x03, 0xF0, 0x00, 0x78, 0x03, 0xE0,
-    0x00, 0xF0, 0x07, 0xE0, 0x1F, 0xFE, 0x0F, 0xF8, 0x7F, 0xFC, 0x1F, 0xF8,
-    0xFF, 0xF8, 0x1F, 0xF1, 0xFF, 0xF0, 0x3F, 0xE1, 0xFF, 0xC0, 0x7F, 0x80,
-    0x03, 0xFF, 0xF8, 0x00, 0xFF, 0xFF, 0x00, 0x1F, 0xFF, 0xE0, 0x03, 0xFF,
-    0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x0F, 0x80, 0x00,
-    0x01, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x01, 0xF0,
-    0x00, 0x00, 0x3C, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01, 0xF0, 0x00, 0x00,
-    0x3E, 0x00, 0x00, 0x07, 0xC0, 0x0E, 0x00, 0xF0, 0x01, 0xE0, 0x3E, 0x00,
-    0x7C, 0x07, 0xC0, 0x0F, 0x80, 0xF8, 0x01, 0xF0, 0x1E, 0x00, 0x7C, 0x07,
-    0xC0, 0x0F, 0x9F, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF,
-    0x9F, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFE, 0x00, 0x03, 0xFC, 0x00, 0x3F,
-    0xC1, 0xFF, 0x00, 0x1F, 0xF0, 0x7F, 0xC0, 0x07, 0xFC, 0x1F, 0xF0, 0x03,
-    0xFE, 0x01, 0xFE, 0x01, 0xFE, 0x00, 0xFF, 0x80, 0xFF, 0x80, 0x3F, 0xE0,
-    0x3F, 0xE0, 0x0F, 0xF8, 0x1F, 0xF0, 0x03, 0xFF, 0x0F, 0xFC, 0x00, 0xF7,
-    0xC3, 0xFF, 0x00, 0x7D, 0xF1, 0xF7, 0xC0, 0x1F, 0x7C, 0xFD, 0xF0, 0x07,
-    0xDF, 0xBE, 0x78, 0x01, 0xE3, 0xFF, 0x3E, 0x00, 0x78, 0xFF, 0xCF, 0x80,
-    0x3E, 0x3F, 0xE3, 0xE0, 0x0F, 0x87, 0xF0, 0xF8, 0x03, 0xE1, 0xFC, 0x3C,
-    0x00, 0xF0, 0x7E, 0x1F, 0x00, 0x7C, 0x1F, 0x07, 0xC0, 0x1F, 0x00, 0x01,
-    0xF0, 0x07, 0xC0, 0x00, 0x78, 0x07, 0xFE, 0x01, 0xFF, 0x83, 0xFF, 0xC0,
-    0xFF, 0xF0, 0xFF, 0xF0, 0x7F, 0xFC, 0x3F, 0xF8, 0x1F, 0xFE, 0x0F, 0xFC,
-    0x03, 0xFF, 0x00, 0x07, 0xF8, 0x07, 0xFF, 0x0F, 0xFC, 0x0F, 0xFF, 0x0F,
-    0xFC, 0x0F, 0xFF, 0x0F, 0xFC, 0x0F, 0xFF, 0x0F, 0xFE, 0x0F, 0xFE, 0x01,
-    0xFE, 0x00, 0xF8, 0x01, 0xFF, 0x00, 0xF0, 0x01, 0xFF, 0x01, 0xF0, 0x03,
-    0xFF, 0x81, 0xF0, 0x03, 0xFF, 0x81, 0xF0, 0x03, 0xEF, 0xC1, 0xF0, 0x03,
-    0xCF, 0xC1, 0xE0, 0x07, 0xC7, 0xE3, 0xE0, 0x07, 0xC7, 0xE3, 0xE0, 0x07,
-    0xC3, 0xF3, 0xE0, 0x07, 0xC3, 0xF3, 0xC0, 0x07, 0x81, 0xF7, 0xC0, 0x0F,
-    0x81, 0xFF, 0xC0, 0x0F, 0x80, 0xFF, 0xC0, 0x0F, 0x80, 0xFF, 0xC0, 0x0F,
-    0x00, 0xFF, 0x80, 0x0F, 0x00, 0x7F, 0x80, 0x7F, 0xF0, 0x7F, 0x80, 0xFF,
-    0xF0, 0x3F, 0x80, 0xFF, 0xF0, 0x3F, 0x00, 0xFF, 0xF0, 0x1F, 0x00, 0x7F,
-    0xE0, 0x1F, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xFF, 0x80, 0x01, 0xFF,
-    0xF8, 0x00, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xF8, 0x0F, 0xF0, 0x7F, 0x83,
-    0xF8, 0x03, 0xF0, 0xFC, 0x00, 0x7E, 0x1F, 0x00, 0x07, 0xE7, 0xE0, 0x00,
-    0x7C, 0xF8, 0x00, 0x0F, 0xBE, 0x00, 0x01, 0xF7, 0xC0, 0x00, 0x3E, 0xF0,
-    0x00, 0x07, 0xFE, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x3E, 0xF8, 0x00, 0x07,
-    0xDF, 0x00, 0x00, 0xFB, 0xE0, 0x00, 0x3E, 0x7C, 0x00, 0x0F, 0xCF, 0xC0,
-    0x01, 0xF0, 0xF8, 0x00, 0x7E, 0x1F, 0x80, 0x3F, 0x83, 0xFC, 0x1F, 0xE0,
-    0x3F, 0xFF, 0xF8, 0x03, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0x00, 0x03, 0xFF,
-    0x80, 0x00, 0x1F, 0xC0, 0x00, 0x03, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xF8,
-    0x07, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xFE, 0x07, 0xFF, 0xFF, 0xF0, 0x0F,
-    0x80, 0x7F, 0x00, 0xF8, 0x01, 0xF0, 0x0F, 0x00, 0x1F, 0x01, 0xF0, 0x01,
-    0xF0, 0x1F, 0x00, 0x1F, 0x01, 0xF0, 0x03, 0xE0, 0x1E, 0x00, 0x7E, 0x01,
-    0xE0, 0x0F, 0xC0, 0x3F, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0x80, 0x3F, 0xFF,
-    0xE0, 0x03, 0xFF, 0xFC, 0x00, 0x7F, 0xFE, 0x00, 0x07, 0xC0, 0x00, 0x00,
-    0x7C, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x78, 0x00, 0x00, 0x7F, 0xFF,
-    0x00, 0x0F, 0xFF, 0xF0, 0x00, 0xFF, 0xFF, 0x00, 0x0F, 0xFF, 0xF0, 0x00,
-    0x7F, 0xFE, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xFF, 0x80, 0x03,
-    0xFF, 0xF8, 0x00, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xF8, 0x0F, 0xF0, 0x7F,
-    0x83, 0xF8, 0x03, 0xF0, 0xFC, 0x00, 0x3F, 0x1F, 0x00, 0x07, 0xE7, 0xC0,
-    0x00, 0x7D, 0xF8, 0x00, 0x0F, 0xBE, 0x00, 0x01, 0xF7, 0xC0, 0x00, 0x3F,
-    0xF0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x3E, 0xF8, 0x00,
-    0x07, 0xDF, 0x00, 0x01, 0xFB, 0xE0, 0x00, 0x3E, 0x7E, 0x00, 0x0F, 0x8F,
-    0xC0, 0x03, 0xF0, 0xFC, 0x01, 0xFC, 0x1F, 0xE0, 0xFF, 0x01, 0xFF, 0xFF,
-    0xC0, 0x1F, 0xFF, 0xF0, 0x01, 0xFF, 0xFC, 0x00, 0x1F, 0xFE, 0x00, 0x01,
-    0xFE, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1F, 0xF8, 0x38, 0x0F, 0xFF, 0xFF,
-    0x81, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0x00, 0xF0,
-    0x1F, 0x80, 0x00, 0x03, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0xFC, 0x01, 0xFF,
-    0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0x00, 0x7C, 0x03,
-    0xF8, 0x03, 0xE0, 0x07, 0xC0, 0x1E, 0x00, 0x3E, 0x00, 0xF0, 0x01, 0xF0,
-    0x0F, 0x80, 0x1F, 0x80, 0x7C, 0x01, 0xF8, 0x03, 0xE0, 0x3F, 0x80, 0x1F,
-    0xFF, 0xFC, 0x01, 0xFF, 0xFF, 0x80, 0x0F, 0xFF, 0xF8, 0x00, 0x7F, 0xFF,
-    0x00, 0x03, 0xFF, 0xFC, 0x00, 0x1E, 0x07, 0xF0, 0x01, 0xF0, 0x1F, 0xC0,
-    0x0F, 0x80, 0x7E, 0x00, 0x7C, 0x03, 0xF8, 0x03, 0xC0, 0x0F, 0xC0, 0xFF,
-    0xE0, 0x7F, 0xCF, 0xFF, 0x01, 0xFF, 0xFF, 0xF8, 0x0F, 0xFF, 0xFF, 0xC0,
-    0x3F, 0xDF, 0xFC, 0x01, 0xFC, 0x00, 0x0F, 0xE1, 0x80, 0x0F, 0xFF, 0xF0,
-    0x0F, 0xFF, 0xFC, 0x07, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xC1, 0xFC, 0x0F,
-    0xE0, 0x7C, 0x01, 0xF8, 0x3E, 0x00, 0x3E, 0x0F, 0x80, 0x0F, 0x03, 0xE0,
-    0x03, 0xC0, 0xFC, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x07, 0xFF, 0x80, 0x01,
-    0xFF, 0xFC, 0x00, 0x3F, 0xFF, 0x80, 0x03, 0xFF, 0xF0, 0x00, 0x07, 0xFE,
-    0x00, 0x00, 0x3F, 0x80, 0x00, 0x03, 0xE1, 0xE0, 0x00, 0xF8, 0xF8, 0x00,
-    0x3E, 0x3E, 0x00, 0x1F, 0x8F, 0xC0, 0x0F, 0xC3, 0xFC, 0x0F, 0xF0, 0xFF,
-    0xFF, 0xF8, 0x3F, 0xFF, 0xFC, 0x0F, 0xFF, 0xFE, 0x03, 0x9F, 0xFE, 0x00,
-    0x01, 0xFE, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xF7, 0xFF,
-    0xFF, 0xFD, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0x9F, 0x07, 0x83, 0xE7,
-    0x83, 0xE0, 0xFB, 0xE0, 0xF8, 0x3E, 0xF8, 0x3E, 0x0F, 0x3E, 0x0F, 0x07,
-    0xCF, 0x07, 0xC1, 0xF3, 0x81, 0xF0, 0x38, 0x00, 0x7C, 0x00, 0x00, 0x1E,
-    0x00, 0x00, 0x07, 0x80, 0x00, 0x03, 0xE0, 0x00, 0x00, 0xF8, 0x00, 0x00,
-    0x3E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xF0, 0x00,
-    0x00, 0x7C, 0x00, 0x07, 0xFF, 0xF8, 0x01, 0xFF, 0xFE, 0x00, 0xFF, 0xFF,
-    0x80, 0x3F, 0xFF, 0xE0, 0x07, 0xFF, 0xF0, 0x00, 0x3F, 0xF0, 0x7F, 0xE7,
-    0xFF, 0x8F, 0xFF, 0x7F, 0xF9, 0xFF, 0xF7, 0xFF, 0x1F, 0xFE, 0x7F, 0xF0,
-    0xFF, 0xC1, 0xE0, 0x01, 0xF0, 0x1E, 0x00, 0x1F, 0x03, 0xE0, 0x01, 0xF0,
-    0x3E, 0x00, 0x1F, 0x03, 0xE0, 0x01, 0xE0, 0x3C, 0x00, 0x3E, 0x07, 0xC0,
-    0x03, 0xE0, 0x7C, 0x00, 0x3E, 0x07, 0xC0, 0x03, 0xC0, 0x7C, 0x00, 0x3C,
-    0x07, 0x80, 0x07, 0xC0, 0xF8, 0x00, 0x7C, 0x0F, 0x80, 0x07, 0xC0, 0xF8,
-    0x00, 0x78, 0x0F, 0x80, 0x0F, 0x80, 0xFC, 0x01, 0xF8, 0x0F, 0xC0, 0x3F,
-    0x00, 0xFF, 0x07, 0xE0, 0x07, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xC0, 0x03,
-    0xFF, 0xF0, 0x00, 0x0F, 0xFE, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x7F, 0xF0,
-    0x1F, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xFC, 0x0F,
-    0xFF, 0x7F, 0xE0, 0x3F, 0xF8, 0x7C, 0x00, 0x1F, 0x01, 0xF0, 0x00, 0xF8,
-    0x07, 0xC0, 0x03, 0xE0, 0x1F, 0x80, 0x1F, 0x00, 0x3E, 0x00, 0xF8, 0x00,
-    0xF8, 0x03, 0xE0, 0x03, 0xE0, 0x1F, 0x00, 0x0F, 0xC0, 0xFC, 0x00, 0x1F,
-    0x03, 0xE0, 0x00, 0x7C, 0x1F, 0x00, 0x01, 0xF0, 0xFC, 0x00, 0x07, 0xC3,
-    0xE0, 0x00, 0x1F, 0x9F, 0x00, 0x00, 0x3E, 0xFC, 0x00, 0x00, 0xFB, 0xE0,
-    0x00, 0x03, 0xFF, 0x00, 0x00, 0x0F, 0xFC, 0x00, 0x00, 0x3F, 0xE0, 0x00,
-    0x00, 0x7F, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00,
-    0x1F, 0x00, 0x00, 0x00, 0x7F, 0xF0, 0x3F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF,
-    0xFC, 0x1F, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFE, 0x07, 0xFF, 0x1E, 0x00,
-    0x01, 0xE0, 0xF0, 0x7C, 0x1F, 0x0F, 0x87, 0xE0, 0xF0, 0x7C, 0x3F, 0x0F,
-    0x83, 0xE3, 0xF8, 0x7C, 0x1F, 0x1F, 0xE3, 0xC0, 0xF9, 0xFF, 0x3E, 0x07,
-    0xCF, 0xF9, 0xF0, 0x3E, 0xFF, 0xCF, 0x01, 0xF7, 0xBE, 0xF8, 0x0F, 0xFD,
-    0xF7, 0xC0, 0x7B, 0xCF, 0xFC, 0x03, 0xFE, 0x7F, 0xE0, 0x3F, 0xE3, 0xFF,
-    0x01, 0xFF, 0x0F, 0xF0, 0x0F, 0xF0, 0x7F, 0x80, 0x7F, 0x83, 0xFC, 0x03,
-    0xF8, 0x1F, 0xC0, 0x1F, 0xC0, 0xFE, 0x00, 0xFC, 0x07, 0xF0, 0x07, 0xE0,
-    0x3F, 0x00, 0x3E, 0x01, 0xF8, 0x00, 0x01, 0xFE, 0x03, 0xFE, 0x03, 0xFF,
-    0x07, 0xFF, 0x07, 0xFF, 0x07, 0xFF, 0x07, 0xFE, 0x07, 0xFE, 0x03, 0xFC,
-    0x03, 0xFC, 0x00, 0xFC, 0x03, 0xF0, 0x00, 0xFE, 0x07, 0xE0, 0x00, 0x7E,
-    0x1F, 0xC0, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x1F,
-    0xFC, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07,
-    0xE0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x7F,
-    0xF8, 0x00, 0x00, 0xFC, 0xFC, 0x00, 0x01, 0xF8, 0x7E, 0x00, 0x03, 0xF0,
-    0x7E, 0x00, 0x07, 0xE0, 0x3F, 0x00, 0x0F, 0xC0, 0x1F, 0x80, 0x7F, 0xE0,
-    0x7F, 0xE0, 0xFF, 0xE0, 0xFF, 0xE0, 0xFF, 0xE0, 0xFF, 0xE0, 0xFF, 0xE0,
-    0xFF, 0xE0, 0x7F, 0xC0, 0xFF, 0xC0, 0x7F, 0xC0, 0x7F, 0xFF, 0xF0, 0x3F,
-    0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0x03, 0xFF, 0x7F, 0x80, 0xFF, 0x87, 0xC0,
-    0x1F, 0x01, 0xF8, 0x0F, 0x80, 0x3E, 0x07, 0xC0, 0x0F, 0xC3, 0xE0, 0x01,
-    0xF1, 0xF0, 0x00, 0x7E, 0xF8, 0x00, 0x0F, 0xFC, 0x00, 0x03, 0xFE, 0x00,
-    0x00, 0x7F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x00, 0xF0,
-    0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x01,
-    0xE0, 0x00, 0x00, 0x78, 0x00, 0x07, 0xFF, 0xF0, 0x03, 0xFF, 0xFE, 0x00,
-    0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xC0, 0x0F, 0xFF, 0xE0, 0x00, 0x01, 0xFF,
-    0xFF, 0xC0, 0x3F, 0xFF, 0xF8, 0x07, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xE0,
-    0x3F, 0xFF, 0xFC, 0x07, 0xC0, 0x3F, 0x00, 0xF8, 0x0F, 0xC0, 0x1F, 0x03,
-    0xF0, 0x03, 0xC0, 0xFC, 0x00, 0xF8, 0x3F, 0x00, 0x0E, 0x0F, 0xC0, 0x00,
-    0x03, 0xF0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x1F, 0x80,
-    0x00, 0x07, 0xE0, 0x00, 0x01, 0xF8, 0x0E, 0x00, 0x7E, 0x03, 0xE0, 0x1F,
-    0x80, 0x7C, 0x07, 0xE0, 0x0F, 0x01, 0xF8, 0x03, 0xE0, 0x7E, 0x00, 0x7C,
-    0x1F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xFC, 0x0F, 0xFF,
-    0xFF, 0x81, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0xFF, 0xC0, 0x3F, 0xF0, 0x0F,
-    0xFC, 0x07, 0xFF, 0x01, 0xFF, 0x80, 0x7C, 0x00, 0x1E, 0x00, 0x07, 0x80,
-    0x03, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x00, 0x07, 0xC0, 0x01,
-    0xF0, 0x00, 0x7C, 0x00, 0x1F, 0x00, 0x07, 0x80, 0x03, 0xE0, 0x00, 0xF8,
-    0x00, 0x3E, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x01, 0xF0, 0x00, 0x7C, 0x00,
-    0x1F, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F,
-    0x80, 0x03, 0xC0, 0x01, 0xF0, 0x00, 0x7F, 0xE0, 0x1F, 0xF8, 0x07, 0xFE,
-    0x01, 0xFF, 0x80, 0xFF, 0xC0, 0x00, 0x20, 0x03, 0xC0, 0x3E, 0x01, 0xF0,
-    0x07, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x3E, 0x01, 0xF0, 0x0F, 0x80,
-    0x7C, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x0F, 0x80, 0x7C, 0x03,
-    0xE0, 0x1F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x00, 0x7C, 0x03, 0xE0, 0x1F,
-    0x00, 0xF8, 0x03, 0xE0, 0x1F, 0x00, 0xF8, 0x07, 0xC0, 0x1F, 0x00, 0xF8,
-    0x07, 0xC0, 0x3E, 0x00, 0xF0, 0x07, 0x80, 0x38, 0x00, 0xFF, 0xC0, 0x7F,
-    0xE0, 0x1F, 0xF8, 0x07, 0xFE, 0x01, 0xFF, 0x80, 0x03, 0xE0, 0x00, 0xF0,
-    0x00, 0x7C, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xE0, 0x00, 0x78, 0x00,
-    0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x1F,
-    0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x78, 0x00, 0x3E, 0x00, 0x0F, 0x80,
-    0x03, 0xE0, 0x00, 0xF8, 0x00, 0x3C, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01,
-    0xF0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x0F, 0x80, 0x7F, 0xE0, 0x3F, 0xF8,
-    0x0F, 0xFC, 0x03, 0xFF, 0x00, 0xFF, 0xC0, 0x00, 0x00, 0x08, 0x00, 0x01,
-    0xC0, 0x00, 0x3C, 0x00, 0x07, 0xE0, 0x00, 0xFE, 0x00, 0x1F, 0xF0, 0x03,
-    0xFF, 0x80, 0xFF, 0xF8, 0x1F, 0xCF, 0xC3, 0xF8, 0xFE, 0x7E, 0x07, 0xEF,
-    0xC0, 0x3F, 0xF8, 0x03, 0xFF, 0x00, 0x1F, 0xE0, 0x00, 0xE0, 0x7F, 0xFF,
-    0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xEF, 0xFF, 0xFF, 0xFF, 0x00, 0x60, 0xF0, 0xF8, 0x7C, 0x3E, 0x1F, 0x0F,
-    0x06, 0x00, 0x3F, 0xE0, 0x03, 0xFF, 0xF8, 0x07, 0xFF, 0xFC, 0x07, 0xFF,
-    0xFE, 0x07, 0xFF, 0xFE, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x3E, 0x00, 0x00,
-    0x3E, 0x00, 0x7F, 0xFE, 0x03, 0xFF, 0xFC, 0x0F, 0xFF, 0xFC, 0x1F, 0xFF,
-    0xFC, 0x3F, 0xFF, 0xFC, 0x7F, 0x00, 0x78, 0x7C, 0x00, 0x78, 0xF8, 0x00,
-    0xF8, 0xF8, 0x03, 0xF8, 0xFC, 0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF,
-    0xFF, 0x7F, 0xFF, 0xFF, 0x3F, 0xFD, 0xFE, 0x0F, 0xE0, 0x00, 0x03, 0xFC,
-    0x00, 0x00, 0x3F, 0xE0, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x0F, 0xF0, 0x00,
-    0x00, 0x3F, 0x80, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00,
-    0x1F, 0x00, 0x00, 0x00, 0xF0, 0xFE, 0x00, 0x0F, 0xBF, 0xFC, 0x00, 0x7F,
-    0xFF, 0xF8, 0x03, 0xFF, 0xFF, 0xC0, 0x1F, 0xFF, 0xFF, 0x00, 0xFF, 0x03,
-    0xF8, 0x0F, 0xE0, 0x07, 0xE0, 0x7E, 0x00, 0x3F, 0x03, 0xE0, 0x00, 0xF8,
-    0x1F, 0x00, 0x07, 0xC0, 0xF0, 0x00, 0x3E, 0x0F, 0x80, 0x01, 0xF0, 0x7C,
-    0x00, 0x1F, 0x03, 0xE0, 0x00, 0xF8, 0x1F, 0x00, 0x0F, 0xC0, 0xFC, 0x00,
-    0x7C, 0x0F, 0xE0, 0x07, 0xE3, 0xFF, 0xC0, 0xFE, 0x3F, 0xFF, 0xFF, 0xE1,
-    0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xE0, 0x7F, 0x9F, 0xFC, 0x00, 0x00,
-    0x3F, 0x80, 0x00, 0x00, 0x1F, 0xE3, 0x80, 0x7F, 0xFF, 0xC0, 0x7F, 0xFF,
-    0xE0, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xF8, 0xFF, 0x01, 0xFC, 0x7E, 0x00,
-    0x7C, 0x7E, 0x00, 0x3E, 0x3E, 0x00, 0x0E, 0x3E, 0x00, 0x00, 0x1F, 0x00,
-    0x00, 0x1F, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xE0,
-    0x00, 0x01, 0xF0, 0x00, 0x00, 0xFC, 0x00, 0x0C, 0x7F, 0x80, 0x3F, 0x1F,
-    0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0x00,
-    0x0F, 0xFC, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x01, 0xFE, 0x00, 0x00,
-    0x1F, 0xE0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x3E,
-    0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x7C, 0x00, 0x3F, 0x87, 0xC0, 0x0F,
-    0xFF, 0x7C, 0x03, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xF8, 0x0F, 0xFF, 0xFF,
-    0x81, 0xFC, 0x0F, 0xF8, 0x3F, 0x00, 0x3F, 0x83, 0xE0, 0x01, 0xF0, 0x7C,
-    0x00, 0x1F, 0x07, 0xC0, 0x01, 0xF0, 0xF8, 0x00, 0x1F, 0x0F, 0x80, 0x01,
-    0xF0, 0xF8, 0x00, 0x1E, 0x0F, 0x80, 0x03, 0xE0, 0xF8, 0x00, 0x3E, 0x0F,
-    0xC0, 0x07, 0xE0, 0xFC, 0x00, 0xFE, 0x07, 0xF0, 0x3F, 0xF8, 0x7F, 0xFF,
-    0xFF, 0xC3, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0xC0, 0xFF, 0xE7, 0xF8,
-    0x03, 0xF8, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0xFF, 0xF0, 0x03, 0xFF,
-    0xF8, 0x07, 0xFF, 0xFC, 0x0F, 0xFF, 0xFE, 0x1F, 0xE0, 0x7E, 0x3F, 0x80,
-    0x1F, 0x3F, 0x00, 0x0F, 0x7E, 0x00, 0x0F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00,
-    0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x1C, 0x7F, 0x01, 0xFE, 0x7F, 0xFF,
-    0xFE, 0x3F, 0xFF, 0xFE, 0x1F, 0xFF, 0xFC, 0x0F, 0xFF, 0xF0, 0x03, 0xFF,
-    0x00, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x3F, 0xFF, 0x00, 0x07, 0xFF, 0xF0,
-    0x00, 0xFF, 0xFF, 0x00, 0x1F, 0xFF, 0xE0, 0x01, 0xF0, 0x00, 0x00, 0x3E,
-    0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x7F, 0xFF, 0xF0,
-    0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0x00, 0xFF,
-    0xFF, 0xE0, 0x00, 0x78, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xF8, 0x00,
-    0x00, 0x0F, 0x80, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01,
-    0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1E, 0x00,
-    0x00, 0x03, 0xE0, 0x00, 0x07, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xF0, 0x0F,
-    0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xF0, 0x07, 0xFF, 0xFE, 0x00, 0x00, 0x3F,
-    0x80, 0x00, 0x0F, 0xFE, 0xFF, 0x03, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xFF,
-    0x0F, 0xFF, 0xFF, 0xF1, 0xFC, 0x1F, 0xFE, 0x3F, 0x80, 0x7F, 0x03, 0xE0,
-    0x03, 0xF0, 0x7E, 0x00, 0x3E, 0x07, 0xC0, 0x03, 0xE0, 0xF8, 0x00, 0x3E,
-    0x0F, 0x80, 0x03, 0xE0, 0xF8, 0x00, 0x3E, 0x0F, 0x80, 0x03, 0xC0, 0xF8,
-    0x00, 0x7C, 0x0F, 0xC0, 0x0F, 0xC0, 0xFC, 0x01, 0xFC, 0x07, 0xF0, 0x7F,
-    0x80, 0x7F, 0xFF, 0xF8, 0x03, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xF8, 0x00,
-    0xFF, 0xEF, 0x80, 0x03, 0xF0, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01,
-    0xF0, 0x00, 0x00, 0x7E, 0x00, 0x1F, 0xFF, 0xE0, 0x03, 0xFF, 0xFC, 0x00,
-    0x3F, 0xFF, 0x80, 0x03, 0xFF, 0xE0, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x03,
-    0xF8, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x3F, 0xE0, 0x00,
-    0x07, 0xF0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0xC0,
-    0x00, 0x01, 0xF1, 0xF8, 0x00, 0x79, 0xFF, 0x80, 0x1E, 0xFF, 0xF0, 0x0F,
-    0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0x80, 0xFF, 0x07, 0xE0, 0x3F, 0x00, 0xF8,
-    0x1F, 0x80, 0x3E, 0x07, 0xC0, 0x0F, 0x81, 0xF0, 0x03, 0xC0, 0x7C, 0x00,
-    0xF0, 0x1E, 0x00, 0x7C, 0x0F, 0x80, 0x1F, 0x03, 0xE0, 0x07, 0xC0, 0xF8,
-    0x01, 0xE0, 0x3C, 0x00, 0xF8, 0x0F, 0x00, 0x3E, 0x1F, 0xF8, 0x3F, 0xEF,
-    0xFE, 0x1F, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xF0, 0x3F,
-    0xE0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3E,
-    0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x01, 0xFF, 0xC0, 0x07, 0xFF, 0x80, 0x0F, 0xFE, 0x00, 0x1F, 0xFC, 0x00,
-    0x3F, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x80, 0x00,
-    0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF0, 0x00, 0x01,
-    0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x3F, 0xFF,
-    0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF,
-    0x80, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07,
-    0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x01, 0xFF, 0xFE, 0x07, 0xFF, 0xFC, 0x0F, 0xFF, 0xF8, 0x1F, 0xFF, 0xF0,
-    0x3F, 0xFF, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00,
-    0x00, 0x7C, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xE0, 0x00, 0x07, 0xC0, 0x00,
-    0x0F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF8, 0x00, 0x01,
-    0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x3E,
-    0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xE0, 0x00, 0x0F, 0xC0,
-    0xFF, 0xFF, 0x03, 0xFF, 0xFC, 0x07, 0xFF, 0xF0, 0x0F, 0xFF, 0xC0, 0x0F,
-    0xFC, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0xC0,
-    0x00, 0x1F, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x0F,
-    0x80, 0x00, 0x03, 0xE0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x3C, 0x3F, 0xF0,
-    0x1F, 0x1F, 0xFC, 0x07, 0xC7, 0xFF, 0x01, 0xF1, 0xFF, 0xC0, 0x78, 0x7F,
-    0xE0, 0x1E, 0x7F, 0x80, 0x0F, 0xBF, 0x80, 0x03, 0xFF, 0xC0, 0x00, 0xFF,
-    0xC0, 0x00, 0x3F, 0xE0, 0x00, 0x0F, 0xFC, 0x00, 0x07, 0xFF, 0x80, 0x01,
-    0xF7, 0xF0, 0x00, 0x7C, 0xFE, 0x00, 0x1E, 0x1F, 0xC0, 0x0F, 0x83, 0xF8,
-    0x1F, 0xE0, 0xFF, 0xEF, 0xF8, 0x3F, 0xFB, 0xFE, 0x1F, 0xFE, 0xFF, 0x07,
-    0xFF, 0x9F, 0xC0, 0xFF, 0xC0, 0x00, 0x7F, 0xF0, 0x01, 0xFF, 0xC0, 0x03,
-    0xFF, 0x80, 0x07, 0xFF, 0x00, 0x0F, 0xFE, 0x00, 0x00, 0x7C, 0x00, 0x00,
-    0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F,
-    0x00, 0x00, 0x3C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xE0,
-    0x00, 0x07, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00,
-    0x00, 0xF8, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x80, 0x00,
-    0x1F, 0x00, 0x00, 0x3E, 0x00, 0x7F, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0x00, 0x00, 0x07, 0x81, 0xE0,
-    0x3F, 0xBF, 0x9F, 0xE1, 0xFF, 0xFE, 0xFF, 0x87, 0xFF, 0xFF, 0xFF, 0x1F,
-    0xFF, 0xFF, 0xFC, 0x7F, 0xC7, 0xF1, 0xF0, 0x7E, 0x1F, 0x87, 0xC1, 0xF0,
-    0x7C, 0x1F, 0x07, 0x81, 0xE0, 0x7C, 0x1E, 0x0F, 0x81, 0xE0, 0xF8, 0x3E,
-    0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3C, 0x0F, 0x03,
-    0xC1, 0xF0, 0x7C, 0x0F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF1,
-    0xFE, 0x1F, 0x87, 0xEF, 0xFC, 0x7F, 0x1F, 0xFF, 0xF3, 0xFC, 0x7F, 0xFF,
-    0xCF, 0xF3, 0xFF, 0xFE, 0x3F, 0x8F, 0xE0, 0x00, 0x01, 0xF8, 0x01, 0xF9,
-    0xFF, 0x80, 0xFE, 0xFF, 0xF0, 0x7F, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0x83,
-    0xFF, 0x07, 0xE0, 0x3F, 0x00, 0xF8, 0x1F, 0x80, 0x3E, 0x07, 0xC0, 0x0F,
-    0x81, 0xF0, 0x03, 0xC0, 0x7C, 0x00, 0xF0, 0x1E, 0x00, 0x7C, 0x0F, 0x80,
-    0x1F, 0x03, 0xE0, 0x07, 0xC0, 0xF8, 0x01, 0xE0, 0x3C, 0x00, 0xF8, 0x0F,
-    0x00, 0x3E, 0x1F, 0xF8, 0x3F, 0xEF, 0xFE, 0x1F, 0xFF, 0xFF, 0x87, 0xFF,
-    0xFF, 0xE1, 0xFF, 0xFF, 0xF0, 0x3F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x7F,
-    0xFC, 0x00, 0x7F, 0xFF, 0x00, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xF0, 0xFF,
-    0x03, 0xF8, 0xFE, 0x00, 0xFE, 0x7C, 0x00, 0x3F, 0x7C, 0x00, 0x0F, 0xBE,
-    0x00, 0x07, 0xFE, 0x00, 0x03, 0xFF, 0x00, 0x01, 0xFF, 0x80, 0x00, 0xFF,
-    0xC0, 0x00, 0xFB, 0xE0, 0x00, 0xFD, 0xF8, 0x00, 0x7C, 0xFE, 0x00, 0xFE,
-    0x3F, 0x81, 0xFE, 0x1F, 0xFF, 0xFE, 0x07, 0xFF, 0xFE, 0x01, 0xFF, 0xFC,
-    0x00, 0x7F, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x07,
-    0xF9, 0xFF, 0xC0, 0x1F, 0xF7, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0xC0, 0x7F,
-    0xFF, 0xFF, 0xC0, 0x7F, 0xF0, 0x3F, 0x80, 0x3F, 0x80, 0x1F, 0x80, 0x7E,
-    0x00, 0x3F, 0x00, 0xF8, 0x00, 0x3E, 0x01, 0xF0, 0x00, 0x7C, 0x03, 0xC0,
-    0x00, 0xF8, 0x0F, 0x80, 0x01, 0xF0, 0x1F, 0x00, 0x07, 0xE0, 0x3E, 0x00,
-    0x0F, 0x80, 0x7C, 0x00, 0x3F, 0x01, 0xFC, 0x00, 0xFC, 0x03, 0xFE, 0x07,
-    0xF8, 0x07, 0xFF, 0xFF, 0xE0, 0x0F, 0xFF, 0xFF, 0x80, 0x1E, 0xFF, 0xFC,
-    0x00, 0x7C, 0xFF, 0xF0, 0x00, 0xF8, 0x7F, 0x00, 0x01, 0xF0, 0x00, 0x00,
-    0x03, 0xE0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01,
-    0xFF, 0xF0, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x0F, 0xFF, 0xC0, 0x00, 0x1F,
-    0xFF, 0x80, 0x00, 0x3F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00,
-    0x07, 0xFF, 0x3F, 0xC0, 0xFF, 0xFD, 0xFE, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF,
-    0xFF, 0xFF, 0x8F, 0xE0, 0x7F, 0xF8, 0xFC, 0x00, 0xFE, 0x07, 0xC0, 0x03,
-    0xE0, 0x7C, 0x00, 0x1F, 0x03, 0xE0, 0x00, 0xF8, 0x1E, 0x00, 0x07, 0xC1,
-    0xF0, 0x00, 0x3E, 0x0F, 0x80, 0x01, 0xE0, 0x7C, 0x00, 0x1F, 0x03, 0xF0,
-    0x01, 0xF8, 0x1F, 0x80, 0x1F, 0xC0, 0xFF, 0x03, 0xFC, 0x03, 0xFF, 0xFF,
-    0xE0, 0x1F, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0xF8, 0x00, 0xFF, 0xE7, 0xC0,
-    0x01, 0xFC, 0x3C, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x1F, 0x00, 0x00,
-    0x00, 0xF8, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xFF, 0x80, 0x00, 0x7F,
-    0xFE, 0x00, 0x07, 0xFF, 0xF0, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0xFF, 0xF0,
-    0x00, 0x00, 0x00, 0x0F, 0x80, 0x3F, 0xC3, 0xFE, 0x07, 0xFC, 0xFF, 0xE0,
-    0x7F, 0xDF, 0xFF, 0x07, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0x1C, 0x00, 0x7F,
-    0xC0, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x0F, 0xC0, 0x00,
-    0x00, 0xF8, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1F,
-    0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x01, 0xE0, 0x00,
-    0x07, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0x00, 0xFF,
-    0xFF, 0xF0, 0x07, 0xFF, 0xFE, 0x00, 0x00, 0x3F, 0xCE, 0x03, 0xFF, 0xFC,
-    0x0F, 0xFF, 0xF8, 0x3F, 0xFF, 0xF0, 0xFF, 0xFF, 0xC3, 0xF8, 0x0F, 0x87,
-    0xC0, 0x0E, 0x0F, 0x80, 0x00, 0x1F, 0xF0, 0x00, 0x3F, 0xFF, 0x80, 0x3F,
-    0xFF, 0xC0, 0x3F, 0xFF, 0xC0, 0x1F, 0xFF, 0xC0, 0x01, 0xFF, 0x80, 0x00,
-    0x3F, 0x1C, 0x00, 0x3E, 0x7C, 0x00, 0x7C, 0xFC, 0x03, 0xF3, 0xFF, 0xFF,
-    0xE7, 0xFF, 0xFF, 0x8F, 0xFF, 0xFE, 0x1F, 0xFF, 0xF0, 0x00, 0xFF, 0x00,
-    0x00, 0x03, 0xC0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x07,
-    0x80, 0x00, 0x78, 0x00, 0x7F, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0xF0, 0x00, 0x1F, 0x00, 0x01, 0xE0, 0x00,
-    0x1E, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x03, 0xE0, 0x00, 0x3C, 0x00,
-    0x07, 0xC0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x7E, 0x00, 0xF7, 0xFF,
-    0xFF, 0x7F, 0xFF, 0xF3, 0xFF, 0xFE, 0x1F, 0xFF, 0x80, 0x7F, 0x80, 0x7F,
-    0x01, 0xFF, 0xFE, 0x07, 0xFF, 0xF8, 0x1F, 0xFF, 0xF0, 0x3F, 0xFF, 0xE0,
-    0x3F, 0xC7, 0xC0, 0x07, 0x8F, 0x80, 0x1F, 0x3E, 0x00, 0x3E, 0x7C, 0x00,
-    0x7C, 0xF8, 0x00, 0xF1, 0xF0, 0x03, 0xE3, 0xE0, 0x07, 0xC7, 0xC0, 0x0F,
-    0x8F, 0x80, 0x1F, 0x1F, 0x00, 0x7C, 0x3E, 0x01, 0xF8, 0x7E, 0x0F, 0xFC,
-    0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xF1, 0xFF, 0xEF, 0xE1, 0xFF, 0xBF, 0x80,
-    0xFC, 0x00, 0x00, 0x7F, 0xF0, 0x7F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0,
-    0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xE0, 0xFF, 0xE1, 0xF8, 0x03, 0xE0,
-    0x0F, 0x80, 0x3E, 0x00, 0xF8, 0x07, 0xC0, 0x0F, 0x80, 0xF8, 0x00, 0xFC,
-    0x1F, 0x80, 0x07, 0xC1, 0xF0, 0x00, 0x7C, 0x3E, 0x00, 0x07, 0xE7, 0xE0,
-    0x00, 0x3E, 0x7C, 0x00, 0x03, 0xEF, 0x80, 0x00, 0x3F, 0xF0, 0x00, 0x03,
-    0xFF, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x1F, 0xC0,
-    0x00, 0x00, 0xF8, 0x00, 0x00, 0x7F, 0xC0, 0x1F, 0xEF, 0xFC, 0x03, 0xFF,
-    0xFF, 0xC0, 0x7F, 0xFF, 0xFC, 0x07, 0xFE, 0x7F, 0x80, 0x3F, 0xC3, 0xE1,
-    0xF0, 0xF8, 0x3E, 0x3F, 0x0F, 0x03, 0xE3, 0xF1, 0xF0, 0x3E, 0x7F, 0x1E,
-    0x03, 0xE7, 0xF3, 0xE0, 0x3E, 0xFF, 0xBC, 0x03, 0xFF, 0xFF, 0xC0, 0x3F,
-    0xFF, 0xFC, 0x03, 0xFE, 0xFF, 0x80, 0x3F, 0xEF, 0xF8, 0x03, 0xFC, 0xFF,
-    0x00, 0x3F, 0x8F, 0xF0, 0x03, 0xF8, 0x7E, 0x00, 0x3F, 0x07, 0xE0, 0x01,
-    0xF0, 0x7C, 0x00, 0x1E, 0x07, 0xC0, 0x00, 0x03, 0xFE, 0x0F, 0xF8, 0x3F,
-    0xF0, 0xFF, 0xC1, 0xFF, 0x8F, 0xFE, 0x0F, 0xFC, 0x7F, 0xF0, 0x7F, 0xC1,
-    0xFF, 0x00, 0xFE, 0x1F, 0xC0, 0x03, 0xF9, 0xFC, 0x00, 0x0F, 0xFF, 0xC0,
-    0x00, 0x3F, 0xF8, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x07, 0xF8, 0x00, 0x00,
-    0x7F, 0xE0, 0x00, 0x0F, 0xFF, 0x80, 0x00, 0xFE, 0xFE, 0x00, 0x0F, 0xE3,
-    0xF8, 0x00, 0xFE, 0x0F, 0xE0, 0x3F, 0xE0, 0x7F, 0xC3, 0xFF, 0x87, 0xFF,
-    0x3F, 0xFC, 0x7F, 0xF9, 0xFF, 0xE3, 0xFF, 0x87, 0xFE, 0x0F, 0xF8, 0x00,
-    0x01, 0xFE, 0x03, 0xFE, 0x03, 0xFF, 0x07, 0xFF, 0x07, 0xFF, 0x07, 0xFF,
-    0x07, 0xFF, 0x07, 0xFE, 0x03, 0xFC, 0x03, 0xFC, 0x01, 0xF8, 0x01, 0xF0,
-    0x00, 0xF8, 0x03, 0xF0, 0x00, 0xF8, 0x03, 0xE0, 0x00, 0xFC, 0x07, 0xC0,
-    0x00, 0x7C, 0x0F, 0x80, 0x00, 0x7C, 0x0F, 0x80, 0x00, 0x7E, 0x1F, 0x00,
-    0x00, 0x7E, 0x3E, 0x00, 0x00, 0x3E, 0x7C, 0x00, 0x00, 0x3E, 0x7C, 0x00,
-    0x00, 0x3F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x1F, 0xE0, 0x00,
-    0x00, 0x1F, 0xC0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x0F, 0x80, 0x00,
-    0x00, 0x1F, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00,
-    0x00, 0x7C, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
-    0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00,
-    0x07, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF,
-    0xE0, 0xFF, 0xFF, 0xE0, 0x7C, 0x0F, 0xE0, 0x3C, 0x0F, 0xE0, 0x1E, 0x0F,
-    0xC0, 0x00, 0x1F, 0xC0, 0x00, 0x1F, 0xC0, 0x00, 0x1F, 0xC0, 0x00, 0x1F,
-    0x80, 0x00, 0x3F, 0x80, 0x00, 0x3F, 0x80, 0x00, 0x3F, 0x80, 0xF0, 0x3F,
-    0x00, 0xF8, 0x3F, 0xFF, 0xFC, 0x3F, 0xFF, 0xFE, 0x1F, 0xFF, 0xFE, 0x0F,
-    0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0x80, 0x00, 0x0F, 0x00, 0x1F, 0xC0, 0x1F,
-    0xE0, 0x1F, 0xF0, 0x0F, 0xE0, 0x0F, 0xC0, 0x07, 0xC0, 0x07, 0xC0, 0x03,
-    0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x78, 0x00, 0x7C, 0x00, 0x3E, 0x00,
-    0x1F, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x3F, 0x80, 0x3F, 0xC0, 0x1F, 0xC0,
-    0x0F, 0xE0, 0x07, 0xF8, 0x00, 0xFC, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F,
-    0x80, 0x07, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00,
-    0x7E, 0x00, 0x3F, 0x80, 0x1F, 0xE0, 0x07, 0xF0, 0x03, 0xF8, 0x00, 0x78,
-    0x00, 0x01, 0xE0, 0x3C, 0x0F, 0x81, 0xF0, 0x3E, 0x07, 0x80, 0xF0, 0x3E,
-    0x07, 0xC0, 0xF0, 0x1E, 0x03, 0xC0, 0xF8, 0x1F, 0x03, 0xC0, 0x78, 0x0F,
-    0x03, 0xE0, 0x7C, 0x0F, 0x01, 0xE0, 0x3C, 0x0F, 0x81, 0xF0, 0x3C, 0x07,
-    0x80, 0xF0, 0x3E, 0x07, 0xC0, 0xF0, 0x1E, 0x07, 0xC0, 0xF8, 0x1F, 0x03,
-    0xC0, 0x70, 0x00, 0x00, 0xF0, 0x00, 0xFC, 0x00, 0x7F, 0x00, 0x3F, 0xC0,
-    0x0F, 0xE0, 0x03, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F,
-    0x00, 0x0F, 0x80, 0x07, 0x80, 0x03, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00,
-    0xF8, 0x00, 0x7E, 0x00, 0x3F, 0xC0, 0x0F, 0xE0, 0x07, 0xF0, 0x07, 0xF8,
-    0x07, 0xF8, 0x03, 0xE0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF0, 0x00, 0x78,
-    0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x00, 0x1F, 0x80, 0x7F,
-    0xC0, 0x7F, 0xC0, 0x3F, 0xC0, 0x1F, 0xC0, 0x07, 0x80, 0x00, 0x03, 0xE0,
-    0x00, 0x1F, 0xE0, 0x00, 0x7F, 0xE0, 0x39, 0xFF, 0xE0, 0xF7, 0xFF, 0xE7,
-    0xFF, 0xCF, 0xFF, 0xFE, 0x0F, 0xFF, 0x38, 0x0F, 0xFC, 0x00, 0x0F, 0xE0,
-    0x00, 0x0F, 0x80};
-
-const GFXglyph FreeMonoBoldOblique24pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 28, 0, 1},         // 0x20 ' '
-    {0, 12, 31, 28, 12, -29},    // 0x21 '!'
-    {47, 17, 14, 28, 11, -28},   // 0x22 '"'
-    {77, 24, 34, 28, 5, -30},    // 0x23 '#'
-    {179, 25, 38, 28, 4, -31},   // 0x24 '$'
-    {298, 22, 30, 28, 6, -28},   // 0x25 '%'
-    {381, 21, 28, 28, 5, -26},   // 0x26 '&'
-    {455, 7, 14, 28, 16, -28},   // 0x27 '''
-    {468, 14, 37, 28, 14, -29},  // 0x28 '('
-    {533, 14, 37, 28, 5, -29},   // 0x29 ')'
-    {598, 21, 19, 28, 8, -28},   // 0x2A '*'
-    {648, 24, 26, 28, 5, -25},   // 0x2B '+'
-    {726, 12, 14, 28, 6, -6},    // 0x2C ','
-    {747, 24, 5, 28, 5, -15},    // 0x2D '-'
-    {762, 7, 6, 28, 11, -4},     // 0x2E '.'
-    {768, 28, 38, 28, 3, -32},   // 0x2F '/'
-    {901, 23, 31, 28, 6, -29},   // 0x30 '0'
-    {991, 21, 30, 28, 4, -29},   // 0x31 '1'
-    {1070, 26, 30, 28, 3, -29},  // 0x32 '2'
-    {1168, 25, 31, 28, 4, -29},  // 0x33 '3'
-    {1265, 22, 28, 28, 5, -27},  // 0x34 '4'
-    {1342, 25, 31, 28, 4, -29},  // 0x35 '5'
-    {1439, 24, 31, 28, 7, -29},  // 0x36 '6'
-    {1532, 22, 30, 28, 9, -29},  // 0x37 '7'
-    {1615, 23, 31, 28, 6, -29},  // 0x38 '8'
-    {1705, 24, 31, 28, 5, -29},  // 0x39 '9'
-    {1798, 10, 22, 28, 11, -20}, // 0x3A ':'
-    {1826, 15, 28, 28, 5, -20},  // 0x3B ';'
-    {1879, 25, 21, 28, 5, -23},  // 0x3C '<'
-    {1945, 26, 14, 28, 4, -19},  // 0x3D '='
-    {1991, 25, 22, 28, 4, -23},  // 0x3E '>'
-    {2060, 19, 29, 28, 10, -27}, // 0x3F '?'
-    {2129, 23, 36, 28, 5, -28},  // 0x40 '@'
-    {2233, 30, 27, 28, 0, -26},  // 0x41 'A'
-    {2335, 29, 27, 28, 1, -26},  // 0x42 'B'
-    {2433, 28, 29, 28, 3, -27},  // 0x43 'C'
-    {2535, 28, 27, 28, 1, -26},  // 0x44 'D'
-    {2630, 29, 27, 28, 1, -26},  // 0x45 'E'
-    {2728, 31, 27, 28, 0, -26},  // 0x46 'F'
-    {2833, 28, 29, 28, 3, -27},  // 0x47 'G'
-    {2935, 30, 27, 28, 1, -26},  // 0x48 'H'
-    {3037, 25, 27, 28, 3, -26},  // 0x49 'I'
-    {3122, 31, 28, 28, 0, -26},  // 0x4A 'J'
-    {3231, 31, 27, 28, 0, -26},  // 0x4B 'K'
-    {3336, 27, 27, 28, 1, -26},  // 0x4C 'L'
-    {3428, 34, 27, 28, 0, -26},  // 0x4D 'M'
-    {3543, 32, 27, 28, 1, -26},  // 0x4E 'N'
-    {3651, 27, 29, 28, 3, -27},  // 0x4F 'O'
-    {3749, 28, 27, 28, 1, -26},  // 0x50 'P'
-    {3844, 27, 35, 28, 3, -27},  // 0x51 'Q'
-    {3963, 29, 27, 28, 0, -26},  // 0x52 'R'
-    {4061, 26, 29, 28, 3, -27},  // 0x53 'S'
-    {4156, 26, 27, 28, 4, -26},  // 0x54 'T'
-    {4244, 28, 28, 28, 4, -26},  // 0x55 'U'
-    {4342, 30, 27, 28, 2, -26},  // 0x56 'V'
-    {4444, 29, 27, 28, 3, -26},  // 0x57 'W'
-    {4542, 32, 27, 28, 0, -26},  // 0x58 'X'
-    {4650, 26, 27, 28, 4, -26},  // 0x59 'Y'
-    {4738, 27, 27, 28, 2, -26},  // 0x5A 'Z'
-    {4830, 18, 37, 28, 10, -29}, // 0x5B '['
-    {4914, 13, 38, 28, 10, -32}, // 0x5C '\'
-    {4976, 18, 37, 28, 5, -29},  // 0x5D ']'
-    {5060, 20, 15, 28, 8, -29},  // 0x5E '^'
-    {5098, 29, 5, 28, -2, 5},    // 0x5F '_'
-    {5117, 8, 8, 28, 13, -30},   // 0x60 '`'
-    {5125, 24, 23, 28, 3, -21},  // 0x61 'a'
-    {5194, 29, 31, 28, 0, -29},  // 0x62 'b'
-    {5307, 25, 23, 28, 3, -21},  // 0x63 'c'
-    {5379, 28, 31, 28, 3, -29},  // 0x64 'd'
-    {5488, 24, 23, 28, 3, -21},  // 0x65 'e'
-    {5557, 28, 30, 28, 4, -29},  // 0x66 'f'
-    {5662, 28, 31, 28, 3, -21},  // 0x67 'g'
-    {5771, 26, 30, 28, 2, -29},  // 0x68 'h'
-    {5869, 23, 29, 28, 3, -28},  // 0x69 'i'
-    {5953, 23, 38, 28, 3, -28},  // 0x6A 'j'
-    {6063, 26, 30, 28, 2, -29},  // 0x6B 'k'
-    {6161, 23, 30, 28, 3, -29},  // 0x6C 'l'
-    {6248, 30, 22, 28, 0, -21},  // 0x6D 'm'
-    {6331, 26, 22, 28, 2, -21},  // 0x6E 'n'
-    {6403, 25, 23, 28, 3, -21},  // 0x6F 'o'
-    {6475, 31, 31, 28, -1, -21}, // 0x70 'p'
-    {6596, 29, 31, 28, 2, -21},  // 0x71 'q'
-    {6709, 28, 22, 28, 2, -21},  // 0x72 'r'
-    {6786, 23, 23, 28, 4, -21},  // 0x73 's'
-    {6853, 20, 28, 28, 5, -26},  // 0x74 't'
-    {6923, 23, 22, 28, 5, -20},  // 0x75 'u'
-    {6987, 28, 21, 28, 3, -20},  // 0x76 'v'
-    {7061, 28, 21, 28, 3, -20},  // 0x77 'w'
-    {7135, 29, 21, 28, 1, -20},  // 0x78 'x'
-    {7212, 32, 30, 28, -1, -20}, // 0x79 'y'
-    {7332, 25, 21, 28, 4, -20},  // 0x7A 'z'
-    {7398, 17, 37, 28, 10, -29}, // 0x7B '{'
-    {7477, 11, 36, 28, 11, -28}, // 0x7C '|'
-    {7527, 17, 37, 28, 6, -29},  // 0x7D '}'
-    {7606, 23, 10, 28, 5, -17}}; // 0x7E '~'
-
-const GFXfont FreeMonoBoldOblique24pt7b PROGMEM = {
-    (uint8_t *)FreeMonoBoldOblique24pt7bBitmaps,
-    (GFXglyph *)FreeMonoBoldOblique24pt7bGlyphs, 0x20, 0x7E, 47};
-
-// Approx. 8307 bytes

+ 0 - 202
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoBoldOblique9pt7b.h

@@ -1,202 +0,0 @@
-const uint8_t FreeMonoBoldOblique9pt7bBitmaps[] PROGMEM = {
-    0x39, 0xCC, 0x67, 0x31, 0x8C, 0x07, 0x38, 0x6C, 0xD9, 0x36, 0x48, 0x80,
-    0x09, 0x0D, 0x86, 0xCF, 0xF7, 0xF9, 0xB3, 0xFD, 0xFE, 0x6C, 0x36, 0x1B,
-    0x00, 0x00, 0x06, 0x07, 0x07, 0xE6, 0x33, 0x01, 0xE0, 0x7C, 0x06, 0x43,
-    0x33, 0xBF, 0x83, 0x03, 0x00, 0x80, 0x1C, 0x11, 0x10, 0x88, 0x83, 0xB8,
-    0xF3, 0xB8, 0x22, 0x21, 0x11, 0x07, 0x00, 0x0F, 0x1F, 0x30, 0x30, 0x38,
-    0x7B, 0xDF, 0xCE, 0xFF, 0x7E, 0xFA, 0x80, 0x19, 0x8C, 0xC6, 0x63, 0x18,
-    0xC6, 0x31, 0xC6, 0x30, 0x31, 0xC6, 0x31, 0x8C, 0x63, 0x31, 0x98, 0xCC,
-    0x40, 0x08, 0x08, 0xFF, 0xFF, 0x38, 0x6C, 0x6C, 0x0C, 0x06, 0x03, 0x1F,
-    0xFF, 0xF8, 0xC0, 0x60, 0x30, 0x10, 0x00, 0x36, 0x4C, 0x80, 0xFF, 0xFF,
-    0xC0, 0xFC, 0x00, 0x00, 0x0C, 0x03, 0x00, 0xC0, 0x18, 0x06, 0x01, 0x80,
-    0x30, 0x0C, 0x03, 0x00, 0x60, 0x18, 0x06, 0x00, 0xC0, 0x30, 0x00, 0x0F,
-    0x0F, 0xCC, 0x6C, 0x36, 0x1B, 0x0D, 0x05, 0x86, 0xC3, 0x63, 0x3F, 0x8F,
-    0x00, 0x06, 0x1C, 0x3C, 0x6C, 0x0C, 0x0C, 0x08, 0x18, 0x18, 0x18, 0xFE,
-    0xFE, 0x07, 0x83, 0xF1, 0x8C, 0x43, 0x00, 0xC0, 0xE0, 0x70, 0x38, 0x38,
-    0x1C, 0x6F, 0xF3, 0xFC, 0x1F, 0x1F, 0xC0, 0x60, 0x30, 0x30, 0x70, 0x38,
-    0x06, 0x03, 0x03, 0xBF, 0x9F, 0x80, 0x03, 0x07, 0x0B, 0x1B, 0x32, 0x66,
-    0xFF, 0xFF, 0x1E, 0x1E, 0x3F, 0x9F, 0x98, 0x0F, 0xC7, 0xF3, 0x18, 0x0C,
-    0x06, 0x06, 0x7F, 0x1E, 0x00, 0x07, 0x87, 0xCE, 0x06, 0x06, 0x03, 0xF3,
-    0xFD, 0xC6, 0xC3, 0x63, 0xBF, 0x8F, 0x80, 0xFF, 0xFF, 0xC3, 0x06, 0x06,
-    0x0C, 0x18, 0x18, 0x30, 0x30, 0x60, 0x1F, 0x1F, 0xDC, 0x6C, 0x36, 0x31,
-    0xF1, 0xF8, 0xC6, 0xC3, 0x63, 0xBF, 0x8F, 0x80, 0x1E, 0x3F, 0x33, 0x63,
-    0x63, 0x67, 0x7F, 0x3E, 0x06, 0x1C, 0xF8, 0xF0, 0x77, 0x00, 0x00, 0xEE,
-    0x1C, 0x70, 0x00, 0x00, 0x03, 0x0C, 0x61, 0x08, 0x00, 0x00, 0xC1, 0xE1,
-    0xE1, 0xE0, 0xF0, 0x07, 0x00, 0xF0, 0x0C, 0x7F, 0xDF, 0xF0, 0x00, 0x00,
-    0x7F, 0xFF, 0xF0, 0x30, 0x0F, 0x00, 0xE0, 0x1E, 0x07, 0xC7, 0x87, 0x83,
-    0x00, 0x7D, 0xFF, 0x18, 0x30, 0xE3, 0x9C, 0x30, 0x01, 0xC3, 0x80, 0x0F,
-    0x0F, 0xCC, 0x6C, 0x36, 0x72, 0x79, 0x7D, 0xB6, 0xDA, 0x6F, 0xB3, 0xD8,
-    0x0C, 0x07, 0xE1, 0xE0, 0x0F, 0x83, 0xF0, 0x1E, 0x03, 0xC0, 0xD8, 0x31,
-    0x87, 0xF1, 0xFE, 0x30, 0xDF, 0x3F, 0xC7, 0x80, 0x3F, 0xC7, 0xFC, 0x61,
-    0x8C, 0x31, 0xFC, 0x3F, 0x84, 0x19, 0x83, 0x30, 0x6F, 0xFB, 0xFE, 0x00,
-    0x0F, 0xF1, 0xFF, 0x30, 0x66, 0x06, 0x60, 0x0C, 0x00, 0xC0, 0x0C, 0x00,
-    0xE0, 0xC7, 0xF8, 0x3F, 0x00, 0x3F, 0x87, 0xF8, 0x63, 0x8C, 0x31, 0x06,
-    0x60, 0xCC, 0x19, 0x86, 0x31, 0xCF, 0xF3, 0xF8, 0x00, 0x3F, 0xE3, 0xFE,
-    0x18, 0x61, 0xB6, 0x1F, 0x01, 0xF0, 0x32, 0x03, 0x00, 0x30, 0x4F, 0xFC,
-    0xFF, 0xC0, 0x3F, 0xF3, 0xFE, 0x18, 0x61, 0xB6, 0x1F, 0x03, 0xF0, 0x32,
-    0x03, 0x00, 0x30, 0x0F, 0xC0, 0xFC, 0x00, 0x0F, 0xE3, 0xFC, 0xC1, 0x30,
-    0x06, 0x01, 0x80, 0x31, 0xF6, 0x3E, 0xE1, 0x9F, 0xF0, 0xF8, 0x00, 0x1E,
-    0xF3, 0xCF, 0x18, 0x61, 0x84, 0x10, 0xC3, 0xFC, 0x3F, 0xC3, 0x08, 0x31,
-    0x8F, 0xBC, 0xFB, 0xC0, 0x3F, 0xCF, 0xF0, 0x60, 0x10, 0x0C, 0x03, 0x00,
-    0xC0, 0x20, 0x18, 0x3F, 0xCF, 0xF0, 0x07, 0xF0, 0x7F, 0x00, 0x80, 0x18,
-    0x01, 0x80, 0x18, 0x61, 0x84, 0x10, 0xC3, 0x0F, 0xE0, 0x7C, 0x00, 0x3E,
-    0xE7, 0xFC, 0x66, 0x0D, 0x81, 0x60, 0x7C, 0x0E, 0xC1, 0x98, 0x31, 0x1F,
-    0x3B, 0xE7, 0x00, 0x3F, 0x07, 0xE0, 0x30, 0x06, 0x00, 0xC0, 0x10, 0x06,
-    0x00, 0xC3, 0x18, 0x6F, 0xFB, 0xFF, 0x00, 0x38, 0x39, 0xC3, 0xC7, 0x3C,
-    0x79, 0xE3, 0xDA, 0x1F, 0xF0, 0x9D, 0x8C, 0xCC, 0x60, 0x67, 0xCF, 0x3C,
-    0x78, 0x3C, 0xF9, 0xE7, 0x87, 0x18, 0x3C, 0xC1, 0x66, 0x1B, 0xB0, 0xCD,
-    0x06, 0x78, 0x31, 0xC3, 0xCE, 0x3E, 0x30, 0x0F, 0x0F, 0xE7, 0x1D, 0x83,
-    0xC0, 0xF0, 0x3C, 0x0F, 0x06, 0xE3, 0x9F, 0xC3, 0xC0, 0x3F, 0xC7, 0xFC,
-    0x61, 0x8C, 0x31, 0x8E, 0x3F, 0x87, 0xE1, 0x80, 0x30, 0x0F, 0xC3, 0xF0,
-    0x00, 0x0F, 0x0F, 0xE7, 0x1D, 0x83, 0xC0, 0xF0, 0x3C, 0x0F, 0x06, 0xE3,
-    0x1F, 0xC3, 0xC0, 0x80, 0x7F, 0x3F, 0xC0, 0x3F, 0xC3, 0xFE, 0x18, 0x61,
-    0x86, 0x10, 0xE3, 0xFC, 0x3F, 0x83, 0x18, 0x31, 0xCF, 0x8F, 0xF8, 0x70,
-    0x1E, 0xCF, 0xF7, 0x19, 0x80, 0x70, 0x1F, 0x81, 0xF3, 0x0C, 0xC3, 0x3F,
-    0x8B, 0xC0, 0x7F, 0xCF, 0xF9, 0x93, 0x66, 0x60, 0xC0, 0x18, 0x02, 0x00,
-    0xC0, 0x18, 0x0F, 0xC1, 0xF8, 0x00, 0xF9, 0xFF, 0x7D, 0x83, 0x30, 0x64,
-    0x09, 0x83, 0x30, 0x66, 0x0C, 0xE3, 0x0F, 0xC0, 0xF0, 0x00, 0xF9, 0xFE,
-    0x3D, 0x83, 0x30, 0xC6, 0x30, 0xE6, 0x0D, 0x81, 0xB0, 0x3C, 0x07, 0x00,
-    0x60, 0x00, 0xF9, 0xFF, 0x3D, 0x83, 0x36, 0x64, 0xC8, 0xBF, 0x35, 0xE7,
-    0xB8, 0xE7, 0x1C, 0xE3, 0x18, 0x00, 0x3C, 0xF3, 0xCF, 0x1C, 0xC0, 0xD8,
-    0x0F, 0x00, 0x60, 0x0F, 0x01, 0xB8, 0x31, 0x8F, 0x3C, 0xF3, 0xC0, 0x79,
-    0xEE, 0x38, 0xC6, 0x19, 0x81, 0xE0, 0x38, 0x06, 0x00, 0xC0, 0x18, 0x0F,
-    0xC3, 0xF8, 0x00, 0x3F, 0xCF, 0xF3, 0x18, 0xCC, 0x06, 0x03, 0x01, 0x80,
-    0xC6, 0x61, 0xBF, 0xCF, 0xF0, 0x1E, 0x3C, 0xC1, 0x83, 0x06, 0x08, 0x30,
-    0x60, 0xC1, 0x06, 0x0F, 0x1E, 0x00, 0x06, 0x31, 0x86, 0x31, 0x8C, 0x31,
-    0x8C, 0x61, 0x8C, 0x60, 0x1E, 0x78, 0x30, 0x60, 0xC1, 0x86, 0x0C, 0x18,
-    0x30, 0x41, 0x8F, 0x1E, 0x00, 0x08, 0x1C, 0x3C, 0x76, 0xE7, 0xC3, 0x7F,
-    0xFF, 0xFC, 0x88, 0x80, 0x0F, 0x07, 0xE1, 0xF9, 0xFE, 0xE3, 0x30, 0xCF,
-    0xFD, 0xFF, 0x38, 0x07, 0x00, 0x60, 0x0F, 0xC1, 0xFC, 0x71, 0xCC, 0x19,
-    0x83, 0x30, 0xDF, 0xFB, 0xBC, 0x00, 0x1F, 0xCF, 0xF6, 0x1B, 0x00, 0xC0,
-    0x30, 0x0F, 0xF1, 0xF8, 0x01, 0xE0, 0x38, 0x03, 0x0F, 0x63, 0xFC, 0xC3,
-    0x30, 0x66, 0x0C, 0xC3, 0x9F, 0xF9, 0xF7, 0x00, 0x1F, 0x1F, 0xD8, 0x3F,
-    0xFF, 0xFE, 0x1B, 0xFC, 0xF8, 0x07, 0xC3, 0xF1, 0x81, 0xFE, 0x7F, 0x84,
-    0x03, 0x00, 0xC0, 0x30, 0x3F, 0x8F, 0xE0, 0x1E, 0xE7, 0xFD, 0x86, 0x60,
-    0xCC, 0x19, 0xC6, 0x3F, 0xC1, 0xD8, 0x03, 0x00, 0xE1, 0xF8, 0x3E, 0x00,
-    0x38, 0x1E, 0x01, 0x00, 0xDC, 0x3F, 0x8C, 0x62, 0x19, 0x84, 0x63, 0x3D,
-    0xFF, 0x7C, 0x06, 0x03, 0x00, 0x03, 0xC3, 0xE0, 0x20, 0x30, 0x18, 0x0C,
-    0x3F, 0xFF, 0xE0, 0x01, 0x81, 0x80, 0x07, 0xF3, 0xF8, 0x0C, 0x04, 0x06,
-    0x03, 0x01, 0x80, 0xC0, 0x40, 0x67, 0xE3, 0xE0, 0x38, 0x0E, 0x01, 0x80,
-    0x4F, 0x37, 0xCF, 0x83, 0xC0, 0xF0, 0x26, 0x39, 0xEE, 0x78, 0x1F, 0x0F,
-    0x01, 0x80, 0xC0, 0x60, 0x20, 0x30, 0x18, 0x0C, 0x3F, 0xFF, 0xE0, 0x7E,
-    0xE7, 0xFF, 0x33, 0x32, 0x63, 0x66, 0x36, 0x62, 0xF7, 0x7F, 0x67, 0x77,
-    0x8F, 0xF8, 0xC3, 0x10, 0x66, 0x08, 0xC3, 0x3C, 0x7F, 0x8F, 0x1F, 0x0F,
-    0xE6, 0x1F, 0x03, 0xC0, 0xF8, 0x67, 0xF0, 0xF8, 0x3F, 0xE3, 0xFF, 0x1C,
-    0x31, 0x83, 0x18, 0x31, 0x86, 0x3F, 0xE3, 0x78, 0x30, 0x03, 0x00, 0xFC,
-    0x0F, 0x80, 0x1E, 0xEF, 0xFD, 0x86, 0x60, 0xCC, 0x19, 0xC7, 0x3F, 0xE1,
-    0xE8, 0x03, 0x00, 0x60, 0x3E, 0x07, 0xC0, 0x39, 0xDF, 0xF1, 0xC0, 0x60,
-    0x10, 0x0C, 0x0F, 0xF3, 0xF8, 0x1F, 0x7F, 0x63, 0x7E, 0x1F, 0xC3, 0xFE,
-    0xFC, 0x10, 0x08, 0x0C, 0x1F, 0xEF, 0xF1, 0x80, 0x80, 0xC0, 0x60, 0x3F,
-    0x8F, 0x80, 0xF3, 0xFC, 0xF6, 0x09, 0x86, 0x61, 0x98, 0xE7, 0xF8, 0xFE,
-    0xFB, 0xFF, 0x7C, 0xC6, 0x19, 0x83, 0x60, 0x6C, 0x07, 0x00, 0xC0, 0xF1,
-    0xFE, 0x3D, 0xB3, 0x37, 0xC7, 0xF8, 0xEE, 0x1D, 0xC3, 0x30, 0x79, 0xEF,
-    0x38, 0xEE, 0x0F, 0x01, 0xE0, 0x6E, 0x3C, 0xE7, 0xBC, 0x3C, 0xF3, 0x8F,
-    0x18, 0xC1, 0x9C, 0x19, 0x81, 0xF0, 0x0E, 0x00, 0xE0, 0x0C, 0x01, 0x80,
-    0xFC, 0x0F, 0xC0, 0x7F, 0xBF, 0xD9, 0xC1, 0x83, 0x83, 0x1B, 0xFD, 0xFE,
-    0x06, 0x1C, 0x60, 0xC1, 0x86, 0x3C, 0x70, 0x30, 0x41, 0x83, 0x07, 0x06,
-    0x00, 0x33, 0x32, 0x26, 0x66, 0x44, 0xCC, 0xC8, 0x0C, 0x0E, 0x04, 0x0C,
-    0x0C, 0x0C, 0x0F, 0x0F, 0x18, 0x18, 0x10, 0x30, 0xF0, 0xE0, 0x38, 0x7C,
-    0xF7, 0xC1, 0xC0};
-
-const GFXglyph FreeMonoBoldOblique9pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 11, 0, 1},       // 0x20 ' '
-    {0, 5, 11, 11, 4, -10},    // 0x21 '!'
-    {7, 7, 5, 11, 4, -10},     // 0x22 '"'
-    {12, 9, 12, 11, 2, -10},   // 0x23 '#'
-    {26, 9, 14, 11, 2, -11},   // 0x24 '$'
-    {42, 9, 11, 11, 2, -10},   // 0x25 '%'
-    {55, 8, 10, 11, 2, -9},    // 0x26 '&'
-    {65, 2, 5, 11, 6, -10},    // 0x27 '''
-    {67, 5, 14, 11, 5, -10},   // 0x28 '('
-    {76, 5, 14, 11, 2, -10},   // 0x29 ')'
-    {85, 8, 7, 11, 3, -10},    // 0x2A '*'
-    {92, 9, 9, 11, 2, -8},     // 0x2B '+'
-    {103, 4, 5, 11, 2, -1},    // 0x2C ','
-    {106, 9, 2, 11, 2, -5},    // 0x2D '-'
-    {109, 3, 2, 11, 4, -1},    // 0x2E '.'
-    {110, 11, 15, 11, 1, -12}, // 0x2F '/'
-    {131, 9, 12, 11, 2, -11},  // 0x30 '0'
-    {145, 8, 12, 11, 2, -11},  // 0x31 '1'
-    {157, 10, 12, 11, 1, -11}, // 0x32 '2'
-    {172, 9, 12, 11, 2, -11},  // 0x33 '3'
-    {186, 8, 10, 11, 2, -9},   // 0x34 '4'
-    {196, 9, 11, 11, 3, -10},  // 0x35 '5'
-    {209, 9, 12, 11, 3, -11},  // 0x36 '6'
-    {223, 8, 11, 11, 3, -10},  // 0x37 '7'
-    {234, 9, 12, 11, 2, -11},  // 0x38 '8'
-    {248, 8, 12, 11, 3, -11},  // 0x39 '9'
-    {260, 4, 8, 11, 4, -7},    // 0x3A ':'
-    {264, 6, 11, 11, 2, -7},   // 0x3B ';'
-    {273, 10, 8, 11, 2, -8},   // 0x3C '<'
-    {283, 10, 6, 11, 1, -7},   // 0x3D '='
-    {291, 10, 8, 11, 1, -8},   // 0x3E '>'
-    {301, 7, 11, 11, 4, -10},  // 0x3F '?'
-    {311, 9, 15, 11, 2, -11},  // 0x40 '@'
-    {328, 11, 11, 11, 0, -10}, // 0x41 'A'
-    {344, 11, 11, 11, 0, -10}, // 0x42 'B'
-    {360, 12, 11, 11, 1, -10}, // 0x43 'C'
-    {377, 11, 11, 11, 0, -10}, // 0x44 'D'
-    {393, 12, 11, 11, 0, -10}, // 0x45 'E'
-    {410, 12, 11, 11, 0, -10}, // 0x46 'F'
-    {427, 11, 11, 11, 1, -10}, // 0x47 'G'
-    {443, 12, 11, 11, 0, -10}, // 0x48 'H'
-    {460, 10, 11, 11, 1, -10}, // 0x49 'I'
-    {474, 12, 11, 11, 0, -10}, // 0x4A 'J'
-    {491, 11, 11, 11, 0, -10}, // 0x4B 'K'
-    {507, 11, 11, 11, 0, -10}, // 0x4C 'L'
-    {523, 13, 11, 11, 0, -10}, // 0x4D 'M'
-    {541, 13, 11, 11, 0, -10}, // 0x4E 'N'
-    {559, 10, 11, 11, 1, -10}, // 0x4F 'O'
-    {573, 11, 11, 11, 0, -10}, // 0x50 'P'
-    {589, 10, 14, 11, 1, -10}, // 0x51 'Q'
-    {607, 12, 11, 11, 0, -10}, // 0x52 'R'
-    {624, 10, 11, 11, 2, -10}, // 0x53 'S'
-    {638, 11, 11, 11, 1, -10}, // 0x54 'T'
-    {654, 11, 11, 11, 1, -10}, // 0x55 'U'
-    {670, 11, 11, 11, 1, -10}, // 0x56 'V'
-    {686, 11, 11, 11, 1, -10}, // 0x57 'W'
-    {702, 12, 11, 11, 0, -10}, // 0x58 'X'
-    {719, 11, 11, 11, 1, -10}, // 0x59 'Y'
-    {735, 10, 11, 11, 1, -10}, // 0x5A 'Z'
-    {749, 7, 14, 11, 4, -10},  // 0x5B '['
-    {762, 5, 15, 11, 4, -12},  // 0x5C '\'
-    {772, 7, 14, 11, 2, -10},  // 0x5D ']'
-    {785, 8, 6, 11, 3, -11},   // 0x5E '^'
-    {791, 11, 2, 11, -1, 3},   // 0x5F '_'
-    {794, 3, 3, 11, 5, -11},   // 0x60 '`'
-    {796, 10, 8, 11, 1, -7},   // 0x61 'a'
-    {806, 11, 11, 11, 0, -10}, // 0x62 'b'
-    {822, 10, 8, 11, 1, -7},   // 0x63 'c'
-    {832, 11, 11, 11, 1, -10}, // 0x64 'd'
-    {848, 9, 8, 11, 1, -7},    // 0x65 'e'
-    {857, 10, 11, 11, 2, -10}, // 0x66 'f'
-    {871, 11, 12, 11, 1, -7},  // 0x67 'g'
-    {888, 10, 11, 11, 1, -10}, // 0x68 'h'
-    {902, 9, 11, 11, 1, -10},  // 0x69 'i'
-    {915, 9, 15, 11, 1, -10},  // 0x6A 'j'
-    {932, 10, 11, 11, 1, -10}, // 0x6B 'k'
-    {946, 9, 11, 11, 1, -10},  // 0x6C 'l'
-    {959, 12, 8, 11, 0, -7},   // 0x6D 'm'
-    {971, 11, 8, 11, 1, -7},   // 0x6E 'n'
-    {982, 10, 8, 11, 1, -7},   // 0x6F 'o'
-    {992, 12, 12, 11, -1, -7}, // 0x70 'p'
-    {1010, 11, 12, 11, 1, -7}, // 0x71 'q'
-    {1027, 10, 8, 11, 1, -7},  // 0x72 'r'
-    {1037, 8, 8, 11, 2, -7},   // 0x73 's'
-    {1045, 9, 11, 11, 1, -10}, // 0x74 't'
-    {1058, 10, 8, 11, 1, -7},  // 0x75 'u'
-    {1068, 11, 8, 11, 1, -7},  // 0x76 'v'
-    {1079, 11, 8, 11, 1, -7},  // 0x77 'w'
-    {1090, 11, 8, 11, 1, -7},  // 0x78 'x'
-    {1101, 12, 12, 11, 0, -7}, // 0x79 'y'
-    {1119, 9, 8, 11, 2, -7},   // 0x7A 'z'
-    {1128, 7, 14, 11, 3, -10}, // 0x7B '{'
-    {1141, 4, 14, 11, 4, -10}, // 0x7C '|'
-    {1148, 8, 14, 11, 2, -10}, // 0x7D '}'
-    {1162, 9, 4, 11, 2, -6}};  // 0x7E '~'
-
-const GFXfont FreeMonoBoldOblique9pt7b PROGMEM = {
-    (uint8_t *)FreeMonoBoldOblique9pt7bBitmaps,
-    (GFXglyph *)FreeMonoBoldOblique9pt7bGlyphs, 0x20, 0x7E, 18};
-
-// Approx. 1839 bytes

+ 0 - 247
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoOblique12pt7b.h

@@ -1,247 +0,0 @@
-const uint8_t FreeMonoOblique12pt7bBitmaps[] PROGMEM = {
-    0x11, 0x11, 0x12, 0x22, 0x22, 0x00, 0x0E, 0xE0, 0xE7, 0xE7, 0xC6, 0xC6,
-    0xC6, 0x84, 0x84, 0x02, 0x40, 0x88, 0x12, 0x02, 0x40, 0x48, 0x7F, 0xC2,
-    0x40, 0x48, 0x11, 0x1F, 0xF8, 0x48, 0x09, 0x02, 0x40, 0x48, 0x09, 0x02,
-    0x20, 0x02, 0x01, 0x00, 0xF4, 0xC3, 0x60, 0x50, 0x04, 0x00, 0xC0, 0x0F,
-    0x00, 0x60, 0x0A, 0x02, 0x81, 0x30, 0xC7, 0xC0, 0x80, 0x20, 0x08, 0x00,
-    0x0E, 0x02, 0x20, 0x84, 0x10, 0x82, 0x20, 0x38, 0x00, 0x38, 0x38, 0x38,
-    0x08, 0xE0, 0x22, 0x08, 0x41, 0x08, 0x22, 0x03, 0x80, 0x07, 0x84, 0x04,
-    0x02, 0x01, 0x00, 0xC1, 0xA2, 0x8A, 0x85, 0x43, 0x31, 0x8F, 0x60, 0xFF,
-    0x6D, 0x20, 0x00, 0x44, 0x42, 0x21, 0x08, 0x84, 0x21, 0x08, 0x42, 0x10,
-    0x42, 0x00, 0x00, 0x84, 0x10, 0x84, 0x21, 0x08, 0x46, 0x21, 0x10, 0x88,
-    0x44, 0x00, 0x04, 0x02, 0x02, 0x1D, 0x13, 0xF0, 0x40, 0x50, 0x48, 0x44,
-    0x00, 0x02, 0x00, 0x40, 0x08, 0x02, 0x00, 0x41, 0xFF, 0xC1, 0x00, 0x20,
-    0x08, 0x01, 0x00, 0x20, 0x00, 0x1C, 0xE3, 0x18, 0x63, 0x08, 0x00, 0xFF,
-    0xE0, 0x7F, 0x00, 0x00, 0x08, 0x00, 0x80, 0x04, 0x00, 0x40, 0x04, 0x00,
-    0x60, 0x02, 0x00, 0x20, 0x03, 0x00, 0x10, 0x01, 0x00, 0x18, 0x00, 0x80,
-    0x08, 0x00, 0x80, 0x04, 0x00, 0x40, 0x04, 0x00, 0x00, 0x07, 0x06, 0x23,
-    0x04, 0x81, 0x40, 0x50, 0x14, 0x06, 0x02, 0x80, 0xA0, 0x28, 0x0A, 0x04,
-    0x83, 0x11, 0x83, 0x80, 0x03, 0x03, 0x83, 0x83, 0x43, 0x20, 0x10, 0x08,
-    0x08, 0x04, 0x02, 0x01, 0x01, 0x00, 0x80, 0x43, 0xFE, 0x01, 0xC0, 0x62,
-    0x0C, 0x10, 0x81, 0x00, 0x10, 0x02, 0x00, 0x60, 0x0C, 0x01, 0x00, 0x20,
-    0x0C, 0x01, 0x80, 0x20, 0x04, 0x04, 0xFF, 0xC0, 0x07, 0xC3, 0x0C, 0x00,
-    0x80, 0x10, 0x06, 0x01, 0x81, 0xC0, 0x0C, 0x00, 0x40, 0x08, 0x01, 0x00,
-    0x20, 0x09, 0x86, 0x0F, 0x00, 0x00, 0xC0, 0x50, 0x24, 0x12, 0x04, 0x82,
-    0x21, 0x08, 0x82, 0x21, 0x10, 0x4F, 0xF8, 0x04, 0x01, 0x00, 0x80, 0xF8,
-    0x0F, 0xE2, 0x00, 0x40, 0x08, 0x01, 0x00, 0x4E, 0x0E, 0x20, 0x02, 0x00,
-    0x40, 0x08, 0x01, 0x00, 0x40, 0x19, 0x06, 0x1F, 0x00, 0x01, 0xE0, 0xC0,
-    0x60, 0x18, 0x02, 0x00, 0x80, 0x13, 0xC5, 0x88, 0xE0, 0x98, 0x12, 0x02,
-    0x40, 0x48, 0x10, 0x84, 0x0F, 0x00, 0xFF, 0xA0, 0x20, 0x08, 0x04, 0x01,
-    0x00, 0x80, 0x20, 0x10, 0x04, 0x02, 0x00, 0x80, 0x40, 0x10, 0x08, 0x02,
-    0x00, 0x07, 0x81, 0x08, 0x40, 0x90, 0x12, 0x02, 0x40, 0x84, 0x20, 0x78,
-    0x30, 0x88, 0x0A, 0x01, 0x40, 0x28, 0x08, 0x82, 0x0F, 0x80, 0x07, 0x81,
-    0x08, 0x40, 0x90, 0x12, 0x02, 0x40, 0xC8, 0x39, 0x8D, 0x1E, 0x40, 0x08,
-    0x02, 0x00, 0xC0, 0x30, 0x18, 0x3E, 0x00, 0x19, 0xCC, 0x00, 0x00, 0x0C,
-    0xE6, 0x00, 0x06, 0x1C, 0x30, 0x00, 0x00, 0x00, 0x1C, 0x30, 0xE1, 0x86,
-    0x08, 0x00, 0x00, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x06, 0x00, 0x30,
-    0x00, 0xC0, 0x06, 0x00, 0x18, 0x00, 0xC0, 0x7F, 0xF8, 0x00, 0x00, 0x01,
-    0xFF, 0xE0, 0x18, 0x00, 0xC0, 0x03, 0x00, 0x18, 0x00, 0x60, 0x03, 0x00,
-    0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x00, 0x3E, 0xC3, 0x81, 0x01, 0x03,
-    0x06, 0x18, 0x20, 0x20, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0x07, 0x82, 0x31,
-    0x04, 0x81, 0x20, 0x48, 0x74, 0x65, 0x21, 0x48, 0x92, 0x28, 0x7A, 0x00,
-    0x80, 0x20, 0x04, 0x00, 0xF8, 0x07, 0xE0, 0x02, 0x80, 0x0A, 0x00, 0x48,
-    0x01, 0x20, 0x08, 0x40, 0x41, 0x01, 0x04, 0x0F, 0xF0, 0x20, 0x41, 0x01,
-    0x04, 0x02, 0x20, 0x0B, 0xE1, 0xF0, 0x1F, 0xF0, 0x40, 0xC2, 0x02, 0x10,
-    0x10, 0x81, 0x84, 0x18, 0x7F, 0x82, 0x02, 0x10, 0x08, 0x80, 0x44, 0x02,
-    0x60, 0x22, 0x03, 0x7F, 0xE0, 0x07, 0x91, 0x87, 0x20, 0x34, 0x02, 0x40,
-    0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x04, 0x04, 0x61,
-    0x81, 0xE0, 0x1F, 0xE0, 0x41, 0x82, 0x06, 0x10, 0x11, 0x00, 0x88, 0x04,
-    0x40, 0x22, 0x01, 0x10, 0x11, 0x00, 0x88, 0x08, 0x40, 0xC2, 0x0C, 0x7F,
-    0x80, 0x1F, 0xFC, 0x20, 0x10, 0x80, 0x82, 0x00, 0x08, 0x00, 0x22, 0x01,
-    0xF8, 0x04, 0x20, 0x10, 0x00, 0x40, 0x01, 0x01, 0x0C, 0x04, 0x20, 0x13,
-    0xFF, 0xC0, 0x1F, 0xFC, 0x20, 0x10, 0x80, 0x42, 0x01, 0x08, 0x00, 0x22,
-    0x01, 0xF8, 0x04, 0x20, 0x10, 0x00, 0x40, 0x01, 0x00, 0x0C, 0x00, 0x20,
-    0x03, 0xF8, 0x00, 0x07, 0xD0, 0x83, 0x30, 0x12, 0x00, 0x40, 0x04, 0x00,
-    0x80, 0x08, 0x00, 0x83, 0xE8, 0x04, 0x80, 0x4C, 0x04, 0x60, 0x41, 0xF8,
-    0x0F, 0x3C, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x81, 0x01, 0x02, 0x03,
-    0xFC, 0x08, 0x08, 0x10, 0x10, 0x20, 0x40, 0x40, 0x80, 0x81, 0x02, 0x02,
-    0x1F, 0x1E, 0x00, 0x3F, 0xE0, 0x40, 0x08, 0x01, 0x00, 0x20, 0x08, 0x01,
-    0x00, 0x20, 0x04, 0x00, 0x80, 0x20, 0x04, 0x00, 0x81, 0xFF, 0x00, 0x03,
-    0xFE, 0x00, 0x20, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08,
-    0x00, 0x20, 0x40, 0x40, 0x80, 0x81, 0x01, 0x02, 0x04, 0x06, 0x10, 0x07,
-    0xC0, 0x00, 0x1F, 0x1E, 0x10, 0x10, 0x20, 0xC0, 0x43, 0x00, 0x88, 0x01,
-    0x20, 0x07, 0xC0, 0x0C, 0x40, 0x10, 0x40, 0x20, 0x80, 0x41, 0x01, 0x81,
-    0x02, 0x02, 0x1F, 0x87, 0x00, 0x3F, 0x80, 0x40, 0x04, 0x00, 0x40, 0x08,
-    0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x01, 0x01, 0x10, 0x11, 0x02, 0x10,
-    0x2F, 0xFE, 0x1C, 0x03, 0x85, 0x03, 0x02, 0x82, 0x81, 0x41, 0x40, 0xA1,
-    0x20, 0x89, 0x30, 0x44, 0x90, 0x22, 0x88, 0x11, 0x44, 0x08, 0x42, 0x08,
-    0x03, 0x04, 0x01, 0x02, 0x00, 0x87, 0xC3, 0xE0, 0x3C, 0x3E, 0x18, 0x08,
-    0x38, 0x20, 0x50, 0x41, 0x20, 0x82, 0x61, 0x04, 0x42, 0x08, 0x88, 0x10,
-    0x90, 0x41, 0x20, 0x83, 0x41, 0x02, 0x82, 0x06, 0x1F, 0x04, 0x00, 0x03,
-    0xC0, 0x61, 0x84, 0x04, 0x40, 0x14, 0x00, 0xA0, 0x06, 0x00, 0x30, 0x01,
-    0x80, 0x14, 0x00, 0xA0, 0x08, 0x80, 0x86, 0x18, 0x0F, 0x00, 0x1F, 0xE0,
-    0x40, 0x82, 0x02, 0x10, 0x10, 0x80, 0x84, 0x08, 0x40, 0x83, 0xF8, 0x10,
-    0x00, 0x80, 0x04, 0x00, 0x60, 0x02, 0x00, 0x7F, 0x00, 0x03, 0xC0, 0x61,
-    0x84, 0x04, 0x40, 0x14, 0x00, 0xA0, 0x06, 0x00, 0x30, 0x01, 0x80, 0x14,
-    0x00, 0xA0, 0x08, 0x80, 0x86, 0x18, 0x1F, 0x00, 0x40, 0x0F, 0xC4, 0x41,
-    0xC0, 0x1F, 0xE0, 0x40, 0x82, 0x02, 0x10, 0x10, 0x80, 0x84, 0x08, 0x60,
-    0x83, 0xF8, 0x10, 0xC0, 0x82, 0x04, 0x08, 0x40, 0x42, 0x03, 0x7E, 0x0C,
-    0x07, 0xA3, 0x0C, 0x40, 0x90, 0x12, 0x00, 0x40, 0x06, 0x00, 0x3C, 0x00,
-    0x40, 0x0A, 0x01, 0x40, 0x4C, 0x11, 0x7C, 0x00, 0xFF, 0xE8, 0x42, 0x84,
-    0x20, 0x40, 0x04, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x10,
-    0x01, 0x00, 0x10, 0x0F, 0xE0, 0xF8, 0xF9, 0x00, 0x88, 0x08, 0x80, 0x44,
-    0x02, 0x20, 0x11, 0x01, 0x08, 0x08, 0x80, 0x44, 0x02, 0x20, 0x31, 0x01,
-    0x04, 0x30, 0x1E, 0x00, 0xF8, 0x7D, 0x00, 0x42, 0x01, 0x08, 0x08, 0x20,
-    0x40, 0x81, 0x02, 0x08, 0x08, 0x20, 0x11, 0x00, 0x48, 0x01, 0x20, 0x05,
-    0x00, 0x14, 0x00, 0x60, 0x00, 0xF8, 0x7D, 0x00, 0x44, 0x01, 0x11, 0x84,
-    0x46, 0x21, 0x18, 0x84, 0xA2, 0x12, 0x90, 0x91, 0x42, 0x45, 0x0A, 0x14,
-    0x28, 0x60, 0xC1, 0x83, 0x06, 0x00, 0x1E, 0x1E, 0x10, 0x10, 0x10, 0x40,
-    0x21, 0x00, 0x24, 0x00, 0x78, 0x00, 0x60, 0x01, 0xC0, 0x06, 0x80, 0x09,
-    0x80, 0x21, 0x00, 0x81, 0x02, 0x02, 0x1E, 0x1F, 0x00, 0xF0, 0xF4, 0x04,
-    0x20, 0x82, 0x18, 0x11, 0x01, 0x20, 0x1C, 0x00, 0x80, 0x08, 0x00, 0x80,
-    0x10, 0x01, 0x00, 0x10, 0x0F, 0xE0, 0x0F, 0xF1, 0x01, 0x10, 0x21, 0x04,
-    0x00, 0x80, 0x10, 0x02, 0x00, 0x40, 0x0C, 0x01, 0x82, 0x10, 0x22, 0x04,
-    0x40, 0x47, 0xFC, 0x0E, 0x20, 0x40, 0x81, 0x02, 0x08, 0x10, 0x20, 0x40,
-    0x82, 0x04, 0x08, 0x10, 0x20, 0x81, 0xE0, 0x84, 0x20, 0x84, 0x20, 0x84,
-    0x21, 0x04, 0x21, 0x08, 0x21, 0x08, 0x40, 0x1E, 0x04, 0x08, 0x20, 0x40,
-    0x81, 0x02, 0x04, 0x10, 0x20, 0x40, 0x81, 0x02, 0x08, 0x11, 0xE0, 0x04,
-    0x06, 0x04, 0x84, 0x44, 0x14, 0x0C, 0xFF, 0xFE, 0x99, 0x90, 0x1F, 0xC0,
-    0x06, 0x00, 0x20, 0x02, 0x1F, 0xE6, 0x04, 0xC0, 0x48, 0x04, 0x81, 0xC7,
-    0xEF, 0x18, 0x00, 0x40, 0x02, 0x00, 0x10, 0x00, 0x80, 0x09, 0xF0, 0x50,
-    0xC3, 0x03, 0x10, 0x08, 0x80, 0x48, 0x02, 0x40, 0x23, 0x03, 0x1C, 0x33,
-    0xBE, 0x00, 0x0F, 0xD3, 0x07, 0x60, 0x24, 0x02, 0x80, 0x08, 0x00, 0x80,
-    0x08, 0x06, 0x41, 0xC3, 0xF0, 0x00, 0x38, 0x00, 0x40, 0x02, 0x00, 0x20,
-    0x01, 0x07, 0xC8, 0x43, 0x44, 0x0E, 0x40, 0x24, 0x01, 0x20, 0x09, 0x00,
-    0xC8, 0x0E, 0x20, 0xE0, 0xF9, 0xC0, 0x0F, 0x86, 0x09, 0x00, 0xA0, 0x1F,
-    0xFF, 0x00, 0x20, 0x06, 0x00, 0x60, 0xC7, 0xE0, 0x01, 0xF8, 0x10, 0x01,
-    0x00, 0x08, 0x00, 0x40, 0x1F, 0xF0, 0x20, 0x01, 0x00, 0x08, 0x00, 0x40,
-    0x04, 0x00, 0x20, 0x01, 0x00, 0x08, 0x03, 0xFE, 0x00, 0x0F, 0x31, 0x86,
-    0x10, 0x10, 0x80, 0x88, 0x04, 0x40, 0x22, 0x02, 0x10, 0x10, 0x43, 0x81,
-    0xE4, 0x00, 0x40, 0x02, 0x00, 0x20, 0x3E, 0x00, 0x1C, 0x00, 0x20, 0x03,
-    0x00, 0x10, 0x00, 0x80, 0x05, 0xF0, 0x30, 0xC3, 0x02, 0x10, 0x10, 0x80,
-    0x84, 0x0C, 0x20, 0x63, 0x02, 0x10, 0x13, 0xE3, 0xE0, 0x01, 0x80, 0x40,
-    0x10, 0x00, 0x00, 0x07, 0xC0, 0x20, 0x08, 0x02, 0x00, 0x80, 0x20, 0x10,
-    0x04, 0x01, 0x0F, 0xFC, 0x00, 0x40, 0x10, 0x0C, 0x00, 0x00, 0x07, 0xF0,
-    0x04, 0x01, 0x00, 0x40, 0x20, 0x08, 0x02, 0x00, 0x80, 0x20, 0x10, 0x04,
-    0x01, 0x00, 0x8F, 0xC0, 0x18, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, 0x01,
-    0x1F, 0x10, 0x81, 0x30, 0x14, 0x01, 0xC0, 0x26, 0x02, 0x20, 0x21, 0x02,
-    0x08, 0xE1, 0xE0, 0x0F, 0x80, 0x40, 0x10, 0x04, 0x01, 0x00, 0x40, 0x20,
-    0x08, 0x02, 0x00, 0x80, 0x20, 0x10, 0x04, 0x01, 0x0F, 0xFC, 0x3B, 0xB8,
-    0x33, 0x91, 0x08, 0x44, 0x21, 0x10, 0x84, 0x42, 0x12, 0x10, 0x48, 0x42,
-    0x21, 0x0B, 0xC6, 0x30, 0x19, 0xE0, 0xE3, 0x08, 0x11, 0x01, 0x10, 0x11,
-    0x02, 0x10, 0x21, 0x02, 0x20, 0x2F, 0x87, 0x0F, 0x86, 0x19, 0x80, 0xA0,
-    0x18, 0x03, 0x00, 0x60, 0x14, 0x06, 0x61, 0x87, 0xC0, 0x19, 0xF0, 0x28,
-    0x20, 0xC0, 0x42, 0x01, 0x10, 0x04, 0x40, 0x11, 0x00, 0x86, 0x06, 0x14,
-    0x30, 0xCF, 0x02, 0x00, 0x08, 0x00, 0x20, 0x03, 0xF0, 0x00, 0x0F, 0x39,
-    0x85, 0x18, 0x18, 0x80, 0x88, 0x04, 0x40, 0x22, 0x01, 0x18, 0x18, 0x63,
-    0x81, 0xE4, 0x00, 0x20, 0x01, 0x00, 0x10, 0x07, 0xE0, 0x1C, 0x78, 0x2C,
-    0x01, 0x80, 0x18, 0x00, 0x80, 0x04, 0x00, 0x20, 0x02, 0x00, 0x10, 0x07,
-    0xFC, 0x00, 0x0F, 0x44, 0x32, 0x04, 0x80, 0x1E, 0x00, 0x60, 0x0A, 0x02,
-    0xC1, 0x2F, 0x80, 0x10, 0x08, 0x04, 0x02, 0x0F, 0xF9, 0x00, 0x80, 0x40,
-    0x20, 0x20, 0x10, 0x08, 0x04, 0x19, 0xF0, 0xE0, 0xF2, 0x02, 0x40, 0x24,
-    0x02, 0x40, 0x24, 0x06, 0x40, 0x44, 0x04, 0x41, 0xC3, 0xE6, 0xF8, 0xFA,
-    0x01, 0x08, 0x10, 0x41, 0x02, 0x08, 0x10, 0x80, 0x48, 0x02, 0x40, 0x14,
-    0x00, 0xC0, 0x00, 0xE0, 0x7A, 0x01, 0x10, 0x08, 0x8C, 0x84, 0xA4, 0x25,
-    0x21, 0x4A, 0x0A, 0x50, 0x63, 0x02, 0x18, 0x00, 0x1E, 0x3C, 0x20, 0x40,
-    0x46, 0x00, 0xB0, 0x03, 0x00, 0x0E, 0x00, 0xC8, 0x06, 0x10, 0x20, 0x23,
-    0xE3, 0xC0, 0x3C, 0x3C, 0x40, 0x20, 0x81, 0x02, 0x08, 0x08, 0x20, 0x31,
-    0x00, 0x48, 0x01, 0x40, 0x05, 0x00, 0x08, 0x00, 0x40, 0x02, 0x00, 0x08,
-    0x03, 0xF0, 0x00, 0x3F, 0xC4, 0x18, 0x06, 0x01, 0x80, 0x60, 0x10, 0x04,
-    0x01, 0x00, 0x40, 0x9F, 0xF0, 0x06, 0x10, 0x20, 0x41, 0x02, 0x04, 0x08,
-    0x21, 0x80, 0x81, 0x02, 0x08, 0x10, 0x20, 0x40, 0xC0, 0x01, 0x11, 0x12,
-    0x22, 0x24, 0x44, 0x44, 0x88, 0x80, 0x0C, 0x08, 0x10, 0x20, 0x40, 0x82,
-    0x04, 0x08, 0x0C, 0x20, 0x81, 0x02, 0x04, 0x08, 0x21, 0x80, 0x38, 0x28,
-    0x88, 0x0E, 0x00};
-
-const GFXglyph FreeMonoOblique12pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 14, 0, 1},        // 0x20 ' '
-    {0, 4, 15, 14, 6, -14},     // 0x21 '!'
-    {8, 8, 7, 14, 5, -14},      // 0x22 '"'
-    {15, 11, 16, 14, 3, -14},   // 0x23 '#'
-    {37, 10, 18, 14, 4, -15},   // 0x24 '$'
-    {60, 11, 15, 14, 3, -14},   // 0x25 '%'
-    {81, 9, 12, 14, 3, -11},    // 0x26 '&'
-    {95, 3, 7, 14, 8, -14},     // 0x27 '''
-    {98, 5, 18, 14, 8, -14},    // 0x28 '('
-    {110, 5, 18, 14, 4, -14},   // 0x29 ')'
-    {122, 9, 9, 14, 5, -14},    // 0x2A '*'
-    {133, 11, 11, 14, 3, -11},  // 0x2B '+'
-    {149, 6, 7, 14, 3, -3},     // 0x2C ','
-    {155, 11, 1, 14, 3, -6},    // 0x2D '-'
-    {157, 3, 3, 14, 6, -2},     // 0x2E '.'
-    {159, 13, 18, 14, 2, -15},  // 0x2F '/'
-    {189, 10, 15, 14, 4, -14},  // 0x30 '0'
-    {208, 9, 15, 14, 3, -14},   // 0x31 '1'
-    {225, 12, 15, 14, 2, -14},  // 0x32 '2'
-    {248, 11, 15, 14, 3, -14},  // 0x33 '3'
-    {269, 10, 15, 14, 3, -14},  // 0x34 '4'
-    {288, 11, 15, 14, 3, -14},  // 0x35 '5'
-    {309, 11, 15, 14, 4, -14},  // 0x36 '6'
-    {330, 10, 15, 14, 5, -14},  // 0x37 '7'
-    {349, 11, 15, 14, 3, -14},  // 0x38 '8'
-    {370, 11, 15, 14, 3, -14},  // 0x39 '9'
-    {391, 5, 10, 14, 5, -9},    // 0x3A ':'
-    {398, 7, 13, 14, 3, -9},    // 0x3B ';'
-    {410, 12, 11, 14, 3, -11},  // 0x3C '<'
-    {427, 13, 4, 14, 2, -8},    // 0x3D '='
-    {434, 12, 11, 14, 2, -11},  // 0x3E '>'
-    {451, 8, 14, 14, 6, -13},   // 0x3F '?'
-    {465, 10, 16, 14, 3, -14},  // 0x40 '@'
-    {485, 14, 14, 14, 0, -13},  // 0x41 'A'
-    {510, 13, 14, 14, 1, -13},  // 0x42 'B'
-    {533, 12, 14, 14, 3, -13},  // 0x43 'C'
-    {554, 13, 14, 14, 1, -13},  // 0x44 'D'
-    {577, 14, 14, 14, 1, -13},  // 0x45 'E'
-    {602, 14, 14, 14, 1, -13},  // 0x46 'F'
-    {627, 12, 14, 14, 3, -13},  // 0x47 'G'
-    {648, 15, 14, 14, 1, -13},  // 0x48 'H'
-    {675, 11, 14, 14, 3, -13},  // 0x49 'I'
-    {695, 15, 14, 14, 2, -13},  // 0x4A 'J'
-    {722, 15, 14, 14, 1, -13},  // 0x4B 'K'
-    {749, 12, 14, 14, 2, -13},  // 0x4C 'L'
-    {770, 17, 14, 14, 0, -13},  // 0x4D 'M'
-    {800, 15, 14, 14, 1, -13},  // 0x4E 'N'
-    {827, 13, 14, 14, 2, -13},  // 0x4F 'O'
-    {850, 13, 14, 14, 1, -13},  // 0x50 'P'
-    {873, 13, 17, 14, 2, -13},  // 0x51 'Q'
-    {901, 13, 14, 14, 1, -13},  // 0x52 'R'
-    {924, 11, 14, 14, 3, -13},  // 0x53 'S'
-    {944, 12, 14, 14, 4, -13},  // 0x54 'T'
-    {965, 13, 14, 14, 3, -13},  // 0x55 'U'
-    {988, 14, 14, 14, 3, -13},  // 0x56 'V'
-    {1013, 14, 14, 14, 3, -13}, // 0x57 'W'
-    {1038, 15, 14, 14, 1, -13}, // 0x58 'X'
-    {1065, 12, 14, 14, 4, -13}, // 0x59 'Y'
-    {1086, 12, 14, 14, 2, -13}, // 0x5A 'Z'
-    {1107, 7, 18, 14, 6, -14},  // 0x5B '['
-    {1123, 5, 18, 14, 6, -15},  // 0x5C '\'
-    {1135, 7, 18, 14, 3, -14},  // 0x5D ']'
-    {1151, 9, 6, 14, 5, -14},   // 0x5E '^'
-    {1158, 15, 1, 14, -1, 3},   // 0x5F '_'
-    {1160, 3, 4, 14, 6, -15},   // 0x60 '`'
-    {1162, 12, 10, 14, 2, -9},  // 0x61 'a'
-    {1177, 13, 15, 14, 1, -14}, // 0x62 'b'
-    {1202, 12, 10, 14, 3, -9},  // 0x63 'c'
-    {1217, 13, 15, 14, 2, -14}, // 0x64 'd'
-    {1242, 11, 10, 14, 3, -9},  // 0x65 'e'
-    {1256, 13, 15, 14, 3, -14}, // 0x66 'f'
-    {1281, 13, 14, 14, 3, -9},  // 0x67 'g'
-    {1304, 13, 15, 14, 1, -14}, // 0x68 'h'
-    {1329, 10, 15, 14, 2, -14}, // 0x69 'i'
-    {1348, 10, 19, 14, 2, -14}, // 0x6A 'j'
-    {1372, 12, 15, 14, 2, -14}, // 0x6B 'k'
-    {1395, 10, 15, 14, 2, -14}, // 0x6C 'l'
-    {1414, 14, 10, 14, 0, -9},  // 0x6D 'm'
-    {1432, 12, 10, 14, 1, -9},  // 0x6E 'n'
-    {1447, 11, 10, 14, 3, -9},  // 0x6F 'o'
-    {1461, 14, 14, 14, 0, -9},  // 0x70 'p'
-    {1486, 13, 14, 14, 3, -9},  // 0x71 'q'
-    {1509, 13, 10, 14, 2, -9},  // 0x72 'r'
-    {1526, 10, 10, 14, 3, -9},  // 0x73 's'
-    {1539, 9, 14, 14, 3, -13},  // 0x74 't'
-    {1555, 12, 10, 14, 2, -9},  // 0x75 'u'
-    {1570, 13, 10, 14, 3, -9},  // 0x76 'v'
-    {1587, 13, 10, 14, 3, -9},  // 0x77 'w'
-    {1604, 14, 10, 14, 1, -9},  // 0x78 'x'
-    {1622, 14, 14, 14, 1, -9},  // 0x79 'y'
-    {1647, 11, 10, 14, 3, -9},  // 0x7A 'z'
-    {1661, 7, 18, 14, 5, -14},  // 0x7B '{'
-    {1677, 4, 17, 14, 6, -13},  // 0x7C '|'
-    {1686, 7, 18, 14, 4, -14},  // 0x7D '}'
-    {1702, 11, 3, 14, 3, -7}};  // 0x7E '~'
-
-const GFXfont FreeMonoOblique12pt7b PROGMEM = {
-    (uint8_t *)FreeMonoOblique12pt7bBitmaps,
-    (GFXglyph *)FreeMonoOblique12pt7bGlyphs, 0x20, 0x7E, 24};
-
-// Approx. 2379 bytes

+ 0 - 397
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoOblique18pt7b.h

@@ -1,397 +0,0 @@
-const uint8_t FreeMonoOblique18pt7bBitmaps[] PROGMEM = {
-    0x00, 0x1C, 0x38, 0x70, 0xC1, 0x83, 0x06, 0x18, 0x30, 0x60, 0xC1, 0x02,
-    0x04, 0x00, 0x00, 0x01, 0xC7, 0x8F, 0x1C, 0x00, 0x78, 0x7B, 0xC3, 0xFC,
-    0x3D, 0xE1, 0xEF, 0x0F, 0x70, 0x73, 0x83, 0x98, 0x18, 0xC0, 0xC6, 0x06,
-    0x00, 0x00, 0x8C, 0x01, 0x18, 0x06, 0x20, 0x08, 0x40, 0x11, 0x80, 0x62,
-    0x00, 0xC4, 0x01, 0x18, 0x02, 0x30, 0x7F, 0xFC, 0x10, 0x80, 0x23, 0x00,
-    0xC4, 0x01, 0x88, 0x3F, 0xFF, 0x04, 0x60, 0x18, 0x80, 0x21, 0x00, 0x46,
-    0x01, 0x88, 0x03, 0x10, 0x04, 0x60, 0x08, 0xC0, 0x31, 0x00, 0x00, 0x30,
-    0x00, 0x20, 0x00, 0x20, 0x00, 0xF9, 0x03, 0x0F, 0x06, 0x03, 0x04, 0x03,
-    0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x04, 0x00, 0x03, 0xC0, 0x00, 0x78,
-    0x00, 0x0C, 0x00, 0x04, 0x00, 0x04, 0x40, 0x04, 0x40, 0x08, 0x40, 0x18,
-    0xF0, 0x60, 0x9F, 0x80, 0x02, 0x00, 0x06, 0x00, 0x04, 0x00, 0x04, 0x00,
-    0x04, 0x00, 0x03, 0xC0, 0x0C, 0x60, 0x08, 0x20, 0x10, 0x20, 0x10, 0x20,
-    0x10, 0x40, 0x18, 0x80, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x78, 0x07, 0xC0,
-    0x3C, 0x00, 0xE0, 0x00, 0x01, 0xE0, 0x02, 0x18, 0x04, 0x08, 0x08, 0x08,
-    0x08, 0x08, 0x08, 0x10, 0x0C, 0x20, 0x07, 0xC0, 0x01, 0xF0, 0x11, 0x81,
-    0x00, 0x10, 0x00, 0x80, 0x04, 0x00, 0x20, 0x01, 0x80, 0x04, 0x00, 0xF0,
-    0x09, 0x86, 0x84, 0x48, 0x32, 0x40, 0xA2, 0x07, 0x10, 0x30, 0x43, 0x81,
-    0xE7, 0x80, 0x7B, 0xFD, 0xEF, 0x73, 0x98, 0xC6, 0x00, 0x01, 0x02, 0x06,
-    0x0C, 0x0C, 0x18, 0x10, 0x30, 0x30, 0x60, 0x60, 0x60, 0xC0, 0xC0, 0xC0,
-    0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x40, 0x60, 0x60, 0x20, 0x04, 0x06,
-    0x06, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x06,
-    0x06, 0x06, 0x0C, 0x0C, 0x0C, 0x18, 0x10, 0x30, 0x60, 0x40, 0xC0, 0x01,
-    0x00, 0x04, 0x00, 0x10, 0x00, 0xC6, 0xE3, 0xF8, 0x7E, 0x00, 0x70, 0x03,
-    0x40, 0x19, 0x80, 0xC2, 0x06, 0x0C, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x02,
-    0x00, 0x04, 0x00, 0x08, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0xFF, 0xFE,
-    0x02, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x02,
-    0x00, 0x04, 0x00, 0x0F, 0x87, 0x87, 0x83, 0x83, 0xC1, 0xC1, 0xC0, 0xC0,
-    0xE0, 0x60, 0x00, 0xFF, 0xFF, 0x77, 0xFF, 0xF7, 0x00, 0x00, 0x00, 0x60,
-    0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0xC0, 0x00, 0x30, 0x00, 0x04, 0x00,
-    0x01, 0x80, 0x00, 0x60, 0x00, 0x08, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00,
-    0x10, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0x20, 0x00, 0x0C, 0x00, 0x03,
-    0x00, 0x00, 0x40, 0x00, 0x18, 0x00, 0x06, 0x00, 0x00, 0x80, 0x00, 0x20,
-    0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00, 0x01,
-    0xF0, 0x18, 0x60, 0x80, 0x86, 0x01, 0x10, 0x04, 0x80, 0x12, 0x00, 0x50,
-    0x01, 0x40, 0x0D, 0x00, 0x24, 0x00, 0xA0, 0x02, 0x80, 0x1A, 0x00, 0x48,
-    0x01, 0x20, 0x0C, 0x80, 0x22, 0x01, 0x84, 0x0C, 0x18, 0x60, 0x3E, 0x00,
-    0x00, 0x60, 0x07, 0x00, 0x68, 0x06, 0x40, 0xE4, 0x04, 0x20, 0x01, 0x00,
-    0x08, 0x00, 0x40, 0x04, 0x00, 0x20, 0x01, 0x00, 0x08, 0x00, 0x80, 0x04,
-    0x00, 0x20, 0x01, 0x00, 0x08, 0x00, 0x80, 0x04, 0x0F, 0xFF, 0x80, 0x00,
-    0x3C, 0x00, 0x61, 0x80, 0x40, 0x40, 0x40, 0x10, 0x60, 0x08, 0x00, 0x04,
-    0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x07, 0x00, 0x07,
-    0x00, 0x06, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0C, 0x00, 0x0C,
-    0x00, 0x1C, 0x01, 0x1C, 0x00, 0x8F, 0xFF, 0xC0, 0x00, 0xFC, 0x03, 0x06,
-    0x06, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02,
-    0x00, 0x0C, 0x00, 0xF0, 0x00, 0x18, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02,
-    0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x40, 0x18, 0x70, 0x30,
-    0x0F, 0xC0, 0x00, 0x1C, 0x00, 0xD0, 0x06, 0x80, 0x32, 0x00, 0x88, 0x04,
-    0x20, 0x30, 0x81, 0x84, 0x04, 0x10, 0x20, 0x41, 0x81, 0x0C, 0x08, 0x60,
-    0x21, 0x00, 0x8F, 0xFF, 0x80, 0x18, 0x00, 0x40, 0x01, 0x00, 0x04, 0x00,
-    0x10, 0x07, 0xE0, 0x03, 0xFF, 0x03, 0x00, 0x01, 0x80, 0x00, 0x80, 0x00,
-    0x40, 0x00, 0x20, 0x00, 0x30, 0x00, 0x1B, 0xE0, 0x0E, 0x0C, 0x00, 0x02,
-    0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00,
-    0x08, 0x00, 0x04, 0x60, 0x04, 0x18, 0x04, 0x06, 0x0C, 0x00, 0xF8, 0x00,
-    0x00, 0x3F, 0x00, 0xC0, 0x03, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00,
-    0x30, 0x00, 0x20, 0x00, 0x40, 0x00, 0x43, 0xE0, 0x4C, 0x30, 0xB0, 0x18,
-    0xE0, 0x08, 0xC0, 0x08, 0x80, 0x08, 0x80, 0x08, 0x80, 0x10, 0xC0, 0x10,
-    0x40, 0x20, 0x20, 0xC0, 0x1F, 0x00, 0xFF, 0xFC, 0x00, 0xE0, 0x04, 0x00,
-    0x60, 0x02, 0x00, 0x30, 0x01, 0x00, 0x18, 0x00, 0x80, 0x0C, 0x00, 0x40,
-    0x06, 0x00, 0x20, 0x03, 0x00, 0x10, 0x01, 0x80, 0x08, 0x00, 0xC0, 0x04,
-    0x00, 0x60, 0x02, 0x00, 0x00, 0x00, 0xF0, 0x06, 0x18, 0x10, 0x18, 0x40,
-    0x11, 0x00, 0x22, 0x00, 0x44, 0x00, 0x88, 0x02, 0x18, 0x08, 0x18, 0x60,
-    0x1F, 0x80, 0xC1, 0x82, 0x01, 0x88, 0x01, 0x20, 0x02, 0x40, 0x04, 0x80,
-    0x09, 0x00, 0x23, 0x00, 0x83, 0x06, 0x01, 0xF0, 0x00, 0x00, 0xF0, 0x06,
-    0x18, 0x10, 0x10, 0x40, 0x30, 0x80, 0x22, 0x00, 0x44, 0x00, 0x88, 0x03,
-    0x10, 0x0E, 0x30, 0x34, 0x30, 0xD0, 0x3E, 0x20, 0x00, 0x40, 0x01, 0x00,
-    0x02, 0x00, 0x08, 0x00, 0x20, 0x00, 0xC0, 0x02, 0x00, 0x18, 0x0F, 0xC0,
-    0x00, 0x1C, 0x7C, 0xF9, 0xF1, 0xC0, 0x00, 0x00, 0x00, 0x01, 0xC7, 0xCF,
-    0x9F, 0x1C, 0x00, 0x01, 0xC0, 0x7C, 0x0F, 0x81, 0xF0, 0x1C, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x07, 0x81, 0xE0, 0x3C, 0x0F, 0x01,
-    0xC0, 0x70, 0x0E, 0x03, 0x80, 0x60, 0x00, 0x00, 0x01, 0x80, 0x03, 0x80,
-    0x07, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x70, 0x00, 0xE0, 0x00,
-    0xE0, 0x00, 0x1C, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x07,
-    0x00, 0x00, 0xE0, 0x00, 0x38, 0x7F, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x18, 0x00, 0x03, 0x80,
-    0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x00, 0xE0,
-    0x00, 0x0E, 0x00, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03,
-    0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x00, 0x1F, 0xCE, 0x06, 0x80,
-    0x38, 0x01, 0x80, 0x10, 0x01, 0x00, 0x20, 0x04, 0x01, 0x80, 0xF0, 0x18,
-    0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0F, 0x80, 0xF8,
-    0x07, 0x00, 0x01, 0xF0, 0x0C, 0x30, 0x30, 0x30, 0x40, 0x21, 0x00, 0x44,
-    0x00, 0x88, 0x01, 0x10, 0x1E, 0x40, 0xC4, 0x86, 0x11, 0x08, 0x22, 0x20,
-    0x48, 0x40, 0x90, 0x82, 0x21, 0x84, 0x40, 0xFC, 0x80, 0x01, 0x00, 0x02,
-    0x00, 0x04, 0x00, 0x04, 0x00, 0x0C, 0x18, 0x07, 0xC0, 0x00, 0x01, 0xFE,
-    0x00, 0x00, 0x68, 0x00, 0x06, 0x40, 0x00, 0x32, 0x00, 0x03, 0x10, 0x00,
-    0x10, 0x80, 0x01, 0x84, 0x00, 0x18, 0x10, 0x00, 0xC0, 0x80, 0x0C, 0x04,
-    0x00, 0x60, 0x20, 0x06, 0x01, 0x00, 0x3F, 0xFC, 0x02, 0x00, 0x20, 0x10,
-    0x01, 0x01, 0x00, 0x08, 0x08, 0x00, 0x40, 0x80, 0x02, 0x0C, 0x00, 0x09,
-    0xFC, 0x07, 0xF0, 0x0F, 0xFF, 0x00, 0x40, 0x60, 0x20, 0x0C, 0x08, 0x01,
-    0x02, 0x00, 0x40, 0x80, 0x10, 0x40, 0x08, 0x10, 0x06, 0x04, 0x03, 0x01,
-    0xFF, 0x80, 0x40, 0x38, 0x20, 0x02, 0x08, 0x00, 0x42, 0x00, 0x10, 0x80,
-    0x04, 0x40, 0x01, 0x10, 0x00, 0x84, 0x00, 0x41, 0x00, 0x23, 0xFF, 0xF0,
-    0x00, 0xFC, 0x40, 0xC1, 0xF0, 0xC0, 0x1C, 0x60, 0x06, 0x10, 0x00, 0x88,
-    0x00, 0x24, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x30, 0x00, 0x08, 0x00,
-    0x02, 0x00, 0x00, 0x80, 0x00, 0x20, 0x00, 0x08, 0x00, 0x03, 0x00, 0x00,
-    0x40, 0x06, 0x08, 0x03, 0x01, 0x83, 0x80, 0x3F, 0x00, 0x0F, 0xFE, 0x00,
-    0x80, 0xC0, 0x20, 0x18, 0x10, 0x02, 0x04, 0x00, 0x41, 0x00, 0x10, 0x40,
-    0x04, 0x20, 0x01, 0x08, 0x00, 0x42, 0x00, 0x10, 0x80, 0x08, 0x20, 0x02,
-    0x10, 0x00, 0x84, 0x00, 0x21, 0x00, 0x10, 0x40, 0x08, 0x20, 0x06, 0x08,
-    0x03, 0x02, 0x01, 0x83, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x10, 0x02, 0x02,
-    0x00, 0x60, 0x20, 0x06, 0x02, 0x00, 0x60, 0x20, 0x00, 0x04, 0x00, 0x00,
-    0x40, 0x80, 0x04, 0x10, 0x00, 0x7F, 0x00, 0x04, 0x10, 0x00, 0x81, 0x00,
-    0x08, 0x00, 0x00, 0x80, 0x00, 0x08, 0x00, 0x81, 0x00, 0x08, 0x10, 0x00,
-    0x81, 0x00, 0x18, 0x10, 0x01, 0x8F, 0xFF, 0xF0, 0x0F, 0xFF, 0xF0, 0x10,
-    0x03, 0x02, 0x00, 0x30, 0x20, 0x03, 0x02, 0x00, 0x20, 0x20, 0x00, 0x04,
-    0x00, 0x00, 0x40, 0x80, 0x04, 0x10, 0x00, 0x7F, 0x00, 0x04, 0x10, 0x00,
-    0x81, 0x00, 0x08, 0x00, 0x00, 0x80, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00,
-    0x10, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0xFE,
-    0x40, 0xC0, 0xF0, 0x40, 0x1C, 0x20, 0x03, 0x10, 0x00, 0x88, 0x00, 0x02,
-    0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x10, 0x00, 0x08, 0x00, 0x02, 0x01,
-    0xFE, 0x80, 0x02, 0x20, 0x00, 0x88, 0x00, 0x22, 0x00, 0x08, 0x40, 0x04,
-    0x18, 0x01, 0x03, 0x81, 0xC0, 0x3F, 0x80, 0x07, 0xE1, 0xF8, 0x08, 0x02,
-    0x00, 0x80, 0x10, 0x04, 0x00, 0x80, 0x20, 0x04, 0x01, 0x00, 0x20, 0x18,
-    0x02, 0x00, 0x80, 0x10, 0x04, 0x00, 0x80, 0x3F, 0xFC, 0x01, 0x00, 0x60,
-    0x10, 0x02, 0x00, 0x80, 0x10, 0x04, 0x00, 0x80, 0x20, 0x04, 0x02, 0x00,
-    0x40, 0x10, 0x02, 0x00, 0x80, 0x10, 0x04, 0x00, 0x81, 0xF8, 0x3F, 0x00,
-    0x0F, 0xFF, 0x80, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02,
-    0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00,
-    0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00,
-    0x01, 0x00, 0x00, 0x80, 0x1F, 0xFF, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x20,
-    0x00, 0x02, 0x00, 0x00, 0x20, 0x00, 0x02, 0x00, 0x00, 0x20, 0x00, 0x04,
-    0x00, 0x00, 0x40, 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x0C, 0x04, 0x00,
-    0x80, 0x40, 0x08, 0x08, 0x00, 0x80, 0x80, 0x08, 0x08, 0x01, 0x00, 0x80,
-    0x10, 0x0C, 0x02, 0x00, 0x60, 0xC0, 0x01, 0xF0, 0x00, 0x0F, 0xE1, 0xF8,
-    0x08, 0x03, 0x00, 0x80, 0x60, 0x04, 0x06, 0x00, 0x20, 0x60, 0x01, 0x06,
-    0x00, 0x10, 0xC0, 0x00, 0x8C, 0x00, 0x04, 0xC0, 0x00, 0x2F, 0x80, 0x01,
-    0x8E, 0x00, 0x18, 0x30, 0x00, 0x80, 0xC0, 0x04, 0x06, 0x00, 0x20, 0x10,
-    0x02, 0x00, 0xC0, 0x10, 0x06, 0x00, 0x80, 0x30, 0x04, 0x00, 0x81, 0xFC,
-    0x07, 0x80, 0x07, 0xFC, 0x00, 0x10, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00,
-    0x80, 0x00, 0x20, 0x00, 0x08, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x40,
-    0x00, 0x10, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x80, 0x10, 0x20, 0x04,
-    0x08, 0x01, 0x04, 0x00, 0x81, 0x00, 0x20, 0x40, 0x0B, 0xFF, 0xFE, 0x0F,
-    0x00, 0x1E, 0x03, 0x00, 0x38, 0x05, 0x00, 0x68, 0x04, 0x80, 0x68, 0x04,
-    0x80, 0xC8, 0x04, 0x80, 0x90, 0x04, 0x81, 0x90, 0x08, 0x43, 0x10, 0x08,
-    0x42, 0x10, 0x08, 0x46, 0x10, 0x08, 0x4C, 0x20, 0x10, 0x2C, 0x20, 0x10,
-    0x38, 0x20, 0x10, 0x30, 0x20, 0x10, 0x00, 0x40, 0x10, 0x00, 0x40, 0x20,
-    0x00, 0x40, 0x20, 0x00, 0x40, 0x20, 0x00, 0x40, 0xFC, 0x07, 0xE0, 0x1F,
-    0x01, 0xFC, 0x0C, 0x00, 0x80, 0x78, 0x02, 0x01, 0xE0, 0x18, 0x04, 0x80,
-    0x60, 0x13, 0x01, 0x00, 0x4C, 0x04, 0x03, 0x18, 0x10, 0x0C, 0x60, 0xC0,
-    0x20, 0x83, 0x00, 0x83, 0x08, 0x06, 0x0C, 0x20, 0x18, 0x18, 0x80, 0x40,
-    0x66, 0x01, 0x00, 0x98, 0x04, 0x03, 0x40, 0x30, 0x0D, 0x00, 0xC0, 0x14,
-    0x02, 0x00, 0x70, 0x3F, 0x80, 0xC0, 0x00, 0xF8, 0x01, 0x83, 0x01, 0x00,
-    0xC1, 0x00, 0x21, 0x00, 0x19, 0x00, 0x04, 0x80, 0x02, 0x80, 0x01, 0x40,
-    0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x28, 0x00, 0x14, 0x00, 0x12,
-    0x00, 0x09, 0x80, 0x08, 0x40, 0x08, 0x30, 0x08, 0x0C, 0x18, 0x01, 0xF0,
-    0x00, 0x0F, 0xFE, 0x00, 0x40, 0x60, 0x20, 0x0C, 0x08, 0x01, 0x02, 0x00,
-    0x40, 0x80, 0x10, 0x40, 0x04, 0x10, 0x02, 0x04, 0x01, 0x01, 0x01, 0x80,
-    0x7F, 0x80, 0x20, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x40,
-    0x00, 0x10, 0x00, 0x04, 0x00, 0x01, 0x00, 0x03, 0xFE, 0x00, 0x00, 0xF8,
-    0x01, 0x83, 0x01, 0x00, 0xC1, 0x00, 0x21, 0x00, 0x19, 0x00, 0x05, 0x00,
-    0x02, 0x80, 0x01, 0x40, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x28,
-    0x00, 0x14, 0x00, 0x12, 0x00, 0x09, 0x80, 0x08, 0x40, 0x08, 0x30, 0x08,
-    0x0C, 0x18, 0x03, 0xF0, 0x00, 0xC0, 0x01, 0xC0, 0x01, 0xFE, 0x18, 0xC0,
-    0xF0, 0x0F, 0xFE, 0x00, 0x40, 0x60, 0x20, 0x0C, 0x08, 0x01, 0x02, 0x00,
-    0x40, 0x80, 0x10, 0x40, 0x04, 0x10, 0x02, 0x04, 0x01, 0x01, 0x01, 0x80,
-    0x7F, 0x80, 0x20, 0x60, 0x08, 0x0C, 0x02, 0x03, 0x80, 0x80, 0x60, 0x40,
-    0x18, 0x10, 0x03, 0x04, 0x00, 0xC1, 0x00, 0x1B, 0xF8, 0x07, 0x00, 0x7E,
-    0x40, 0x60, 0xF0, 0x20, 0x1C, 0x10, 0x02, 0x08, 0x00, 0x82, 0x00, 0x00,
-    0x80, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00, 0xF8, 0x00, 0x03, 0xC0, 0x00,
-    0x18, 0x00, 0x01, 0x00, 0x00, 0x44, 0x00, 0x11, 0x00, 0x04, 0x40, 0x02,
-    0x38, 0x01, 0x0B, 0x81, 0x82, 0x3F, 0x80, 0x3F, 0xFF, 0xA0, 0x20, 0x50,
-    0x10, 0x28, 0x08, 0x24, 0x08, 0x10, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00,
-    0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x10,
-    0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x1F,
-    0xFC, 0x00, 0x7E, 0x0F, 0xC4, 0x00, 0x42, 0x00, 0x10, 0x80, 0x08, 0x20,
-    0x02, 0x08, 0x00, 0x82, 0x00, 0x21, 0x00, 0x08, 0x40, 0x04, 0x10, 0x01,
-    0x04, 0x00, 0x41, 0x00, 0x10, 0x80, 0x0C, 0x20, 0x02, 0x08, 0x00, 0x82,
-    0x00, 0x60, 0x80, 0x10, 0x10, 0x08, 0x06, 0x0C, 0x00, 0x7C, 0x00, 0xFE,
-    0x03, 0xF9, 0x80, 0x02, 0x0C, 0x00, 0x30, 0x20, 0x01, 0x01, 0x00, 0x10,
-    0x08, 0x01, 0x80, 0x60, 0x08, 0x03, 0x00, 0xC0, 0x18, 0x04, 0x00, 0x40,
-    0x60, 0x02, 0x06, 0x00, 0x10, 0x20, 0x00, 0xC3, 0x00, 0x06, 0x10, 0x00,
-    0x31, 0x80, 0x00, 0x88, 0x00, 0x04, 0x80, 0x00, 0x2C, 0x00, 0x01, 0xC0,
-    0x00, 0x0E, 0x00, 0x00, 0x7F, 0x07, 0xF2, 0x00, 0x04, 0x20, 0x00, 0xC2,
-    0x00, 0x08, 0x20, 0xC0, 0x82, 0x0C, 0x18, 0x21, 0xA1, 0x02, 0x1A, 0x10,
-    0x23, 0x23, 0x04, 0x32, 0x30, 0x46, 0x22, 0x04, 0x62, 0x60, 0x4C, 0x26,
-    0x04, 0xC2, 0x40, 0x58, 0x24, 0x05, 0x82, 0xC0, 0x70, 0x28, 0x07, 0x02,
-    0x80, 0xE0, 0x38, 0x0E, 0x03, 0x00, 0x0F, 0xC1, 0xF8, 0x30, 0x03, 0x00,
-    0xC0, 0x30, 0x06, 0x03, 0x00, 0x18, 0x10, 0x00, 0xC1, 0x00, 0x03, 0x18,
-    0x00, 0x09, 0x80, 0x00, 0x78, 0x00, 0x01, 0x80, 0x00, 0x1C, 0x00, 0x01,
-    0xA0, 0x00, 0x19, 0x80, 0x01, 0x84, 0x00, 0x18, 0x30, 0x01, 0x80, 0xC0,
-    0x08, 0x06, 0x00, 0x80, 0x18, 0x08, 0x00, 0xC1, 0xF8, 0x3F, 0x80, 0x7E,
-    0x0F, 0xC4, 0x00, 0xC1, 0x80, 0x60, 0x20, 0x30, 0x0C, 0x08, 0x03, 0x04,
-    0x00, 0x43, 0x00, 0x19, 0x80, 0x02, 0xC0, 0x00, 0xE0, 0x00, 0x10, 0x00,
-    0x04, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x20, 0x00, 0x08, 0x00, 0x02,
-    0x00, 0x01, 0x00, 0x00, 0x40, 0x03, 0xFF, 0x80, 0x0F, 0xFF, 0x86, 0x00,
-    0x82, 0x00, 0x81, 0x00, 0xC1, 0x80, 0xC0, 0xC0, 0xC0, 0x00, 0xC0, 0x00,
-    0xC0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
-    0x60, 0x10, 0x60, 0x18, 0x20, 0x08, 0x20, 0x04, 0x20, 0x02, 0x30, 0x03,
-    0x1F, 0xFF, 0x80, 0x07, 0xE0, 0x80, 0x10, 0x02, 0x00, 0xC0, 0x18, 0x02,
-    0x00, 0x40, 0x18, 0x03, 0x00, 0x40, 0x08, 0x01, 0x00, 0x60, 0x0C, 0x01,
-    0x00, 0x20, 0x04, 0x01, 0x80, 0x30, 0x04, 0x00, 0x80, 0x10, 0x06, 0x00,
-    0xFC, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20,
-    0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04,
-    0x02, 0x02, 0x02, 0x02, 0x00, 0x07, 0xE0, 0x0C, 0x01, 0x00, 0x20, 0x04,
-    0x01, 0x80, 0x30, 0x04, 0x00, 0x80, 0x30, 0x06, 0x00, 0x80, 0x10, 0x02,
-    0x00, 0xC0, 0x18, 0x02, 0x00, 0x40, 0x18, 0x03, 0x00, 0x40, 0x08, 0x03,
-    0x00, 0x60, 0xF8, 0x00, 0x01, 0x00, 0x1C, 0x01, 0xB0, 0x19, 0x81, 0x86,
-    0x18, 0x11, 0x80, 0xD8, 0x03, 0x80, 0x18, 0xFF, 0xFF, 0xF8, 0xC7, 0x1C,
-    0x71, 0x80, 0x03, 0xF8, 0x0C, 0x0C, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02,
-    0x00, 0x02, 0x07, 0xFC, 0x18, 0x0C, 0x20, 0x04, 0x40, 0x04, 0x80, 0x04,
-    0x80, 0x08, 0x80, 0x38, 0xC0, 0xE8, 0x3F, 0x0F, 0x0F, 0x00, 0x00, 0x20,
-    0x00, 0x04, 0x00, 0x01, 0x80, 0x00, 0x30, 0x00, 0x04, 0x00, 0x00, 0x87,
-    0xC0, 0x13, 0x0C, 0x06, 0x80, 0x40, 0xE0, 0x0C, 0x18, 0x00, 0x82, 0x00,
-    0x10, 0xC0, 0x02, 0x10, 0x00, 0x42, 0x00, 0x08, 0x40, 0x02, 0x08, 0x00,
-    0x43, 0x80, 0x10, 0x70, 0x04, 0x09, 0x83, 0x0F, 0x1F, 0x80, 0x01, 0xFC,
-    0x83, 0x03, 0xC6, 0x00, 0xE4, 0x00, 0x22, 0x00, 0x12, 0x00, 0x01, 0x00,
-    0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x18, 0x00, 0x64,
-    0x00, 0x61, 0x81, 0xC0, 0x7F, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x30, 0x00,
-    0x0C, 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x60, 0x3F, 0x18, 0x10, 0x64,
-    0x18, 0x0D, 0x08, 0x01, 0xC2, 0x00, 0x71, 0x00, 0x0C, 0x80, 0x02, 0x20,
-    0x00, 0x88, 0x00, 0x62, 0x00, 0x18, 0x80, 0x0E, 0x20, 0x03, 0x04, 0x03,
-    0x40, 0xC1, 0xB0, 0x1F, 0x8F, 0x00, 0x01, 0xF0, 0x0E, 0x0C, 0x18, 0x06,
-    0x30, 0x02, 0x60, 0x01, 0x40, 0x01, 0xC0, 0x01, 0xFF, 0xFF, 0x80, 0x00,
-    0x80, 0x00, 0x80, 0x00, 0x40, 0x00, 0x60, 0x06, 0x30, 0x1C, 0x0F, 0xE0,
-    0x00, 0x1F, 0xE0, 0x0C, 0x00, 0x03, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00,
-    0x02, 0x00, 0x07, 0xFF, 0xC0, 0x08, 0x00, 0x01, 0x00, 0x00, 0x20, 0x00,
-    0x08, 0x00, 0x01, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x00, 0x80, 0x00,
-    0x20, 0x00, 0x04, 0x00, 0x00, 0x80, 0x00, 0x10, 0x00, 0x04, 0x00, 0x0F,
-    0xFF, 0x00, 0x03, 0xE3, 0xE1, 0x83, 0x60, 0x40, 0x38, 0x10, 0x03, 0x04,
-    0x00, 0x60, 0x80, 0x0C, 0x20, 0x01, 0x84, 0x00, 0x20, 0x80, 0x04, 0x10,
-    0x01, 0x82, 0x00, 0x30, 0x60, 0x0C, 0x04, 0x02, 0x80, 0x61, 0x90, 0x07,
-    0xC6, 0x00, 0x00, 0xC0, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x80, 0x00,
-    0x30, 0x00, 0x0C, 0x00, 0xFE, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x40, 0x00,
-    0x10, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x23, 0xE0, 0x0B,
-    0x0C, 0x05, 0x00, 0x81, 0x80, 0x20, 0x40, 0x08, 0x10, 0x02, 0x08, 0x00,
-    0x82, 0x00, 0x60, 0x80, 0x18, 0x20, 0x06, 0x10, 0x01, 0x84, 0x00, 0x61,
-    0x00, 0x30, 0x40, 0x0C, 0xFC, 0x1F, 0xC0, 0x00, 0x30, 0x00, 0x60, 0x00,
-    0xC0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x20,
-    0x00, 0x40, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00,
-    0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x08, 0x00, 0x10, 0x1F, 0xFF,
-    0x80, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x60, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x07, 0xFE, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20,
-    0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x20, 0x00,
-    0x40, 0x00, 0x80, 0x01, 0x00, 0x06, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20,
-    0x00, 0x80, 0x03, 0x00, 0x0C, 0x0F, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x60,
-    0x00, 0x10, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0xC0, 0x00, 0x30, 0xFC,
-    0x08, 0x18, 0x02, 0x0C, 0x00, 0x8C, 0x00, 0x66, 0x00, 0x1B, 0x00, 0x05,
-    0x80, 0x01, 0xB0, 0x00, 0x46, 0x00, 0x31, 0xC0, 0x0C, 0x30, 0x02, 0x06,
-    0x00, 0x80, 0xC0, 0x60, 0x30, 0xF8, 0x1F, 0x80, 0x01, 0xF8, 0x00, 0x20,
-    0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00,
-    0x20, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x20,
-    0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x04, 0x00, 0x08, 0x0F, 0xFF, 0xC0,
-    0x1C, 0xF1, 0xE0, 0xF1, 0xE3, 0x0E, 0x1C, 0x10, 0xC1, 0x81, 0x08, 0x10,
-    0x30, 0x81, 0x03, 0x18, 0x10, 0x21, 0x83, 0x02, 0x10, 0x30, 0x21, 0x02,
-    0x06, 0x10, 0x20, 0x63, 0x02, 0x04, 0x30, 0x60, 0x42, 0x06, 0x04, 0xF8,
-    0x70, 0xF0, 0x0E, 0x3E, 0x01, 0x60, 0x81, 0xC0, 0x20, 0xC0, 0x10, 0x40,
-    0x08, 0x20, 0x04, 0x30, 0x02, 0x10, 0x02, 0x08, 0x01, 0x04, 0x00, 0x82,
-    0x00, 0x42, 0x00, 0x21, 0x00, 0x20, 0x80, 0x13, 0xF0, 0x3E, 0x01, 0xF0,
-    0x06, 0x0C, 0x18, 0x06, 0x20, 0x03, 0x60, 0x01, 0x40, 0x01, 0x80, 0x01,
-    0x80, 0x01, 0x80, 0x01, 0x80, 0x02, 0x80, 0x06, 0xC0, 0x04, 0x40, 0x18,
-    0x30, 0x60, 0x1F, 0x80, 0x0F, 0x1F, 0x80, 0x16, 0x0C, 0x01, 0xC0, 0x20,
-    0x30, 0x03, 0x03, 0x00, 0x10, 0x20, 0x01, 0x02, 0x00, 0x10, 0x40, 0x01,
-    0x04, 0x00, 0x10, 0x40, 0x02, 0x06, 0x00, 0x60, 0x60, 0x04, 0x0B, 0x00,
-    0x80, 0x98, 0x30, 0x08, 0xFC, 0x00, 0x80, 0x00, 0x08, 0x00, 0x01, 0x00,
-    0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x0F, 0xF0, 0x00, 0x03,
-    0xF1, 0xE1, 0x83, 0x20, 0x40, 0x34, 0x10, 0x03, 0x84, 0x00, 0x30, 0x80,
-    0x04, 0x20, 0x00, 0x84, 0x00, 0x10, 0x80, 0x06, 0x10, 0x00, 0xC2, 0x00,
-    0x30, 0x60, 0x0E, 0x04, 0x03, 0x40, 0x60, 0xC8, 0x07, 0xE2, 0x00, 0x00,
-    0x40, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x20, 0x00, 0x08, 0x00, 0x01,
-    0x00, 0x03, 0xFC, 0x00, 0x0F, 0x87, 0xC0, 0x23, 0x08, 0x04, 0xC0, 0x00,
-    0xE0, 0x00, 0x18, 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x10, 0x00, 0x02,
-    0x00, 0x00, 0x40, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x40, 0x00, 0x08,
-    0x00, 0x3F, 0xFE, 0x00, 0x01, 0xFA, 0x0C, 0x1C, 0x20, 0x08, 0x80, 0x11,
-    0x00, 0x03, 0x00, 0x03, 0xF8, 0x00, 0x7C, 0x00, 0x0C, 0x00, 0x09, 0x00,
-    0x16, 0x00, 0x2C, 0x00, 0x9E, 0x06, 0x27, 0xF0, 0x00, 0x08, 0x00, 0x40,
-    0x02, 0x00, 0x10, 0x00, 0x80, 0x7F, 0xFC, 0x40, 0x02, 0x00, 0x10, 0x00,
-    0x80, 0x08, 0x00, 0x40, 0x02, 0x00, 0x10, 0x01, 0x00, 0x08, 0x00, 0x40,
-    0x02, 0x00, 0xD8, 0x1C, 0x3F, 0x00, 0xF0, 0x1E, 0x20, 0x04, 0x80, 0x09,
-    0x00, 0x12, 0x00, 0x24, 0x00, 0xC8, 0x01, 0x20, 0x02, 0x40, 0x04, 0x80,
-    0x09, 0x00, 0x12, 0x00, 0x64, 0x03, 0x8C, 0x1D, 0x0F, 0xC3, 0x80, 0xFE,
-    0x0F, 0xE6, 0x00, 0x20, 0x40, 0x08, 0x08, 0x03, 0x01, 0x80, 0x40, 0x30,
-    0x18, 0x06, 0x02, 0x00, 0x40, 0x80, 0x08, 0x30, 0x01, 0x84, 0x00, 0x31,
-    0x80, 0x02, 0x20, 0x00, 0x48, 0x00, 0x09, 0x00, 0x01, 0xC0, 0x00, 0xF8,
-    0x0F, 0xA0, 0x01, 0x90, 0x00, 0x88, 0x40, 0xC4, 0x30, 0x42, 0x18, 0x61,
-    0x1A, 0x20, 0x8D, 0x10, 0x4C, 0x98, 0x26, 0x48, 0x16, 0x2C, 0x0B, 0x14,
-    0x07, 0x0A, 0x03, 0x07, 0x01, 0x81, 0x00, 0x0F, 0x83, 0xE0, 0xC0, 0x18,
-    0x0C, 0x0C, 0x01, 0x83, 0x00, 0x18, 0xC0, 0x01, 0xB0, 0x00, 0x1C, 0x00,
-    0x03, 0x00, 0x00, 0xF0, 0x00, 0x63, 0x00, 0x18, 0x30, 0x06, 0x06, 0x01,
-    0x80, 0x60, 0x60, 0x06, 0x3F, 0x07, 0xE0, 0x0F, 0xC0, 0xF8, 0x30, 0x01,
-    0x00, 0x80, 0x18, 0x04, 0x00, 0x80, 0x30, 0x0C, 0x01, 0x80, 0xC0, 0x04,
-    0x04, 0x00, 0x30, 0x60, 0x01, 0x86, 0x00, 0x04, 0x20, 0x00, 0x23, 0x00,
-    0x01, 0xB0, 0x00, 0x0D, 0x00, 0x00, 0x38, 0x00, 0x01, 0x80, 0x00, 0x08,
-    0x00, 0x00, 0xC0, 0x00, 0x04, 0x00, 0x00, 0x60, 0x00, 0x06, 0x00, 0x00,
-    0x20, 0x00, 0x7F, 0xE0, 0x00, 0x1F, 0xFF, 0x10, 0x06, 0x10, 0x0C, 0x10,
-    0x18, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x06,
-    0x00, 0x0C, 0x00, 0x18, 0x04, 0x30, 0x0C, 0x60, 0x0C, 0xFF, 0xF8, 0x00,
-    0xE0, 0x20, 0x08, 0x01, 0x00, 0x20, 0x04, 0x01, 0x00, 0x20, 0x04, 0x00,
-    0x80, 0x20, 0x08, 0x0E, 0x00, 0x60, 0x04, 0x00, 0x80, 0x10, 0x02, 0x00,
-    0x40, 0x08, 0x02, 0x00, 0x40, 0x08, 0x01, 0x00, 0x18, 0x00, 0x00, 0x10,
-    0xC3, 0x08, 0x20, 0x86, 0x18, 0x41, 0x04, 0x30, 0xC2, 0x08, 0x21, 0x86,
-    0x10, 0x43, 0x0C, 0x20, 0x06, 0x00, 0x40, 0x10, 0x04, 0x01, 0x00, 0x40,
-    0x10, 0x04, 0x02, 0x00, 0x80, 0x20, 0x0C, 0x01, 0xC0, 0xC0, 0x40, 0x10,
-    0x04, 0x03, 0x00, 0x80, 0x20, 0x08, 0x02, 0x01, 0x00, 0xC0, 0xE0, 0x00,
-    0x1E, 0x02, 0x66, 0x0D, 0x86, 0x16, 0x06, 0x48, 0x07, 0x00};
-
-const GFXglyph FreeMonoOblique18pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 21, 0, 1},        // 0x20 ' '
-    {0, 7, 22, 21, 9, -21},     // 0x21 '!'
-    {20, 13, 10, 21, 7, -20},   // 0x22 '"'
-    {37, 15, 24, 21, 5, -21},   // 0x23 '#'
-    {82, 16, 26, 21, 4, -22},   // 0x24 '$'
-    {134, 16, 21, 21, 5, -20},  // 0x25 '%'
-    {176, 13, 18, 21, 5, -17},  // 0x26 '&'
-    {206, 5, 10, 21, 12, -20},  // 0x27 '''
-    {213, 8, 25, 21, 12, -20},  // 0x28 '('
-    {238, 8, 25, 21, 5, -20},   // 0x29 ')'
-    {263, 14, 11, 21, 7, -19},  // 0x2A '*'
-    {283, 15, 17, 21, 5, -17},  // 0x2B '+'
-    {315, 9, 10, 21, 4, -4},    // 0x2C ','
-    {327, 16, 1, 21, 5, -9},    // 0x2D '-'
-    {329, 5, 5, 21, 8, -4},     // 0x2E '.'
-    {333, 19, 26, 21, 3, -22},  // 0x2F '/'
-    {395, 14, 21, 21, 5, -20},  // 0x30 '0'
-    {432, 13, 21, 21, 4, -20},  // 0x31 '1'
-    {467, 17, 21, 21, 3, -20},  // 0x32 '2'
-    {512, 16, 21, 21, 3, -20},  // 0x33 '3'
-    {554, 14, 21, 21, 5, -20},  // 0x34 '4'
-    {591, 17, 21, 21, 4, -20},  // 0x35 '5'
-    {636, 16, 21, 21, 6, -20},  // 0x36 '6'
-    {678, 13, 21, 21, 8, -20},  // 0x37 '7'
-    {713, 15, 21, 21, 5, -20},  // 0x38 '8'
-    {753, 15, 21, 21, 5, -20},  // 0x39 '9'
-    {793, 7, 15, 21, 8, -14},   // 0x3A ':'
-    {807, 11, 20, 21, 4, -14},  // 0x3B ';'
-    {835, 17, 16, 21, 5, -17},  // 0x3C '<'
-    {869, 19, 6, 21, 3, -12},   // 0x3D '='
-    {884, 18, 16, 21, 3, -17},  // 0x3E '>'
-    {920, 12, 20, 21, 8, -19},  // 0x3F '?'
-    {950, 15, 23, 21, 5, -20},  // 0x40 '@'
-    {994, 21, 20, 21, 0, -19},  // 0x41 'A'
-    {1047, 18, 20, 21, 2, -19}, // 0x42 'B'
-    {1092, 18, 20, 21, 4, -19}, // 0x43 'C'
-    {1137, 18, 20, 21, 2, -19}, // 0x44 'D'
-    {1182, 20, 20, 21, 2, -19}, // 0x45 'E'
-    {1232, 20, 20, 21, 2, -19}, // 0x46 'F'
-    {1282, 18, 20, 21, 4, -19}, // 0x47 'G'
-    {1327, 21, 20, 21, 2, -19}, // 0x48 'H'
-    {1380, 17, 20, 21, 4, -19}, // 0x49 'I'
-    {1423, 20, 20, 21, 4, -19}, // 0x4A 'J'
-    {1473, 21, 20, 21, 2, -19}, // 0x4B 'K'
-    {1526, 18, 20, 21, 2, -19}, // 0x4C 'L'
-    {1571, 24, 20, 21, 1, -19}, // 0x4D 'M'
-    {1631, 22, 20, 21, 2, -19}, // 0x4E 'N'
-    {1686, 17, 20, 21, 4, -19}, // 0x4F 'O'
-    {1729, 18, 20, 21, 2, -19}, // 0x50 'P'
-    {1774, 17, 24, 21, 4, -19}, // 0x51 'Q'
-    {1825, 18, 20, 21, 2, -19}, // 0x52 'R'
-    {1870, 18, 20, 21, 3, -19}, // 0x53 'S'
-    {1915, 17, 20, 21, 5, -19}, // 0x54 'T'
-    {1958, 18, 20, 21, 5, -19}, // 0x55 'U'
-    {2003, 21, 20, 21, 4, -19}, // 0x56 'V'
-    {2056, 20, 20, 21, 4, -19}, // 0x57 'W'
-    {2106, 21, 20, 21, 2, -19}, // 0x58 'X'
-    {2159, 18, 20, 21, 5, -19}, // 0x59 'Y'
-    {2204, 17, 20, 21, 4, -19}, // 0x5A 'Z'
-    {2247, 11, 25, 21, 9, -20}, // 0x5B '['
-    {2282, 8, 27, 21, 9, -22},  // 0x5C '\'
-    {2309, 11, 25, 21, 5, -20}, // 0x5D ']'
-    {2344, 13, 9, 21, 7, -20},  // 0x5E '^'
-    {2359, 21, 1, 21, -1, 4},   // 0x5F '_'
-    {2362, 5, 5, 21, 9, -21},   // 0x60 '`'
-    {2366, 16, 15, 21, 3, -14}, // 0x61 'a'
-    {2396, 19, 21, 21, 1, -20}, // 0x62 'b'
-    {2446, 17, 15, 21, 4, -14}, // 0x63 'c'
-    {2478, 18, 21, 21, 4, -20}, // 0x64 'd'
-    {2526, 16, 15, 21, 4, -14}, // 0x65 'e'
-    {2556, 19, 21, 21, 4, -20}, // 0x66 'f'
-    {2606, 19, 22, 21, 4, -14}, // 0x67 'g'
-    {2659, 18, 21, 21, 2, -20}, // 0x68 'h'
-    {2707, 15, 22, 21, 3, -21}, // 0x69 'i'
-    {2749, 15, 29, 21, 3, -21}, // 0x6A 'j'
-    {2804, 18, 21, 21, 2, -20}, // 0x6B 'k'
-    {2852, 15, 21, 21, 3, -20}, // 0x6C 'l'
-    {2892, 20, 15, 21, 1, -14}, // 0x6D 'm'
-    {2930, 17, 15, 21, 2, -14}, // 0x6E 'n'
-    {2962, 16, 15, 21, 4, -14}, // 0x6F 'o'
-    {2992, 20, 22, 21, 0, -14}, // 0x70 'p'
-    {3047, 19, 22, 21, 4, -14}, // 0x71 'q'
-    {3100, 19, 15, 21, 3, -14}, // 0x72 'r'
-    {3136, 15, 15, 21, 4, -14}, // 0x73 's'
-    {3165, 13, 20, 21, 5, -19}, // 0x74 't'
-    {3198, 15, 15, 21, 4, -14}, // 0x75 'u'
-    {3227, 19, 15, 21, 4, -14}, // 0x76 'v'
-    {3263, 17, 15, 21, 5, -14}, // 0x77 'w'
-    {3295, 19, 15, 21, 2, -14}, // 0x78 'x'
-    {3331, 21, 22, 21, 1, -14}, // 0x79 'y'
-    {3389, 16, 15, 21, 4, -14}, // 0x7A 'z'
-    {3419, 11, 25, 21, 8, -20}, // 0x7B '{'
-    {3454, 6, 24, 21, 9, -19},  // 0x7C '|'
-    {3472, 10, 25, 21, 6, -20}, // 0x7D '}'
-    {3504, 15, 5, 21, 5, -11}}; // 0x7E '~'
-
-const GFXfont FreeMonoOblique18pt7b PROGMEM = {
-    (uint8_t *)FreeMonoOblique18pt7bBitmaps,
-    (GFXglyph *)FreeMonoOblique18pt7bGlyphs, 0x20, 0x7E, 35};
-
-// Approx. 4186 bytes

+ 0 - 642
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoOblique24pt7b.h

@@ -1,642 +0,0 @@
-const uint8_t FreeMonoOblique24pt7bBitmaps[] PROGMEM = {
-    0x01, 0xC0, 0xF0, 0x3C, 0x0E, 0x03, 0x81, 0xE0, 0x78, 0x1C, 0x07, 0x01,
-    0xC0, 0xE0, 0x38, 0x0E, 0x03, 0x00, 0xC0, 0x70, 0x1C, 0x06, 0x01, 0x80,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x0F, 0x83, 0xE0, 0xF8,
-    0x1C, 0x00, 0x7E, 0x3F, 0x7E, 0x3F, 0x7C, 0x3E, 0x7C, 0x3E, 0x7C, 0x3E,
-    0x78, 0x3C, 0xF8, 0x7C, 0xF0, 0x78, 0xF0, 0x78, 0xF0, 0x78, 0xE0, 0x70,
-    0xE0, 0x70, 0xE0, 0x70, 0xC0, 0x60, 0x00, 0x18, 0x30, 0x00, 0x61, 0x80,
-    0x01, 0x86, 0x00, 0x04, 0x18, 0x00, 0x30, 0xC0, 0x00, 0xC3, 0x00, 0x03,
-    0x0C, 0x00, 0x18, 0x30, 0x00, 0x61, 0x80, 0x01, 0x86, 0x00, 0x06, 0x18,
-    0x07, 0xFF, 0xFF, 0x1F, 0xFF, 0xFC, 0x03, 0x0C, 0x00, 0x18, 0x30, 0x00,
-    0x61, 0x80, 0x01, 0x86, 0x00, 0x06, 0x18, 0x00, 0x30, 0xC0, 0x1F, 0xFF,
-    0xF8, 0x7F, 0xFF, 0xE0, 0x18, 0x30, 0x00, 0x61, 0x80, 0x01, 0x86, 0x00,
-    0x06, 0x18, 0x00, 0x30, 0x40, 0x00, 0xC3, 0x00, 0x03, 0x0C, 0x00, 0x18,
-    0x30, 0x00, 0x61, 0x80, 0x01, 0x86, 0x00, 0x06, 0x18, 0x00, 0x00, 0x03,
-    0x00, 0x00, 0x18, 0x00, 0x00, 0x80, 0x00, 0x3F, 0x00, 0x07, 0xFD, 0x80,
-    0x70, 0x7C, 0x06, 0x00, 0xE0, 0x60, 0x02, 0x07, 0x00, 0x10, 0x30, 0x00,
-    0x01, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x70, 0x00, 0x01, 0xF0, 0x00, 0x07,
-    0xF8, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x00, 0x00, 0x18,
-    0x00, 0x00, 0xC2, 0x00, 0x06, 0x30, 0x00, 0x61, 0x80, 0x03, 0x1E, 0x00,
-    0x30, 0xFC, 0x07, 0x06, 0x7F, 0xF0, 0x00, 0xFE, 0x00, 0x01, 0x80, 0x00,
-    0x0C, 0x00, 0x00, 0x60, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x01, 0x80,
-    0x00, 0x00, 0x78, 0x00, 0x07, 0xF8, 0x00, 0x38, 0x60, 0x01, 0xC0, 0xC0,
-    0x06, 0x03, 0x00, 0x30, 0x0C, 0x00, 0xC0, 0x30, 0x03, 0x01, 0x80, 0x0C,
-    0x0E, 0x00, 0x38, 0x70, 0x00, 0x7F, 0x81, 0xC0, 0xF8, 0x3F, 0x00, 0x07,
-    0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xC0, 0x00, 0x78, 0x00, 0x01,
-    0x00, 0x78, 0x00, 0x07, 0xF8, 0x00, 0x38, 0x60, 0x01, 0x80, 0xC0, 0x06,
-    0x03, 0x00, 0x30, 0x0C, 0x00, 0xC0, 0x30, 0x03, 0x01, 0x80, 0x0C, 0x0E,
-    0x00, 0x18, 0x70, 0x00, 0x7F, 0x80, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00,
-    0x0F, 0xF8, 0x03, 0x8E, 0x00, 0xC0, 0x00, 0x38, 0x00, 0x06, 0x00, 0x00,
-    0xC0, 0x00, 0x18, 0x00, 0x01, 0x00, 0x00, 0x30, 0x00, 0x06, 0x00, 0x03,
-    0xE0, 0x01, 0xCC, 0x0E, 0x60, 0xC3, 0xD8, 0x18, 0x63, 0x03, 0x18, 0xC0,
-    0x33, 0x18, 0x06, 0xC3, 0x00, 0x70, 0x60, 0x0E, 0x0C, 0x01, 0xC0, 0xC0,
-    0x78, 0x1C, 0x3B, 0xE1, 0xFE, 0x3C, 0x1F, 0x00, 0x00, 0x7E, 0xFD, 0xF3,
-    0xE7, 0xCF, 0x3E, 0x78, 0xF1, 0xE3, 0x87, 0x0E, 0x18, 0x00, 0x00, 0x60,
-    0x18, 0x07, 0x00, 0xC0, 0x30, 0x0E, 0x01, 0x80, 0x70, 0x0C, 0x03, 0x80,
-    0x60, 0x1C, 0x03, 0x80, 0xE0, 0x1C, 0x03, 0x80, 0xF0, 0x1C, 0x03, 0x80,
-    0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x30,
-    0x06, 0x00, 0xC0, 0x1C, 0x01, 0x80, 0x30, 0x02, 0x00, 0x01, 0x80, 0x30,
-    0x06, 0x00, 0xE0, 0x0C, 0x01, 0x80, 0x30, 0x07, 0x00, 0xE0, 0x1C, 0x03,
-    0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x38, 0x07, 0x00,
-    0xE0, 0x3C, 0x07, 0x00, 0xE0, 0x38, 0x07, 0x01, 0xC0, 0x38, 0x0E, 0x01,
-    0x80, 0x70, 0x0C, 0x03, 0x00, 0xC0, 0x10, 0x00, 0x00, 0x20, 0x00, 0x18,
-    0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x30, 0x0E, 0x0C, 0x0B,
-    0xF3, 0x3E, 0x3F, 0xFE, 0x01, 0xFC, 0x00, 0x3C, 0x00, 0x1F, 0x00, 0x0E,
-    0x60, 0x07, 0x18, 0x01, 0x83, 0x00, 0xC0, 0xC0, 0x60, 0x30, 0x00, 0x00,
-    0x0C, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x07, 0x00, 0x00, 0x18,
-    0x00, 0x00, 0x60, 0x00, 0x01, 0x80, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00,
-    0x00, 0xC0, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x30, 0x00, 0x01,
-    0x80, 0x00, 0x06, 0x00, 0x00, 0x18, 0x00, 0x00, 0x60, 0x00, 0x01, 0x80,
-    0x00, 0x0C, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x03, 0x00, 0x00,
-    0x03, 0xF0, 0x7E, 0x07, 0xC0, 0xF8, 0x0F, 0x81, 0xF0, 0x1E, 0x03, 0xE0,
-    0x3C, 0x07, 0x80, 0x70, 0x0F, 0x00, 0xE0, 0x0C, 0x00, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xE0, 0x3C, 0xFF, 0xFF, 0xFF, 0xCF, 0x00, 0x00, 0x00, 0x03,
-    0x00, 0x00, 0x03, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C,
-    0x00, 0x00, 0x18, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x60,
-    0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x01, 0x80, 0x00, 0x03, 0x00,
-    0x00, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x1C, 0x00,
-    0x00, 0x18, 0x00, 0x00, 0x30, 0x00, 0x00, 0x70, 0x00, 0x00, 0x60, 0x00,
-    0x00, 0xC0, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0x03, 0x00, 0x00,
-    0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x18, 0x00, 0x00,
-    0x18, 0x00, 0x00, 0x30, 0x00, 0x00, 0x60, 0x00, 0x00, 0xE0, 0x00, 0x00,
-    0xC0, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x0F, 0xF8, 0x01,
-    0xC1, 0xC0, 0x38, 0x0E, 0x07, 0x00, 0x60, 0xE0, 0x03, 0x0C, 0x00, 0x31,
-    0x80, 0x03, 0x18, 0x00, 0x33, 0x00, 0x03, 0x30, 0x00, 0x33, 0x00, 0x03,
-    0x20, 0x00, 0x26, 0x00, 0x06, 0x60, 0x00, 0x66, 0x00, 0x06, 0x40, 0x00,
-    0x4C, 0x00, 0x0C, 0xC0, 0x00, 0xCC, 0x00, 0x0C, 0xC0, 0x01, 0x8C, 0x00,
-    0x18, 0xC0, 0x01, 0x8C, 0x00, 0x30, 0xC0, 0x07, 0x06, 0x00, 0xE0, 0x60,
-    0x1C, 0x03, 0x87, 0x80, 0x3F, 0xF0, 0x00, 0xFC, 0x00, 0x00, 0x0E, 0x00,
-    0x0F, 0x00, 0x0F, 0x80, 0x0E, 0xC0, 0x1C, 0xC0, 0x1C, 0x60, 0x1C, 0x30,
-    0x08, 0x18, 0x00, 0x1C, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01,
-    0x80, 0x01, 0xC0, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00,
-    0x18, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x01, 0x80,
-    0x00, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x1F, 0xFF, 0xFF, 0xFF, 0xF8, 0x00,
-    0x07, 0xE0, 0x00, 0x3F, 0xE0, 0x01, 0xE0, 0xE0, 0x07, 0x00, 0xE0, 0x1C,
-    0x00, 0xE0, 0x30, 0x00, 0xC0, 0xC0, 0x01, 0x81, 0x00, 0x03, 0x00, 0x00,
-    0x06, 0x00, 0x00, 0x18, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x03,
-    0x00, 0x00, 0x1C, 0x00, 0x00, 0x70, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x00,
-    0x00, 0x38, 0x00, 0x00, 0xE0, 0x00, 0x03, 0x80, 0x00, 0x0E, 0x00, 0x00,
-    0x70, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xE0,
-    0x00, 0xC3, 0x80, 0x01, 0x87, 0xFF, 0xFF, 0x0F, 0xFF, 0xFC, 0x00, 0x00,
-    0x0F, 0xC0, 0x01, 0xFF, 0xC0, 0x1E, 0x07, 0x80, 0xE0, 0x06, 0x03, 0x00,
-    0x0C, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x0C,
-    0x00, 0x00, 0x60, 0x00, 0x03, 0x80, 0x00, 0x1C, 0x00, 0x00, 0xE0, 0x00,
-    0xFE, 0x00, 0x03, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xE0, 0x00, 0x01,
-    0x80, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0,
-    0x00, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0xE3, 0x00, 0x07, 0x0E, 0x00,
-    0x38, 0x1E, 0x03, 0xC0, 0x3F, 0xFC, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x03,
-    0xE0, 0x00, 0xF8, 0x00, 0x1B, 0x00, 0x06, 0x60, 0x01, 0x8C, 0x00, 0x63,
-    0x00, 0x18, 0x60, 0x07, 0x0C, 0x00, 0xC1, 0x80, 0x30, 0x30, 0x0C, 0x0C,
-    0x03, 0x01, 0x80, 0xC0, 0x30, 0x18, 0x06, 0x06, 0x00, 0xC1, 0x80, 0x30,
-    0x60, 0x06, 0x18, 0x00, 0xC3, 0xFF, 0xFE, 0x7F, 0xFF, 0xC0, 0x00, 0xC0,
-    0x00, 0x18, 0x00, 0x03, 0x00, 0x00, 0x60, 0x00, 0x18, 0x00, 0x03, 0x00,
-    0x0F, 0xFC, 0x01, 0xFF, 0x80, 0x01, 0xFF, 0xF8, 0x0F, 0xFF, 0xC0, 0x40,
-    0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x01, 0x80, 0x00, 0x0C, 0x00, 0x00,
-    0xC0, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x01, 0xBF, 0xC0, 0x0F, 0xFF,
-    0x80, 0xF8, 0x1E, 0x02, 0x00, 0x30, 0x00, 0x01, 0xC0, 0x00, 0x06, 0x00,
-    0x00, 0x30, 0x00, 0x01, 0x80, 0x00, 0x0C, 0x00, 0x00, 0x60, 0x00, 0x06,
-    0x00, 0x00, 0x30, 0x00, 0x03, 0x80, 0x00, 0x18, 0xC0, 0x01, 0x87, 0x00,
-    0x38, 0x1E, 0x07, 0x80, 0x7F, 0xF8, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x03,
-    0xF0, 0x00, 0xFF, 0xC0, 0x1F, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x01,
-    0x80, 0x00, 0x18, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00, 0x00, 0xC0, 0x00,
-    0x0E, 0x00, 0x00, 0x60, 0x00, 0x07, 0x0F, 0x80, 0x31, 0xFF, 0x01, 0x9C,
-    0x3C, 0x0D, 0x80, 0x60, 0xD8, 0x03, 0x87, 0x80, 0x0C, 0x38, 0x00, 0x61,
-    0xC0, 0x03, 0x0C, 0x00, 0x18, 0x60, 0x00, 0xC3, 0x00, 0x0C, 0x18, 0x00,
-    0x60, 0xE0, 0x06, 0x03, 0x00, 0x30, 0x1C, 0x07, 0x00, 0x70, 0x70, 0x01,
-    0xFF, 0x00, 0x07, 0xE0, 0x00, 0x7F, 0xFF, 0xDF, 0xFF, 0xFC, 0x00, 0x0F,
-    0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00,
-    0x06, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x18, 0x00, 0x0C,
-    0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x30, 0x00, 0x0C, 0x00,
-    0x06, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x18, 0x00, 0x0C,
-    0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0x60, 0x00, 0x00, 0x3F, 0x00, 0x0F,
-    0xFC, 0x01, 0xC1, 0xE0, 0x70, 0x06, 0x06, 0x00, 0x30, 0xC0, 0x03, 0x1C,
-    0x00, 0x31, 0x80, 0x03, 0x18, 0x00, 0x31, 0x80, 0x06, 0x18, 0x00, 0xE0,
-    0xC0, 0x1C, 0x0F, 0x07, 0x80, 0x3F, 0xE0, 0x03, 0xFE, 0x00, 0xE0, 0x70,
-    0x18, 0x03, 0x83, 0x00, 0x1C, 0x60, 0x00, 0xC6, 0x00, 0x0C, 0xC0, 0x00,
-    0xCC, 0x00, 0x0C, 0xC0, 0x00, 0xCC, 0x00, 0x18, 0xC0, 0x03, 0x8E, 0x00,
-    0x70, 0x60, 0x0E, 0x07, 0x83, 0xC0, 0x3F, 0xF0, 0x00, 0xFC, 0x00, 0x00,
-    0x0F, 0x80, 0x00, 0xFF, 0x80, 0x0F, 0x07, 0x00, 0x70, 0x0E, 0x03, 0x80,
-    0x18, 0x0C, 0x00, 0x70, 0x60, 0x00, 0xC1, 0x80, 0x03, 0x0C, 0x00, 0x0C,
-    0x30, 0x00, 0x30, 0xC0, 0x01, 0xC3, 0x00, 0x0F, 0x0C, 0x00, 0x6C, 0x38,
-    0x03, 0xF0, 0x60, 0x1D, 0x81, 0xE1, 0xE6, 0x03, 0xFE, 0x18, 0x03, 0xE0,
-    0xC0, 0x00, 0x03, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, 0x00, 0x03, 0x00,
-    0x00, 0x1C, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x00, 0x00, 0x38, 0x00, 0x03,
-    0xC0, 0x00, 0x7C, 0x00, 0xFF, 0xC0, 0x01, 0xF8, 0x00, 0x00, 0x07, 0x83,
-    0xF1, 0xFC, 0x7F, 0x1F, 0x83, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x7E, 0x3F, 0x8F, 0xE3, 0xF0, 0x78,
-    0x00, 0x00, 0x3C, 0x00, 0xFC, 0x03, 0xF8, 0x07, 0xF0, 0x0F, 0xC0, 0x0F,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x7E, 0x00, 0xFC, 0x03, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x3E,
-    0x00, 0xF8, 0x01, 0xE0, 0x07, 0x80, 0x0F, 0x00, 0x3C, 0x00, 0x70, 0x01,
-    0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x3C, 0x00, 0x01,
-    0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00,
-    0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x03,
-    0xC0, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xE0, 0x00, 0x00, 0xF0, 0x00, 0x00,
-    0x70, 0x00, 0x00, 0x78, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00,
-    0x1E, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0C, 0x00, 0x3F, 0xFF, 0xFF, 0x9F,
-    0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF,
-    0x00, 0x06, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x00, 0xF0,
-    0x00, 0x00, 0x3C, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01,
-    0xC0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x1E, 0x00, 0x00,
-    0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C,
-    0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00,
-    0x00, 0x70, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x07, 0xF0, 0x3F, 0xFC, 0x78,
-    0x1E, 0xC0, 0x07, 0xC0, 0x03, 0xC0, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00,
-    0x06, 0x00, 0x06, 0x00, 0x1C, 0x00, 0x38, 0x00, 0xE0, 0x07, 0xC0, 0x07,
-    0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x7E, 0x00, 0xFE, 0x00, 0xFE,
-    0x00, 0x7C, 0x00, 0x00, 0x3F, 0x00, 0x1F, 0xF0, 0x07, 0x07, 0x01, 0xC0,
-    0x70, 0x60, 0x06, 0x1C, 0x00, 0xC3, 0x00, 0x18, 0xC0, 0x03, 0x18, 0x00,
-    0x66, 0x00, 0xFC, 0xC0, 0x7F, 0x98, 0x1C, 0x66, 0x06, 0x0C, 0xC1, 0x81,
-    0x98, 0x30, 0x33, 0x0C, 0x0E, 0x61, 0x81, 0x98, 0x30, 0x33, 0x06, 0x06,
-    0x60, 0xF0, 0xCC, 0x0F, 0xF9, 0x80, 0x7F, 0x30, 0x00, 0x06, 0x00, 0x00,
-    0xC0, 0x00, 0x18, 0x00, 0x03, 0x80, 0x00, 0x30, 0x00, 0x07, 0x00, 0x00,
-    0x70, 0x18, 0x0F, 0xFE, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0xF0, 0x00, 0x0F,
-    0xFE, 0x00, 0x00, 0x06, 0xC0, 0x00, 0x00, 0xCC, 0x00, 0x00, 0x31, 0x80,
-    0x00, 0x06, 0x30, 0x00, 0x01, 0x86, 0x00, 0x00, 0x60, 0xC0, 0x00, 0x0C,
-    0x1C, 0x00, 0x03, 0x01, 0x80, 0x00, 0x40, 0x30, 0x00, 0x18, 0x06, 0x00,
-    0x06, 0x00, 0xC0, 0x00, 0xC0, 0x18, 0x00, 0x30, 0x01, 0x80, 0x07, 0xFF,
-    0xF0, 0x01, 0xFF, 0xFE, 0x00, 0x60, 0x00, 0xC0, 0x0C, 0x00, 0x18, 0x03,
-    0x00, 0x03, 0x00, 0x40, 0x00, 0x30, 0x18, 0x00, 0x06, 0x06, 0x00, 0x00,
-    0xC0, 0xC0, 0x00, 0x18, 0xFF, 0x80, 0x7F, 0xFF, 0xF0, 0x0F, 0xFC, 0x03,
-    0xFF, 0xFC, 0x01, 0xFF, 0xFF, 0xC0, 0x06, 0x00, 0x38, 0x01, 0x80, 0x07,
-    0x00, 0xC0, 0x00, 0xC0, 0x30, 0x00, 0x30, 0x0C, 0x00, 0x0C, 0x03, 0x00,
-    0x03, 0x00, 0xC0, 0x01, 0x80, 0x60, 0x00, 0xC0, 0x18, 0x01, 0xE0, 0x07,
-    0xFF, 0xE0, 0x01, 0xFF, 0xFC, 0x00, 0xE0, 0x03, 0x80, 0x30, 0x00, 0x70,
-    0x0C, 0x00, 0x0E, 0x03, 0x00, 0x01, 0x80, 0xC0, 0x00, 0x60, 0x60, 0x00,
-    0x18, 0x18, 0x00, 0x06, 0x06, 0x00, 0x03, 0x01, 0x80, 0x01, 0xC0, 0x60,
-    0x00, 0xE0, 0x30, 0x00, 0x70, 0xFF, 0xFF, 0xF8, 0x3F, 0xFF, 0xF8, 0x00,
-    0x00, 0x0F, 0xE0, 0x00, 0x3F, 0xFC, 0xC0, 0x3C, 0x0F, 0x60, 0x78, 0x01,
-    0xF0, 0x70, 0x00, 0x70, 0x70, 0x00, 0x18, 0x30, 0x00, 0x0C, 0x30, 0x00,
-    0x06, 0x38, 0x00, 0x02, 0x18, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x0C, 0x00,
-    0x00, 0x06, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80,
-    0x00, 0x00, 0xC0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x30, 0x00, 0x00, 0x18,
-    0x00, 0x00, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x80, 0x00, 0x60,
-    0x60, 0x00, 0x60, 0x38, 0x00, 0xE0, 0x0F, 0x01, 0xE0, 0x03, 0xFF, 0xC0,
-    0x00, 0x3F, 0x00, 0x00, 0x03, 0xFF, 0xF0, 0x01, 0xFF, 0xFF, 0x00, 0x0C,
-    0x00, 0xF0, 0x03, 0x00, 0x1C, 0x01, 0xC0, 0x03, 0x80, 0x60, 0x00, 0x60,
-    0x18, 0x00, 0x1C, 0x06, 0x00, 0x03, 0x01, 0x80, 0x00, 0xC0, 0xC0, 0x00,
-    0x30, 0x30, 0x00, 0x0C, 0x0C, 0x00, 0x03, 0x03, 0x00, 0x00, 0xC0, 0xC0,
-    0x00, 0x60, 0x60, 0x00, 0x18, 0x18, 0x00, 0x06, 0x06, 0x00, 0x03, 0x01,
-    0x80, 0x00, 0xC0, 0xE0, 0x00, 0x70, 0x30, 0x00, 0x18, 0x0C, 0x00, 0x0C,
-    0x03, 0x00, 0x06, 0x00, 0xC0, 0x07, 0x00, 0x60, 0x07, 0x80, 0xFF, 0xFF,
-    0xC0, 0x3F, 0xFF, 0x80, 0x00, 0x03, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFC,
-    0x01, 0x80, 0x01, 0x80, 0x30, 0x00, 0x60, 0x0C, 0x00, 0x0C, 0x01, 0x80,
-    0x01, 0x80, 0x30, 0x00, 0x30, 0x06, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00,
-    0x30, 0x18, 0x00, 0x06, 0x03, 0x00, 0x00, 0xFF, 0xE0, 0x00, 0x1F, 0xF8,
-    0x00, 0x07, 0x03, 0x00, 0x00, 0xC0, 0x60, 0x00, 0x18, 0x0C, 0x00, 0x03,
-    0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x18, 0x00, 0x0C, 0x03, 0x00, 0x01,
-    0x80, 0x60, 0x00, 0x30, 0x0C, 0x00, 0x0C, 0x01, 0x80, 0x01, 0x80, 0x60,
-    0x00, 0x30, 0xFF, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF,
-    0xF0, 0x7F, 0xFF, 0xFF, 0x00, 0x60, 0x00, 0x30, 0x06, 0x00, 0x06, 0x00,
-    0xC0, 0x00, 0x60, 0x0C, 0x00, 0x06, 0x00, 0xC0, 0x00, 0x60, 0x0C, 0x00,
-    0x00, 0x00, 0xC0, 0xC0, 0x00, 0x18, 0x0C, 0x00, 0x01, 0x80, 0xC0, 0x00,
-    0x1F, 0xFC, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x38, 0x18, 0x00, 0x03, 0x01,
-    0x80, 0x00, 0x30, 0x18, 0x00, 0x03, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00,
-    0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x60,
-    0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xFF, 0xFC, 0x00,
-    0x0F, 0xFF, 0xC0, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x3F, 0xFC, 0xC0, 0x3C,
-    0x0F, 0xE0, 0x78, 0x01, 0xF0, 0x70, 0x00, 0x30, 0x70, 0x00, 0x18, 0x70,
-    0x00, 0x0C, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18,
-    0x00, 0x00, 0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01,
-    0x80, 0x00, 0x01, 0x80, 0x1F, 0xFE, 0xC0, 0x0F, 0xFF, 0x60, 0x00, 0x06,
-    0x30, 0x00, 0x06, 0x18, 0x00, 0x03, 0x0C, 0x00, 0x01, 0x87, 0x00, 0x00,
-    0xC1, 0x80, 0x00, 0xE0, 0xE0, 0x00, 0x60, 0x38, 0x00, 0x70, 0x0F, 0x00,
-    0xF8, 0x03, 0xFF, 0xF0, 0x00, 0x3F, 0x80, 0x00, 0x03, 0xFC, 0x1F, 0xE0,
-    0x7F, 0x83, 0xFC, 0x03, 0x00, 0x06, 0x00, 0x60, 0x01, 0x80, 0x1C, 0x00,
-    0x30, 0x03, 0x00, 0x06, 0x00, 0x60, 0x00, 0xC0, 0x0C, 0x00, 0x38, 0x01,
-    0x80, 0x06, 0x00, 0x60, 0x00, 0xC0, 0x0C, 0x00, 0x18, 0x01, 0xFF, 0xFF,
-    0x00, 0x3F, 0xFF, 0xC0, 0x06, 0x00, 0x18, 0x01, 0x80, 0x03, 0x00, 0x30,
-    0x00, 0x60, 0x06, 0x00, 0x0C, 0x00, 0xC0, 0x03, 0x00, 0x38, 0x00, 0x60,
-    0x06, 0x00, 0x0C, 0x00, 0xC0, 0x01, 0x80, 0x18, 0x00, 0x70, 0x03, 0x00,
-    0x0C, 0x00, 0xE0, 0x01, 0x80, 0xFF, 0x83, 0xFE, 0x1F, 0xF0, 0x7F, 0xC0,
-    0x07, 0xFF, 0xFC, 0x1F, 0xFF, 0xF0, 0x00, 0xC0, 0x00, 0x03, 0x00, 0x00,
-    0x0C, 0x00, 0x00, 0x70, 0x00, 0x01, 0x80, 0x00, 0x06, 0x00, 0x00, 0x18,
-    0x00, 0x00, 0x60, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x00,
-    0x00, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0x60, 0x00, 0x01,
-    0x80, 0x00, 0x06, 0x00, 0x00, 0x38, 0x00, 0x00, 0xC0, 0x00, 0x03, 0x00,
-    0x00, 0x0C, 0x00, 0x00, 0x30, 0x00, 0xFF, 0xFF, 0x83, 0xFF, 0xFE, 0x00,
-    0x00, 0x0F, 0xFF, 0xF0, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0x0C, 0x00, 0x00,
-    0x00, 0xC0, 0x00, 0x00, 0x18, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x18,
-    0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x38, 0x00, 0x00, 0x03, 0x00, 0x00,
-    0x00, 0x30, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x07,
-    0x00, 0x20, 0x00, 0x60, 0x06, 0x00, 0x06, 0x00, 0x60, 0x00, 0x60, 0x06,
-    0x00, 0x06, 0x00, 0x60, 0x00, 0xC0, 0x0C, 0x00, 0x0C, 0x00, 0xC0, 0x00,
-    0xC0, 0x0C, 0x00, 0x18, 0x00, 0xE0, 0x03, 0x00, 0x07, 0x00, 0x70, 0x00,
-    0x3C, 0x1C, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x03,
-    0xFF, 0x07, 0xF8, 0x3F, 0xF8, 0x3F, 0xC0, 0x18, 0x00, 0x70, 0x00, 0xC0,
-    0x07, 0x00, 0x0C, 0x00, 0x60, 0x00, 0x60, 0x0E, 0x00, 0x03, 0x00, 0xE0,
-    0x00, 0x18, 0x0C, 0x00, 0x00, 0xC1, 0xC0, 0x00, 0x0C, 0x1C, 0x00, 0x00,
-    0x61, 0x80, 0x00, 0x03, 0x3C, 0x00, 0x00, 0x1B, 0x78, 0x00, 0x01, 0xF0,
-    0xE0, 0x00, 0x0F, 0x03, 0x80, 0x00, 0x60, 0x0C, 0x00, 0x03, 0x00, 0x70,
-    0x00, 0x18, 0x01, 0x80, 0x01, 0x80, 0x0C, 0x00, 0x0C, 0x00, 0x60, 0x00,
-    0x60, 0x01, 0x80, 0x03, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x60, 0x01, 0x80,
-    0x03, 0x00, 0xFF, 0xE0, 0x1F, 0x87, 0xFF, 0x00, 0x7C, 0x00, 0x07, 0xFF,
-    0xE0, 0x03, 0xFF, 0xF0, 0x00, 0x06, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03,
-    0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x60, 0x00, 0x00,
-    0x70, 0x00, 0x00, 0x30, 0x00, 0x00, 0x18, 0x00, 0x00, 0x0C, 0x00, 0x00,
-    0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x80, 0x00,
-    0x00, 0xC0, 0x03, 0x00, 0x60, 0x01, 0x80, 0x60, 0x00, 0xC0, 0x30, 0x00,
-    0x60, 0x18, 0x00, 0x30, 0x0C, 0x00, 0x30, 0x0E, 0x00, 0x18, 0x06, 0x00,
-    0x0C, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0x00, 0x07, 0xF0, 0x00, 0x3F,
-    0x07, 0xF0, 0x00, 0x7F, 0x01, 0xB0, 0x00, 0xD8, 0x01, 0xB0, 0x00, 0xD8,
-    0x01, 0x98, 0x01, 0x98, 0x01, 0x98, 0x03, 0x30, 0x01, 0x98, 0x03, 0x30,
-    0x03, 0x18, 0x06, 0x30, 0x03, 0x1C, 0x0C, 0x30, 0x03, 0x0C, 0x0C, 0x30,
-    0x03, 0x0C, 0x18, 0x60, 0x07, 0x0C, 0x30, 0x60, 0x06, 0x0C, 0x30, 0x60,
-    0x06, 0x06, 0x60, 0x60, 0x06, 0x06, 0xC0, 0x60, 0x06, 0x06, 0xC0, 0xC0,
-    0x0C, 0x07, 0x80, 0xC0, 0x0C, 0x03, 0x00, 0xC0, 0x0C, 0x00, 0x00, 0xC0,
-    0x0C, 0x00, 0x01, 0xC0, 0x0C, 0x00, 0x01, 0x80, 0x18, 0x00, 0x01, 0x80,
-    0x18, 0x00, 0x01, 0x80, 0x18, 0x00, 0x01, 0x80, 0xFF, 0x80, 0x3F, 0xE0,
-    0xFF, 0x80, 0x3F, 0xE0, 0x07, 0xE0, 0x0F, 0xFC, 0x3F, 0x80, 0x3F, 0xF0,
-    0x0F, 0x00, 0x06, 0x00, 0x3C, 0x00, 0x10, 0x01, 0x98, 0x00, 0xC0, 0x06,
-    0x60, 0x03, 0x00, 0x19, 0xC0, 0x0C, 0x00, 0x63, 0x00, 0x30, 0x01, 0x0C,
-    0x01, 0x80, 0x0C, 0x18, 0x06, 0x00, 0x30, 0x60, 0x18, 0x00, 0xC1, 0xC0,
-    0x60, 0x03, 0x03, 0x01, 0x00, 0x08, 0x0C, 0x0C, 0x00, 0x60, 0x18, 0x30,
-    0x01, 0x80, 0x60, 0xC0, 0x06, 0x01, 0xC3, 0x00, 0x18, 0x03, 0x18, 0x00,
-    0xC0, 0x0C, 0x60, 0x03, 0x00, 0x19, 0x80, 0x0C, 0x00, 0x66, 0x00, 0x30,
-    0x01, 0xD8, 0x00, 0x80, 0x03, 0xC0, 0x06, 0x00, 0x0F, 0x00, 0xFF, 0xC0,
-    0x1C, 0x03, 0xFE, 0x00, 0x70, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x7F, 0xF0,
-    0x00, 0xF0, 0x78, 0x03, 0x80, 0x1C, 0x07, 0x00, 0x0E, 0x0E, 0x00, 0x06,
-    0x0C, 0x00, 0x06, 0x18, 0x00, 0x07, 0x38, 0x00, 0x03, 0x30, 0x00, 0x03,
-    0x60, 0x00, 0x03, 0x60, 0x00, 0x03, 0x60, 0x00, 0x03, 0xC0, 0x00, 0x03,
-    0xC0, 0x00, 0x03, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06,
-    0xC0, 0x00, 0x0C, 0xC0, 0x00, 0x1C, 0xC0, 0x00, 0x18, 0x60, 0x00, 0x30,
-    0x60, 0x00, 0x70, 0x70, 0x00, 0xE0, 0x38, 0x01, 0xC0, 0x1E, 0x0F, 0x00,
-    0x0F, 0xFE, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xFF, 0xFC, 0x01, 0xFF, 0xFF,
-    0xC0, 0x06, 0x00, 0x78, 0x01, 0x80, 0x06, 0x00, 0xC0, 0x01, 0xC0, 0x30,
-    0x00, 0x30, 0x0C, 0x00, 0x0C, 0x03, 0x00, 0x03, 0x00, 0xC0, 0x01, 0xC0,
-    0x60, 0x00, 0x60, 0x18, 0x00, 0x30, 0x06, 0x00, 0x18, 0x01, 0x80, 0x3C,
-    0x00, 0xFF, 0xFE, 0x00, 0x3F, 0xFC, 0x00, 0x0C, 0x00, 0x00, 0x03, 0x00,
-    0x00, 0x00, 0xC0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x18, 0x00, 0x00, 0x06,
-    0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x60, 0x00, 0x00, 0x30, 0x00, 0x00,
-    0xFF, 0xFC, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x7F,
-    0xF0, 0x00, 0xF0, 0x78, 0x03, 0x80, 0x1C, 0x07, 0x00, 0x0E, 0x0E, 0x00,
-    0x06, 0x0C, 0x00, 0x06, 0x18, 0x00, 0x03, 0x38, 0x00, 0x03, 0x30, 0x00,
-    0x03, 0x60, 0x00, 0x03, 0x60, 0x00, 0x03, 0x60, 0x00, 0x03, 0xC0, 0x00,
-    0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x06, 0xC0, 0x00, 0x06, 0xC0, 0x00,
-    0x06, 0xC0, 0x00, 0x0C, 0xC0, 0x00, 0x1C, 0xC0, 0x00, 0x18, 0x60, 0x00,
-    0x30, 0x60, 0x00, 0x70, 0x30, 0x00, 0xE0, 0x38, 0x01, 0xC0, 0x0E, 0x0F,
-    0x00, 0x07, 0xFE, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0x1F, 0xF8,
-    0x30, 0x3F, 0xFF, 0xF0, 0x78, 0x0F, 0x80, 0x07, 0xFF, 0xFC, 0x01, 0xFF,
-    0xFF, 0xC0, 0x06, 0x00, 0x78, 0x01, 0x80, 0x0E, 0x00, 0xC0, 0x01, 0xC0,
-    0x30, 0x00, 0x30, 0x0C, 0x00, 0x0C, 0x03, 0x00, 0x03, 0x00, 0xC0, 0x00,
-    0xC0, 0x60, 0x00, 0x60, 0x18, 0x00, 0x30, 0x06, 0x00, 0x38, 0x01, 0x80,
-    0x3C, 0x00, 0xFF, 0xFC, 0x00, 0x3F, 0xFC, 0x00, 0x0C, 0x07, 0x80, 0x03,
-    0x00, 0x70, 0x00, 0xC0, 0x0E, 0x00, 0x60, 0x01, 0x80, 0x18, 0x00, 0x70,
-    0x06, 0x00, 0x0C, 0x01, 0x80, 0x03, 0x80, 0x60, 0x00, 0x60, 0x30, 0x00,
-    0x1C, 0xFF, 0xE0, 0x07, 0xFF, 0xF8, 0x00, 0xF0, 0x00, 0x1F, 0xC0, 0x00,
-    0x7F, 0xF3, 0x00, 0xE0, 0x3B, 0x03, 0x80, 0x0F, 0x07, 0x00, 0x0E, 0x06,
-    0x00, 0x06, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x0C, 0x00, 0x00, 0x0C,
-    0x00, 0x00, 0x0E, 0x00, 0x00, 0x07, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00,
-    0x7F, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x70, 0x00, 0x00, 0x38, 0x00,
-    0x00, 0x18, 0x00, 0x00, 0x18, 0x20, 0x00, 0x18, 0x60, 0x00, 0x18, 0x60,
-    0x00, 0x30, 0x60, 0x00, 0x70, 0xF0, 0x00, 0xE0, 0xF8, 0x01, 0xC0, 0xDC,
-    0x07, 0x80, 0x8F, 0xFE, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0xFF, 0xFE, 0x3F,
-    0xFF, 0xFE, 0x30, 0x18, 0x06, 0x60, 0x18, 0x06, 0x60, 0x18, 0x06, 0x60,
-    0x38, 0x0C, 0x60, 0x30, 0x04, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00,
-    0x30, 0x00, 0x00, 0x70, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00,
-    0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00,
-    0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x01, 0x80, 0x00, 0x01,
-    0x80, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0xFF, 0xFE, 0x00, 0xFF,
-    0xFC, 0x00, 0x7F, 0xC0, 0xFF, 0xDF, 0xF0, 0x3F, 0xF1, 0x80, 0x00, 0x60,
-    0x60, 0x00, 0x30, 0x18, 0x00, 0x0C, 0x06, 0x00, 0x03, 0x03, 0x80, 0x00,
-    0xC0, 0xC0, 0x00, 0x30, 0x30, 0x00, 0x18, 0x0C, 0x00, 0x06, 0x03, 0x00,
-    0x01, 0x81, 0xC0, 0x00, 0x60, 0x60, 0x00, 0x18, 0x18, 0x00, 0x0C, 0x06,
-    0x00, 0x03, 0x01, 0x80, 0x00, 0xC0, 0xC0, 0x00, 0x30, 0x30, 0x00, 0x1C,
-    0x0C, 0x00, 0x06, 0x03, 0x00, 0x01, 0x80, 0xC0, 0x00, 0xC0, 0x30, 0x00,
-    0x70, 0x0E, 0x00, 0x38, 0x01, 0xC0, 0x1C, 0x00, 0x38, 0x1E, 0x00, 0x07,
-    0xFE, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFF, 0x80, 0x3F, 0xFF, 0xF0, 0x07,
-    0xFC, 0xE0, 0x00, 0x0C, 0x0C, 0x00, 0x03, 0x01, 0x80, 0x00, 0x60, 0x30,
-    0x00, 0x18, 0x06, 0x00, 0x02, 0x00, 0xC0, 0x00, 0xC0, 0x0C, 0x00, 0x30,
-    0x01, 0x80, 0x06, 0x00, 0x30, 0x01, 0x80, 0x06, 0x00, 0x60, 0x00, 0xC0,
-    0x0C, 0x00, 0x18, 0x03, 0x00, 0x01, 0x80, 0xC0, 0x00, 0x30, 0x18, 0x00,
-    0x06, 0x06, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x18, 0x30, 0x00, 0x03, 0x8C,
-    0x00, 0x00, 0x31, 0x80, 0x00, 0x06, 0x60, 0x00, 0x00, 0xD8, 0x00, 0x00,
-    0x1B, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x38, 0x00, 0x00, 0xFF, 0xC0,
-    0x7F, 0xFF, 0xF8, 0x0F, 0xF8, 0xC0, 0x00, 0x0C, 0x18, 0x00, 0x01, 0x83,
-    0x00, 0x00, 0x30, 0x60, 0x08, 0x0C, 0x0C, 0x07, 0x01, 0x81, 0x81, 0xE0,
-    0x30, 0x60, 0x2C, 0x0C, 0x0C, 0x0D, 0x81, 0x81, 0x81, 0x30, 0x30, 0x30,
-    0x66, 0x0C, 0x06, 0x08, 0xC1, 0x80, 0xC3, 0x0C, 0x30, 0x18, 0x41, 0x8C,
-    0x03, 0x18, 0x31, 0x80, 0x62, 0x06, 0x30, 0x0C, 0xC0, 0xCC, 0x03, 0x10,
-    0x19, 0x80, 0x66, 0x03, 0x30, 0x0C, 0x80, 0x6C, 0x01, 0xB0, 0x0D, 0x80,
-    0x34, 0x01, 0xB0, 0x07, 0x80, 0x3C, 0x00, 0xE0, 0x07, 0x80, 0x1C, 0x00,
-    0xF0, 0x00, 0x03, 0xF8, 0x03, 0xF8, 0x1F, 0xC0, 0x3F, 0xC0, 0x30, 0x00,
-    0x30, 0x01, 0xC0, 0x03, 0x00, 0x06, 0x00, 0x30, 0x00, 0x18, 0x03, 0x00,
-    0x00, 0xE0, 0x30, 0x00, 0x03, 0x03, 0x00, 0x00, 0x1C, 0x30, 0x00, 0x00,
-    0x63, 0x00, 0x00, 0x03, 0xB0, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x30,
-    0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x36, 0x00, 0x00, 0x03, 0x38, 0x00,
-    0x00, 0x30, 0xC0, 0x00, 0x03, 0x07, 0x00, 0x00, 0x30, 0x18, 0x00, 0x03,
-    0x00, 0x60, 0x00, 0x30, 0x03, 0x80, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00,
-    0x70, 0x03, 0x00, 0x01, 0x80, 0xFF, 0x80, 0xFF, 0x07, 0xFC, 0x07, 0xF8,
-    0x00, 0x7F, 0x80, 0x7F, 0x7F, 0x00, 0x7F, 0x1C, 0x00, 0x18, 0x0C, 0x00,
-    0x30, 0x0C, 0x00, 0x70, 0x06, 0x00, 0xE0, 0x06, 0x00, 0xC0, 0x03, 0x01,
-    0x80, 0x03, 0x03, 0x00, 0x01, 0x86, 0x00, 0x01, 0x8C, 0x00, 0x00, 0xD8,
-    0x00, 0x00, 0xF0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x60, 0x00, 0x00, 0xC0,
-    0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0,
-    0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80,
-    0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xFC, 0x00, 0x03, 0xFF, 0xFE, 0x07, 0xFF,
-    0xF8, 0x0C, 0x00, 0x30, 0x10, 0x00, 0xC0, 0x60, 0x03, 0x80, 0xC0, 0x0E,
-    0x01, 0x80, 0x38, 0x03, 0x00, 0xE0, 0x00, 0x03, 0x80, 0x00, 0x0E, 0x00,
-    0x00, 0x38, 0x00, 0x00, 0xE0, 0x00, 0x01, 0x80, 0x00, 0x06, 0x00, 0x00,
-    0x18, 0x00, 0x00, 0x60, 0x00, 0x01, 0x80, 0x00, 0x06, 0x00, 0x60, 0x18,
-    0x00, 0xC0, 0x60, 0x01, 0x81, 0x80, 0x02, 0x06, 0x00, 0x0C, 0x18, 0x00,
-    0x18, 0x60, 0x00, 0x30, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0x80, 0x01, 0xFE,
-    0x03, 0xFC, 0x06, 0x00, 0x08, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x01,
-    0x80, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x30, 0x00, 0x40, 0x01, 0x80,
-    0x03, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x60, 0x00, 0xC0, 0x01,
-    0x80, 0x03, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00, 0x80,
-    0x03, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x20, 0x00, 0xFF, 0x01,
-    0xFE, 0x00, 0xC0, 0x30, 0x0E, 0x01, 0x80, 0x60, 0x18, 0x07, 0x00, 0xC0,
-    0x30, 0x0C, 0x03, 0x80, 0x60, 0x18, 0x06, 0x00, 0xC0, 0x30, 0x0C, 0x03,
-    0x00, 0x60, 0x18, 0x06, 0x01, 0x80, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x18,
-    0x06, 0x01, 0x80, 0x60, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x04, 0x01, 0xFE,
-    0x03, 0xFC, 0x00, 0x10, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00,
-    0x04, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x03, 0x00, 0x06,
-    0x00, 0x0C, 0x00, 0x18, 0x00, 0x30, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00,
-    0x06, 0x00, 0x08, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x06,
-    0x00, 0x0C, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x01, 0x80, 0xFF, 0x01,
-    0xFE, 0x00, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x07, 0x80, 0x03, 0x60, 0x01,
-    0x8C, 0x00, 0xC3, 0x80, 0xE0, 0x60, 0x70, 0x1C, 0x38, 0x03, 0x1C, 0x00,
-    0x6E, 0x00, 0x1F, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xC3, 0x86, 0x0C, 0x18, 0x70, 0xC0, 0x00, 0x3F, 0x80, 0x0F, 0xFF, 0x80,
-    0x78, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x18, 0x00, 0x00, 0x60, 0x00,
-    0x01, 0x80, 0x00, 0x06, 0x00, 0x00, 0x38, 0x03, 0xFC, 0xC0, 0x7F, 0xFF,
-    0x07, 0xC0, 0x0C, 0x38, 0x00, 0x31, 0xC0, 0x01, 0xCE, 0x00, 0x06, 0x30,
-    0x00, 0x18, 0xC0, 0x00, 0xE3, 0x00, 0x07, 0x8E, 0x00, 0x7C, 0x1C, 0x0F,
-    0x3F, 0x3F, 0xF0, 0xFC, 0x7F, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x7C,
-    0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x30, 0x00, 0x00, 0x06, 0x00, 0x00,
-    0x00, 0xC0, 0x00, 0x00, 0x10, 0x00, 0x00, 0x06, 0x07, 0xE0, 0x00, 0xC3,
-    0xFF, 0x00, 0x19, 0xC0, 0xF0, 0x03, 0x60, 0x07, 0x00, 0xD8, 0x00, 0x60,
-    0x1E, 0x00, 0x0E, 0x03, 0x80, 0x00, 0xC0, 0x60, 0x00, 0x18, 0x0C, 0x00,
-    0x03, 0x03, 0x00, 0x00, 0x60, 0x60, 0x00, 0x0C, 0x0C, 0x00, 0x01, 0x81,
-    0x80, 0x00, 0x60, 0x70, 0x00, 0x0C, 0x0E, 0x00, 0x03, 0x01, 0xC0, 0x00,
-    0x60, 0x3C, 0x00, 0x18, 0x05, 0x80, 0x06, 0x01, 0xB8, 0x01, 0x83, 0xF3,
-    0xC1, 0xE0, 0x7E, 0x3F, 0xF8, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x3F, 0x00,
-    0x07, 0xFF, 0x30, 0x38, 0x0F, 0xC1, 0x80, 0x1F, 0x0C, 0x00, 0x18, 0x60,
-    0x00, 0x63, 0x00, 0x01, 0x9C, 0x00, 0x06, 0x60, 0x00, 0x01, 0x80, 0x00,
-    0x0C, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x0C,
-    0x00, 0x00, 0x30, 0x00, 0x00, 0xE0, 0x00, 0x01, 0x80, 0x00, 0xC7, 0x00,
-    0x0E, 0x0F, 0x01, 0xF0, 0x1F, 0xFF, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x00,
-    0x1F, 0x80, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x60, 0x00,
-    0x00, 0x30, 0x00, 0x00, 0x10, 0x00, 0x00, 0x18, 0x00, 0xFC, 0x0C, 0x01,
-    0xFF, 0x86, 0x01, 0xC0, 0xE3, 0x03, 0x80, 0x1B, 0x03, 0x80, 0x05, 0x81,
-    0x80, 0x03, 0xC1, 0x80, 0x00, 0xE1, 0x80, 0x00, 0x60, 0xC0, 0x00, 0x30,
-    0x60, 0x00, 0x18, 0x60, 0x00, 0x0C, 0x30, 0x00, 0x06, 0x18, 0x00, 0x02,
-    0x0C, 0x00, 0x03, 0x06, 0x00, 0x01, 0x83, 0x00, 0x01, 0xC1, 0xC0, 0x01,
-    0xE0, 0x60, 0x01, 0xE0, 0x38, 0x01, 0xB0, 0x0F, 0x03, 0x9F, 0x03, 0xFF,
-    0x0F, 0x80, 0x7E, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x07, 0xFF, 0x80, 0x78,
-    0x0F, 0x03, 0x80, 0x0E, 0x1C, 0x00, 0x18, 0xE0, 0x00, 0x73, 0x00, 0x00,
-    0xD8, 0x00, 0x03, 0x60, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0,
-    0x00, 0x00, 0xC0, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x38, 0x00,
-    0x00, 0x60, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x03, 0x07, 0x80, 0xF8,
-    0x0F, 0xFF, 0x80, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x00, 0xFF,
-    0xF0, 0x00, 0xF0, 0x00, 0x00, 0x70, 0x00, 0x00, 0x18, 0x00, 0x00, 0x06,
-    0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x07, 0xFF, 0xFC, 0x03,
-    0xFF, 0xFF, 0x00, 0x03, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x60, 0x00,
-    0x00, 0x18, 0x00, 0x00, 0x06, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0xC0,
-    0x00, 0x00, 0x30, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01,
-    0x80, 0x00, 0x00, 0x60, 0x00, 0x00, 0x18, 0x00, 0x00, 0x06, 0x00, 0x00,
-    0x01, 0x80, 0x00, 0x00, 0xC0, 0x00, 0x0F, 0xFF, 0xFC, 0x03, 0xFF, 0xFE,
-    0x00, 0x00, 0x7E, 0x00, 0x00, 0xFF, 0x87, 0xC1, 0xE0, 0xF3, 0xE1, 0xC0,
-    0x1B, 0x01, 0xC0, 0x07, 0x81, 0xC0, 0x03, 0xC0, 0xC0, 0x00, 0xE0, 0xC0,
-    0x00, 0x60, 0x60, 0x00, 0x30, 0x60, 0x00, 0x18, 0x30, 0x00, 0x0C, 0x18,
-    0x00, 0x06, 0x0C, 0x00, 0x06, 0x06, 0x00, 0x03, 0x03, 0x00, 0x03, 0x81,
-    0xC0, 0x01, 0xC0, 0x60, 0x01, 0xC0, 0x38, 0x03, 0x60, 0x0F, 0x07, 0x30,
-    0x03, 0xFF, 0x18, 0x00, 0x7E, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x06,
-    0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x80, 0x00, 0x01,
-    0x80, 0x00, 0x03, 0x80, 0x03, 0xFF, 0x80, 0x01, 0xFF, 0x00, 0x00, 0x07,
-    0xE0, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00,
-    0xC0, 0x00, 0x00, 0xC0, 0x00, 0x01, 0x80, 0x00, 0x01, 0x83, 0xF0, 0x01,
-    0x8F, 0xF8, 0x01, 0x98, 0x1C, 0x03, 0xB0, 0x0E, 0x03, 0x40, 0x06, 0x03,
-    0x80, 0x06, 0x03, 0x00, 0x06, 0x03, 0x00, 0x06, 0x07, 0x00, 0x06, 0x06,
-    0x00, 0x0E, 0x06, 0x00, 0x0E, 0x06, 0x00, 0x0E, 0x06, 0x00, 0x0C, 0x0C,
-    0x00, 0x0C, 0x0C, 0x00, 0x1C, 0x0C, 0x00, 0x1C, 0x0C, 0x00, 0x18, 0x0C,
-    0x00, 0x18, 0x18, 0x00, 0x18, 0xFF, 0x01, 0xFF, 0xFF, 0x01, 0xFF, 0x00,
-    0x07, 0x00, 0x00, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x1F,
-    0xF0, 0x00, 0x06, 0x00, 0x01, 0xC0, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00,
-    0xC0, 0x00, 0x18, 0x00, 0x07, 0x00, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x03,
-    0x00, 0x00, 0x60, 0x00, 0x1C, 0x00, 0x03, 0x00, 0x00, 0x60, 0x00, 0x0C,
-    0x00, 0x01, 0x80, 0x7F, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x70, 0x00,
-    0x07, 0x00, 0x00, 0x70, 0x00, 0x06, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0x03, 0xFF, 0xF0,
-    0x00, 0x03, 0x00, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00, 0x60, 0x00, 0x06,
-    0x00, 0x00, 0x60, 0x00, 0x06, 0x00, 0x00, 0xC0, 0x00, 0x0C, 0x00, 0x00,
-    0xC0, 0x00, 0x0C, 0x00, 0x01, 0xC0, 0x00, 0x18, 0x00, 0x01, 0x80, 0x00,
-    0x18, 0x00, 0x01, 0x80, 0x00, 0x38, 0x00, 0x03, 0x00, 0x00, 0x30, 0x00,
-    0x03, 0x00, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00, 0xE0, 0x00, 0x1C, 0x00,
-    0x03, 0x80, 0xFF, 0xF0, 0x0F, 0xFC, 0x00, 0x03, 0xF0, 0x00, 0x03, 0xE0,
-    0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60,
-    0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0xFF, 0x00, 0xC1,
-    0xFF, 0x00, 0x80, 0x70, 0x01, 0x80, 0xC0, 0x01, 0x83, 0x80, 0x01, 0x87,
-    0x00, 0x01, 0x8C, 0x00, 0x03, 0x38, 0x00, 0x03, 0x70, 0x00, 0x03, 0xF8,
-    0x00, 0x03, 0x9C, 0x00, 0x03, 0x0C, 0x00, 0x06, 0x0E, 0x00, 0x06, 0x07,
-    0x00, 0x06, 0x03, 0x80, 0x06, 0x01, 0x80, 0x04, 0x00, 0xC0, 0x0C, 0x00,
-    0xE0, 0xFC, 0x03, 0xFE, 0xFC, 0x03, 0xFC, 0x01, 0xFF, 0x00, 0x3F, 0xE0,
-    0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0x60, 0x00, 0x0C, 0x00, 0x01, 0x80,
-    0x00, 0x70, 0x00, 0x0C, 0x00, 0x01, 0x80, 0x00, 0x30, 0x00, 0x06, 0x00,
-    0x01, 0x80, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00, 0xC0, 0x00, 0x18, 0x00,
-    0x06, 0x00, 0x00, 0xC0, 0x00, 0x18, 0x00, 0x03, 0x00, 0x00, 0xE0, 0x00,
-    0x18, 0x00, 0x03, 0x00, 0x00, 0x60, 0x00, 0x0C, 0x03, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xF0, 0x00, 0x1E, 0x07, 0x81, 0xE7, 0xE1, 0xF8, 0x3D, 0x8E, 0xE3,
-    0x81, 0xE0, 0xF8, 0x30, 0x38, 0x1E, 0x06, 0x06, 0x03, 0x80, 0xC1, 0x80,
-    0x60, 0x18, 0x30, 0x0C, 0x03, 0x06, 0x01, 0x80, 0x60, 0xC0, 0x30, 0x08,
-    0x18, 0x0C, 0x03, 0x06, 0x01, 0x80, 0x60, 0xC0, 0x30, 0x0C, 0x18, 0x06,
-    0x01, 0x83, 0x00, 0x80, 0x60, 0x40, 0x30, 0x0C, 0x18, 0x06, 0x01, 0x83,
-    0x00, 0xC0, 0x30, 0x60, 0x18, 0x06, 0x7F, 0x03, 0xC1, 0xFF, 0xE0, 0xF8,
-    0x3E, 0x00, 0x03, 0xE0, 0x1F, 0x1F, 0xF0, 0x3E, 0x60, 0x70, 0x0F, 0x80,
-    0x70, 0x3C, 0x00, 0x60, 0x70, 0x00, 0xC0, 0xC0, 0x01, 0x81, 0x80, 0x03,
-    0x07, 0x00, 0x06, 0x0C, 0x00, 0x1C, 0x18, 0x00, 0x30, 0x30, 0x00, 0x60,
-    0x60, 0x00, 0xC1, 0xC0, 0x01, 0x83, 0x00, 0x06, 0x06, 0x00, 0x0C, 0x0C,
-    0x00, 0x18, 0x18, 0x00, 0x30, 0x70, 0x00, 0x67, 0xFC, 0x07, 0xFF, 0xF0,
-    0x0F, 0xE0, 0x00, 0x3F, 0x00, 0x07, 0xFF, 0x00, 0x3C, 0x0F, 0x01, 0xC0,
-    0x1C, 0x0C, 0x00, 0x38, 0x60, 0x00, 0x63, 0x00, 0x00, 0xDC, 0x00, 0x03,
-    0x60, 0x00, 0x0D, 0x80, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0,
-    0x00, 0x1B, 0x00, 0x00, 0x6C, 0x00, 0x03, 0xB0, 0x00, 0x0C, 0x60, 0x00,
-    0x61, 0xC0, 0x03, 0x03, 0x80, 0x38, 0x0F, 0x03, 0xC0, 0x0F, 0xFE, 0x00,
-    0x0F, 0xC0, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x1F, 0x8F, 0xFE, 0x00, 0xFC,
-    0xE0, 0x78, 0x00, 0xCC, 0x00, 0xE0, 0x06, 0xC0, 0x03, 0x00, 0x3C, 0x00,
-    0x1C, 0x01, 0xC0, 0x00, 0x60, 0x0C, 0x00, 0x03, 0x00, 0xE0, 0x00, 0x18,
-    0x06, 0x00, 0x00, 0xC0, 0x30, 0x00, 0x06, 0x01, 0x80, 0x00, 0x30, 0x0C,
-    0x00, 0x03, 0x00, 0xE0, 0x00, 0x18, 0x07, 0x00, 0x01, 0x80, 0x3C, 0x00,
-    0x1C, 0x01, 0xE0, 0x01, 0xC0, 0x0D, 0x80, 0x1C, 0x00, 0xCF, 0x03, 0xC0,
-    0x06, 0x3F, 0xF8, 0x00, 0x30, 0x7F, 0x00, 0x01, 0x80, 0x00, 0x00, 0x0C,
-    0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x30, 0x00,
-    0x00, 0x01, 0x80, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x07, 0xFF, 0x00, 0x00,
-    0x7F, 0xF8, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7F, 0xE1, 0xF0, 0x78,
-    0x1C, 0xFC, 0x38, 0x01, 0xB0, 0x1C, 0x00, 0x2C, 0x0E, 0x00, 0x0F, 0x03,
-    0x00, 0x01, 0xC1, 0x80, 0x00, 0x60, 0x60, 0x00, 0x18, 0x30, 0x00, 0x06,
-    0x0C, 0x00, 0x01, 0x83, 0x00, 0x00, 0x60, 0xC0, 0x00, 0x30, 0x30, 0x00,
-    0x0C, 0x0C, 0x00, 0x07, 0x03, 0x80, 0x03, 0xC0, 0x60, 0x01, 0xB0, 0x1C,
-    0x00, 0xD8, 0x03, 0xC0, 0xE6, 0x00, 0x7F, 0xF1, 0x80, 0x07, 0xE0, 0x60,
-    0x00, 0x00, 0x18, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
-    0xC0, 0x00, 0x00, 0x30, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x06, 0x00, 0x00,
-    0x7F, 0xF8, 0x00, 0x1F, 0xFE, 0x00, 0x07, 0xF0, 0x3E, 0x03, 0xF8, 0x7F,
-    0xC0, 0x18, 0xF0, 0x60, 0x0C, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x03, 0xC0,
-    0x00, 0x03, 0xC0, 0x00, 0x01, 0x80, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x60,
-    0x00, 0x00, 0x30, 0x00, 0x00, 0x38, 0x00, 0x00, 0x18, 0x00, 0x00, 0x0C,
-    0x00, 0x00, 0x06, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x80, 0x00, 0x01,
-    0x80, 0x00, 0x3F, 0xFF, 0xF0, 0x1F, 0xFF, 0xF0, 0x00, 0x00, 0x3F, 0x00,
-    0x0F, 0xFE, 0xC0, 0xF0, 0x3E, 0x0E, 0x00, 0x70, 0xE0, 0x01, 0x06, 0x00,
-    0x08, 0x30, 0x00, 0x41, 0xC0, 0x00, 0x07, 0x00, 0x00, 0x3F, 0xF0, 0x00,
-    0x3F, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x07, 0x00, 0x00, 0x18, 0x00, 0x00,
-    0xCC, 0x00, 0x06, 0x60, 0x00, 0x33, 0x00, 0x03, 0x3C, 0x00, 0x71, 0xF8,
-    0x0F, 0x0D, 0xFF, 0xF0, 0x01, 0xFC, 0x00, 0x03, 0x00, 0x03, 0x00, 0x01,
-    0x80, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x70, 0x03, 0xFF, 0xFF, 0xFF, 0xFF,
-    0x0C, 0x00, 0x06, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0xC0,
-    0x00, 0xE0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x0E,
-    0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x03, 0x38, 0x0F,
-    0x9F, 0xFF, 0x03, 0xF8, 0x00, 0xFC, 0x03, 0xFF, 0xE0, 0x1F, 0xC6, 0x00,
-    0x0C, 0x30, 0x00, 0x61, 0x80, 0x03, 0x0C, 0x00, 0x18, 0x60, 0x01, 0x86,
-    0x00, 0x0C, 0x30, 0x00, 0x61, 0x80, 0x03, 0x0C, 0x00, 0x18, 0x60, 0x01,
-    0x86, 0x00, 0x0C, 0x30, 0x00, 0x61, 0x80, 0x03, 0x0C, 0x00, 0x38, 0x60,
-    0x07, 0x83, 0x80, 0x6C, 0x1E, 0x1E, 0x7C, 0x7F, 0xE3, 0xE0, 0xF8, 0x00,
-    0x00, 0x7F, 0xC0, 0xFF, 0xFF, 0xF0, 0x3F, 0xF1, 0xC0, 0x00, 0xC0, 0x30,
-    0x00, 0x60, 0x0C, 0x00, 0x18, 0x03, 0x00, 0x0C, 0x00, 0xE0, 0x06, 0x00,
-    0x18, 0x01, 0x80, 0x06, 0x00, 0xC0, 0x01, 0x80, 0x30, 0x00, 0x60, 0x18,
-    0x00, 0x0C, 0x0C, 0x00, 0x03, 0x03, 0x00, 0x00, 0xC1, 0x80, 0x00, 0x30,
-    0xC0, 0x00, 0x06, 0x30, 0x00, 0x01, 0x98, 0x00, 0x00, 0x6C, 0x00, 0x00,
-    0x1F, 0x00, 0x00, 0x07, 0x80, 0x00, 0xFE, 0x00, 0x7F, 0xFF, 0x00, 0x3F,
-    0xCC, 0x00, 0x03, 0x06, 0x00, 0x01, 0x83, 0x00, 0x01, 0x81, 0x81, 0x80,
-    0xC0, 0xC1, 0xE0, 0x60, 0x60, 0xF0, 0x60, 0x30, 0xD8, 0x30, 0x18, 0x6C,
-    0x30, 0x0C, 0x66, 0x18, 0x06, 0x33, 0x18, 0x03, 0x31, 0x8C, 0x01, 0x98,
-    0x66, 0x00, 0xD8, 0x36, 0x00, 0x6C, 0x1B, 0x00, 0x3C, 0x0F, 0x00, 0x1E,
-    0x07, 0x80, 0x0E, 0x03, 0x80, 0x07, 0x01, 0xC0, 0x00, 0x07, 0xF0, 0x3F,
-    0xC3, 0xFC, 0x0F, 0xF0, 0x38, 0x00, 0x60, 0x07, 0x00, 0x70, 0x00, 0xE0,
-    0x38, 0x00, 0x18, 0x1C, 0x00, 0x03, 0x0C, 0x00, 0x00, 0xEE, 0x00, 0x00,
-    0x1F, 0x00, 0x00, 0x03, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x01, 0xDC, 0x00,
-    0x00, 0xE3, 0x80, 0x00, 0x70, 0x70, 0x00, 0x38, 0x0E, 0x00, 0x18, 0x01,
-    0x80, 0x1C, 0x00, 0x30, 0x0E, 0x00, 0x0E, 0x0F, 0xF0, 0x3F, 0xE3, 0xFC,
-    0x0F, 0xF8, 0x03, 0xF8, 0x07, 0xF8, 0x3F, 0xC0, 0x3F, 0xC0, 0x60, 0x00,
-    0x30, 0x01, 0x80, 0x01, 0x80, 0x0C, 0x00, 0x18, 0x00, 0x60, 0x01, 0x80,
-    0x03, 0x80, 0x0C, 0x00, 0x0C, 0x00, 0xC0, 0x00, 0x60, 0x0C, 0x00, 0x03,
-    0x00, 0x60, 0x00, 0x0C, 0x06, 0x00, 0x00, 0x60, 0x60, 0x00, 0x03, 0x06,
-    0x00, 0x00, 0x1C, 0x30, 0x00, 0x00, 0x63, 0x00, 0x00, 0x03, 0x30, 0x00,
-    0x00, 0x19, 0x80, 0x00, 0x00, 0x78, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00,
-    0x1C, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x60,
-    0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x03, 0x00, 0x00,
-    0x00, 0x30, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x0F, 0xFF, 0x80, 0x00, 0x00,
-    0x07, 0xFF, 0xF8, 0x3F, 0xFF, 0xC3, 0x00, 0x0C, 0x18, 0x00, 0xC0, 0xC0,
-    0x0C, 0x00, 0x00, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x1C, 0x00,
-    0x01, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0xC0, 0x00, 0x18, 0x00, 0x01, 0x80,
-    0x00, 0x18, 0x00, 0x01, 0x80, 0x0C, 0x18, 0x00, 0x61, 0x80, 0x02, 0x1F,
-    0xFF, 0xF0, 0xFF, 0xFF, 0x80, 0x00, 0x0E, 0x00, 0x7C, 0x01, 0xC0, 0x03,
-    0x00, 0x0C, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x01, 0xC0, 0x03, 0x00,
-    0x06, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x60, 0x01, 0xC0, 0x0F, 0x00, 0xF8,
-    0x01, 0xF0, 0x00, 0x30, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x03, 0x80,
-    0x06, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x30, 0x00, 0xE0, 0x01, 0x80, 0x03,
-    0x00, 0x06, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x0E, 0x00, 0x01, 0x80, 0xC0,
-    0x60, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x06, 0x03, 0x01, 0x80, 0xC0, 0x40,
-    0x60, 0x30, 0x18, 0x0C, 0x0C, 0x06, 0x03, 0x01, 0x80, 0xC0, 0xC0, 0x60,
-    0x30, 0x18, 0x08, 0x0C, 0x06, 0x03, 0x01, 0x80, 0x80, 0xC0, 0x60, 0x30,
-    0x00, 0x01, 0xC0, 0x03, 0xC0, 0x01, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x06,
-    0x00, 0x0C, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00,
-    0x0C, 0x00, 0x18, 0x00, 0x38, 0x00, 0x38, 0x00, 0x3E, 0x00, 0x7C, 0x03,
-    0xC0, 0x0E, 0x00, 0x18, 0x00, 0x70, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00,
-    0x06, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x03, 0x00, 0x0E,
-    0x00, 0xF8, 0x01, 0xC0, 0x00, 0x0F, 0x00, 0x01, 0xFC, 0x03, 0x70, 0xE0,
-    0x7E, 0x07, 0x1E, 0xC0, 0x3F, 0x80, 0x01, 0xE0};
-
-const GFXglyph FreeMonoOblique24pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 28, 0, 1},         // 0x20 ' '
-    {0, 10, 30, 28, 12, -28},    // 0x21 '!'
-    {38, 16, 14, 28, 10, -28},   // 0x22 '"'
-    {66, 22, 32, 28, 6, -29},    // 0x23 '#'
-    {154, 21, 33, 28, 6, -29},   // 0x24 '$'
-    {241, 22, 29, 28, 6, -27},   // 0x25 '%'
-    {321, 19, 25, 28, 6, -23},   // 0x26 '&'
-    {381, 7, 14, 28, 16, -28},   // 0x27 '''
-    {394, 11, 34, 28, 16, -27},  // 0x28 '('
-    {441, 11, 34, 28, 7, -27},   // 0x29 ')'
-    {488, 18, 17, 28, 10, -28},  // 0x2A '*'
-    {527, 22, 22, 28, 6, -23},   // 0x2B '+'
-    {588, 12, 14, 28, 5, -6},    // 0x2C ','
-    {609, 22, 2, 28, 6, -13},    // 0x2D '-'
-    {615, 7, 6, 28, 11, -4},     // 0x2E '.'
-    {621, 24, 35, 28, 5, -30},   // 0x2F '/'
-    {726, 20, 30, 28, 7, -28},   // 0x30 '0'
-    {801, 17, 29, 28, 6, -28},   // 0x31 '1'
-    {863, 23, 29, 28, 4, -28},   // 0x32 '2'
-    {947, 22, 30, 28, 5, -28},   // 0x33 '3'
-    {1030, 19, 28, 28, 7, -27},  // 0x34 '4'
-    {1097, 21, 29, 28, 6, -27},  // 0x35 '5'
-    {1174, 21, 30, 28, 9, -28},  // 0x36 '6'
-    {1253, 18, 28, 28, 10, -27}, // 0x37 '7'
-    {1316, 20, 30, 28, 7, -28},  // 0x38 '8'
-    {1391, 22, 30, 28, 6, -28},  // 0x39 '9'
-    {1474, 10, 21, 28, 11, -19}, // 0x3A ':'
-    {1501, 15, 27, 28, 5, -19},  // 0x3B ';'
-    {1552, 23, 22, 28, 6, -23},  // 0x3C '<'
-    {1616, 25, 9, 28, 4, -17},   // 0x3D '='
-    {1645, 24, 22, 28, 4, -23},  // 0x3E '>'
-    {1711, 16, 28, 28, 11, -26}, // 0x3F '?'
-    {1767, 19, 32, 28, 7, -28},  // 0x40 '@'
-    {1843, 27, 26, 28, 1, -25},  // 0x41 'A'
-    {1931, 26, 26, 28, 2, -25},  // 0x42 'B'
-    {2016, 25, 28, 28, 5, -26},  // 0x43 'C'
-    {2104, 26, 26, 28, 2, -25},  // 0x44 'D'
-    {2189, 27, 26, 28, 2, -25},  // 0x45 'E'
-    {2277, 28, 26, 28, 2, -25},  // 0x46 'F'
-    {2368, 25, 28, 28, 5, -26},  // 0x47 'G'
-    {2456, 27, 26, 28, 3, -25},  // 0x48 'H'
-    {2544, 22, 26, 28, 6, -25},  // 0x49 'I'
-    {2616, 28, 27, 28, 5, -25},  // 0x4A 'J'
-    {2711, 29, 26, 28, 2, -25},  // 0x4B 'K'
-    {2806, 25, 26, 28, 3, -25},  // 0x4C 'L'
-    {2888, 32, 26, 28, 1, -25},  // 0x4D 'M'
-    {2992, 30, 26, 28, 2, -25},  // 0x4E 'N'
-    {3090, 24, 28, 28, 5, -26},  // 0x4F 'O'
-    {3174, 26, 26, 28, 2, -25},  // 0x50 'P'
-    {3259, 24, 32, 28, 5, -26},  // 0x51 'Q'
-    {3355, 26, 26, 28, 2, -25},  // 0x52 'R'
-    {3440, 24, 28, 28, 5, -26},  // 0x53 'S'
-    {3524, 24, 26, 28, 7, -25},  // 0x54 'T'
-    {3602, 26, 27, 28, 6, -25},  // 0x55 'U'
-    {3690, 27, 26, 28, 6, -25},  // 0x56 'V'
-    {3778, 27, 26, 28, 6, -25},  // 0x57 'W'
-    {3866, 29, 26, 28, 2, -25},  // 0x58 'X'
-    {3961, 24, 26, 28, 7, -25},  // 0x59 'Y'
-    {4039, 23, 26, 28, 5, -25},  // 0x5A 'Z'
-    {4114, 15, 34, 28, 12, -27}, // 0x5B '['
-    {4178, 10, 35, 28, 12, -30}, // 0x5C '\'
-    {4222, 15, 34, 28, 6, -27},  // 0x5D ']'
-    {4286, 18, 12, 28, 9, -28},  // 0x5E '^'
-    {4313, 28, 2, 28, -1, 5},    // 0x5F '_'
-    {4320, 6, 7, 28, 13, -29},   // 0x60 '`'
-    {4326, 22, 22, 28, 4, -20},  // 0x61 'a'
-    {4387, 27, 29, 28, 1, -27},  // 0x62 'b'
-    {4485, 22, 22, 28, 6, -20},  // 0x63 'c'
-    {4546, 25, 29, 28, 5, -27},  // 0x64 'd'
-    {4637, 22, 22, 28, 5, -20},  // 0x65 'e'
-    {4698, 26, 28, 28, 5, -27},  // 0x66 'f'
-    {4789, 25, 30, 28, 5, -20},  // 0x67 'g'
-    {4883, 24, 28, 28, 3, -27},  // 0x68 'h'
-    {4967, 19, 29, 28, 5, -28},  // 0x69 'i'
-    {5036, 20, 38, 28, 4, -28},  // 0x6A 'j'
-    {5131, 24, 28, 28, 3, -27},  // 0x6B 'k'
-    {5215, 19, 28, 28, 5, -27},  // 0x6C 'l'
-    {5282, 27, 21, 28, 1, -20},  // 0x6D 'm'
-    {5353, 23, 21, 28, 3, -20},  // 0x6E 'n'
-    {5414, 22, 22, 28, 5, -20},  // 0x6F 'o'
-    {5475, 29, 30, 28, -1, -20}, // 0x70 'p'
-    {5584, 26, 30, 28, 5, -20},  // 0x71 'q'
-    {5682, 25, 20, 28, 4, -19},  // 0x72 'r'
-    {5745, 21, 22, 28, 5, -20},  // 0x73 's'
-    {5803, 17, 27, 28, 7, -25},  // 0x74 't'
-    {5861, 21, 21, 28, 6, -19},  // 0x75 'u'
-    {5917, 26, 20, 28, 5, -19},  // 0x76 'v'
-    {5982, 25, 20, 28, 6, -19},  // 0x77 'w'
-    {6045, 26, 20, 28, 3, -19},  // 0x78 'x'
-    {6110, 29, 29, 28, 1, -19},  // 0x79 'y'
-    {6216, 21, 20, 28, 5, -19},  // 0x7A 'z'
-    {6269, 15, 34, 28, 10, -27}, // 0x7B '{'
-    {6333, 9, 35, 28, 12, -28},  // 0x7C '|'
-    {6373, 15, 34, 28, 8, -27},  // 0x7D '}'
-    {6437, 20, 6, 28, 7, -15}};  // 0x7E '~'
-
-const GFXfont FreeMonoOblique24pt7b PROGMEM = {
-    (uint8_t *)FreeMonoOblique24pt7bBitmaps,
-    (GFXglyph *)FreeMonoOblique24pt7bGlyphs, 0x20, 0x7E, 47};
-
-// Approx. 7124 bytes

+ 0 - 186
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeMonoOblique9pt7b.h

@@ -1,186 +0,0 @@
-const uint8_t FreeMonoOblique9pt7bBitmaps[] PROGMEM = {
-    0x11, 0x22, 0x24, 0x40, 0x00, 0xC0, 0xDE, 0xE5, 0x29, 0x00, 0x09, 0x05,
-    0x02, 0x82, 0x47, 0xF8, 0xA0, 0x51, 0xFE, 0x28, 0x14, 0x0A, 0x09, 0x00,
-    0x08, 0x1D, 0x23, 0x40, 0x70, 0x1C, 0x02, 0x82, 0x84, 0x78, 0x20, 0x20,
-    0x1C, 0x11, 0x08, 0x83, 0x80, 0x18, 0x71, 0xC0, 0x1C, 0x11, 0x08, 0x83,
-    0x80, 0x1E, 0x60, 0x81, 0x03, 0x0A, 0x65, 0x46, 0x88, 0xE8, 0xFA, 0x80,
-    0x12, 0x24, 0x48, 0x88, 0x88, 0x88, 0x80, 0x01, 0x11, 0x11, 0x11, 0x22,
-    0x44, 0x80, 0x10, 0x22, 0x5B, 0xC3, 0x0A, 0x22, 0x00, 0x04, 0x02, 0x02,
-    0x1F, 0xF0, 0x80, 0x40, 0x20, 0x00, 0x36, 0x4C, 0x80, 0xFF, 0x80, 0xF0,
-    0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10,
-    0x08, 0x08, 0x00, 0x1C, 0x45, 0x0A, 0x18, 0x30, 0x61, 0x42, 0x85, 0x11,
-    0xC0, 0x04, 0x38, 0x90, 0x20, 0x81, 0x02, 0x04, 0x08, 0x23, 0xF8, 0x07,
-    0x04, 0xC4, 0x20, 0x10, 0x10, 0x30, 0x20, 0x20, 0x60, 0x40, 0x3F, 0x80,
-    0x0F, 0x00, 0x40, 0x20, 0x20, 0x60, 0x18, 0x04, 0x02, 0x01, 0x43, 0x1E,
-    0x00, 0x03, 0x05, 0x0A, 0x12, 0x22, 0x22, 0x42, 0x7F, 0x04, 0x04, 0x1E,
-    0x1F, 0x88, 0x08, 0x05, 0xC3, 0x30, 0x08, 0x04, 0x02, 0x02, 0x42, 0x1E,
-    0x00, 0x07, 0x18, 0x20, 0x40, 0x5C, 0xA6, 0xC2, 0x82, 0x82, 0xC4, 0x78,
-    0xFF, 0x04, 0x10, 0x20, 0x82, 0x04, 0x10, 0x20, 0x81, 0x00, 0x1E, 0x23,
-    0x41, 0x41, 0x62, 0x1C, 0x66, 0x82, 0x82, 0x84, 0x78, 0x1E, 0x23, 0x41,
-    0x41, 0x43, 0x65, 0x3A, 0x02, 0x04, 0x18, 0xE0, 0x6C, 0x00, 0x36, 0x18,
-    0xC0, 0x00, 0x19, 0x8C, 0xC4, 0x00, 0x01, 0x83, 0x06, 0x0C, 0x06, 0x00,
-    0x80, 0x30, 0x04, 0xFF, 0x80, 0x00, 0x1F, 0xF0, 0x20, 0x0C, 0x01, 0x00,
-    0x60, 0x20, 0x60, 0xC1, 0x80, 0x3D, 0x8E, 0x08, 0x10, 0xC6, 0x08, 0x00,
-    0x01, 0x80, 0x1C, 0x45, 0x0A, 0x79, 0x34, 0x69, 0x4E, 0x81, 0x03, 0x03,
-    0xC0, 0x0F, 0x00, 0x60, 0x12, 0x02, 0x40, 0x88, 0x21, 0x07, 0xE1, 0x04,
-    0x20, 0x5E, 0x3C, 0x3F, 0x84, 0x11, 0x04, 0x82, 0x3F, 0x88, 0x32, 0x04,
-    0x81, 0x60, 0xBF, 0xC0, 0x1E, 0x98, 0xD0, 0x28, 0x08, 0x04, 0x02, 0x01,
-    0x00, 0x41, 0x1F, 0x00, 0x3F, 0x0C, 0x22, 0x04, 0x81, 0x20, 0x48, 0x12,
-    0x09, 0x02, 0x43, 0x3F, 0x00, 0x3F, 0xC4, 0x11, 0x00, 0x88, 0x3E, 0x08,
-    0x82, 0x00, 0x82, 0x60, 0xBF, 0xE0, 0x3F, 0xE2, 0x08, 0x40, 0x11, 0x03,
-    0xE0, 0x44, 0x08, 0x01, 0x00, 0x60, 0x1F, 0x00, 0x1E, 0x98, 0xD0, 0x08,
-    0x08, 0x04, 0x7A, 0x05, 0x02, 0x41, 0x1F, 0x00, 0x3D, 0xE2, 0x18, 0x42,
-    0x08, 0x43, 0xF8, 0x41, 0x08, 0x21, 0x08, 0x21, 0x1E, 0xF0, 0x3F, 0x82,
-    0x02, 0x01, 0x00, 0x80, 0x40, 0x20, 0x20, 0x10, 0x7F, 0x00, 0x0F, 0xE0,
-    0x20, 0x04, 0x00, 0x80, 0x10, 0x02, 0x20, 0x84, 0x10, 0x84, 0x0F, 0x00,
-    0x3C, 0xE2, 0x10, 0x44, 0x11, 0x02, 0xC0, 0x64, 0x08, 0x81, 0x08, 0x61,
-    0x1E, 0x38, 0x3E, 0x02, 0x00, 0x80, 0x20, 0x10, 0x04, 0x01, 0x04, 0x42,
-    0x10, 0xBF, 0xE0, 0x38, 0x38, 0xC3, 0x05, 0x28, 0x29, 0x42, 0x52, 0x13,
-    0x10, 0x99, 0x84, 0x08, 0x20, 0x47, 0x8F, 0x00, 0x70, 0xE6, 0x08, 0xA1,
-    0x14, 0x22, 0x48, 0x49, 0x11, 0x22, 0x14, 0x43, 0x1E, 0x20, 0x1E, 0x18,
-    0x90, 0x28, 0x18, 0x0C, 0x06, 0x05, 0x02, 0x46, 0x1E, 0x00, 0x3F, 0x84,
-    0x31, 0x04, 0x81, 0x20, 0x8F, 0xC2, 0x00, 0x80, 0x60, 0x3E, 0x00, 0x1E,
-    0x18, 0x90, 0x28, 0x18, 0x0C, 0x06, 0x05, 0x02, 0x46, 0x1E, 0x08, 0x0F,
-    0x44, 0x60, 0x3F, 0x84, 0x31, 0x04, 0x81, 0x20, 0x8F, 0xC2, 0x10, 0x84,
-    0x60, 0xBC, 0x10, 0x0F, 0x88, 0xC8, 0x24, 0x01, 0x80, 0x38, 0x05, 0x02,
-    0xC2, 0x5E, 0x00, 0xFF, 0xC4, 0x44, 0x02, 0x01, 0x00, 0x80, 0x40, 0x60,
-    0x20, 0x7E, 0x00, 0xF1, 0xD0, 0x24, 0x09, 0x02, 0x41, 0xA0, 0x48, 0x12,
-    0x04, 0xC6, 0x1F, 0x00, 0xF1, 0xE8, 0x11, 0x02, 0x20, 0x82, 0x20, 0x44,
-    0x09, 0x01, 0x40, 0x28, 0x02, 0x00, 0xF1, 0xE8, 0x09, 0x12, 0x26, 0x45,
-    0x48, 0xAA, 0x29, 0x45, 0x28, 0xC6, 0x18, 0xC0, 0x38, 0xE2, 0x08, 0x26,
-    0x05, 0x00, 0x40, 0x18, 0x04, 0x81, 0x08, 0x41, 0x1C, 0x70, 0xE3, 0xA0,
-    0x90, 0x84, 0x81, 0x80, 0x80, 0x40, 0x20, 0x20, 0x7E, 0x00, 0x3F, 0x90,
-    0x88, 0x80, 0x80, 0x80, 0x80, 0x80, 0x82, 0x82, 0x7F, 0x00, 0x39, 0x08,
-    0x44, 0x21, 0x08, 0x42, 0x21, 0x0E, 0x00, 0x88, 0x44, 0x44, 0x22, 0x22,
-    0x11, 0x11, 0x38, 0x42, 0x11, 0x08, 0x42, 0x10, 0x84, 0x2E, 0x00, 0x08,
-    0x28, 0x92, 0x18, 0x20, 0xFF, 0xC0, 0xA4, 0x3E, 0x00, 0x80, 0x47, 0xA4,
-    0x34, 0x12, 0x18, 0xF7, 0x38, 0x01, 0x00, 0x40, 0x09, 0xE1, 0xC6, 0x20,
-    0x44, 0x09, 0x01, 0x30, 0x46, 0x13, 0xBC, 0x00, 0x1F, 0x48, 0x74, 0x0A,
-    0x00, 0x80, 0x20, 0x0C, 0x18, 0xF8, 0x01, 0x80, 0x40, 0x23, 0x96, 0x32,
-    0x0A, 0x05, 0x02, 0x81, 0x61, 0x1F, 0xE0, 0x1F, 0x30, 0xD0, 0x3F, 0xF8,
-    0x04, 0x01, 0x00, 0x7C, 0x07, 0xC3, 0x00, 0x80, 0xFE, 0x10, 0x04, 0x01,
-    0x00, 0x40, 0x10, 0x08, 0x0F, 0xE0, 0x1D, 0xD8, 0xC4, 0x12, 0x04, 0x82,
-    0x20, 0x8C, 0x61, 0xE8, 0x02, 0x01, 0x07, 0x80, 0x30, 0x04, 0x01, 0x00,
-    0x5C, 0x38, 0x88, 0x22, 0x08, 0x82, 0x21, 0x18, 0x4F, 0x3C, 0x04, 0x04,
-    0x00, 0x38, 0x08, 0x08, 0x08, 0x08, 0x10, 0x10, 0xFF, 0x01, 0x00, 0x80,
-    0x03, 0xF0, 0x10, 0x08, 0x04, 0x02, 0x02, 0x01, 0x00, 0x80, 0x40, 0x47,
-    0xC0, 0x38, 0x08, 0x04, 0x02, 0x71, 0x20, 0xA0, 0xA0, 0x68, 0x24, 0x11,
-    0x38, 0xE0, 0x3C, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x10, 0x10,
-    0xFF, 0x3E, 0xE2, 0x64, 0x88, 0x91, 0x12, 0x24, 0x48, 0x91, 0x17, 0x33,
-    0x37, 0x14, 0x4C, 0x24, 0x12, 0x09, 0x08, 0x85, 0xE3, 0x1E, 0x10, 0x90,
-    0x30, 0x18, 0x0C, 0x0B, 0x08, 0x78, 0x33, 0xC3, 0x8C, 0x40, 0x88, 0x12,
-    0x02, 0x60, 0x8C, 0x31, 0x78, 0x20, 0x08, 0x03, 0xE0, 0x00, 0x1C, 0xD8,
-    0xC4, 0x12, 0x04, 0x81, 0x20, 0x4C, 0x21, 0xF8, 0x02, 0x00, 0x81, 0xF0,
-    0x73, 0x8E, 0x04, 0x04, 0x02, 0x01, 0x00, 0x81, 0xFC, 0x1F, 0x61, 0x40,
-    0x3C, 0x03, 0x81, 0x82, 0xFC, 0x10, 0x63, 0xF9, 0x02, 0x04, 0x10, 0x20,
-    0x40, 0x7C, 0xE3, 0x10, 0x90, 0x48, 0x24, 0x22, 0x11, 0x18, 0xF6, 0xF3,
-    0xD0, 0x44, 0x10, 0x88, 0x24, 0x09, 0x02, 0x80, 0x40, 0xE1, 0xD0, 0x24,
-    0x91, 0x24, 0x55, 0x19, 0x86, 0x61, 0x10, 0x39, 0xC4, 0x20, 0xB0, 0x30,
-    0x0C, 0x04, 0x86, 0x13, 0x8E, 0x3C, 0x71, 0x04, 0x10, 0x40, 0x88, 0x09,
-    0x00, 0xA0, 0x06, 0x00, 0x40, 0x08, 0x01, 0x00, 0xFC, 0x00, 0x7F, 0x42,
-    0x04, 0x08, 0x10, 0x20, 0x42, 0xFE, 0x0C, 0x41, 0x04, 0x30, 0x8C, 0x08,
-    0x21, 0x04, 0x10, 0x60, 0x24, 0x94, 0x92, 0x52, 0x40, 0x18, 0x20, 0x82,
-    0x10, 0x40, 0xC4, 0x10, 0x82, 0x08, 0xC0, 0x61, 0x24, 0x30};
-
-const GFXglyph FreeMonoOblique9pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 11, 0, 1},       // 0x20 ' '
-    {0, 4, 11, 11, 4, -10},    // 0x21 '!'
-    {6, 5, 5, 11, 4, -10},     // 0x22 '"'
-    {10, 9, 12, 11, 2, -10},   // 0x23 '#'
-    {24, 8, 12, 11, 3, -10},   // 0x24 '$'
-    {36, 9, 11, 11, 2, -10},   // 0x25 '%'
-    {49, 7, 10, 11, 2, -9},    // 0x26 '&'
-    {58, 2, 5, 11, 6, -10},    // 0x27 '''
-    {60, 4, 13, 11, 6, -10},   // 0x28 '('
-    {67, 4, 13, 11, 3, -10},   // 0x29 ')'
-    {74, 7, 7, 11, 4, -10},    // 0x2A '*'
-    {81, 9, 8, 11, 2, -8},     // 0x2B '+'
-    {90, 4, 5, 11, 2, -1},     // 0x2C ','
-    {93, 9, 1, 11, 2, -5},     // 0x2D '-'
-    {95, 2, 2, 11, 4, -1},     // 0x2E '.'
-    {96, 9, 13, 11, 2, -11},   // 0x2F '/'
-    {111, 7, 11, 11, 3, -10},  // 0x30 '0'
-    {121, 7, 11, 11, 2, -10},  // 0x31 '1'
-    {131, 9, 11, 11, 2, -10},  // 0x32 '2'
-    {144, 9, 11, 11, 2, -10},  // 0x33 '3'
-    {157, 8, 11, 11, 2, -10},  // 0x34 '4'
-    {168, 9, 11, 11, 2, -10},  // 0x35 '5'
-    {181, 8, 11, 11, 3, -10},  // 0x36 '6'
-    {192, 7, 11, 11, 4, -10},  // 0x37 '7'
-    {202, 8, 11, 11, 3, -10},  // 0x38 '8'
-    {213, 8, 11, 11, 3, -10},  // 0x39 '9'
-    {224, 3, 8, 11, 4, -7},    // 0x3A ':'
-    {227, 5, 11, 11, 2, -7},   // 0x3B ';'
-    {234, 9, 8, 11, 2, -8},    // 0x3C '<'
-    {243, 9, 4, 11, 2, -6},    // 0x3D '='
-    {248, 9, 8, 11, 2, -8},    // 0x3E '>'
-    {257, 7, 10, 11, 4, -9},   // 0x3F '?'
-    {266, 7, 12, 11, 3, -10},  // 0x40 '@'
-    {277, 11, 10, 11, 0, -9},  // 0x41 'A'
-    {291, 10, 10, 11, 1, -9},  // 0x42 'B'
-    {304, 9, 10, 11, 2, -9},   // 0x43 'C'
-    {316, 10, 10, 11, 1, -9},  // 0x44 'D'
-    {329, 10, 10, 11, 1, -9},  // 0x45 'E'
-    {342, 11, 10, 11, 1, -9},  // 0x46 'F'
-    {356, 9, 10, 11, 2, -9},   // 0x47 'G'
-    {368, 11, 10, 11, 1, -9},  // 0x48 'H'
-    {382, 9, 10, 11, 2, -9},   // 0x49 'I'
-    {394, 11, 10, 11, 2, -9},  // 0x4A 'J'
-    {408, 11, 10, 11, 1, -9},  // 0x4B 'K'
-    {422, 10, 10, 11, 1, -9},  // 0x4C 'L'
-    {435, 13, 10, 11, 0, -9},  // 0x4D 'M'
-    {452, 11, 10, 11, 1, -9},  // 0x4E 'N'
-    {466, 9, 10, 11, 2, -9},   // 0x4F 'O'
-    {478, 10, 10, 11, 1, -9},  // 0x50 'P'
-    {491, 9, 13, 11, 2, -9},   // 0x51 'Q'
-    {506, 10, 10, 11, 1, -9},  // 0x52 'R'
-    {519, 9, 10, 11, 2, -9},   // 0x53 'S'
-    {531, 9, 10, 11, 3, -9},   // 0x54 'T'
-    {543, 10, 10, 11, 2, -9},  // 0x55 'U'
-    {556, 11, 10, 11, 2, -9},  // 0x56 'V'
-    {570, 11, 10, 11, 2, -9},  // 0x57 'W'
-    {584, 11, 10, 11, 1, -9},  // 0x58 'X'
-    {598, 9, 10, 11, 3, -9},   // 0x59 'Y'
-    {610, 9, 10, 11, 2, -9},   // 0x5A 'Z'
-    {622, 5, 13, 11, 5, -10},  // 0x5B '['
-    {631, 4, 14, 11, 4, -11},  // 0x5C '\'
-    {638, 5, 13, 11, 2, -10},  // 0x5D ']'
-    {647, 7, 5, 11, 3, -10},   // 0x5E '^'
-    {652, 11, 1, 11, 0, 2},    // 0x5F '_'
-    {654, 2, 3, 11, 5, -11},   // 0x60 '`'
-    {655, 9, 8, 11, 2, -7},    // 0x61 'a'
-    {664, 11, 11, 11, 0, -10}, // 0x62 'b'
-    {680, 10, 8, 11, 2, -7},   // 0x63 'c'
-    {690, 9, 11, 11, 2, -10},  // 0x64 'd'
-    {703, 9, 8, 11, 2, -7},    // 0x65 'e'
-    {712, 10, 11, 11, 2, -10}, // 0x66 'f'
-    {726, 10, 11, 11, 2, -7},  // 0x67 'g'
-    {740, 10, 11, 11, 1, -10}, // 0x68 'h'
-    {754, 8, 11, 11, 2, -10},  // 0x69 'i'
-    {765, 9, 14, 11, 1, -10},  // 0x6A 'j'
-    {781, 9, 11, 11, 1, -10},  // 0x6B 'k'
-    {794, 8, 11, 11, 2, -10},  // 0x6C 'l'
-    {805, 11, 8, 11, 0, -7},   // 0x6D 'm'
-    {816, 9, 8, 11, 1, -7},    // 0x6E 'n'
-    {825, 9, 8, 11, 2, -7},    // 0x6F 'o'
-    {834, 11, 11, 11, 0, -7},  // 0x70 'p'
-    {850, 10, 11, 11, 2, -7},  // 0x71 'q'
-    {864, 9, 8, 11, 2, -7},    // 0x72 'r'
-    {873, 8, 8, 11, 2, -7},    // 0x73 's'
-    {881, 7, 10, 11, 2, -9},   // 0x74 't'
-    {890, 9, 8, 11, 2, -7},    // 0x75 'u'
-    {899, 10, 8, 11, 2, -7},   // 0x76 'v'
-    {909, 10, 8, 11, 2, -7},   // 0x77 'w'
-    {919, 10, 8, 11, 1, -7},   // 0x78 'x'
-    {929, 12, 11, 11, 0, -7},  // 0x79 'y'
-    {946, 8, 8, 11, 2, -7},    // 0x7A 'z'
-    {954, 6, 13, 11, 4, -10},  // 0x7B '{'
-    {964, 3, 12, 11, 5, -9},   // 0x7C '|'
-    {969, 6, 13, 11, 3, -10},  // 0x7D '}'
-    {979, 7, 3, 11, 3, -6}};   // 0x7E '~'
-
-const GFXfont FreeMonoOblique9pt7b PROGMEM = {
-    (uint8_t *)FreeMonoOblique9pt7bBitmaps,
-    (GFXglyph *)FreeMonoOblique9pt7bGlyphs, 0x20, 0x7E, 18};
-
-// Approx. 1654 bytes

+ 0 - 269
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeSans12pt7b.h

@@ -1,269 +0,0 @@
-const uint8_t FreeSans12pt7bBitmaps[] PROGMEM = {
-    0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0xCF, 0x3C, 0xF3, 0x8A, 0x20, 0x06, 0x30,
-    0x31, 0x03, 0x18, 0x18, 0xC7, 0xFF, 0xBF, 0xFC, 0x31, 0x03, 0x18, 0x18,
-    0xC7, 0xFF, 0xBF, 0xFC, 0x31, 0x01, 0x18, 0x18, 0xC0, 0xC6, 0x06, 0x30,
-    0x04, 0x03, 0xE1, 0xFF, 0x72, 0x6C, 0x47, 0x88, 0xF1, 0x07, 0x20, 0x7E,
-    0x03, 0xF0, 0x17, 0x02, 0x3C, 0x47, 0x88, 0xF1, 0x1B, 0x26, 0x7F, 0xC3,
-    0xE0, 0x10, 0x02, 0x00, 0x00, 0x06, 0x03, 0xC0, 0x40, 0x7E, 0x0C, 0x0E,
-    0x70, 0x80, 0xC3, 0x18, 0x0C, 0x31, 0x00, 0xE7, 0x30, 0x07, 0xE6, 0x00,
-    0x3C, 0x40, 0x00, 0x0C, 0x7C, 0x00, 0x8F, 0xE0, 0x19, 0xC7, 0x01, 0x18,
-    0x30, 0x31, 0x83, 0x02, 0x1C, 0x70, 0x40, 0xFE, 0x04, 0x07, 0xC0, 0x0F,
-    0x00, 0x7E, 0x03, 0x9C, 0x0C, 0x30, 0x30, 0xC0, 0xE7, 0x01, 0xF8, 0x03,
-    0x80, 0x3E, 0x01, 0xCC, 0x6E, 0x19, 0xB0, 0x7C, 0xC0, 0xF3, 0x03, 0xCE,
-    0x1F, 0x9F, 0xE6, 0x1E, 0x1C, 0xFF, 0xA0, 0x08, 0x8C, 0x66, 0x31, 0x98,
-    0xC6, 0x31, 0x8C, 0x63, 0x08, 0x63, 0x08, 0x61, 0x0C, 0x20, 0x82, 0x18,
-    0xC3, 0x18, 0xC3, 0x18, 0xC6, 0x31, 0x8C, 0x62, 0x31, 0x88, 0xC4, 0x62,
-    0x00, 0x10, 0x23, 0x5B, 0xE3, 0x8D, 0x91, 0x00, 0x0C, 0x03, 0x00, 0xC0,
-    0x30, 0xFF, 0xFF, 0xF0, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0xF5, 0x60,
-    0xFF, 0xF0, 0xF0, 0x02, 0x0C, 0x10, 0x20, 0xC1, 0x02, 0x0C, 0x10, 0x20,
-    0xC1, 0x02, 0x0C, 0x10, 0x20, 0xC1, 0x00, 0x1F, 0x07, 0xF1, 0xC7, 0x30,
-    0x6E, 0x0F, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C,
-    0x0E, 0xC1, 0x9C, 0x71, 0xFC, 0x1F, 0x00, 0x08, 0xCF, 0xFF, 0x8C, 0x63,
-    0x18, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0x1F, 0x0F, 0xF9, 0x87, 0x60, 0x7C,
-    0x06, 0x00, 0xC0, 0x18, 0x07, 0x01, 0xC0, 0xF0, 0x78, 0x1C, 0x06, 0x00,
-    0x80, 0x30, 0x07, 0xFF, 0xFF, 0xE0, 0x3F, 0x0F, 0xF3, 0x87, 0x60, 0x6C,
-    0x0C, 0x01, 0x80, 0x70, 0x7C, 0x0F, 0x80, 0x18, 0x01, 0x80, 0x3C, 0x07,
-    0x80, 0xD8, 0x73, 0xFC, 0x1F, 0x00, 0x01, 0x80, 0x70, 0x0E, 0x03, 0xC0,
-    0xD8, 0x1B, 0x06, 0x61, 0x8C, 0x21, 0x8C, 0x33, 0x06, 0x7F, 0xFF, 0xFE,
-    0x03, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x3F, 0xCF, 0xF9, 0x80, 0x30, 0x06,
-    0x00, 0xDE, 0x1F, 0xE7, 0x0E, 0x00, 0xE0, 0x0C, 0x01, 0x80, 0x30, 0x07,
-    0x81, 0xF8, 0x73, 0xFC, 0x1F, 0x00, 0x0F, 0x07, 0xF9, 0xC3, 0x30, 0x74,
-    0x01, 0x80, 0x33, 0xC7, 0xFE, 0xF0, 0xDC, 0x1F, 0x01, 0xE0, 0x3C, 0x06,
-    0xC1, 0xDC, 0x71, 0xFC, 0x1F, 0x00, 0xFF, 0xFF, 0xFC, 0x01, 0x00, 0x60,
-    0x18, 0x02, 0x00, 0xC0, 0x30, 0x06, 0x01, 0x80, 0x30, 0x04, 0x01, 0x80,
-    0x30, 0x06, 0x01, 0x80, 0x30, 0x00, 0x1F, 0x07, 0xF1, 0xC7, 0x30, 0x66,
-    0x0C, 0xC1, 0x8C, 0x61, 0xFC, 0x3F, 0x8E, 0x3B, 0x01, 0xE0, 0x3C, 0x07,
-    0x80, 0xD8, 0x31, 0xFC, 0x1F, 0x00, 0x1F, 0x07, 0xF1, 0xC7, 0x70, 0x6C,
-    0x07, 0x80, 0xF0, 0x1E, 0x07, 0x61, 0xEF, 0xFC, 0x79, 0x80, 0x30, 0x05,
-    0x81, 0x98, 0x73, 0xFC, 0x1E, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0xF0, 0x00,
-    0x0F, 0x56, 0x00, 0x00, 0x07, 0x01, 0xE0, 0xF8, 0x3C, 0x0F, 0x00, 0xE0,
-    0x07, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x01, 0xFF, 0xFF, 0xFF, 0x00,
-    0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x0E, 0x00, 0x78, 0x01, 0xF0, 0x07,
-    0xC0, 0x0F, 0x00, 0x70, 0x1E, 0x0F, 0x03, 0xC0, 0xF0, 0x08, 0x00, 0x1F,
-    0x1F, 0xEE, 0x1B, 0x03, 0xC0, 0xC0, 0x30, 0x0C, 0x06, 0x03, 0x81, 0xC0,
-    0xE0, 0x30, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0xFE,
-    0x00, 0x0F, 0xFE, 0x00, 0xF0, 0x3E, 0x07, 0x00, 0x3C, 0x38, 0x00, 0x30,
-    0xC1, 0xE0, 0x66, 0x0F, 0xD9, 0xD8, 0x61, 0xC3, 0xC3, 0x07, 0x0F, 0x1C,
-    0x1C, 0x3C, 0x60, 0x60, 0xF1, 0x81, 0x83, 0xC6, 0x06, 0x1B, 0x18, 0x38,
-    0xEE, 0x71, 0xE7, 0x18, 0xFD, 0xF8, 0x71, 0xE7, 0xC0, 0xE0, 0x00, 0x01,
-    0xE0, 0x00, 0x01, 0xFF, 0xC0, 0x01, 0xFC, 0x00, 0x03, 0xC0, 0x03, 0xC0,
-    0x03, 0xC0, 0x07, 0xE0, 0x06, 0x60, 0x06, 0x60, 0x0E, 0x70, 0x0C, 0x30,
-    0x0C, 0x30, 0x1C, 0x38, 0x18, 0x18, 0x1F, 0xF8, 0x3F, 0xFC, 0x30, 0x1C,
-    0x30, 0x0C, 0x70, 0x0E, 0x60, 0x06, 0x60, 0x06, 0xFF, 0xC7, 0xFF, 0x30,
-    0x19, 0x80, 0x6C, 0x03, 0x60, 0x1B, 0x00, 0xD8, 0x0C, 0xFF, 0xC7, 0xFF,
-    0x30, 0x0D, 0x80, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x06, 0xFF, 0xF7,
-    0xFE, 0x00, 0x07, 0xE0, 0x3F, 0xF0, 0xE0, 0x73, 0x80, 0x66, 0x00, 0x6C,
-    0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x06, 0x00,
-    0x06, 0x00, 0x6C, 0x00, 0xDC, 0x03, 0x1E, 0x0E, 0x1F, 0xF8, 0x0F, 0xC0,
-    0xFF, 0x83, 0xFF, 0x8C, 0x07, 0x30, 0x0E, 0xC0, 0x1B, 0x00, 0x7C, 0x00,
-    0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x1F, 0x00,
-    0x6C, 0x03, 0xB0, 0x1C, 0xFF, 0xE3, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xC0,
-    0x0C, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0xFF, 0xEF, 0xFE, 0xC0,
-    0x0C, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xFF, 0xDF,
-    0xFB, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18, 0x00,
-    0x07, 0xF0, 0x1F, 0xFC, 0x3C, 0x1E, 0x70, 0x06, 0x60, 0x03, 0xE0, 0x00,
-    0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x7F, 0xC0, 0x7F, 0xC0, 0x03, 0xC0, 0x03,
-    0x60, 0x03, 0x60, 0x07, 0x30, 0x0F, 0x3C, 0x1F, 0x1F, 0xFB, 0x07, 0xE1,
-    0xC0, 0x1E, 0x00, 0xF0, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x0F, 0x00, 0x78,
-    0x03, 0xFF, 0xFF, 0xFF, 0xF0, 0x07, 0x80, 0x3C, 0x01, 0xE0, 0x0F, 0x00,
-    0x78, 0x03, 0xC0, 0x1E, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x01,
-    0x80, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x80, 0xC0, 0x60,
-    0x3C, 0x1E, 0x0F, 0x07, 0xC7, 0x7F, 0x1F, 0x00, 0xC0, 0x3B, 0x01, 0xCC,
-    0x0E, 0x30, 0x70, 0xC3, 0x83, 0x1C, 0x0C, 0xE0, 0x33, 0x80, 0xDE, 0x03,
-    0xDC, 0x0E, 0x38, 0x30, 0x60, 0xC1, 0xC3, 0x03, 0x8C, 0x06, 0x30, 0x1C,
-    0xC0, 0x3B, 0x00, 0x60, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x0C,
-    0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00,
-    0xFF, 0xFF, 0xF0, 0xE0, 0x07, 0xE0, 0x07, 0xF0, 0x0F, 0xF0, 0x0F, 0xD0,
-    0x0F, 0xD8, 0x1B, 0xD8, 0x1B, 0xD8, 0x1B, 0xCC, 0x33, 0xCC, 0x33, 0xCC,
-    0x33, 0xC6, 0x63, 0xC6, 0x63, 0xC6, 0x63, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3,
-    0xC3, 0xC1, 0x83, 0xE0, 0x1F, 0x00, 0xFC, 0x07, 0xE0, 0x3D, 0x81, 0xEE,
-    0x0F, 0x30, 0x79, 0xC3, 0xC6, 0x1E, 0x18, 0xF0, 0xE7, 0x83, 0x3C, 0x1D,
-    0xE0, 0x6F, 0x01, 0xF8, 0x0F, 0xC0, 0x3E, 0x01, 0xC0, 0x03, 0xE0, 0x0F,
-    0xFC, 0x0F, 0x07, 0x86, 0x00, 0xC6, 0x00, 0x33, 0x00, 0x1B, 0x00, 0x07,
-    0x80, 0x03, 0xC0, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x36, 0x00,
-    0x33, 0x00, 0x18, 0xC0, 0x18, 0x78, 0x3C, 0x1F, 0xFC, 0x03, 0xF8, 0x00,
-    0xFF, 0x8F, 0xFE, 0xC0, 0x6C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x07,
-    0xFF, 0xEF, 0xFC, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00,
-    0xC0, 0x0C, 0x00, 0x03, 0xE0, 0x0F, 0xFC, 0x0F, 0x07, 0x86, 0x00, 0xC6,
-    0x00, 0x33, 0x00, 0x1B, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x01, 0xE0, 0x00,
-    0xF0, 0x00, 0x78, 0x00, 0x36, 0x00, 0x33, 0x01, 0x98, 0xC0, 0xFC, 0x78,
-    0x3C, 0x1F, 0xFF, 0x03, 0xF9, 0x80, 0x00, 0x40, 0xFF, 0xC3, 0xFF, 0xCC,
-    0x03, 0xB0, 0x06, 0xC0, 0x1B, 0x00, 0x6C, 0x01, 0xB0, 0x0C, 0xFF, 0xE3,
-    0xFF, 0xCC, 0x03, 0xB0, 0x06, 0xC0, 0x1B, 0x00, 0x6C, 0x01, 0xB0, 0x06,
-    0xC0, 0x1B, 0x00, 0x70, 0x0F, 0xE0, 0x7F, 0xC3, 0x83, 0x9C, 0x07, 0x60,
-    0x0D, 0x80, 0x06, 0x00, 0x1E, 0x00, 0x3F, 0x80, 0x3F, 0xC0, 0x0F, 0x80,
-    0x07, 0xC0, 0x0F, 0x00, 0x3E, 0x00, 0xDE, 0x0E, 0x3F, 0xF0, 0x3F, 0x80,
-    0xFF, 0xFF, 0xFF, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60,
-    0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60,
-    0x06, 0x00, 0x60, 0xC0, 0x1E, 0x00, 0xF0, 0x07, 0x80, 0x3C, 0x01, 0xE0,
-    0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1E, 0x00, 0xF0, 0x07, 0x80, 0x3C, 0x01,
-    0xE0, 0x0F, 0x80, 0xEE, 0x0E, 0x3F, 0xE0, 0x7C, 0x00, 0x60, 0x06, 0xC0,
-    0x1D, 0xC0, 0x31, 0x80, 0x63, 0x01, 0xC7, 0x03, 0x06, 0x06, 0x0C, 0x1C,
-    0x1C, 0x30, 0x18, 0x60, 0x31, 0xC0, 0x73, 0x00, 0x66, 0x00, 0xDC, 0x01,
-    0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x00, 0xE0, 0x30, 0x1D, 0x80, 0xE0,
-    0x76, 0x07, 0x81, 0xD8, 0x1E, 0x06, 0x70, 0x7C, 0x18, 0xC1, 0xB0, 0xE3,
-    0x0C, 0xC3, 0x8C, 0x33, 0x0C, 0x38, 0xC6, 0x30, 0x67, 0x18, 0xC1, 0x98,
-    0x67, 0x06, 0x61, 0xD8, 0x1D, 0x83, 0x60, 0x3C, 0x0D, 0x80, 0xF0, 0x3E,
-    0x03, 0xC0, 0x70, 0x0F, 0x01, 0xC0, 0x18, 0x07, 0x00, 0x70, 0x0E, 0x60,
-    0x38, 0xE0, 0x60, 0xE1, 0xC0, 0xC3, 0x01, 0xCC, 0x01, 0xF8, 0x01, 0xE0,
-    0x03, 0x80, 0x07, 0x80, 0x1F, 0x00, 0x33, 0x00, 0xE7, 0x03, 0x86, 0x06,
-    0x0E, 0x1C, 0x0E, 0x70, 0x0C, 0xC0, 0x1C, 0x60, 0x06, 0x70, 0x0E, 0x30,
-    0x1C, 0x38, 0x18, 0x1C, 0x38, 0x0C, 0x30, 0x0E, 0x70, 0x06, 0x60, 0x03,
-    0xC0, 0x03, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
-    0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xFF, 0xFF, 0xC0, 0x0E,
-    0x00, 0xE0, 0x0E, 0x00, 0x60, 0x07, 0x00, 0x70, 0x07, 0x00, 0x30, 0x03,
-    0x80, 0x38, 0x03, 0x80, 0x18, 0x01, 0xC0, 0x1C, 0x00, 0xFF, 0xFF, 0xFF,
-    0xC0, 0xFF, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCF,
-    0xF0, 0x81, 0x81, 0x02, 0x06, 0x04, 0x08, 0x18, 0x10, 0x20, 0x60, 0x40,
-    0x81, 0x81, 0x02, 0x06, 0x04, 0xFF, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
-    0x33, 0x33, 0x33, 0x3F, 0xF0, 0x0C, 0x0E, 0x05, 0x86, 0xC3, 0x21, 0x19,
-    0x8C, 0x83, 0xC1, 0x80, 0xFF, 0xFE, 0xE3, 0x8C, 0x30, 0x3F, 0x07, 0xF8,
-    0xE1, 0xCC, 0x0C, 0x00, 0xC0, 0x1C, 0x3F, 0xCF, 0x8C, 0xC0, 0xCC, 0x0C,
-    0xE3, 0xC7, 0xEF, 0x3C, 0x70, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0xC0,
-    0x0C, 0xF8, 0xDF, 0xCF, 0x0E, 0xE0, 0x7C, 0x03, 0xC0, 0x3C, 0x03, 0xC0,
-    0x3C, 0x03, 0xE0, 0x6F, 0x0E, 0xDF, 0xCC, 0xF8, 0x1F, 0x0F, 0xE7, 0x1B,
-    0x83, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x38, 0x37, 0x1C, 0xFE, 0x1F,
-    0x00, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x3C, 0xCF, 0xFB, 0x8F,
-    0xE0, 0xF8, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF8, 0x3B, 0x8F, 0x3F,
-    0x63, 0xCC, 0x1F, 0x07, 0xF1, 0xC7, 0x70, 0x3C, 0x07, 0xFF, 0xFF, 0xFE,
-    0x00, 0xC0, 0x1C, 0x0D, 0xC3, 0x1F, 0xE1, 0xF0, 0x3B, 0xD8, 0xC6, 0x7F,
-    0xEC, 0x63, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x00, 0x1E, 0x67, 0xFD, 0xC7,
-    0xF0, 0x7C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x7C, 0x1D, 0xC7, 0x9F,
-    0xB1, 0xE6, 0x00, 0xC0, 0x3E, 0x0E, 0x7F, 0xC7, 0xE0, 0xC0, 0x30, 0x0C,
-    0x03, 0x00, 0xC0, 0x33, 0xCD, 0xFB, 0xC7, 0xE0, 0xF0, 0x3C, 0x0F, 0x03,
-    0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x30, 0xF0, 0x3F, 0xFF, 0xFF,
-    0xF0, 0x33, 0x00, 0x03, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x3F,
-    0xE0, 0xC0, 0x18, 0x03, 0x00, 0x60, 0x0C, 0x01, 0x83, 0x30, 0xC6, 0x30,
-    0xCC, 0x1B, 0x83, 0xF0, 0x77, 0x0C, 0x61, 0x8E, 0x30, 0xE6, 0x0C, 0xC1,
-    0xD8, 0x18, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xCF, 0x1F, 0x6F, 0xDF, 0xFC,
-    0x78, 0xFC, 0x18, 0x3C, 0x0C, 0x1E, 0x06, 0x0F, 0x03, 0x07, 0x81, 0x83,
-    0xC0, 0xC1, 0xE0, 0x60, 0xF0, 0x30, 0x78, 0x18, 0x3C, 0x0C, 0x18, 0xCF,
-    0x37, 0xEF, 0x1F, 0x83, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C,
-    0x0F, 0x03, 0xC0, 0xC0, 0x1F, 0x07, 0xF1, 0xC7, 0x70, 0x7C, 0x07, 0x80,
-    0xF0, 0x1E, 0x03, 0xC0, 0x7C, 0x1D, 0xC7, 0x1F, 0xC1, 0xF0, 0xCF, 0x8D,
-    0xFC, 0xF0, 0xEE, 0x06, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3E,
-    0x07, 0xF0, 0xEF, 0xFC, 0xCF, 0x8C, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x00,
-    0x1E, 0x67, 0xFD, 0xC7, 0xF0, 0x7C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0,
-    0x7C, 0x1D, 0xC7, 0x9F, 0xF1, 0xE6, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x60,
-    0xCF, 0x7F, 0x38, 0xC3, 0x0C, 0x30, 0xC3, 0x0C, 0x30, 0xC0, 0x3E, 0x1F,
-    0xEE, 0x1B, 0x00, 0xC0, 0x3C, 0x07, 0xF0, 0x3E, 0x01, 0xF0, 0x3E, 0x1D,
-    0xFE, 0x3E, 0x00, 0x63, 0x19, 0xFF, 0xB1, 0x8C, 0x63, 0x18, 0xC6, 0x31,
-    0xE7, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0,
-    0xF0, 0x7E, 0x3D, 0xFB, 0x3C, 0xC0, 0xE0, 0x66, 0x06, 0x60, 0x67, 0x0C,
-    0x30, 0xC3, 0x0C, 0x39, 0x81, 0x98, 0x19, 0x81, 0xF0, 0x0F, 0x00, 0xE0,
-    0x0E, 0x00, 0xC1, 0xC1, 0xB0, 0xE1, 0xD8, 0x70, 0xCC, 0x2C, 0x66, 0x36,
-    0x31, 0x9B, 0x18, 0xCD, 0x98, 0x64, 0x6C, 0x16, 0x36, 0x0F, 0x1A, 0x07,
-    0x8F, 0x03, 0x83, 0x80, 0xC1, 0xC0, 0x60, 0xEE, 0x18, 0xC6, 0x0C, 0xC1,
-    0xF0, 0x1C, 0x01, 0x80, 0x78, 0x1B, 0x03, 0x30, 0xC7, 0x30, 0x66, 0x06,
-    0xE0, 0x6C, 0x0D, 0x83, 0x38, 0x63, 0x0C, 0x63, 0x0E, 0x60, 0xCC, 0x1B,
-    0x03, 0x60, 0x3C, 0x07, 0x00, 0xE0, 0x18, 0x03, 0x00, 0xE0, 0x78, 0x0E,
-    0x00, 0xFF, 0xFF, 0xF0, 0x18, 0x0C, 0x07, 0x03, 0x81, 0xC0, 0x60, 0x30,
-    0x18, 0x0E, 0x03, 0xFF, 0xFF, 0xC0, 0x19, 0xCC, 0x63, 0x18, 0xC6, 0x31,
-    0x99, 0x86, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x1C, 0x60, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFC, 0xC7, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x0C, 0x33, 0x31,
-    0x8C, 0x63, 0x18, 0xC6, 0x73, 0x00, 0x70, 0x3E, 0x09, 0xE4, 0x1F, 0x03,
-    0x80};
-
-const GFXglyph FreeSans12pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 6, 0, 1},         // 0x20 ' '
-    {0, 2, 18, 8, 3, -17},      // 0x21 '!'
-    {5, 6, 6, 8, 1, -16},       // 0x22 '"'
-    {10, 13, 16, 13, 0, -15},   // 0x23 '#'
-    {36, 11, 20, 13, 1, -17},   // 0x24 '$'
-    {64, 20, 17, 21, 1, -16},   // 0x25 '%'
-    {107, 14, 17, 16, 1, -16},  // 0x26 '&'
-    {137, 2, 6, 5, 1, -16},     // 0x27 '''
-    {139, 5, 23, 8, 2, -17},    // 0x28 '('
-    {154, 5, 23, 8, 1, -17},    // 0x29 ')'
-    {169, 7, 7, 9, 1, -17},     // 0x2A '*'
-    {176, 10, 11, 14, 2, -10},  // 0x2B '+'
-    {190, 2, 6, 7, 2, -1},      // 0x2C ','
-    {192, 6, 2, 8, 1, -7},      // 0x2D '-'
-    {194, 2, 2, 6, 2, -1},      // 0x2E '.'
-    {195, 7, 18, 7, 0, -17},    // 0x2F '/'
-    {211, 11, 17, 13, 1, -16},  // 0x30 '0'
-    {235, 5, 17, 13, 3, -16},   // 0x31 '1'
-    {246, 11, 17, 13, 1, -16},  // 0x32 '2'
-    {270, 11, 17, 13, 1, -16},  // 0x33 '3'
-    {294, 11, 17, 13, 1, -16},  // 0x34 '4'
-    {318, 11, 17, 13, 1, -16},  // 0x35 '5'
-    {342, 11, 17, 13, 1, -16},  // 0x36 '6'
-    {366, 11, 17, 13, 1, -16},  // 0x37 '7'
-    {390, 11, 17, 13, 1, -16},  // 0x38 '8'
-    {414, 11, 17, 13, 1, -16},  // 0x39 '9'
-    {438, 2, 13, 6, 2, -12},    // 0x3A ':'
-    {442, 2, 16, 6, 2, -11},    // 0x3B ';'
-    {446, 12, 12, 14, 1, -11},  // 0x3C '<'
-    {464, 12, 6, 14, 1, -8},    // 0x3D '='
-    {473, 12, 12, 14, 1, -11},  // 0x3E '>'
-    {491, 10, 18, 13, 2, -17},  // 0x3F '?'
-    {514, 22, 21, 24, 1, -17},  // 0x40 '@'
-    {572, 16, 18, 16, 0, -17},  // 0x41 'A'
-    {608, 13, 18, 16, 2, -17},  // 0x42 'B'
-    {638, 15, 18, 17, 1, -17},  // 0x43 'C'
-    {672, 14, 18, 17, 2, -17},  // 0x44 'D'
-    {704, 12, 18, 15, 2, -17},  // 0x45 'E'
-    {731, 11, 18, 14, 2, -17},  // 0x46 'F'
-    {756, 16, 18, 18, 1, -17},  // 0x47 'G'
-    {792, 13, 18, 17, 2, -17},  // 0x48 'H'
-    {822, 2, 18, 7, 2, -17},    // 0x49 'I'
-    {827, 9, 18, 13, 1, -17},   // 0x4A 'J'
-    {848, 14, 18, 16, 2, -17},  // 0x4B 'K'
-    {880, 10, 18, 14, 2, -17},  // 0x4C 'L'
-    {903, 16, 18, 20, 2, -17},  // 0x4D 'M'
-    {939, 13, 18, 18, 2, -17},  // 0x4E 'N'
-    {969, 17, 18, 19, 1, -17},  // 0x4F 'O'
-    {1008, 12, 18, 16, 2, -17}, // 0x50 'P'
-    {1035, 17, 19, 19, 1, -17}, // 0x51 'Q'
-    {1076, 14, 18, 17, 2, -17}, // 0x52 'R'
-    {1108, 14, 18, 16, 1, -17}, // 0x53 'S'
-    {1140, 12, 18, 15, 1, -17}, // 0x54 'T'
-    {1167, 13, 18, 17, 2, -17}, // 0x55 'U'
-    {1197, 15, 18, 15, 0, -17}, // 0x56 'V'
-    {1231, 22, 18, 22, 0, -17}, // 0x57 'W'
-    {1281, 15, 18, 16, 0, -17}, // 0x58 'X'
-    {1315, 16, 18, 16, 0, -17}, // 0x59 'Y'
-    {1351, 13, 18, 15, 1, -17}, // 0x5A 'Z'
-    {1381, 4, 23, 7, 2, -17},   // 0x5B '['
-    {1393, 7, 18, 7, 0, -17},   // 0x5C '\'
-    {1409, 4, 23, 7, 1, -17},   // 0x5D ']'
-    {1421, 9, 9, 11, 1, -16},   // 0x5E '^'
-    {1432, 15, 1, 13, -1, 4},   // 0x5F '_'
-    {1434, 5, 4, 6, 1, -17},    // 0x60 '`'
-    {1437, 12, 13, 13, 1, -12}, // 0x61 'a'
-    {1457, 12, 18, 13, 1, -17}, // 0x62 'b'
-    {1484, 10, 13, 12, 1, -12}, // 0x63 'c'
-    {1501, 11, 18, 13, 1, -17}, // 0x64 'd'
-    {1526, 11, 13, 13, 1, -12}, // 0x65 'e'
-    {1544, 5, 18, 7, 1, -17},   // 0x66 'f'
-    {1556, 11, 18, 13, 1, -12}, // 0x67 'g'
-    {1581, 10, 18, 13, 1, -17}, // 0x68 'h'
-    {1604, 2, 18, 5, 2, -17},   // 0x69 'i'
-    {1609, 4, 23, 6, 0, -17},   // 0x6A 'j'
-    {1621, 11, 18, 12, 1, -17}, // 0x6B 'k'
-    {1646, 2, 18, 5, 1, -17},   // 0x6C 'l'
-    {1651, 17, 13, 19, 1, -12}, // 0x6D 'm'
-    {1679, 10, 13, 13, 1, -12}, // 0x6E 'n'
-    {1696, 11, 13, 13, 1, -12}, // 0x6F 'o'
-    {1714, 12, 17, 13, 1, -12}, // 0x70 'p'
-    {1740, 11, 17, 13, 1, -12}, // 0x71 'q'
-    {1764, 6, 13, 8, 1, -12},   // 0x72 'r'
-    {1774, 10, 13, 12, 1, -12}, // 0x73 's'
-    {1791, 5, 16, 7, 1, -15},   // 0x74 't'
-    {1801, 10, 13, 13, 1, -12}, // 0x75 'u'
-    {1818, 12, 13, 12, 0, -12}, // 0x76 'v'
-    {1838, 17, 13, 17, 0, -12}, // 0x77 'w'
-    {1866, 11, 13, 11, 0, -12}, // 0x78 'x'
-    {1884, 11, 18, 11, 0, -12}, // 0x79 'y'
-    {1909, 10, 13, 12, 1, -12}, // 0x7A 'z'
-    {1926, 5, 23, 8, 1, -17},   // 0x7B '{'
-    {1941, 2, 23, 6, 2, -17},   // 0x7C '|'
-    {1947, 5, 23, 8, 2, -17},   // 0x7D '}'
-    {1962, 10, 5, 12, 1, -10}}; // 0x7E '~'
-
-const GFXfont FreeSans12pt7b PROGMEM = {(uint8_t *)FreeSans12pt7bBitmaps,
-                                        (GFXglyph *)FreeSans12pt7bGlyphs, 0x20,
-                                        0x7E, 29};
-
-// Approx. 2641 bytes

+ 0 - 451
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeSans18pt7b.h

@@ -1,451 +0,0 @@
-const uint8_t FreeSans18pt7bBitmaps[] PROGMEM = {
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE9, 0x20, 0x3F, 0xFC, 0xE3, 0xF1,
-    0xF8, 0xFC, 0x7E, 0x3F, 0x1F, 0x8E, 0x82, 0x41, 0x00, 0x01, 0xC3, 0x80,
-    0x38, 0x70, 0x06, 0x0E, 0x00, 0xC1, 0x80, 0x38, 0x70, 0x07, 0x0E, 0x0F,
-    0xFF, 0xF9, 0xFF, 0xFF, 0x3F, 0xFF, 0xE0, 0xE1, 0xC0, 0x1C, 0x38, 0x03,
-    0x87, 0x00, 0x70, 0xE0, 0x0C, 0x18, 0x3F, 0xFF, 0xF7, 0xFF, 0xFE, 0xFF,
-    0xFF, 0xC1, 0xC3, 0x80, 0x30, 0x60, 0x06, 0x0C, 0x01, 0xC3, 0x80, 0x38,
-    0x70, 0x07, 0x0E, 0x00, 0xC1, 0x80, 0x03, 0x00, 0x0F, 0xC0, 0x3F, 0xF0,
-    0x3F, 0xF8, 0x7B, 0x3C, 0xF3, 0x1C, 0xE3, 0x0E, 0xE3, 0x0E, 0xE3, 0x0E,
-    0xE3, 0x00, 0xE3, 0x00, 0xF3, 0x00, 0x7B, 0x00, 0x7F, 0x80, 0x1F, 0xF0,
-    0x07, 0xFC, 0x03, 0x7E, 0x03, 0x0F, 0x03, 0x07, 0xE3, 0x07, 0xE3, 0x07,
-    0xE3, 0x07, 0xE3, 0x0F, 0x73, 0x3E, 0x7F, 0xFC, 0x3F, 0xF8, 0x0F, 0xE0,
-    0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x78, 0x00,
-    0xE0, 0x0F, 0xF0, 0x06, 0x00, 0xFF, 0xC0, 0x70, 0x07, 0x0E, 0x07, 0x00,
-    0x70, 0x38, 0x38, 0x03, 0x00, 0xC3, 0x80, 0x18, 0x06, 0x1C, 0x00, 0xE0,
-    0x71, 0xC0, 0x03, 0x87, 0x8C, 0x00, 0x1F, 0xF8, 0xE0, 0x00, 0x7F, 0x86,
-    0x00, 0x01, 0xF8, 0x70, 0x00, 0x00, 0x03, 0x03, 0xC0, 0x00, 0x38, 0x7F,
-    0x80, 0x01, 0x87, 0xFE, 0x00, 0x1C, 0x38, 0x70, 0x00, 0xC3, 0x81, 0xC0,
-    0x0E, 0x18, 0x06, 0x00, 0xE0, 0xC0, 0x30, 0x07, 0x07, 0x03, 0x80, 0x70,
-    0x1C, 0x38, 0x03, 0x80, 0xFF, 0xC0, 0x38, 0x03, 0xFC, 0x01, 0x80, 0x07,
-    0x80, 0x01, 0xF0, 0x00, 0x7F, 0x80, 0x0F, 0xFC, 0x01, 0xE1, 0xE0, 0x1C,
-    0x0E, 0x01, 0xC0, 0xE0, 0x1C, 0x0E, 0x01, 0xE1, 0xE0, 0x0E, 0x3C, 0x00,
-    0x77, 0x80, 0x07, 0xF0, 0x00, 0x7C, 0x00, 0x0F, 0xE0, 0x03, 0xCF, 0x1C,
-    0x78, 0x79, 0xC7, 0x03, 0xDC, 0xE0, 0x1F, 0x8E, 0x00, 0xF8, 0xE0, 0x0F,
-    0x0E, 0x00, 0x70, 0xF0, 0x0F, 0x87, 0xC3, 0xFC, 0x7F, 0xFD, 0xC3, 0xFF,
-    0x0E, 0x0F, 0xC0, 0xF0, 0xFF, 0xFF, 0xFA, 0x40, 0x06, 0x06, 0x0C, 0x0C,
-    0x18, 0x18, 0x38, 0x30, 0x70, 0x70, 0x70, 0x60, 0xE0, 0xE0, 0xE0, 0xE0,
-    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x60, 0x70, 0x70, 0x70, 0x30, 0x38, 0x18,
-    0x18, 0x0C, 0x0C, 0x06, 0x03, 0xC0, 0x60, 0x30, 0x30, 0x38, 0x18, 0x1C,
-    0x0C, 0x0E, 0x0E, 0x0E, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-    0x07, 0x07, 0x06, 0x0E, 0x0E, 0x0E, 0x0C, 0x1C, 0x18, 0x38, 0x30, 0x30,
-    0x60, 0xC0, 0x0C, 0x03, 0x00, 0xC3, 0xB7, 0xFF, 0xC7, 0x81, 0xE0, 0xEC,
-    0x73, 0x88, 0x40, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
-    0x80, 0x01, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, 0x01,
-    0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF,
-    0xF6, 0xDA, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0xC0, 0x30, 0x18,
-    0x06, 0x01, 0x80, 0xC0, 0x30, 0x0C, 0x06, 0x01, 0x80, 0x60, 0x30, 0x0C,
-    0x03, 0x00, 0xC0, 0x60, 0x18, 0x06, 0x03, 0x00, 0xC0, 0x30, 0x18, 0x06,
-    0x01, 0x80, 0xC0, 0x30, 0x00, 0x07, 0xE0, 0x0F, 0xF8, 0x1F, 0xFC, 0x3C,
-    0x3C, 0x78, 0x1E, 0x70, 0x0E, 0x70, 0x0E, 0xE0, 0x07, 0xE0, 0x07, 0xE0,
-    0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0,
-    0x07, 0xE0, 0x07, 0xE0, 0x0F, 0x70, 0x0E, 0x70, 0x0E, 0x78, 0x1E, 0x3C,
-    0x3C, 0x1F, 0xF8, 0x1F, 0xF0, 0x07, 0xE0, 0x03, 0x03, 0x07, 0x0F, 0x3F,
-    0xFF, 0xFF, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-    0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xE0, 0x1F, 0xF8,
-    0x3F, 0xFC, 0x7C, 0x3E, 0x70, 0x0F, 0xF0, 0x0F, 0xE0, 0x07, 0xE0, 0x07,
-    0x00, 0x07, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0xF8,
-    0x03, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x3C, 0x00, 0x38, 0x00, 0x70, 0x00,
-    0x60, 0x00, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xF0,
-    0x07, 0xFE, 0x07, 0xFF, 0x87, 0x83, 0xC3, 0x80, 0xF3, 0x80, 0x39, 0xC0,
-    0x1C, 0xE0, 0x0E, 0x00, 0x07, 0x00, 0x0F, 0x00, 0x7F, 0x00, 0x3F, 0x00,
-    0x1F, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x00, 0x03, 0xF0, 0x01,
-    0xF8, 0x00, 0xFE, 0x00, 0x77, 0x00, 0x73, 0xE0, 0xF8, 0xFF, 0xF8, 0x3F,
-    0xF8, 0x07, 0xF0, 0x00, 0x00, 0x38, 0x00, 0x38, 0x00, 0x78, 0x00, 0xF8,
-    0x00, 0xF8, 0x01, 0xF8, 0x03, 0xB8, 0x03, 0x38, 0x07, 0x38, 0x0E, 0x38,
-    0x1C, 0x38, 0x18, 0x38, 0x38, 0x38, 0x70, 0x38, 0x60, 0x38, 0xE0, 0x38,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38,
-    0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x1F, 0xFF, 0x0F, 0xFF, 0x8F, 0xFF,
-    0xC7, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x39,
-    0xF0, 0x3F, 0xFE, 0x1F, 0xFF, 0x8F, 0x83, 0xE7, 0x00, 0xF0, 0x00, 0x3C,
-    0x00, 0x0E, 0x00, 0x07, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0xFC, 0x00,
-    0xEF, 0x00, 0x73, 0xC0, 0xF0, 0xFF, 0xF8, 0x3F, 0xF8, 0x07, 0xE0, 0x00,
-    0x03, 0xE0, 0x0F, 0xF8, 0x1F, 0xFC, 0x3C, 0x1E, 0x38, 0x0E, 0x70, 0x0E,
-    0x70, 0x00, 0x60, 0x00, 0xE0, 0x00, 0xE3, 0xE0, 0xEF, 0xF8, 0xFF, 0xFC,
-    0xFC, 0x3E, 0xF0, 0x0E, 0xF0, 0x0F, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07,
-    0x60, 0x07, 0x70, 0x0F, 0x70, 0x0E, 0x3C, 0x3E, 0x3F, 0xFC, 0x1F, 0xF8,
-    0x07, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x06, 0x00, 0x0E,
-    0x00, 0x1C, 0x00, 0x18, 0x00, 0x38, 0x00, 0x70, 0x00, 0x60, 0x00, 0xE0,
-    0x00, 0xC0, 0x01, 0xC0, 0x01, 0x80, 0x03, 0x80, 0x03, 0x80, 0x07, 0x00,
-    0x07, 0x00, 0x07, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0C, 0x00,
-    0x1C, 0x00, 0x1C, 0x00, 0x07, 0xF0, 0x0F, 0xFE, 0x0F, 0xFF, 0x87, 0x83,
-    0xC7, 0x80, 0xF3, 0x80, 0x39, 0xC0, 0x1C, 0xE0, 0x0E, 0x78, 0x0F, 0x1E,
-    0x0F, 0x07, 0xFF, 0x01, 0xFF, 0x03, 0xFF, 0xE3, 0xE0, 0xF9, 0xC0, 0x1D,
-    0xC0, 0x0F, 0xE0, 0x03, 0xF0, 0x01, 0xF8, 0x00, 0xFC, 0x00, 0xF7, 0x00,
-    0x73, 0xE0, 0xF8, 0xFF, 0xF8, 0x3F, 0xF8, 0x07, 0xF0, 0x00, 0x07, 0xE0,
-    0x1F, 0xF8, 0x3F, 0xFC, 0x7C, 0x3C, 0x70, 0x0E, 0xF0, 0x0E, 0xE0, 0x06,
-    0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x0F, 0x70, 0x0F, 0x78, 0x3F,
-    0x3F, 0xFF, 0x1F, 0xF7, 0x07, 0xC7, 0x00, 0x07, 0x00, 0x06, 0x00, 0x0E,
-    0x70, 0x0E, 0x70, 0x1C, 0x78, 0x3C, 0x3F, 0xF8, 0x1F, 0xF0, 0x07, 0xC0,
-    0xFF, 0xF0, 0x00, 0x00, 0x00, 0x07, 0xFF, 0x80, 0xFF, 0xF0, 0x00, 0x00,
-    0x00, 0x07, 0xFF, 0xB6, 0xD6, 0x00, 0x00, 0x80, 0x03, 0xC0, 0x07, 0xE0,
-    0x0F, 0xC0, 0x3F, 0x80, 0x7E, 0x00, 0xFC, 0x01, 0xF0, 0x00, 0xE0, 0x00,
-    0x7C, 0x00, 0x1F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x80, 0x07, 0xF0, 0x00,
-    0x7E, 0x00, 0x0F, 0x00, 0x01, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0x80, 0x80, 0x00, 0x70, 0x00, 0x3E, 0x00, 0x0F, 0xE0, 0x00, 0xFC,
-    0x00, 0x1F, 0xC0, 0x03, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0x80, 0x0F, 0xC0,
-    0x1F, 0x80, 0x7F, 0x00, 0xFC, 0x01, 0xF8, 0x03, 0xF0, 0x01, 0xC0, 0x00,
-    0x80, 0x00, 0x00, 0x0F, 0xC0, 0x7F, 0xE1, 0xFF, 0xE3, 0xC3, 0xEF, 0x01,
-    0xFC, 0x01, 0xF8, 0x03, 0xF0, 0x07, 0x00, 0x0E, 0x00, 0x38, 0x00, 0xF0,
-    0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x00, 0xE0, 0x03, 0xC0, 0x07, 0x00, 0x0E,
-    0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x03, 0x80,
-    0x07, 0x00, 0x0E, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x3F, 0xFF, 0x00,
-    0x00, 0xFF, 0xFF, 0xC0, 0x01, 0xF8, 0x0F, 0xE0, 0x03, 0xE0, 0x01, 0xF0,
-    0x07, 0x80, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x3C, 0x1E, 0x00, 0x00, 0x1E,
-    0x3C, 0x03, 0xE0, 0x1E, 0x38, 0x0F, 0xF3, 0x8E, 0x78, 0x1E, 0x3F, 0x0F,
-    0x70, 0x38, 0x1F, 0x07, 0x70, 0x78, 0x0F, 0x07, 0xE0, 0x70, 0x0E, 0x07,
-    0xE0, 0x70, 0x0E, 0x07, 0xE0, 0xE0, 0x0E, 0x07, 0xE0, 0xE0, 0x1C, 0x07,
-    0xE0, 0xE0, 0x1C, 0x0E, 0xE0, 0xE0, 0x1C, 0x0E, 0xE0, 0xE0, 0x38, 0x1C,
-    0xF0, 0x70, 0x78, 0x3C, 0x70, 0x78, 0xFC, 0x78, 0x78, 0x3F, 0xDF, 0xF0,
-    0x38, 0x1F, 0x0F, 0xC0, 0x3C, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00,
-    0x0F, 0x80, 0x00, 0x00, 0x07, 0xF0, 0x0E, 0x00, 0x01, 0xFF, 0xFE, 0x00,
-    0x00, 0x7F, 0xFE, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x03,
-    0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x7F, 0x00, 0x01, 0xDC, 0x00, 0x07, 0x78,
-    0x00, 0x3C, 0xE0, 0x00, 0xE3, 0x80, 0x03, 0x8F, 0x00, 0x1E, 0x1C, 0x00,
-    0x70, 0x70, 0x01, 0xC1, 0xE0, 0x0E, 0x03, 0x80, 0x38, 0x0E, 0x00, 0xE0,
-    0x3C, 0x07, 0xFF, 0xF0, 0x1F, 0xFF, 0xE0, 0xFF, 0xFF, 0x83, 0xC0, 0x0E,
-    0x0E, 0x00, 0x3C, 0x78, 0x00, 0xF1, 0xE0, 0x01, 0xC7, 0x00, 0x07, 0xBC,
-    0x00, 0x1E, 0xF0, 0x00, 0x3B, 0x80, 0x00, 0xF0, 0xFF, 0xFC, 0x1F, 0xFF,
-    0xE3, 0xFF, 0xFE, 0x70, 0x03, 0xCE, 0x00, 0x3D, 0xC0, 0x03, 0xB8, 0x00,
-    0x77, 0x00, 0x0E, 0xE0, 0x01, 0xDC, 0x00, 0x73, 0x80, 0x1E, 0x7F, 0xFF,
-    0x8F, 0xFF, 0xF1, 0xFF, 0xFF, 0x38, 0x00, 0xF7, 0x00, 0x0E, 0xE0, 0x00,
-    0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x03,
-    0xF8, 0x00, 0xF7, 0xFF, 0xFC, 0xFF, 0xFF, 0x1F, 0xFF, 0x80, 0x00, 0xFF,
-    0x00, 0x0F, 0xFF, 0x00, 0xFF, 0xFE, 0x07, 0xE0, 0x7C, 0x3E, 0x00, 0x78,
-    0xF0, 0x00, 0xE7, 0x80, 0x03, 0xDC, 0x00, 0x07, 0x70, 0x00, 0x03, 0x80,
-    0x00, 0x0E, 0x00, 0x00, 0x38, 0x00, 0x00, 0xE0, 0x00, 0x03, 0x80, 0x00,
-    0x0E, 0x00, 0x00, 0x38, 0x00, 0x00, 0xE0, 0x00, 0x1D, 0xC0, 0x00, 0x77,
-    0x00, 0x03, 0xDE, 0x00, 0x0E, 0x3C, 0x00, 0x78, 0xF8, 0x03, 0xC1, 0xF8,
-    0x1F, 0x03, 0xFF, 0xF8, 0x03, 0xFF, 0xC0, 0x03, 0xF8, 0x00, 0xFF, 0xF8,
-    0x0F, 0xFF, 0xE0, 0xFF, 0xFF, 0x0E, 0x00, 0xF8, 0xE0, 0x03, 0xCE, 0x00,
-    0x1C, 0xE0, 0x00, 0xEE, 0x00, 0x0E, 0xE0, 0x00, 0xFE, 0x00, 0x07, 0xE0,
-    0x00, 0x7E, 0x00, 0x07, 0xE0, 0x00, 0x7E, 0x00, 0x07, 0xE0, 0x00, 0x7E,
-    0x00, 0x07, 0xE0, 0x00, 0x7E, 0x00, 0x0F, 0xE0, 0x00, 0xEE, 0x00, 0x0E,
-    0xE0, 0x01, 0xEE, 0x00, 0x3C, 0xE0, 0x0F, 0x8F, 0xFF, 0xF0, 0xFF, 0xFE,
-    0x0F, 0xFF, 0x80, 0xFF, 0xFF, 0xBF, 0xFF, 0xEF, 0xFF, 0xFB, 0x80, 0x00,
-    0xE0, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x00, 0xE0, 0x00, 0x38,
-    0x00, 0x0E, 0x00, 0x03, 0xFF, 0xFE, 0xFF, 0xFF, 0xBF, 0xFF, 0xEE, 0x00,
-    0x03, 0x80, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x00,
-    0xE0, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x0E, 0x00,
-    0x07, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x38,
-    0x00, 0x1F, 0xFF, 0xCF, 0xFF, 0xE7, 0xFF, 0xF3, 0x80, 0x01, 0xC0, 0x00,
-    0xE0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x07, 0x00,
-    0x03, 0x80, 0x01, 0xC0, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x00, 0x00, 0x7F,
-    0x80, 0x03, 0xFF, 0xE0, 0x07, 0xFF, 0xF8, 0x0F, 0x80, 0xFC, 0x1E, 0x00,
-    0x3E, 0x3C, 0x00, 0x0E, 0x78, 0x00, 0x0F, 0x70, 0x00, 0x07, 0x70, 0x00,
-    0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xE0, 0x03,
-    0xFF, 0xE0, 0x03, 0xFF, 0xE0, 0x03, 0xFF, 0xE0, 0x00, 0x07, 0xF0, 0x00,
-    0x07, 0x70, 0x00, 0x07, 0x70, 0x00, 0x0F, 0x78, 0x00, 0x0F, 0x3C, 0x00,
-    0x1F, 0x1E, 0x00, 0x3F, 0x0F, 0xC0, 0xF7, 0x07, 0xFF, 0xE7, 0x03, 0xFF,
-    0xC3, 0x00, 0xFF, 0x03, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0,
-    0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0,
-    0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80,
-    0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00,
-    0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x1C, 0x00, 0x70, 0x01, 0xC0, 0x07, 0x00,
-    0x1C, 0x00, 0x70, 0x01, 0xC0, 0x07, 0x00, 0x1C, 0x00, 0x70, 0x01, 0xC0,
-    0x07, 0x00, 0x1C, 0x00, 0x70, 0x01, 0xC0, 0x07, 0x00, 0x1F, 0x80, 0x7E,
-    0x01, 0xF8, 0x07, 0xE0, 0x1F, 0xC0, 0xF7, 0x87, 0x9F, 0xFE, 0x3F, 0xF0,
-    0x3F, 0x00, 0xE0, 0x01, 0xEE, 0x00, 0x3C, 0xE0, 0x07, 0x8E, 0x00, 0xF0,
-    0xE0, 0x1E, 0x0E, 0x03, 0xE0, 0xE0, 0x7C, 0x0E, 0x0F, 0x80, 0xE1, 0xF0,
-    0x0E, 0x1E, 0x00, 0xE3, 0xC0, 0x0E, 0x7C, 0x00, 0xEF, 0xE0, 0x0F, 0xCE,
-    0x00, 0xF8, 0xF0, 0x0F, 0x07, 0x80, 0xE0, 0x3C, 0x0E, 0x03, 0xC0, 0xE0,
-    0x1E, 0x0E, 0x00, 0xF0, 0xE0, 0x0F, 0x0E, 0x00, 0x78, 0xE0, 0x03, 0xCE,
-    0x00, 0x3C, 0xE0, 0x01, 0xEE, 0x00, 0x0F, 0xE0, 0x01, 0xC0, 0x03, 0x80,
-    0x07, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x70, 0x00, 0xE0, 0x01,
-    0xC0, 0x03, 0x80, 0x07, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x70,
-    0x00, 0xE0, 0x01, 0xC0, 0x03, 0x80, 0x07, 0x00, 0x0E, 0x00, 0x1C, 0x00,
-    0x38, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF8, 0x00, 0x1F, 0xF8,
-    0x00, 0x1F, 0xF8, 0x00, 0x1F, 0xFC, 0x00, 0x3F, 0xFC, 0x00, 0x3F, 0xFC,
-    0x00, 0x3F, 0xEE, 0x00, 0x77, 0xEE, 0x00, 0x77, 0xEE, 0x00, 0x77, 0xE7,
-    0x00, 0xE7, 0xE7, 0x00, 0xE7, 0xE7, 0x00, 0xE7, 0xE3, 0x81, 0xC7, 0xE3,
-    0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE1, 0xC3, 0x87, 0xE1, 0xC3, 0x87, 0xE1,
-    0xC3, 0x87, 0xE0, 0xE7, 0x07, 0xE0, 0xE7, 0x07, 0xE0, 0xE7, 0x07, 0xE0,
-    0x7E, 0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x3C, 0x07, 0xE0,
-    0x3C, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xF8, 0x00, 0x7F, 0xC0, 0x07,
-    0xFC, 0x00, 0x7F, 0xE0, 0x07, 0xEF, 0x00, 0x7E, 0x70, 0x07, 0xE7, 0x80,
-    0x7E, 0x3C, 0x07, 0xE1, 0xC0, 0x7E, 0x1E, 0x07, 0xE0, 0xE0, 0x7E, 0x0F,
-    0x07, 0xE0, 0x78, 0x7E, 0x03, 0x87, 0xE0, 0x3C, 0x7E, 0x01, 0xE7, 0xE0,
-    0x0E, 0x7E, 0x00, 0xF7, 0xE0, 0x07, 0xFE, 0x00, 0x3F, 0xE0, 0x03, 0xFE,
-    0x00, 0x1F, 0xE0, 0x01, 0xFE, 0x00, 0x0F, 0x00, 0x7F, 0x00, 0x01, 0xFF,
-    0xF0, 0x01, 0xFF, 0xFC, 0x01, 0xF0, 0x1F, 0x01, 0xE0, 0x03, 0xC1, 0xE0,
-    0x00, 0xF1, 0xE0, 0x00, 0x3C, 0xE0, 0x00, 0x0E, 0x70, 0x00, 0x07, 0x70,
-    0x00, 0x03, 0xF8, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x3F,
-    0x00, 0x00, 0x1F, 0x80, 0x00, 0x0F, 0xC0, 0x00, 0x07, 0xE0, 0x00, 0x03,
-    0xB8, 0x00, 0x03, 0x9C, 0x00, 0x01, 0xCF, 0x00, 0x01, 0xE3, 0xC0, 0x01,
-    0xE0, 0xF0, 0x01, 0xE0, 0x3E, 0x03, 0xE0, 0x0F, 0xFF, 0xE0, 0x03, 0xFF,
-    0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFF, 0xFC, 0x3F, 0xFF, 0x8F, 0xFF, 0xF3,
-    0x80, 0x3E, 0xE0, 0x03, 0xF8, 0x00, 0x7E, 0x00, 0x1F, 0x80, 0x07, 0xE0,
-    0x01, 0xF8, 0x00, 0x7E, 0x00, 0x3F, 0x80, 0x1E, 0xFF, 0xFF, 0x3F, 0xFF,
-    0x8F, 0xFF, 0xC3, 0x80, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x03,
-    0x80, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x00, 0xE0,
-    0x00, 0x38, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x01, 0xFF, 0xF0, 0x01, 0xFF,
-    0xFC, 0x01, 0xF0, 0x1F, 0x01, 0xE0, 0x03, 0xC1, 0xE0, 0x00, 0xF1, 0xE0,
-    0x00, 0x3C, 0xE0, 0x00, 0x0E, 0x70, 0x00, 0x07, 0x70, 0x00, 0x01, 0xF8,
-    0x00, 0x00, 0xFC, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x1F,
-    0x80, 0x00, 0x0F, 0xC0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xB8, 0x00, 0x03,
-    0x9C, 0x00, 0x01, 0xCF, 0x00, 0x39, 0xE3, 0xC0, 0x1F, 0xE0, 0xF0, 0x07,
-    0xE0, 0x3E, 0x03, 0xF0, 0x0F, 0xFF, 0xFC, 0x03, 0xFF, 0xEE, 0x00, 0x3F,
-    0x83, 0x80, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x20, 0xFF, 0xFE, 0x0F, 0xFF,
-    0xF8, 0xFF, 0xFF, 0xCE, 0x00, 0x3C, 0xE0, 0x01, 0xEE, 0x00, 0x0E, 0xE0,
-    0x00, 0xEE, 0x00, 0x0E, 0xE0, 0x00, 0xEE, 0x00, 0x0E, 0xE0, 0x01, 0xCE,
-    0x00, 0x3C, 0xFF, 0xFF, 0x8F, 0xFF, 0xF0, 0xFF, 0xFF, 0x8E, 0x00, 0x3C,
-    0xE0, 0x01, 0xEE, 0x00, 0x0E, 0xE0, 0x00, 0xEE, 0x00, 0x0E, 0xE0, 0x00,
-    0xEE, 0x00, 0x0E, 0xE0, 0x00, 0xEE, 0x00, 0x0E, 0xE0, 0x00, 0xFE, 0x00,
-    0x0F, 0x03, 0xFC, 0x00, 0xFF, 0xF0, 0x1F, 0xFF, 0x83, 0xE0, 0x7C, 0x38,
-    0x01, 0xE7, 0x00, 0x0E, 0x70, 0x00, 0xE7, 0x00, 0x00, 0x70, 0x00, 0x07,
-    0x80, 0x00, 0x3E, 0x00, 0x01, 0xFE, 0x00, 0x0F, 0xFE, 0x00, 0x3F, 0xF8,
-    0x00, 0x3F, 0xE0, 0x00, 0x3E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0xE0, 0x00,
-    0x7E, 0x00, 0x07, 0xF0, 0x00, 0x77, 0x80, 0x0E, 0x7C, 0x03, 0xE3, 0xFF,
-    0xFC, 0x1F, 0xFF, 0x80, 0x3F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0x80, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x07,
-    0x00, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x0E,
-    0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x1C,
-    0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x0E, 0x00, 0x01, 0xC0, 0x00, 0x38,
-    0x00, 0x07, 0x00, 0x00, 0xE0, 0x00, 0x1C, 0x00, 0xE0, 0x00, 0xFC, 0x00,
-    0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00,
-    0x3F, 0x00, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00,
-    0x7E, 0x00, 0x0F, 0xC0, 0x01, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00,
-    0xFC, 0x00, 0x1F, 0x80, 0x03, 0xF0, 0x00, 0x7F, 0x00, 0x1E, 0xF0, 0x07,
-    0x9F, 0x01, 0xF1, 0xFF, 0xFC, 0x1F, 0xFE, 0x00, 0x7F, 0x00, 0xE0, 0x00,
-    0x7F, 0x80, 0x03, 0xFC, 0x00, 0x1C, 0xE0, 0x01, 0xE7, 0x80, 0x0F, 0x3C,
-    0x00, 0x70, 0xE0, 0x07, 0x87, 0x80, 0x3C, 0x1C, 0x01, 0xC0, 0xE0, 0x0E,
-    0x07, 0x80, 0xE0, 0x1C, 0x07, 0x00, 0xE0, 0x38, 0x07, 0x83, 0x80, 0x1C,
-    0x1C, 0x00, 0xE0, 0xE0, 0x07, 0x8E, 0x00, 0x1C, 0x70, 0x00, 0xE3, 0x80,
-    0x07, 0xB8, 0x00, 0x1D, 0xC0, 0x00, 0xEE, 0x00, 0x07, 0xE0, 0x00, 0x1F,
-    0x00, 0x00, 0xF8, 0x00, 0x03, 0x80, 0x00, 0x70, 0x03, 0xC0, 0x0F, 0x70,
-    0x03, 0xC0, 0x0F, 0x78, 0x03, 0xE0, 0x0F, 0x78, 0x03, 0xE0, 0x0E, 0x38,
-    0x07, 0xE0, 0x0E, 0x38, 0x07, 0xF0, 0x1E, 0x3C, 0x07, 0x70, 0x1E, 0x3C,
-    0x07, 0x70, 0x1C, 0x1C, 0x0E, 0x70, 0x1C, 0x1C, 0x0E, 0x38, 0x3C, 0x1C,
-    0x0E, 0x38, 0x3C, 0x1E, 0x1E, 0x38, 0x38, 0x0E, 0x1C, 0x38, 0x38, 0x0E,
-    0x1C, 0x1C, 0x38, 0x0E, 0x1C, 0x1C, 0x78, 0x0F, 0x3C, 0x1C, 0x70, 0x07,
-    0x38, 0x0E, 0x70, 0x07, 0x38, 0x0E, 0x70, 0x07, 0x38, 0x0E, 0x70, 0x07,
-    0x70, 0x0E, 0xE0, 0x03, 0xF0, 0x07, 0xE0, 0x03, 0xF0, 0x07, 0xE0, 0x03,
-    0xF0, 0x07, 0xE0, 0x03, 0xE0, 0x03, 0xC0, 0x01, 0xE0, 0x03, 0xC0, 0x01,
-    0xE0, 0x03, 0xC0, 0xF0, 0x00, 0x7B, 0xC0, 0x07, 0x8F, 0x00, 0x38, 0x78,
-    0x03, 0xC1, 0xE0, 0x3C, 0x07, 0x81, 0xC0, 0x3C, 0x1E, 0x00, 0xF1, 0xE0,
-    0x03, 0x8E, 0x00, 0x1E, 0xF0, 0x00, 0x7F, 0x00, 0x01, 0xF0, 0x00, 0x0F,
-    0x80, 0x00, 0x7C, 0x00, 0x07, 0xF0, 0x00, 0x3B, 0x80, 0x03, 0xDE, 0x00,
-    0x3C, 0x78, 0x01, 0xC1, 0xC0, 0x1E, 0x0F, 0x01, 0xE0, 0x3C, 0x0E, 0x00,
-    0xE0, 0xF0, 0x07, 0x8F, 0x00, 0x1E, 0x70, 0x00, 0xF7, 0x80, 0x03, 0xC0,
-    0xF0, 0x00, 0x3C, 0xF0, 0x00, 0x78, 0xF0, 0x01, 0xE1, 0xE0, 0x03, 0x81,
-    0xE0, 0x0F, 0x01, 0xC0, 0x1C, 0x03, 0xC0, 0x78, 0x03, 0xC1, 0xE0, 0x07,
-    0x83, 0x80, 0x07, 0x8F, 0x00, 0x07, 0x1C, 0x00, 0x0F, 0x78, 0x00, 0x0E,
-    0xE0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38,
-    0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80,
-    0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00,
-    0x00, 0x70, 0x00, 0x7F, 0xFF, 0xEF, 0xFF, 0xFD, 0xFF, 0xFF, 0x80, 0x00,
-    0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x80, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x1E,
-    0x00, 0x07, 0x80, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0,
-    0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x7C, 0x00,
-    0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xF8, 0xE3, 0x8E, 0x38, 0xE3,
-    0x8E, 0x38, 0xE3, 0x8E, 0x38, 0xE3, 0x8E, 0x38, 0xE3, 0x8E, 0x38, 0xE3,
-    0x8E, 0x38, 0xE3, 0x8F, 0xFF, 0xFC, 0xC0, 0x30, 0x06, 0x01, 0x80, 0x60,
-    0x0C, 0x03, 0x00, 0xC0, 0x18, 0x06, 0x01, 0x80, 0x20, 0x0C, 0x03, 0x00,
-    0x40, 0x18, 0x06, 0x01, 0x80, 0x30, 0x0C, 0x03, 0x00, 0x60, 0x18, 0x06,
-    0x00, 0xC0, 0x30, 0xFF, 0xFF, 0xC7, 0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xC7,
-    0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xC7,
-    0x1C, 0x7F, 0xFF, 0xFC, 0x07, 0x00, 0x78, 0x03, 0xC0, 0x3F, 0x01, 0xD8,
-    0x0C, 0xE0, 0xE3, 0x06, 0x1C, 0x70, 0xE3, 0x83, 0x18, 0x1D, 0xC0, 0x6C,
-    0x03, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xF0, 0xF0, 0xE0, 0xE0,
-    0xE0, 0x07, 0xF0, 0x0F, 0xFC, 0x0F, 0xFF, 0x0F, 0x03, 0xC7, 0x00, 0xE0,
-    0x00, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00, 0xFE, 0x0F, 0xFF, 0x1F, 0xF3,
-    0x9F, 0x01, 0xCF, 0x00, 0xE7, 0x00, 0x73, 0x80, 0x79, 0xE0, 0xFC, 0x7F,
-    0xEF, 0x9F, 0xE3, 0xC7, 0xE1, 0xE0, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00,
-    0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE3, 0xE0, 0xEF, 0xF8,
-    0xFF, 0xFC, 0xFC, 0x3E, 0xF8, 0x1E, 0xF0, 0x0E, 0xE0, 0x0F, 0xE0, 0x07,
-    0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xF0, 0x0E,
-    0xF8, 0x1E, 0xFC, 0x3C, 0xEF, 0xFC, 0xEF, 0xF8, 0xE3, 0xE0, 0x07, 0xF0,
-    0x1F, 0xF8, 0x3F, 0xFC, 0x3C, 0x1E, 0x78, 0x0E, 0x70, 0x07, 0xE0, 0x00,
-    0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x07,
-    0x70, 0x07, 0x78, 0x0E, 0x7C, 0x1E, 0x3F, 0xFC, 0x1F, 0xF8, 0x07, 0xE0,
-    0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x38, 0x00,
-    0x1C, 0x00, 0x0E, 0x0F, 0xC7, 0x1F, 0xFB, 0x9F, 0xFF, 0xDF, 0x07, 0xEF,
-    0x01, 0xF7, 0x00, 0x7F, 0x80, 0x3F, 0x80, 0x0F, 0xC0, 0x07, 0xE0, 0x03,
-    0xF0, 0x01, 0xF8, 0x00, 0xFC, 0x00, 0x77, 0x00, 0x7B, 0xC0, 0x7D, 0xF0,
-    0x7E, 0x7F, 0xFB, 0x1F, 0xF9, 0x83, 0xF0, 0xC0, 0x07, 0xE0, 0x1F, 0xF8,
-    0x3F, 0xFC, 0x7C, 0x1E, 0x70, 0x0E, 0x60, 0x06, 0xE0, 0x07, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0x70, 0x07,
-    0x78, 0x0E, 0x3C, 0x1E, 0x3F, 0xFC, 0x1F, 0xF8, 0x07, 0xE0, 0x0E, 0x3C,
-    0xF9, 0xC3, 0x87, 0x0E, 0x7F, 0xFF, 0xFC, 0xE1, 0xC3, 0x87, 0x0E, 0x1C,
-    0x38, 0x70, 0xE1, 0xC3, 0x87, 0x0E, 0x1C, 0x38, 0x70, 0x07, 0xC7, 0x1F,
-    0xF7, 0x3F, 0xFF, 0x3C, 0x3F, 0x78, 0x0F, 0x70, 0x0F, 0xE0, 0x07, 0xE0,
-    0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0x70,
-    0x0F, 0x78, 0x0F, 0x7C, 0x3F, 0x3F, 0xF7, 0x1F, 0xE7, 0x07, 0xC7, 0x00,
-    0x07, 0x00, 0x07, 0x00, 0x0E, 0x70, 0x0E, 0x78, 0x1E, 0x3F, 0xFC, 0x1F,
-    0xF8, 0x07, 0xE0, 0xE0, 0x01, 0xC0, 0x03, 0x80, 0x07, 0x00, 0x0E, 0x00,
-    0x1C, 0x00, 0x38, 0x00, 0x71, 0xF8, 0xE7, 0xFD, 0xDF, 0xFB, 0xF0, 0xFF,
-    0xC0, 0xFF, 0x00, 0xFC, 0x01, 0xF8, 0x03, 0xF0, 0x07, 0xE0, 0x0F, 0xC0,
-    0x1F, 0x80, 0x3F, 0x00, 0x7E, 0x00, 0xFC, 0x01, 0xF8, 0x03, 0xF0, 0x07,
-    0xE0, 0x0F, 0xC0, 0x1C, 0xFF, 0xF0, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFC, 0x1C, 0x71, 0xC7, 0x00, 0x00, 0x07, 0x1C, 0x71, 0xC7, 0x1C,
-    0x71, 0xC7, 0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xC7, 0x1C,
-    0x73, 0xFF, 0xFB, 0xC0, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00,
-    0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x3C, 0xE0, 0x78, 0xE0, 0xF0,
-    0xE1, 0xE0, 0xE3, 0xC0, 0xE7, 0x80, 0xEF, 0x00, 0xEF, 0x80, 0xFF, 0x80,
-    0xFB, 0xC0, 0xF1, 0xE0, 0xE0, 0xE0, 0xE0, 0xF0, 0xE0, 0x70, 0xE0, 0x78,
-    0xE0, 0x3C, 0xE0, 0x1C, 0xE0, 0x1E, 0xE0, 0x0E, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xE3, 0xE0, 0xF8, 0xE7, 0xF1, 0xFE,
-    0xEF, 0xFB, 0xFE, 0xF8, 0x7F, 0x0F, 0xF0, 0x3E, 0x07, 0xF0, 0x1C, 0x07,
-    0xE0, 0x1C, 0x07, 0xE0, 0x1C, 0x07, 0xE0, 0x1C, 0x07, 0xE0, 0x1C, 0x07,
-    0xE0, 0x1C, 0x07, 0xE0, 0x1C, 0x07, 0xE0, 0x1C, 0x07, 0xE0, 0x1C, 0x07,
-    0xE0, 0x1C, 0x07, 0xE0, 0x1C, 0x07, 0xE0, 0x1C, 0x07, 0xE0, 0x1C, 0x07,
-    0xE0, 0x1C, 0x07, 0xE3, 0xF1, 0xCF, 0xFB, 0xBF, 0xF7, 0xE1, 0xFF, 0x81,
-    0xFE, 0x01, 0xF8, 0x03, 0xF0, 0x07, 0xE0, 0x0F, 0xC0, 0x1F, 0x80, 0x3F,
-    0x00, 0x7E, 0x00, 0xFC, 0x01, 0xF8, 0x03, 0xF0, 0x07, 0xE0, 0x0F, 0xC0,
-    0x1F, 0x80, 0x38, 0x07, 0xF0, 0x0F, 0xFE, 0x0F, 0xFF, 0x87, 0x83, 0xC7,
-    0x80, 0xF3, 0x80, 0x3B, 0x80, 0x1F, 0xC0, 0x07, 0xE0, 0x03, 0xF0, 0x01,
-    0xF8, 0x00, 0xFC, 0x00, 0x7E, 0x00, 0x3B, 0x80, 0x39, 0xE0, 0x3C, 0x78,
-    0x3C, 0x3F, 0xFE, 0x0F, 0xFE, 0x01, 0xFC, 0x00, 0xE3, 0xE0, 0xE7, 0xF8,
-    0xEF, 0xFC, 0xFC, 0x3E, 0xF8, 0x1E, 0xF0, 0x0E, 0xE0, 0x0F, 0xE0, 0x07,
-    0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xF0, 0x0E,
-    0xF8, 0x1E, 0xFC, 0x3E, 0xFF, 0xFC, 0xEF, 0xF8, 0xE3, 0xE0, 0xE0, 0x00,
-    0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0x07, 0xE1,
-    0x8F, 0xFC, 0xCF, 0xFF, 0x67, 0x83, 0xF7, 0x80, 0xFB, 0x80, 0x3F, 0xC0,
-    0x1F, 0xC0, 0x07, 0xE0, 0x03, 0xF0, 0x01, 0xF8, 0x00, 0xFC, 0x00, 0x7E,
-    0x00, 0x3B, 0x80, 0x3D, 0xE0, 0x3E, 0xF8, 0x3F, 0x3F, 0xFF, 0x8F, 0xFD,
-    0xC1, 0xF8, 0xE0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x0E, 0x00,
-    0x07, 0x00, 0x03, 0x80, 0xE3, 0xF7, 0xFB, 0xFF, 0x8F, 0x07, 0x83, 0x81,
-    0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x07, 0x03, 0x81, 0xC0, 0xE0, 0x70,
-    0x38, 0x00, 0x0F, 0xC0, 0xFF, 0x87, 0xFF, 0x3C, 0x1E, 0xE0, 0x3B, 0x80,
-    0x0E, 0x00, 0x3C, 0x00, 0x7F, 0x00, 0xFF, 0x80, 0xFF, 0x80, 0x7F, 0x00,
-    0x3F, 0x80, 0x7E, 0x01, 0xFC, 0x1F, 0x7F, 0xF8, 0xFF, 0xC1, 0xFC, 0x00,
-    0x38, 0x70, 0xE1, 0xCF, 0xFF, 0xFF, 0x9C, 0x38, 0x70, 0xE1, 0xC3, 0x87,
-    0x0E, 0x1C, 0x38, 0x70, 0xE1, 0xC3, 0xE7, 0xC7, 0x80, 0xE0, 0x0F, 0xC0,
-    0x1F, 0x80, 0x3F, 0x00, 0x7E, 0x00, 0xFC, 0x01, 0xF8, 0x03, 0xF0, 0x07,
-    0xE0, 0x0F, 0xC0, 0x1F, 0x80, 0x3F, 0x00, 0x7E, 0x00, 0xFC, 0x03, 0xFC,
-    0x0F, 0xFC, 0x3F, 0x7F, 0xEE, 0xFF, 0x9C, 0x7E, 0x38, 0x70, 0x03, 0xB8,
-    0x03, 0x9C, 0x01, 0xC7, 0x00, 0xE3, 0x80, 0xE1, 0xC0, 0x70, 0x70, 0x38,
-    0x38, 0x38, 0x1C, 0x1C, 0x07, 0x0E, 0x03, 0x8E, 0x01, 0xC7, 0x00, 0x77,
-    0x00, 0x3B, 0x80, 0x1D, 0xC0, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00,
-    0x70, 0x00, 0xF0, 0x1C, 0x03, 0xB8, 0x1F, 0x03, 0xDC, 0x0F, 0x81, 0xCE,
-    0x07, 0xC0, 0xE7, 0x83, 0xE0, 0x71, 0xC3, 0xB8, 0x70, 0xE1, 0xDC, 0x38,
-    0x70, 0xEE, 0x1C, 0x1C, 0x63, 0x0E, 0x0E, 0x71, 0xCE, 0x07, 0x38, 0xE7,
-    0x03, 0x9C, 0x73, 0x80, 0xEC, 0x19, 0x80, 0x7E, 0x0F, 0xC0, 0x3F, 0x07,
-    0xE0, 0x0F, 0x83, 0xF0, 0x07, 0x80, 0xF0, 0x03, 0xC0, 0x78, 0x01, 0xE0,
-    0x3C, 0x00, 0x70, 0x07, 0x38, 0x0E, 0x3C, 0x1C, 0x1C, 0x1C, 0x0E, 0x38,
-    0x0F, 0x70, 0x07, 0x70, 0x03, 0xE0, 0x03, 0xC0, 0x01, 0xC0, 0x03, 0xE0,
-    0x07, 0xE0, 0x07, 0x70, 0x0E, 0x78, 0x1E, 0x38, 0x1C, 0x1C, 0x38, 0x1E,
-    0x78, 0x0E, 0x70, 0x07, 0x70, 0x07, 0x38, 0x03, 0x9C, 0x01, 0xC7, 0x01,
-    0xC3, 0x80, 0xE1, 0xC0, 0x70, 0x70, 0x70, 0x38, 0x38, 0x1C, 0x3C, 0x07,
-    0x1C, 0x03, 0x8E, 0x01, 0xCE, 0x00, 0x77, 0x00, 0x3B, 0x80, 0x1F, 0x80,
-    0x07, 0xC0, 0x03, 0xE0, 0x01, 0xE0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x38,
-    0x00, 0x1C, 0x00, 0x1E, 0x00, 0x0E, 0x00, 0x3F, 0x00, 0x1F, 0x00, 0x0F,
-    0x00, 0x00, 0x7F, 0xFC, 0xFF, 0xF9, 0xFF, 0xF0, 0x00, 0xE0, 0x03, 0x80,
-    0x0E, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x1C, 0x00, 0x70,
-    0x01, 0xE0, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xF8, 0x07, 0x0F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
-    0x1C, 0x1C, 0x1C, 0x1C, 0x38, 0xF8, 0xE0, 0xF8, 0x38, 0x1C, 0x1C, 0x1C,
-    0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x0F, 0x07, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xE0, 0xF0, 0xF8, 0x38,
-    0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x1C, 0x1F,
-    0x07, 0x1F, 0x1C, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
-    0x38, 0x38, 0xF8, 0xF0, 0xE0, 0x38, 0x00, 0xFC, 0x03, 0xFC, 0x1F, 0x3E,
-    0x3C, 0x1F, 0xE0, 0x1F, 0x80, 0x1E, 0x00};
-
-const GFXglyph FreeSans18pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 9, 0, 1},         // 0x20 ' '
-    {0, 3, 26, 12, 4, -25},     // 0x21 '!'
-    {10, 9, 9, 12, 1, -24},     // 0x22 '"'
-    {21, 19, 24, 19, 0, -23},   // 0x23 '#'
-    {78, 16, 30, 19, 2, -26},   // 0x24 '$'
-    {138, 29, 25, 31, 1, -24},  // 0x25 '%'
-    {229, 20, 25, 23, 2, -24},  // 0x26 '&'
-    {292, 3, 9, 7, 2, -24},     // 0x27 '''
-    {296, 8, 33, 12, 3, -25},   // 0x28 '('
-    {329, 8, 33, 12, 1, -25},   // 0x29 ')'
-    {362, 10, 10, 14, 2, -25},  // 0x2A '*'
-    {375, 16, 16, 20, 2, -15},  // 0x2B '+'
-    {407, 3, 9, 10, 3, -3},     // 0x2C ','
-    {411, 8, 3, 12, 2, -10},    // 0x2D '-'
-    {414, 3, 4, 9, 3, -3},      // 0x2E '.'
-    {416, 10, 26, 10, 0, -25},  // 0x2F '/'
-    {449, 16, 25, 19, 2, -24},  // 0x30 '0'
-    {499, 8, 25, 19, 4, -24},   // 0x31 '1'
-    {524, 16, 25, 19, 2, -24},  // 0x32 '2'
-    {574, 17, 25, 19, 1, -24},  // 0x33 '3'
-    {628, 16, 25, 19, 1, -24},  // 0x34 '4'
-    {678, 17, 25, 19, 1, -24},  // 0x35 '5'
-    {732, 16, 25, 19, 2, -24},  // 0x36 '6'
-    {782, 16, 25, 19, 2, -24},  // 0x37 '7'
-    {832, 17, 25, 19, 1, -24},  // 0x38 '8'
-    {886, 16, 25, 19, 1, -24},  // 0x39 '9'
-    {936, 3, 19, 9, 3, -18},    // 0x3A ':'
-    {944, 3, 24, 9, 3, -18},    // 0x3B ';'
-    {953, 17, 17, 20, 2, -16},  // 0x3C '<'
-    {990, 17, 9, 20, 2, -12},   // 0x3D '='
-    {1010, 17, 17, 20, 2, -16}, // 0x3E '>'
-    {1047, 15, 26, 19, 3, -25}, // 0x3F '?'
-    {1096, 32, 31, 36, 1, -25}, // 0x40 '@'
-    {1220, 22, 26, 23, 1, -25}, // 0x41 'A'
-    {1292, 19, 26, 23, 3, -25}, // 0x42 'B'
-    {1354, 22, 26, 25, 1, -25}, // 0x43 'C'
-    {1426, 20, 26, 24, 3, -25}, // 0x44 'D'
-    {1491, 18, 26, 22, 3, -25}, // 0x45 'E'
-    {1550, 17, 26, 21, 3, -25}, // 0x46 'F'
-    {1606, 24, 26, 27, 1, -25}, // 0x47 'G'
-    {1684, 19, 26, 25, 3, -25}, // 0x48 'H'
-    {1746, 3, 26, 10, 4, -25},  // 0x49 'I'
-    {1756, 14, 26, 18, 1, -25}, // 0x4A 'J'
-    {1802, 20, 26, 24, 3, -25}, // 0x4B 'K'
-    {1867, 15, 26, 20, 3, -25}, // 0x4C 'L'
-    {1916, 24, 26, 30, 3, -25}, // 0x4D 'M'
-    {1994, 20, 26, 26, 3, -25}, // 0x4E 'N'
-    {2059, 25, 26, 27, 1, -25}, // 0x4F 'O'
-    {2141, 18, 26, 23, 3, -25}, // 0x50 'P'
-    {2200, 25, 28, 27, 1, -25}, // 0x51 'Q'
-    {2288, 20, 26, 25, 3, -25}, // 0x52 'R'
-    {2353, 20, 26, 23, 1, -25}, // 0x53 'S'
-    {2418, 19, 26, 22, 1, -25}, // 0x54 'T'
-    {2480, 19, 26, 25, 3, -25}, // 0x55 'U'
-    {2542, 21, 26, 23, 1, -25}, // 0x56 'V'
-    {2611, 32, 26, 33, 0, -25}, // 0x57 'W'
-    {2715, 21, 26, 23, 1, -25}, // 0x58 'X'
-    {2784, 23, 26, 24, 0, -25}, // 0x59 'Y'
-    {2859, 19, 26, 22, 1, -25}, // 0x5A 'Z'
-    {2921, 6, 33, 10, 2, -25},  // 0x5B '['
-    {2946, 10, 26, 10, 0, -25}, // 0x5C '\'
-    {2979, 6, 33, 10, 1, -25},  // 0x5D ']'
-    {3004, 13, 13, 16, 2, -24}, // 0x5E '^'
-    {3026, 21, 2, 19, -1, 5},   // 0x5F '_'
-    {3032, 7, 5, 9, 1, -25},    // 0x60 '`'
-    {3037, 17, 19, 19, 1, -18}, // 0x61 'a'
-    {3078, 16, 26, 20, 2, -25}, // 0x62 'b'
-    {3130, 16, 19, 18, 1, -18}, // 0x63 'c'
-    {3168, 17, 26, 20, 1, -25}, // 0x64 'd'
-    {3224, 16, 19, 19, 1, -18}, // 0x65 'e'
-    {3262, 7, 26, 10, 1, -25},  // 0x66 'f'
-    {3285, 16, 27, 19, 1, -18}, // 0x67 'g'
-    {3339, 15, 26, 19, 2, -25}, // 0x68 'h'
-    {3388, 3, 26, 8, 2, -25},   // 0x69 'i'
-    {3398, 6, 34, 9, 0, -25},   // 0x6A 'j'
-    {3424, 16, 26, 18, 2, -25}, // 0x6B 'k'
-    {3476, 3, 26, 7, 2, -25},   // 0x6C 'l'
-    {3486, 24, 19, 28, 2, -18}, // 0x6D 'm'
-    {3543, 15, 19, 19, 2, -18}, // 0x6E 'n'
-    {3579, 17, 19, 19, 1, -18}, // 0x6F 'o'
-    {3620, 16, 25, 20, 2, -18}, // 0x70 'p'
-    {3670, 17, 25, 20, 1, -18}, // 0x71 'q'
-    {3724, 9, 19, 12, 2, -18},  // 0x72 'r'
-    {3746, 14, 19, 17, 2, -18}, // 0x73 's'
-    {3780, 7, 23, 10, 1, -22},  // 0x74 't'
-    {3801, 15, 19, 19, 2, -18}, // 0x75 'u'
-    {3837, 17, 19, 17, 0, -18}, // 0x76 'v'
-    {3878, 25, 19, 25, 0, -18}, // 0x77 'w'
-    {3938, 16, 19, 17, 0, -18}, // 0x78 'x'
-    {3976, 17, 27, 17, 0, -18}, // 0x79 'y'
-    {4034, 15, 19, 17, 1, -18}, // 0x7A 'z'
-    {4070, 8, 33, 12, 1, -25},  // 0x7B '{'
-    {4103, 2, 33, 9, 3, -25},   // 0x7C '|'
-    {4112, 8, 33, 12, 3, -25},  // 0x7D '}'
-    {4145, 15, 7, 18, 1, -15}}; // 0x7E '~'
-
-const GFXfont FreeSans18pt7b PROGMEM = {(uint8_t *)FreeSans18pt7bBitmaps,
-                                        (GFXglyph *)FreeSans18pt7bGlyphs, 0x20,
-                                        0x7E, 42};
-
-// Approx. 4831 bytes

+ 0 - 726
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeSans24pt7b.h

@@ -1,726 +0,0 @@
-const uint8_t FreeSans24pt7bBitmaps[] PROGMEM = {
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x76, 0x66,
-    0x66, 0x00, 0x0F, 0xFF, 0xFF, 0xF1, 0xFE, 0x3F, 0xC7, 0xF8, 0xFF, 0x1F,
-    0xE3, 0xFC, 0x7F, 0x8F, 0xF1, 0xEC, 0x19, 0x83, 0x30, 0x60, 0x00, 0x70,
-    0x3C, 0x00, 0x70, 0x3C, 0x00, 0xF0, 0x38, 0x00, 0xF0, 0x38, 0x00, 0xF0,
-    0x78, 0x00, 0xE0, 0x78, 0x00, 0xE0, 0x78, 0x01, 0xE0, 0x70, 0x01, 0xE0,
-    0x70, 0x7F, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x03, 0xC0,
-    0xE0, 0x03, 0xC0, 0xE0, 0x03, 0xC0, 0xE0, 0x03, 0x81, 0xE0, 0x03, 0x81,
-    0xE0, 0x03, 0x81, 0xE0, 0x07, 0x81, 0xC0, 0x07, 0x81, 0xC0, 0xFF, 0xFF,
-    0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0x0F, 0x03, 0x80, 0x0F, 0x03,
-    0x80, 0x0F, 0x07, 0x80, 0x0E, 0x07, 0x80, 0x0E, 0x07, 0x80, 0x1E, 0x07,
-    0x00, 0x1E, 0x07, 0x00, 0x1E, 0x07, 0x00, 0x1C, 0x0F, 0x00, 0x1C, 0x0F,
-    0x00, 0x00, 0x38, 0x00, 0x01, 0xFC, 0x00, 0x1F, 0xFE, 0x00, 0x7F, 0xFE,
-    0x01, 0xFF, 0xFE, 0x07, 0xE7, 0x3E, 0x0F, 0x8E, 0x3C, 0x3E, 0x1C, 0x3C,
-    0x78, 0x38, 0x38, 0xF0, 0x70, 0x71, 0xE0, 0xE0, 0xE3, 0xC1, 0xC0, 0x07,
-    0x83, 0x80, 0x0F, 0x87, 0x00, 0x0F, 0x8E, 0x00, 0x1F, 0xDC, 0x00, 0x1F,
-    0xF8, 0x00, 0x1F, 0xFF, 0x00, 0x0F, 0xFF, 0x80, 0x07, 0xFF, 0x80, 0x03,
-    0xFF, 0x80, 0x07, 0x1F, 0x80, 0x0E, 0x1F, 0x00, 0x1C, 0x1F, 0x00, 0x38,
-    0x1F, 0xC0, 0x70, 0x3F, 0x80, 0xE0, 0x7F, 0x81, 0xC0, 0xFF, 0x03, 0x81,
-    0xEF, 0x07, 0x07, 0x9F, 0x0E, 0x0F, 0x3E, 0x1C, 0x3E, 0x3F, 0x39, 0xF8,
-    0x3F, 0xFF, 0xE0, 0x3F, 0xFF, 0x00, 0x0F, 0xF8, 0x00, 0x03, 0x80, 0x00,
-    0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00,
-    0x00, 0x00, 0x1C, 0x00, 0x0F, 0xC0, 0x00, 0x78, 0x00, 0x3F, 0xE0, 0x00,
-    0xE0, 0x01, 0xFF, 0xE0, 0x03, 0x80, 0x03, 0xFF, 0xE0, 0x07, 0x00, 0x0F,
-    0x87, 0xC0, 0x1C, 0x00, 0x3C, 0x03, 0xC0, 0x38, 0x00, 0x70, 0x03, 0x80,
-    0xE0, 0x00, 0xE0, 0x07, 0x03, 0xC0, 0x01, 0xC0, 0x0E, 0x07, 0x00, 0x03,
-    0x80, 0x1C, 0x1E, 0x00, 0x07, 0x80, 0x78, 0x38, 0x00, 0x07, 0xC3, 0xE0,
-    0xF0, 0x00, 0x07, 0xFF, 0xC1, 0xC0, 0x00, 0x0F, 0xFF, 0x07, 0x80, 0x00,
-    0x0F, 0xFC, 0x0E, 0x00, 0x00, 0x07, 0xE0, 0x38, 0x00, 0x00, 0x00, 0x00,
-    0x70, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x3F, 0x00, 0x00, 0x03, 0x80, 0xFF,
-    0x80, 0x00, 0x0E, 0x07, 0xFF, 0x80, 0x00, 0x3C, 0x0F, 0xFF, 0x80, 0x00,
-    0x70, 0x3E, 0x1F, 0x00, 0x01, 0xE0, 0xF0, 0x0F, 0x00, 0x03, 0x81, 0xC0,
-    0x0E, 0x00, 0x0F, 0x03, 0x80, 0x1C, 0x00, 0x1C, 0x07, 0x00, 0x38, 0x00,
-    0x78, 0x0E, 0x00, 0x70, 0x00, 0xE0, 0x1E, 0x01, 0xE0, 0x03, 0x80, 0x1F,
-    0x0F, 0x80, 0x07, 0x00, 0x1F, 0xFF, 0x00, 0x1C, 0x00, 0x3F, 0xFC, 0x00,
-    0x38, 0x00, 0x1F, 0xF0, 0x00, 0xE0, 0x00, 0x1F, 0x80, 0x00, 0x7E, 0x00,
-    0x00, 0x1F, 0xF0, 0x00, 0x03, 0xFF, 0x80, 0x00, 0x7F, 0xFC, 0x00, 0x07,
-    0xC3, 0xC0, 0x00, 0xF8, 0x1E, 0x00, 0x0F, 0x00, 0xE0, 0x00, 0xF0, 0x0E,
-    0x00, 0x0F, 0x00, 0xE0, 0x00, 0xF0, 0x0E, 0x00, 0x07, 0x81, 0xE0, 0x00,
-    0x7C, 0x3C, 0x00, 0x03, 0xEF, 0x80, 0x00, 0x1F, 0xF0, 0x00, 0x01, 0xFE,
-    0x00, 0x00, 0x1F, 0x80, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0xE0, 0x00,
-    0x1F, 0x1E, 0x07, 0x83, 0xE0, 0xF0, 0x78, 0x7C, 0x0F, 0x8F, 0x87, 0x80,
-    0x7C, 0xF0, 0xF0, 0x03, 0xFF, 0x0F, 0x00, 0x1F, 0xE0, 0xF0, 0x00, 0xFE,
-    0x0F, 0x00, 0x0F, 0xC0, 0xF0, 0x00, 0x7E, 0x0F, 0x80, 0x0F, 0xF0, 0x7C,
-    0x01, 0xFF, 0x07, 0xF0, 0x7D, 0xF8, 0x3F, 0xFF, 0x8F, 0xC1, 0xFF, 0xF0,
-    0x7E, 0x0F, 0xFE, 0x03, 0xE0, 0x3F, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xF6, 0x66, 0x01, 0xC0, 0x70, 0x38, 0x1C, 0x07, 0x03, 0xC0, 0xE0, 0x78,
-    0x1C, 0x07, 0x03, 0xC0, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x70, 0x3C,
-    0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03,
-    0xC0, 0x70, 0x1E, 0x07, 0x81, 0xE0, 0x38, 0x0F, 0x03, 0xC0, 0x70, 0x1E,
-    0x03, 0x80, 0xE0, 0x1C, 0x07, 0x00, 0xE0, 0x18, 0x07, 0xE0, 0x38, 0x07,
-    0x01, 0xC0, 0x38, 0x0F, 0x01, 0xC0, 0x78, 0x0E, 0x03, 0x80, 0xF0, 0x1C,
-    0x07, 0x01, 0xE0, 0x78, 0x1E, 0x03, 0x80, 0xF0, 0x3C, 0x0F, 0x03, 0xC0,
-    0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x07, 0x81, 0xE0, 0x78,
-    0x1E, 0x07, 0x03, 0xC0, 0xF0, 0x38, 0x1E, 0x07, 0x01, 0xC0, 0xE0, 0x38,
-    0x1C, 0x06, 0x03, 0x80, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x63,
-    0x1B, 0xFF, 0xFF, 0xFF, 0xC3, 0xF0, 0x07, 0x80, 0x3F, 0x01, 0xCE, 0x07,
-    0x3C, 0x38, 0x70, 0x21, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00,
-    0xE0, 0x00, 0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0x0E,
-    0x00, 0x00, 0x1C, 0x00, 0x00, 0x38, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x07, 0x00, 0x00, 0x0E, 0x00,
-    0x00, 0x1C, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xE0, 0x00,
-    0x01, 0xC0, 0x00, 0x03, 0x80, 0x00, 0x07, 0x00, 0x00, 0xFF, 0xFF, 0xF3,
-    0x33, 0x36, 0xEC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xF0,
-    0x00, 0x38, 0x01, 0xC0, 0x0C, 0x00, 0xE0, 0x07, 0x00, 0x30, 0x03, 0x80,
-    0x1C, 0x00, 0xC0, 0x06, 0x00, 0x70, 0x03, 0x80, 0x18, 0x01, 0xC0, 0x0E,
-    0x00, 0x60, 0x03, 0x00, 0x38, 0x01, 0x80, 0x0C, 0x00, 0xE0, 0x07, 0x00,
-    0x30, 0x03, 0x80, 0x1C, 0x00, 0xC0, 0x06, 0x00, 0x70, 0x03, 0x80, 0x18,
-    0x01, 0xC0, 0x0E, 0x00, 0x60, 0x07, 0x00, 0x38, 0x00, 0x00, 0xFC, 0x00,
-    0x0F, 0xFC, 0x00, 0xFF, 0xFC, 0x07, 0xFF, 0xF8, 0x1F, 0x87, 0xE0, 0xF8,
-    0x07, 0xC3, 0xC0, 0x0F, 0x1F, 0x00, 0x3E, 0x78, 0x00, 0x79, 0xE0, 0x01,
-    0xE7, 0x80, 0x07, 0xBC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0xFF,
-    0x00, 0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x00,
-    0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x00, 0x03,
-    0xDE, 0x00, 0x1E, 0x78, 0x00, 0x79, 0xE0, 0x01, 0xE7, 0xC0, 0x0F, 0x8F,
-    0x00, 0x3C, 0x3E, 0x01, 0xF0, 0x7C, 0x1F, 0x81, 0xFF, 0xFE, 0x03, 0xFF,
-    0xF0, 0x03, 0xFF, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x60, 0x1C, 0x03, 0x80,
-    0xF0, 0x3E, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x3C, 0x07, 0x80, 0xF0,
-    0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E,
-    0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03,
-    0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x01, 0xFE, 0x00, 0x1F, 0xFE, 0x01, 0xFF,
-    0xFE, 0x0F, 0xFF, 0xFC, 0x3F, 0x03, 0xF9, 0xF0, 0x03, 0xE7, 0x80, 0x07,
-    0xFE, 0x00, 0x1F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x00, 0x03, 0xC0,
-    0x00, 0x0F, 0x00, 0x00, 0x7C, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00,
-    0x7C, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x80, 0x07, 0xF8, 0x00, 0x3F, 0xC0,
-    0x03, 0xFC, 0x00, 0x1F, 0xC0, 0x00, 0xFC, 0x00, 0x07, 0xC0, 0x00, 0x3E,
-    0x00, 0x00, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x1C, 0x00, 0x00, 0x70, 0x00,
-    0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,
-    0x00, 0xFE, 0x00, 0x0F, 0xFF, 0x80, 0x3F, 0xFF, 0x80, 0xFF, 0xFF, 0x83,
-    0xF0, 0x1F, 0x87, 0xC0, 0x1F, 0x1F, 0x00, 0x1F, 0x3C, 0x00, 0x1E, 0x78,
-    0x00, 0x3C, 0xF0, 0x00, 0x78, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xE0, 0x00,
-    0x07, 0x80, 0x00, 0x7F, 0x00, 0x1F, 0xFC, 0x00, 0x3F, 0xE0, 0x00, 0x7F,
-    0xE0, 0x00, 0xFF, 0xF0, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x03,
-    0xE0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x0F, 0xF0, 0x00, 0x1F,
-    0xE0, 0x00, 0x3F, 0xE0, 0x00, 0xFB, 0xC0, 0x01, 0xE7, 0xC0, 0x07, 0xC7,
-    0xE0, 0x3F, 0x0F, 0xFF, 0xFE, 0x0F, 0xFF, 0xF8, 0x07, 0xFF, 0xC0, 0x03,
-    0xFC, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x1F, 0x00, 0x00,
-    0x7E, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xF0, 0x00, 0x3F,
-    0xE0, 0x00, 0x7B, 0xC0, 0x01, 0xE7, 0x80, 0x07, 0x8F, 0x00, 0x0F, 0x1E,
-    0x00, 0x3C, 0x3C, 0x00, 0xF0, 0x78, 0x03, 0xC0, 0xF0, 0x07, 0x81, 0xE0,
-    0x1E, 0x03, 0xC0, 0x78, 0x07, 0x81, 0xE0, 0x0F, 0x03, 0xC0, 0x1E, 0x0F,
-    0x00, 0x3C, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFE, 0x00, 0x07, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x1E, 0x00, 0x00,
-    0x3C, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xE0, 0x00, 0x03,
-    0xC0, 0x1F, 0xFF, 0xF0, 0x7F, 0xFF, 0xC1, 0xFF, 0xFF, 0x07, 0xFF, 0xFC,
-    0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C,
-    0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x1F, 0x3F, 0x80, 0x7B, 0xFF,
-    0x81, 0xFF, 0xFF, 0x07, 0xFF, 0xFE, 0x1F, 0x80, 0xFC, 0x78, 0x01, 0xF8,
-    0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00,
-    0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3F, 0xC0, 0x00,
-    0xFF, 0x80, 0x07, 0x9E, 0x00, 0x1E, 0x7C, 0x00, 0xF1, 0xFC, 0x0F, 0xC3,
-    0xFF, 0xFE, 0x07, 0xFF, 0xF0, 0x0F, 0xFF, 0x80, 0x07, 0xF0, 0x00, 0x00,
-    0xFE, 0x00, 0x0F, 0xFE, 0x00, 0x7F, 0xFC, 0x03, 0xFF, 0xF8, 0x1F, 0x83,
-    0xF0, 0xF8, 0x07, 0xC3, 0xC0, 0x0F, 0x8F, 0x00, 0x1E, 0x78, 0x00, 0x79,
-    0xE0, 0x00, 0x07, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0xFE, 0x03, 0xCF,
-    0xFE, 0x0F, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0xFF, 0x03, 0xF3, 0xF0, 0x03,
-    0xEF, 0x80, 0x07, 0xBE, 0x00, 0x1F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0xFF,
-    0x00, 0x03, 0xFC, 0x00, 0x0F, 0x70, 0x00, 0x3D, 0xC0, 0x00, 0xF7, 0x80,
-    0x07, 0x9F, 0x00, 0x3E, 0x3E, 0x00, 0xF8, 0xFC, 0x0F, 0xC1, 0xFF, 0xFE,
-    0x03, 0xFF, 0xF0, 0x07, 0xFF, 0x80, 0x07, 0xF8, 0x00, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x07, 0x00, 0x00,
-    0x78, 0x00, 0x07, 0x80, 0x00, 0x38, 0x00, 0x03, 0xC0, 0x00, 0x3C, 0x00,
-    0x01, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x70,
-    0x00, 0x07, 0x80, 0x00, 0x38, 0x00, 0x03, 0xC0, 0x00, 0x1C, 0x00, 0x01,
-    0xE0, 0x00, 0x0E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x38, 0x00,
-    0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78,
-    0x00, 0x03, 0xC0, 0x00, 0x1C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00,
-    0x01, 0xFE, 0x00, 0x1F, 0xFE, 0x00, 0xFF, 0xFC, 0x07, 0xFF, 0xF8, 0x3F,
-    0x03, 0xF1, 0xF0, 0x03, 0xC7, 0xC0, 0x0F, 0x9E, 0x00, 0x1E, 0x78, 0x00,
-    0x79, 0xE0, 0x01, 0xE7, 0x80, 0x0F, 0x8F, 0x00, 0x3C, 0x3F, 0x03, 0xF0,
-    0x7F, 0xFF, 0x80, 0x7F, 0xF8, 0x03, 0xFF, 0xF0, 0x1F, 0xFF, 0xE0, 0xFC,
-    0x0F, 0xC7, 0xC0, 0x0F, 0x9E, 0x00, 0x1E, 0xF8, 0x00, 0x7F, 0xC0, 0x00,
-    0xFF, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0xFF,
-    0x80, 0x07, 0xDE, 0x00, 0x1E, 0x7C, 0x00, 0xF8, 0xFC, 0x0F, 0xC3, 0xFF,
-    0xFF, 0x07, 0xFF, 0xF8, 0x07, 0xFF, 0x80, 0x07, 0xF8, 0x00, 0x01, 0xFC,
-    0x00, 0x3F, 0xF8, 0x03, 0xFF, 0xE0, 0x3F, 0xFF, 0x83, 0xF0, 0x7E, 0x3E,
-    0x00, 0xF1, 0xE0, 0x07, 0xCF, 0x00, 0x1E, 0xF0, 0x00, 0x77, 0x80, 0x03,
-    0xBC, 0x00, 0x1F, 0xE0, 0x00, 0xFF, 0x00, 0x07, 0xF8, 0x00, 0x3F, 0xE0,
-    0x03, 0xEF, 0x00, 0x1F, 0x7C, 0x01, 0xF9, 0xF8, 0x3F, 0xCF, 0xFF, 0xFE,
-    0x3F, 0xFE, 0xF0, 0xFF, 0xE7, 0x80, 0xFC, 0x3C, 0x00, 0x01, 0xE0, 0x00,
-    0x0E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x9E, 0x00, 0x3C, 0xF0, 0x03, 0xC7,
-    0xC0, 0x3E, 0x1F, 0x03, 0xE0, 0xFF, 0xFE, 0x03, 0xFF, 0xE0, 0x0F, 0xFE,
-    0x00, 0x1F, 0xC0, 0x00, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0xFF, 0xFF, 0xF3, 0x33, 0x36, 0xEC, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x1C, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0xC0,
-    0x03, 0xFC, 0x00, 0x3F, 0xE0, 0x01, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF,
-    0x80, 0x03, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x0F, 0xF0,
-    0x00, 0x07, 0xFC, 0x00, 0x03, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F,
-    0xC0, 0x00, 0x3F, 0xE0, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x01,
-    0xC0, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xF0, 0x80, 0x00, 0x01, 0xC0, 0x00, 0x03, 0xF0, 0x00, 0x07,
-    0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFF, 0x00, 0x00, 0xFF, 0x80, 0x00,
-    0x3F, 0xC0, 0x00, 0x1F, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xF8, 0x00,
-    0x01, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x3F, 0xC0, 0x03, 0xFC, 0x00, 0x1F,
-    0xE0, 0x01, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x80, 0x07, 0xFC, 0x00,
-    0x0F, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x03, 0xF8,
-    0x00, 0xFF, 0xF0, 0x1F, 0xFF, 0x83, 0xFF, 0xFC, 0x7E, 0x0F, 0xE7, 0x80,
-    0x3E, 0x78, 0x01, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0,
-    0x00, 0xF0, 0x00, 0x1F, 0x00, 0x01, 0xE0, 0x00, 0x3E, 0x00, 0x07, 0xC0,
-    0x00, 0xF8, 0x00, 0x3F, 0x00, 0x07, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80,
-    0x01, 0xF0, 0x00, 0x1E, 0x00, 0x01, 0xE0, 0x00, 0x1E, 0x00, 0x01, 0xE0,
-    0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x01, 0xE0, 0x00, 0x1E, 0x00, 0x01, 0xE0, 0x00, 0x1E, 0x00, 0x01,
-    0xE0, 0x00, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xC0,
-    0x00, 0x00, 0x3F, 0xFF, 0xFE, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF0, 0x00,
-    0x07, 0xFC, 0x03, 0xFF, 0x00, 0x01, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x7E,
-    0x00, 0x00, 0x7F, 0x00, 0x1F, 0x00, 0x00, 0x03, 0xF0, 0x07, 0xC0, 0x00,
-    0x00, 0x3F, 0x01, 0xF0, 0x00, 0x00, 0x03, 0xF0, 0x3C, 0x00, 0x7E, 0x00,
-    0x3E, 0x0F, 0x00, 0x3F, 0xE3, 0xC3, 0xE3, 0xE0, 0x1F, 0xFE, 0x78, 0x3C,
-    0x78, 0x07, 0xE1, 0xFF, 0x07, 0xDF, 0x01, 0xF0, 0x1F, 0xC0, 0xFB, 0xC0,
-    0x7C, 0x01, 0xF8, 0x0F, 0x78, 0x0F, 0x00, 0x3F, 0x01, 0xEF, 0x03, 0xC0,
-    0x07, 0xC0, 0x3F, 0xC0, 0x78, 0x00, 0xF8, 0x07, 0xF8, 0x0F, 0x00, 0x1F,
-    0x00, 0xFF, 0x03, 0xC0, 0x03, 0xC0, 0x1F, 0xE0, 0x78, 0x00, 0x78, 0x07,
-    0xFC, 0x0F, 0x00, 0x1F, 0x00, 0xF7, 0x81, 0xE0, 0x03, 0xC0, 0x1E, 0xF0,
-    0x3C, 0x00, 0x78, 0x07, 0x9E, 0x07, 0x80, 0x1F, 0x01, 0xF3, 0xE0, 0xF8,
-    0x07, 0xC0, 0x3C, 0x3C, 0x0F, 0x81, 0xF8, 0x0F, 0x87, 0x81, 0xF8, 0x7F,
-    0x87, 0xE0, 0xF8, 0x1F, 0xFE, 0xFF, 0xF8, 0x0F, 0x01, 0xFF, 0x1F, 0xFC,
-    0x01, 0xF0, 0x0F, 0x80, 0xFE, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x03,
-    0xF0, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF8,
-    0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x03, 0xFE, 0x00,
-    0x7C, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0x80, 0x00, 0x01, 0xFF, 0xFF, 0xF8,
-    0x00, 0x00, 0x0F, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00,
-    0x00, 0x0F, 0xC0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00,
-    0x07, 0xF8, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x00, 0xF7, 0xC0, 0x00, 0x03,
-    0xDF, 0x00, 0x00, 0x1F, 0x3C, 0x00, 0x00, 0x78, 0xF8, 0x00, 0x01, 0xE3,
-    0xE0, 0x00, 0x0F, 0x87, 0x80, 0x00, 0x3C, 0x1F, 0x00, 0x01, 0xF0, 0x7C,
-    0x00, 0x07, 0x80, 0xF0, 0x00, 0x1E, 0x03, 0xE0, 0x00, 0xF8, 0x0F, 0x80,
-    0x03, 0xC0, 0x1E, 0x00, 0x0F, 0x00, 0x7C, 0x00, 0x7C, 0x01, 0xF0, 0x01,
-    0xE0, 0x03, 0xC0, 0x07, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xFE, 0x00, 0xFF,
-    0xFF, 0xFC, 0x07, 0xFF, 0xFF, 0xF0, 0x1F, 0x00, 0x07, 0xC0, 0x78, 0x00,
-    0x0F, 0x83, 0xE0, 0x00, 0x3E, 0x0F, 0x80, 0x00, 0xF8, 0x3C, 0x00, 0x01,
-    0xF1, 0xF0, 0x00, 0x07, 0xC7, 0xC0, 0x00, 0x1F, 0x1E, 0x00, 0x00, 0x3E,
-    0xF8, 0x00, 0x00, 0xFB, 0xE0, 0x00, 0x01, 0xE0, 0xFF, 0xFF, 0x80, 0x7F,
-    0xFF, 0xF0, 0x3F, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0x0F, 0x00, 0x0F, 0xC7,
-    0x80, 0x01, 0xE3, 0xC0, 0x00, 0xF9, 0xE0, 0x00, 0x3C, 0xF0, 0x00, 0x1E,
-    0x78, 0x00, 0x0F, 0x3C, 0x00, 0x07, 0x9E, 0x00, 0x07, 0x8F, 0x00, 0x03,
-    0xC7, 0x80, 0x07, 0xC3, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF,
-    0xF8, 0x7F, 0xFF, 0xFE, 0x3C, 0x00, 0x0F, 0x9E, 0x00, 0x03, 0xEF, 0x00,
-    0x00, 0xF7, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x0F, 0xF0,
-    0x00, 0x07, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x01, 0xFF,
-    0x00, 0x01, 0xF7, 0x80, 0x01, 0xFB, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xF8,
-    0xFF, 0xFF, 0xF8, 0x7F, 0xFF, 0xF0, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x07,
-    0xFF, 0xE0, 0x00, 0x7F, 0xFF, 0xC0, 0x0F, 0xFF, 0xFF, 0x00, 0xFE, 0x01,
-    0xF8, 0x07, 0xC0, 0x03, 0xE0, 0x7C, 0x00, 0x0F, 0x87, 0xC0, 0x00, 0x3C,
-    0x3C, 0x00, 0x01, 0xE3, 0xE0, 0x00, 0x07, 0x9E, 0x00, 0x00, 0x3C, 0xF0,
-    0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x78, 0x00, 0x00, 0x03, 0xC0, 0x00,
-    0x00, 0x1E, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00,
-    0x3C, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x78,
-    0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x78, 0x00,
-    0x00, 0x7B, 0xC0, 0x00, 0x07, 0xDF, 0x00, 0x00, 0x3C, 0x78, 0x00, 0x01,
-    0xE3, 0xE0, 0x00, 0x1F, 0x0F, 0x80, 0x01, 0xF0, 0x3E, 0x00, 0x1F, 0x81,
-    0xFE, 0x03, 0xF8, 0x07, 0xFF, 0xFF, 0x80, 0x0F, 0xFF, 0xF8, 0x00, 0x3F,
-    0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0xFF, 0x80, 0x1F, 0xFF, 0xFE,
-    0x03, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xFE, 0x0F, 0x00, 0x0F, 0xE1, 0xE0,
-    0x00, 0x7E, 0x3C, 0x00, 0x07, 0xE7, 0x80, 0x00, 0x7C, 0xF0, 0x00, 0x07,
-    0xDE, 0x00, 0x00, 0x7B, 0xC0, 0x00, 0x0F, 0x78, 0x00, 0x01, 0xEF, 0x00,
-    0x00, 0x1F, 0xE0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x0F,
-    0xF0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x07, 0xF8, 0x00,
-    0x00, 0xFF, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xF7,
-    0x80, 0x00, 0x1E, 0xF0, 0x00, 0x03, 0xDE, 0x00, 0x00, 0xFB, 0xC0, 0x00,
-    0x3E, 0x78, 0x00, 0x0F, 0xCF, 0x00, 0x03, 0xF1, 0xE0, 0x01, 0xFC, 0x3F,
-    0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xF0, 0x1F, 0xFF, 0xF0,
-    0x00, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF,
-    0xFE, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00,
-    0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00,
-    0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xFF, 0xFF,
-    0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xF0, 0x00,
-    0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00,
-    0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00,
-    0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F,
-    0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00,
-    0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00,
-    0x3F, 0xFF, 0xFC, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0x3C,
-    0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00,
-    0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00,
-    0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0,
-    0x00, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0xFF, 0xFE,
-    0x00, 0x07, 0xFF, 0xFF, 0x00, 0x1F, 0xFF, 0xFF, 0x00, 0x7F, 0x80, 0x7F,
-    0x01, 0xF8, 0x00, 0x3F, 0x07, 0xE0, 0x00, 0x1F, 0x0F, 0x80, 0x00, 0x1E,
-    0x3E, 0x00, 0x00, 0x3E, 0x78, 0x00, 0x00, 0x3D, 0xF0, 0x00, 0x00, 0x03,
-    0xC0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x3C,
-    0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x01, 0xE0,
-    0x00, 0xFF, 0xFF, 0xC0, 0x01, 0xFF, 0xFF, 0x80, 0x03, 0xFF, 0xFF, 0x00,
-    0x07, 0xFF, 0xFE, 0x00, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x07, 0xBC, 0x00,
-    0x00, 0x0F, 0x78, 0x00, 0x00, 0x1E, 0xF8, 0x00, 0x00, 0x7D, 0xF0, 0x00,
-    0x00, 0xF9, 0xF0, 0x00, 0x03, 0xF3, 0xF0, 0x00, 0x07, 0xE3, 0xF0, 0x00,
-    0x1F, 0xC3, 0xF0, 0x00, 0xFF, 0x83, 0xFC, 0x07, 0xEF, 0x03, 0xFF, 0xFF,
-    0x9E, 0x03, 0xFF, 0xFE, 0x1C, 0x01, 0xFF, 0xF0, 0x38, 0x00, 0x7F, 0x80,
-    0x00, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0,
-    0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F,
-    0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00,
-    0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00,
-    0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00,
-    0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00,
-    0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC,
-    0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03,
-    0xFC, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0xE0,
-    0x00, 0x3C, 0x00, 0x07, 0x80, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0xC0,
-    0x00, 0x78, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x07, 0x80,
-    0x00, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x0F, 0x00,
-    0x01, 0xE0, 0x00, 0x3C, 0x00, 0x07, 0x80, 0x00, 0xF0, 0x00, 0x1E, 0x00,
-    0x03, 0xC0, 0x00, 0x7F, 0x80, 0x0F, 0xF0, 0x01, 0xFE, 0x00, 0x3F, 0xC0,
-    0x07, 0xF8, 0x01, 0xFF, 0x80, 0x3E, 0xF0, 0x0F, 0x9F, 0x83, 0xF1, 0xFF,
-    0xFC, 0x3F, 0xFF, 0x01, 0xFF, 0xC0, 0x0F, 0xE0, 0x00, 0xF0, 0x00, 0x07,
-    0xDE, 0x00, 0x01, 0xF3, 0xC0, 0x00, 0x7C, 0x78, 0x00, 0x1F, 0x0F, 0x00,
-    0x07, 0xC1, 0xE0, 0x01, 0xF0, 0x3C, 0x00, 0x7C, 0x07, 0x80, 0x1F, 0x00,
-    0xF0, 0x07, 0xC0, 0x1E, 0x01, 0xF0, 0x03, 0xC0, 0x7C, 0x00, 0x78, 0x1F,
-    0x00, 0x0F, 0x07, 0xC0, 0x01, 0xE1, 0xF0, 0x00, 0x3C, 0x7E, 0x00, 0x07,
-    0x9F, 0xE0, 0x00, 0xF7, 0xFE, 0x00, 0x1F, 0xF7, 0xC0, 0x03, 0xFC, 0x7C,
-    0x00, 0x7F, 0x07, 0xC0, 0x0F, 0xC0, 0xF8, 0x01, 0xF0, 0x0F, 0x80, 0x3C,
-    0x00, 0xF8, 0x07, 0x80, 0x1F, 0x80, 0xF0, 0x01, 0xF0, 0x1E, 0x00, 0x1F,
-    0x03, 0xC0, 0x03, 0xF0, 0x78, 0x00, 0x3E, 0x0F, 0x00, 0x03, 0xE1, 0xE0,
-    0x00, 0x3E, 0x3C, 0x00, 0x07, 0xC7, 0x80, 0x00, 0x7C, 0xF0, 0x00, 0x07,
-    0xDE, 0x00, 0x00, 0xFC, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01,
-    0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00,
-    0x00, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x0F,
-    0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00,
-    0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78,
-    0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00,
-    0x3C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFC, 0x00,
-    0x00, 0x3F, 0xFC, 0x00, 0x00, 0x3F, 0xFE, 0x00, 0x00, 0x7F, 0xFE, 0x00,
-    0x00, 0x7F, 0xFE, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00,
-    0x00, 0xFF, 0xF7, 0x00, 0x00, 0xEF, 0xF7, 0x80, 0x01, 0xEF, 0xF7, 0x80,
-    0x01, 0xEF, 0xF3, 0xC0, 0x01, 0xCF, 0xF3, 0xC0, 0x03, 0xCF, 0xF3, 0xC0,
-    0x03, 0xCF, 0xF1, 0xE0, 0x03, 0x8F, 0xF1, 0xE0, 0x07, 0x8F, 0xF1, 0xE0,
-    0x07, 0x8F, 0xF0, 0xF0, 0x0F, 0x0F, 0xF0, 0xF0, 0x0F, 0x0F, 0xF0, 0xF0,
-    0x0F, 0x0F, 0xF0, 0x78, 0x1E, 0x0F, 0xF0, 0x78, 0x1E, 0x0F, 0xF0, 0x78,
-    0x1E, 0x0F, 0xF0, 0x3C, 0x3C, 0x0F, 0xF0, 0x3C, 0x3C, 0x0F, 0xF0, 0x3C,
-    0x3C, 0x0F, 0xF0, 0x1E, 0x78, 0x0F, 0xF0, 0x1E, 0x78, 0x0F, 0xF0, 0x0E,
-    0x78, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x07,
-    0xF0, 0x0F, 0xF0, 0x07, 0xE0, 0x0F, 0xF0, 0x07, 0xE0, 0x0F, 0xF0, 0x03,
-    0xE0, 0x0F, 0xF8, 0x00, 0x03, 0xFF, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x3F,
-    0xF8, 0x00, 0x0F, 0xFE, 0x00, 0x03, 0xFF, 0xC0, 0x00, 0xFF, 0xF8, 0x00,
-    0x3F, 0xDE, 0x00, 0x0F, 0xF7, 0xC0, 0x03, 0xFC, 0xF8, 0x00, 0xFF, 0x1E,
-    0x00, 0x3F, 0xC7, 0xC0, 0x0F, 0xF0, 0xF0, 0x03, 0xFC, 0x3E, 0x00, 0xFF,
-    0x07, 0xC0, 0x3F, 0xC0, 0xF0, 0x0F, 0xF0, 0x3E, 0x03, 0xFC, 0x07, 0xC0,
-    0xFF, 0x00, 0xF0, 0x3F, 0xC0, 0x3E, 0x0F, 0xF0, 0x07, 0x83, 0xFC, 0x01,
-    0xF0, 0xFF, 0x00, 0x3E, 0x3F, 0xC0, 0x07, 0x8F, 0xF0, 0x01, 0xF3, 0xFC,
-    0x00, 0x3E, 0xFF, 0x00, 0x07, 0xBF, 0xC0, 0x01, 0xFF, 0xF0, 0x00, 0x3F,
-    0xFC, 0x00, 0x0F, 0xFF, 0x00, 0x01, 0xFF, 0xC0, 0x00, 0x3F, 0xF0, 0x00,
-    0x0F, 0xFC, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x3F, 0xFF,
-    0x80, 0x00, 0x7F, 0xFF, 0xF0, 0x00, 0x7F, 0xFF, 0xFC, 0x00, 0x7F, 0x80,
-    0xFF, 0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x7E, 0x00, 0x03, 0xF0, 0x3E, 0x00,
-    0x00, 0xF8, 0x3E, 0x00, 0x00, 0x3E, 0x1E, 0x00, 0x00, 0x0F, 0x1F, 0x00,
-    0x00, 0x07, 0xCF, 0x00, 0x00, 0x01, 0xE7, 0x80, 0x00, 0x00, 0xF7, 0xC0,
-    0x00, 0x00, 0x7F, 0xC0, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x0F, 0xF0,
-    0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x01, 0xFE,
-    0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x00, 0x3F,
-    0xC0, 0x00, 0x00, 0x3E, 0xF0, 0x00, 0x00, 0x1E, 0x78, 0x00, 0x00, 0x0F,
-    0x3E, 0x00, 0x00, 0x0F, 0x8F, 0x00, 0x00, 0x07, 0x87, 0xC0, 0x00, 0x07,
-    0xC1, 0xF0, 0x00, 0x07, 0xC0, 0xFC, 0x00, 0x07, 0xE0, 0x3F, 0x00, 0x07,
-    0xE0, 0x0F, 0xF0, 0x1F, 0xE0, 0x03, 0xFF, 0xFF, 0xE0, 0x00, 0xFF, 0xFF,
-    0xE0, 0x00, 0x1F, 0xFF, 0xC0, 0x00, 0x01, 0xFF, 0x00, 0x00, 0xFF, 0xFF,
-    0x80, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFC, 0xF0, 0x00,
-    0xFE, 0xF0, 0x00, 0x3E, 0xF0, 0x00, 0x1F, 0xF0, 0x00, 0x0F, 0xF0, 0x00,
-    0x0F, 0xF0, 0x00, 0x0F, 0xF0, 0x00, 0x0F, 0xF0, 0x00, 0x0F, 0xF0, 0x00,
-    0x0F, 0xF0, 0x00, 0x1F, 0xF0, 0x00, 0x3E, 0xF0, 0x00, 0xFE, 0xFF, 0xFF,
-    0xFC, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xC0, 0xF0, 0x00,
-    0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00,
-    0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00,
-    0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00,
-    0x00, 0xF0, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x3F, 0xFF, 0x80,
-    0x00, 0x7F, 0xFF, 0xE0, 0x00, 0x7F, 0xFF, 0xFC, 0x00, 0x7F, 0x80, 0xFF,
-    0x00, 0x7E, 0x00, 0x0F, 0xC0, 0x7E, 0x00, 0x03, 0xF0, 0x3E, 0x00, 0x00,
-    0xF8, 0x3E, 0x00, 0x00, 0x3E, 0x1E, 0x00, 0x00, 0x0F, 0x1F, 0x00, 0x00,
-    0x07, 0xCF, 0x00, 0x00, 0x01, 0xE7, 0x80, 0x00, 0x00, 0xF7, 0xC0, 0x00,
-    0x00, 0x7F, 0xC0, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x0F, 0xF0, 0x00,
-    0x00, 0x07, 0xF8, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x01, 0xFE, 0x00,
-    0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x00, 0x3F, 0xC0,
-    0x00, 0x00, 0x3E, 0xF0, 0x00, 0x00, 0x1E, 0x78, 0x00, 0x00, 0x0F, 0x3E,
-    0x00, 0x00, 0x0F, 0x8F, 0x00, 0x03, 0x87, 0x87, 0xC0, 0x03, 0xE7, 0xC1,
-    0xF0, 0x00, 0xFF, 0xC0, 0xFC, 0x00, 0x3F, 0xE0, 0x3F, 0x00, 0x0F, 0xE0,
-    0x0F, 0xF0, 0x1F, 0xF0, 0x03, 0xFF, 0xFF, 0xFC, 0x00, 0xFF, 0xFF, 0xFF,
-    0x00, 0x1F, 0xFF, 0xC7, 0xC0, 0x01, 0xFF, 0x01, 0xE0, 0x00, 0x00, 0x00,
-    0x70, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xE0, 0x3F, 0xFF, 0xFE, 0x0F,
-    0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xF8, 0xF0, 0x00, 0x3F, 0x3C, 0x00, 0x07,
-    0xCF, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x1E, 0xF0, 0x00, 0x07, 0xBC, 0x00,
-    0x01, 0xEF, 0x00, 0x00, 0x7B, 0xC0, 0x00, 0x1E, 0xF0, 0x00, 0x07, 0xBC,
-    0x00, 0x03, 0xCF, 0x00, 0x01, 0xF3, 0xC0, 0x00, 0xF8, 0xFF, 0xFF, 0xFC,
-    0x3F, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xF8, 0xF0, 0x00,
-    0x3F, 0x3C, 0x00, 0x03, 0xCF, 0x00, 0x00, 0xFB, 0xC0, 0x00, 0x1E, 0xF0,
-    0x00, 0x07, 0xBC, 0x00, 0x01, 0xEF, 0x00, 0x00, 0x7B, 0xC0, 0x00, 0x1E,
-    0xF0, 0x00, 0x07, 0xBC, 0x00, 0x01, 0xEF, 0x00, 0x00, 0x7B, 0xC0, 0x00,
-    0x1E, 0xF0, 0x00, 0x07, 0xFC, 0x00, 0x01, 0xF0, 0x00, 0x7F, 0xC0, 0x00,
-    0x7F, 0xFF, 0x00, 0x1F, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0x81, 0xF8, 0x07,
-    0xF0, 0x7C, 0x00, 0x1F, 0x0F, 0x00, 0x01, 0xE3, 0xE0, 0x00, 0x3E, 0x78,
-    0x00, 0x03, 0xCF, 0x00, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x3C, 0x00, 0x00,
-    0x07, 0xC0, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0xFF,
-    0xE0, 0x00, 0x0F, 0xFF, 0xC0, 0x00, 0x7F, 0xFF, 0x00, 0x01, 0xFF, 0xF8,
-    0x00, 0x03, 0xFF, 0x80, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x3F, 0x80, 0x00,
-    0x01, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x3F,
-    0xC0, 0x00, 0x07, 0xF8, 0x00, 0x00, 0xF7, 0x80, 0x00, 0x3E, 0xF8, 0x00,
-    0x07, 0x9F, 0x80, 0x01, 0xF1, 0xFE, 0x01, 0xFC, 0x1F, 0xFF, 0xFF, 0x01,
-    0xFF, 0xFF, 0xC0, 0x0F, 0xFF, 0xE0, 0x00, 0x3F, 0xE0, 0x00, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
-    0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x78, 0x00,
-    0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x78,
-    0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01, 0xE0, 0x00, 0x00,
-    0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01, 0xE0, 0x00,
-    0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01, 0xE0,
-    0x00, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00, 0x01,
-    0xE0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80, 0x00,
-    0x01, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x80,
-    0x00, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0,
-    0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F,
-    0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00,
-    0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00,
-    0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0xFF,
-    0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00,
-    0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00,
-    0x00, 0xFF, 0x00, 0x00, 0x7D, 0xE0, 0x00, 0x1E, 0x7C, 0x00, 0x0F, 0x9F,
-    0x80, 0x07, 0xE3, 0xF8, 0x07, 0xF0, 0x7F, 0xFF, 0xF8, 0x0F, 0xFF, 0xFC,
-    0x00, 0xFF, 0xFC, 0x00, 0x0F, 0xF8, 0x00, 0xF8, 0x00, 0x00, 0xF7, 0xC0,
-    0x00, 0x0F, 0x9E, 0x00, 0x00, 0x7C, 0xF8, 0x00, 0x03, 0xC7, 0xC0, 0x00,
-    0x3E, 0x1E, 0x00, 0x01, 0xF0, 0xF8, 0x00, 0x0F, 0x07, 0xC0, 0x00, 0xF8,
-    0x1E, 0x00, 0x07, 0xC0, 0xF8, 0x00, 0x3C, 0x07, 0xC0, 0x03, 0xE0, 0x1E,
-    0x00, 0x1F, 0x00, 0xF8, 0x00, 0xF0, 0x03, 0xC0, 0x0F, 0x80, 0x1E, 0x00,
-    0x7C, 0x00, 0xF8, 0x03, 0xC0, 0x03, 0xC0, 0x1E, 0x00, 0x1F, 0x01, 0xF0,
-    0x00, 0xF8, 0x0F, 0x00, 0x03, 0xC0, 0x78, 0x00, 0x1F, 0x07, 0x80, 0x00,
-    0xF8, 0x3C, 0x00, 0x03, 0xC1, 0xE0, 0x00, 0x1F, 0x1E, 0x00, 0x00, 0x78,
-    0xF0, 0x00, 0x03, 0xC7, 0x80, 0x00, 0x1F, 0x78, 0x00, 0x00, 0x7B, 0xC0,
-    0x00, 0x03, 0xDE, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x7F, 0x00, 0x00,
-    0x03, 0xF8, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8,
-    0x00, 0x3F, 0x00, 0x07, 0xFE, 0x00, 0x0F, 0xC0, 0x01, 0xFF, 0x80, 0x03,
-    0xF0, 0x00, 0x7D, 0xE0, 0x00, 0xFC, 0x00, 0x1E, 0x7C, 0x00, 0x7F, 0x80,
-    0x0F, 0x9F, 0x00, 0x1F, 0xE0, 0x03, 0xE7, 0xC0, 0x07, 0xF8, 0x00, 0xF8,
-    0xF0, 0x01, 0xFF, 0x00, 0x3C, 0x3E, 0x00, 0xF3, 0xC0, 0x1F, 0x0F, 0x80,
-    0x3C, 0xF0, 0x07, 0xC3, 0xE0, 0x0F, 0x3C, 0x01, 0xF0, 0x78, 0x07, 0xC7,
-    0x80, 0x78, 0x1F, 0x01, 0xE1, 0xE0, 0x1E, 0x07, 0xC0, 0x78, 0x78, 0x0F,
-    0x80, 0xF0, 0x1E, 0x1E, 0x03, 0xE0, 0x3C, 0x0F, 0x83, 0xC0, 0xF0, 0x0F,
-    0x83, 0xC0, 0xF0, 0x3C, 0x03, 0xE0, 0xF0, 0x3C, 0x1F, 0x00, 0x78, 0x3C,
-    0x0F, 0x87, 0xC0, 0x1E, 0x1E, 0x01, 0xE1, 0xE0, 0x07, 0x87, 0x80, 0x78,
-    0x78, 0x01, 0xF1, 0xE0, 0x1E, 0x1E, 0x00, 0x3C, 0xF8, 0x03, 0xCF, 0x80,
-    0x0F, 0x3C, 0x00, 0xF3, 0xC0, 0x03, 0xCF, 0x00, 0x3C, 0xF0, 0x00, 0xFB,
-    0xC0, 0x0F, 0xBC, 0x00, 0x1F, 0xF0, 0x01, 0xFF, 0x00, 0x07, 0xF8, 0x00,
-    0x7F, 0x80, 0x01, 0xFE, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0x80, 0x03, 0xF8,
-    0x00, 0x0F, 0xC0, 0x00, 0xFE, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0x00, 0x00,
-    0xFC, 0x00, 0x0F, 0xC0, 0x00, 0x3F, 0x00, 0x01, 0xF0, 0x00, 0x7C, 0x00,
-    0x01, 0xF3, 0xF0, 0x00, 0x1F, 0x8F, 0x80, 0x00, 0xF8, 0x3E, 0x00, 0x0F,
-    0x80, 0xF8, 0x00, 0xF8, 0x07, 0xC0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x00,
-    0x7C, 0x07, 0xC0, 0x03, 0xE0, 0x3E, 0x00, 0x0F, 0x83, 0xE0, 0x00, 0x3E,
-    0x3E, 0x00, 0x01, 0xF1, 0xF0, 0x00, 0x07, 0xDF, 0x00, 0x00, 0x1F, 0xF0,
-    0x00, 0x00, 0xFF, 0x80, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x0F, 0x80, 0x00,
-    0x00, 0xFE, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x07,
-    0xDF, 0x00, 0x00, 0x7C, 0x78, 0x00, 0x03, 0xE3, 0xE0, 0x00, 0x3E, 0x0F,
-    0x80, 0x03, 0xE0, 0x3E, 0x00, 0x1F, 0x01, 0xF0, 0x01, 0xF0, 0x07, 0xC0,
-    0x1F, 0x00, 0x3F, 0x00, 0xF8, 0x00, 0xF8, 0x0F, 0x80, 0x03, 0xE0, 0xF8,
-    0x00, 0x1F, 0x8F, 0xC0, 0x00, 0x7C, 0x7C, 0x00, 0x01, 0xF7, 0xC0, 0x00,
-    0x0F, 0xC0, 0xFC, 0x00, 0x00, 0xFD, 0xF0, 0x00, 0x03, 0xE7, 0xE0, 0x00,
-    0x1F, 0x0F, 0x80, 0x00, 0x7C, 0x1F, 0x00, 0x03, 0xE0, 0x7C, 0x00, 0x1F,
-    0x00, 0xF8, 0x00, 0x7C, 0x01, 0xF0, 0x03, 0xE0, 0x07, 0xC0, 0x0F, 0x80,
-    0x0F, 0x80, 0x7C, 0x00, 0x1E, 0x01, 0xE0, 0x00, 0x7C, 0x0F, 0x80, 0x00,
-    0xF8, 0x7C, 0x00, 0x03, 0xE1, 0xE0, 0x00, 0x07, 0xCF, 0x80, 0x00, 0x0F,
-    0x3C, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x00, 0xFC,
-    0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x1E, 0x00,
-    0x00, 0x00, 0x78, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x07, 0x80, 0x00,
-    0x00, 0x1E, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00,
-    0x07, 0x80, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x01,
-    0xE0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x3F, 0xFF,
-    0xFF, 0xC7, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xE0,
-    0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x01,
-    0xF8, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x03, 0xE0, 0x00,
-    0x00, 0xFC, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x01, 0xF0,
-    0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x07, 0xE0, 0x00, 0x01,
-    0xF8, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x03, 0xF0, 0x00,
-    0x00, 0xFC, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xF0,
-    0x00, 0x00, 0x7E, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x03, 0xE0, 0x00, 0x00,
-    0xF8, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0xF0,
-    0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
-    0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
-    0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xE0, 0x07, 0x00, 0x18, 0x00, 0xE0, 0x07, 0x00, 0x18, 0x00, 0xE0,
-    0x07, 0x00, 0x18, 0x00, 0xC0, 0x07, 0x00, 0x38, 0x00, 0xC0, 0x07, 0x00,
-    0x38, 0x00, 0xC0, 0x06, 0x00, 0x38, 0x00, 0xC0, 0x06, 0x00, 0x38, 0x01,
-    0xC0, 0x06, 0x00, 0x38, 0x01, 0xC0, 0x06, 0x00, 0x30, 0x01, 0xC0, 0x0E,
-    0x00, 0x30, 0x01, 0xC0, 0x0E, 0x00, 0x30, 0x01, 0xC0, 0x0E, 0xFF, 0xFF,
-    0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
-    0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
-    0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
-    0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x3F,
-    0x00, 0x0F, 0xC0, 0x07, 0xF8, 0x01, 0xCE, 0x00, 0x73, 0x80, 0x3C, 0x70,
-    0x0E, 0x1C, 0x07, 0x87, 0x81, 0xC0, 0xE0, 0x70, 0x38, 0x38, 0x07, 0x0E,
-    0x01, 0xC7, 0x80, 0x79, 0xC0, 0x0E, 0x70, 0x03, 0xB8, 0x00, 0x70, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x0F, 0x01, 0xE0, 0x3C, 0x07,
-    0x00, 0xE0, 0x1C, 0x01, 0xFF, 0x00, 0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0xE0,
-    0x3F, 0xFF, 0xF0, 0x7E, 0x03, 0xF8, 0x7C, 0x00, 0xF8, 0x78, 0x00, 0x78,
-    0x00, 0x00, 0x78, 0x00, 0x00, 0x78, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF8,
-    0x00, 0x03, 0xF8, 0x00, 0xFF, 0xF8, 0x0F, 0xFF, 0xF8, 0x3F, 0xFE, 0x78,
-    0x7F, 0x80, 0x78, 0xFC, 0x00, 0x78, 0xF8, 0x00, 0x78, 0xF0, 0x00, 0x78,
-    0xF0, 0x00, 0xF8, 0xF0, 0x00, 0xF8, 0xF8, 0x03, 0xF8, 0x7E, 0x0F, 0xF8,
-    0x7F, 0xFF, 0x7F, 0x3F, 0xFE, 0x3F, 0x1F, 0xFC, 0x3F, 0x07, 0xE0, 0x1F,
-    0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0,
-    0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x7E,
-    0x03, 0xC7, 0xFE, 0x0F, 0x7F, 0xFC, 0x3D, 0xFF, 0xF8, 0xFF, 0x07, 0xF3,
-    0xF8, 0x07, 0xCF, 0xC0, 0x0F, 0xBE, 0x00, 0x1E, 0xF8, 0x00, 0x7B, 0xE0,
-    0x01, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xC0, 0x00,
-    0xFF, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xC0, 0x01, 0xFF,
-    0x80, 0x07, 0xBE, 0x00, 0x1E, 0xFC, 0x00, 0xFB, 0xF8, 0x07, 0xCF, 0xF0,
-    0x7F, 0x3B, 0xFF, 0xF8, 0xE7, 0xFF, 0xC3, 0x8F, 0xFE, 0x00, 0x0F, 0xE0,
-    0x00, 0x00, 0xFE, 0x00, 0x3F, 0xFC, 0x03, 0xFF, 0xF0, 0x3F, 0xFF, 0xC3,
-    0xF0, 0x3F, 0x1F, 0x00, 0xF9, 0xF0, 0x03, 0xCF, 0x00, 0x0F, 0x78, 0x00,
-    0x07, 0xC0, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78,
-    0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07, 0x80, 0x00,
-    0x1E, 0x00, 0x1E, 0xF0, 0x00, 0xF7, 0xC0, 0x0F, 0x9F, 0x00, 0xF8, 0xFC,
-    0x0F, 0xC3, 0xFF, 0xFC, 0x0F, 0xFF, 0xC0, 0x3F, 0xFC, 0x00, 0x7F, 0x00,
-    0x00, 0x00, 0x1E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF0,
-    0x00, 0x01, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x0F, 0x01,
-    0xFC, 0x1E, 0x0F, 0xFE, 0x3C, 0x3F, 0xFF, 0x78, 0xFF, 0xFF, 0xF3, 0xF8,
-    0x3F, 0xE7, 0xC0, 0x1F, 0xDF, 0x00, 0x1F, 0xBE, 0x00, 0x1F, 0x78, 0x00,
-    0x3F, 0xF0, 0x00, 0x7F, 0xC0, 0x00, 0x7F, 0x80, 0x00, 0xFF, 0x00, 0x01,
-    0xFE, 0x00, 0x03, 0xFC, 0x00, 0x07, 0xF8, 0x00, 0x0F, 0xF0, 0x00, 0x1F,
-    0xF0, 0x00, 0x7D, 0xE0, 0x00, 0xFB, 0xC0, 0x01, 0xF7, 0xC0, 0x07, 0xE7,
-    0xC0, 0x1F, 0xCF, 0xE0, 0xFF, 0x8F, 0xFF, 0xF7, 0x0F, 0xFF, 0xCE, 0x0F,
-    0xFF, 0x1C, 0x07, 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x0F, 0xFE, 0x00, 0xFF,
-    0xFC, 0x07, 0xFF, 0xF8, 0x1F, 0x83, 0xF0, 0xF8, 0x07, 0xC7, 0xC0, 0x0F,
-    0x9E, 0x00, 0x1E, 0x78, 0x00, 0x7B, 0xC0, 0x00, 0xFF, 0x00, 0x03, 0xFC,
-    0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00,
-    0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x1E, 0x00, 0x1E,
-    0x7C, 0x00, 0x78, 0xF8, 0x03, 0xE3, 0xF0, 0x3F, 0x07, 0xFF, 0xF8, 0x0F,
-    0xFF, 0xE0, 0x1F, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0x03, 0xC3, 0xF0, 0xFC,
-    0x7F, 0x1F, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x3F, 0xFF, 0xFF, 0xFF, 0x1E,
-    0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81,
-    0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x78,
-    0x1E, 0x07, 0x80, 0x00, 0xFC, 0x00, 0x1F, 0xF8, 0xF0, 0xFF, 0xFB, 0xC7,
-    0xFF, 0xFF, 0x3F, 0x83, 0xFC, 0xF8, 0x07, 0xF7, 0xC0, 0x0F, 0xDE, 0x00,
-    0x1F, 0x78, 0x00, 0x7F, 0xE0, 0x00, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x0F,
-    0xF0, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xF0,
-    0x00, 0x3F, 0xC0, 0x00, 0xF7, 0x80, 0x07, 0xDE, 0x00, 0x1F, 0x7C, 0x00,
-    0xFC, 0xF8, 0x07, 0xF3, 0xF8, 0x3F, 0xC7, 0xFF, 0xEF, 0x0F, 0xFF, 0x3C,
-    0x1F, 0xF8, 0xF0, 0x1F, 0x83, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x79, 0xE0,
-    0x01, 0xE7, 0xC0, 0x0F, 0x8F, 0x80, 0xFC, 0x3F, 0xFF, 0xF0, 0x7F, 0xFF,
-    0x80, 0xFF, 0xFC, 0x00, 0x7F, 0x80, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0xC0,
-    0x00, 0x78, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x07, 0x80,
-    0x00, 0xF0, 0xFE, 0x1E, 0x3F, 0xE3, 0xCF, 0xFF, 0x7B, 0xFF, 0xEF, 0xF0,
-    0xFF, 0xF8, 0x07, 0xFF, 0x00, 0x7F, 0xC0, 0x0F, 0xF8, 0x01, 0xFE, 0x00,
-    0x3F, 0xC0, 0x07, 0xF8, 0x00, 0xFF, 0x00, 0x1F, 0xE0, 0x03, 0xFC, 0x00,
-    0x7F, 0x80, 0x0F, 0xF0, 0x01, 0xFE, 0x00, 0x3F, 0xC0, 0x07, 0xF8, 0x00,
-    0xFF, 0x00, 0x1F, 0xE0, 0x03, 0xFC, 0x00, 0x7F, 0x80, 0x0F, 0xF0, 0x01,
-    0xFE, 0x00, 0x3C, 0xFF, 0xFF, 0xF0, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F,
-    0x0F, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
-    0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
-    0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x1F,
-    0xFF, 0xFE, 0xFE, 0xF8, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01,
-    0xE0, 0x00, 0x0F, 0x00, 0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00,
-    0x00, 0xF0, 0x00, 0x07, 0x80, 0x1F, 0x3C, 0x01, 0xF1, 0xE0, 0x1F, 0x0F,
-    0x01, 0xF0, 0x78, 0x1F, 0x03, 0xC1, 0xF0, 0x1E, 0x1F, 0x00, 0xF1, 0xF0,
-    0x07, 0x9F, 0x00, 0x3D, 0xF8, 0x01, 0xFF, 0xE0, 0x0F, 0xFF, 0x80, 0x7F,
-    0x7C, 0x03, 0xF1, 0xF0, 0x1F, 0x07, 0xC0, 0xF0, 0x3E, 0x07, 0x80, 0xF8,
-    0x3C, 0x03, 0xC1, 0xE0, 0x1F, 0x0F, 0x00, 0x7C, 0x78, 0x03, 0xE3, 0xC0,
-    0x0F, 0x9E, 0x00, 0x3C, 0xF0, 0x01, 0xF7, 0x80, 0x07, 0xC0, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0x00, 0xFC, 0x03, 0xF0, 0xE3, 0xFE, 0x0F, 0xFC, 0xE7,
-    0xFF, 0x1F, 0xFE, 0xEF, 0xFF, 0xBF, 0xFE, 0xFE, 0x0F, 0xF8, 0x3F, 0xFC,
-    0x07, 0xF0, 0x1F, 0xF8, 0x03, 0xE0, 0x0F, 0xF8, 0x03, 0xE0, 0x0F, 0xF0,
-    0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0,
-    0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0,
-    0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0,
-    0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0,
-    0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0,
-    0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x03, 0xC0, 0x0F, 0x00,
-    0x7E, 0x0E, 0x1F, 0xF8, 0xE7, 0xFF, 0xCE, 0xFF, 0xFE, 0xEF, 0x07, 0xFF,
-    0xE0, 0x1F, 0xFC, 0x01, 0xFF, 0x80, 0x0F, 0xF8, 0x00, 0xFF, 0x00, 0x0F,
-    0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00,
-    0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00,
-    0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0,
-    0x00, 0xFF, 0x00, 0x0F, 0x00, 0xFE, 0x00, 0x07, 0xFF, 0x00, 0x3F, 0xFF,
-    0x80, 0xFF, 0xFF, 0x83, 0xF8, 0x3F, 0x87, 0xC0, 0x1F, 0x1F, 0x00, 0x1F,
-    0x3C, 0x00, 0x1E, 0x78, 0x00, 0x3D, 0xF0, 0x00, 0x7F, 0xC0, 0x00, 0x7F,
-    0x80, 0x00, 0xFF, 0x00, 0x01, 0xFE, 0x00, 0x03, 0xFC, 0x00, 0x07, 0xF8,
-    0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xF0, 0x00, 0x7D, 0xE0, 0x00, 0xF3, 0xC0,
-    0x01, 0xE7, 0xC0, 0x07, 0xC7, 0xC0, 0x1F, 0x0F, 0xE0, 0xFE, 0x0F, 0xFF,
-    0xF8, 0x0F, 0xFF, 0xE0, 0x0F, 0xFF, 0x80, 0x03, 0xF8, 0x00, 0x00, 0xFE,
-    0x03, 0x8F, 0xFE, 0x0E, 0x7F, 0xFC, 0x3B, 0xFF, 0xF8, 0xFF, 0x87, 0xF3,
-    0xF8, 0x07, 0xCF, 0xC0, 0x0F, 0xBE, 0x00, 0x1E, 0xF8, 0x00, 0x7B, 0xE0,
-    0x01, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xC0, 0x00,
-    0xFF, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xC0, 0x01, 0xFF,
-    0x80, 0x07, 0xBE, 0x00, 0x1E, 0xFC, 0x00, 0xFB, 0xF8, 0x07, 0xCF, 0xF0,
-    0x7F, 0x3F, 0xFF, 0xF8, 0xF7, 0xFF, 0xC3, 0xC7, 0xFE, 0x0F, 0x07, 0xE0,
-    0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C,
-    0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00,
-    0xFE, 0x00, 0x07, 0xFF, 0x1C, 0x3F, 0xFF, 0x38, 0xFF, 0xFF, 0x73, 0xF8,
-    0x3F, 0xE7, 0xC0, 0x1F, 0xDF, 0x00, 0x1F, 0xBE, 0x00, 0x1F, 0x78, 0x00,
-    0x3F, 0xF0, 0x00, 0x7F, 0xC0, 0x00, 0x7F, 0x80, 0x00, 0xFF, 0x00, 0x01,
-    0xFE, 0x00, 0x03, 0xFC, 0x00, 0x07, 0xF8, 0x00, 0x0F, 0xF0, 0x00, 0x1F,
-    0xF0, 0x00, 0x7D, 0xE0, 0x00, 0xFB, 0xC0, 0x01, 0xF7, 0xC0, 0x07, 0xE7,
-    0xC0, 0x1F, 0xCF, 0xE0, 0xFF, 0x8F, 0xFF, 0xEF, 0x0F, 0xFF, 0xDE, 0x0F,
-    0xFE, 0x3C, 0x07, 0xF0, 0x78, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xE0, 0x00,
-    0x03, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x1E, 0x00, 0x00,
-    0x3C, 0x00, 0x00, 0x78, 0x00, 0xFE, 0x1F, 0xE7, 0xFE, 0xFF, 0xFF, 0x8F,
-    0xC0, 0xF8, 0x0F, 0x80, 0xF8, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F,
-    0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F,
-    0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0x01, 0xFC, 0x00, 0xFF, 0xF0,
-    0x1F, 0xFF, 0x83, 0xFF, 0xFC, 0x3E, 0x07, 0xE7, 0xC0, 0x3E, 0x78, 0x01,
-    0xE7, 0x80, 0x00, 0x78, 0x00, 0x07, 0xC0, 0x00, 0x7E, 0x00, 0x03, 0xFC,
-    0x00, 0x1F, 0xFC, 0x00, 0xFF, 0xF8, 0x03, 0xFF, 0xC0, 0x03, 0xFE, 0x00,
-    0x03, 0xF0, 0x00, 0x1F, 0x00, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF,
-    0x80, 0x1F, 0x7E, 0x07, 0xE7, 0xFF, 0xFE, 0x3F, 0xFF, 0xC1, 0xFF, 0xF0,
-    0x03, 0xFC, 0x00, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x8F, 0xFF,
-    0xFF, 0xFF, 0xC7, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x1E,
-    0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81,
-    0xE0, 0x78, 0x1F, 0xC7, 0xF0, 0xFC, 0x1F, 0xF0, 0x00, 0xFF, 0x00, 0x0F,
-    0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00,
-    0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00,
-    0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0,
-    0x00, 0xFF, 0x00, 0x1F, 0xF0, 0x01, 0xFF, 0x00, 0x3F, 0xF8, 0x07, 0xFF,
-    0xE0, 0xFF, 0x7F, 0xFF, 0x77, 0xFF, 0xE7, 0x1F, 0xFC, 0x70, 0x7E, 0x00,
-    0x78, 0x00, 0x3E, 0xF0, 0x00, 0x79, 0xF0, 0x00, 0xF1, 0xE0, 0x03, 0xE3,
-    0xC0, 0x07, 0x87, 0xC0, 0x0F, 0x07, 0x80, 0x3C, 0x0F, 0x00, 0x78, 0x1F,
-    0x01, 0xF0, 0x1E, 0x03, 0xC0, 0x3C, 0x07, 0x80, 0x7C, 0x1F, 0x00, 0x78,
-    0x3C, 0x00, 0xF0, 0x78, 0x01, 0xF1, 0xE0, 0x01, 0xE3, 0xC0, 0x03, 0xC7,
-    0x80, 0x03, 0xDE, 0x00, 0x07, 0xBC, 0x00, 0x0F, 0x70, 0x00, 0x0F, 0xE0,
-    0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00,
-    0xF8, 0x03, 0xE0, 0x07, 0x9E, 0x00, 0xFC, 0x01, 0xE7, 0x80, 0x3F, 0x00,
-    0x79, 0xF0, 0x0F, 0xC0, 0x3E, 0x3C, 0x07, 0xF0, 0x0F, 0x0F, 0x01, 0xFE,
-    0x03, 0xC3, 0xC0, 0x7F, 0x80, 0xF0, 0x78, 0x1D, 0xE0, 0x78, 0x1E, 0x0F,
-    0x38, 0x1E, 0x07, 0x83, 0xCF, 0x07, 0x81, 0xE0, 0xF3, 0xC1, 0xE0, 0x3C,
-    0x38, 0xF0, 0xF0, 0x0F, 0x1E, 0x1C, 0x3C, 0x03, 0xC7, 0x87, 0x8F, 0x00,
-    0x71, 0xE1, 0xE3, 0x80, 0x1E, 0x70, 0x79, 0xE0, 0x07, 0xBC, 0x0E, 0x78,
-    0x01, 0xEF, 0x03, 0xDE, 0x00, 0x3B, 0xC0, 0xF7, 0x00, 0x0F, 0xE0, 0x3F,
-    0xC0, 0x03, 0xF8, 0x07, 0xF0, 0x00, 0x7E, 0x01, 0xF8, 0x00, 0x1F, 0x80,
-    0x7E, 0x00, 0x07, 0xC0, 0x1F, 0x80, 0x01, 0xF0, 0x03, 0xC0, 0x00, 0x7C,
-    0x00, 0x78, 0xF0, 0x03, 0xE1, 0xE0, 0x0F, 0x07, 0xC0, 0x78, 0x0F, 0x03,
-    0xE0, 0x1E, 0x0F, 0x00, 0x7C, 0x78, 0x00, 0xF3, 0xE0, 0x01, 0xEF, 0x00,
-    0x07, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x00, 0x00, 0x7C, 0x00, 0x03,
-    0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x7F, 0xC0, 0x03, 0xCF, 0x00, 0x0F, 0x1E,
-    0x00, 0x78, 0x7C, 0x03, 0xE0, 0xF0, 0x0F, 0x03, 0xE0, 0x78, 0x07, 0xC3,
-    0xE0, 0x0F, 0x1F, 0x00, 0x3E, 0x78, 0x00, 0x7C, 0x78, 0x00, 0x3D, 0xE0,
-    0x01, 0xF7, 0x80, 0x07, 0x8F, 0x00, 0x1E, 0x3C, 0x00, 0xF0, 0xF0, 0x03,
-    0xC1, 0xE0, 0x0F, 0x07, 0x80, 0x78, 0x1E, 0x01, 0xE0, 0x3C, 0x07, 0x80,
-    0xF0, 0x3C, 0x03, 0xC0, 0xF0, 0x07, 0x87, 0xC0, 0x1E, 0x1E, 0x00, 0x78,
-    0x78, 0x00, 0xF3, 0xC0, 0x03, 0xCF, 0x00, 0x0F, 0x3C, 0x00, 0x1F, 0xE0,
-    0x00, 0x7F, 0x80, 0x01, 0xFE, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0xC0, 0x00,
-    0x3E, 0x00, 0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00, 0x00, 0x3C,
-    0x00, 0x01, 0xF0, 0x00, 0x07, 0x80, 0x00, 0x3E, 0x00, 0x0F, 0xF0, 0x00,
-    0x3F, 0xC0, 0x00, 0xFE, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x7F, 0xFF, 0xF7,
-    0xFF, 0xFF, 0x7F, 0xFF, 0xF7, 0xFF, 0xFF, 0x00, 0x01, 0xE0, 0x00, 0x3E,
-    0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C,
-    0x00, 0x07, 0x80, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C,
-    0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x03, 0xC0, 0x00, 0x7C,
-    0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0,
-    0x01, 0xE0, 0xFC, 0x1F, 0x87, 0x80, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E,
-    0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01,
-    0xC0, 0x78, 0x1E, 0x0F, 0x81, 0xE0, 0x3C, 0x07, 0xC0, 0x3C, 0x03, 0x80,
-    0x38, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38,
-    0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0F, 0x00, 0xFC, 0x1F, 0x80,
-    0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0x1F, 0x83, 0xF0, 0x0F, 0x00,
-    0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0,
-    0x1C, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xC0, 0x1C, 0x03, 0xC0, 0x3E, 0x03,
-    0xC0, 0x78, 0x1F, 0x07, 0x80, 0xE0, 0x38, 0x07, 0x00, 0xE0, 0x1C, 0x03,
-    0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0x1C, 0x03, 0x80,
-    0x70, 0x1E, 0x1F, 0x83, 0xF0, 0x78, 0x00, 0x3E, 0x00, 0x0F, 0xF0, 0x0D,
-    0xFF, 0x01, 0xF0, 0xF8, 0x7C, 0x0F, 0xFD, 0x80, 0x7F, 0x80, 0x03, 0xE0};
-
-const GFXglyph FreeSans24pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 12, 0, 1},        // 0x20 ' '
-    {0, 4, 34, 16, 6, -33},     // 0x21 '!'
-    {17, 11, 12, 16, 2, -32},   // 0x22 '"'
-    {34, 24, 33, 26, 1, -31},   // 0x23 '#'
-    {133, 23, 41, 26, 1, -34},  // 0x24 '$'
-    {251, 39, 34, 42, 1, -32},  // 0x25 '%'
-    {417, 28, 34, 31, 2, -32},  // 0x26 '&'
-    {536, 4, 12, 9, 2, -32},    // 0x27 '''
-    {542, 10, 44, 16, 3, -33},  // 0x28 '('
-    {597, 10, 44, 16, 2, -33},  // 0x29 ')'
-    {652, 14, 14, 18, 2, -33},  // 0x2A '*'
-    {677, 23, 22, 27, 2, -21},  // 0x2B '+'
-    {741, 4, 12, 13, 4, -4},    // 0x2C ','
-    {747, 11, 4, 16, 2, -14},   // 0x2D '-'
-    {753, 4, 5, 12, 4, -4},     // 0x2E '.'
-    {756, 13, 35, 13, 0, -33},  // 0x2F '/'
-    {813, 22, 34, 26, 2, -32},  // 0x30 '0'
-    {907, 11, 33, 26, 5, -32},  // 0x31 '1'
-    {953, 22, 33, 26, 2, -32},  // 0x32 '2'
-    {1044, 23, 34, 26, 1, -32}, // 0x33 '3'
-    {1142, 23, 33, 26, 1, -32}, // 0x34 '4'
-    {1237, 22, 34, 26, 2, -32}, // 0x35 '5'
-    {1331, 22, 34, 26, 2, -32}, // 0x36 '6'
-    {1425, 21, 33, 26, 2, -32}, // 0x37 '7'
-    {1512, 22, 34, 26, 2, -32}, // 0x38 '8'
-    {1606, 21, 34, 26, 2, -32}, // 0x39 '9'
-    {1696, 4, 25, 12, 4, -24},  // 0x3A ':'
-    {1709, 4, 32, 12, 4, -24},  // 0x3B ';'
-    {1725, 23, 23, 27, 2, -22}, // 0x3C '<'
-    {1792, 23, 12, 27, 2, -16}, // 0x3D '='
-    {1827, 23, 23, 27, 2, -22}, // 0x3E '>'
-    {1894, 20, 35, 26, 4, -34}, // 0x3F '?'
-    {1982, 43, 42, 48, 2, -34}, // 0x40 '@'
-    {2208, 30, 34, 31, 1, -33}, // 0x41 'A'
-    {2336, 25, 34, 31, 4, -33}, // 0x42 'B'
-    {2443, 29, 36, 33, 2, -34}, // 0x43 'C'
-    {2574, 27, 34, 33, 4, -33}, // 0x44 'D'
-    {2689, 24, 34, 30, 4, -33}, // 0x45 'E'
-    {2791, 22, 34, 28, 4, -33}, // 0x46 'F'
-    {2885, 31, 36, 36, 2, -34}, // 0x47 'G'
-    {3025, 26, 34, 34, 4, -33}, // 0x48 'H'
-    {3136, 4, 34, 13, 5, -33},  // 0x49 'I'
-    {3153, 19, 35, 25, 2, -33}, // 0x4A 'J'
-    {3237, 27, 34, 32, 4, -33}, // 0x4B 'K'
-    {3352, 21, 34, 26, 4, -33}, // 0x4C 'L'
-    {3442, 32, 34, 40, 4, -33}, // 0x4D 'M'
-    {3578, 26, 34, 34, 4, -33}, // 0x4E 'N'
-    {3689, 33, 36, 37, 2, -34}, // 0x4F 'O'
-    {3838, 24, 34, 31, 4, -33}, // 0x50 'P'
-    {3940, 33, 38, 37, 2, -34}, // 0x51 'Q'
-    {4097, 26, 34, 33, 4, -33}, // 0x52 'R'
-    {4208, 27, 36, 31, 2, -34}, // 0x53 'S'
-    {4330, 26, 34, 30, 2, -33}, // 0x54 'T'
-    {4441, 26, 35, 34, 4, -33}, // 0x55 'U'
-    {4555, 29, 34, 30, 1, -33}, // 0x56 'V'
-    {4679, 42, 34, 44, 1, -33}, // 0x57 'W'
-    {4858, 29, 34, 31, 1, -33}, // 0x58 'X'
-    {4982, 30, 34, 32, 1, -33}, // 0x59 'Y'
-    {5110, 27, 34, 29, 1, -33}, // 0x5A 'Z'
-    {5225, 8, 44, 13, 3, -33},  // 0x5B '['
-    {5269, 13, 35, 13, 0, -33}, // 0x5C '\'
-    {5326, 8, 44, 13, 1, -33},  // 0x5D ']'
-    {5370, 18, 18, 22, 2, -32}, // 0x5E '^'
-    {5411, 28, 2, 26, -1, 7},   // 0x5F '_'
-    {5418, 10, 7, 12, 1, -34},  // 0x60 '`'
-    {5427, 24, 27, 26, 1, -25}, // 0x61 'a'
-    {5508, 22, 35, 26, 3, -33}, // 0x62 'b'
-    {5605, 21, 27, 24, 1, -25}, // 0x63 'c'
-    {5676, 23, 35, 26, 1, -33}, // 0x64 'd'
-    {5777, 22, 27, 25, 1, -25}, // 0x65 'e'
-    {5852, 10, 34, 13, 1, -33}, // 0x66 'f'
-    {5895, 22, 36, 26, 1, -25}, // 0x67 'g'
-    {5994, 19, 34, 25, 3, -33}, // 0x68 'h'
-    {6075, 4, 34, 10, 3, -33},  // 0x69 'i'
-    {6092, 8, 44, 11, 0, -33},  // 0x6A 'j'
-    {6136, 21, 34, 24, 3, -33}, // 0x6B 'k'
-    {6226, 4, 34, 10, 3, -33},  // 0x6C 'l'
-    {6243, 32, 26, 38, 3, -25}, // 0x6D 'm'
-    {6347, 20, 26, 25, 3, -25}, // 0x6E 'n'
-    {6412, 23, 27, 25, 1, -25}, // 0x6F 'o'
-    {6490, 22, 35, 26, 3, -25}, // 0x70 'p'
-    {6587, 23, 35, 26, 1, -25}, // 0x71 'q'
-    {6688, 12, 26, 16, 3, -25}, // 0x72 'r'
-    {6727, 20, 27, 23, 1, -25}, // 0x73 's'
-    {6795, 10, 32, 13, 1, -30}, // 0x74 't'
-    {6835, 20, 26, 25, 3, -24}, // 0x75 'u'
-    {6900, 23, 25, 23, 0, -24}, // 0x76 'v'
-    {6972, 34, 25, 34, 0, -24}, // 0x77 'w'
-    {7079, 22, 25, 22, 0, -24}, // 0x78 'x'
-    {7148, 22, 35, 22, 0, -24}, // 0x79 'y'
-    {7245, 20, 25, 23, 1, -24}, // 0x7A 'z'
-    {7308, 11, 44, 16, 2, -33}, // 0x7B '{'
-    {7369, 3, 44, 12, 4, -33},  // 0x7C '|'
-    {7386, 11, 44, 16, 2, -33}, // 0x7D '}'
-    {7447, 19, 7, 24, 2, -19}}; // 0x7E '~'
-
-const GFXfont FreeSans24pt7b PROGMEM = {(uint8_t *)FreeSans24pt7bBitmaps,
-                                        (GFXglyph *)FreeSans24pt7bGlyphs, 0x20,
-                                        0x7E, 56};
-
-// Approx. 8136 bytes

+ 0 - 200
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeSans9pt7b.h

@@ -1,200 +0,0 @@
-const uint8_t FreeSans9pt7bBitmaps[] PROGMEM = {
-    0xFF, 0xFF, 0xF8, 0xC0, 0xDE, 0xF7, 0x20, 0x09, 0x86, 0x41, 0x91, 0xFF,
-    0x13, 0x04, 0xC3, 0x20, 0xC8, 0xFF, 0x89, 0x82, 0x61, 0x90, 0x10, 0x1F,
-    0x14, 0xDA, 0x3D, 0x1E, 0x83, 0x40, 0x78, 0x17, 0x08, 0xF4, 0x7A, 0x35,
-    0x33, 0xF0, 0x40, 0x20, 0x38, 0x10, 0xEC, 0x20, 0xC6, 0x20, 0xC6, 0x40,
-    0xC6, 0x40, 0x6C, 0x80, 0x39, 0x00, 0x01, 0x3C, 0x02, 0x77, 0x02, 0x63,
-    0x04, 0x63, 0x04, 0x77, 0x08, 0x3C, 0x0E, 0x06, 0x60, 0xCC, 0x19, 0x81,
-    0xE0, 0x18, 0x0F, 0x03, 0x36, 0xC2, 0xD8, 0x73, 0x06, 0x31, 0xE3, 0xC4,
-    0xFE, 0x13, 0x26, 0x6C, 0xCC, 0xCC, 0xC4, 0x66, 0x23, 0x10, 0x8C, 0x46,
-    0x63, 0x33, 0x33, 0x32, 0x66, 0x4C, 0x80, 0x25, 0x7E, 0xA5, 0x00, 0x30,
-    0xC3, 0x3F, 0x30, 0xC3, 0x0C, 0xD6, 0xF0, 0xC0, 0x08, 0x44, 0x21, 0x10,
-    0x84, 0x42, 0x11, 0x08, 0x00, 0x3C, 0x66, 0x42, 0xC3, 0xC3, 0xC3, 0xC3,
-    0xC3, 0xC3, 0xC3, 0x42, 0x66, 0x3C, 0x11, 0x3F, 0x33, 0x33, 0x33, 0x33,
-    0x30, 0x3E, 0x31, 0xB0, 0x78, 0x30, 0x18, 0x1C, 0x1C, 0x1C, 0x18, 0x18,
-    0x10, 0x08, 0x07, 0xF8, 0x3C, 0x66, 0xC3, 0xC3, 0x03, 0x06, 0x1C, 0x07,
-    0x03, 0xC3, 0xC3, 0x66, 0x3C, 0x0C, 0x18, 0x71, 0x62, 0xC9, 0xA3, 0x46,
-    0xFE, 0x18, 0x30, 0x60, 0xC0, 0x7F, 0x20, 0x10, 0x08, 0x08, 0x07, 0xF3,
-    0x8C, 0x03, 0x01, 0x80, 0xF0, 0x6C, 0x63, 0xE0, 0x1E, 0x31, 0x98, 0x78,
-    0x0C, 0x06, 0xF3, 0x8D, 0x83, 0xC1, 0xE0, 0xD0, 0x6C, 0x63, 0xE0, 0xFF,
-    0x03, 0x02, 0x06, 0x04, 0x0C, 0x08, 0x18, 0x18, 0x18, 0x10, 0x30, 0x30,
-    0x3E, 0x31, 0xB0, 0x78, 0x3C, 0x1B, 0x18, 0xF8, 0xC6, 0xC1, 0xE0, 0xF0,
-    0x6C, 0x63, 0xE0, 0x3C, 0x66, 0xC2, 0xC3, 0xC3, 0xC3, 0x67, 0x3B, 0x03,
-    0x03, 0xC2, 0x66, 0x3C, 0xC0, 0x00, 0x30, 0xC0, 0x00, 0x00, 0x64, 0xA0,
-    0x00, 0x81, 0xC7, 0x8E, 0x0C, 0x07, 0x80, 0x70, 0x0E, 0x01, 0x80, 0xFF,
-    0x80, 0x00, 0x1F, 0xF0, 0x00, 0x70, 0x0E, 0x01, 0xC0, 0x18, 0x38, 0x71,
-    0xC0, 0x80, 0x00, 0x3E, 0x31, 0xB0, 0x78, 0x30, 0x18, 0x18, 0x38, 0x18,
-    0x18, 0x0C, 0x00, 0x00, 0x01, 0x80, 0x03, 0xF0, 0x06, 0x0E, 0x06, 0x01,
-    0x86, 0x00, 0x66, 0x1D, 0xBB, 0x31, 0xCF, 0x18, 0xC7, 0x98, 0x63, 0xCC,
-    0x31, 0xE6, 0x11, 0xB3, 0x99, 0xCC, 0xF7, 0x86, 0x00, 0x01, 0x80, 0x00,
-    0x70, 0x40, 0x0F, 0xE0, 0x06, 0x00, 0xF0, 0x0F, 0x00, 0x90, 0x19, 0x81,
-    0x98, 0x10, 0x83, 0x0C, 0x3F, 0xC2, 0x04, 0x60, 0x66, 0x06, 0xC0, 0x30,
-    0xFF, 0x18, 0x33, 0x03, 0x60, 0x6C, 0x0D, 0x83, 0x3F, 0xC6, 0x06, 0xC0,
-    0x78, 0x0F, 0x01, 0xE0, 0x6F, 0xF8, 0x1F, 0x86, 0x19, 0x81, 0xA0, 0x3C,
-    0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x68, 0x0D, 0x83, 0x18, 0x61, 0xF0,
-    0xFF, 0x18, 0x33, 0x03, 0x60, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0,
-    0x78, 0x0F, 0x03, 0x60, 0xCF, 0xF0, 0xFF, 0xE0, 0x30, 0x18, 0x0C, 0x06,
-    0x03, 0xFD, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x0F, 0xF8, 0xFF, 0xC0, 0xC0,
-    0xC0, 0xC0, 0xC0, 0xFE, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x0F, 0x83,
-    0x0E, 0x60, 0x66, 0x03, 0xC0, 0x0C, 0x00, 0xC1, 0xFC, 0x03, 0xC0, 0x36,
-    0x03, 0x60, 0x73, 0x0F, 0x0F, 0x10, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C,
-    0x07, 0x80, 0xFF, 0xFE, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x06,
-    0xFF, 0xFF, 0xFF, 0xC0, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC1, 0x83, 0x07,
-    0x8F, 0x1E, 0x27, 0x80, 0xC0, 0xD8, 0x33, 0x0C, 0x63, 0x0C, 0xC1, 0xB8,
-    0x3F, 0x07, 0x30, 0xC3, 0x18, 0x63, 0x06, 0x60, 0x6C, 0x0C, 0xC0, 0xC0,
-    0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xFF, 0xE0,
-    0x3F, 0x01, 0xFC, 0x1F, 0xE0, 0xFD, 0x05, 0xEC, 0x6F, 0x63, 0x79, 0x13,
-    0xCD, 0x9E, 0x6C, 0xF1, 0x47, 0x8E, 0x3C, 0x71, 0x80, 0xE0, 0x7C, 0x0F,
-    0xC1, 0xE8, 0x3D, 0x87, 0x98, 0xF1, 0x1E, 0x33, 0xC3, 0x78, 0x6F, 0x07,
-    0xE0, 0x7C, 0x0E, 0x0F, 0x81, 0x83, 0x18, 0x0C, 0xC0, 0x6C, 0x01, 0xE0,
-    0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1B, 0x01, 0x98, 0x0C, 0x60, 0xC0, 0xF8,
-    0x00, 0xFF, 0x30, 0x6C, 0x0F, 0x03, 0xC0, 0xF0, 0x6F, 0xF3, 0x00, 0xC0,
-    0x30, 0x0C, 0x03, 0x00, 0xC0, 0x00, 0x0F, 0x81, 0x83, 0x18, 0x0C, 0xC0,
-    0x6C, 0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1B, 0x01, 0x98, 0x6C,
-    0x60, 0xC0, 0xFB, 0x00, 0x08, 0xFF, 0x8C, 0x0E, 0xC0, 0x6C, 0x06, 0xC0,
-    0x6C, 0x0C, 0xFF, 0x8C, 0x0E, 0xC0, 0x6C, 0x06, 0xC0, 0x6C, 0x06, 0xC0,
-    0x70, 0x3F, 0x18, 0x6C, 0x0F, 0x03, 0xC0, 0x1E, 0x01, 0xF0, 0x0E, 0x00,
-    0xF0, 0x3C, 0x0D, 0x86, 0x3F, 0x00, 0xFF, 0x86, 0x03, 0x01, 0x80, 0xC0,
-    0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x80, 0xC0, 0xC0, 0x78, 0x0F,
-    0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x01,
-    0xB0, 0x61, 0xF0, 0xC0, 0x6C, 0x0D, 0x81, 0x10, 0x63, 0x0C, 0x61, 0x04,
-    0x60, 0xCC, 0x19, 0x01, 0x60, 0x3C, 0x07, 0x00, 0x60, 0xC1, 0x81, 0x30,
-    0xE1, 0x98, 0x70, 0xCC, 0x28, 0x66, 0x26, 0x21, 0x13, 0x30, 0xC8, 0x98,
-    0x6C, 0x4C, 0x14, 0x34, 0x0A, 0x1A, 0x07, 0x07, 0x03, 0x03, 0x80, 0x81,
-    0x80, 0x60, 0x63, 0x0C, 0x30, 0xC1, 0x98, 0x0F, 0x00, 0xE0, 0x06, 0x00,
-    0xF0, 0x19, 0x01, 0x98, 0x30, 0xC6, 0x0E, 0x60, 0x60, 0xC0, 0x36, 0x06,
-    0x30, 0xC3, 0x0C, 0x19, 0x81, 0xD8, 0x0F, 0x00, 0x60, 0x06, 0x00, 0x60,
-    0x06, 0x00, 0x60, 0x06, 0x00, 0xFF, 0xC0, 0x60, 0x30, 0x0C, 0x06, 0x03,
-    0x01, 0xC0, 0x60, 0x30, 0x18, 0x06, 0x03, 0x00, 0xFF, 0xC0, 0xFB, 0x6D,
-    0xB6, 0xDB, 0x6D, 0xB6, 0xE0, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84,
-    0x10, 0x80, 0xED, 0xB6, 0xDB, 0x6D, 0xB6, 0xDB, 0xE0, 0x30, 0x60, 0xA2,
-    0x44, 0xD8, 0xA1, 0x80, 0xFF, 0xC0, 0xC6, 0x30, 0x7E, 0x71, 0xB0, 0xC0,
-    0x60, 0xF3, 0xDB, 0x0D, 0x86, 0xC7, 0x3D, 0xC0, 0xC0, 0x60, 0x30, 0x1B,
-    0xCE, 0x36, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0x7C, 0x6D, 0xE0, 0x3C,
-    0x66, 0xC3, 0xC0, 0xC0, 0xC0, 0xC0, 0xC3, 0x66, 0x3C, 0x03, 0x03, 0x03,
-    0x3B, 0x67, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x67, 0x3B, 0x3C, 0x66,
-    0xC3, 0xC3, 0xFF, 0xC0, 0xC0, 0xC3, 0x66, 0x3C, 0x36, 0x6F, 0x66, 0x66,
-    0x66, 0x66, 0x60, 0x3B, 0x67, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x67,
-    0x3B, 0x03, 0x03, 0xC6, 0x7C, 0xC0, 0xC0, 0xC0, 0xDE, 0xE3, 0xC3, 0xC3,
-    0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xFF, 0xFF, 0xC0, 0x30, 0x03,
-    0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0xE0, 0xC0, 0x60, 0x30, 0x18, 0x4C,
-    0x46, 0x63, 0x61, 0xF0, 0xEC, 0x62, 0x31, 0x98, 0x6C, 0x30, 0xFF, 0xFF,
-    0xFF, 0xC0, 0xDE, 0xF7, 0x1C, 0xF0, 0xC7, 0x86, 0x3C, 0x31, 0xE1, 0x8F,
-    0x0C, 0x78, 0x63, 0xC3, 0x1E, 0x18, 0xC0, 0xDE, 0xE3, 0xC3, 0xC3, 0xC3,
-    0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x3C, 0x66, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3,
-    0xC3, 0x66, 0x3C, 0xDE, 0x71, 0xB0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83,
-    0xE3, 0x6F, 0x30, 0x18, 0x0C, 0x00, 0x3B, 0x67, 0xC3, 0xC3, 0xC3, 0xC3,
-    0xC3, 0xC3, 0x67, 0x3B, 0x03, 0x03, 0x03, 0xDF, 0x31, 0x8C, 0x63, 0x18,
-    0xC6, 0x00, 0x3E, 0xE3, 0xC0, 0xC0, 0xE0, 0x3C, 0x07, 0xC3, 0xE3, 0x7E,
-    0x66, 0xF6, 0x66, 0x66, 0x66, 0x67, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3,
-    0xC3, 0xC3, 0xC7, 0x7B, 0xC1, 0xA0, 0x98, 0xCC, 0x42, 0x21, 0xB0, 0xD0,
-    0x28, 0x1C, 0x0C, 0x00, 0xC6, 0x1E, 0x38, 0x91, 0xC4, 0xCA, 0x66, 0xD3,
-    0x16, 0xD0, 0xA6, 0x87, 0x1C, 0x38, 0xC0, 0xC6, 0x00, 0x43, 0x62, 0x36,
-    0x1C, 0x18, 0x1C, 0x3C, 0x26, 0x62, 0x43, 0xC1, 0x21, 0x98, 0xCC, 0x42,
-    0x61, 0xB0, 0xD0, 0x38, 0x1C, 0x0C, 0x06, 0x03, 0x01, 0x03, 0x00, 0xFE,
-    0x0C, 0x30, 0xC1, 0x86, 0x18, 0x20, 0xC1, 0xFC, 0x36, 0x66, 0x66, 0x6E,
-    0xCE, 0x66, 0x66, 0x66, 0x30, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xC6, 0x66,
-    0x66, 0x67, 0x37, 0x66, 0x66, 0x66, 0xC0, 0x61, 0x24, 0x38};
-
-const GFXglyph FreeSans9pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 5, 0, 1},        // 0x20 ' '
-    {0, 2, 13, 6, 2, -12},     // 0x21 '!'
-    {4, 5, 4, 6, 1, -12},      // 0x22 '"'
-    {7, 10, 12, 10, 0, -11},   // 0x23 '#'
-    {22, 9, 16, 10, 1, -13},   // 0x24 '$'
-    {40, 16, 13, 16, 1, -12},  // 0x25 '%'
-    {66, 11, 13, 12, 1, -12},  // 0x26 '&'
-    {84, 2, 4, 4, 1, -12},     // 0x27 '''
-    {85, 4, 17, 6, 1, -12},    // 0x28 '('
-    {94, 4, 17, 6, 1, -12},    // 0x29 ')'
-    {103, 5, 5, 7, 1, -12},    // 0x2A '*'
-    {107, 6, 8, 11, 3, -7},    // 0x2B '+'
-    {113, 2, 4, 5, 2, 0},      // 0x2C ','
-    {114, 4, 1, 6, 1, -4},     // 0x2D '-'
-    {115, 2, 1, 5, 1, 0},      // 0x2E '.'
-    {116, 5, 13, 5, 0, -12},   // 0x2F '/'
-    {125, 8, 13, 10, 1, -12},  // 0x30 '0'
-    {138, 4, 13, 10, 3, -12},  // 0x31 '1'
-    {145, 9, 13, 10, 1, -12},  // 0x32 '2'
-    {160, 8, 13, 10, 1, -12},  // 0x33 '3'
-    {173, 7, 13, 10, 2, -12},  // 0x34 '4'
-    {185, 9, 13, 10, 1, -12},  // 0x35 '5'
-    {200, 9, 13, 10, 1, -12},  // 0x36 '6'
-    {215, 8, 13, 10, 0, -12},  // 0x37 '7'
-    {228, 9, 13, 10, 1, -12},  // 0x38 '8'
-    {243, 8, 13, 10, 1, -12},  // 0x39 '9'
-    {256, 2, 10, 5, 1, -9},    // 0x3A ':'
-    {259, 3, 12, 5, 1, -8},    // 0x3B ';'
-    {264, 9, 9, 11, 1, -8},    // 0x3C '<'
-    {275, 9, 4, 11, 1, -5},    // 0x3D '='
-    {280, 9, 9, 11, 1, -8},    // 0x3E '>'
-    {291, 9, 13, 10, 1, -12},  // 0x3F '?'
-    {306, 17, 16, 18, 1, -12}, // 0x40 '@'
-    {340, 12, 13, 12, 0, -12}, // 0x41 'A'
-    {360, 11, 13, 12, 1, -12}, // 0x42 'B'
-    {378, 11, 13, 13, 1, -12}, // 0x43 'C'
-    {396, 11, 13, 13, 1, -12}, // 0x44 'D'
-    {414, 9, 13, 11, 1, -12},  // 0x45 'E'
-    {429, 8, 13, 11, 1, -12},  // 0x46 'F'
-    {442, 12, 13, 14, 1, -12}, // 0x47 'G'
-    {462, 11, 13, 13, 1, -12}, // 0x48 'H'
-    {480, 2, 13, 5, 2, -12},   // 0x49 'I'
-    {484, 7, 13, 10, 1, -12},  // 0x4A 'J'
-    {496, 11, 13, 12, 1, -12}, // 0x4B 'K'
-    {514, 8, 13, 10, 1, -12},  // 0x4C 'L'
-    {527, 13, 13, 15, 1, -12}, // 0x4D 'M'
-    {549, 11, 13, 13, 1, -12}, // 0x4E 'N'
-    {567, 13, 13, 14, 1, -12}, // 0x4F 'O'
-    {589, 10, 13, 12, 1, -12}, // 0x50 'P'
-    {606, 13, 14, 14, 1, -12}, // 0x51 'Q'
-    {629, 12, 13, 13, 1, -12}, // 0x52 'R'
-    {649, 10, 13, 12, 1, -12}, // 0x53 'S'
-    {666, 9, 13, 11, 1, -12},  // 0x54 'T'
-    {681, 11, 13, 13, 1, -12}, // 0x55 'U'
-    {699, 11, 13, 12, 0, -12}, // 0x56 'V'
-    {717, 17, 13, 17, 0, -12}, // 0x57 'W'
-    {745, 12, 13, 12, 0, -12}, // 0x58 'X'
-    {765, 12, 13, 12, 0, -12}, // 0x59 'Y'
-    {785, 10, 13, 11, 1, -12}, // 0x5A 'Z'
-    {802, 3, 17, 5, 1, -12},   // 0x5B '['
-    {809, 5, 13, 5, 0, -12},   // 0x5C '\'
-    {818, 3, 17, 5, 0, -12},   // 0x5D ']'
-    {825, 7, 7, 8, 1, -12},    // 0x5E '^'
-    {832, 10, 1, 10, 0, 3},    // 0x5F '_'
-    {834, 4, 3, 5, 0, -12},    // 0x60 '`'
-    {836, 9, 10, 10, 1, -9},   // 0x61 'a'
-    {848, 9, 13, 10, 1, -12},  // 0x62 'b'
-    {863, 8, 10, 9, 1, -9},    // 0x63 'c'
-    {873, 8, 13, 10, 1, -12},  // 0x64 'd'
-    {886, 8, 10, 10, 1, -9},   // 0x65 'e'
-    {896, 4, 13, 5, 1, -12},   // 0x66 'f'
-    {903, 8, 14, 10, 1, -9},   // 0x67 'g'
-    {917, 8, 13, 10, 1, -12},  // 0x68 'h'
-    {930, 2, 13, 4, 1, -12},   // 0x69 'i'
-    {934, 4, 17, 4, 0, -12},   // 0x6A 'j'
-    {943, 9, 13, 9, 1, -12},   // 0x6B 'k'
-    {958, 2, 13, 4, 1, -12},   // 0x6C 'l'
-    {962, 13, 10, 15, 1, -9},  // 0x6D 'm'
-    {979, 8, 10, 10, 1, -9},   // 0x6E 'n'
-    {989, 8, 10, 10, 1, -9},   // 0x6F 'o'
-    {999, 9, 13, 10, 1, -9},   // 0x70 'p'
-    {1014, 8, 13, 10, 1, -9},  // 0x71 'q'
-    {1027, 5, 10, 6, 1, -9},   // 0x72 'r'
-    {1034, 8, 10, 9, 1, -9},   // 0x73 's'
-    {1044, 4, 12, 5, 1, -11},  // 0x74 't'
-    {1050, 8, 10, 10, 1, -9},  // 0x75 'u'
-    {1060, 9, 10, 9, 0, -9},   // 0x76 'v'
-    {1072, 13, 10, 13, 0, -9}, // 0x77 'w'
-    {1089, 8, 10, 9, 0, -9},   // 0x78 'x'
-    {1099, 9, 14, 9, 0, -9},   // 0x79 'y'
-    {1115, 7, 10, 9, 1, -9},   // 0x7A 'z'
-    {1124, 4, 17, 6, 1, -12},  // 0x7B '{'
-    {1133, 2, 17, 4, 2, -12},  // 0x7C '|'
-    {1138, 4, 17, 6, 1, -12},  // 0x7D '}'
-    {1147, 7, 3, 9, 1, -7}};   // 0x7E '~'
-
-const GFXfont FreeSans9pt7b PROGMEM = {(uint8_t *)FreeSans9pt7bBitmaps,
-                                       (GFXglyph *)FreeSans9pt7bGlyphs, 0x20,
-                                       0x7E, 22};
-
-// Approx. 1822 bytes

+ 0 - 287
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeSansBold12pt7b.h

@@ -1,287 +0,0 @@
-const uint8_t FreeSansBold12pt7bBitmaps[] PROGMEM = {
-    0xFF, 0xFF, 0xFF, 0xFF, 0x76, 0x66, 0x60, 0xFF, 0xF0, 0xF3, 0xFC, 0xFF,
-    0x3F, 0xCF, 0x61, 0x98, 0x60, 0x0E, 0x70, 0x73, 0x83, 0x18, 0xFF, 0xF7,
-    0xFF, 0xBF, 0xFC, 0x73, 0x83, 0x18, 0x18, 0xC7, 0xFF, 0xBF, 0xFD, 0xFF,
-    0xE3, 0x18, 0x39, 0xC1, 0xCE, 0x0E, 0x70, 0x02, 0x00, 0x7E, 0x0F, 0xF8,
-    0x7F, 0xE7, 0xAF, 0xB9, 0x3D, 0xC8, 0x0F, 0x40, 0x3F, 0x00, 0xFF, 0x00,
-    0xFC, 0x05, 0xFF, 0x27, 0xF9, 0x3F, 0xEB, 0xEF, 0xFE, 0x3F, 0xE0, 0x7C,
-    0x00, 0x80, 0x04, 0x00, 0x3C, 0x06, 0x0F, 0xC1, 0x81, 0xFC, 0x30, 0x73,
-    0x8C, 0x0C, 0x31, 0x81, 0xCE, 0x60, 0x1F, 0xCC, 0x03, 0xF3, 0x00, 0x3C,
-    0x67, 0x80, 0x19, 0xF8, 0x02, 0x7F, 0x80, 0xCE, 0x70, 0x11, 0x86, 0x06,
-    0x39, 0xC1, 0x87, 0xF8, 0x30, 0x7E, 0x0C, 0x07, 0x80, 0x07, 0x80, 0x1F,
-    0xC0, 0x3F, 0xE0, 0x3C, 0xE0, 0x3C, 0xE0, 0x3E, 0xE0, 0x0F, 0xC0, 0x07,
-    0x00, 0x3F, 0x8C, 0x7F, 0xCC, 0xF1, 0xFC, 0xF0, 0xF8, 0xF0, 0x78, 0xF8,
-    0xF8, 0x7F, 0xFC, 0x3F, 0xDE, 0x1F, 0x8E, 0xFF, 0xFF, 0x66, 0x0C, 0x73,
-    0x8E, 0x71, 0xC7, 0x38, 0xE3, 0x8E, 0x38, 0xE3, 0x8E, 0x1C, 0x71, 0xC3,
-    0x8E, 0x18, 0x70, 0xC3, 0x87, 0x1C, 0x38, 0xE3, 0x87, 0x1C, 0x71, 0xC7,
-    0x1C, 0x71, 0xCE, 0x38, 0xE7, 0x1C, 0x63, 0x80, 0x10, 0x23, 0x5F, 0xF3,
-    0x87, 0x1B, 0x14, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x0F, 0xFF, 0xFF, 0xFF,
-    0xF8, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x00, 0xFF, 0xF3, 0x36, 0xC0, 0xFF,
-    0xFF, 0xC0, 0xFF, 0xF0, 0x0C, 0x30, 0x86, 0x18, 0x61, 0x0C, 0x30, 0xC2,
-    0x18, 0x61, 0x84, 0x30, 0xC0, 0x1F, 0x83, 0xFC, 0x7F, 0xE7, 0x9E, 0xF0,
-    0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0,
-    0xF7, 0x9E, 0x7F, 0xE3, 0xFC, 0x0F, 0x00, 0x06, 0x1C, 0x7F, 0xFF, 0xE3,
-    0xC7, 0x8F, 0x1E, 0x3C, 0x78, 0xF1, 0xE3, 0xC7, 0x8F, 0x1E, 0x1F, 0x83,
-    0xFC, 0x7F, 0xEF, 0x9F, 0xF0, 0xFF, 0x0F, 0x00, 0xF0, 0x0F, 0x01, 0xE0,
-    0x3C, 0x0F, 0x81, 0xE0, 0x3C, 0x03, 0x80, 0x7F, 0xF7, 0xFF, 0x7F, 0xF0,
-    0x1F, 0x07, 0xFC, 0xFF, 0xEF, 0x1E, 0xF1, 0xE0, 0x1E, 0x03, 0xC0, 0x78,
-    0x07, 0xC0, 0x1E, 0x00, 0xF0, 0x0F, 0xF0, 0xFF, 0x1F, 0x7F, 0xE7, 0xFC,
-    0x1F, 0x80, 0x03, 0xC0, 0xF8, 0x1F, 0x07, 0xE1, 0xBC, 0x27, 0x8C, 0xF3,
-    0x1E, 0x63, 0xD8, 0x7B, 0xFF, 0xFF, 0xFF, 0xFE, 0x07, 0x80, 0xF0, 0x1E,
-    0x03, 0xC0, 0x3F, 0xE7, 0xFE, 0x7F, 0xE7, 0x00, 0x60, 0x06, 0xF8, 0x7F,
-    0xCF, 0xFE, 0xF1, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xFE, 0x1E, 0xFF,
-    0xE7, 0xFC, 0x3F, 0x00, 0x0F, 0x83, 0xFC, 0x7F, 0xE7, 0x9F, 0xF0, 0x0F,
-    0x78, 0xFF, 0xCF, 0xFE, 0xF9, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xF7,
-    0x9F, 0x7F, 0xE3, 0xFC, 0x0F, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0xE0,
-    0x1C, 0x07, 0x01, 0xE0, 0x38, 0x0F, 0x01, 0xC0, 0x78, 0x0F, 0x01, 0xE0,
-    0x38, 0x0F, 0x01, 0xE0, 0x3C, 0x00, 0x0F, 0x03, 0xFC, 0x7F, 0xC7, 0x9E,
-    0x70, 0xE7, 0x0E, 0x39, 0xC1, 0xF8, 0x3F, 0xC7, 0x9E, 0xF0, 0xFF, 0x0F,
-    0xF0, 0xFF, 0x9F, 0x7F, 0xE3, 0xFC, 0x1F, 0x80, 0x1F, 0x03, 0xFC, 0x7F,
-    0xEF, 0x9E, 0xF0, 0xEF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF9, 0xF7, 0xFF, 0x3F,
-    0xF1, 0xEF, 0x00, 0xEF, 0x1E, 0x7F, 0xE7, 0xFC, 0x1F, 0x00, 0xFF, 0xF0,
-    0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x0F, 0xFF, 0x11, 0x6C,
-    0x00, 0x10, 0x07, 0x03, 0xF1, 0xFC, 0x7E, 0x0F, 0x80, 0xE0, 0x0F, 0xC0,
-    0x3F, 0x80, 0x7F, 0x00, 0xF0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00,
-    0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x0E, 0x00, 0xFC,
-    0x07, 0xF0, 0x0F, 0xE0, 0x1F, 0x00, 0xF0, 0x7F, 0x1F, 0x8F, 0xE0, 0xF0,
-    0x08, 0x00, 0x1F, 0x07, 0xFC, 0x7F, 0xEF, 0x9F, 0xF0, 0xFF, 0x0F, 0x00,
-    0xF0, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x0E, 0x00, 0xE0, 0x00,
-    0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x00, 0xFE, 0x00, 0x1F, 0xFC, 0x03, 0xC0,
-    0xF0, 0x38, 0x01, 0xC3, 0x80, 0x07, 0x18, 0x3D, 0x99, 0x87, 0xEC, 0x6C,
-    0x71, 0xC3, 0xC3, 0x06, 0x1E, 0x18, 0x30, 0xF1, 0x81, 0x87, 0x8C, 0x18,
-    0x7C, 0x60, 0xC3, 0x63, 0x8E, 0x3B, 0x8F, 0xDF, 0x8C, 0x3C, 0xF0, 0x70,
-    0x00, 0x01, 0xC0, 0x00, 0x07, 0x80, 0x80, 0x1F, 0xFE, 0x00, 0x1F, 0xC0,
-    0x00, 0x03, 0xE0, 0x03, 0xE0, 0x03, 0xE0, 0x07, 0xF0, 0x07, 0xF0, 0x07,
-    0x70, 0x0F, 0x78, 0x0E, 0x78, 0x0E, 0x38, 0x1E, 0x3C, 0x1C, 0x3C, 0x3F,
-    0xFC, 0x3F, 0xFE, 0x3F, 0xFE, 0x78, 0x0E, 0x78, 0x0F, 0x70, 0x0F, 0xF0,
-    0x07, 0xFF, 0xC3, 0xFF, 0xCF, 0xFF, 0x3C, 0x3E, 0xF0, 0x7B, 0xC1, 0xEF,
-    0x0F, 0xBF, 0xFC, 0xFF, 0xE3, 0xFF, 0xCF, 0x07, 0xBC, 0x0F, 0xF0, 0x3F,
-    0xC0, 0xFF, 0x07, 0xFF, 0xFE, 0xFF, 0xFB, 0xFF, 0x80, 0x07, 0xE0, 0x1F,
-    0xF8, 0x3F, 0xFC, 0x7C, 0x3E, 0x78, 0x1F, 0xF8, 0x0F, 0xF0, 0x00, 0xF0,
-    0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF8, 0x0F, 0x78,
-    0x1F, 0x7C, 0x3E, 0x3F, 0xFE, 0x1F, 0xFC, 0x07, 0xF0, 0xFF, 0xE1, 0xFF,
-    0xE3, 0xFF, 0xE7, 0x83, 0xEF, 0x03, 0xDE, 0x07, 0xFC, 0x07, 0xF8, 0x0F,
-    0xF0, 0x1F, 0xE0, 0x3F, 0xC0, 0x7F, 0x80, 0xFF, 0x03, 0xFE, 0x07, 0xBC,
-    0x1F, 0x7F, 0xFC, 0xFF, 0xF1, 0xFF, 0x80, 0xFF, 0xF7, 0xFF, 0xBF, 0xFD,
-    0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1F, 0xFC, 0xFF, 0xE7, 0xFF, 0x3C,
-    0x01, 0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F,
-    0xFE, 0xFF, 0xEF, 0xFE, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F,
-    0x00, 0xF0, 0x0F, 0x00, 0x03, 0xF0, 0x0F, 0xFC, 0x3F, 0xFE, 0x3E, 0x1F,
-    0x78, 0x07, 0x78, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x7F, 0xF0, 0x7F,
-    0xF0, 0x7F, 0xF0, 0x07, 0x78, 0x07, 0x7C, 0x0F, 0x3E, 0x1F, 0x3F, 0xFB,
-    0x0F, 0xFB, 0x03, 0xE3, 0xF0, 0x3F, 0xC0, 0xFF, 0x03, 0xFC, 0x0F, 0xF0,
-    0x3F, 0xC0, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFC,
-    0x0F, 0xF0, 0x3F, 0xC0, 0xFF, 0x03, 0xFC, 0x0F, 0xF0, 0x3F, 0xC0, 0xF0,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xE0, 0x3C,
-    0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07,
-    0xF8, 0xFF, 0x1F, 0xE3, 0xFC, 0x7B, 0xFE, 0x7F, 0xC3, 0xE0, 0xF0, 0x3E,
-    0xF0, 0x3C, 0xF0, 0x78, 0xF0, 0xF0, 0xF1, 0xE0, 0xF3, 0xC0, 0xF7, 0x80,
-    0xFF, 0x00, 0xFF, 0x80, 0xFF, 0x80, 0xFB, 0xC0, 0xF1, 0xE0, 0xF0, 0xF0,
-    0xF0, 0xF0, 0xF0, 0x78, 0xF0, 0x3C, 0xF0, 0x3E, 0xF0, 0x1E, 0xF0, 0x1E,
-    0x03, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03,
-    0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0xFF, 0xFF, 0xFF, 0xFC, 0xF8,
-    0x1F, 0xFE, 0x0F, 0xFF, 0x0F, 0xFF, 0x87, 0xFF, 0xC3, 0xFF, 0xE1, 0xFF,
-    0xF9, 0xFF, 0xFC, 0xEF, 0xFE, 0x77, 0xFB, 0x3B, 0xFD, 0xDD, 0xFE, 0xFC,
-    0xFF, 0x7E, 0x7F, 0x9F, 0x3F, 0xCF, 0x9F, 0xE7, 0x8F, 0xF3, 0xC7, 0xF8,
-    0xE3, 0xC0, 0xF0, 0x1F, 0xF0, 0x3F, 0xF0, 0x7F, 0xE0, 0xFF, 0xE1, 0xFF,
-    0xC3, 0xFD, 0xC7, 0xFB, 0x8F, 0xF3, 0x9F, 0xE7, 0x3F, 0xC7, 0x7F, 0x8F,
-    0xFF, 0x0F, 0xFE, 0x1F, 0xFC, 0x1F, 0xF8, 0x1F, 0xF0, 0x3F, 0xE0, 0x3C,
-    0x03, 0xE0, 0x0F, 0xFC, 0x0F, 0xFF, 0x87, 0xC7, 0xC7, 0x80, 0xF3, 0xC0,
-    0x7B, 0xC0, 0x1F, 0xE0, 0x0F, 0xF0, 0x07, 0xF8, 0x03, 0xFC, 0x01, 0xFE,
-    0x00, 0xF7, 0x80, 0xF3, 0xC0, 0x78, 0xF0, 0xF8, 0x7F, 0xFC, 0x1F, 0xFC,
-    0x03, 0xF8, 0x00, 0xFF, 0xE3, 0xFF, 0xEF, 0xFF, 0xBC, 0x1F, 0xF0, 0x3F,
-    0xC0, 0xFF, 0x03, 0xFC, 0x1F, 0xFF, 0xFB, 0xFF, 0xCF, 0xFE, 0x3C, 0x00,
-    0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x03, 0xC0, 0x00, 0x03,
-    0xE0, 0x0F, 0xFC, 0x0F, 0xFF, 0x87, 0xC7, 0xC7, 0x80, 0xF3, 0xC0, 0x7B,
-    0xC0, 0x1F, 0xE0, 0x0F, 0xF0, 0x07, 0xF8, 0x03, 0xFC, 0x01, 0xFE, 0x04,
-    0xF7, 0x87, 0xF3, 0xC3, 0xF8, 0xF0, 0xF8, 0x7F, 0xFC, 0x1F, 0xFF, 0x83,
-    0xF1, 0x80, 0x00, 0x00, 0xFF, 0xF8, 0xFF, 0xFC, 0xFF, 0xFC, 0xF0, 0x3E,
-    0xF0, 0x1E, 0xF0, 0x1E, 0xF0, 0x1E, 0xF0, 0x3C, 0xFF, 0xF8, 0xFF, 0xF0,
-    0xFF, 0xF8, 0xF0, 0x3C, 0xF0, 0x3C, 0xF0, 0x3C, 0xF0, 0x3C, 0xF0, 0x3C,
-    0xF0, 0x3C, 0xF0, 0x1F, 0x0F, 0xC0, 0x7F, 0xE1, 0xFF, 0xE7, 0xC3, 0xEF,
-    0x03, 0xDE, 0x00, 0x3C, 0x00, 0x7F, 0x00, 0x7F, 0xF0, 0x3F, 0xF8, 0x0F,
-    0xF8, 0x01, 0xF0, 0x01, 0xFE, 0x03, 0xDE, 0x0F, 0xBF, 0xFE, 0x3F, 0xF8,
-    0x1F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0x0F, 0x00, 0xF0, 0x0F,
-    0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F,
-    0x00, 0xF0, 0x0F, 0x00, 0xF0, 0xF0, 0x3F, 0xC0, 0xFF, 0x03, 0xFC, 0x0F,
-    0xF0, 0x3F, 0xC0, 0xFF, 0x03, 0xFC, 0x0F, 0xF0, 0x3F, 0xC0, 0xFF, 0x03,
-    0xFC, 0x0F, 0xF0, 0x3F, 0xC0, 0xF7, 0x87, 0x9F, 0xFE, 0x3F, 0xF0, 0x3F,
-    0x00, 0x70, 0x0E, 0xF0, 0x3D, 0xE0, 0x79, 0xC0, 0xE3, 0x81, 0xC7, 0x87,
-    0x87, 0x0E, 0x0E, 0x1C, 0x1E, 0x78, 0x1C, 0xE0, 0x39, 0xC0, 0x73, 0x80,
-    0x7E, 0x00, 0xFC, 0x01, 0xF8, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x80, 0x70,
-    0x38, 0x1C, 0xE0, 0xF0, 0x79, 0xE1, 0xF0, 0xF3, 0xC3, 0xE1, 0xE3, 0x87,
-    0xC3, 0x87, 0x0F, 0x87, 0x0E, 0x3B, 0x9E, 0x1E, 0x77, 0x38, 0x1C, 0xEE,
-    0x70, 0x39, 0xCC, 0xE0, 0x73, 0x99, 0xC0, 0x6E, 0x3F, 0x00, 0xFC, 0x7E,
-    0x01, 0xF8, 0xFC, 0x03, 0xF0, 0xF8, 0x03, 0xE1, 0xE0, 0x07, 0x83, 0xC0,
-    0x0F, 0x07, 0x80, 0xF0, 0x3C, 0xF0, 0xF9, 0xE1, 0xE1, 0xE7, 0x83, 0xCF,
-    0x03, 0xFC, 0x03, 0xF0, 0x07, 0xE0, 0x07, 0x80, 0x0F, 0x00, 0x3F, 0x00,
-    0xFF, 0x01, 0xFE, 0x07, 0x9E, 0x0F, 0x1E, 0x3C, 0x3C, 0xF8, 0x3D, 0xE0,
-    0x78, 0xF0, 0x1E, 0x78, 0x1E, 0x78, 0x3C, 0x3C, 0x3C, 0x3C, 0x78, 0x1E,
-    0x78, 0x0E, 0x70, 0x0F, 0xF0, 0x07, 0xE0, 0x07, 0xE0, 0x03, 0xC0, 0x03,
-    0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03,
-    0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x01, 0xF0, 0x0F, 0x00, 0xF0, 0x0F,
-    0x00, 0xF8, 0x07, 0x80, 0x78, 0x07, 0x80, 0x7C, 0x03, 0xC0, 0x3C, 0x03,
-    0xC0, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFC, 0xF3, 0xCF,
-    0x3C, 0xF3, 0xCF, 0x3C, 0xF3, 0xCF, 0x3C, 0xF3, 0xCF, 0x3C, 0xFF, 0xFF,
-    0xC0, 0xC1, 0x81, 0x03, 0x06, 0x04, 0x0C, 0x18, 0x10, 0x30, 0x60, 0x40,
-    0xC1, 0x81, 0x03, 0x06, 0xFF, 0xFF, 0xCF, 0x3C, 0xF3, 0xCF, 0x3C, 0xF3,
-    0xCF, 0x3C, 0xF3, 0xCF, 0x3C, 0xF3, 0xCF, 0xFF, 0xFF, 0xC0, 0x0F, 0x00,
-    0xF0, 0x0F, 0x01, 0xF8, 0x1B, 0x83, 0x9C, 0x39, 0xC3, 0x0C, 0x70, 0xE7,
-    0x0E, 0xE0, 0x70, 0xFF, 0xFF, 0xFF, 0xFC, 0xE6, 0x30, 0x1F, 0x83, 0xFF,
-    0x1F, 0xFD, 0xE1, 0xE0, 0x0F, 0x03, 0xF9, 0xFF, 0xDF, 0x1E, 0xF0, 0xF7,
-    0x8F, 0xBF, 0xFC, 0xFF, 0xE3, 0xCF, 0x80, 0xF0, 0x07, 0x80, 0x3C, 0x01,
-    0xE0, 0x0F, 0x00, 0x7B, 0xC3, 0xFF, 0x9F, 0xFE, 0xF8, 0xF7, 0x83, 0xFC,
-    0x1F, 0xE0, 0xFF, 0x07, 0xF8, 0x3F, 0xE3, 0xDF, 0xFE, 0xFF, 0xE7, 0xBE,
-    0x00, 0x0F, 0x83, 0xFE, 0x7F, 0xF7, 0x8F, 0xF0, 0x7F, 0x00, 0xF0, 0x0F,
-    0x00, 0xF0, 0x77, 0x8F, 0x7F, 0xF3, 0xFE, 0x0F, 0x80, 0x00, 0x78, 0x03,
-    0xC0, 0x1E, 0x00, 0xF0, 0x07, 0x8F, 0xBC, 0xFF, 0xEF, 0xFF, 0x78, 0xFF,
-    0x83, 0xFC, 0x1F, 0xE0, 0xFF, 0x07, 0xF8, 0x3D, 0xE3, 0xEF, 0xFF, 0x3F,
-    0xF8, 0xFB, 0xC0, 0x1F, 0x81, 0xFE, 0x1F, 0xF9, 0xF1, 0xCF, 0x07, 0x7F,
-    0xFB, 0xFF, 0xDE, 0x00, 0xF0, 0x03, 0xC3, 0x9F, 0xFC, 0x7F, 0xC0, 0xF8,
-    0x00, 0x3E, 0xFD, 0xFB, 0xC7, 0x9F, 0xBF, 0x3C, 0x78, 0xF1, 0xE3, 0xC7,
-    0x8F, 0x1E, 0x3C, 0x78, 0xF0, 0x1E, 0x79, 0xFB, 0xDF, 0xFE, 0xF1, 0xFF,
-    0x07, 0xF8, 0x3F, 0xC1, 0xFE, 0x0F, 0xF0, 0x7F, 0xC7, 0xDF, 0xFE, 0x7F,
-    0xF1, 0xF7, 0x80, 0x3C, 0x01, 0xFF, 0x1E, 0x7F, 0xF0, 0xFE, 0x00, 0xF0,
-    0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x7C, 0xFF, 0xEF, 0xFF, 0xF9,
-    0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0,
-    0xFF, 0x0F, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3C,
-    0xF3, 0xC0, 0x00, 0xF3, 0xCF, 0x3C, 0xF3, 0xCF, 0x3C, 0xF3, 0xCF, 0x3C,
-    0xF3, 0xCF, 0xFF, 0xFF, 0x80, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0,
-    0x0F, 0x0F, 0xF1, 0xEF, 0x3C, 0xF7, 0x8F, 0xF0, 0xFF, 0x0F, 0xF8, 0xFF,
-    0x8F, 0x3C, 0xF1, 0xCF, 0x1E, 0xF0, 0xEF, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x8F, 0x9F, 0xFB, 0xFB, 0xFF, 0xFF,
-    0xFC, 0xF8, 0xFF, 0x1E, 0x1F, 0xE3, 0xC3, 0xFC, 0x78, 0x7F, 0x8F, 0x0F,
-    0xF1, 0xE1, 0xFE, 0x3C, 0x3F, 0xC7, 0x87, 0xF8, 0xF0, 0xFF, 0x1E, 0x1E,
-    0xF7, 0xCF, 0xFE, 0xFF, 0xFF, 0x9F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F,
-    0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xF0, 0x0F, 0x81, 0xFF, 0x1F,
-    0xFC, 0xF1, 0xEF, 0x07, 0xF8, 0x3F, 0xC1, 0xFE, 0x0F, 0xF0, 0x7B, 0xC7,
-    0x9F, 0xFC, 0x7F, 0xC0, 0xF8, 0x00, 0xF7, 0xC7, 0xFF, 0x3F, 0xFD, 0xF1,
-    0xEF, 0x07, 0xF8, 0x3F, 0xC1, 0xFE, 0x0F, 0xF0, 0x7F, 0xC7, 0xBF, 0xFD,
-    0xFF, 0xCF, 0x78, 0x78, 0x03, 0xC0, 0x1E, 0x00, 0xF0, 0x07, 0x80, 0x00,
-    0x0F, 0x79, 0xFF, 0xDF, 0xFE, 0xF1, 0xFF, 0x07, 0xF8, 0x3F, 0xC1, 0xFE,
-    0x0F, 0xF0, 0x7B, 0xC7, 0xDF, 0xFE, 0x7F, 0xF1, 0xF7, 0x80, 0x3C, 0x01,
-    0xE0, 0x0F, 0x00, 0x78, 0x03, 0xC0, 0xF3, 0xF7, 0xFF, 0xF8, 0xF0, 0xF0,
-    0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x1F, 0x87, 0xFC, 0xFF, 0xEF,
-    0x0F, 0xF8, 0x0F, 0xF0, 0x7F, 0xE0, 0xFF, 0x01, 0xFF, 0x0F, 0xFF, 0xE7,
-    0xFE, 0x1F, 0x80, 0x79, 0xE7, 0xBF, 0xFD, 0xE7, 0x9E, 0x79, 0xE7, 0x9E,
-    0x7D, 0xF3, 0xC0, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F,
-    0xF0, 0xFF, 0x0F, 0xF0, 0xFF, 0x1F, 0xFF, 0xF7, 0xFF, 0x3E, 0xF0, 0xF0,
-    0x7B, 0x83, 0x9E, 0x1C, 0xF1, 0xE3, 0x8E, 0x1C, 0x70, 0x77, 0x83, 0xB8,
-    0x1D, 0xC0, 0x7E, 0x03, 0xE0, 0x1F, 0x00, 0x70, 0x00, 0xF0, 0xE1, 0xDC,
-    0x78, 0x77, 0x1F, 0x3D, 0xE7, 0xCF, 0x79, 0xB3, 0x8E, 0x6C, 0xE3, 0xBB,
-    0x38, 0xEE, 0xFC, 0x1F, 0x3F, 0x07, 0xC7, 0xC1, 0xF1, 0xF0, 0x7C, 0x78,
-    0x0E, 0x1E, 0x00, 0x78, 0xF3, 0xC7, 0x8F, 0x78, 0x3B, 0x81, 0xFC, 0x07,
-    0xC0, 0x1E, 0x01, 0xF0, 0x1F, 0xC0, 0xEF, 0x0F, 0x78, 0xF1, 0xE7, 0x87,
-    0x00, 0xF0, 0x7B, 0x83, 0x9E, 0x1C, 0x71, 0xE3, 0x8E, 0x1E, 0x70, 0x73,
-    0x83, 0xB8, 0x1F, 0xC0, 0x7E, 0x03, 0xE0, 0x0F, 0x00, 0x70, 0x03, 0x80,
-    0x3C, 0x07, 0xC0, 0x3E, 0x01, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0xFC, 0x0F,
-    0x07, 0x83, 0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x0F, 0xFF, 0xFF, 0xFF, 0xC0,
-    0x1C, 0xF3, 0xCE, 0x38, 0xE3, 0x8E, 0x38, 0xE3, 0xBC, 0xF0, 0xE3, 0x8E,
-    0x38, 0xE3, 0x8E, 0x3C, 0xF1, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0,
-    0xE3, 0x8F, 0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xC7, 0x0F, 0x3D, 0xC7, 0x1C,
-    0x71, 0xC7, 0x1C, 0xF3, 0xCE, 0x00, 0x78, 0x0F, 0xE0, 0xCF, 0x30, 0x7F,
-    0x01, 0xE0};
-
-const GFXglyph FreeSansBold12pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 7, 0, 1},         // 0x20 ' '
-    {0, 4, 17, 8, 3, -16},      // 0x21 '!'
-    {9, 10, 6, 11, 1, -17},     // 0x22 '"'
-    {17, 13, 16, 13, 0, -15},   // 0x23 '#'
-    {43, 13, 20, 13, 0, -17},   // 0x24 '$'
-    {76, 19, 17, 21, 1, -16},   // 0x25 '%'
-    {117, 16, 17, 17, 1, -16},  // 0x26 '&'
-    {151, 4, 6, 6, 1, -17},     // 0x27 '''
-    {154, 6, 22, 8, 1, -17},    // 0x28 '('
-    {171, 6, 22, 8, 1, -17},    // 0x29 ')'
-    {188, 7, 8, 9, 1, -17},     // 0x2A '*'
-    {195, 11, 11, 14, 2, -10},  // 0x2B '+'
-    {211, 4, 7, 6, 1, -2},      // 0x2C ','
-    {215, 6, 3, 8, 1, -7},      // 0x2D '-'
-    {218, 4, 3, 6, 1, -2},      // 0x2E '.'
-    {220, 6, 17, 7, 0, -16},    // 0x2F '/'
-    {233, 12, 17, 13, 1, -16},  // 0x30 '0'
-    {259, 7, 17, 14, 3, -16},   // 0x31 '1'
-    {274, 12, 17, 13, 1, -16},  // 0x32 '2'
-    {300, 12, 17, 13, 1, -16},  // 0x33 '3'
-    {326, 11, 17, 13, 1, -16},  // 0x34 '4'
-    {350, 12, 17, 13, 1, -16},  // 0x35 '5'
-    {376, 12, 17, 13, 1, -16},  // 0x36 '6'
-    {402, 11, 17, 13, 1, -16},  // 0x37 '7'
-    {426, 12, 17, 13, 1, -16},  // 0x38 '8'
-    {452, 12, 17, 13, 1, -16},  // 0x39 '9'
-    {478, 4, 12, 6, 1, -11},    // 0x3A ':'
-    {484, 4, 16, 6, 1, -11},    // 0x3B ';'
-    {492, 12, 12, 14, 1, -11},  // 0x3C '<'
-    {510, 12, 9, 14, 1, -9},    // 0x3D '='
-    {524, 12, 12, 14, 1, -11},  // 0x3E '>'
-    {542, 12, 18, 15, 2, -17},  // 0x3F '?'
-    {569, 21, 21, 23, 1, -17},  // 0x40 '@'
-    {625, 16, 18, 17, 0, -17},  // 0x41 'A'
-    {661, 14, 18, 17, 2, -17},  // 0x42 'B'
-    {693, 16, 18, 17, 1, -17},  // 0x43 'C'
-    {729, 15, 18, 17, 2, -17},  // 0x44 'D'
-    {763, 13, 18, 16, 2, -17},  // 0x45 'E'
-    {793, 12, 18, 15, 2, -17},  // 0x46 'F'
-    {820, 16, 18, 18, 1, -17},  // 0x47 'G'
-    {856, 14, 18, 18, 2, -17},  // 0x48 'H'
-    {888, 4, 18, 7, 2, -17},    // 0x49 'I'
-    {897, 11, 18, 14, 1, -17},  // 0x4A 'J'
-    {922, 16, 18, 17, 2, -17},  // 0x4B 'K'
-    {958, 11, 18, 15, 2, -17},  // 0x4C 'L'
-    {983, 17, 18, 21, 2, -17},  // 0x4D 'M'
-    {1022, 15, 18, 18, 2, -17}, // 0x4E 'N'
-    {1056, 17, 18, 19, 1, -17}, // 0x4F 'O'
-    {1095, 14, 18, 16, 2, -17}, // 0x50 'P'
-    {1127, 17, 19, 19, 1, -17}, // 0x51 'Q'
-    {1168, 16, 18, 17, 2, -17}, // 0x52 'R'
-    {1204, 15, 18, 16, 1, -17}, // 0x53 'S'
-    {1238, 12, 18, 15, 2, -17}, // 0x54 'T'
-    {1265, 14, 18, 18, 2, -17}, // 0x55 'U'
-    {1297, 15, 18, 16, 0, -17}, // 0x56 'V'
-    {1331, 23, 18, 23, 0, -17}, // 0x57 'W'
-    {1383, 15, 18, 16, 1, -17}, // 0x58 'X'
-    {1417, 16, 18, 15, 0, -17}, // 0x59 'Y'
-    {1453, 13, 18, 15, 1, -17}, // 0x5A 'Z'
-    {1483, 6, 23, 8, 2, -17},   // 0x5B '['
-    {1501, 7, 17, 7, 0, -16},   // 0x5C '\'
-    {1516, 6, 23, 8, 0, -17},   // 0x5D ']'
-    {1534, 12, 11, 14, 1, -16}, // 0x5E '^'
-    {1551, 15, 2, 13, -1, 4},   // 0x5F '_'
-    {1555, 4, 3, 6, 0, -17},    // 0x60 '`'
-    {1557, 13, 13, 14, 1, -12}, // 0x61 'a'
-    {1579, 13, 18, 15, 2, -17}, // 0x62 'b'
-    {1609, 12, 13, 13, 1, -12}, // 0x63 'c'
-    {1629, 13, 18, 15, 1, -17}, // 0x64 'd'
-    {1659, 13, 13, 14, 1, -12}, // 0x65 'e'
-    {1681, 7, 18, 8, 1, -17},   // 0x66 'f'
-    {1697, 13, 18, 15, 1, -12}, // 0x67 'g'
-    {1727, 12, 18, 14, 2, -17}, // 0x68 'h'
-    {1754, 4, 18, 7, 2, -17},   // 0x69 'i'
-    {1763, 6, 23, 7, 0, -17},   // 0x6A 'j'
-    {1781, 12, 18, 14, 2, -17}, // 0x6B 'k'
-    {1808, 4, 18, 6, 2, -17},   // 0x6C 'l'
-    {1817, 19, 13, 21, 2, -12}, // 0x6D 'm'
-    {1848, 12, 13, 15, 2, -12}, // 0x6E 'n'
-    {1868, 13, 13, 15, 1, -12}, // 0x6F 'o'
-    {1890, 13, 18, 15, 2, -12}, // 0x70 'p'
-    {1920, 13, 18, 15, 1, -12}, // 0x71 'q'
-    {1950, 8, 13, 9, 2, -12},   // 0x72 'r'
-    {1963, 12, 13, 13, 1, -12}, // 0x73 's'
-    {1983, 6, 15, 8, 1, -14},   // 0x74 't'
-    {1995, 12, 13, 15, 2, -12}, // 0x75 'u'
-    {2015, 13, 13, 13, 0, -12}, // 0x76 'v'
-    {2037, 18, 13, 19, 0, -12}, // 0x77 'w'
-    {2067, 13, 13, 13, 0, -12}, // 0x78 'x'
-    {2089, 13, 18, 13, 0, -12}, // 0x79 'y'
-    {2119, 10, 13, 12, 1, -12}, // 0x7A 'z'
-    {2136, 6, 23, 9, 1, -17},   // 0x7B '{'
-    {2154, 2, 22, 7, 2, -17},   // 0x7C '|'
-    {2160, 6, 23, 9, 3, -17},   // 0x7D '}'
-    {2178, 12, 5, 12, 0, -7}};  // 0x7E '~'
-
-const GFXfont FreeSansBold12pt7b PROGMEM = {
-    (uint8_t *)FreeSansBold12pt7bBitmaps, (GFXglyph *)FreeSansBold12pt7bGlyphs,
-    0x20, 0x7E, 29};
-
-// Approx. 2858 bytes

+ 0 - 480
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeSansBold18pt7b.h

@@ -1,480 +0,0 @@
-const uint8_t FreeSansBold18pt7bBitmaps[] PROGMEM = {
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xE7, 0x39, 0xCE, 0x73, 0x80,
-    0x0F, 0xFF, 0xFF, 0xF8, 0xF8, 0xFF, 0xC7, 0xFE, 0x3F, 0xF1, 0xFF, 0x8F,
-    0xFC, 0x7D, 0xC1, 0xCE, 0x0E, 0x70, 0x70, 0x03, 0xC3, 0x80, 0x3C, 0x78,
-    0x03, 0xC7, 0x80, 0x38, 0x78, 0x07, 0x87, 0x07, 0xFF, 0xFF, 0x7F, 0xFF,
-    0xF7, 0xFF, 0xFF, 0x7F, 0xFF, 0xF0, 0xF0, 0xE0, 0x0F, 0x0E, 0x00, 0xF1,
-    0xE0, 0x0F, 0x1E, 0x00, 0xE1, 0xE0, 0xFF, 0xFF, 0xCF, 0xFF, 0xFC, 0xFF,
-    0xFF, 0xCF, 0xFF, 0xFC, 0x1C, 0x3C, 0x03, 0xC3, 0x80, 0x3C, 0x78, 0x03,
-    0xC7, 0x80, 0x38, 0x78, 0x03, 0x87, 0x80, 0x00, 0x60, 0x00, 0x7F, 0x80,
-    0x3F, 0xFC, 0x0F, 0xFF, 0xC3, 0xFF, 0xFC, 0xFC, 0xDF, 0x9F, 0x19, 0xFB,
-    0xC3, 0x1F, 0x78, 0x63, 0xEF, 0x8C, 0x01, 0xFD, 0x80, 0x1F, 0xF0, 0x01,
-    0xFF, 0xC0, 0x1F, 0xFE, 0x00, 0x7F, 0xE0, 0x03, 0xFE, 0x00, 0x67, 0xE0,
-    0x0C, 0x7F, 0xE1, 0x8F, 0xFC, 0x31, 0xFF, 0xC6, 0x3E, 0xFC, 0xDF, 0x9F,
-    0xFF, 0xF1, 0xFF, 0xFC, 0x0F, 0xFF, 0x00, 0x7F, 0x80, 0x01, 0x80, 0x00,
-    0x30, 0x00, 0x06, 0x00, 0x0F, 0x00, 0x1C, 0x01, 0xFE, 0x00, 0xE0, 0x1F,
-    0xF8, 0x0E, 0x00, 0xFF, 0xC0, 0x70, 0x0F, 0x0F, 0x07, 0x00, 0x70, 0x38,
-    0x38, 0x03, 0x81, 0xC3, 0x80, 0x1C, 0x0E, 0x3C, 0x00, 0xF0, 0xF1, 0xC0,
-    0x03, 0xFF, 0x1C, 0x00, 0x1F, 0xF8, 0xE0, 0x00, 0x7F, 0x8E, 0x00, 0x00,
-    0xF0, 0x70, 0xF8, 0x00, 0x07, 0x1F, 0xF0, 0x00, 0x39, 0xFF, 0xC0, 0x03,
-    0x8F, 0xFE, 0x00, 0x1C, 0xF0, 0x78, 0x01, 0xC7, 0x01, 0xC0, 0x0C, 0x38,
-    0x0E, 0x00, 0xE1, 0xC0, 0x70, 0x06, 0x0F, 0x07, 0x80, 0x70, 0x3F, 0xF8,
-    0x07, 0x01, 0xFF, 0xC0, 0x38, 0x07, 0xFC, 0x03, 0x80, 0x0F, 0x80, 0x01,
-    0xF0, 0x00, 0x1F, 0xE0, 0x00, 0xFF, 0xC0, 0x03, 0xFF, 0x80, 0x1F, 0x1E,
-    0x00, 0x7C, 0x78, 0x01, 0xF1, 0xE0, 0x07, 0xE7, 0x80, 0x0F, 0xBC, 0x00,
-    0x1F, 0xE0, 0x00, 0x3F, 0x00, 0x01, 0xF8, 0x00, 0x1F, 0xF0, 0xF0, 0xFF,
-    0xE3, 0xC7, 0xE7, 0xCF, 0x3F, 0x0F, 0xF8, 0xF8, 0x3F, 0xE3, 0xE0, 0x7F,
-    0x8F, 0x80, 0xFC, 0x3F, 0x03, 0xF0, 0x7E, 0x3F, 0xE1, 0xFF, 0xFF, 0x83,
-    0xFF, 0xFF, 0x07, 0xFE, 0x7E, 0x07, 0xF0, 0xFC, 0xFF, 0xFF, 0xFF, 0xFD,
-    0xCE, 0x70, 0x07, 0x87, 0x83, 0xC3, 0xC1, 0xE1, 0xE0, 0xF0, 0x78, 0x78,
-    0x3C, 0x1E, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E,
-    0x0F, 0x03, 0x81, 0xE0, 0xF0, 0x78, 0x1E, 0x0F, 0x03, 0x81, 0xE0, 0x70,
-    0x3C, 0x0E, 0x07, 0x80, 0xF0, 0x38, 0x1E, 0x07, 0x83, 0xC0, 0xF0, 0x78,
-    0x3C, 0x0F, 0x07, 0x83, 0xC0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83,
-    0xC1, 0xE0, 0xF0, 0x78, 0x78, 0x3C, 0x1E, 0x0F, 0x0F, 0x07, 0x87, 0x83,
-    0xC1, 0xC1, 0xE0, 0xE0, 0xF0, 0x00, 0x06, 0x00, 0x60, 0x06, 0x07, 0x6E,
-    0x7F, 0xE3, 0xFC, 0x0F, 0x01, 0xF8, 0x1F, 0x83, 0x9C, 0x10, 0x80, 0x03,
-    0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xC0, 0x03, 0xC0, 0x03,
-    0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0xFF, 0xFF, 0xFF, 0x8C, 0x63,
-    0x37, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x80, 0x01,
-    0x81, 0xC0, 0xC0, 0x60, 0x70, 0x38, 0x18, 0x0C, 0x0E, 0x06, 0x03, 0x01,
-    0x81, 0xC0, 0xC0, 0x60, 0x30, 0x38, 0x18, 0x0C, 0x0E, 0x07, 0x03, 0x01,
-    0x81, 0xC0, 0xC0, 0x00, 0x07, 0xF0, 0x0F, 0xFE, 0x0F, 0xFF, 0x87, 0xFF,
-    0xC7, 0xE3, 0xF3, 0xE0, 0xF9, 0xF0, 0x7D, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC,
-    0x07, 0xFE, 0x03, 0xFF, 0x01, 0xFF, 0x80, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F,
-    0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xDF, 0x07, 0xCF, 0x83, 0xE7, 0xE3,
-    0xF1, 0xFF, 0xF0, 0xFF, 0xF8, 0x3F, 0xF8, 0x07, 0xF0, 0x00, 0x01, 0xC0,
-    0xF0, 0x3C, 0x1F, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xC1, 0xF0, 0x7C,
-    0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07,
-    0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC0, 0x07, 0xF0, 0x0F, 0xFE, 0x0F, 0xFF,
-    0x8F, 0xFF, 0xE7, 0xE3, 0xF7, 0xE0, 0xFF, 0xE0, 0x3F, 0xF0, 0x1F, 0xF8,
-    0x0F, 0x80, 0x07, 0xC0, 0x07, 0xE0, 0x03, 0xE0, 0x03, 0xF0, 0x03, 0xF0,
-    0x07, 0xF0, 0x07, 0xF0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xC0, 0x07, 0xC0,
-    0x03, 0xE0, 0x03, 0xFF, 0xFD, 0xFF, 0xFE, 0xFF, 0xFF, 0x7F, 0xFF, 0x80,
-    0x07, 0xE0, 0x0F, 0xFC, 0x0F, 0xFF, 0x0F, 0xFF, 0xCF, 0xC3, 0xF7, 0xC0,
-    0xFB, 0xE0, 0x7D, 0xF0, 0x3E, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x0F, 0x80,
-    0x3F, 0x80, 0x1F, 0xC0, 0x0F, 0xF0, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F,
-    0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x83, 0xF7, 0xC3, 0xF3, 0xFF, 0xF8, 0xFF,
-    0xF8, 0x3F, 0xF8, 0x07, 0xF0, 0x00, 0x00, 0xFC, 0x00, 0xFC, 0x01, 0xFC,
-    0x01, 0xFC, 0x03, 0xFC, 0x07, 0x7C, 0x07, 0x7C, 0x0E, 0x7C, 0x0E, 0x7C,
-    0x1C, 0x7C, 0x18, 0x7C, 0x38, 0x7C, 0x70, 0x7C, 0x60, 0x7C, 0xE0, 0x7C,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x7C, 0x00, 0x7C,
-    0x00, 0x7C, 0x00, 0x7C, 0x00, 0x7C, 0x00, 0x7C, 0x1F, 0xFF, 0x0F, 0xFF,
-    0x8F, 0xFF, 0xC7, 0xFF, 0xE3, 0xC0, 0x01, 0xE0, 0x00, 0xE0, 0x00, 0x70,
-    0x00, 0x79, 0xF0, 0x3F, 0xFE, 0x1F, 0xFF, 0x8F, 0xFF, 0xE7, 0xC3, 0xF0,
-    0x00, 0xFC, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xFE, 0x03,
-    0xFF, 0x03, 0xFF, 0xC3, 0xF3, 0xFF, 0xF1, 0xFF, 0xF8, 0x3F, 0xF0, 0x07,
-    0xE0, 0x00, 0x03, 0xF8, 0x03, 0xFF, 0x81, 0xFF, 0xF0, 0xFF, 0xFE, 0x3E,
-    0x1F, 0x9F, 0x03, 0xE7, 0xC0, 0x03, 0xE0, 0x00, 0xF8, 0xF8, 0x3E, 0xFF,
-    0x8F, 0xFF, 0xF3, 0xFF, 0xFE, 0xFE, 0x1F, 0xBF, 0x03, 0xFF, 0x80, 0x7F,
-    0xE0, 0x1F, 0xF8, 0x07, 0xFE, 0x01, 0xF7, 0x80, 0x7D, 0xF0, 0x3E, 0x7E,
-    0x1F, 0x8F, 0xFF, 0xC1, 0xFF, 0xF0, 0x3F, 0xF0, 0x03, 0xF0, 0x00, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0xF0, 0x00, 0xF8,
-    0x00, 0xF8, 0x00, 0x78, 0x00, 0x7C, 0x00, 0x3C, 0x00, 0x3E, 0x00, 0x1E,
-    0x00, 0x1F, 0x00, 0x0F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xC0, 0x03,
-    0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x78, 0x00, 0x7C, 0x00, 0x3E, 0x00,
-    0x1F, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xE0, 0x07, 0xFC, 0x0F, 0xFF, 0x07,
-    0xFF, 0xC7, 0xC3, 0xF3, 0xC0, 0xF9, 0xE0, 0x3C, 0xF0, 0x1E, 0x78, 0x1F,
-    0x1E, 0x1F, 0x07, 0xFF, 0x01, 0xFF, 0x03, 0xFF, 0xE3, 0xF1, 0xF9, 0xF0,
-    0x7D, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x83, 0xF7,
-    0xC3, 0xF3, 0xFF, 0xF8, 0xFF, 0xF8, 0x3F, 0xF8, 0x07, 0xF0, 0x00, 0x07,
-    0xE0, 0x0F, 0xFC, 0x0F, 0xFF, 0x0F, 0xFF, 0xC7, 0xE3, 0xF7, 0xE0, 0xFB,
-    0xE0, 0x3D, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x83,
-    0xF7, 0xE3, 0xFB, 0xFF, 0xFC, 0xFF, 0xFE, 0x3F, 0xDF, 0x07, 0xCF, 0x80,
-    0x07, 0x80, 0x03, 0xDF, 0x03, 0xE7, 0xC3, 0xE3, 0xFF, 0xF0, 0xFF, 0xF0,
-    0x3F, 0xF0, 0x07, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00,
-    0x00, 0x7F, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00,
-    0x00, 0x7F, 0xFF, 0xFF, 0xC6, 0x33, 0x9B, 0xD8, 0x00, 0x00, 0xC0, 0x00,
-    0xF0, 0x01, 0xFC, 0x03, 0xFF, 0x03, 0xFF, 0x07, 0xFE, 0x0F, 0xFC, 0x03,
-    0xF8, 0x00, 0xF0, 0x00, 0x3F, 0x80, 0x0F, 0xFC, 0x00, 0x7F, 0xE0, 0x07,
-    0xFF, 0x00, 0x3F, 0xF0, 0x01, 0xFC, 0x00, 0x1F, 0x00, 0x00, 0xC0, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xF0, 0xC0, 0x00, 0x3C, 0x00, 0x0F, 0xE0, 0x03, 0xFF, 0x00, 0x3F, 0xF0,
-    0x01, 0xFF, 0x80, 0x0F, 0xFC, 0x00, 0x7F, 0x00, 0x03, 0xC0, 0x07, 0xF0,
-    0x0F, 0xFC, 0x1F, 0xF8, 0x3F, 0xF8, 0x3F, 0xF0, 0x0F, 0xE0, 0x03, 0xC0,
-    0x00, 0xC0, 0x00, 0x00, 0x07, 0xF0, 0x07, 0xFF, 0x03, 0xFF, 0xF1, 0xFF,
-    0xFC, 0x7E, 0x3F, 0xBF, 0x03, 0xFF, 0x80, 0x7F, 0xE0, 0x1F, 0xF8, 0x07,
-    0xC0, 0x03, 0xF0, 0x01, 0xFC, 0x00, 0xFE, 0x00, 0x7F, 0x00, 0x3F, 0x80,
-    0x1F, 0xC0, 0x07, 0xC0, 0x03, 0xE0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE0,
-    0x00, 0xF8, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x3F, 0xFF, 0x00, 0x00,
-    0xFF, 0xFF, 0xC0, 0x01, 0xF8, 0x07, 0xF0, 0x03, 0xE0, 0x01, 0xF8, 0x07,
-    0x80, 0x00, 0x7C, 0x0F, 0x00, 0x00, 0x3C, 0x1E, 0x03, 0xE3, 0x9E, 0x3C,
-    0x0F, 0xF7, 0x8E, 0x38, 0x1F, 0xFF, 0x0E, 0x78, 0x3E, 0x1F, 0x07, 0x70,
-    0x38, 0x0F, 0x07, 0x70, 0x78, 0x0F, 0x07, 0xE0, 0x70, 0x0E, 0x07, 0xE0,
-    0x70, 0x0E, 0x07, 0xE0, 0xE0, 0x0E, 0x07, 0xE0, 0xE0, 0x1E, 0x0F, 0xE0,
-    0xE0, 0x1C, 0x0E, 0xE0, 0xE0, 0x3C, 0x1E, 0xE0, 0xF0, 0x3C, 0x3C, 0xF0,
-    0xF0, 0xFC, 0x7C, 0x70, 0x7F, 0xFF, 0xF8, 0x78, 0x3F, 0xCF, 0xF0, 0x3C,
-    0x1F, 0x07, 0xC0, 0x3E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x0F,
-    0xC0, 0x01, 0x00, 0x07, 0xF0, 0x0F, 0x00, 0x03, 0xFF, 0xFF, 0x00, 0x00,
-    0xFF, 0xFF, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7F,
-    0x00, 0x00, 0x7F, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x80, 0x01, 0xFF,
-    0x80, 0x01, 0xFF, 0x80, 0x01, 0xF7, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7,
-    0xC0, 0x03, 0xE3, 0xE0, 0x07, 0xC3, 0xE0, 0x07, 0xC3, 0xE0, 0x07, 0xC1,
-    0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0xFF, 0xF8, 0x1F, 0xFF,
-    0xF8, 0x1F, 0xFF, 0xFC, 0x1F, 0xFF, 0xFC, 0x3E, 0x00, 0x7C, 0x3E, 0x00,
-    0x7E, 0x3E, 0x00, 0x3E, 0x7C, 0x00, 0x3E, 0x7C, 0x00, 0x3F, 0x7C, 0x00,
-    0x1F, 0xFF, 0xFC, 0x0F, 0xFF, 0xF0, 0xFF, 0xFF, 0x8F, 0xFF, 0xFC, 0xF8,
-    0x07, 0xEF, 0x80, 0x3E, 0xF8, 0x03, 0xEF, 0x80, 0x3E, 0xF8, 0x03, 0xEF,
-    0x80, 0x3E, 0xF8, 0x07, 0xCF, 0xFF, 0xF8, 0xFF, 0xFF, 0x0F, 0xFF, 0xF8,
-    0xFF, 0xFF, 0xCF, 0x80, 0x7E, 0xF8, 0x01, 0xEF, 0x80, 0x1F, 0xF8, 0x01,
-    0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x3E, 0xFF, 0xFF, 0xEF, 0xFF,
-    0xFC, 0xFF, 0xFF, 0x8F, 0xFF, 0xE0, 0x00, 0xFF, 0x00, 0x07, 0xFF, 0x80,
-    0x3F, 0xFF, 0xC0, 0xFF, 0xFF, 0xC3, 0xF8, 0x1F, 0x87, 0xE0, 0x1F, 0x9F,
-    0x80, 0x1F, 0x3E, 0x00, 0x1F, 0x7C, 0x00, 0x3F, 0xF0, 0x00, 0x03, 0xE0,
-    0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00,
-    0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x7D, 0xF0, 0x00,
-    0xFB, 0xF0, 0x03, 0xF3, 0xF0, 0x0F, 0xC7, 0xF0, 0x3F, 0x87, 0xFF, 0xFE,
-    0x07, 0xFF, 0xF8, 0x03, 0xFF, 0xC0, 0x01, 0xFE, 0x00, 0xFF, 0xFC, 0x07,
-    0xFF, 0xF8, 0x3F, 0xFF, 0xE1, 0xFF, 0xFF, 0x8F, 0x80, 0xFE, 0x7C, 0x01,
-    0xF3, 0xE0, 0x07, 0xDF, 0x00, 0x3E, 0xF8, 0x01, 0xF7, 0xC0, 0x07, 0xFE,
-    0x00, 0x3F, 0xF0, 0x01, 0xFF, 0x80, 0x0F, 0xFC, 0x00, 0x7F, 0xE0, 0x03,
-    0xFF, 0x00, 0x1F, 0xF8, 0x00, 0xFF, 0xC0, 0x0F, 0xFE, 0x00, 0x7D, 0xF0,
-    0x03, 0xEF, 0x80, 0x3E, 0x7C, 0x07, 0xF3, 0xFF, 0xFF, 0x1F, 0xFF, 0xF0,
-    0xFF, 0xFF, 0x07, 0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xDF, 0xFF, 0xFB, 0xFF,
-    0xFF, 0x7F, 0xFF, 0xEF, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0,
-    0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7F, 0xFF, 0xCF, 0xFF,
-    0xF9, 0xFF, 0xFF, 0x3F, 0xFF, 0xE7, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00,
-    0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3F, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0,
-    0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0xFF, 0xEF, 0xFF, 0xF7,
-    0xFF, 0xFB, 0xFF, 0xFD, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00,
-    0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8,
-    0x00, 0x7C, 0x00, 0x00, 0x00, 0x7F, 0x80, 0x03, 0xFF, 0xE0, 0x07, 0xFF,
-    0xF8, 0x0F, 0xFF, 0xFC, 0x1F, 0xC0, 0xFE, 0x3F, 0x00, 0x7E, 0x7E, 0x00,
-    0x3F, 0x7C, 0x00, 0x1F, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00,
-    0x00, 0xF8, 0x00, 0x00, 0xF8, 0x03, 0xFF, 0xF8, 0x03, 0xFF, 0xF8, 0x03,
-    0xFF, 0xF8, 0x03, 0xFF, 0xFC, 0x00, 0x0F, 0x7C, 0x00, 0x1F, 0x7C, 0x00,
-    0x1F, 0x7E, 0x00, 0x3F, 0x3F, 0x00, 0x7F, 0x1F, 0xC1, 0xFF, 0x0F, 0xFF,
-    0xFF, 0x07, 0xFF, 0xE7, 0x03, 0xFF, 0xC7, 0x00, 0xFF, 0x07, 0xF8, 0x01,
-    0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80,
-    0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x01, 0xFF,
-    0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F,
-    0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01,
-    0xFF, 0x80, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x1F, 0x00, 0x1F,
-    0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F,
-    0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F,
-    0x00, 0x1F, 0x00, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F,
-    0xF8, 0x1F, 0xFC, 0x3F, 0x7F, 0xFE, 0x3F, 0xFC, 0x1F, 0xF8, 0x07, 0xE0,
-    0xF8, 0x01, 0xFB, 0xE0, 0x0F, 0xCF, 0x80, 0x7E, 0x3E, 0x03, 0xF0, 0xF8,
-    0x1F, 0x83, 0xE0, 0xFC, 0x0F, 0x87, 0xE0, 0x3E, 0x3F, 0x00, 0xF8, 0xF8,
-    0x03, 0xE7, 0xE0, 0x0F, 0xBF, 0x00, 0x3F, 0xF8, 0x00, 0xFF, 0xF0, 0x03,
-    0xFF, 0xE0, 0x0F, 0xFF, 0x80, 0x3F, 0xBF, 0x00, 0xFC, 0x7E, 0x03, 0xE0,
-    0xFC, 0x0F, 0x81, 0xF8, 0x3E, 0x07, 0xE0, 0xF8, 0x0F, 0xC3, 0xE0, 0x1F,
-    0x8F, 0x80, 0x7F, 0x3E, 0x00, 0xFC, 0xF8, 0x01, 0xFB, 0xE0, 0x03, 0xF0,
-    0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0,
-    0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F,
-    0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00,
-    0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0x00, 0xFF, 0xFF,
-    0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x81, 0xFF, 0xFF,
-    0x81, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0x81, 0xFF, 0xFB, 0xC3, 0xDF, 0xFB,
-    0xC3, 0xDF, 0xFB, 0xC3, 0xDF, 0xFB, 0xC3, 0xDF, 0xF9, 0xC7, 0xDF, 0xF9,
-    0xE7, 0x9F, 0xF9, 0xE7, 0x9F, 0xF9, 0xE7, 0x9F, 0xF9, 0xE7, 0x9F, 0xF8,
-    0xFF, 0x1F, 0xF8, 0xFF, 0x1F, 0xF8, 0xFF, 0x1F, 0xF8, 0xFF, 0x1F, 0xF8,
-    0x7F, 0x1F, 0xF8, 0x7E, 0x1F, 0xF8, 0x7E, 0x1F, 0xF8, 0x7E, 0x1F, 0xF8,
-    0x3E, 0x1F, 0xF8, 0x01, 0xFF, 0xC0, 0x1F, 0xFE, 0x01, 0xFF, 0xE0, 0x1F,
-    0xFF, 0x01, 0xFF, 0xF0, 0x1F, 0xFF, 0x81, 0xFF, 0xF8, 0x1F, 0xFF, 0xC1,
-    0xFF, 0xBC, 0x1F, 0xFB, 0xE1, 0xFF, 0x9F, 0x1F, 0xF9, 0xF1, 0xFF, 0x8F,
-    0x9F, 0xF8, 0x79, 0xFF, 0x87, 0xDF, 0xF8, 0x3D, 0xFF, 0x83, 0xFF, 0xF8,
-    0x1F, 0xFF, 0x81, 0xFF, 0xF8, 0x0F, 0xFF, 0x80, 0xFF, 0xF8, 0x07, 0xFF,
-    0x80, 0x3F, 0xF8, 0x03, 0xFF, 0x80, 0x1F, 0x00, 0x7F, 0x00, 0x01, 0xFF,
-    0xF0, 0x01, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0x01, 0xFC, 0x1F, 0xC1, 0xF8,
-    0x03, 0xF1, 0xF8, 0x00, 0xFC, 0xF8, 0x00, 0x3E, 0x7C, 0x00, 0x1F, 0x7C,
-    0x00, 0x07, 0xFE, 0x00, 0x03, 0xFF, 0x00, 0x01, 0xFF, 0x80, 0x00, 0xFF,
-    0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x3F, 0xF0, 0x00, 0x1F, 0xF8, 0x00, 0x0F,
-    0xBE, 0x00, 0x0F, 0x9F, 0x00, 0x07, 0xCF, 0xC0, 0x07, 0xE3, 0xF0, 0x07,
-    0xE0, 0xFE, 0x0F, 0xE0, 0x7F, 0xFF, 0xE0, 0x0F, 0xFF, 0xE0, 0x03, 0xFF,
-    0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFF, 0xFC, 0x1F, 0xFF, 0xE3, 0xFF, 0xFE,
-    0x7F, 0xFF, 0xEF, 0x80, 0xFF, 0xF0, 0x0F, 0xFE, 0x00, 0xFF, 0xC0, 0x1F,
-    0xF8, 0x03, 0xFF, 0x00, 0x7F, 0xE0, 0x1F, 0xFC, 0x07, 0xEF, 0xFF, 0xFD,
-    0xFF, 0xFF, 0x3F, 0xFF, 0xC7, 0xFF, 0xE0, 0xF8, 0x00, 0x1F, 0x00, 0x03,
-    0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07,
-    0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x01, 0xFF,
-    0xF0, 0x01, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0x01, 0xFC, 0x1F, 0xC1, 0xF8,
-    0x03, 0xF1, 0xF8, 0x00, 0xFC, 0xF8, 0x00, 0x3E, 0x7C, 0x00, 0x1F, 0x7C,
-    0x00, 0x07, 0xFE, 0x00, 0x03, 0xFF, 0x00, 0x01, 0xFF, 0x80, 0x00, 0xFF,
-    0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x3F, 0xF0, 0x00, 0x1F, 0xF8, 0x01, 0x0F,
-    0xBE, 0x01, 0xCF, 0x9F, 0x01, 0xFF, 0xCF, 0xC0, 0x7F, 0xE3, 0xF0, 0x1F,
-    0xE0, 0xFE, 0x0F, 0xF0, 0x7F, 0xFF, 0xF8, 0x0F, 0xFF, 0xFE, 0x03, 0xFF,
-    0xEF, 0x80, 0x3F, 0xC3, 0x80, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x07, 0xFF,
-    0xFE, 0x3F, 0xFF, 0xF9, 0xFF, 0xFF, 0xCF, 0x80, 0x3F, 0x7C, 0x00, 0xFB,
-    0xE0, 0x07, 0xDF, 0x00, 0x3E, 0xF8, 0x01, 0xF7, 0xC0, 0x0F, 0x3E, 0x00,
-    0xF9, 0xFF, 0xFF, 0x8F, 0xFF, 0xF8, 0x7F, 0xFF, 0xC3, 0xFF, 0xFF, 0x1F,
-    0x00, 0xFC, 0xF8, 0x03, 0xE7, 0xC0, 0x1F, 0x3E, 0x00, 0xF9, 0xF0, 0x07,
-    0xCF, 0x80, 0x3E, 0x7C, 0x01, 0xF3, 0xE0, 0x0F, 0x9F, 0x00, 0x7C, 0xF8,
-    0x03, 0xF7, 0xC0, 0x0F, 0xC0, 0x07, 0xF8, 0x01, 0xFF, 0xF0, 0x3F, 0xFF,
-    0x87, 0xFF, 0xFC, 0x7E, 0x0F, 0xCF, 0xC0, 0x7E, 0xF8, 0x03, 0xEF, 0x80,
-    0x3E, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0xFF, 0x00, 0x07, 0xFF, 0xC0, 0x3F,
-    0xFF, 0x81, 0xFF, 0xFC, 0x03, 0xFF, 0xE0, 0x01, 0xFF, 0x00, 0x03, 0xF0,
-    0x00, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xFC, 0x03, 0xFF, 0xE0, 0x7E,
-    0x7F, 0xFF, 0xE3, 0xFF, 0xFC, 0x1F, 0xFF, 0x00, 0x3F, 0xC0, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x1F, 0x00, 0x03, 0xE0,
-    0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0,
-    0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80,
-    0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00,
-    0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00,
-    0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01,
-    0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80,
-    0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8,
-    0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF,
-    0x80, 0x1F, 0x7C, 0x03, 0xE7, 0xE0, 0x7E, 0x3F, 0xFF, 0xC3, 0xFF, 0xFC,
-    0x0F, 0xFF, 0x00, 0x3F, 0xC0, 0xF8, 0x00, 0xFB, 0xE0, 0x03, 0xE7, 0xC0,
-    0x1F, 0x9F, 0x00, 0x7C, 0x7C, 0x01, 0xF0, 0xF8, 0x07, 0xC3, 0xE0, 0x3E,
-    0x0F, 0x80, 0xF8, 0x1E, 0x03, 0xE0, 0x7C, 0x1F, 0x01, 0xF0, 0x7C, 0x03,
-    0xC1, 0xF0, 0x0F, 0x87, 0x80, 0x3E, 0x3E, 0x00, 0xF8, 0xF8, 0x01, 0xE3,
-    0xC0, 0x07, 0xCF, 0x00, 0x1F, 0x7C, 0x00, 0x3D, 0xE0, 0x00, 0xFF, 0x80,
-    0x03, 0xFE, 0x00, 0x07, 0xF0, 0x00, 0x1F, 0xC0, 0x00, 0x7F, 0x00, 0x00,
-    0xF8, 0x00, 0x03, 0xE0, 0x00, 0xF8, 0x07, 0xC0, 0x3F, 0xF8, 0x07, 0xE0,
-    0x3E, 0xFC, 0x07, 0xE0, 0x3E, 0x7C, 0x0F, 0xE0, 0x3E, 0x7C, 0x0F, 0xE0,
-    0x7E, 0x7C, 0x0F, 0xE0, 0x7C, 0x7C, 0x0F, 0xF0, 0x7C, 0x3E, 0x0F, 0xF0,
-    0x7C, 0x3E, 0x1E, 0xF0, 0x78, 0x3E, 0x1E, 0x70, 0xF8, 0x1E, 0x1E, 0x70,
-    0xF8, 0x1E, 0x1E, 0x78, 0xF8, 0x1F, 0x1E, 0x78, 0xF0, 0x1F, 0x3C, 0x78,
-    0xF0, 0x0F, 0x3C, 0x39, 0xF0, 0x0F, 0x3C, 0x3D, 0xF0, 0x0F, 0x3C, 0x3D,
-    0xE0, 0x0F, 0xBC, 0x3D, 0xE0, 0x07, 0xF8, 0x3D, 0xE0, 0x07, 0xF8, 0x1F,
-    0xE0, 0x07, 0xF8, 0x1F, 0xC0, 0x03, 0xF8, 0x1F, 0xC0, 0x03, 0xF8, 0x1F,
-    0xC0, 0x03, 0xF0, 0x0F, 0x80, 0x03, 0xF0, 0x0F, 0x80, 0x01, 0xF0, 0x0F,
-    0x80, 0xFE, 0x01, 0xF9, 0xF8, 0x07, 0xE3, 0xF0, 0x3F, 0x0F, 0xC0, 0xF8,
-    0x1F, 0x87, 0xE0, 0x7E, 0x3F, 0x00, 0xFC, 0xFC, 0x01, 0xF7, 0xE0, 0x07,
-    0xFF, 0x00, 0x0F, 0xFC, 0x00, 0x3F, 0xE0, 0x00, 0x7F, 0x00, 0x00, 0xFC,
-    0x00, 0x07, 0xF0, 0x00, 0x1F, 0xE0, 0x00, 0xFF, 0x80, 0x03, 0xFF, 0x00,
-    0x1F, 0x7E, 0x00, 0xFC, 0xF8, 0x03, 0xE3, 0xF0, 0x1F, 0x87, 0xC0, 0x7C,
-    0x1F, 0x83, 0xF0, 0x3F, 0x1F, 0x80, 0xFC, 0x7E, 0x01, 0xFB, 0xF0, 0x07,
-    0xF0, 0xFC, 0x01, 0xFF, 0xE0, 0x0F, 0x9F, 0x00, 0xFC, 0xFC, 0x07, 0xC3,
-    0xE0, 0x7E, 0x1F, 0x83, 0xE0, 0x7C, 0x1F, 0x03, 0xF1, 0xF0, 0x0F, 0x8F,
-    0x80, 0x7E, 0xF8, 0x01, 0xF7, 0xC0, 0x0F, 0xFC, 0x00, 0x3F, 0xE0, 0x00,
-    0xFE, 0x00, 0x07, 0xF0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xC0,
-    0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x03,
-    0xE0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x7E, 0x00, 0x1F,
-    0x80, 0x07, 0xE0, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF8,
-    0x00, 0x7E, 0x00, 0x1F, 0x80, 0x07, 0xE0, 0x01, 0xFC, 0x00, 0x3F, 0x00,
-    0x0F, 0xC0, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x1F, 0x80, 0x07, 0xE0, 0x01,
-    0xFC, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
-    0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
-    0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x38, 0x06,
-    0x01, 0x80, 0x70, 0x0C, 0x03, 0x00, 0xE0, 0x18, 0x06, 0x01, 0xC0, 0x30,
-    0x0C, 0x03, 0x00, 0xE0, 0x18, 0x06, 0x01, 0xC0, 0x30, 0x0C, 0x03, 0x80,
-    0x60, 0x18, 0x07, 0x01, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x1F, 0x1F,
-    0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F,
-    0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0xFF, 0xFF,
-    0xFF, 0xFF, 0x03, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x0F, 0xF0, 0x0F, 0xF0,
-    0x0F, 0x78, 0x1E, 0x78, 0x1E, 0x78, 0x3C, 0x3C, 0x3C, 0x3C, 0x3C, 0x1E,
-    0x78, 0x1E, 0x78, 0x1E, 0x70, 0x0F, 0xF0, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFE, 0xF8, 0xF0, 0xF0, 0xE0, 0xE0, 0x07, 0xF8, 0x07,
-    0xFF, 0x83, 0xFF, 0xF1, 0xFF, 0xFE, 0x7C, 0x1F, 0xBE, 0x03, 0xE0, 0x00,
-    0xF8, 0x01, 0xFE, 0x0F, 0xFF, 0x8F, 0xFF, 0xE7, 0xF8, 0xFB, 0xF0, 0x3E,
-    0xF8, 0x0F, 0xBE, 0x07, 0xEF, 0xC3, 0xFB, 0xFF, 0xFE, 0x7F, 0xFF, 0x8F,
-    0xFB, 0xF1, 0xF8, 0xFC, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE0,
-    0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE7, 0xE0, 0xFB, 0xFC,
-    0x3F, 0xFF, 0xCF, 0xFF, 0xF3, 0xF8, 0x7E, 0xFC, 0x0F, 0xBF, 0x03, 0xFF,
-    0x80, 0x7F, 0xE0, 0x1F, 0xF8, 0x07, 0xFE, 0x01, 0xFF, 0x80, 0x7F, 0xF0,
-    0x3F, 0xFC, 0x0F, 0xBF, 0x87, 0xEF, 0xFF, 0xF3, 0xFF, 0xFC, 0xFB, 0xFC,
-    0x3E, 0x7E, 0x00, 0x03, 0xF0, 0x07, 0xFE, 0x0F, 0xFF, 0x87, 0xFF, 0xE7,
-    0xE1, 0xFB, 0xE0, 0x7F, 0xE0, 0x3F, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00,
-    0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0xFB, 0xE0, 0x7D, 0xF8, 0x7E, 0x7F,
-    0xFE, 0x3F, 0xFE, 0x0F, 0xFE, 0x00, 0xFC, 0x00, 0x00, 0x03, 0xE0, 0x00,
-    0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00,
-    0xF8, 0x1F, 0x1F, 0x0F, 0xFB, 0xE3, 0xFF, 0xFC, 0xFF, 0xFF, 0xBF, 0x8F,
-    0xF7, 0xC0, 0x7F, 0xF8, 0x0F, 0xFE, 0x00, 0xFF, 0xC0, 0x1F, 0xF8, 0x03,
-    0xFF, 0x00, 0x7F, 0xE0, 0x0F, 0xFE, 0x03, 0xF7, 0xC0, 0x7E, 0xFC, 0x3F,
-    0xCF, 0xFF, 0xF8, 0xFF, 0xFF, 0x0F, 0xFB, 0xE0, 0xFC, 0x7C, 0x07, 0xE0,
-    0x07, 0xFE, 0x03, 0xFF, 0xE0, 0xFF, 0xF8, 0x7E, 0x1F, 0x1F, 0x03, 0xCF,
-    0x80, 0xFB, 0xE0, 0x1E, 0xFF, 0xFF, 0xBF, 0xFF, 0xEF, 0xFF, 0xFB, 0xE0,
-    0x00, 0xF8, 0x00, 0x3F, 0x03, 0xE7, 0xE1, 0xF9, 0xFF, 0xFC, 0x3F, 0xFE,
-    0x07, 0xFF, 0x00, 0x7F, 0x00, 0x0F, 0xC7, 0xF3, 0xFC, 0xFF, 0x3E, 0x0F,
-    0x83, 0xE3, 0xFE, 0xFF, 0xBF, 0xE3, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0,
-    0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E,
-    0x0F, 0x80, 0x07, 0xC7, 0xC3, 0xFD, 0xF3, 0xFF, 0xFC, 0xFF, 0xFF, 0x7E,
-    0x1F, 0xDF, 0x03, 0xFF, 0xC0, 0xFF, 0xE0, 0x1F, 0xF8, 0x07, 0xFE, 0x01,
-    0xFF, 0x80, 0x7F, 0xE0, 0x1F, 0xFC, 0x0F, 0xDF, 0x03, 0xF7, 0xE1, 0xFD,
-    0xFF, 0xFF, 0x3F, 0xFF, 0xC7, 0xFD, 0xF0, 0x7C, 0x7C, 0x00, 0x1F, 0x00,
-    0x07, 0xFF, 0x03, 0xF7, 0xE1, 0xF9, 0xFF, 0xFC, 0x3F, 0xFE, 0x01, 0xFE,
-    0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07,
-    0xC0, 0x03, 0xE0, 0x01, 0xF1, 0xF0, 0xFB, 0xFE, 0x7F, 0xFF, 0xBF, 0xFF,
-    0xDF, 0xC3, 0xFF, 0xC0, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F, 0xF0, 0x1F, 0xF8,
-    0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x01, 0xFF, 0x80, 0xFF, 0xC0, 0x7F,
-    0xE0, 0x3F, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xC0, 0xFF, 0xFF, 0xF0,
-    0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xC0, 0x3E, 0x7C, 0xF9, 0xF0, 0x00, 0x00, 0x1F, 0x3E, 0x7C, 0xF9,
-    0xF3, 0xE7, 0xCF, 0x9F, 0x3E, 0x7C, 0xF9, 0xF3, 0xE7, 0xCF, 0x9F, 0x3E,
-    0x7C, 0xF9, 0xF3, 0xFF, 0xFF, 0xFE, 0xF8, 0xF8, 0x00, 0x7C, 0x00, 0x3E,
-    0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x3E,
-    0xF8, 0x3E, 0x7C, 0x3F, 0x3E, 0x3F, 0x1F, 0x3F, 0x0F, 0x9F, 0x07, 0xDF,
-    0x03, 0xFF, 0x81, 0xFF, 0xC0, 0xFF, 0xF0, 0x7F, 0xF8, 0x3F, 0x7E, 0x1F,
-    0x1F, 0x0F, 0x87, 0xC7, 0xC3, 0xF3, 0xE0, 0xF9, 0xF0, 0x7E, 0xF8, 0x1F,
-    0x7C, 0x0F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xF8, 0xF8, 0x3F, 0x1F,
-    0x7F, 0x9F, 0xF3, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xC3, 0xF8,
-    0x7F, 0xF8, 0x3F, 0x07, 0xFE, 0x07, 0xC0, 0xFF, 0xC0, 0xF8, 0x1F, 0xF8,
-    0x1F, 0x03, 0xFF, 0x03, 0xE0, 0x7F, 0xE0, 0x7C, 0x0F, 0xFC, 0x0F, 0x81,
-    0xFF, 0x81, 0xF0, 0x3F, 0xF0, 0x3E, 0x07, 0xFE, 0x07, 0xC0, 0xFF, 0xC0,
-    0xF8, 0x1F, 0xF8, 0x1F, 0x03, 0xFF, 0x03, 0xE0, 0x7F, 0xE0, 0x7C, 0x0F,
-    0x80, 0xF8, 0xF8, 0x7D, 0xFF, 0x3F, 0xFF, 0xDF, 0xFF, 0xEF, 0xE1, 0xFF,
-    0xE0, 0x7F, 0xE0, 0x3F, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07, 0xFE, 0x03,
-    0xFF, 0x01, 0xFF, 0x80, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F, 0xF0, 0x1F, 0xF8,
-    0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xE0, 0x03, 0xF8, 0x01, 0xFF, 0xC0, 0x7F,
-    0xFC, 0x1F, 0xFF, 0xC7, 0xF0, 0xFC, 0xF8, 0x0F, 0xBF, 0x01, 0xFF, 0xC0,
-    0x1F, 0xF8, 0x03, 0xFF, 0x00, 0x7F, 0xE0, 0x0F, 0xFC, 0x01, 0xFF, 0xC0,
-    0x7E, 0xF8, 0x0F, 0x9F, 0x87, 0xF1, 0xFF, 0xFC, 0x1F, 0xFF, 0x01, 0xFF,
-    0xC0, 0x0F, 0xE0, 0x00, 0xF8, 0xF8, 0x3E, 0xFF, 0x8F, 0xFF, 0xF3, 0xFF,
-    0xFC, 0xFE, 0x1F, 0xBF, 0x03, 0xEF, 0xC0, 0xFF, 0xE0, 0x1F, 0xF8, 0x07,
-    0xFE, 0x01, 0xFF, 0x80, 0x7F, 0xE0, 0x1F, 0xFC, 0x0F, 0xFF, 0x03, 0xEF,
-    0xE1, 0xFB, 0xFF, 0xFC, 0xFF, 0xFF, 0x3E, 0xFF, 0x0F, 0x8F, 0x83, 0xE0,
-    0x00, 0xF8, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x03, 0xE0, 0x00, 0xF8, 0x00,
-    0x3E, 0x00, 0x00, 0x07, 0xE3, 0xE1, 0xFF, 0x7C, 0x7F, 0xFF, 0x9F, 0xFF,
-    0xF7, 0xF1, 0xFE, 0xF8, 0x0F, 0xFF, 0x01, 0xFF, 0xC0, 0x1F, 0xF8, 0x03,
-    0xFF, 0x00, 0x7F, 0xE0, 0x0F, 0xFC, 0x01, 0xFF, 0xC0, 0x7E, 0xF8, 0x0F,
-    0xDF, 0x83, 0xF9, 0xFF, 0xFF, 0x3F, 0xFF, 0xE1, 0xFF, 0x7C, 0x1F, 0x8F,
-    0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F,
-    0x00, 0x03, 0xE0, 0x00, 0x7C, 0xF8, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xE1,
-    0xF8, 0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x7C, 0x0F, 0x81, 0xF0,
-    0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x00, 0x07, 0xF0, 0x0F, 0xFE,
-    0x0F, 0xFF, 0x87, 0xFF, 0xE7, 0xE1, 0xF3, 0xE0, 0x79, 0xF8, 0x00, 0xFF,
-    0x80, 0x3F, 0xFC, 0x1F, 0xFF, 0x83, 0xFF, 0xC0, 0x3F, 0xF0, 0x01, 0xFF,
-    0xC0, 0x7D, 0xF0, 0x7E, 0xFF, 0xFE, 0x3F, 0xFF, 0x0F, 0xFF, 0x01, 0xFE,
-    0x00, 0x3E, 0x1F, 0x0F, 0x87, 0xC3, 0xE7, 0xFF, 0xFF, 0xFF, 0x3E, 0x1F,
-    0x0F, 0x87, 0xC3, 0xE1, 0xF0, 0xF8, 0x7C, 0x3E, 0x1F, 0x0F, 0x87, 0xF3,
-    0xF8, 0xFC, 0x3E, 0xF8, 0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xFF, 0x01, 0xFF,
-    0x80, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F, 0xF0, 0x1F, 0xF8, 0x0F, 0xFC, 0x07,
-    0xFE, 0x03, 0xFF, 0x01, 0xFF, 0x80, 0xFF, 0xC0, 0xFF, 0xF0, 0xFF, 0xFF,
-    0xFF, 0x7F, 0xFF, 0x9F, 0xF7, 0xC7, 0xE3, 0xE0, 0x7C, 0x07, 0xCF, 0x80,
-    0xF9, 0xF0, 0x1F, 0x1F, 0x07, 0xC3, 0xE0, 0xF8, 0x7C, 0x1F, 0x07, 0x83,
-    0xC0, 0xF8, 0xF8, 0x1F, 0x1F, 0x01, 0xE3, 0xC0, 0x3E, 0x78, 0x07, 0xDF,
-    0x00, 0x7B, 0xC0, 0x0F, 0xF8, 0x01, 0xFF, 0x00, 0x1F, 0xC0, 0x03, 0xF8,
-    0x00, 0x7F, 0x00, 0x07, 0xC0, 0x00, 0xFC, 0x1F, 0x03, 0xEF, 0x83, 0xE0,
-    0x7D, 0xF0, 0x7E, 0x1F, 0x3E, 0x0F, 0xC3, 0xE3, 0xC3, 0xF8, 0x7C, 0x7C,
-    0x7F, 0x0F, 0x0F, 0x8F, 0xF3, 0xE1, 0xF1, 0xDE, 0x7C, 0x1E, 0x7B, 0xCF,
-    0x83, 0xEF, 0x39, 0xE0, 0x7D, 0xE7, 0x3C, 0x07, 0xB8, 0xFF, 0x80, 0xF7,
-    0x1F, 0xE0, 0x1F, 0xE3, 0xFC, 0x03, 0xFC, 0x3F, 0x80, 0x3F, 0x07, 0xF0,
-    0x07, 0xE0, 0xFC, 0x00, 0xFC, 0x1F, 0x80, 0x0F, 0x83, 0xF0, 0x00, 0xFC,
-    0x1F, 0x9F, 0x07, 0xE7, 0xE3, 0xF0, 0xF8, 0xF8, 0x1F, 0x7E, 0x07, 0xDF,
-    0x00, 0xFF, 0x80, 0x1F, 0xE0, 0x07, 0xF0, 0x00, 0xF8, 0x00, 0x7F, 0x00,
-    0x3F, 0xE0, 0x0F, 0xF8, 0x07, 0xDF, 0x03, 0xF7, 0xE0, 0xF8, 0xF8, 0x7E,
-    0x3F, 0x1F, 0x07, 0xEF, 0xC0, 0xF8, 0x7C, 0x03, 0xEF, 0x80, 0xF9, 0xF8,
-    0x1F, 0x1F, 0x03, 0xE3, 0xE0, 0xF8, 0x7C, 0x1F, 0x07, 0xC3, 0xE0, 0xF8,
-    0x78, 0x0F, 0x1F, 0x01, 0xF3, 0xC0, 0x3E, 0x78, 0x03, 0xDF, 0x00, 0x7F,
-    0xC0, 0x0F, 0xF8, 0x00, 0xFF, 0x00, 0x1F, 0xC0, 0x01, 0xF8, 0x00, 0x3F,
-    0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1E, 0x00, 0x07, 0xC0, 0x07, 0xF8,
-    0x00, 0xFE, 0x00, 0x1F, 0x80, 0x03, 0xE0, 0x00, 0x7F, 0xFE, 0x7F, 0xFE,
-    0x7F, 0xFE, 0x7F, 0xFE, 0x00, 0x7E, 0x00, 0xFC, 0x01, 0xF8, 0x03, 0xF0,
-    0x03, 0xF0, 0x07, 0xE0, 0x0F, 0xC0, 0x1F, 0x80, 0x3F, 0x00, 0x7E, 0x00,
-    0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x87,
-    0xC7, 0xE3, 0xF1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC1,
-    0xE0, 0xF0, 0xF9, 0xF8, 0xF0, 0x7E, 0x0F, 0x83, 0xC1, 0xE0, 0xF0, 0x78,
-    0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xFC, 0x7E, 0x1F, 0x07, 0x80,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xE0, 0xF0, 0x7C, 0x3E, 0x1F, 0x83, 0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E,
-    0x0F, 0x07, 0x83, 0xC1, 0xE0, 0xF0, 0x7C, 0x1F, 0x83, 0xC7, 0xE7, 0xC3,
-    0xC1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC7, 0xE3, 0xE1,
-    0xF0, 0xF0, 0x00, 0x3C, 0x00, 0xFE, 0x0F, 0xFE, 0x1E, 0x1F, 0xFC, 0x0F,
-    0xC0, 0x0F, 0x00};
-
-const GFXglyph FreeSansBold18pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 10, 0, 1},        // 0x20 ' '
-    {0, 5, 25, 12, 4, -24},     // 0x21 '!'
-    {16, 13, 9, 17, 2, -25},    // 0x22 '"'
-    {31, 20, 24, 19, 0, -23},   // 0x23 '#'
-    {91, 19, 29, 19, 0, -25},   // 0x24 '$'
-    {160, 29, 25, 31, 1, -24},  // 0x25 '%'
-    {251, 22, 25, 25, 2, -24},  // 0x26 '&'
-    {320, 5, 9, 9, 2, -25},     // 0x27 '''
-    {326, 9, 33, 12, 1, -25},   // 0x28 '('
-    {364, 9, 33, 12, 1, -25},   // 0x29 ')'
-    {402, 12, 11, 14, 0, -25},  // 0x2A '*'
-    {419, 16, 16, 20, 2, -15},  // 0x2B '+'
-    {451, 5, 11, 9, 2, -4},     // 0x2C ','
-    {458, 9, 4, 12, 1, -10},    // 0x2D '-'
-    {463, 5, 5, 9, 2, -4},      // 0x2E '.'
-    {467, 9, 25, 10, 0, -24},   // 0x2F '/'
-    {496, 17, 25, 19, 1, -24},  // 0x30 '0'
-    {550, 10, 25, 19, 3, -24},  // 0x31 '1'
-    {582, 17, 25, 19, 1, -24},  // 0x32 '2'
-    {636, 17, 25, 19, 1, -24},  // 0x33 '3'
-    {690, 16, 25, 19, 2, -24},  // 0x34 '4'
-    {740, 17, 25, 19, 1, -24},  // 0x35 '5'
-    {794, 18, 25, 19, 1, -24},  // 0x36 '6'
-    {851, 17, 25, 19, 1, -24},  // 0x37 '7'
-    {905, 17, 25, 19, 1, -24},  // 0x38 '8'
-    {959, 17, 25, 19, 1, -24},  // 0x39 '9'
-    {1013, 5, 18, 9, 2, -17},   // 0x3A ':'
-    {1025, 5, 24, 9, 2, -17},   // 0x3B ';'
-    {1040, 18, 17, 20, 1, -16}, // 0x3C '<'
-    {1079, 17, 12, 20, 2, -13}, // 0x3D '='
-    {1105, 18, 17, 20, 1, -16}, // 0x3E '>'
-    {1144, 18, 26, 21, 2, -25}, // 0x3F '?'
-    {1203, 32, 31, 34, 1, -25}, // 0x40 '@'
-    {1327, 24, 26, 24, 0, -25}, // 0x41 'A'
-    {1405, 20, 26, 25, 3, -25}, // 0x42 'B'
-    {1470, 23, 26, 25, 1, -25}, // 0x43 'C'
-    {1545, 21, 26, 25, 3, -25}, // 0x44 'D'
-    {1614, 19, 26, 23, 3, -25}, // 0x45 'E'
-    {1676, 17, 26, 22, 3, -25}, // 0x46 'F'
-    {1732, 24, 26, 27, 1, -25}, // 0x47 'G'
-    {1810, 20, 26, 26, 3, -25}, // 0x48 'H'
-    {1875, 5, 26, 11, 3, -25},  // 0x49 'I'
-    {1892, 16, 26, 20, 1, -25}, // 0x4A 'J'
-    {1944, 22, 26, 25, 3, -25}, // 0x4B 'K'
-    {2016, 17, 26, 22, 3, -25}, // 0x4C 'L'
-    {2072, 24, 26, 30, 3, -25}, // 0x4D 'M'
-    {2150, 20, 26, 26, 3, -25}, // 0x4E 'N'
-    {2215, 25, 26, 27, 1, -25}, // 0x4F 'O'
-    {2297, 19, 26, 24, 3, -25}, // 0x50 'P'
-    {2359, 25, 27, 27, 1, -25}, // 0x51 'Q'
-    {2444, 21, 26, 25, 3, -25}, // 0x52 'R'
-    {2513, 20, 26, 24, 2, -25}, // 0x53 'S'
-    {2578, 19, 26, 23, 2, -25}, // 0x54 'T'
-    {2640, 20, 26, 26, 3, -25}, // 0x55 'U'
-    {2705, 22, 26, 23, 1, -25}, // 0x56 'V'
-    {2777, 32, 26, 34, 1, -25}, // 0x57 'W'
-    {2881, 22, 26, 24, 1, -25}, // 0x58 'X'
-    {2953, 21, 26, 22, 1, -25}, // 0x59 'Y'
-    {3022, 19, 26, 21, 1, -25}, // 0x5A 'Z'
-    {3084, 8, 33, 12, 2, -25},  // 0x5B '['
-    {3117, 10, 25, 10, 0, -24}, // 0x5C '\'
-    {3149, 8, 33, 12, 1, -25},  // 0x5D ']'
-    {3182, 16, 15, 20, 2, -23}, // 0x5E '^'
-    {3212, 21, 3, 19, -1, 5},   // 0x5F '_'
-    {3220, 7, 5, 9, 1, -25},    // 0x60 '`'
-    {3225, 18, 19, 20, 1, -18}, // 0x61 'a'
-    {3268, 18, 26, 22, 2, -25}, // 0x62 'b'
-    {3327, 17, 19, 20, 1, -18}, // 0x63 'c'
-    {3368, 19, 26, 22, 1, -25}, // 0x64 'd'
-    {3430, 18, 19, 20, 1, -18}, // 0x65 'e'
-    {3473, 10, 26, 12, 1, -25}, // 0x66 'f'
-    {3506, 18, 26, 21, 1, -18}, // 0x67 'g'
-    {3565, 17, 26, 21, 2, -25}, // 0x68 'h'
-    {3621, 5, 26, 10, 2, -25},  // 0x69 'i'
-    {3638, 7, 33, 10, 0, -25},  // 0x6A 'j'
-    {3667, 17, 26, 20, 2, -25}, // 0x6B 'k'
-    {3723, 5, 26, 9, 2, -25},   // 0x6C 'l'
-    {3740, 27, 19, 31, 2, -18}, // 0x6D 'm'
-    {3805, 17, 19, 21, 2, -18}, // 0x6E 'n'
-    {3846, 19, 19, 21, 1, -18}, // 0x6F 'o'
-    {3892, 18, 26, 22, 2, -18}, // 0x70 'p'
-    {3951, 19, 26, 22, 1, -18}, // 0x71 'q'
-    {4013, 11, 19, 14, 2, -18}, // 0x72 'r'
-    {4040, 17, 19, 19, 1, -18}, // 0x73 's'
-    {4081, 9, 23, 12, 1, -22},  // 0x74 't'
-    {4107, 17, 19, 21, 2, -18}, // 0x75 'u'
-    {4148, 19, 19, 19, 0, -18}, // 0x76 'v'
-    {4194, 27, 19, 27, 0, -18}, // 0x77 'w'
-    {4259, 18, 19, 19, 1, -18}, // 0x78 'x'
-    {4302, 19, 26, 19, 0, -18}, // 0x79 'y'
-    {4364, 16, 19, 18, 1, -18}, // 0x7A 'z'
-    {4402, 9, 33, 14, 1, -25},  // 0x7B '{'
-    {4440, 3, 33, 10, 4, -25},  // 0x7C '|'
-    {4453, 9, 33, 14, 3, -25},  // 0x7D '}'
-    {4491, 15, 6, 18, 1, -10}}; // 0x7E '~'
-
-const GFXfont FreeSansBold18pt7b PROGMEM = {
-    (uint8_t *)FreeSansBold18pt7bBitmaps, (GFXglyph *)FreeSansBold18pt7bGlyphs,
-    0x20, 0x7E, 42};
-
-// Approx. 5175 bytes

+ 0 - 783
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeSansBold24pt7b.h

@@ -1,783 +0,0 @@
-const uint8_t FreeSansBold24pt7bBitmaps[] PROGMEM = {
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xDF, 0x3E, 0x7C, 0xF9, 0xF3, 0xE7, 0xC7, 0x0E, 0x1C, 0x00, 0x00, 0x07,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFE, 0x1F, 0xFF, 0x87, 0xFF, 0xE1,
-    0xFF, 0xF8, 0x7F, 0xFE, 0x1F, 0xFF, 0x87, 0xFF, 0xE1, 0xFD, 0xF0, 0x3E,
-    0x7C, 0x0F, 0x9F, 0x03, 0xE3, 0x80, 0x70, 0xE0, 0x1C, 0x00, 0xF8, 0x3E,
-    0x00, 0x3E, 0x0F, 0x80, 0x0F, 0x83, 0xE0, 0x03, 0xE0, 0xF8, 0x00, 0xF8,
-    0x7C, 0x00, 0x7C, 0x1F, 0x00, 0x1F, 0x07, 0xC1, 0xFF, 0xFF, 0xFF, 0x7F,
-    0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF,
-    0x03, 0xE0, 0xF8, 0x00, 0xF8, 0x3E, 0x00, 0x3E, 0x1F, 0x00, 0x1F, 0x07,
-    0xC0, 0x07, 0xC1, 0xF0, 0x01, 0xF0, 0x7C, 0x00, 0x7C, 0x1F, 0x03, 0xFF,
-    0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xF3,
-    0xFF, 0xFF, 0xFC, 0x0F, 0x87, 0xC0, 0x07, 0xC1, 0xF0, 0x01, 0xF0, 0x7C,
-    0x00, 0x7C, 0x1F, 0x00, 0x1F, 0x07, 0xC0, 0x07, 0xC3, 0xE0, 0x03, 0xE0,
-    0xF8, 0x00, 0xF8, 0x3E, 0x00, 0x3E, 0x0F, 0x80, 0x00, 0x00, 0x38, 0x00,
-    0x00, 0x1C, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0xFF, 0xFC, 0x00, 0xFF, 0xFF,
-    0x80, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF8, 0x7F, 0x73, 0xFE, 0x7F, 0x38,
-    0xFF, 0x3F, 0x1C, 0x3F, 0xDF, 0x8E, 0x0F, 0xEF, 0xC7, 0x07, 0xF7, 0xE3,
-    0x80, 0x03, 0xF9, 0xC0, 0x01, 0xFE, 0xE0, 0x00, 0x7F, 0xF0, 0x00, 0x3F,
-    0xFC, 0x00, 0x0F, 0xFF, 0xC0, 0x03, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0x80,
-    0x0F, 0xFF, 0xE0, 0x01, 0xFF, 0xF8, 0x00, 0xE7, 0xFC, 0x00, 0x71, 0xFF,
-    0x00, 0x38, 0x7F, 0xFF, 0x1C, 0x1F, 0xFF, 0x8E, 0x0F, 0xFF, 0xC7, 0x07,
-    0xFF, 0xE3, 0x87, 0xFB, 0xF9, 0xC3, 0xF9, 0xFE, 0xE7, 0xFC, 0x7F, 0xFF,
-    0xFC, 0x3F, 0xFF, 0xFC, 0x0F, 0xFF, 0xFC, 0x01, 0xFF, 0xF8, 0x00, 0x3F,
-    0xE0, 0x00, 0x03, 0x80, 0x00, 0x01, 0xC0, 0x00, 0x00, 0xE0, 0x00, 0x00,
-    0x70, 0x00, 0x03, 0xE0, 0x00, 0x3C, 0x00, 0x1F, 0xF0, 0x00, 0x78, 0x00,
-    0x7F, 0xF8, 0x01, 0xE0, 0x01, 0xFF, 0xF0, 0x03, 0xC0, 0x07, 0xFF, 0xF0,
-    0x0F, 0x00, 0x0F, 0x83, 0xE0, 0x1E, 0x00, 0x3E, 0x03, 0xE0, 0x78, 0x00,
-    0x78, 0x03, 0xC0, 0xF0, 0x00, 0xF0, 0x07, 0x83, 0xC0, 0x01, 0xE0, 0x0F,
-    0x07, 0x80, 0x03, 0xE0, 0x3E, 0x1E, 0x00, 0x03, 0xE0, 0xF8, 0x3C, 0x00,
-    0x07, 0xFF, 0xF0, 0xF0, 0x00, 0x07, 0xFF, 0xC1, 0xE0, 0x00, 0x07, 0xFF,
-    0x07, 0x80, 0x00, 0x07, 0xFC, 0x1F, 0x00, 0x00, 0x03, 0xE0, 0x3C, 0x00,
-    0x00, 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, 0x01, 0xE0, 0xFF, 0x80, 0x00,
-    0x07, 0x87, 0xFF, 0xC0, 0x00, 0x0F, 0x0F, 0xFF, 0x80, 0x00, 0x3C, 0x3F,
-    0xFF, 0x80, 0x00, 0x78, 0xFC, 0x1F, 0x00, 0x01, 0xE1, 0xF0, 0x1F, 0x00,
-    0x03, 0xC3, 0xC0, 0x1E, 0x00, 0x0F, 0x07, 0x80, 0x3C, 0x00, 0x1E, 0x0F,
-    0x00, 0x78, 0x00, 0x78, 0x1F, 0x01, 0xF0, 0x00, 0xF0, 0x1F, 0x07, 0xC0,
-    0x03, 0xC0, 0x3F, 0xFF, 0x80, 0x07, 0x80, 0x3F, 0xFE, 0x00, 0x1E, 0x00,
-    0x7F, 0xF8, 0x00, 0x7C, 0x00, 0x3F, 0xE0, 0x00, 0xF0, 0x00, 0x1F, 0x00,
-    0x00, 0x3F, 0x00, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x00,
-    0xFF, 0xF8, 0x00, 0x07, 0xFF, 0xF0, 0x00, 0x3F, 0xCF, 0xC0, 0x00, 0xFE,
-    0x1F, 0x00, 0x03, 0xF8, 0x7C, 0x00, 0x0F, 0xE1, 0xF0, 0x00, 0x3F, 0xC7,
-    0xC0, 0x00, 0x7F, 0x3E, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x03, 0xFF, 0xC0,
-    0x00, 0x07, 0xFE, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x7F, 0x80, 0x00,
-    0x07, 0xFF, 0x03, 0xE0, 0x3F, 0xFE, 0x0F, 0x83, 0xFF, 0xF8, 0x3E, 0x1F,
-    0xF3, 0xF1, 0xF8, 0x7F, 0x07, 0xE7, 0xE3, 0xFC, 0x1F, 0xFF, 0x0F, 0xE0,
-    0x3F, 0xFC, 0x3F, 0x80, 0x7F, 0xF0, 0xFE, 0x01, 0xFF, 0x83, 0xF8, 0x03,
-    0xFE, 0x0F, 0xF0, 0x0F, 0xF0, 0x3F, 0xE0, 0x7F, 0xE0, 0x7F, 0xC3, 0xFF,
-    0xC1, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xFE, 0x07, 0xFF, 0xFB, 0xFC,
-    0x0F, 0xFF, 0xC7, 0xF8, 0x1F, 0xFE, 0x0F, 0xE0, 0x0F, 0xE0, 0x00, 0x00,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBE, 0x7C, 0xF8, 0xE1, 0xC0, 0x00,
-    0xF0, 0x0F, 0x80, 0xF8, 0x07, 0xC0, 0x7C, 0x07, 0xE0, 0x3E, 0x03, 0xF0,
-    0x1F, 0x80, 0xF8, 0x0F, 0xC0, 0x7E, 0x07, 0xE0, 0x3F, 0x01, 0xF8, 0x0F,
-    0xC0, 0xFC, 0x07, 0xE0, 0x3F, 0x01, 0xF8, 0x0F, 0xC0, 0x7E, 0x03, 0xF0,
-    0x1F, 0x80, 0xFC, 0x07, 0xE0, 0x3F, 0x00, 0xF8, 0x07, 0xE0, 0x3F, 0x01,
-    0xF8, 0x07, 0xC0, 0x3F, 0x01, 0xF8, 0x07, 0xC0, 0x3F, 0x00, 0xF8, 0x07,
-    0xE0, 0x1F, 0x00, 0xF8, 0x03, 0xE0, 0x1F, 0x00, 0x7C, 0x01, 0xE0, 0x78,
-    0x03, 0xE0, 0x0F, 0x80, 0x7C, 0x01, 0xF0, 0x0F, 0x80, 0x3E, 0x01, 0xF0,
-    0x0F, 0xC0, 0x3E, 0x01, 0xF8, 0x0F, 0xC0, 0x3F, 0x01, 0xF8, 0x0F, 0xC0,
-    0x7E, 0x01, 0xF8, 0x0F, 0xC0, 0x7E, 0x03, 0xF0, 0x1F, 0x80, 0xFC, 0x07,
-    0xE0, 0x3F, 0x01, 0xF8, 0x0F, 0xC0, 0x7E, 0x03, 0xE0, 0x3F, 0x01, 0xF8,
-    0x0F, 0xC0, 0x7C, 0x07, 0xE0, 0x3F, 0x01, 0xF0, 0x1F, 0x80, 0xF8, 0x0F,
-    0xC0, 0x7C, 0x07, 0xE0, 0x3E, 0x03, 0xF0, 0x1F, 0x01, 0xF0, 0x00, 0x03,
-    0x80, 0x07, 0x00, 0x0E, 0x00, 0x1C, 0x06, 0x38, 0xDF, 0xFF, 0xFF, 0xFF,
-    0x9F, 0xFE, 0x07, 0xC0, 0x1F, 0xC0, 0x3F, 0x80, 0xF7, 0x83, 0xC7, 0x87,
-    0x8F, 0x02, 0x08, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0,
-    0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00,
-    0x00, 0x3E, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x1F, 0x00, 0x00,
-    0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x03,
-    0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0x87, 0x0E, 0x1C, 0x78, 0xEF, 0xDF, 0x38, 0x00, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0x80, 0x00, 0x38, 0x03, 0xC0, 0x1C, 0x00, 0xE0, 0x07, 0x00,
-    0x70, 0x03, 0x80, 0x1C, 0x01, 0xE0, 0x0E, 0x00, 0x70, 0x03, 0x80, 0x38,
-    0x01, 0xC0, 0x0E, 0x00, 0xF0, 0x07, 0x00, 0x38, 0x03, 0xC0, 0x1C, 0x00,
-    0xE0, 0x07, 0x00, 0x70, 0x03, 0x80, 0x1C, 0x01, 0xE0, 0x0E, 0x00, 0x70,
-    0x03, 0x80, 0x38, 0x01, 0xC0, 0x0E, 0x00, 0xF0, 0x07, 0x00, 0x00, 0x00,
-    0xFF, 0x00, 0x03, 0xFF, 0xC0, 0x0F, 0xFF, 0xF0, 0x1F, 0xFF, 0xF8, 0x1F,
-    0xFF, 0xF8, 0x3F, 0xFF, 0xFC, 0x3F, 0xC3, 0xFC, 0x7F, 0x81, 0xFE, 0x7F,
-    0x00, 0xFE, 0x7F, 0x00, 0xFE, 0x7F, 0x00, 0xFE, 0xFE, 0x00, 0x7F, 0xFE,
-    0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE,
-    0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE,
-    0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0x7F,
-    0x00, 0xFE, 0x7F, 0x00, 0xFE, 0x7F, 0x00, 0xFE, 0x7F, 0x81, 0xFE, 0x3F,
-    0xC3, 0xFC, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF, 0xF8, 0x1F, 0xFF, 0xF8, 0x0F,
-    0xFF, 0xF0, 0x03, 0xFF, 0xC0, 0x00, 0xFF, 0x00, 0x00, 0x3C, 0x01, 0xF0,
-    0x07, 0xC0, 0x3F, 0x01, 0xFC, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F,
-    0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F,
-    0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07,
-    0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x01, 0xFE, 0x00, 0x0F, 0xFF, 0x80,
-    0x3F, 0xFF, 0x80, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0x9F,
-    0xE0, 0xFF, 0x7F, 0x80, 0xFF, 0xFE, 0x01, 0xFF, 0xFC, 0x01, 0xFF, 0xF8,
-    0x03, 0xFF, 0xF0, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00,
-    0x7F, 0x80, 0x00, 0xFE, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x7F,
-    0xC0, 0x01, 0xFF, 0x00, 0x07, 0xF8, 0x00, 0x3F, 0xE0, 0x00, 0xFF, 0x00,
-    0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0x7F, 0x00, 0x01,
-    0xFC, 0x00, 0x03, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xBF,
-    0xFF, 0xFF, 0x7F, 0xFF, 0xFE, 0xFF, 0xFF, 0xFC, 0x01, 0xFE, 0x00, 0x0F,
-    0xFF, 0x80, 0x7F, 0xFF, 0x81, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0x8F, 0xFF,
-    0xFF, 0x1F, 0xE1, 0xFF, 0x7F, 0x81, 0xFE, 0xFE, 0x01, 0xFD, 0xFC, 0x03,
-    0xFB, 0xF8, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0x80, 0x00, 0x7F,
-    0x00, 0x01, 0xFC, 0x00, 0x1F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, 0x7F, 0xC0,
-    0x00, 0xFF, 0xE0, 0x00, 0x3F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0xC0,
-    0x00, 0x3F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0xFF, 0xFC, 0x01, 0xFF, 0xF8,
-    0x07, 0xFF, 0xF8, 0x0F, 0xF7, 0xF8, 0x3F, 0xCF, 0xFF, 0xFF, 0x9F, 0xFF,
-    0xFE, 0x1F, 0xFF, 0xF8, 0x1F, 0xFF, 0xE0, 0x0F, 0xFF, 0x80, 0x07, 0xF8,
-    0x00, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0x80, 0x03, 0xFE, 0x00, 0x0F, 0xF8,
-    0x00, 0x7F, 0xE0, 0x03, 0xFF, 0x80, 0x0F, 0xFE, 0x00, 0x7B, 0xF8, 0x01,
-    0xEF, 0xE0, 0x0F, 0x3F, 0x80, 0x78, 0xFE, 0x01, 0xE3, 0xF8, 0x0F, 0x0F,
-    0xE0, 0x38, 0x3F, 0x81, 0xE0, 0xFE, 0x07, 0x03, 0xF8, 0x3C, 0x0F, 0xE1,
-    0xE0, 0x3F, 0x87, 0x00, 0xFE, 0x3C, 0x03, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xF0, 0x00, 0xFE, 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xE0, 0x00, 0x3F, 0x80,
-    0x00, 0xFE, 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xE0, 0x1F, 0xFF, 0xFC, 0x3F,
-    0xFF, 0xF8, 0x7F, 0xFF, 0xF0, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xC7, 0xFF,
-    0xFF, 0x8F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x78, 0x00,
-    0x01, 0xF1, 0xF8, 0x03, 0xEF, 0xFE, 0x07, 0xFF, 0xFE, 0x0F, 0xFF, 0xFE,
-    0x1F, 0xFF, 0xFE, 0x7F, 0xFF, 0xFC, 0xFE, 0x07, 0xFC, 0x00, 0x07, 0xF8,
-    0x00, 0x07, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0,
-    0x00, 0x3F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0xFF, 0xF8, 0x03, 0xFF, 0xF8,
-    0x0F, 0xF7, 0xF8, 0x3F, 0xEF, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0x0F, 0xFF,
-    0xFC, 0x0F, 0xFF, 0xE0, 0x0F, 0xFF, 0x80, 0x03, 0xF8, 0x00, 0x00, 0xFF,
-    0x00, 0x07, 0xFF, 0x80, 0x1F, 0xFF, 0xC0, 0x7F, 0xFF, 0x81, 0xFF, 0xFF,
-    0x87, 0xFF, 0xFF, 0x8F, 0xF0, 0xFF, 0x3F, 0xC0, 0xFE, 0x7F, 0x00, 0x00,
-    0xFE, 0x00, 0x01, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE3, 0xF0, 0x1F,
-    0xDF, 0xF8, 0x3F, 0xFF, 0xFC, 0x7F, 0xFF, 0xFC, 0xFF, 0xFF, 0xF9, 0xFF,
-    0x87, 0xFB, 0xFC, 0x07, 0xF7, 0xF8, 0x0F, 0xFF, 0xE0, 0x0F, 0xFF, 0xC0,
-    0x1F, 0xFF, 0x80, 0x3F, 0xFF, 0x00, 0x7F, 0x7E, 0x00, 0xFE, 0xFC, 0x01,
-    0xFD, 0xFC, 0x07, 0xFB, 0xF8, 0x0F, 0xE3, 0xFC, 0x7F, 0xC7, 0xFF, 0xFF,
-    0x07, 0xFF, 0xFE, 0x0F, 0xFF, 0xF8, 0x0F, 0xFF, 0xE0, 0x07, 0xFF, 0x80,
-    0x03, 0xF8, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x3F, 0x00,
-    0x00, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0x07, 0xE0, 0x00, 0x1F, 0x80, 0x00,
-    0x7F, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0x07, 0xE0, 0x00, 0x1F,
-    0x80, 0x00, 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xF8, 0x00, 0x07, 0xF0,
-    0x00, 0x0F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0xFC, 0x00,
-    0x01, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00,
-    0x3F, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0x07,
-    0xF0, 0x00, 0x00, 0xFE, 0x00, 0x03, 0xFF, 0xC0, 0x0F, 0xFF, 0xE0, 0x1F,
-    0xFF, 0xF0, 0x3F, 0xFF, 0xF8, 0x3F, 0xFF, 0xF8, 0x7F, 0x83, 0xFC, 0x7F,
-    0x00, 0xFC, 0x7E, 0x00, 0xFC, 0x7E, 0x00, 0x7C, 0x7E, 0x00, 0x7C, 0x7E,
-    0x00, 0xFC, 0x3F, 0x00, 0xF8, 0x3F, 0x83, 0xF8, 0x0F, 0xFF, 0xF0, 0x07,
-    0xFF, 0xC0, 0x0F, 0xFF, 0xF0, 0x1F, 0xFF, 0xF8, 0x3F, 0xC3, 0xFC, 0x7F,
-    0x00, 0xFE, 0x7F, 0x00, 0xFE, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE,
-    0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFF, 0x00, 0xFF, 0xFF,
-    0x00, 0xFE, 0x7F, 0x83, 0xFE, 0x7F, 0xFF, 0xFE, 0x3F, 0xFF, 0xFC, 0x1F,
-    0xFF, 0xF8, 0x0F, 0xFF, 0xF0, 0x07, 0xFF, 0xC0, 0x00, 0xFF, 0x00, 0x00,
-    0xFF, 0x00, 0x03, 0xFF, 0xC0, 0x0F, 0xFF, 0xE0, 0x1F, 0xFF, 0xF0, 0x3F,
-    0xFF, 0xF8, 0x3F, 0xFF, 0xFC, 0x7F, 0xC3, 0xFC, 0x7F, 0x01, 0xFE, 0xFF,
-    0x00, 0xFE, 0xFE, 0x00, 0x7E, 0xFE, 0x00, 0x7E, 0xFE, 0x00, 0x7F, 0xFE,
-    0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFF, 0x00, 0xFF, 0x7F,
-    0x01, 0xFF, 0x7F, 0xC3, 0xFF, 0x7F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x1F,
-    0xFF, 0xFF, 0x0F, 0xFF, 0x7F, 0x07, 0xFE, 0x7F, 0x01, 0xFC, 0x7E, 0x00,
-    0x00, 0x7E, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x7F, 0x01, 0xFC, 0x7F,
-    0x83, 0xFC, 0x7F, 0xFF, 0xF8, 0x3F, 0xFF, 0xF8, 0x3F, 0xFF, 0xF0, 0x1F,
-    0xFF, 0xE0, 0x07, 0xFF, 0x80, 0x01, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFE, 0x1C, 0x38, 0x71, 0xE7, 0xBF, 0x7C, 0xE0, 0x00,
-    0x00, 0x02, 0x00, 0x00, 0x3C, 0x00, 0x01, 0xF8, 0x00, 0x1F, 0xF0, 0x01,
-    0xFF, 0xE0, 0x0F, 0xFF, 0xC0, 0xFF, 0xFC, 0x0F, 0xFF, 0xC0, 0x7F, 0xFC,
-    0x01, 0xFF, 0xC0, 0x03, 0xFC, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0xE0, 0x00,
-    0x1F, 0xF8, 0x00, 0x3F, 0xFE, 0x00, 0x0F, 0xFF, 0x80, 0x07, 0xFF, 0xE0,
-    0x01, 0xFF, 0xF8, 0x00, 0x7F, 0xF8, 0x00, 0x3F, 0xF0, 0x00, 0x0F, 0xE0,
-    0x00, 0x03, 0xC0, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x80, 0x00,
-    0x01, 0xC0, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xFC, 0x00, 0x0F, 0xFE, 0x00,
-    0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xF0, 0x00, 0x7F, 0xFC,
-    0x00, 0x1F, 0xFC, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0xE0,
-    0x01, 0xFF, 0xC0, 0x0F, 0xFF, 0x80, 0xFF, 0xF8, 0x0F, 0xFF, 0x80, 0xFF,
-    0xFC, 0x03, 0xFF, 0xC0, 0x07, 0xFC, 0x00, 0x0F, 0xE0, 0x00, 0x1E, 0x00,
-    0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0xFE, 0x00, 0x07, 0xFF, 0xC0, 0x1F,
-    0xFF, 0xF0, 0x3F, 0xFF, 0xF8, 0x3F, 0xFF, 0xFC, 0x7F, 0xFF, 0xFC, 0x7F,
-    0x83, 0xFE, 0x7F, 0x01, 0xFE, 0xFF, 0x00, 0xFF, 0xFE, 0x00, 0x7F, 0xFE,
-    0x00, 0x7F, 0xFE, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x00, 0x00, 0xFF, 0x00,
-    0x01, 0xFE, 0x00, 0x03, 0xFE, 0x00, 0x07, 0xFC, 0x00, 0x0F, 0xF8, 0x00,
-    0x3F, 0xF0, 0x00, 0x3F, 0xE0, 0x00, 0x7F, 0x80, 0x00, 0x7F, 0x00, 0x00,
-    0xFE, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00,
-    0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00,
-    0xFE, 0x00, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xE0,
-    0x00, 0x00, 0x1F, 0xFF, 0xFF, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF8, 0x00,
-    0x03, 0xFE, 0x01, 0xFF, 0x80, 0x01, 0xFE, 0x00, 0x07, 0xF8, 0x00, 0x7F,
-    0x80, 0x00, 0x3F, 0x80, 0x1F, 0xC0, 0x00, 0x03, 0xF8, 0x07, 0xF0, 0x00,
-    0x00, 0x1F, 0x00, 0xFC, 0x00, 0x00, 0x01, 0xF0, 0x3F, 0x00, 0x00, 0x00,
-    0x3E, 0x0F, 0xC0, 0x07, 0xE3, 0xC3, 0xE1, 0xF0, 0x03, 0xFE, 0xF8, 0x3C,
-    0x7E, 0x01, 0xFF, 0xFF, 0x07, 0x8F, 0x80, 0x7E, 0x1F, 0xC0, 0x7B, 0xF0,
-    0x1F, 0x81, 0xF8, 0x0F, 0x7C, 0x03, 0xE0, 0x1F, 0x01, 0xEF, 0x80, 0xF8,
-    0x03, 0xC0, 0x3F, 0xF0, 0x1E, 0x00, 0x78, 0x07, 0xFC, 0x07, 0xC0, 0x0F,
-    0x00, 0xFF, 0x80, 0xF0, 0x01, 0xE0, 0x1F, 0xF0, 0x1E, 0x00, 0x38, 0x07,
-    0xFE, 0x07, 0xC0, 0x0F, 0x00, 0xFF, 0xC0, 0xF8, 0x01, 0xE0, 0x1E, 0xF8,
-    0x1F, 0x00, 0x38, 0x07, 0xDF, 0x03, 0xE0, 0x0F, 0x00, 0xF3, 0xF0, 0x7C,
-    0x03, 0xE0, 0x3E, 0x3E, 0x0F, 0xC0, 0xFC, 0x0F, 0x87, 0xC0, 0xFC, 0x3F,
-    0xC7, 0xF0, 0xFC, 0x1F, 0xFF, 0xFF, 0xFC, 0x0F, 0xC1, 0xFF, 0xEF, 0xFF,
-    0x01, 0xFC, 0x1F, 0xF8, 0xFF, 0x80, 0x1F, 0xC0, 0xFC, 0x07, 0xC0, 0x01,
-    0xFC, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x01, 0xFE,
-    0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x60, 0x00, 0x01, 0xFF, 0xFF,
-    0xFE, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x7F, 0xFF, 0xF0,
-    0x00, 0x00, 0x00, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00,
-    0x0F, 0xF8, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x00,
-    0x1F, 0xFC, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x00, 0x3F, 0xFE, 0x00, 0x00,
-    0x3F, 0xFE, 0x00, 0x00, 0x3F, 0x7E, 0x00, 0x00, 0x7F, 0x7F, 0x00, 0x00,
-    0x7F, 0x7F, 0x00, 0x00, 0x7E, 0x3F, 0x00, 0x00, 0xFE, 0x3F, 0x80, 0x00,
-    0xFE, 0x3F, 0x80, 0x01, 0xFC, 0x1F, 0x80, 0x01, 0xFC, 0x1F, 0xC0, 0x01,
-    0xF8, 0x1F, 0xC0, 0x03, 0xF8, 0x0F, 0xE0, 0x03, 0xF8, 0x0F, 0xE0, 0x03,
-    0xF0, 0x0F, 0xE0, 0x07, 0xF0, 0x07, 0xF0, 0x07, 0xFF, 0xFF, 0xF0, 0x07,
-    0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xF8, 0x0F, 0xFF, 0xFF, 0xF8, 0x1F,
-    0xFF, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, 0xFC, 0x1F, 0xC0, 0x01, 0xFC, 0x3F,
-    0x80, 0x01, 0xFC, 0x3F, 0x80, 0x00, 0xFE, 0x3F, 0x80, 0x00, 0xFE, 0x7F,
-    0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x7F, 0x7F, 0x00, 0x00, 0x7F, 0xFF,
-    0xFF, 0xE0, 0x1F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xF8, 0x7F, 0xFF, 0xFF,
-    0x8F, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0x3F, 0x80, 0x1F, 0xF7, 0xF0,
-    0x01, 0xFE, 0xFE, 0x00, 0x1F, 0xDF, 0xC0, 0x03, 0xFB, 0xF8, 0x00, 0x7F,
-    0x7F, 0x00, 0x1F, 0xCF, 0xE0, 0x07, 0xF9, 0xFF, 0xFF, 0xFE, 0x3F, 0xFF,
-    0xFF, 0x87, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0xE3,
-    0xFF, 0xFF, 0xFE, 0x7F, 0x00, 0x1F, 0xEF, 0xE0, 0x01, 0xFD, 0xFC, 0x00,
-    0x1F, 0xFF, 0x80, 0x03, 0xFF, 0xF0, 0x00, 0x7F, 0xFE, 0x00, 0x0F, 0xFF,
-    0xC0, 0x01, 0xFF, 0xF8, 0x00, 0x7F, 0xFF, 0x00, 0x1F, 0xEF, 0xFF, 0xFF,
-    0xFD, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xF8, 0xFF,
-    0xFF, 0xFC, 0x1F, 0xFF, 0xFC, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x03, 0xFF,
-    0xF8, 0x00, 0x1F, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF,
-    0xE0, 0x3F, 0xFF, 0xFF, 0xC1, 0xFF, 0x81, 0xFF, 0x0F, 0xF8, 0x01, 0xFE,
-    0x3F, 0xC0, 0x07, 0xF9, 0xFE, 0x00, 0x0F, 0xE7, 0xF8, 0x00, 0x1F, 0xDF,
-    0xC0, 0x00, 0x7F, 0x7F, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x0F, 0xE0,
-    0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x03, 0xF8, 0x00,
-    0x00, 0x0F, 0xE0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xFE, 0x00, 0x00,
-    0x03, 0xF8, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00,
-    0x7F, 0x00, 0x01, 0xFD, 0xFC, 0x00, 0x07, 0xF7, 0xF8, 0x00, 0x3F, 0xCF,
-    0xF0, 0x00, 0xFE, 0x3F, 0xE0, 0x07, 0xF8, 0x7F, 0xE0, 0x7F, 0xC0, 0xFF,
-    0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xF8, 0x07, 0xFF, 0xFF, 0xC0, 0x07, 0xFF,
-    0xFE, 0x00, 0x0F, 0xFF, 0xE0, 0x00, 0x07, 0xFC, 0x00, 0xFF, 0xFF, 0xC0,
-    0x0F, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0xE0, 0xFF,
-    0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF8, 0xFE, 0x00, 0xFF, 0xCF, 0xE0, 0x03,
-    0xFC, 0xFE, 0x00, 0x1F, 0xEF, 0xE0, 0x01, 0xFE, 0xFE, 0x00, 0x0F, 0xEF,
-    0xE0, 0x00, 0xFE, 0xFE, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x7F, 0xFE, 0x00,
-    0x07, 0xFF, 0xE0, 0x00, 0x7F, 0xFE, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x7F,
-    0xFE, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x7F, 0xFE, 0x00, 0x07, 0xFF, 0xE0,
-    0x00, 0x7F, 0xFE, 0x00, 0x0F, 0xEF, 0xE0, 0x00, 0xFE, 0xFE, 0x00, 0x1F,
-    0xEF, 0xE0, 0x01, 0xFE, 0xFE, 0x00, 0x3F, 0xCF, 0xE0, 0x0F, 0xFC, 0xFF,
-    0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF,
-    0xC0, 0xFF, 0xFF, 0xF8, 0x0F, 0xFF, 0xFC, 0x00, 0xFF, 0xFF, 0xFF, 0x7F,
-    0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xF7,
-    0xFF, 0xFF, 0xFB, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x00, 0xFE, 0x00, 0x00,
-    0x7F, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x0F, 0xE0, 0x00,
-    0x07, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF,
-    0xFE, 0x7F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x9F, 0xC0, 0x00, 0x0F, 0xE0,
-    0x00, 0x07, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x00, 0xFE,
-    0x00, 0x00, 0x7F, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x0F,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00,
-    0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFF, 0xFF,
-    0xFC, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF,
-    0xFC, 0xFF, 0xFF, 0xFC, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00,
-    0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00,
-    0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00,
-    0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00,
-    0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x07, 0xFF, 0xFF,
-    0x00, 0x1F, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xFF,
-    0x07, 0xFE, 0x03, 0xFF, 0x0F, 0xF0, 0x01, 0xFE, 0x3F, 0xC0, 0x01, 0xFC,
-    0x7F, 0x00, 0x01, 0xFD, 0xFE, 0x00, 0x03, 0xFB, 0xF8, 0x00, 0x00, 0x07,
-    0xF0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x7F,
-    0x00, 0x00, 0x00, 0xFE, 0x00, 0x3F, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0xF8,
-    0x00, 0xFF, 0xFF, 0xF0, 0x01, 0xFF, 0xFF, 0xE0, 0x03, 0xFF, 0xFF, 0xC0,
-    0x07, 0xFF, 0xFF, 0xC0, 0x00, 0x1F, 0xBF, 0x80, 0x00, 0x3F, 0x7F, 0x00,
-    0x00, 0x7E, 0xFF, 0x00, 0x01, 0xFC, 0xFF, 0x00, 0x03, 0xF9, 0xFF, 0x00,
-    0x0F, 0xF1, 0xFF, 0x00, 0x3F, 0xE3, 0xFF, 0x83, 0xFF, 0xC3, 0xFF, 0xFF,
-    0xFF, 0x83, 0xFF, 0xFF, 0xDF, 0x03, 0xFF, 0xFF, 0x9E, 0x03, 0xFF, 0xFE,
-    0x3C, 0x01, 0xFF, 0xF0, 0x78, 0x00, 0x7F, 0x80, 0x00, 0xFE, 0x00, 0x0F,
-    0xFF, 0xC0, 0x01, 0xFF, 0xF8, 0x00, 0x3F, 0xFF, 0x00, 0x07, 0xFF, 0xE0,
-    0x00, 0xFF, 0xFC, 0x00, 0x1F, 0xFF, 0x80, 0x03, 0xFF, 0xF0, 0x00, 0x7F,
-    0xFE, 0x00, 0x0F, 0xFF, 0xC0, 0x01, 0xFF, 0xF8, 0x00, 0x3F, 0xFF, 0x00,
-    0x07, 0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0xFF, 0xFC, 0x00, 0x1F, 0xFF,
-    0x80, 0x03, 0xFF, 0xF0, 0x00, 0x7F, 0xFE, 0x00, 0x0F, 0xFF, 0xC0, 0x01,
-    0xFF, 0xF8, 0x00, 0x3F, 0xFF, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0xFF, 0xFC,
-    0x00, 0x1F, 0xFF, 0x80, 0x03, 0xFF, 0xF0, 0x00, 0x7F, 0xFE, 0x00, 0x0F,
-    0xFF, 0xC0, 0x01, 0xFC, 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, 0xFC, 0x00, 0x01,
-    0xFC, 0x00, 0x07, 0xF0, 0x00, 0x1F, 0xC0, 0x00, 0x7F, 0x00, 0x01, 0xFC,
-    0x00, 0x07, 0xF0, 0x00, 0x1F, 0xC0, 0x00, 0x7F, 0x00, 0x01, 0xFC, 0x00,
-    0x07, 0xF0, 0x00, 0x1F, 0xC0, 0x00, 0x7F, 0x00, 0x01, 0xFC, 0x00, 0x07,
-    0xF0, 0x00, 0x1F, 0xC0, 0x00, 0x7F, 0x00, 0x01, 0xFC, 0x00, 0x07, 0xF0,
-    0x00, 0x1F, 0xC0, 0x00, 0x7F, 0x00, 0x01, 0xFC, 0x00, 0x07, 0xFF, 0xE0,
-    0x1F, 0xFF, 0x80, 0x7F, 0xFE, 0x01, 0xFF, 0xF8, 0x07, 0xFF, 0xE0, 0x1F,
-    0xFF, 0xC0, 0xFF, 0xFF, 0x87, 0xFD, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0x8F,
-    0xFF, 0xFC, 0x1F, 0xFF, 0xE0, 0x3F, 0xFF, 0x00, 0x1F, 0xE0, 0x00, 0xFE,
-    0x00, 0x0F, 0xF3, 0xF8, 0x00, 0x7F, 0x8F, 0xE0, 0x03, 0xFC, 0x3F, 0x80,
-    0x1F, 0xE0, 0xFE, 0x00, 0xFF, 0x83, 0xF8, 0x07, 0xFC, 0x0F, 0xE0, 0x1F,
-    0xE0, 0x3F, 0x80, 0xFF, 0x00, 0xFE, 0x07, 0xF8, 0x03, 0xF8, 0x3F, 0xC0,
-    0x0F, 0xE1, 0xFE, 0x00, 0x3F, 0x8F, 0xF0, 0x00, 0xFE, 0x7F, 0x80, 0x03,
-    0xFB, 0xFC, 0x00, 0x0F, 0xFF, 0xE0, 0x00, 0x3F, 0xFF, 0xC0, 0x00, 0xFF,
-    0xFF, 0x00, 0x03, 0xFF, 0xFE, 0x00, 0x0F, 0xFF, 0xFC, 0x00, 0x3F, 0xF7,
-    0xF8, 0x00, 0xFF, 0x8F, 0xF0, 0x03, 0xFC, 0x3F, 0xC0, 0x0F, 0xE0, 0x7F,
-    0x80, 0x3F, 0x80, 0xFF, 0x00, 0xFE, 0x01, 0xFE, 0x03, 0xF8, 0x07, 0xFC,
-    0x0F, 0xE0, 0x0F, 0xF0, 0x3F, 0x80, 0x1F, 0xE0, 0xFE, 0x00, 0x3F, 0xC3,
-    0xF8, 0x00, 0xFF, 0x8F, 0xE0, 0x01, 0xFE, 0x3F, 0x80, 0x03, 0xFC, 0xFE,
-    0x00, 0x07, 0xFB, 0xF8, 0x00, 0x1F, 0xF0, 0xFE, 0x00, 0x01, 0xFC, 0x00,
-    0x03, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00,
-    0x3F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x03,
-    0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x3F,
-    0x80, 0x00, 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xF8,
-    0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x80,
-    0x00, 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xF8, 0x00,
-    0x07, 0xF0, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xE0, 0x03,
-    0xFF, 0xFF, 0xF0, 0x01, 0xFF, 0xFF, 0xF8, 0x00, 0xFF, 0xFF, 0xFC, 0x00,
-    0x7F, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xFF, 0xC0,
-    0x1F, 0xFF, 0xFF, 0xE0, 0x0F, 0xFF, 0xFF, 0xF0, 0x07, 0xFF, 0xFF, 0xFC,
-    0x07, 0xFF, 0xFF, 0xBE, 0x03, 0xEF, 0xFF, 0xDF, 0x01, 0xF7, 0xFF, 0xEF,
-    0x80, 0xFB, 0xFF, 0xF7, 0xC0, 0xFD, 0xFF, 0xFB, 0xF0, 0x7C, 0xFF, 0xFC,
-    0xF8, 0x3E, 0x7F, 0xFE, 0x7C, 0x1F, 0x3F, 0xFF, 0x3E, 0x0F, 0x9F, 0xFF,
-    0x9F, 0x8F, 0x8F, 0xFF, 0xC7, 0xC7, 0xC7, 0xFF, 0xE3, 0xE3, 0xE3, 0xFF,
-    0xF1, 0xF1, 0xF1, 0xFF, 0xF8, 0xFC, 0xF8, 0xFF, 0xFC, 0x3E, 0xF8, 0x7F,
-    0xFE, 0x1F, 0x7C, 0x3F, 0xFF, 0x0F, 0xBE, 0x1F, 0xFF, 0x87, 0xDF, 0x0F,
-    0xFF, 0xC3, 0xFF, 0x07, 0xFF, 0xE0, 0xFF, 0x83, 0xFF, 0xF0, 0x7F, 0xC1,
-    0xFF, 0xF8, 0x3F, 0xE0, 0xFF, 0xFC, 0x1F, 0xF0, 0x7F, 0xFE, 0x07, 0xF0,
-    0x3F, 0xFF, 0x03, 0xF8, 0x1F, 0xC0, 0xFE, 0x00, 0x07, 0xFF, 0xF0, 0x00,
-    0x7F, 0xFF, 0x80, 0x07, 0xFF, 0xF8, 0x00, 0x7F, 0xFF, 0xC0, 0x07, 0xFF,
-    0xFC, 0x00, 0x7F, 0xFF, 0xE0, 0x07, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0xF0,
-    0x07, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xF8, 0x07, 0xFF, 0xEF, 0xC0, 0x7F,
-    0xFE, 0xFE, 0x07, 0xFF, 0xE7, 0xE0, 0x7F, 0xFE, 0x7F, 0x07, 0xFF, 0xE3,
-    0xF0, 0x7F, 0xFE, 0x1F, 0x87, 0xFF, 0xE1, 0xFC, 0x7F, 0xFE, 0x0F, 0xC7,
-    0xFF, 0xE0, 0xFE, 0x7F, 0xFE, 0x07, 0xE7, 0xFF, 0xE0, 0x3F, 0x7F, 0xFE,
-    0x03, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xFE, 0x01, 0xFF, 0xFF, 0xE0, 0x0F,
-    0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xE0, 0x07, 0xFF, 0xFE, 0x00, 0x3F, 0xFF,
-    0xE0, 0x03, 0xFF, 0xFE, 0x00, 0x1F, 0xFF, 0xE0, 0x00, 0xFF, 0xFE, 0x00,
-    0x0F, 0xFF, 0xE0, 0x00, 0x7F, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x3F, 0xFF,
-    0x80, 0x00, 0x7F, 0xFF, 0xE0, 0x00, 0x7F, 0xFF, 0xFC, 0x00, 0x7F, 0xFF,
-    0xFF, 0x00, 0x7F, 0xFF, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F, 0xF0, 0x3F, 0xC0,
-    0x0F, 0xF8, 0x3F, 0xC0, 0x01, 0xFE, 0x1F, 0xC0, 0x00, 0x7F, 0x1F, 0xE0,
-    0x00, 0x3F, 0xCF, 0xE0, 0x00, 0x0F, 0xE7, 0xF0, 0x00, 0x07, 0xF7, 0xF8,
-    0x00, 0x03, 0xFF, 0xF8, 0x00, 0x00, 0xFF, 0xFC, 0x00, 0x00, 0x7F, 0xFE,
-    0x00, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x0F, 0xFF,
-    0xC0, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x03, 0xFF, 0xF0, 0x00, 0x01, 0xFF,
-    0xFC, 0x00, 0x01, 0xFE, 0xFE, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x7F,
-    0x3F, 0xC0, 0x00, 0x7F, 0x8F, 0xE0, 0x00, 0x3F, 0x87, 0xF8, 0x00, 0x3F,
-    0xC1, 0xFE, 0x00, 0x3F, 0xC0, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F, 0xFF, 0xFF,
-    0xE0, 0x0F, 0xFF, 0xFF, 0xE0, 0x03, 0xFF, 0xFF, 0xE0, 0x00, 0xFF, 0xFF,
-    0xE0, 0x00, 0x1F, 0xFF, 0xC0, 0x00, 0x01, 0xFF, 0x00, 0x00, 0xFF, 0xFF,
-    0xE0, 0x3F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xFC, 0xFF,
-    0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xEF, 0xE0, 0x0F, 0xFB, 0xF8, 0x00, 0xFF,
-    0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xF8, 0x00,
-    0x7F, 0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x03, 0xFF, 0xF8,
-    0x03, 0xFE, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xF3,
-    0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xF8, 0x3F, 0xFF, 0xF8, 0x0F, 0xE0, 0x00,
-    0x03, 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x0F, 0xE0,
-    0x00, 0x03, 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x0F,
-    0xE0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x3F, 0x80, 0x00,
-    0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x3F, 0xFF, 0x80, 0x00, 0x7F, 0xFF,
-    0xE0, 0x00, 0x7F, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0xFF, 0x00, 0x7F, 0xFF,
-    0xFF, 0xC0, 0x7F, 0xE0, 0x3F, 0xF0, 0x3F, 0xC0, 0x07, 0xF8, 0x3F, 0xC0,
-    0x01, 0xFE, 0x1F, 0xC0, 0x00, 0x7F, 0x1F, 0xE0, 0x00, 0x3F, 0xCF, 0xE0,
-    0x00, 0x0F, 0xE7, 0xF0, 0x00, 0x07, 0xF7, 0xF8, 0x00, 0x03, 0xFF, 0xF8,
-    0x00, 0x00, 0xFF, 0xFC, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x3F, 0xFF,
-    0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x0F, 0xFF, 0xC0, 0x00, 0x07, 0xFF,
-    0xE0, 0x00, 0x03, 0xFF, 0xF0, 0x00, 0x01, 0xFF, 0xFC, 0x00, 0x21, 0xFE,
-    0xFE, 0x00, 0x38, 0xFE, 0x7F, 0x00, 0x3E, 0x7F, 0x3F, 0xC0, 0x3F, 0xFF,
-    0x8F, 0xE0, 0x0F, 0xFF, 0x87, 0xF8, 0x03, 0xFF, 0xC1, 0xFE, 0x00, 0xFF,
-    0xC0, 0xFF, 0xC0, 0x7F, 0xE0, 0x3F, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF,
-    0xFC, 0x03, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xC0, 0x1F, 0xFF,
-    0xCF, 0xC0, 0x01, 0xFF, 0x03, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF,
-    0xF8, 0x0F, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xF8,
-    0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xFC, 0xFE, 0x00, 0x3F, 0xEF, 0xE0,
-    0x01, 0xFE, 0xFE, 0x00, 0x0F, 0xEF, 0xE0, 0x00, 0xFE, 0xFE, 0x00, 0x0F,
-    0xEF, 0xE0, 0x00, 0xFE, 0xFE, 0x00, 0x0F, 0xEF, 0xE0, 0x01, 0xFC, 0xFE,
-    0x00, 0x3F, 0xCF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF,
-    0xC0, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x8F,
-    0xE0, 0x07, 0xF8, 0xFE, 0x00, 0x1F, 0xCF, 0xE0, 0x01, 0xFC, 0xFE, 0x00,
-    0x1F, 0xCF, 0xE0, 0x01, 0xFC, 0xFE, 0x00, 0x1F, 0xCF, 0xE0, 0x01, 0xFC,
-    0xFE, 0x00, 0x1F, 0xCF, 0xE0, 0x01, 0xFC, 0xFE, 0x00, 0x1F, 0xCF, 0xE0,
-    0x01, 0xFC, 0xFE, 0x00, 0x1F, 0xEF, 0xE0, 0x00, 0xFF, 0x00, 0xFF, 0xC0,
-    0x00, 0x3F, 0xFF, 0x80, 0x0F, 0xFF, 0xFE, 0x01, 0xFF, 0xFF, 0xF0, 0x3F,
-    0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xFC, 0x7F, 0xC0, 0xFF, 0xCF, 0xF0, 0x03,
-    0xFE, 0xFE, 0x00, 0x1F, 0xEF, 0xE0, 0x00, 0xFE, 0xFE, 0x00, 0x0F, 0xEF,
-    0xE0, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x0F, 0xFC, 0x00, 0x00, 0x7F, 0xFC,
-    0x00, 0x07, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0xFC, 0x01, 0xFF, 0xFF, 0xF0,
-    0x07, 0xFF, 0xFF, 0xC0, 0x0F, 0xFF, 0xFE, 0x00, 0x07, 0xFF, 0xE0, 0x00,
-    0x03, 0xFF, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x07,
-    0xFF, 0xE0, 0x00, 0x7F, 0xFE, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0xFF, 0xFF,
-    0x00, 0x0F, 0xE7, 0xFC, 0x03, 0xFE, 0x7F, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF,
-    0xFC, 0x1F, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xF0, 0x03, 0xFF, 0xFC, 0x00,
-    0x07, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0,
-    0x0F, 0xE0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, 0xF0,
-    0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x03, 0xF8, 0x00, 0x00,
-    0x7F, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x3F, 0x80,
-    0x00, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x03,
-    0xF8, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x01, 0xFC, 0x00,
-    0x00, 0x3F, 0x80, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F,
-    0xC0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x0F, 0xE0, 0x00,
-    0x01, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, 0xF0, 0x00, 0xFE, 0x00,
-    0x0F, 0xFF, 0xC0, 0x01, 0xFF, 0xF8, 0x00, 0x3F, 0xFF, 0x00, 0x07, 0xFF,
-    0xE0, 0x00, 0xFF, 0xFC, 0x00, 0x1F, 0xFF, 0x80, 0x03, 0xFF, 0xF0, 0x00,
-    0x7F, 0xFE, 0x00, 0x0F, 0xFF, 0xC0, 0x01, 0xFF, 0xF8, 0x00, 0x3F, 0xFF,
-    0x00, 0x07, 0xFF, 0xE0, 0x00, 0xFF, 0xFC, 0x00, 0x1F, 0xFF, 0x80, 0x03,
-    0xFF, 0xF0, 0x00, 0x7F, 0xFE, 0x00, 0x0F, 0xFF, 0xC0, 0x01, 0xFF, 0xF8,
-    0x00, 0x3F, 0xFF, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0xFF, 0xFC, 0x00, 0x1F,
-    0xFF, 0x80, 0x03, 0xFF, 0xF0, 0x00, 0x7F, 0xFE, 0x00, 0x0F, 0xFF, 0xC0,
-    0x01, 0xFF, 0xFC, 0x00, 0x7F, 0xBF, 0xC0, 0x1F, 0xE7, 0xFC, 0x07, 0xFC,
-    0x7F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF8, 0x0F, 0xFF,
-    0xFE, 0x00, 0x7F, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x00, 0xFE, 0x00, 0x03,
-    0xFF, 0xF0, 0x00, 0x1F, 0xDF, 0xC0, 0x01, 0xFC, 0xFE, 0x00, 0x0F, 0xE7,
-    0xF0, 0x00, 0x7F, 0x1F, 0xC0, 0x03, 0xF0, 0xFE, 0x00, 0x3F, 0x87, 0xF0,
-    0x01, 0xFC, 0x1F, 0xC0, 0x0F, 0xC0, 0xFE, 0x00, 0xFE, 0x03, 0xF0, 0x07,
-    0xF0, 0x1F, 0x80, 0x3F, 0x00, 0xFE, 0x03, 0xF8, 0x03, 0xF0, 0x1F, 0xC0,
-    0x1F, 0x80, 0xFC, 0x00, 0xFE, 0x07, 0xE0, 0x03, 0xF0, 0x7F, 0x00, 0x1F,
-    0x83, 0xF0, 0x00, 0xFE, 0x1F, 0x80, 0x03, 0xF1, 0xF8, 0x00, 0x1F, 0x8F,
-    0xC0, 0x00, 0xFC, 0x7E, 0x00, 0x03, 0xF3, 0xE0, 0x00, 0x1F, 0xBF, 0x00,
-    0x00, 0xFD, 0xF8, 0x00, 0x03, 0xFF, 0x80, 0x00, 0x1F, 0xFC, 0x00, 0x00,
-    0xFF, 0xE0, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0xFF,
-    0x80, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0xFE, 0x00,
-    0x00, 0xFF, 0x00, 0x3F, 0x80, 0x1F, 0xFF, 0xE0, 0x07, 0xF0, 0x03, 0xFD,
-    0xFC, 0x01, 0xFE, 0x00, 0x7F, 0x3F, 0x80, 0x3F, 0xE0, 0x0F, 0xE7, 0xF0,
-    0x07, 0xFC, 0x01, 0xFC, 0x7F, 0x00, 0xFF, 0x80, 0x7F, 0x8F, 0xE0, 0x1F,
-    0xF0, 0x0F, 0xE1, 0xFC, 0x07, 0xFF, 0x01, 0xFC, 0x3F, 0x80, 0xFB, 0xE0,
-    0x3F, 0x83, 0xF0, 0x1F, 0x7C, 0x07, 0xE0, 0x7F, 0x03, 0xEF, 0x81, 0xFC,
-    0x0F, 0xE0, 0x7D, 0xF0, 0x3F, 0x80, 0xFC, 0x1F, 0x9F, 0x07, 0xF0, 0x1F,
-    0x83, 0xE3, 0xE0, 0xFC, 0x03, 0xF0, 0x7C, 0x7C, 0x1F, 0x80, 0x7F, 0x0F,
-    0x8F, 0x87, 0xF0, 0x07, 0xE1, 0xF0, 0xF8, 0xFC, 0x00, 0xFC, 0x7E, 0x1F,
-    0x1F, 0x80, 0x1F, 0x8F, 0x83, 0xE3, 0xF0, 0x01, 0xF9, 0xF0, 0x7C, 0x7E,
-    0x00, 0x3F, 0x3E, 0x0F, 0x9F, 0x80, 0x07, 0xE7, 0xC0, 0xFB, 0xF0, 0x00,
-    0xFD, 0xF0, 0x1F, 0x7E, 0x00, 0x0F, 0xBE, 0x03, 0xEF, 0xC0, 0x01, 0xFF,
-    0xC0, 0x7D, 0xF0, 0x00, 0x3F, 0xF8, 0x0F, 0xFE, 0x00, 0x03, 0xFF, 0x00,
-    0xFF, 0xC0, 0x00, 0x7F, 0xC0, 0x1F, 0xF0, 0x00, 0x0F, 0xF8, 0x03, 0xFE,
-    0x00, 0x01, 0xFF, 0x00, 0x7F, 0xC0, 0x00, 0x1F, 0xE0, 0x07, 0xF8, 0x00,
-    0x03, 0xFC, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x1F, 0xC0, 0x00, 0x07,
-    0xE0, 0x03, 0xF8, 0x00, 0x7F, 0x80, 0x07, 0xF9, 0xFF, 0x00, 0x3F, 0xC3,
-    0xFC, 0x00, 0xFF, 0x07, 0xF8, 0x07, 0xF8, 0x1F, 0xE0, 0x1F, 0xC0, 0x3F,
-    0xC0, 0xFF, 0x00, 0xFF, 0x07, 0xF8, 0x01, 0xFE, 0x1F, 0xE0, 0x03, 0xF8,
-    0xFF, 0x00, 0x0F, 0xF3, 0xF8, 0x00, 0x1F, 0xDF, 0xE0, 0x00, 0x3F, 0xFF,
-    0x00, 0x00, 0xFF, 0xF8, 0x00, 0x01, 0xFF, 0xE0, 0x00, 0x07, 0xFF, 0x00,
-    0x00, 0x0F, 0xF8, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0xFF, 0x80, 0x00,
-    0x03, 0xFF, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x03,
-    0xFF, 0xF0, 0x00, 0x1F, 0xFF, 0xC0, 0x00, 0x7F, 0x7F, 0x80, 0x03, 0xF8,
-    0xFF, 0x00, 0x1F, 0xE1, 0xFC, 0x00, 0x7F, 0x07, 0xF8, 0x03, 0xFC, 0x0F,
-    0xF0, 0x1F, 0xE0, 0x3F, 0xC0, 0x7F, 0x80, 0x7F, 0x83, 0xFC, 0x01, 0xFE,
-    0x0F, 0xF0, 0x03, 0xFC, 0x7F, 0x80, 0x0F, 0xFB, 0xFE, 0x00, 0x1F, 0xE0,
-    0xFF, 0x00, 0x07, 0xFF, 0xF8, 0x00, 0x7F, 0x9F, 0xE0, 0x03, 0xFC, 0xFF,
-    0x00, 0x3F, 0xC3, 0xFC, 0x01, 0xFE, 0x0F, 0xE0, 0x0F, 0xE0, 0x7F, 0x00,
-    0xFF, 0x01, 0xFC, 0x07, 0xF0, 0x0F, 0xE0, 0x7F, 0x80, 0x3F, 0x83, 0xF8,
-    0x01, 0xFC, 0x3F, 0xC0, 0x07, 0xF1, 0xFC, 0x00, 0x3F, 0x8F, 0xE0, 0x00,
-    0xFE, 0xFE, 0x00, 0x07, 0xF7, 0xF0, 0x00, 0x1F, 0xFF, 0x00, 0x00, 0xFF,
-    0xF8, 0x00, 0x03, 0xFF, 0x80, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x7F, 0xC0,
-    0x00, 0x01, 0xFC, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x7F, 0x00, 0x00,
-    0x03, 0xF8, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x07,
-    0xF0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x0F, 0xE0,
-    0x00, 0x00, 0x7F, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x1F, 0xC0, 0x00,
-    0x00, 0xFE, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0,
-    0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F,
-    0x80, 0x00, 0x3F, 0xE0, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03,
-    0xFC, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x3F, 0xC0, 0x00,
-    0x1F, 0xE0, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xFE, 0x00,
-    0x00, 0xFF, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xE0,
-    0x00, 0x0F, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFC, 0x3F, 0x87, 0xF0, 0xFE, 0x1F, 0xC3, 0xF8, 0x7F, 0x0F,
-    0xE1, 0xFC, 0x3F, 0x87, 0xF0, 0xFE, 0x1F, 0xC3, 0xF8, 0x7F, 0x0F, 0xE1,
-    0xFC, 0x3F, 0x87, 0xF0, 0xFE, 0x1F, 0xC3, 0xF8, 0x7F, 0x0F, 0xE1, 0xFC,
-    0x3F, 0x87, 0xF0, 0xFE, 0x1F, 0xC3, 0xF8, 0x7F, 0x0F, 0xE1, 0xFC, 0x3F,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0xE0, 0x03, 0xC0, 0x07, 0x00,
-    0x1C, 0x00, 0x78, 0x00, 0xE0, 0x03, 0x80, 0x0F, 0x00, 0x1C, 0x00, 0x70,
-    0x01, 0xE0, 0x03, 0x80, 0x0E, 0x00, 0x38, 0x00, 0x70, 0x01, 0xC0, 0x07,
-    0x00, 0x0E, 0x00, 0x38, 0x00, 0xE0, 0x01, 0xC0, 0x07, 0x00, 0x1C, 0x00,
-    0x78, 0x00, 0xE0, 0x03, 0x80, 0x0F, 0x00, 0x1C, 0x00, 0x70, 0x01, 0xE0,
-    0x03, 0x80, 0x0E, 0x00, 0x3C, 0x00, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFE, 0x1F, 0xC3, 0xF8, 0x7F, 0x0F, 0xE1, 0xFC, 0x3F, 0x87, 0xF0,
-    0xFE, 0x1F, 0xC3, 0xF8, 0x7F, 0x0F, 0xE1, 0xFC, 0x3F, 0x87, 0xF0, 0xFE,
-    0x1F, 0xC3, 0xF8, 0x7F, 0x0F, 0xE1, 0xFC, 0x3F, 0x87, 0xF0, 0xFE, 0x1F,
-    0xC3, 0xF8, 0x7F, 0x0F, 0xE1, 0xFC, 0x3F, 0x87, 0xF0, 0xFE, 0x1F, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xF0,
-    0x00, 0x1F, 0xC0, 0x00, 0xFF, 0x80, 0x03, 0xFE, 0x00, 0x0F, 0xFC, 0x00,
-    0x7D, 0xF0, 0x01, 0xF7, 0xC0, 0x0F, 0xDF, 0x80, 0x3E, 0x3E, 0x00, 0xF8,
-    0xFC, 0x07, 0xE1, 0xF0, 0x1F, 0x07, 0xC0, 0xFC, 0x1F, 0x83, 0xE0, 0x3E,
-    0x0F, 0x80, 0xFC, 0x7E, 0x01, 0xF1, 0xF0, 0x07, 0xC7, 0xC0, 0x1F, 0xBE,
-    0x00, 0x3E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x3E, 0x0F, 0x83, 0xC0, 0xF0, 0x38, 0x1E,
-    0x01, 0xFF, 0x00, 0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0xF0, 0x3F, 0xFF, 0xF8,
-    0x7F, 0xFF, 0xF8, 0x7F, 0xFF, 0xFC, 0x7F, 0x03, 0xFC, 0x7E, 0x01, 0xFC,
-    0x00, 0x01, 0xFC, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xFC, 0x03, 0xFF, 0xFC,
-    0x1F, 0xFF, 0xFC, 0x3F, 0xFF, 0xFC, 0x7F, 0xC1, 0xFC, 0xFF, 0x01, 0xFC,
-    0xFE, 0x01, 0xFC, 0xFE, 0x03, 0xFC, 0xFE, 0x03, 0xFC, 0xFF, 0x07, 0xFC,
-    0xFF, 0xFF, 0xFC, 0x7F, 0xFF, 0xFC, 0x7F, 0xFF, 0xFC, 0x3F, 0xFD, 0xFE,
-    0x1F, 0xF0, 0xFF, 0x07, 0xE0, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00,
-    0x3F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x07, 0xF0, 0x00,
-    0x03, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x0F,
-    0xC0, 0x3F, 0x9F, 0xF8, 0x1F, 0xDF, 0xFF, 0x0F, 0xFF, 0xFF, 0xC7, 0xFF,
-    0xFF, 0xE3, 0xFF, 0xFF, 0xF9, 0xFF, 0x83, 0xFE, 0xFF, 0x80, 0xFF, 0x7F,
-    0x80, 0x3F, 0xBF, 0xC0, 0x1F, 0xFF, 0xC0, 0x07, 0xFF, 0xE0, 0x03, 0xFF,
-    0xF0, 0x01, 0xFF, 0xF8, 0x00, 0xFF, 0xFC, 0x00, 0x7F, 0xFE, 0x00, 0x3F,
-    0xFF, 0x80, 0x3F, 0xFF, 0xC0, 0x1F, 0xDF, 0xF0, 0x1F, 0xEF, 0xFC, 0x1F,
-    0xF7, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xF8, 0xFE, 0xFF,
-    0xF8, 0x7F, 0x3F, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x00, 0xFF, 0x00, 0x07,
-    0xFF, 0xC0, 0x3F, 0xFF, 0xC0, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xC7, 0xFF,
-    0xFF, 0x9F, 0xF0, 0x7F, 0xBF, 0xC0, 0x7F, 0x7F, 0x00, 0x7F, 0xFC, 0x00,
-    0x03, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00,
-    0x3F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0xFD,
-    0xFE, 0x03, 0xFB, 0xFE, 0x0F, 0xF3, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0x87,
-    0xFF, 0xFE, 0x07, 0xFF, 0xF8, 0x03, 0xFF, 0xE0, 0x01, 0xFE, 0x00, 0x00,
-    0x00, 0x3F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x07, 0xF0,
-    0x00, 0x03, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F,
-    0x00, 0x00, 0x3F, 0x80, 0x7E, 0x1F, 0xC0, 0xFF, 0xCF, 0xE1, 0xFF, 0xF7,
-    0xF1, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFE, 0xFF, 0x83,
-    0xFF, 0x7F, 0x80, 0xFF, 0xBF, 0x80, 0x3F, 0xFF, 0xC0, 0x1F, 0xFF, 0xC0,
-    0x07, 0xFF, 0xE0, 0x03, 0xFF, 0xF0, 0x01, 0xFF, 0xF8, 0x00, 0xFF, 0xFC,
-    0x00, 0x7F, 0xFE, 0x00, 0x3F, 0xFF, 0x80, 0x3F, 0xDF, 0xC0, 0x1F, 0xEF,
-    0xF0, 0x1F, 0xF7, 0xFC, 0x1F, 0xF9, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFE,
-    0x3F, 0xFF, 0xFF, 0x0F, 0xFF, 0xBF, 0x81, 0xFF, 0x9F, 0xC0, 0x3F, 0x00,
-    0x00, 0x00, 0xFE, 0x00, 0x03, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x1F, 0xFF,
-    0xF0, 0x3F, 0xFF, 0xF8, 0x3F, 0xC3, 0xF8, 0x7F, 0x80, 0xFC, 0x7F, 0x00,
-    0xFC, 0x7F, 0x00, 0x7C, 0xFE, 0x00, 0x7E, 0xFE, 0x00, 0x7E, 0xFF, 0xFF,
-    0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFE, 0x00,
-    0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x7F, 0x7F, 0x00,
-    0xFE, 0x3F, 0xC1, 0xFE, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF, 0xF8, 0x0F, 0xFF,
-    0xF0, 0x03, 0xFF, 0xC0, 0x00, 0xFF, 0x00, 0x01, 0xFC, 0x1F, 0xF0, 0xFF,
-    0xC3, 0xFF, 0x1F, 0xFC, 0x7F, 0x81, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F,
-    0x0F, 0xFF, 0xBF, 0xFE, 0xFF, 0xFB, 0xFF, 0xE1, 0xFC, 0x07, 0xF0, 0x1F,
-    0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07,
-    0xF0, 0x1F, 0xC0, 0x7F, 0x01, 0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x01,
-    0xFC, 0x07, 0xF0, 0x1F, 0xC0, 0x7F, 0x00, 0x00, 0xF8, 0x7F, 0x07, 0xFE,
-    0x7F, 0x0F, 0xFF, 0x7F, 0x1F, 0xFF, 0x7F, 0x3F, 0xFF, 0xFF, 0x3F, 0xFF,
-    0xFF, 0x7F, 0xC3, 0xFF, 0x7F, 0x81, 0xFF, 0x7F, 0x00, 0xFF, 0xFF, 0x00,
-    0xFF, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00,
-    0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0xFF, 0xFF, 0x00,
-    0xFF, 0x7F, 0x81, 0xFF, 0x7F, 0xC3, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F, 0xFF,
-    0xFF, 0x1F, 0xFF, 0xFF, 0x0F, 0xFF, 0x7F, 0x07, 0xFE, 0x7F, 0x01, 0xF8,
-    0x7F, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x7F, 0x00,
-    0xFF, 0x7F, 0x01, 0xFE, 0x7F, 0xC3, 0xFE, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF,
-    0xF8, 0x0F, 0xFF, 0xE0, 0x01, 0xFF, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x00,
-    0x03, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00,
-    0x3F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x3F, 0x83,
-    0xF8, 0xFF, 0xC7, 0xF7, 0xFF, 0xCF, 0xEF, 0xFF, 0xDF, 0xFF, 0xFF, 0xBF,
-    0xFF, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0x01, 0xFF, 0xFE, 0x01, 0xFF, 0xF8,
-    0x03, 0xFF, 0xF0, 0x07, 0xFF, 0xE0, 0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0x80,
-    0x3F, 0xFF, 0x00, 0x7F, 0xFE, 0x00, 0xFF, 0xFC, 0x01, 0xFF, 0xF8, 0x03,
-    0xFF, 0xF0, 0x07, 0xFF, 0xE0, 0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0x80, 0x3F,
-    0xFF, 0x00, 0x7F, 0xFE, 0x00, 0xFF, 0xFC, 0x01, 0xFC, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xC0, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFC, 0x1F, 0xC7, 0xF1, 0xFC, 0x7F, 0x1F, 0xC7, 0xF0, 0x00,
-    0x00, 0x00, 0x07, 0xF1, 0xFC, 0x7F, 0x1F, 0xC7, 0xF1, 0xFC, 0x7F, 0x1F,
-    0xC7, 0xF1, 0xFC, 0x7F, 0x1F, 0xC7, 0xF1, 0xFC, 0x7F, 0x1F, 0xC7, 0xF1,
-    0xFC, 0x7F, 0x1F, 0xC7, 0xF1, 0xFC, 0x7F, 0x1F, 0xC7, 0xF1, 0xFC, 0x7F,
-    0x1F, 0xC7, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFE, 0xFE, 0x00,
-    0xFE, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F,
-    0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0xFE,
-    0x00, 0x01, 0xFC, 0x03, 0xFB, 0xF8, 0x0F, 0xE7, 0xF0, 0x3F, 0xCF, 0xE0,
-    0xFF, 0x1F, 0xC3, 0xFC, 0x3F, 0x87, 0xF0, 0x7F, 0x1F, 0xC0, 0xFE, 0x7F,
-    0x01, 0xFD, 0xFC, 0x03, 0xFF, 0xF0, 0x07, 0xFF, 0xF0, 0x0F, 0xFF, 0xE0,
-    0x1F, 0xFF, 0xE0, 0x3F, 0xFF, 0xE0, 0x7F, 0xDF, 0xC0, 0xFF, 0x3F, 0xC1,
-    0xFC, 0x3F, 0x83, 0xF8, 0x3F, 0x87, 0xF0, 0x7F, 0x8F, 0xE0, 0x7F, 0x1F,
-    0xC0, 0xFF, 0x3F, 0x80, 0xFE, 0x7F, 0x01, 0xFE, 0xFE, 0x01, 0xFD, 0xFC,
-    0x03, 0xFC, 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, 0xFC, 0xFE, 0x1F, 0x80, 0x7E,
-    0x0F, 0xE7, 0xFE, 0x1F, 0xF8, 0xFE, 0xFF, 0xF3, 0xFF, 0xCF, 0xFF, 0xFF,
-    0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0x83, 0xFF, 0x0F, 0xFF, 0xF0, 0x1F, 0xE0, 0x7F, 0xFE, 0x01, 0xFC, 0x07,
-    0xFF, 0xE0, 0x1F, 0xC0, 0x7F, 0xFE, 0x01, 0xFC, 0x07, 0xFF, 0xE0, 0x1F,
-    0xC0, 0x7F, 0xFE, 0x01, 0xFC, 0x07, 0xFF, 0xE0, 0x1F, 0xC0, 0x7F, 0xFE,
-    0x01, 0xFC, 0x07, 0xFF, 0xE0, 0x1F, 0xC0, 0x7F, 0xFE, 0x01, 0xFC, 0x07,
-    0xFF, 0xE0, 0x1F, 0xC0, 0x7F, 0xFE, 0x01, 0xFC, 0x07, 0xFF, 0xE0, 0x1F,
-    0xC0, 0x7F, 0xFE, 0x01, 0xFC, 0x07, 0xFF, 0xE0, 0x1F, 0xC0, 0x7F, 0xFE,
-    0x01, 0xFC, 0x07, 0xFF, 0xE0, 0x1F, 0xC0, 0x7F, 0xFE, 0x01, 0xFC, 0x07,
-    0xF0, 0xFE, 0x1F, 0xC1, 0xFC, 0xFF, 0xE3, 0xFB, 0xFF, 0xE7, 0xFF, 0xFF,
-    0xEF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x80, 0xFF,
-    0xFE, 0x00, 0xFF, 0xFC, 0x01, 0xFF, 0xF8, 0x03, 0xFF, 0xF0, 0x07, 0xFF,
-    0xE0, 0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0x80, 0x3F, 0xFF, 0x00, 0x7F, 0xFE,
-    0x00, 0xFF, 0xFC, 0x01, 0xFF, 0xF8, 0x03, 0xFF, 0xF0, 0x07, 0xFF, 0xE0,
-    0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0x80, 0x3F, 0xFF, 0x00, 0x7F, 0xFE, 0x00,
-    0xFE, 0x00, 0x7F, 0x80, 0x01, 0xFF, 0xF0, 0x01, 0xFF, 0xFE, 0x01, 0xFF,
-    0xFF, 0x81, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xF1, 0xFF, 0x07, 0xFC, 0xFF,
-    0x01, 0xFE, 0x7F, 0x00, 0x7F, 0x7F, 0x80, 0x3F, 0xFF, 0x80, 0x0F, 0xFF,
-    0xC0, 0x07, 0xFF, 0xE0, 0x03, 0xFF, 0xF0, 0x01, 0xFF, 0xF8, 0x00, 0xFF,
-    0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x7F, 0xBF, 0x80, 0x3F, 0x9F, 0xE0, 0x3F,
-    0xCF, 0xF8, 0x3F, 0xE3, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF0, 0x3F, 0xFF,
-    0xF0, 0x0F, 0xFF, 0xF0, 0x03, 0xFF, 0xE0, 0x00, 0x3F, 0xC0, 0x00, 0xFE,
-    0x1F, 0x80, 0x7F, 0x3F, 0xF0, 0x3F, 0xBF, 0xFE, 0x1F, 0xDF, 0xFF, 0x8F,
-    0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xF3, 0xFF, 0x07, 0xFD, 0xFF, 0x01, 0xFE,
-    0xFF, 0x00, 0x7F, 0x7F, 0x80, 0x3F, 0xFF, 0x80, 0x0F, 0xFF, 0xC0, 0x07,
-    0xFF, 0xE0, 0x03, 0xFF, 0xF0, 0x01, 0xFF, 0xF8, 0x00, 0xFF, 0xFC, 0x00,
-    0x7F, 0xFF, 0x00, 0x7F, 0xFF, 0x80, 0x3F, 0xBF, 0xE0, 0x3F, 0xDF, 0xF8,
-    0x3F, 0xCF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xE3, 0xFB, 0xFF, 0xE1, 0xFD,
-    0xFF, 0xF0, 0xFE, 0x7F, 0xE0, 0x7F, 0x0F, 0xC0, 0x3F, 0x80, 0x00, 0x1F,
-    0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x01,
-    0xFC, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x3F, 0x80, 0x00,
-    0x1F, 0xC0, 0x00, 0x00, 0x00, 0xFC, 0x3F, 0x81, 0xFF, 0x9F, 0xC3, 0xFF,
-    0xEF, 0xE1, 0xFF, 0xF7, 0xF1, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFD, 0xFF,
-    0x07, 0xFE, 0xFF, 0x01, 0xFF, 0x7F, 0x00, 0x7F, 0xFF, 0x80, 0x3F, 0xFF,
-    0x80, 0x0F, 0xFF, 0xC0, 0x07, 0xFF, 0xE0, 0x03, 0xFF, 0xF0, 0x01, 0xFF,
-    0xF8, 0x00, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x7F, 0xBF, 0x80, 0x3F,
-    0xDF, 0xE0, 0x3F, 0xEF, 0xF8, 0x3F, 0xF3, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF,
-    0xFC, 0x7F, 0xFE, 0xFE, 0x1F, 0xFF, 0x7F, 0x03, 0xFF, 0x3F, 0x80, 0x7E,
-    0x1F, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xF8, 0x00,
-    0x01, 0xFC, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x3F, 0x80,
-    0x00, 0x1F, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x07, 0xF0, 0xFE, 0x1F, 0xFC,
-    0x7F, 0xFB, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x7F, 0x80,
-    0xFF, 0x01, 0xFC, 0x03, 0xF8, 0x07, 0xF0, 0x0F, 0xE0, 0x1F, 0xC0, 0x3F,
-    0x80, 0x7F, 0x00, 0xFE, 0x01, 0xFC, 0x03, 0xF8, 0x07, 0xF0, 0x0F, 0xE0,
-    0x1F, 0xC0, 0x3F, 0x80, 0x7F, 0x00, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x07,
-    0xFF, 0xE0, 0x0F, 0xFF, 0xF8, 0x1F, 0xFF, 0xFC, 0x3F, 0xFF, 0xFC, 0x7F,
-    0x81, 0xFE, 0x7F, 0x00, 0xFE, 0x7F, 0x00, 0xFE, 0x7F, 0xC0, 0x00, 0x7F,
-    0xFC, 0x00, 0x7F, 0xFF, 0x80, 0x3F, 0xFF, 0xF0, 0x1F, 0xFF, 0xFC, 0x07,
-    0xFF, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x0F, 0xFF, 0x00, 0x01, 0xFF, 0x00,
-    0x00, 0x7F, 0xFE, 0x00, 0x7F, 0x7F, 0x00, 0x7F, 0x7F, 0x81, 0xFE, 0x7F,
-    0xFF, 0xFE, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF, 0xF8, 0x0F, 0xFF, 0xF0, 0x01,
-    0xFF, 0x80, 0x3F, 0x83, 0xF8, 0x3F, 0x83, 0xF8, 0x3F, 0x83, 0xF8, 0x3F,
-    0x8F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xF8, 0x3F, 0x83, 0xF8, 0x3F,
-    0x83, 0xF8, 0x3F, 0x83, 0xF8, 0x3F, 0x83, 0xF8, 0x3F, 0x83, 0xF8, 0x3F,
-    0x83, 0xF8, 0x3F, 0x83, 0xF8, 0x3F, 0x83, 0xFF, 0x3F, 0xF1, 0xFF, 0x0F,
-    0xF0, 0x7F, 0xFE, 0x00, 0xFF, 0xFC, 0x01, 0xFF, 0xF8, 0x03, 0xFF, 0xF0,
-    0x07, 0xFF, 0xE0, 0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0x80, 0x3F, 0xFF, 0x00,
-    0x7F, 0xFE, 0x00, 0xFF, 0xFC, 0x01, 0xFF, 0xF8, 0x03, 0xFF, 0xF0, 0x07,
-    0xFF, 0xE0, 0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0x80, 0x3F, 0xFF, 0x00, 0x7F,
-    0xFE, 0x00, 0xFF, 0xFC, 0x03, 0xFF, 0xFC, 0x07, 0xFF, 0xFC, 0x3F, 0xFF,
-    0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xDF, 0xFF, 0xBF, 0x9F, 0xFF, 0x7F, 0x1F,
-    0xFC, 0xFE, 0x0F, 0xE0, 0x00, 0x7F, 0x00, 0x3F, 0xBF, 0x80, 0x1F, 0x9F,
-    0xC0, 0x1F, 0xC7, 0xE0, 0x0F, 0xE3, 0xF8, 0x07, 0xE1, 0xFC, 0x07, 0xF0,
-    0x7E, 0x03, 0xF8, 0x3F, 0x81, 0xF8, 0x1F, 0xC0, 0xFC, 0x07, 0xE0, 0xFE,
-    0x03, 0xF8, 0x7E, 0x00, 0xFC, 0x3F, 0x00, 0x7E, 0x1F, 0x80, 0x3F, 0x1F,
-    0x80, 0x0F, 0xCF, 0xC0, 0x07, 0xE7, 0xE0, 0x03, 0xF7, 0xE0, 0x00, 0xFF,
-    0xF0, 0x00, 0x7F, 0xF8, 0x00, 0x3F, 0xF8, 0x00, 0x0F, 0xFC, 0x00, 0x07,
-    0xFE, 0x00, 0x03, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0x00, 0x00,
-    0xFC, 0x03, 0xF8, 0x0F, 0xFF, 0xC0, 0x7F, 0x01, 0xFF, 0xF8, 0x0F, 0xE0,
-    0x3F, 0x3F, 0x03, 0xFE, 0x07, 0xE7, 0xE0, 0x7F, 0xC1, 0xFC, 0xFE, 0x0F,
-    0xF8, 0x3F, 0x9F, 0xC1, 0xFF, 0x07, 0xE1, 0xF8, 0x3D, 0xE0, 0xFC, 0x3F,
-    0x0F, 0xBE, 0x3F, 0x87, 0xF1, 0xF7, 0xC7, 0xE0, 0x7E, 0x3E, 0xF8, 0xFC,
-    0x0F, 0xC7, 0xDF, 0x1F, 0x81, 0xF9, 0xF1, 0xE3, 0xF0, 0x3F, 0x3E, 0x3E,
-    0xFC, 0x03, 0xF7, 0xC7, 0xDF, 0x80, 0x7E, 0xF8, 0xFB, 0xF0, 0x0F, 0xDE,
-    0x1F, 0x7C, 0x00, 0xFF, 0xC1, 0xFF, 0x80, 0x1F, 0xF8, 0x3F, 0xF0, 0x03,
-    0xFF, 0x07, 0xFE, 0x00, 0x7F, 0xC0, 0xFF, 0x80, 0x07, 0xF8, 0x1F, 0xF0,
-    0x00, 0xFF, 0x01, 0xFE, 0x00, 0x1F, 0xE0, 0x3F, 0x80, 0x01, 0xFC, 0x07,
-    0xF0, 0x00, 0xFF, 0x00, 0xFF, 0x7F, 0x81, 0xFE, 0x3F, 0x81, 0xFC, 0x3F,
-    0xC3, 0xFC, 0x1F, 0xC3, 0xF8, 0x0F, 0xE7, 0xF0, 0x0F, 0xEF, 0xF0, 0x07,
-    0xFF, 0xE0, 0x03, 0xFF, 0xC0, 0x03, 0xFF, 0xC0, 0x01, 0xFF, 0x80, 0x00,
-    0xFF, 0x00, 0x00, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x80, 0x03,
-    0xFF, 0xC0, 0x07, 0xFF, 0xC0, 0x07, 0xFF, 0xE0, 0x0F, 0xE7, 0xF0, 0x1F,
-    0xE7, 0xF0, 0x1F, 0xC3, 0xF8, 0x3F, 0xC3, 0xFC, 0x7F, 0x81, 0xFC, 0x7F,
-    0x01, 0xFE, 0xFF, 0x00, 0xFF, 0x7F, 0x00, 0x3F, 0xBF, 0x80, 0x1F, 0xDF,
-    0xC0, 0x0F, 0xC7, 0xF0, 0x07, 0xE3, 0xF8, 0x07, 0xF1, 0xFC, 0x03, 0xF0,
-    0x7F, 0x01, 0xF8, 0x3F, 0x81, 0xFC, 0x0F, 0xC0, 0xFC, 0x07, 0xF0, 0x7E,
-    0x03, 0xF8, 0x3F, 0x00, 0xFC, 0x3F, 0x00, 0x7E, 0x1F, 0x80, 0x3F, 0x8F,
-    0xC0, 0x0F, 0xCF, 0xC0, 0x07, 0xE7, 0xE0, 0x03, 0xFB, 0xF0, 0x00, 0xFD,
-    0xF0, 0x00, 0x7F, 0xF8, 0x00, 0x3F, 0xFC, 0x00, 0x0F, 0xFC, 0x00, 0x07,
-    0xFE, 0x00, 0x03, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0x80, 0x00,
-    0x1F, 0xC0, 0x00, 0x0F, 0xC0, 0x00, 0x07, 0xE0, 0x00, 0x03, 0xF0, 0x00,
-    0x03, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x1F, 0xF8, 0x00, 0x0F, 0xFC, 0x00,
-    0x07, 0xFC, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x7F, 0xFF,
-    0xFB, 0xFF, 0xFF, 0xDF, 0xFF, 0xFE, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xBF,
-    0xFF, 0xFC, 0x00, 0x3F, 0xE0, 0x03, 0xFE, 0x00, 0x1F, 0xE0, 0x01, 0xFE,
-    0x00, 0x1F, 0xE0, 0x01, 0xFE, 0x00, 0x1F, 0xE0, 0x01, 0xFE, 0x00, 0x1F,
-    0xE0, 0x01, 0xFE, 0x00, 0x1F, 0xE0, 0x01, 0xFE, 0x00, 0x1F, 0xE0, 0x01,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xF8, 0x01, 0xF8, 0x1F, 0xC1, 0xFE, 0x0F, 0xF0, 0xFF,
-    0x87, 0xE0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x00,
-    0xF8, 0x07, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x3F,
-    0x0F, 0xF0, 0x7F, 0x03, 0xF8, 0x1F, 0xE0, 0x1F, 0x80, 0x7C, 0x03, 0xE0,
-    0x1F, 0x00, 0xF8, 0x07, 0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03,
-    0xE0, 0x1F, 0x00, 0xF8, 0x07, 0xE0, 0x3F, 0xE0, 0xFF, 0x07, 0xF8, 0x1F,
-    0xC0, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-    0xFC, 0x07, 0xF0, 0x3F, 0xC1, 0xFE, 0x0F, 0xF8, 0x0F, 0xC0, 0x3E, 0x01,
-    0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x00, 0xF8, 0x07, 0xC0, 0x3E,
-    0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x80, 0x7F, 0x81, 0xFC,
-    0x0F, 0xE0, 0xFF, 0x0F, 0xC0, 0x7C, 0x03, 0xE0, 0x1F, 0x00, 0xF8, 0x07,
-    0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x1F, 0x00, 0xF8,
-    0x0F, 0xC3, 0xFE, 0x1F, 0xE0, 0xFF, 0x07, 0xF0, 0x3F, 0x00, 0x1F, 0x00,
-    0x03, 0xFE, 0x00, 0x1F, 0xF8, 0x0F, 0xFF, 0xF0, 0xFF, 0x0F, 0xFF, 0xF0,
-    0x1F, 0xF8, 0x00, 0x7F, 0x80, 0x00, 0xF8};
-
-const GFXglyph FreeSansBold24pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 13, 0, 1},         // 0x20 ' '
-    {0, 7, 34, 16, 5, -33},      // 0x21 '!'
-    {30, 18, 12, 22, 2, -33},    // 0x22 '"'
-    {57, 26, 33, 26, 0, -31},    // 0x23 '#'
-    {165, 25, 40, 26, 1, -34},   // 0x24 '$'
-    {290, 39, 34, 42, 1, -32},   // 0x25 '%'
-    {456, 30, 35, 34, 3, -33},   // 0x26 '&'
-    {588, 7, 12, 12, 3, -33},    // 0x27 '''
-    {599, 13, 44, 16, 2, -33},   // 0x28 '('
-    {671, 13, 44, 16, 1, -33},   // 0x29 ')'
-    {743, 15, 15, 18, 1, -33},   // 0x2A '*'
-    {772, 23, 22, 27, 2, -21},   // 0x2B '+'
-    {836, 7, 15, 12, 2, -6},     // 0x2C ','
-    {850, 13, 6, 16, 1, -15},    // 0x2D '-'
-    {860, 7, 7, 12, 2, -6},      // 0x2E '.'
-    {867, 13, 34, 13, 0, -32},   // 0x2F '/'
-    {923, 24, 35, 26, 1, -33},   // 0x30 '0'
-    {1028, 14, 33, 26, 4, -32},  // 0x31 '1'
-    {1086, 23, 34, 26, 2, -33},  // 0x32 '2'
-    {1184, 23, 35, 26, 2, -33},  // 0x33 '3'
-    {1285, 22, 33, 26, 2, -32},  // 0x34 '4'
-    {1376, 23, 34, 26, 2, -32},  // 0x35 '5'
-    {1474, 23, 35, 26, 2, -33},  // 0x36 '6'
-    {1575, 23, 33, 26, 1, -32},  // 0x37 '7'
-    {1670, 24, 35, 26, 1, -33},  // 0x38 '8'
-    {1775, 24, 35, 26, 1, -33},  // 0x39 '9'
-    {1880, 7, 25, 12, 2, -24},   // 0x3A ':'
-    {1902, 7, 33, 12, 2, -24},   // 0x3B ';'
-    {1931, 23, 23, 27, 2, -22},  // 0x3C '<'
-    {1998, 23, 18, 27, 2, -19},  // 0x3D '='
-    {2050, 23, 23, 27, 2, -22},  // 0x3E '>'
-    {2117, 24, 35, 29, 3, -34},  // 0x3F '?'
-    {2222, 43, 41, 46, 1, -34},  // 0x40 '@'
-    {2443, 32, 34, 33, 0, -33},  // 0x41 'A'
-    {2579, 27, 34, 33, 4, -33},  // 0x42 'B'
-    {2694, 30, 36, 34, 2, -34},  // 0x43 'C'
-    {2829, 28, 34, 34, 4, -33},  // 0x44 'D'
-    {2948, 25, 34, 31, 4, -33},  // 0x45 'E'
-    {3055, 24, 34, 30, 4, -33},  // 0x46 'F'
-    {3157, 31, 36, 36, 2, -34},  // 0x47 'G'
-    {3297, 27, 34, 35, 4, -33},  // 0x48 'H'
-    {3412, 7, 34, 15, 4, -33},   // 0x49 'I'
-    {3442, 22, 35, 27, 1, -33},  // 0x4A 'J'
-    {3539, 30, 34, 34, 4, -33},  // 0x4B 'K'
-    {3667, 23, 34, 29, 4, -33},  // 0x4C 'L'
-    {3765, 33, 34, 41, 4, -33},  // 0x4D 'M'
-    {3906, 28, 34, 35, 4, -33},  // 0x4E 'N'
-    {4025, 33, 36, 37, 2, -34},  // 0x4F 'O'
-    {4174, 26, 34, 32, 4, -33},  // 0x50 'P'
-    {4285, 33, 37, 37, 2, -34},  // 0x51 'Q'
-    {4438, 28, 34, 34, 4, -33},  // 0x52 'R'
-    {4557, 28, 36, 32, 2, -34},  // 0x53 'S'
-    {4683, 27, 34, 30, 2, -33},  // 0x54 'T'
-    {4798, 27, 35, 35, 4, -33},  // 0x55 'U'
-    {4917, 29, 34, 31, 1, -33},  // 0x56 'V'
-    {5041, 43, 34, 45, 1, -33},  // 0x57 'W'
-    {5224, 30, 34, 32, 1, -33},  // 0x58 'X'
-    {5352, 29, 34, 30, 1, -33},  // 0x59 'Y'
-    {5476, 26, 34, 29, 1, -33},  // 0x5A 'Z'
-    {5587, 11, 43, 16, 3, -33},  // 0x5B '['
-    {5647, 14, 34, 13, -1, -32}, // 0x5C '\'
-    {5707, 11, 43, 16, 1, -33},  // 0x5D ']'
-    {5767, 22, 20, 27, 3, -32},  // 0x5E '^'
-    {5822, 28, 4, 26, -1, 6},    // 0x5F '_'
-    {5836, 9, 7, 12, 1, -35},    // 0x60 '`'
-    {5844, 24, 26, 27, 2, -24},  // 0x61 'a'
-    {5922, 25, 35, 29, 3, -33},  // 0x62 'b'
-    {6032, 23, 26, 26, 2, -24},  // 0x63 'c'
-    {6107, 25, 35, 29, 2, -33},  // 0x64 'd'
-    {6217, 24, 26, 27, 2, -24},  // 0x65 'e'
-    {6295, 14, 34, 16, 1, -33},  // 0x66 'f'
-    {6355, 24, 36, 29, 2, -24},  // 0x67 'g'
-    {6463, 23, 34, 28, 3, -33},  // 0x68 'h'
-    {6561, 7, 34, 13, 3, -33},   // 0x69 'i'
-    {6591, 10, 45, 13, 0, -33},  // 0x6A 'j'
-    {6648, 23, 34, 27, 3, -33},  // 0x6B 'k'
-    {6746, 7, 34, 13, 3, -33},   // 0x6C 'l'
-    {6776, 36, 25, 42, 3, -24},  // 0x6D 'm'
-    {6889, 23, 25, 29, 3, -24},  // 0x6E 'n'
-    {6961, 25, 26, 29, 2, -24},  // 0x6F 'o'
-    {7043, 25, 36, 29, 3, -24},  // 0x70 'p'
-    {7156, 25, 36, 29, 2, -24},  // 0x71 'q'
-    {7269, 15, 25, 18, 3, -24},  // 0x72 'r'
-    {7316, 24, 26, 26, 1, -24},  // 0x73 's'
-    {7394, 12, 32, 16, 2, -30},  // 0x74 't'
-    {7442, 23, 26, 29, 3, -24},  // 0x75 'u'
-    {7517, 25, 25, 25, 0, -24},  // 0x76 'v'
-    {7596, 35, 25, 37, 1, -24},  // 0x77 'w'
-    {7706, 24, 25, 26, 1, -24},  // 0x78 'x'
-    {7781, 25, 36, 26, 0, -24},  // 0x79 'y'
-    {7894, 21, 25, 24, 1, -24},  // 0x7A 'z'
-    {7960, 13, 43, 18, 2, -33},  // 0x7B '{'
-    {8030, 4, 44, 13, 5, -33},   // 0x7C '|'
-    {8052, 13, 43, 18, 3, -33},  // 0x7D '}'
-    {8122, 21, 8, 23, 1, -14}};  // 0x7E '~'
-
-const GFXfont FreeSansBold24pt7b PROGMEM = {
-    (uint8_t *)FreeSansBold24pt7bBitmaps, (GFXglyph *)FreeSansBold24pt7bGlyphs,
-    0x20, 0x7E, 56};
-
-// Approx. 8815 bytes

+ 0 - 207
SE/stuff/P5_Automation-library-dev/Adafruit_GFX_Library/Fonts/FreeSansBold9pt7b.h

@@ -1,207 +0,0 @@
-const uint8_t FreeSansBold9pt7bBitmaps[] PROGMEM = {
-    0xFF, 0xFF, 0xFE, 0x48, 0x7E, 0xEF, 0xDF, 0xBF, 0x74, 0x40, 0x19, 0x86,
-    0x67, 0xFD, 0xFF, 0x33, 0x0C, 0xC3, 0x33, 0xFE, 0xFF, 0x99, 0x86, 0x61,
-    0x90, 0x10, 0x1F, 0x1F, 0xDE, 0xFF, 0x3F, 0x83, 0xC0, 0xFC, 0x1F, 0x09,
-    0xFC, 0xFE, 0xF7, 0xF1, 0xE0, 0x40, 0x38, 0x10, 0x7C, 0x30, 0xC6, 0x20,
-    0xC6, 0x40, 0xC6, 0x40, 0x7C, 0x80, 0x39, 0x9C, 0x01, 0x3E, 0x03, 0x63,
-    0x02, 0x63, 0x04, 0x63, 0x0C, 0x3E, 0x08, 0x1C, 0x0E, 0x01, 0xF8, 0x3B,
-    0x83, 0xB8, 0x3F, 0x01, 0xE0, 0x3E, 0x67, 0x76, 0xE3, 0xEE, 0x1C, 0xF3,
-    0xC7, 0xFE, 0x3F, 0x70, 0xFF, 0xF4, 0x18, 0x63, 0x1C, 0x73, 0x8E, 0x38,
-    0xE3, 0x8E, 0x18, 0x70, 0xC3, 0x06, 0x08, 0x61, 0x83, 0x0E, 0x38, 0x71,
-    0xC7, 0x1C, 0x71, 0xC6, 0x38, 0xE3, 0x18, 0x40, 0x21, 0x3E, 0x45, 0x28,
-    0x38, 0x70, 0xE7, 0xFF, 0xE7, 0x0E, 0x1C, 0xFC, 0x9C, 0xFF, 0xC0, 0xFC,
-    0x08, 0xC4, 0x23, 0x10, 0x84, 0x62, 0x11, 0x88, 0x00, 0x3E, 0x3F, 0x9D,
-    0xDC, 0x7E, 0x3F, 0x1F, 0x8F, 0xC7, 0xE3, 0xF1, 0xDD, 0xCF, 0xE3, 0xE0,
-    0x08, 0xFF, 0xF3, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x80, 0x3E, 0x3F, 0xB8,
-    0xFC, 0x70, 0x38, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x0F, 0xF7, 0xF8,
-    0x3C, 0x7F, 0xE7, 0xE7, 0x07, 0x0C, 0x0E, 0x07, 0x07, 0xE7, 0xE7, 0x7E,
-    0x3C, 0x0E, 0x1E, 0x1E, 0x2E, 0x2E, 0x4E, 0x4E, 0x8E, 0xFF, 0xFF, 0x0E,
-    0x0E, 0x0E, 0x7F, 0x3F, 0x90, 0x18, 0x0D, 0xE7, 0xFB, 0x9E, 0x07, 0x03,
-    0x81, 0xF1, 0xFF, 0xE7, 0xC0, 0x3E, 0x3F, 0x9C, 0xFC, 0x0E, 0xE7, 0xFB,
-    0xDF, 0xC7, 0xE3, 0xF1, 0xDD, 0xEF, 0xE3, 0xE0, 0xFF, 0xFF, 0xC0, 0xE0,
-    0xE0, 0x60, 0x70, 0x30, 0x38, 0x1C, 0x0C, 0x0E, 0x07, 0x03, 0x80, 0x3F,
-    0x1F, 0xEE, 0x3F, 0x87, 0xE3, 0xCF, 0xC7, 0xFB, 0xCF, 0xE1, 0xF8, 0x7F,
-    0x3D, 0xFE, 0x3F, 0x00, 0x3E, 0x3F, 0xBD, 0xDC, 0x7E, 0x3F, 0x1F, 0xDE,
-    0xFF, 0x3B, 0x81, 0xF9, 0xCF, 0xE3, 0xC0, 0xFC, 0x00, 0x07, 0xE0, 0xFC,
-    0x00, 0x07, 0xE5, 0xE0, 0x00, 0x83, 0xC7, 0xDF, 0x0C, 0x07, 0x80, 0xF8,
-    0x1F, 0x01, 0x80, 0xFF, 0xFF, 0xC0, 0x00, 0x0F, 0xFF, 0xFC, 0x00, 0x70,
-    0x3F, 0x03, 0xE0, 0x38, 0x7D, 0xF1, 0xE0, 0x80, 0x00, 0x3E, 0x3F, 0xB8,
-    0xFC, 0x70, 0x38, 0x1C, 0x1C, 0x1C, 0x1C, 0x0E, 0x00, 0x03, 0x81, 0xC0,
-    0x03, 0xF0, 0x0F, 0xFC, 0x1E, 0x0E, 0x38, 0x02, 0x70, 0xE9, 0x63, 0x19,
-    0xC2, 0x19, 0xC6, 0x11, 0xC6, 0x33, 0xC6, 0x32, 0x63, 0xFE, 0x73, 0xDC,
-    0x3C, 0x00, 0x1F, 0xF8, 0x07, 0xF0, 0x07, 0x00, 0xF0, 0x0F, 0x80, 0xF8,
-    0x1D, 0x81, 0x9C, 0x19, 0xC3, 0x8C, 0x3F, 0xE7, 0xFE, 0x70, 0x66, 0x07,
-    0xE0, 0x70, 0xFF, 0x9F, 0xFB, 0x83, 0xF0, 0x7E, 0x0F, 0xFF, 0x3F, 0xF7,
-    0x06, 0xE0, 0xFC, 0x1F, 0x83, 0xFF, 0xEF, 0xF8, 0x1F, 0x83, 0xFE, 0x78,
-    0xE7, 0x07, 0xE0, 0x0E, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x07, 0x07, 0x78,
-    0xF3, 0xFE, 0x1F, 0x80, 0xFF, 0x8F, 0xFC, 0xE0, 0xEE, 0x0E, 0xE0, 0x7E,
-    0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x7E, 0x0E, 0xE0, 0xEF, 0xFC, 0xFF, 0x80,
-    0xFF, 0xFF, 0xF8, 0x1C, 0x0E, 0x07, 0xFB, 0xFD, 0xC0, 0xE0, 0x70, 0x38,
-    0x1F, 0xFF, 0xF8, 0xFF, 0xFF, 0xF8, 0x1C, 0x0E, 0x07, 0xFB, 0xFD, 0xC0,
-    0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x00, 0x0F, 0x87, 0xF9, 0xE3, 0xB8, 0x3E,
-    0x01, 0xC0, 0x38, 0xFF, 0x1F, 0xE0, 0x6E, 0x0D, 0xE3, 0x9F, 0xD0, 0xF2,
-    0xE0, 0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x0F, 0xFF, 0xFF, 0xFF, 0x07, 0xE0,
-    0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x0E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x07,
-    0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xE7, 0xE7, 0xE7, 0x7E, 0x3C,
-    0xE0, 0xEE, 0x1C, 0xE3, 0x8E, 0x70, 0xEE, 0x0F, 0xC0, 0xFE, 0x0F, 0x70,
-    0xE7, 0x0E, 0x38, 0xE1, 0xCE, 0x0E, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
-    0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xFF, 0xFF, 0xF8, 0x7F, 0xE1,
-    0xFF, 0x87, 0xFE, 0x1F, 0xEC, 0x7F, 0xB3, 0x7E, 0xCD, 0xFB, 0x37, 0xEC,
-    0xDF, 0x9E, 0x7E, 0x79, 0xF9, 0xE7, 0xE7, 0x9C, 0xE0, 0xFE, 0x1F, 0xC3,
-    0xFC, 0x7F, 0xCF, 0xD9, 0xFB, 0xBF, 0x37, 0xE7, 0xFC, 0x7F, 0x87, 0xF0,
-    0xFE, 0x0E, 0x0F, 0x81, 0xFF, 0x1E, 0x3C, 0xE0, 0xEE, 0x03, 0xF0, 0x1F,
-    0x80, 0xFC, 0x07, 0xE0, 0x3B, 0x83, 0x9E, 0x3C, 0x7F, 0xC0, 0xF8, 0x00,
-    0xFF, 0x9F, 0xFB, 0x87, 0xF0, 0x7E, 0x0F, 0xC3, 0xFF, 0xF7, 0xFC, 0xE0,
-    0x1C, 0x03, 0x80, 0x70, 0x0E, 0x00, 0x0F, 0x81, 0xFF, 0x1E, 0x3C, 0xE0,
-    0xEE, 0x03, 0xF0, 0x1F, 0x80, 0xFC, 0x07, 0xE1, 0xBB, 0x8F, 0x9E, 0x3C,
-    0x7F, 0xE0, 0xFB, 0x80, 0x08, 0xFF, 0x8F, 0xFC, 0xE0, 0xEE, 0x0E, 0xE0,
-    0xEE, 0x0E, 0xFF, 0xCF, 0xFC, 0xE0, 0xEE, 0x0E, 0xE0, 0xEE, 0x0E, 0xE0,
-    0xF0, 0x3F, 0x0F, 0xFB, 0xC7, 0xF0, 0x7E, 0x01, 0xFC, 0x1F, 0xF0, 0x3F,
-    0x00, 0xFC, 0x1D, 0xC7, 0xBF, 0xE1, 0xF8, 0xFF, 0xFF, 0xC7, 0x03, 0x81,
-    0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x07, 0x03, 0x81, 0xC0, 0xE0, 0xFC,
-    0x1F, 0x83, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8, 0x3F, 0x07, 0xE0, 0xFC, 0x1F,
-    0xC7, 0xBF, 0xE1, 0xF0, 0x60, 0x67, 0x0E, 0x70, 0xE3, 0x0C, 0x30, 0xC3,
-    0x9C, 0x19, 0x81, 0x98, 0x1F, 0x80, 0xF0, 0x0F, 0x00, 0xF0, 0x06, 0x00,
-    0x61, 0xC3, 0xB8, 0xE1, 0x9C, 0x70, 0xCE, 0x3C, 0xE3, 0x36, 0x71, 0x9B,
-    0x30, 0xED, 0x98, 0x36, 0x7C, 0x1B, 0x3C, 0x0F, 0x1E, 0x07, 0x8F, 0x01,
-    0xC3, 0x80, 0xE1, 0x80, 0x70, 0xE7, 0x8E, 0x39, 0xC1, 0xF8, 0x1F, 0x80,
-    0xF0, 0x07, 0x00, 0xF0, 0x1F, 0x81, 0x9C, 0x39, 0xC7, 0x0E, 0x70, 0xE0,
-    0xE0, 0xFC, 0x39, 0xC7, 0x18, 0xC3, 0xB8, 0x36, 0x07, 0xC0, 0x70, 0x0E,
-    0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0xFF, 0xFF, 0xC0, 0xE0, 0xE0, 0xF0,
-    0x70, 0x70, 0x70, 0x78, 0x38, 0x38, 0x1F, 0xFF, 0xF8, 0xFF, 0xEE, 0xEE,
-    0xEE, 0xEE, 0xEE, 0xEE, 0xEF, 0xF0, 0x86, 0x10, 0x86, 0x10, 0x84, 0x30,
-    0x84, 0x30, 0x80, 0xFF, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x7F, 0xF0,
-    0x18, 0x1C, 0x3C, 0x3E, 0x36, 0x66, 0x63, 0xC3, 0xFF, 0xC0, 0xCC, 0x3F,
-    0x1F, 0xEE, 0x38, 0x0E, 0x3F, 0x9E, 0xEE, 0x3B, 0x9E, 0xFF, 0x9E, 0xE0,
-    0xE0, 0x38, 0x0E, 0x03, 0xBC, 0xFF, 0xBC, 0xEE, 0x1F, 0x87, 0xE1, 0xF8,
-    0x7F, 0x3B, 0xFE, 0xEF, 0x00, 0x1F, 0x3F, 0xDC, 0x7C, 0x0E, 0x07, 0x03,
-    0x80, 0xE3, 0x7F, 0x8F, 0x00, 0x03, 0x81, 0xC0, 0xE7, 0x77, 0xFB, 0xBF,
-    0x8F, 0xC7, 0xE3, 0xF1, 0xFD, 0xEF, 0xF3, 0xB8, 0x3E, 0x3F, 0x9C, 0xDC,
-    0x3F, 0xFF, 0xFF, 0x81, 0xC3, 0x7F, 0x8F, 0x00, 0x3B, 0xDD, 0xFF, 0xB9,
-    0xCE, 0x73, 0x9C, 0xE7, 0x00, 0x3B, 0xBF, 0xDD, 0xFC, 0x7E, 0x3F, 0x1F,
-    0x8F, 0xEF, 0x7F, 0x9D, 0xC0, 0xFC, 0x77, 0xF1, 0xF0, 0xE0, 0x70, 0x38,
-    0x1D, 0xEF, 0xFF, 0x9F, 0x8F, 0xC7, 0xE3, 0xF1, 0xF8, 0xFC, 0x7E, 0x38,
-    0xFC, 0x7F, 0xFF, 0xFF, 0xFE, 0x77, 0x07, 0x77, 0x77, 0x77, 0x77, 0x77,
-    0x7F, 0xE0, 0xE0, 0x70, 0x38, 0x1C, 0x7E, 0x77, 0x73, 0xF1, 0xF8, 0xFE,
-    0x77, 0x39, 0xDC, 0x6E, 0x38, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xEF, 0x7B,
-    0xFF, 0xFE, 0x39, 0xF8, 0xE7, 0xE3, 0x9F, 0x8E, 0x7E, 0x39, 0xF8, 0xE7,
-    0xE3, 0x9F, 0x8E, 0x70, 0xEF, 0x7F, 0xF8, 0xFC, 0x7E, 0x3F, 0x1F, 0x8F,
-    0xC7, 0xE3, 0xF1, 0xC0, 0x1E, 0x1F, 0xE7, 0x3B, 0x87, 0xE1, 0xF8, 0x7E,
-    0x1D, 0xCE, 0x7F, 0x87, 0x80, 0xEF, 0x3F, 0xEF, 0x3B, 0x87, 0xE1, 0xF8,
-    0x7E, 0x1F, 0xCE, 0xFF, 0xBB, 0xCE, 0x03, 0x80, 0xE0, 0x38, 0x00, 0x3B,
-    0xBF, 0xFD, 0xFC, 0x7E, 0x3F, 0x1F, 0x8F, 0xEF, 0x7F, 0x9D, 0xC0, 0xE0,
-    0x70, 0x38, 0x1C, 0xEF, 0xFF, 0x38, 0xE3, 0x8E, 0x38, 0xE3, 0x80, 0x3E,
-    0x3F, 0xB8, 0xFC, 0x0F, 0xC3, 0xFC, 0x3F, 0xC7, 0xFF, 0x1F, 0x00, 0x73,
-    0xBF, 0xF7, 0x39, 0xCE, 0x73, 0x9E, 0x70, 0xE3, 0xF1, 0xF8, 0xFC, 0x7E,
-    0x3F, 0x1F, 0x8F, 0xC7, 0xFF, 0xBD, 0xC0, 0xE1, 0x98, 0x67, 0x39, 0xCC,
-    0x33, 0x0D, 0xC3, 0xE0, 0x78, 0x1E, 0x07, 0x00, 0xE3, 0x1D, 0x9E, 0x66,
-    0x79, 0x99, 0xE6, 0x77, 0xB8, 0xD2, 0xC3, 0xCF, 0x0F, 0x3C, 0x3C, 0xF0,
-    0x73, 0x80, 0x73, 0x9C, 0xE3, 0xF0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0xFC,
-    0x73, 0x9C, 0xE0, 0xE1, 0xD8, 0x67, 0x39, 0xCE, 0x33, 0x0E, 0xC3, 0xE0,
-    0x78, 0x1E, 0x03, 0x00, 0xC0, 0x70, 0x38, 0x0E, 0x00, 0xFE, 0xFE, 0x0E,
-    0x1C, 0x38, 0x38, 0x70, 0xE0, 0xFF, 0xFF, 0x37, 0x66, 0x66, 0x6E, 0xE6,
-    0x66, 0x66, 0x67, 0x30, 0xFF, 0xFF, 0x80, 0xCE, 0x66, 0x66, 0x67, 0x76,
-    0x66, 0x66, 0x6E, 0xC0, 0x71, 0x8E};
-
-const GFXglyph FreeSansBold9pt7bGlyphs[] PROGMEM = {
-    {0, 0, 0, 5, 0, 1},        // 0x20 ' '
-    {0, 3, 13, 6, 2, -12},     // 0x21 '!'
-    {5, 7, 5, 9, 1, -12},      // 0x22 '"'
-    {10, 10, 12, 10, 0, -11},  // 0x23 '#'
-    {25, 9, 15, 10, 1, -13},   // 0x24 '$'
-    {42, 16, 13, 16, 0, -12},  // 0x25 '%'
-    {68, 12, 13, 13, 1, -12},  // 0x26 '&'
-    {88, 3, 5, 5, 1, -12},     // 0x27 '''
-    {90, 6, 17, 6, 1, -12},    // 0x28 '('
-    {103, 6, 17, 6, 0, -12},   // 0x29 ')'
-    {116, 5, 6, 7, 1, -12},    // 0x2A '*'
-    {120, 7, 8, 11, 2, -7},    // 0x2B '+'
-    {127, 3, 5, 4, 1, -1},     // 0x2C ','
-    {129, 5, 2, 6, 0, -5},     // 0x2D '-'
-    {131, 3, 2, 4, 1, -1},     // 0x2E '.'
-    {132, 5, 13, 5, 0, -12},   // 0x2F '/'
-    {141, 9, 13, 10, 1, -12},  // 0x30 '0'
-    {156, 5, 13, 10, 2, -12},  // 0x31 '1'
-    {165, 9, 13, 10, 1, -12},  // 0x32 '2'
-    {180, 8, 13, 10, 1, -12},  // 0x33 '3'
-    {193, 8, 13, 10, 2, -12},  // 0x34 '4'
-    {206, 9, 13, 10, 1, -12},  // 0x35 '5'
-    {221, 9, 13, 10, 1, -12},  // 0x36 '6'
-    {236, 9, 13, 10, 0, -12},  // 0x37 '7'
-    {251, 10, 13, 10, 0, -12}, // 0x38 '8'
-    {268, 9, 13, 10, 1, -12},  // 0x39 '9'
-    {283, 3, 9, 4, 1, -8},     // 0x3A ':'
-    {287, 3, 12, 4, 1, -8},    // 0x3B ';'
-    {292, 9, 9, 11, 1, -8},    // 0x3C '<'
-    {303, 9, 6, 11, 1, -6},    // 0x3D '='
-    {310, 9, 9, 11, 1, -8},    // 0x3E '>'
-    {321, 9, 13, 11, 1, -12},  // 0x3F '?'
-    {336, 16, 15, 18, 0, -12}, // 0x40 '@'
-    {366, 12, 13, 13, 0, -12}, // 0x41 'A'
-    {386, 11, 13, 13, 1, -12}, // 0x42 'B'
-    {404, 12, 13, 13, 1, -12}, // 0x43 'C'
-    {424, 12, 13, 13, 1, -12}, // 0x44 'D'
-    {444, 9, 13, 12, 1, -12},  // 0x45 'E'
-    {459, 9, 13, 11, 1, -12},  // 0x46 'F'
-    {474, 11, 13, 14, 1, -12}, // 0x47 'G'
-    {492, 11, 13, 13, 1, -12}, // 0x48 'H'
-    {510, 3, 13, 6, 1, -12},   // 0x49 'I'
-    {515, 8, 13, 10, 1, -12},  // 0x4A 'J'
-    {528, 12, 13, 13, 1, -12}, // 0x4B 'K'
-    {548, 8, 13, 11, 1, -12},  // 0x4C 'L'
-    {561, 14, 13, 16, 1, -12}, // 0x4D 'M'
-    {584, 11, 13, 14, 1, -12}, // 0x4E 'N'
-    {602, 13, 13, 14, 1, -12}, // 0x4F 'O'
-    {624, 11, 13, 12, 1, -12}, // 0x50 'P'
-    {642, 13, 14, 14, 1, -12}, // 0x51 'Q'
-    {665, 12, 13, 13, 1, -12}, // 0x52 'R'
-    {685, 11, 13, 12, 1, -12}, // 0x53 'S'
-    {703, 9, 13, 12, 2, -12},  // 0x54 'T'
-    {718, 11, 13, 13, 1, -12}, // 0x55 'U'
-    {736, 12, 13, 12, 0, -12}, // 0x56 'V'
-    {756, 17, 13, 17, 0, -12}, // 0x57 'W'
-    {784, 12, 13, 12, 0, -12}, // 0x58 'X'
-    {804, 11, 13, 12, 1, -12}, // 0x59 'Y'
-    {822, 9, 13, 11, 1, -12},  // 0x5A 'Z'
-    {837, 4, 17, 6, 1, -12},   // 0x5B '['
-    {846, 5, 13, 5, 0, -12},   // 0x5C '\'
-    {855, 4, 17, 6, 0, -12},   // 0x5D ']'
-    {864, 8, 8, 11, 1, -12},   // 0x5E '^'
-    {872, 10, 1, 10, 0, 4},    // 0x5F '_'
-    {874, 3, 2, 5, 0, -12},    // 0x60 '`'
-    {875, 10, 10, 10, 1, -9},  // 0x61 'a'
-    {888, 10, 13, 11, 1, -12}, // 0x62 'b'
-    {905, 9, 10, 10, 1, -9},   // 0x63 'c'
-    {917, 9, 13, 11, 1, -12},  // 0x64 'd'
-    {932, 9, 10, 10, 1, -9},   // 0x65 'e'
-    {944, 5, 13, 6, 1, -12},   // 0x66 'f'
-    {953, 9, 14, 11, 1, -9},   // 0x67 'g'
-    {969, 9, 13, 11, 1, -12},  // 0x68 'h'
-    {984, 3, 13, 5, 1, -12},   // 0x69 'i'
-    {989, 4, 17, 5, 0, -12},   // 0x6A 'j'
-    {998, 9, 13, 10, 1, -12},  // 0x6B 'k'
-    {1013, 3, 13, 5, 1, -12},  // 0x6C 'l'
-    {1018, 14, 10, 16, 1, -9}, // 0x6D 'm'
-    {1036, 9, 10, 11, 1, -9},  // 0x6E 'n'
-    {1048, 10, 10, 11, 1, -9}, // 0x6F 'o'
-    {1061, 10, 14, 11, 1, -9}, // 0x70 'p'
-    {1079, 9, 14, 11, 1, -9},  // 0x71 'q'
-    {1095, 6, 10, 7, 1, -9},   // 0x72 'r'
-    {1103, 9, 10, 10, 1, -9},  // 0x73 's'
-    {1115, 5, 12, 6, 1, -11},  // 0x74 't'
-    {1123, 9, 10, 11, 1, -9},  // 0x75 'u'
-    {1135, 10, 10, 10, 0, -9}, // 0x76 'v'
-    {1148, 14, 10, 14, 0, -9}, // 0x77 'w'
-    {1166, 10, 10, 10, 0, -9}, // 0x78 'x'
-    {1179, 10, 14, 10, 0, -9}, // 0x79 'y'
-    {1197, 8, 10, 9, 1, -9},   // 0x7A 'z'
-    {1207, 4, 17, 7, 1, -12},  // 0x7B '{'
-    {1216, 1, 17, 5, 2, -12},  // 0x7C '|'
-    {1219, 4, 17, 7, 2, -12},  // 0x7D '}'
-    {1228, 8, 2, 9, 0, -4}};   // 0x7E '~'
-
-const GFXfont FreeSansBold9pt7b PROGMEM = {(uint8_t *)FreeSansBold9pt7bBitmaps,
-                                           (GFXglyph *)FreeSansBold9pt7bGlyphs,
-                                           0x20, 0x7E, 22};
-
-// Approx. 1902 bytes

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott