#include <iostream>
static unsigned char font5x7[] = {
0x00, 0x00, 0x00, 0x00, 0x00, // 0x00 (nul)
0x3E, 0x5B, 0x4F, 0x5B, 0x3E, // 0x01 (soh)
0x3E, 0x6B, 0x4F, 0x6B, 0x3E, // 0x02 (stx)
0x1C, 0x3E, 0x7C, 0x3E, 0x1C, // 0x03 (etx)
0x18, 0x3C, 0x7E, 0x3C, 0x18, // 0x04 (eot)
0x1C, 0x57, 0x7D, 0x57, 0x1C, // 0x05 (enq)
0x1C, 0x5E, 0x7F, 0x5E, 0x1C, // 0x06 (ack)
0x00, 0x18, 0x3C, 0x18, 0x00, // 0x07 (bel)
0xFF, 0xE7, 0xC3, 0xE7, 0xFF, // 0x08 (bs)
0x00, 0x18, 0x24, 0x18, 0x00, // 0x09 (tab)
0xFF, 0xE7, 0xDB, 0xE7, 0xFF, // 0x0A (lf)
0x30, 0x48, 0x3A, 0x06, 0x0E, // 0x0B (vt)
0x26, 0x29, 0x79, 0x29, 0x26, // 0x0C (np)
0x40, 0x7F, 0x05, 0x05, 0x07, // 0x0D (cr)
0x40, 0x7F, 0x05, 0x25, 0x3F, // 0x0E (so)
0x5A, 0x3C, 0xE7, 0x3C, 0x5A, // 0x0F (si)
0x7F, 0x3E, 0x1C, 0x1C, 0x08, // 0x10 (dle)
0x08, 0x1C, 0x1C, 0x3E, 0x7F, // 0x11 (dc1)
0x14, 0x22, 0x7F, 0x22, 0x14, // 0x12 (dc2)
0x5F, 0x5F, 0x00, 0x5F, 0x5F, // 0x13 (dc3)
0x06, 0x09, 0x7F, 0x01, 0x7F, // 0x14 (dc4)
0x00, 0x66, 0x89, 0x95, 0x6A, // 0x15 (nak)
0x60, 0x60, 0x60, 0x60, 0x60, // 0x16 (syn)
0x94, 0xA2, 0xFF, 0xA2, 0x94, // 0x17 (etb)
0x08, 0x04, 0x7E, 0x04, 0x08, // 0x18 (can)
0x10, 0x20, 0x7E, 0x20, 0x10, // 0x19 (em)
0x08, 0x08, 0x2A, 0x1C, 0x08, // 0x1A (eof)
0x08, 0x1C, 0x2A, 0x08, 0x08, // 0x1B (esc)
0x1E, 0x10, 0x10, 0x10, 0x10, // 0x1C (fs)
0x0C, 0x1E, 0x0C, 0x1E, 0x0C, // 0x1D (gs)
0x30, 0x38, 0x3E, 0x38, 0x30, // 0x1E (rs)
0x06, 0x0E, 0x3E, 0x0E, 0x06, // 0x1F (us)
0x00, 0x00, 0x00, 0x00, 0x00, // 0x20
0x00, 0x00, 0x5F, 0x00, 0x00, // 0x21 !
0x00, 0x07, 0x00, 0x07, 0x00, // 0x22 "
0x14, 0x7F, 0x14, 0x7F, 0x14, // 0x23 #
0x24, 0x2A, 0x7F, 0x2A, 0x12, // 0x24 $
0x23, 0x13, 0x08, 0x64, 0x62, // 0x25 %
0x36, 0x49, 0x56, 0x20, 0x50, // 0x26 &
0x00, 0x08, 0x07, 0x03, 0x00, // 0x27 '
0x00, 0x1C, 0x22, 0x41, 0x00, // 0x28 (
0x00, 0x41, 0x22, 0x1C, 0x00, // 0x29 )
0x2A, 0x1C, 0x7F, 0x1C, 0x2A, // 0x2A *
0x08, 0x08, 0x3E, 0x08, 0x08, // 0x2B +
0x00, 0x80, 0x70, 0x30, 0x00, // 0x2C ,
0x08, 0x08, 0x08, 0x08, 0x08, // 0x2D -
0x00, 0x00, 0x60, 0x60, 0x00, // 0x2E .
0x20, 0x10, 0x08, 0x04, 0x02, // 0x2F /
0x3E, 0x51, 0x49, 0x45, 0x3E, // 0x30 0
0x00, 0x42, 0x7F, 0x40, 0x00, // 0x31 1
0x72, 0x49, 0x49, 0x49, 0x46, // 0x32 2
0x21, 0x41, 0x49, 0x4D, 0x33, // 0x33 3
0x18, 0x14, 0x12, 0x7F, 0x10, // 0x34 4
0x27, 0x45, 0x45, 0x45, 0x39, // 0x35 5
0x3C, 0x4A, 0x49, 0x49, 0x31, // 0x36 6
0x41, 0x21, 0x11, 0x09, 0x07, // 0x37 7
0x36, 0x49, 0x49, 0x49, 0x36, // 0x38 8
0x46, 0x49, 0x49, 0x29, 0x1E, // 0x39 9
0x00, 0x00, 0x14, 0x00, 0x00, // 0x3A :
0x00, 0x40, 0x34, 0x00, 0x00, // 0x3B ;
0x00, 0x08, 0x14, 0x22, 0x41, // 0x3C <
0x14, 0x14, 0x14, 0x14, 0x14, // 0x3D =
0x00, 0x41, 0x22, 0x14, 0x08, // 0x3E >
0x02, 0x01, 0x59, 0x09, 0x06, // 0x3F ?
0x3E, 0x41, 0x5D, 0x59, 0x4E, // 0x40 @
0x7C, 0x12, 0x11, 0x12, 0x7C, // 0x41 A
0x7F, 0x49, 0x49, 0x49, 0x36, // 0x42 B
0x3E, 0x41, 0x41, 0x41, 0x22, // 0x43 C
0x7F, 0x41, 0x41, 0x41, 0x3E, // 0x44 D
0x7F, 0x49, 0x49, 0x49, 0x41, // 0x45 E
0x7F, 0x09, 0x09, 0x09, 0x01, // 0x46 F
0x3E, 0x41, 0x41, 0x51, 0x73, // 0x47 G
0x7F, 0x08, 0x08, 0x08, 0x7F, // 0x48 H
0x00, 0x41, 0x7F, 0x41, 0x00, // 0x49 I
0x20, 0x40, 0x41, 0x3F, 0x01, // 0x4A J
0x7F, 0x08, 0x14, 0x22, 0x41, // 0x4B K
0x7F, 0x40, 0x40, 0x40, 0x40, // 0x4C L
0x7F, 0x02, 0x1C, 0x02, 0x7F, // 0x4D M
0x7F, 0x04, 0x08, 0x10, 0x7F, // 0x4E N
0x3E, 0x41, 0x41, 0x41, 0x3E, // 0x4F O
0x7F, 0x09, 0x09, 0x09, 0x06, // 0x50 P
0x3E, 0x41, 0x51, 0x21, 0x5E, // 0x51 Q
0x7F, 0x09, 0x19, 0x29, 0x46, // 0x52 R
0x26, 0x49, 0x49, 0x49, 0x32, // 0x53 S
0x03, 0x01, 0x7F, 0x01, 0x03, // 0x54 T
0x3F, 0x40, 0x40, 0x40, 0x3F, // 0x55 U
0x1F, 0x20, 0x40, 0x20, 0x1F, // 0x56 V
0x3F, 0x40, 0x38, 0x40, 0x3F, // 0x57 W
0x63, 0x14, 0x08, 0x14, 0x63, // 0x58 X
0x03, 0x04, 0x78, 0x04, 0x03, // 0x59 Y
0x61, 0x59, 0x49, 0x4D, 0x43, // 0x5A Z
0x00, 0x7F, 0x41, 0x41, 0x41, // 0x5B [
0x02, 0x04, 0x08, 0x10, 0x20, // 0x5C backslash
0x00, 0x41, 0x41, 0x41, 0x7F, // 0x5D ]
0x04, 0x02, 0x01, 0x02, 0x04, // 0x5E ^
0x40, 0x40, 0x40, 0x40, 0x40, // 0x5F _
0x00, 0x03, 0x07, 0x08, 0x00, // 0x60 `
0x20, 0x54, 0x54, 0x78, 0x40, // 0x61 a
0x7F, 0x28, 0x44, 0x44, 0x38, // 0x62 b
0x38, 0x44, 0x44, 0x44, 0x28, // 0x63 c
0x38, 0x44, 0x44, 0x28, 0x7F, // 0x64 d
0x38, 0x54, 0x54, 0x54, 0x18, // 0x65 e
0x00, 0x08, 0x7E, 0x09, 0x02, // 0x66 f
0x18, 0xA4, 0xA4, 0x9C, 0x78, // 0x67 g
0x7F, 0x08, 0x04, 0x04, 0x78, // 0x68 h
0x00, 0x44, 0x7D, 0x40, 0x00, // 0x69 i
0x20, 0x40, 0x40, 0x3D, 0x00, // 0x6A j
0x7F, 0x10, 0x28, 0x44, 0x00, // 0x6B k
0x00, 0x41, 0x7F, 0x40, 0x00, // 0x6C l
0x7C, 0x04, 0x78, 0x04, 0x78, // 0x6D m
0x7C, 0x08, 0x04, 0x04, 0x78, // 0x6E n
0x38, 0x44, 0x44, 0x44, 0x38, // 0x6F o
0xFC, 0x18, 0x24, 0x24, 0x18, // 0x70 p
0x18, 0x24, 0x24, 0x18, 0xFC, // 0x71 q
0x7C, 0x08, 0x04, 0x04, 0x08, // 0x72 r
0x48, 0x54, 0x54, 0x54, 0x24, // 0x73 s
0x04, 0x04, 0x3F, 0x44, 0x24, // 0x74 t
0x3C, 0x40, 0x40, 0x20, 0x7C, // 0x75 u
0x1C, 0x20, 0x40, 0x20, 0x1C, // 0x76 v
0x3C, 0x40, 0x30, 0x40, 0x3C, // 0x77 w
0x44, 0x28, 0x10, 0x28, 0x44, // 0x78 x
0x4C, 0x90, 0x90, 0x90, 0x7C, // 0x79 y
0x44, 0x64, 0x54, 0x4C, 0x44, // 0x7A z
0x00, 0x08, 0x36, 0x41, 0x00, // 0x7B {
0x00, 0x00, 0x77, 0x00, 0x00, // 0x7C |
0x00, 0x41, 0x36, 0x08, 0x00, // 0x7D }
0x02, 0x01, 0x02, 0x04, 0x02, // 0x7E ~
0x3C, 0x26, 0x23, 0x26, 0x3C, // 0x7F
0x1E, 0xA1, 0xA1, 0x61, 0x12, // 0x80
0x3A, 0x40, 0x40, 0x20, 0x7A, // 0x81
0x38, 0x54, 0x54, 0x55, 0x59, // 0x82
0x21, 0x55, 0x55, 0x79, 0x41, // 0x83
0x22, 0x54, 0x54, 0x78, 0x42, // 0x84
0x21, 0x55, 0x54, 0x78, 0x40, // 0x85
0x20, 0x54, 0x55, 0x79, 0x40, // 0x86
0x0C, 0x1E, 0x52, 0x72, 0x12, // 0x87
0x39, 0x55, 0x55, 0x55, 0x59, // 0x88
0x39, 0x54, 0x54, 0x54, 0x59, // 0x89
0x39, 0x55, 0x54, 0x54, 0x58, // 0x8A
0x00, 0x00, 0x45, 0x7C, 0x41, // 0x8B
0x00, 0x02, 0x45, 0x7D, 0x42, // 0x8C
0x00, 0x01, 0x45, 0x7C, 0x40, // 0x8D
0x7D, 0x12, 0x11, 0x12, 0x7D, // 0x8E
0xF0, 0x28, 0x25, 0x28, 0xF0, // 0x8F
0x7C, 0x54, 0x55, 0x45, 0x00, // 0x90
0x20, 0x54, 0x54, 0x7C, 0x54, // 0x91
0x7C, 0x0A, 0x09, 0x7F, 0x49, // 0x92
0x32, 0x49, 0x49, 0x49, 0x32, // 0x93
0x3A, 0x44, 0x44, 0x44, 0x3A, // 0x94
0x32, 0x4A, 0x48, 0x48, 0x30, // 0x95
0x3A, 0x41, 0x41, 0x21, 0x7A, // 0x96
0x3A, 0x42, 0x40, 0x20, 0x78, // 0x97
0x00, 0x9D, 0xA0, 0xA0, 0x7D, // 0x98
0x3D, 0x42, 0x42, 0x42, 0x3D, // 0x99
0x3D, 0x40, 0x40, 0x40, 0x3D, // 0x9A
0x3C, 0x24, 0xFF, 0x24, 0x24, // 0x9B
0x48, 0x7E, 0x49, 0x43, 0x66, // 0x9C
0x2B, 0x2F, 0xFC, 0x2F, 0x2B, // 0x9D
0xFF, 0x09, 0x29, 0xF6, 0x20, // 0x9E
0xC0, 0x88, 0x7E, 0x09, 0x03, // 0x9F
0x20, 0x54, 0x54, 0x79, 0x41, // 0xA0
0x00, 0x00, 0x44, 0x7D, 0x41, // 0xA1
0x30, 0x48, 0x48, 0x4A, 0x32, // 0xA2
0x38, 0x40, 0x40, 0x22, 0x7A, // 0xA3
0x00, 0x7A, 0x0A, 0x0A, 0x72, // 0xA4
0x7D, 0x0D, 0x19, 0x31, 0x7D, // 0xA5
0x26, 0x29, 0x29, 0x2F, 0x28, // 0xA6
0x26, 0x29, 0x29, 0x29, 0x26, // 0xA7
0x30, 0x48, 0x4D, 0x40, 0x20, // 0xA8
0x38, 0x08, 0x08, 0x08, 0x08, // 0xA9
0x08, 0x08, 0x08, 0x08, 0x38, // 0xAA
0x2F, 0x10, 0xC8, 0xAC, 0xBA, // 0xAB
0x2F, 0x10, 0x28, 0x34, 0xFA, // 0xAC
0x00, 0x00, 0x7B, 0x00, 0x00, // 0xAD
0x08, 0x14, 0x2A, 0x14, 0x22, // 0xAE
0x22, 0x14, 0x2A, 0x14, 0x08, // 0xAF
0x55, 0x00, 0x55, 0x00, 0x55, // 0xB0
0xAA, 0x55, 0xAA, 0x55, 0xAA, // 0xB1
0xFF, 0x55, 0xFF, 0x55, 0xFF, // 0xB2
0x00, 0x00, 0x00, 0xFF, 0x00, // 0xB3
0x10, 0x10, 0x10, 0xFF, 0x00, // 0xB4
0x14, 0x14, 0x14, 0xFF, 0x00, // 0xB5
0x10, 0x10, 0xFF, 0x00, 0xFF, // 0xB6
0x10, 0x10, 0xF0, 0x10, 0xF0, // 0xB7
0x14, 0x14, 0x14, 0xFC, 0x00, // 0xB8
0x14, 0x14, 0xF7, 0x00, 0xFF, // 0xB9
0x00, 0x00, 0xFF, 0x00, 0xFF, // 0xBA
0x14, 0x14, 0xF4, 0x04, 0xFC, // 0xBB
0x14, 0x14, 0x17, 0x10, 0x1F, // 0xBC
0x10, 0x10, 0x1F, 0x10, 0x1F, // 0xBD
0x14, 0x14, 0x14, 0x1F, 0x00, // 0xBE
0x10, 0x10, 0x10, 0xF0, 0x00, // 0xBF
0x00, 0x00, 0x00, 0x1F, 0x10, // 0xC0
0x10, 0x10, 0x10, 0x1F, 0x10, // 0xC1
0x10, 0x10, 0x10, 0xF0, 0x10, // 0xC2
0x00, 0x00, 0x00, 0xFF, 0x10, // 0xC3
0x10, 0x10, 0x10, 0x10, 0x10, // 0xC4
0x10, 0x10, 0x10, 0xFF, 0x10, // 0xC5
0x00, 0x00, 0x00, 0xFF, 0x14, // 0xC6
0x00, 0x00, 0xFF, 0x00, 0xFF, // 0xC7
0x00, 0x00, 0x1F, 0x10, 0x17, // 0xC8
0x00, 0x00, 0xFC, 0x04, 0xF4, // 0xC9
0x14, 0x14, 0x17, 0x10, 0x17, // 0xCA
0x14, 0x14, 0xF4, 0x04, 0xF4, // 0xCB
0x00, 0x00, 0xFF, 0x00, 0xF7, // 0xCC
0x14, 0x14, 0x14, 0x14, 0x14, // 0xCD
0x14, 0x14, 0xF7, 0x00, 0xF7, // 0xCE
0x14, 0x14, 0x14, 0x17, 0x14, // 0xCF
0x10, 0x10, 0x1F, 0x10, 0x1F, // 0xD0
0x14, 0x14, 0x14, 0xF4, 0x14, // 0xD1
0x10, 0x10, 0xF0, 0x10, 0xF0, // 0xD2
0x00, 0x00, 0x1F, 0x10, 0x1F, // 0xD3
0x00, 0x00, 0x00, 0x1F, 0x14, // 0xD4
0x00, 0x00, 0x00, 0xFC, 0x14, // 0xD5
0x00, 0x00, 0xF0, 0x10, 0xF0, // 0xD6
0x10, 0x10, 0xFF, 0x10, 0xFF, // 0xD7
0x14, 0x14, 0x14, 0xFF, 0x14, // 0xD8
0x10, 0x10, 0x10, 0x1F, 0x00, // 0xD9
0x00, 0x00, 0x00, 0xF0, 0x10, // 0xDA
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 0xDB
0xF0, 0xF0, 0xF0, 0xF0, 0xF0, // 0xDC
0xFF, 0xFF, 0xFF, 0x00, 0x00, // 0xDD
0x00, 0x00, 0x00, 0xFF, 0xFF, // 0xDE
0x0F, 0x0F, 0x0F, 0x0F, 0x0F, // 0xDF
0x38, 0x44, 0x44, 0x38, 0x44, // 0xE0
0xFC, 0x4A, 0x4A, 0x4A, 0x34, // 0xE1
0x7E, 0x02, 0x02, 0x06, 0x06, // 0xE2
0x02, 0x7E, 0x02, 0x7E, 0x02, // 0xE3
0x63, 0x55, 0x49, 0x41, 0x63, // 0xE4
0x38, 0x44, 0x44, 0x3C, 0x04, // 0xE5
0x40, 0x7E, 0x20, 0x1E, 0x20, // 0xE6
0x06, 0x02, 0x7E, 0x02, 0x02, // 0xE7
0x99, 0xA5, 0xE7, 0xA5, 0x99, // 0xE8
0x1C, 0x2A, 0x49, 0x2A, 0x1C, // 0xE9
0x4C, 0x72, 0x01, 0x72, 0x4C, // 0xEA
0x30, 0x4A, 0x4D, 0x4D, 0x30, // 0xEB
0x30, 0x48, 0x78, 0x48, 0x30, // 0xEC
0xBC, 0x62, 0x5A, 0x46, 0x3D, // 0xED
0x3E, 0x49, 0x49, 0x49, 0x00, // 0xEE
0x7E, 0x01, 0x01, 0x01, 0x7E, // 0xEF
0x2A, 0x2A, 0x2A, 0x2A, 0x2A, // 0xF0
0x44, 0x44, 0x5F, 0x44, 0x44, // 0xF1
0x40, 0x51, 0x4A, 0x44, 0x40, // 0xF2
0x40, 0x44, 0x4A, 0x51, 0x40, // 0xF3
0x00, 0x00, 0xFF, 0x01, 0x03, // 0xF4
0xE0, 0x80, 0xFF, 0x00, 0x00, // 0xF5
0x08, 0x08, 0x6B, 0x6B, 0x08, // 0xF6
0x36, 0x12, 0x36, 0x24, 0x36, // 0xF7
0x06, 0x0F, 0x09, 0x0F, 0x06, // 0xF8
0x00, 0x00, 0x18, 0x18, 0x00, // 0xF9
0x00, 0x00, 0x10, 0x10, 0x00, // 0xFA
0x30, 0x40, 0xFF, 0x01, 0x01, // 0xFB
0x00, 0x1F, 0x01, 0x01, 0x1E, // 0xFC
0x00, 0x19, 0x1D, 0x17, 0x12, // 0xFD
0x00, 0x3C, 0x3C, 0x3C, 0x3C, // 0xFE
0x00, 0x00, 0x00, 0x00, 0x00 // 0xFF
};
int main()
{
char str[] = "Hello World";
// store a pointer to the first character of the string
char * p = str;
// while the pointed character is not a null terminator
while (*p)
{
// store the character, and increase pointer to the next character
char c = *p++;
printf("'%c' = ", c);
// store a pointer to the first byte for this character
unsigned char * p2 = font5x7 + 5 * c;
// print 5 bytes, from p2 to p2+4
for (uint8_t i = 0; i < 5; i++)
{
printf("%02X ", *(p2+i));
}
printf("\n");
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RhdGljIHVuc2lnbmVkIGNoYXIgZm9udDV4N1tdID0gewoJMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8vIDB4MDAgKG51bCkKCTB4M0UsIDB4NUIsIDB4NEYsIDB4NUIsIDB4M0UsICAvLyAweDAxIChzb2gpCgkweDNFLCAweDZCLCAweDRGLCAweDZCLCAweDNFLCAgLy8gMHgwMiAoc3R4KQoJMHgxQywgMHgzRSwgMHg3QywgMHgzRSwgMHgxQywgIC8vIDB4MDMgKGV0eCkKCTB4MTgsIDB4M0MsIDB4N0UsIDB4M0MsIDB4MTgsICAvLyAweDA0IChlb3QpCgkweDFDLCAweDU3LCAweDdELCAweDU3LCAweDFDLCAgLy8gMHgwNSAoZW5xKQoJMHgxQywgMHg1RSwgMHg3RiwgMHg1RSwgMHgxQywgIC8vIDB4MDYgKGFjaykKCTB4MDAsIDB4MTgsIDB4M0MsIDB4MTgsIDB4MDAsICAvLyAweDA3IChiZWwpCgkweEZGLCAweEU3LCAweEMzLCAweEU3LCAweEZGLCAgLy8gMHgwOCAoYnMpCgkweDAwLCAweDE4LCAweDI0LCAweDE4LCAweDAwLCAgLy8gMHgwOSAodGFiKQoJMHhGRiwgMHhFNywgMHhEQiwgMHhFNywgMHhGRiwgIC8vIDB4MEEgKGxmKQoJMHgzMCwgMHg0OCwgMHgzQSwgMHgwNiwgMHgwRSwgIC8vIDB4MEIgKHZ0KQoJMHgyNiwgMHgyOSwgMHg3OSwgMHgyOSwgMHgyNiwgIC8vIDB4MEMgKG5wKQoJMHg0MCwgMHg3RiwgMHgwNSwgMHgwNSwgMHgwNywgIC8vIDB4MEQgKGNyKQoJMHg0MCwgMHg3RiwgMHgwNSwgMHgyNSwgMHgzRiwgIC8vIDB4MEUgKHNvKQoJMHg1QSwgMHgzQywgMHhFNywgMHgzQywgMHg1QSwgIC8vIDB4MEYgKHNpKQoJMHg3RiwgMHgzRSwgMHgxQywgMHgxQywgMHgwOCwgIC8vIDB4MTAgKGRsZSkKCTB4MDgsIDB4MUMsIDB4MUMsIDB4M0UsIDB4N0YsICAvLyAweDExIChkYzEpCgkweDE0LCAweDIyLCAweDdGLCAweDIyLCAweDE0LCAgLy8gMHgxMiAoZGMyKQoJMHg1RiwgMHg1RiwgMHgwMCwgMHg1RiwgMHg1RiwgIC8vIDB4MTMgKGRjMykKCTB4MDYsIDB4MDksIDB4N0YsIDB4MDEsIDB4N0YsICAvLyAweDE0IChkYzQpCgkweDAwLCAweDY2LCAweDg5LCAweDk1LCAweDZBLCAgLy8gMHgxNSAobmFrKQoJMHg2MCwgMHg2MCwgMHg2MCwgMHg2MCwgMHg2MCwgIC8vIDB4MTYgKHN5bikKCTB4OTQsIDB4QTIsIDB4RkYsIDB4QTIsIDB4OTQsICAvLyAweDE3IChldGIpCgkweDA4LCAweDA0LCAweDdFLCAweDA0LCAweDA4LCAgLy8gMHgxOCAoY2FuKQoJMHgxMCwgMHgyMCwgMHg3RSwgMHgyMCwgMHgxMCwgIC8vIDB4MTkgKGVtKQoJMHgwOCwgMHgwOCwgMHgyQSwgMHgxQywgMHgwOCwgIC8vIDB4MUEgKGVvZikKCTB4MDgsIDB4MUMsIDB4MkEsIDB4MDgsIDB4MDgsICAvLyAweDFCIChlc2MpCgkweDFFLCAweDEwLCAweDEwLCAweDEwLCAweDEwLCAgLy8gMHgxQyAoZnMpCgkweDBDLCAweDFFLCAweDBDLCAweDFFLCAweDBDLCAgLy8gMHgxRCAoZ3MpCgkweDMwLCAweDM4LCAweDNFLCAweDM4LCAweDMwLCAgLy8gMHgxRSAocnMpCgkweDA2LCAweDBFLCAweDNFLCAweDBFLCAweDA2LCAgLy8gMHgxRiAodXMpCgkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLy8gMHgyMAoJMHgwMCwgMHgwMCwgMHg1RiwgMHgwMCwgMHgwMCwgIC8vIDB4MjEgIQoJMHgwMCwgMHgwNywgMHgwMCwgMHgwNywgMHgwMCwgIC8vIDB4MjIgIgoJMHgxNCwgMHg3RiwgMHgxNCwgMHg3RiwgMHgxNCwgIC8vIDB4MjMgIwoJMHgyNCwgMHgyQSwgMHg3RiwgMHgyQSwgMHgxMiwgIC8vIDB4MjQgJAoJMHgyMywgMHgxMywgMHgwOCwgMHg2NCwgMHg2MiwgIC8vIDB4MjUgJQoJMHgzNiwgMHg0OSwgMHg1NiwgMHgyMCwgMHg1MCwgIC8vIDB4MjYgJgoJMHgwMCwgMHgwOCwgMHgwNywgMHgwMywgMHgwMCwgIC8vIDB4MjcgJwoJMHgwMCwgMHgxQywgMHgyMiwgMHg0MSwgMHgwMCwgIC8vIDB4MjggKAoJMHgwMCwgMHg0MSwgMHgyMiwgMHgxQywgMHgwMCwgIC8vIDB4MjkgKQoJMHgyQSwgMHgxQywgMHg3RiwgMHgxQywgMHgyQSwgIC8vIDB4MkEgKgoJMHgwOCwgMHgwOCwgMHgzRSwgMHgwOCwgMHgwOCwgIC8vIDB4MkIgKwoJMHgwMCwgMHg4MCwgMHg3MCwgMHgzMCwgMHgwMCwgIC8vIDB4MkMgLAoJMHgwOCwgMHgwOCwgMHgwOCwgMHgwOCwgMHgwOCwgIC8vIDB4MkQgLQoJMHgwMCwgMHgwMCwgMHg2MCwgMHg2MCwgMHgwMCwgIC8vIDB4MkUgLgoJMHgyMCwgMHgxMCwgMHgwOCwgMHgwNCwgMHgwMiwgIC8vIDB4MkYgLwoJMHgzRSwgMHg1MSwgMHg0OSwgMHg0NSwgMHgzRSwgIC8vIDB4MzAgMAoJMHgwMCwgMHg0MiwgMHg3RiwgMHg0MCwgMHgwMCwgIC8vIDB4MzEgMQoJMHg3MiwgMHg0OSwgMHg0OSwgMHg0OSwgMHg0NiwgIC8vIDB4MzIgMgoJMHgyMSwgMHg0MSwgMHg0OSwgMHg0RCwgMHgzMywgIC8vIDB4MzMgMwoJMHgxOCwgMHgxNCwgMHgxMiwgMHg3RiwgMHgxMCwgIC8vIDB4MzQgNAoJMHgyNywgMHg0NSwgMHg0NSwgMHg0NSwgMHgzOSwgIC8vIDB4MzUgNQoJMHgzQywgMHg0QSwgMHg0OSwgMHg0OSwgMHgzMSwgIC8vIDB4MzYgNgoJMHg0MSwgMHgyMSwgMHgxMSwgMHgwOSwgMHgwNywgIC8vIDB4MzcgNwoJMHgzNiwgMHg0OSwgMHg0OSwgMHg0OSwgMHgzNiwgIC8vIDB4MzggOAoJMHg0NiwgMHg0OSwgMHg0OSwgMHgyOSwgMHgxRSwgIC8vIDB4MzkgOQoJMHgwMCwgMHgwMCwgMHgxNCwgMHgwMCwgMHgwMCwgIC8vIDB4M0EgOgoJMHgwMCwgMHg0MCwgMHgzNCwgMHgwMCwgMHgwMCwgIC8vIDB4M0IgOwoJMHgwMCwgMHgwOCwgMHgxNCwgMHgyMiwgMHg0MSwgIC8vIDB4M0MgPAoJMHgxNCwgMHgxNCwgMHgxNCwgMHgxNCwgMHgxNCwgIC8vIDB4M0QgPQoJMHgwMCwgMHg0MSwgMHgyMiwgMHgxNCwgMHgwOCwgIC8vIDB4M0UgPgoJMHgwMiwgMHgwMSwgMHg1OSwgMHgwOSwgMHgwNiwgIC8vIDB4M0YgPwoJMHgzRSwgMHg0MSwgMHg1RCwgMHg1OSwgMHg0RSwgIC8vIDB4NDAgQAoJMHg3QywgMHgxMiwgMHgxMSwgMHgxMiwgMHg3QywgIC8vIDB4NDEgQQoJMHg3RiwgMHg0OSwgMHg0OSwgMHg0OSwgMHgzNiwgIC8vIDB4NDIgQgoJMHgzRSwgMHg0MSwgMHg0MSwgMHg0MSwgMHgyMiwgIC8vIDB4NDMgQwoJMHg3RiwgMHg0MSwgMHg0MSwgMHg0MSwgMHgzRSwgIC8vIDB4NDQgRAoJMHg3RiwgMHg0OSwgMHg0OSwgMHg0OSwgMHg0MSwgIC8vIDB4NDUgRQoJMHg3RiwgMHgwOSwgMHgwOSwgMHgwOSwgMHgwMSwgIC8vIDB4NDYgRgoJMHgzRSwgMHg0MSwgMHg0MSwgMHg1MSwgMHg3MywgIC8vIDB4NDcgRwoJMHg3RiwgMHgwOCwgMHgwOCwgMHgwOCwgMHg3RiwgIC8vIDB4NDggSAoJMHgwMCwgMHg0MSwgMHg3RiwgMHg0MSwgMHgwMCwgIC8vIDB4NDkgSQoJMHgyMCwgMHg0MCwgMHg0MSwgMHgzRiwgMHgwMSwgIC8vIDB4NEEgSgoJMHg3RiwgMHgwOCwgMHgxNCwgMHgyMiwgMHg0MSwgIC8vIDB4NEIgSwoJMHg3RiwgMHg0MCwgMHg0MCwgMHg0MCwgMHg0MCwgIC8vIDB4NEMgTAoJMHg3RiwgMHgwMiwgMHgxQywgMHgwMiwgMHg3RiwgIC8vIDB4NEQgTQoJMHg3RiwgMHgwNCwgMHgwOCwgMHgxMCwgMHg3RiwgIC8vIDB4NEUgTgoJMHgzRSwgMHg0MSwgMHg0MSwgMHg0MSwgMHgzRSwgIC8vIDB4NEYgTwoJMHg3RiwgMHgwOSwgMHgwOSwgMHgwOSwgMHgwNiwgIC8vIDB4NTAgUAoJMHgzRSwgMHg0MSwgMHg1MSwgMHgyMSwgMHg1RSwgIC8vIDB4NTEgUQoJMHg3RiwgMHgwOSwgMHgxOSwgMHgyOSwgMHg0NiwgIC8vIDB4NTIgUgoJMHgyNiwgMHg0OSwgMHg0OSwgMHg0OSwgMHgzMiwgIC8vIDB4NTMgUwoJMHgwMywgMHgwMSwgMHg3RiwgMHgwMSwgMHgwMywgIC8vIDB4NTQgVAoJMHgzRiwgMHg0MCwgMHg0MCwgMHg0MCwgMHgzRiwgIC8vIDB4NTUgVQoJMHgxRiwgMHgyMCwgMHg0MCwgMHgyMCwgMHgxRiwgIC8vIDB4NTYgVgoJMHgzRiwgMHg0MCwgMHgzOCwgMHg0MCwgMHgzRiwgIC8vIDB4NTcgVwoJMHg2MywgMHgxNCwgMHgwOCwgMHgxNCwgMHg2MywgIC8vIDB4NTggWAoJMHgwMywgMHgwNCwgMHg3OCwgMHgwNCwgMHgwMywgIC8vIDB4NTkgWQoJMHg2MSwgMHg1OSwgMHg0OSwgMHg0RCwgMHg0MywgIC8vIDB4NUEgWgoJMHgwMCwgMHg3RiwgMHg0MSwgMHg0MSwgMHg0MSwgIC8vIDB4NUIgWwoJMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgIC8vIDB4NUMgYmFja3NsYXNoCgkweDAwLCAweDQxLCAweDQxLCAweDQxLCAweDdGLCAgLy8gMHg1RCBdCgkweDA0LCAweDAyLCAweDAxLCAweDAyLCAweDA0LCAgLy8gMHg1RSBeCgkweDQwLCAweDQwLCAweDQwLCAweDQwLCAweDQwLCAgLy8gMHg1RiBfCgkweDAwLCAweDAzLCAweDA3LCAweDA4LCAweDAwLCAgLy8gMHg2MCBgCgkweDIwLCAweDU0LCAweDU0LCAweDc4LCAweDQwLCAgLy8gMHg2MSBhCgkweDdGLCAweDI4LCAweDQ0LCAweDQ0LCAweDM4LCAgLy8gMHg2MiBiCgkweDM4LCAweDQ0LCAweDQ0LCAweDQ0LCAweDI4LCAgLy8gMHg2MyBjCgkweDM4LCAweDQ0LCAweDQ0LCAweDI4LCAweDdGLCAgLy8gMHg2NCBkCgkweDM4LCAweDU0LCAweDU0LCAweDU0LCAweDE4LCAgLy8gMHg2NSBlCgkweDAwLCAweDA4LCAweDdFLCAweDA5LCAweDAyLCAgLy8gMHg2NiBmCgkweDE4LCAweEE0LCAweEE0LCAweDlDLCAweDc4LCAgLy8gMHg2NyBnCgkweDdGLCAweDA4LCAweDA0LCAweDA0LCAweDc4LCAgLy8gMHg2OCBoCgkweDAwLCAweDQ0LCAweDdELCAweDQwLCAweDAwLCAgLy8gMHg2OSBpCgkweDIwLCAweDQwLCAweDQwLCAweDNELCAweDAwLCAgLy8gMHg2QSBqCgkweDdGLCAweDEwLCAweDI4LCAweDQ0LCAweDAwLCAgLy8gMHg2QiBrCgkweDAwLCAweDQxLCAweDdGLCAweDQwLCAweDAwLCAgLy8gMHg2QyBsCgkweDdDLCAweDA0LCAweDc4LCAweDA0LCAweDc4LCAgLy8gMHg2RCBtCgkweDdDLCAweDA4LCAweDA0LCAweDA0LCAweDc4LCAgLy8gMHg2RSBuCgkweDM4LCAweDQ0LCAweDQ0LCAweDQ0LCAweDM4LCAgLy8gMHg2RiBvCgkweEZDLCAweDE4LCAweDI0LCAweDI0LCAweDE4LCAgLy8gMHg3MCBwCgkweDE4LCAweDI0LCAweDI0LCAweDE4LCAweEZDLCAgLy8gMHg3MSBxCgkweDdDLCAweDA4LCAweDA0LCAweDA0LCAweDA4LCAgLy8gMHg3MiByCgkweDQ4LCAweDU0LCAweDU0LCAweDU0LCAweDI0LCAgLy8gMHg3MyBzCgkweDA0LCAweDA0LCAweDNGLCAweDQ0LCAweDI0LCAgLy8gMHg3NCB0CgkweDNDLCAweDQwLCAweDQwLCAweDIwLCAweDdDLCAgLy8gMHg3NSB1CgkweDFDLCAweDIwLCAweDQwLCAweDIwLCAweDFDLCAgLy8gMHg3NiB2CgkweDNDLCAweDQwLCAweDMwLCAweDQwLCAweDNDLCAgLy8gMHg3NyB3CgkweDQ0LCAweDI4LCAweDEwLCAweDI4LCAweDQ0LCAgLy8gMHg3OCB4CgkweDRDLCAweDkwLCAweDkwLCAweDkwLCAweDdDLCAgLy8gMHg3OSB5CgkweDQ0LCAweDY0LCAweDU0LCAweDRDLCAweDQ0LCAgLy8gMHg3QSB6CgkweDAwLCAweDA4LCAweDM2LCAweDQxLCAweDAwLCAgLy8gMHg3QiB7CgkweDAwLCAweDAwLCAweDc3LCAweDAwLCAweDAwLCAgLy8gMHg3QyB8CgkweDAwLCAweDQxLCAweDM2LCAweDA4LCAweDAwLCAgLy8gMHg3RCB9CgkweDAyLCAweDAxLCAweDAyLCAweDA0LCAweDAyLCAgLy8gMHg3RSB+CgkweDNDLCAweDI2LCAweDIzLCAweDI2LCAweDNDLCAgLy8gMHg3RiAKCTB4MUUsIDB4QTEsIDB4QTEsIDB4NjEsIDB4MTIsICAvLyAweDgwIAoJMHgzQSwgMHg0MCwgMHg0MCwgMHgyMCwgMHg3QSwgIC8vIDB4ODEgCgkweDM4LCAweDU0LCAweDU0LCAweDU1LCAweDU5LCAgLy8gMHg4MiAKCTB4MjEsIDB4NTUsIDB4NTUsIDB4NzksIDB4NDEsICAvLyAweDgzIAoJMHgyMiwgMHg1NCwgMHg1NCwgMHg3OCwgMHg0MiwgIC8vIDB4ODQgCgkweDIxLCAweDU1LCAweDU0LCAweDc4LCAweDQwLCAgLy8gMHg4NSAKCTB4MjAsIDB4NTQsIDB4NTUsIDB4NzksIDB4NDAsICAvLyAweDg2IAoJMHgwQywgMHgxRSwgMHg1MiwgMHg3MiwgMHgxMiwgIC8vIDB4ODcgCgkweDM5LCAweDU1LCAweDU1LCAweDU1LCAweDU5LCAgLy8gMHg4OCAKCTB4MzksIDB4NTQsIDB4NTQsIDB4NTQsIDB4NTksICAvLyAweDg5IAoJMHgzOSwgMHg1NSwgMHg1NCwgMHg1NCwgMHg1OCwgIC8vIDB4OEEgCgkweDAwLCAweDAwLCAweDQ1LCAweDdDLCAweDQxLCAgLy8gMHg4QiAKCTB4MDAsIDB4MDIsIDB4NDUsIDB4N0QsIDB4NDIsICAvLyAweDhDIAoJMHgwMCwgMHgwMSwgMHg0NSwgMHg3QywgMHg0MCwgIC8vIDB4OEQgCgkweDdELCAweDEyLCAweDExLCAweDEyLCAweDdELCAgLy8gMHg4RSAKCTB4RjAsIDB4MjgsIDB4MjUsIDB4MjgsIDB4RjAsICAvLyAweDhGIAoJMHg3QywgMHg1NCwgMHg1NSwgMHg0NSwgMHgwMCwgIC8vIDB4OTAgCgkweDIwLCAweDU0LCAweDU0LCAweDdDLCAweDU0LCAgLy8gMHg5MSAKCTB4N0MsIDB4MEEsIDB4MDksIDB4N0YsIDB4NDksICAvLyAweDkyIAoJMHgzMiwgMHg0OSwgMHg0OSwgMHg0OSwgMHgzMiwgIC8vIDB4OTMgCgkweDNBLCAweDQ0LCAweDQ0LCAweDQ0LCAweDNBLCAgLy8gMHg5NCAKCTB4MzIsIDB4NEEsIDB4NDgsIDB4NDgsIDB4MzAsICAvLyAweDk1IAoJMHgzQSwgMHg0MSwgMHg0MSwgMHgyMSwgMHg3QSwgIC8vIDB4OTYgCgkweDNBLCAweDQyLCAweDQwLCAweDIwLCAweDc4LCAgLy8gMHg5NyAKCTB4MDAsIDB4OUQsIDB4QTAsIDB4QTAsIDB4N0QsICAvLyAweDk4IAoJMHgzRCwgMHg0MiwgMHg0MiwgMHg0MiwgMHgzRCwgIC8vIDB4OTkgCgkweDNELCAweDQwLCAweDQwLCAweDQwLCAweDNELCAgLy8gMHg5QSAKCTB4M0MsIDB4MjQsIDB4RkYsIDB4MjQsIDB4MjQsICAvLyAweDlCIAoJMHg0OCwgMHg3RSwgMHg0OSwgMHg0MywgMHg2NiwgIC8vIDB4OUMgCgkweDJCLCAweDJGLCAweEZDLCAweDJGLCAweDJCLCAgLy8gMHg5RCAKCTB4RkYsIDB4MDksIDB4MjksIDB4RjYsIDB4MjAsICAvLyAweDlFIAoJMHhDMCwgMHg4OCwgMHg3RSwgMHgwOSwgMHgwMywgIC8vIDB4OUYgCgkweDIwLCAweDU0LCAweDU0LCAweDc5LCAweDQxLCAgLy8gMHhBMCAKCTB4MDAsIDB4MDAsIDB4NDQsIDB4N0QsIDB4NDEsICAvLyAweEExIAoJMHgzMCwgMHg0OCwgMHg0OCwgMHg0QSwgMHgzMiwgIC8vIDB4QTIgCgkweDM4LCAweDQwLCAweDQwLCAweDIyLCAweDdBLCAgLy8gMHhBMyAKCTB4MDAsIDB4N0EsIDB4MEEsIDB4MEEsIDB4NzIsICAvLyAweEE0IAoJMHg3RCwgMHgwRCwgMHgxOSwgMHgzMSwgMHg3RCwgIC8vIDB4QTUgCgkweDI2LCAweDI5LCAweDI5LCAweDJGLCAweDI4LCAgLy8gMHhBNiAKCTB4MjYsIDB4MjksIDB4MjksIDB4MjksIDB4MjYsICAvLyAweEE3IAoJMHgzMCwgMHg0OCwgMHg0RCwgMHg0MCwgMHgyMCwgIC8vIDB4QTggCgkweDM4LCAweDA4LCAweDA4LCAweDA4LCAweDA4LCAgLy8gMHhBOSAKCTB4MDgsIDB4MDgsIDB4MDgsIDB4MDgsIDB4MzgsICAvLyAweEFBIAoJMHgyRiwgMHgxMCwgMHhDOCwgMHhBQywgMHhCQSwgIC8vIDB4QUIgCgkweDJGLCAweDEwLCAweDI4LCAweDM0LCAweEZBLCAgLy8gMHhBQyAKCTB4MDAsIDB4MDAsIDB4N0IsIDB4MDAsIDB4MDAsICAvLyAweEFEIAoJMHgwOCwgMHgxNCwgMHgyQSwgMHgxNCwgMHgyMiwgIC8vIDB4QUUgCgkweDIyLCAweDE0LCAweDJBLCAweDE0LCAweDA4LCAgLy8gMHhBRiAKCTB4NTUsIDB4MDAsIDB4NTUsIDB4MDAsIDB4NTUsICAvLyAweEIwIAoJMHhBQSwgMHg1NSwgMHhBQSwgMHg1NSwgMHhBQSwgIC8vIDB4QjEgCgkweEZGLCAweDU1LCAweEZGLCAweDU1LCAweEZGLCAgLy8gMHhCMiAKCTB4MDAsIDB4MDAsIDB4MDAsIDB4RkYsIDB4MDAsICAvLyAweEIzIAoJMHgxMCwgMHgxMCwgMHgxMCwgMHhGRiwgMHgwMCwgIC8vIDB4QjQgCgkweDE0LCAweDE0LCAweDE0LCAweEZGLCAweDAwLCAgLy8gMHhCNSAKCTB4MTAsIDB4MTAsIDB4RkYsIDB4MDAsIDB4RkYsICAvLyAweEI2IAoJMHgxMCwgMHgxMCwgMHhGMCwgMHgxMCwgMHhGMCwgIC8vIDB4QjcgCgkweDE0LCAweDE0LCAweDE0LCAweEZDLCAweDAwLCAgLy8gMHhCOCAKCTB4MTQsIDB4MTQsIDB4RjcsIDB4MDAsIDB4RkYsICAvLyAweEI5IAoJMHgwMCwgMHgwMCwgMHhGRiwgMHgwMCwgMHhGRiwgIC8vIDB4QkEgCgkweDE0LCAweDE0LCAweEY0LCAweDA0LCAweEZDLCAgLy8gMHhCQiAKCTB4MTQsIDB4MTQsIDB4MTcsIDB4MTAsIDB4MUYsICAvLyAweEJDIAoJMHgxMCwgMHgxMCwgMHgxRiwgMHgxMCwgMHgxRiwgIC8vIDB4QkQgCgkweDE0LCAweDE0LCAweDE0LCAweDFGLCAweDAwLCAgLy8gMHhCRSAKCTB4MTAsIDB4MTAsIDB4MTAsIDB4RjAsIDB4MDAsICAvLyAweEJGIAoJMHgwMCwgMHgwMCwgMHgwMCwgMHgxRiwgMHgxMCwgIC8vIDB4QzAgCgkweDEwLCAweDEwLCAweDEwLCAweDFGLCAweDEwLCAgLy8gMHhDMSAKCTB4MTAsIDB4MTAsIDB4MTAsIDB4RjAsIDB4MTAsICAvLyAweEMyIAoJMHgwMCwgMHgwMCwgMHgwMCwgMHhGRiwgMHgxMCwgIC8vIDB4QzMgCgkweDEwLCAweDEwLCAweDEwLCAweDEwLCAweDEwLCAgLy8gMHhDNCAKCTB4MTAsIDB4MTAsIDB4MTAsIDB4RkYsIDB4MTAsICAvLyAweEM1IAoJMHgwMCwgMHgwMCwgMHgwMCwgMHhGRiwgMHgxNCwgIC8vIDB4QzYgCgkweDAwLCAweDAwLCAweEZGLCAweDAwLCAweEZGLCAgLy8gMHhDNyAKCTB4MDAsIDB4MDAsIDB4MUYsIDB4MTAsIDB4MTcsICAvLyAweEM4IAoJMHgwMCwgMHgwMCwgMHhGQywgMHgwNCwgMHhGNCwgIC8vIDB4QzkgCgkweDE0LCAweDE0LCAweDE3LCAweDEwLCAweDE3LCAgLy8gMHhDQSAKCTB4MTQsIDB4MTQsIDB4RjQsIDB4MDQsIDB4RjQsICAvLyAweENCIAoJMHgwMCwgMHgwMCwgMHhGRiwgMHgwMCwgMHhGNywgIC8vIDB4Q0MgCgkweDE0LCAweDE0LCAweDE0LCAweDE0LCAweDE0LCAgLy8gMHhDRCAKCTB4MTQsIDB4MTQsIDB4RjcsIDB4MDAsIDB4RjcsICAvLyAweENFIAoJMHgxNCwgMHgxNCwgMHgxNCwgMHgxNywgMHgxNCwgIC8vIDB4Q0YgCgkweDEwLCAweDEwLCAweDFGLCAweDEwLCAweDFGLCAgLy8gMHhEMCAKCTB4MTQsIDB4MTQsIDB4MTQsIDB4RjQsIDB4MTQsICAvLyAweEQxIAoJMHgxMCwgMHgxMCwgMHhGMCwgMHgxMCwgMHhGMCwgIC8vIDB4RDIgCgkweDAwLCAweDAwLCAweDFGLCAweDEwLCAweDFGLCAgLy8gMHhEMyAKCTB4MDAsIDB4MDAsIDB4MDAsIDB4MUYsIDB4MTQsICAvLyAweEQ0IAoJMHgwMCwgMHgwMCwgMHgwMCwgMHhGQywgMHgxNCwgIC8vIDB4RDUgCgkweDAwLCAweDAwLCAweEYwLCAweDEwLCAweEYwLCAgLy8gMHhENiAKCTB4MTAsIDB4MTAsIDB4RkYsIDB4MTAsIDB4RkYsICAvLyAweEQ3IAoJMHgxNCwgMHgxNCwgMHgxNCwgMHhGRiwgMHgxNCwgIC8vIDB4RDggCgkweDEwLCAweDEwLCAweDEwLCAweDFGLCAweDAwLCAgLy8gMHhEOSAKCTB4MDAsIDB4MDAsIDB4MDAsIDB4RjAsIDB4MTAsICAvLyAweERBIAoJMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgIC8vIDB4REIgCgkweEYwLCAweEYwLCAweEYwLCAweEYwLCAweEYwLCAgLy8gMHhEQyAKCTB4RkYsIDB4RkYsIDB4RkYsIDB4MDAsIDB4MDAsICAvLyAweEREIAoJMHgwMCwgMHgwMCwgMHgwMCwgMHhGRiwgMHhGRiwgIC8vIDB4REUgCgkweDBGLCAweDBGLCAweDBGLCAweDBGLCAweDBGLCAgLy8gMHhERiAKCTB4MzgsIDB4NDQsIDB4NDQsIDB4MzgsIDB4NDQsICAvLyAweEUwIAoJMHhGQywgMHg0QSwgMHg0QSwgMHg0QSwgMHgzNCwgIC8vIDB4RTEgCgkweDdFLCAweDAyLCAweDAyLCAweDA2LCAweDA2LCAgLy8gMHhFMiAKCTB4MDIsIDB4N0UsIDB4MDIsIDB4N0UsIDB4MDIsICAvLyAweEUzIAoJMHg2MywgMHg1NSwgMHg0OSwgMHg0MSwgMHg2MywgIC8vIDB4RTQgCgkweDM4LCAweDQ0LCAweDQ0LCAweDNDLCAweDA0LCAgLy8gMHhFNSAKCTB4NDAsIDB4N0UsIDB4MjAsIDB4MUUsIDB4MjAsICAvLyAweEU2IAoJMHgwNiwgMHgwMiwgMHg3RSwgMHgwMiwgMHgwMiwgIC8vIDB4RTcgCgkweDk5LCAweEE1LCAweEU3LCAweEE1LCAweDk5LCAgLy8gMHhFOCAKCTB4MUMsIDB4MkEsIDB4NDksIDB4MkEsIDB4MUMsICAvLyAweEU5IAoJMHg0QywgMHg3MiwgMHgwMSwgMHg3MiwgMHg0QywgIC8vIDB4RUEgCgkweDMwLCAweDRBLCAweDRELCAweDRELCAweDMwLCAgLy8gMHhFQiAKCTB4MzAsIDB4NDgsIDB4NzgsIDB4NDgsIDB4MzAsICAvLyAweEVDIAoJMHhCQywgMHg2MiwgMHg1QSwgMHg0NiwgMHgzRCwgIC8vIDB4RUQgCgkweDNFLCAweDQ5LCAweDQ5LCAweDQ5LCAweDAwLCAgLy8gMHhFRSAKCTB4N0UsIDB4MDEsIDB4MDEsIDB4MDEsIDB4N0UsICAvLyAweEVGIAoJMHgyQSwgMHgyQSwgMHgyQSwgMHgyQSwgMHgyQSwgIC8vIDB4RjAgCgkweDQ0LCAweDQ0LCAweDVGLCAweDQ0LCAweDQ0LCAgLy8gMHhGMSAKCTB4NDAsIDB4NTEsIDB4NEEsIDB4NDQsIDB4NDAsICAvLyAweEYyIAoJMHg0MCwgMHg0NCwgMHg0QSwgMHg1MSwgMHg0MCwgIC8vIDB4RjMgCgkweDAwLCAweDAwLCAweEZGLCAweDAxLCAweDAzLCAgLy8gMHhGNCAKCTB4RTAsIDB4ODAsIDB4RkYsIDB4MDAsIDB4MDAsICAvLyAweEY1IAoJMHgwOCwgMHgwOCwgMHg2QiwgMHg2QiwgMHgwOCwgIC8vIDB4RjYgCgkweDM2LCAweDEyLCAweDM2LCAweDI0LCAweDM2LCAgLy8gMHhGNyAKCTB4MDYsIDB4MEYsIDB4MDksIDB4MEYsIDB4MDYsICAvLyAweEY4IAoJMHgwMCwgMHgwMCwgMHgxOCwgMHgxOCwgMHgwMCwgIC8vIDB4RjkgCgkweDAwLCAweDAwLCAweDEwLCAweDEwLCAweDAwLCAgLy8gMHhGQSAKCTB4MzAsIDB4NDAsIDB4RkYsIDB4MDEsIDB4MDEsICAvLyAweEZCIAoJMHgwMCwgMHgxRiwgMHgwMSwgMHgwMSwgMHgxRSwgIC8vIDB4RkMgCgkweDAwLCAweDE5LCAweDFELCAweDE3LCAweDEyLCAgLy8gMHhGRCAKCTB4MDAsIDB4M0MsIDB4M0MsIDB4M0MsIDB4M0MsICAvLyAweEZFIAoJMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIDB4RkYgCn07CgppbnQgbWFpbigpCnsKCWNoYXIgc3RyW10gPSAiSGVsbG8gV29ybGQiOwoJCgkvLyBzdG9yZSBhIHBvaW50ZXIgdG8gdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgc3RyaW5nCgljaGFyICogcCA9IHN0cjsKCQoJLy8gd2hpbGUgdGhlIHBvaW50ZWQgY2hhcmFjdGVyIGlzIG5vdCBhIG51bGwgdGVybWluYXRvcgoJd2hpbGUgKCpwKQoJewoJCS8vIHN0b3JlIHRoZSBjaGFyYWN0ZXIsIGFuZCBpbmNyZWFzZSBwb2ludGVyIHRvIHRoZSBuZXh0IGNoYXJhY3RlcgoJCWNoYXIgYyA9ICpwKys7CgkJCgkJcHJpbnRmKCInJWMnID0gIiwgYyk7CgoJCS8vIHN0b3JlIGEgcG9pbnRlciB0byB0aGUgZmlyc3QgYnl0ZSBmb3IgdGhpcyBjaGFyYWN0ZXIKCQl1bnNpZ25lZCBjaGFyICogcDIgPSBmb250NXg3ICsgNSAqIGM7CgkJCgkJLy8gcHJpbnQgNSBieXRlcywgZnJvbSBwMiB0byBwMis0CgkJZm9yICh1aW50OF90IGkgPSAwOyBpIDwgNTsgaSsrKQoJCXsKCQkJcHJpbnRmKCIlMDJYICIsICoocDIraSkpOwoJCX0KCQkKCQlwcmludGYoIlxuIik7Cgl9CgkKCXJldHVybiAwOwp9