From 8a512b210322715e26eb06a673fd525174258d54 Mon Sep 17 00:00:00 2001 From: AnBo Date: Sun, 10 Nov 2019 01:21:05 +0100 Subject: [PATCH 01/33] Update README.md On Ubuntu, I run into the problem w.r.t. the Pillow package. Therefore, I suggest hereby a corresponding extension of the README.md. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 81ca274..f5776b3 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ Per default you will only see 'Hello'. To see all messages, press the small but sudo python3 ./led-badge-11x44.py -m 5 :gfx/fablabnbg_logo_44x11.png: -loads a fullscreen still image. Avoid whitespace between colons and name. +loads a fullscreen still image. Avoid whitespace between colons and name. If you receive a message `ImportError: cannot import name '_imaging'`, then try to update the corresponding package: `sudo pip install -U Pillow` sudo python3 ./led-badge-11x44.py "I:HEART2:my:gfx/fablab_logo_16x11.png:fablab:1:" From 5f43f01a87fc93a9439f02b200a60fe8d9ce29a0 Mon Sep 17 00:00:00 2001 From: "Patrick C. F. Ernzer" Date: Tue, 31 Dec 2019 21:53:06 +0100 Subject: [PATCH 02/33] add Fedora dependencies --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 81ca274..6fe0051 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,10 @@ In both configurations, the badge identifies itself on the USB as or sudo apt install python3-usb python3-pil +### Required dependencies on Fedora Systems + + sudo dnf install hidapi python3-hidapi python3-pillow python3-pyusb + ### Required dependencies on Mac Systems sudo easy_install pip From 8abc7655a8031cb7aa13a5f6b64a6c3c6f879182 Mon Sep 17 00:00:00 2001 From: "Patrick C. F. Ernzer" Date: Tue, 31 Dec 2019 22:44:04 +0100 Subject: [PATCH 03/33] add install instructions for udev rule --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 81ca274..b55f443 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,14 @@ In both configurations, the badge identifies itself on the USB as ## Command Line Installation and Usage +### User access to badge on all Linuxes + +The following will install a udev rule allowing anybody read/write +access to the badge via USB. + + sudo cp 99-led-badge-44x11.rules /etc/udev/rules.d/ + sudo udevadm control --reload-rules && sudo udevadm trigger + ### Required dependencies on Debian/Ubuntu Systems sudo pip install pyhidapi From 04ecdad0c704f1e49668c3607c1571977879253d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Weigert?= Date: Tue, 7 Apr 2020 11:16:37 +0200 Subject: [PATCH 04/33] Create test.txt --- test.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 test.txt diff --git a/test.txt b/test.txt new file mode 100644 index 0000000..4cf5aa5 --- /dev/null +++ b/test.txt @@ -0,0 +1 @@ +hallo From 04af0300c34595b060dff44a39c4cbad108f1573 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Weigert?= Date: Tue, 7 Apr 2020 11:17:12 +0200 Subject: [PATCH 05/33] Delete test.txt --- test.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 test.txt diff --git a/test.txt b/test.txt deleted file mode 100644 index 4cf5aa5..0000000 --- a/test.txt +++ /dev/null @@ -1 +0,0 @@ -hallo From f565fa0fc3a87b6d33fe11cec1cd08725108fa1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Weigert?= Date: Fri, 23 Oct 2020 17:25:08 +0200 Subject: [PATCH 06/33] Update README.md --- README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 81ca274..6b8ba9f 100644 --- a/README.md +++ b/README.md @@ -3,10 +3,7 @@ Upload tool for an led name tag with USB-HID interface ![LED Mini Board](photos/green_badge.jpg) -## Warning - -There are many different versions of LED Badges on the market. -This one uses an USB-HID interface, while others use USB-Serial (see references below). +## Hardware The types supported by this project have an array of @@ -21,6 +18,11 @@ In both configurations, the badge identifies itself on the USB as Mfr=1, Product=2, SerialNumber=0 LSicroelectronics LS32 Custm HID +## Warning + +There are many different versions of LED Badges on the market. +This one uses an USB-HID interface, while others use USB-Serial (see references below). + ## Command Line Installation and Usage ### Required dependencies on Debian/Ubuntu Systems From 050cfb2e437b79460dc8ac82872b7727aceacc00 Mon Sep 17 00:00:00 2001 From: Juergen Weigert Date: Wed, 28 Oct 2020 23:38:36 +0100 Subject: [PATCH 07/33] https://github.com/ameisso found an issue (probably on MacOS?) The script keeps crashing when I export PNG from photoshop even if the finder gives me the right size. This is correcting the issue https://github.com/jnweiger/led-name-badge-ls32/pull/20 I am picking the one line important line, that should fix it. --- led-badge-11x44.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/led-badge-11x44.py b/led-badge-11x44.py index 4aaf062..ac66a8f 100755 --- a/led-badge-11x44.py +++ b/led-badge-11x44.py @@ -335,7 +335,7 @@ def bitmap_img(file): for bit in range(8): # [0..7] bit_val = 0 x = 8*col+bit - if x < im.width: + if x < im.width and row < im.height: pixel_color = im.getpixel( (x, row) ) if isinstance(pixel_color, tuple): monochrome_color = sum(pixel_color[:3]) / len(pixel_color[:3]) From e0c1e3d55c52ff6f2e7b76fe1d772427a7531d49 Mon Sep 17 00:00:00 2001 From: Tobias Frost Date: Tue, 21 Jun 2022 16:53:50 +0200 Subject: [PATCH 08/33] Simplify Debian/Ubuntu section. Debian packages should be preferred, or using a venv to avoid messing up users python environment. --- README.md | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 602d1e6..686ed52 100644 --- a/README.md +++ b/README.md @@ -35,13 +35,29 @@ access to the badge via USB. ### Required dependencies on Debian/Ubuntu Systems - sudo pip install pyhidapi - sudo pip install pillow - sudo apt-get install libhidapi-hidraw0 - sudo ln -s /usr/lib/x86_64-linux-gnu/libhidapi-hidraw.so.0 /usr/local/lib/ - or +#### Using Debian/Ubuntu packages (recommended): + sudo apt install python3-usb python3-pil +#### manually using a python virtual environment + +Using a venv will allow to use pip to install dependencies without the danger +that the instaled modules will interfere with the system installed ones. + + sudo apt install python3-venv + python3 -m venv ledtag + source ledtag/bin/activate + pip install pyhidapi pyusb pillow + # this should now work: + # python3 led-badge-11x44.py -m 6 -s 8 "Hello" "World!" + +if the udev rules are installed, you should be able to access the badge without sudo / root privileges. + +To reuse the venv again at a later point: + + source ledtag/bin/activate + python3 led-badge-11x44.py … + ### Required dependencies on Fedora Systems sudo dnf install hidapi python3-hidapi python3-pillow python3-pyusb From 7276eb69d92dc43a9ef10af1a6855249453e5e2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Weigert?= Date: Thu, 29 Jun 2023 23:33:33 +0200 Subject: [PATCH 09/33] Update README.md typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 686ed52..f1b7029 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ access to the badge via USB. #### manually using a python virtual environment Using a venv will allow to use pip to install dependencies without the danger -that the instaled modules will interfere with the system installed ones. +that the installed modules will interfere with the system installed ones. sudo apt install python3-venv python3 -m venv ledtag From 8211cafd394b8f2eedb7ecbbc7ac238258c74c3c Mon Sep 17 00:00:00 2001 From: "Dirk Hillbrecht (laptop)" Date: Tue, 22 Aug 2023 16:35:36 +0200 Subject: [PATCH 10/33] Split data for sending through HID API into appropriate chunks Each chunk must not be larger than 64 bytes, report ID must be prepended to each chunk. --- led-badge-11x44.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/led-badge-11x44.py b/led-badge-11x44.py index ac66a8f..179db19 100755 --- a/led-badge-11x44.py +++ b/led-badge-11x44.py @@ -419,6 +419,7 @@ def header(lengths, speeds, modes, blink, ants, brightness=100): parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter, description='Upload messages or graphics to a 11x44 led badge via USB HID.\nVersion %s from https://github.com/jnweiger/led-badge-ls32\n -- see there for more examples and for updates.' % __version, epilog='Example combining image and text:\n sudo %s "I:HEART2:you"' % sys.argv[0]) parser.add_argument('-t', '--type', default='11x44', help="Type of display: supported values are 12x48 or (default) 11x44. Rename the program to led-badge-12x48, to switch the default.") +parser.add_argument('-H', '--hid', default='0', help="Set to 1 to ensure connect via HID API, program will then not fallback to usb.core library") parser.add_argument('-s', '--speed', default='4', help="Scroll speed (Range 1..8). Up to 8 comma-separated values") parser.add_argument('-B', '--brightness', default='100', help="Brightness for the display in percent: 25, 50, 75, or 100") parser.add_argument('-m', '--mode', default='0', help="Up to 8 mode values: Scroll-left(0) -right(1) -up(2) -down(3); still-centered(4); animation(5); drop-down(6); curtain(7); laser(8); See '--mode-help' for more details.") @@ -453,6 +454,8 @@ if have_pyhidapi: devinfo = pyhidapi.hid_enumerate(0x0416, 0x5020) #dev = pyhidapi.hid_open(0x0416, 0x5020) else: + if args.hid != "0": + sys.exit("HID API access is needed but not initialized. Fix your setup") dev = usb.core.find(idVendor=0x0416, idProduct=0x5020) if have_pyhidapi: @@ -516,7 +519,12 @@ if len(buf) > 8192: sys.exit(1) if have_pyhidapi: - pyhidapi.hid_write(dev, buf) + for i in range(int(len(buf)/64)): + # sendbuf must contain "report ID" as first byte. "0" does the job here. + sendbuf=array('B',[0]) + # Then, put the 64 payload bytes into the buffer + sendbuf.extend(buf[i*64:i*64+64]) + pyhidapi.hid_write(dev,sendbuf) else: for i in range(int(len(buf)/64)): time.sleep(0.1) From 36d9e0ddb044593a1f3c9c414d56005044765016 Mon Sep 17 00:00:00 2001 From: Yann MORERE Date: Sun, 10 Sep 2023 18:12:59 +0200 Subject: [PATCH 11/33] chore: add french accentuated character --- led-badge-11x44.py | 481 +++++++++++++++++++++++++-------------------- 1 file changed, 264 insertions(+), 217 deletions(-) diff --git a/led-badge-11x44.py b/led-badge-11x44.py index ac66a8f..f61c849 100755 --- a/led-badge-11x44.py +++ b/led-badge-11x44.py @@ -52,39 +52,41 @@ import sys, os, re, time, argparse from datetime import datetime from array import array + try: - if sys.version_info[0] < 3: raise Exception("prefer usb.core with python-2.x because of https://github.com/jnweiger/led-badge-ls32/issues/9") - import pyhidapi - pyhidapi.hid_init() - have_pyhidapi = True + if sys.version_info[0] < 3: raise Exception( + "prefer usb.core with python-2.x because of https://github.com/jnweiger/led-badge-ls32/issues/9") + import pyhidapi + + pyhidapi.hid_init() + have_pyhidapi = True except: - have_pyhidapi = False - try: - import usb.core - except: - print("ERROR: Need the pyhidapi or usb.core module.") - if sys.platform == "darwin": - print("""Please try + have_pyhidapi = False + try: + import usb.core + except: + print("ERROR: Need the pyhidapi or usb.core module.") + if sys.platform == "darwin": + print("""Please try pip3 install pyhidapi pip install pyhidapi brew install hidapi""") - elif sys.platform == "linux": - print("""Please try + elif sys.platform == "linux": + print("""Please try sudo pip3 install pyhidapi sudo pip install pyhidapi sudo apt-get install libhidapi-hidraw0 sudo ln -s /usr/lib/x86_64-linux-gnu/libhidapi-hidraw.so.0 /usr/local/lib/ or sudo apt-get install python3-usb""") - else: # windows? - print("""Please with Linux or MacOS or help us implement support for """ + sys.platform) - sys.exit(1) - + else: # windows? + print("""Please with Linux or MacOS or help us implement support for """ + sys.platform) + sys.exit(1) __version = "0.12" font_11x44 = ( - # 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + # 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x66, 0xfc, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc0, 0xc0, 0xc0, 0xc6, 0xc6, 0x7c, 0x00, @@ -201,94 +203,129 @@ font_11x44 = ( 0xc6, 0xc6, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0xc6, 0xc6, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x66, 0x6c, 0x60, + + # "àäòöùüèéêëôöûîïÿç" + 0x00, 0x60, 0x18, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0x76, 0x00, + 0x00, 0x6c, 0x6c, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0x76, 0x00, + 0x00, 0x60, 0x18, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, + 0x00, 0x6c, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, + 0x00, 0x60, 0x18, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, + 0x00, 0x6c, 0x6c, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, + 0x00, 0x60, 0x18, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc6, 0x7c, 0x00, + 0x00, 0x18, 0x60, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc6, 0x7c, 0x00, + 0x00, 0x10, 0x6c, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc6, 0x7c, 0x00, + 0x00, 0x6c, 0x6c, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc6, 0x7c, 0x00, + 0x00, 0x10, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, + 0x00, 0x6c, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, + 0x00, 0x10, 0x6c, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, + 0x00, 0x10, 0x6c, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, + 0x00, 0x6c, 0x6c, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, + 0x00, 0x6c, 0x6c, 0x00, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0xf8, + 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xc6, 0x7c, 0x10, 0x30, + + # "ÀÅÄÉÈÊËÖÔÜÛÙŸ" + 0x60, 0x18, 0x38, 0x6c, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, + 0x10, 0x6c, 0x38, 0x6c, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, + 0x6c, 0x6c, 0x38, 0x6c, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, + 0x18, 0x60, 0xfe, 0x62, 0x68, 0x78, 0x68, 0x62, 0x66, 0xfe, 0x00, + 0x60, 0x18, 0xfe, 0x62, 0x68, 0x78, 0x68, 0x62, 0x66, 0xfe, 0x00, + 0x10, 0x6c, 0xfe, 0x62, 0x68, 0x78, 0x68, 0x62, 0x66, 0xfe, 0x00, + 0x6c, 0x6c, 0xfe, 0x62, 0x68, 0x78, 0x68, 0x62, 0x66, 0xfe, 0x00, + 0x6c, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, # Ö + 0x10, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, # Ô + 0x6c, 0x6c, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, # Ü + 0x10, 0x6c, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, # Û + 0x60, 0x18, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, # Ù + 0x66, 0x66, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x3c, 0x00, # Ÿ ) charmap = u'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + \ u'abcdefghijklmnopqrstuvwxyz' + \ u'0987654321^ !"\0$%&/()=?` °\\}][{' + \ u"@ ~ |<>,;.:-_#'+* " + \ - u"äöüÄÖÜß" + u"äöüÄÖÜß" + \ + u"àäòöùüèéêëôöûîïÿç" + \ + u"ÀÅÄÉÈÊËÖÔÜÛÙŸ" char_offset = {} for i in range(len(charmap)): - char_offset[charmap[i]] = 11 * i - # print(i, charmap[i], char_offset[charmap[i]]) + char_offset[charmap[i]] = 11 * i + # print(i, charmap[i], char_offset[charmap[i]]) - -bitmap_preloaded = [ ([],0) ] +bitmap_preloaded = [([], 0)] bitmaps_preloaded_unused = False bitmap_named = { - 'ball': (array('B', ( - 0b00000000, - 0b00000000, - 0b00111100, - 0b01111110, - 0b11111111, - 0b11111111, - 0b11111111, - 0b11111111, - 0b01111110, - 0b00111100, - 0b00000000 - )), 1, '\x1e'), - 'happy': (array('B', ( - 0b00000000, # 0x00 - 0b00000000, # 0x00 - 0b00111100, # 0x3c - 0b01000010, # 0x42 - 0b10100101, # 0xa5 - 0b10000001, # 0x81 - 0b10100101, # 0xa5 - 0b10011001, # 0x99 - 0b01000010, # 0x42 - 0b00111100, # 0x3c - 0b00000000 # 0x00 - )), 1, '\x1d'), - 'happy2': (array('B', (0x00, 0x08, 0x14, 0x08, 0x01, 0x00, 0x00, 0x61, 0x30, 0x1c, 0x07, + 'ball': (array('B', ( + 0b00000000, + 0b00000000, + 0b00111100, + 0b01111110, + 0b11111111, + 0b11111111, + 0b11111111, + 0b11111111, + 0b01111110, + 0b00111100, + 0b00000000 + )), 1, '\x1e'), + 'happy': (array('B', ( + 0b00000000, # 0x00 + 0b00000000, # 0x00 + 0b00111100, # 0x3c + 0b01000010, # 0x42 + 0b10100101, # 0xa5 + 0b10000001, # 0x81 + 0b10100101, # 0xa5 + 0b10011001, # 0x99 + 0b01000010, # 0x42 + 0b00111100, # 0x3c + 0b00000000 # 0x00 + )), 1, '\x1d'), + 'happy2': (array('B', (0x00, 0x08, 0x14, 0x08, 0x01, 0x00, 0x00, 0x61, 0x30, 0x1c, 0x07, 0x00, 0x20, 0x50, 0x20, 0x00, 0x80, 0x80, 0x86, 0x0c, 0x38, 0xe0)), 2, '\x1c'), - 'heart': (array('B', (0x00, 0x00, 0x6c, 0x92, 0x82, 0x82, 0x44, 0x28, 0x10, 0x00, 0x00)), 1, '\x1b'), - 'HEART': (array('B', (0x00, 0x00, 0x6c, 0xfe, 0xfe, 0xfe, 0x7c, 0x38, 0x10, 0x00, 0x00)), 1, '\x1a'), - 'heart2': (array('B', (0x00, 0x0c, 0x12, 0x21, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, + 'heart': (array('B', (0x00, 0x00, 0x6c, 0x92, 0x82, 0x82, 0x44, 0x28, 0x10, 0x00, 0x00)), 1, '\x1b'), + 'HEART': (array('B', (0x00, 0x00, 0x6c, 0xfe, 0xfe, 0xfe, 0x7c, 0x38, 0x10, 0x00, 0x00)), 1, '\x1a'), + 'heart2': (array('B', (0x00, 0x0c, 0x12, 0x21, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x60, 0x90, 0x08, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00)), 2, '\x19'), - 'HEART2': (array('B', (0x00, 0x0c, 0x1e, 0x3f, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, + 'HEART2': (array('B', (0x00, 0x0c, 0x1e, 0x3f, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x60, 0xf0, 0xf8, 0xf8, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00)), 2, '\x18'), - 'fablab': (array('B', (0x07, 0x0e, 0x1b, 0x03, 0x21, 0x2c, 0x2e, 0x26, 0x14, 0x1c, 0x06, + 'fablab': (array('B', (0x07, 0x0e, 0x1b, 0x03, 0x21, 0x2c, 0x2e, 0x26, 0x14, 0x1c, 0x06, 0x80, 0x60, 0x30, 0x80, 0x88, 0x38, 0xe8, 0xc8, 0x10, 0x30, 0xc0)), 2, '\x17'), - 'bicycle': (array('B', (0x01, 0x02, 0x00, 0x01, 0x07, 0x09, 0x12, 0x12, 0x10, 0x08, 0x07, - 0x00, 0x87, 0x81, 0x5f, 0x22, 0x94, 0x49, 0x5f, 0x49, 0x80, 0x00, - 0x00, 0x80, 0x00, 0x80, 0x70, 0xc8, 0x24, 0xe4, 0x04, 0x88, 0x70)), 3, '\x16'), - 'bicycle_r':(array('B', (0x00, 0x00, 0x00, 0x00, 0x07, 0x09, 0x12, 0x13, 0x10, 0x08, 0x07, - 0x00, 0xf0, 0x40, 0xfd, 0x22, 0x94, 0x49, 0xfd, 0x49, 0x80, 0x00, - 0x40, 0xa0, 0x80, 0x40, 0x70, 0xc8, 0x24, 0x24, 0x04, 0x88, 0x70)), 3, '\x15'), - 'owncloud': (array('B', (0x00, 0x01, 0x02, 0x03, 0x06, 0x0c, 0x1a, 0x13, 0x11, 0x19, 0x0f, - 0x78, 0xcc, 0x87, 0xfc, 0x42, 0x81, 0x81, 0x81, 0x81, 0x43, 0xbd, - 0x00, 0x00, 0x00, 0x80, 0x80, 0xe0, 0x30, 0x10, 0x28, 0x28, 0xd0)), 3, '\x14'), + 'bicycle': (array('B', (0x01, 0x02, 0x00, 0x01, 0x07, 0x09, 0x12, 0x12, 0x10, 0x08, 0x07, + 0x00, 0x87, 0x81, 0x5f, 0x22, 0x94, 0x49, 0x5f, 0x49, 0x80, 0x00, + 0x00, 0x80, 0x00, 0x80, 0x70, 0xc8, 0x24, 0xe4, 0x04, 0x88, 0x70)), 3, '\x16'), + 'bicycle_r': (array('B', (0x00, 0x00, 0x00, 0x00, 0x07, 0x09, 0x12, 0x13, 0x10, 0x08, 0x07, + 0x00, 0xf0, 0x40, 0xfd, 0x22, 0x94, 0x49, 0xfd, 0x49, 0x80, 0x00, + 0x40, 0xa0, 0x80, 0x40, 0x70, 0xc8, 0x24, 0x24, 0x04, 0x88, 0x70)), 3, '\x15'), + 'owncloud': (array('B', (0x00, 0x01, 0x02, 0x03, 0x06, 0x0c, 0x1a, 0x13, 0x11, 0x19, 0x0f, + 0x78, 0xcc, 0x87, 0xfc, 0x42, 0x81, 0x81, 0x81, 0x81, 0x43, 0xbd, + 0x00, 0x00, 0x00, 0x80, 0x80, 0xe0, 0x30, 0x10, 0x28, 0x28, 0xd0)), 3, '\x14'), } bitmap_builtin = {} for i in bitmap_named: - bitmap_builtin[bitmap_named[i][2]] = bitmap_named[i] + bitmap_builtin[bitmap_named[i][2]] = bitmap_named[i] def bitmap_char(ch): - """ Returns a tuple of 11 bytes, + """ Returns a tuple of 11 bytes, ch = '_' returns (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255) The bits in each byte are horizontal, highest bit is left. """ - if ord(ch) < 32: - if ch in bitmap_builtin: - return bitmap_builtin[ch][:2] + if ord(ch) < 32: + if ch in bitmap_builtin: + return bitmap_builtin[ch][:2] - global bitmaps_preloaded_unused - bitmaps_preloaded_unused = False - return bitmap_preloaded[ord(ch)] + global bitmaps_preloaded_unused + bitmaps_preloaded_unused = False + return bitmap_preloaded[ord(ch)] - o = char_offset[ch] - return (font_11x44[o:o+11],1) + o = char_offset[ch] + return (font_11x44[o:o + 11], 1) def bitmap_text(text): - """ returns a tuple of (buffer, length_in_byte_columns_aka_chars) + """ returns a tuple of (buffer, length_in_byte_columns_aka_chars) We preprocess the text string for substitution patterns "::" is replaced with a single ":" ":1: is replaced with CTRL-A referencing the first preloaded or loaded image. @@ -296,137 +333,145 @@ def bitmap_text(text): ":heart:" is replaced with a reference to a builtin heart glyph ":gfx/logo.png:" preloads the file gfx/logo.png and is replaced the corresponding control char. """ - def colonrepl(m): - name = m.group(1) - if name == '': - return ':' - if re.match('^[0-9]*$', name): # py3 name.isdecimal() - return chr(int(name)) - if '.' in name: - bitmap_preloaded.append(bitmap_img(name)) - return chr(len(bitmap_preloaded)-1) - b = bitmap_named[name] - return b[2] - - text = re.sub(r':([^:]*):', colonrepl, text) - buf = array('B') - cols = 0 - for c in text: - (b,n) = bitmap_char(c) - buf.extend(b) - cols += n - return (buf, cols) + + def colonrepl(m): + name = m.group(1) + if name == '': + return ':' + if re.match('^[0-9]*$', name): # py3 name.isdecimal() + return chr(int(name)) + if '.' in name: + bitmap_preloaded.append(bitmap_img(name)) + return chr(len(bitmap_preloaded) - 1) + b = bitmap_named[name] + return b[2] + + text = re.sub(r':([^:]*):', colonrepl, text) + buf = array('B') + cols = 0 + for c in text: + (b, n) = bitmap_char(c) + buf.extend(b) + cols += n + return (buf, cols) def bitmap_img(file): - """ returns a tuple of (buffer, length_in_byte_columns) + """ returns a tuple of (buffer, length_in_byte_columns) """ - from PIL import Image - - im = Image.open(file) - print("fetching bitmap from file %s -> (%d x %d)" % (file, im.width, im.height)) - if im.height != 11: - sys.exit("%s: image height must be 11px. Seen %d" % (file, im.height)) - buf = array('B') - cols = int((im.width+7)/8) - for col in range(cols): - for row in range(11): # [0..10] - byte_val = 0 - for bit in range(8): # [0..7] - bit_val = 0 - x = 8*col+bit - if x < im.width and row < im.height: - pixel_color = im.getpixel( (x, row) ) - if isinstance(pixel_color, tuple): - monochrome_color = sum(pixel_color[:3]) / len(pixel_color[:3]) - elif isinstance(pixel_color, int): - monochrome_color = pixel_color - else: - sys.exit("%s: Unknown pixel format detected (%s)!" % (file, pixel_color)) - if monochrome_color > 127: - bit_val = 1 << (7-bit) - byte_val += bit_val - buf.append(byte_val) - im.close() - return (buf, cols) + from PIL import Image + + im = Image.open(file) + print("fetching bitmap from file %s -> (%d x %d)" % (file, im.width, im.height)) + if im.height != 11: + sys.exit("%s: image height must be 11px. Seen %d" % (file, im.height)) + buf = array('B') + cols = int((im.width + 7) / 8) + for col in range(cols): + for row in range(11): # [0..10] + byte_val = 0 + for bit in range(8): # [0..7] + bit_val = 0 + x = 8 * col + bit + if x < im.width and row < im.height: + pixel_color = im.getpixel((x, row)) + if isinstance(pixel_color, tuple): + monochrome_color = sum(pixel_color[:3]) / len(pixel_color[:3]) + elif isinstance(pixel_color, int): + monochrome_color = pixel_color + else: + sys.exit("%s: Unknown pixel format detected (%s)!" % (file, pixel_color)) + if monochrome_color > 127: + bit_val = 1 << (7 - bit) + byte_val += bit_val + buf.append(byte_val) + im.close() + return (buf, cols) def bitmap(arg): - """ if arg is a valid and existing path name, we load it as an image. + """ if arg is a valid and existing path name, we load it as an image. Otherwise we take it as a string. """ - if os.path.exists(arg): - return bitmap_img(arg) - return bitmap_text(arg) + if os.path.exists(arg): + return bitmap_img(arg) + return bitmap_text(arg) proto_header = ( - 0x77, 0x61, 0x6e, 0x67, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + 0x77, 0x61, 0x6e, 0x67, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ) def header(lengths, speeds, modes, blink, ants, brightness=100): - """ lengths[0] is the number of chars of the first text + """ lengths[0] is the number of chars of the first text Speeds come in as 1..8, but are needed 0..7 here. """ - a = [int(x) for x in re.split(r'[\s,]+', ants)] - a = a + [a[-1]]*(8-len(a)) # repeat last element + a = [int(x) for x in re.split(r'[\s,]+', ants)] + a = a + [a[-1]] * (8 - len(a)) # repeat last element - b = [int(x) for x in re.split(r'[\s,]+', blink)] - b = b + [b[-1]]*(8-len(b)) # repeat last element + b = [int(x) for x in re.split(r'[\s,]+', blink)] + b = b + [b[-1]] * (8 - len(b)) # repeat last element - s = [int(x)-1 for x in re.split(r'[\s,]+', speeds)] - s = s + [s[-1]]*(8-len(s)) # repeat last element + s = [int(x) - 1 for x in re.split(r'[\s,]+', speeds)] + s = s + [s[-1]] * (8 - len(s)) # repeat last element - m = [int(x) for x in re.split(r'[\s,]+', modes)] - m = m + [m[-1]]*(8-len(m)) # repeat last element + m = [int(x) for x in re.split(r'[\s,]+', modes)] + m = m + [m[-1]] * (8 - len(m)) # repeat last element - h = list(proto_header) + h = list(proto_header) - if brightness <= 25: - h[5] = 0x40 - elif brightness <= 50: - h[5] = 0x20 - elif brightness <= 75: - h[5] = 0x10 + if brightness <= 25: + h[5] = 0x40 + elif brightness <= 50: + h[5] = 0x20 + elif brightness <= 75: + h[5] = 0x10 - for i in range(8): - h[6] += b[i]< 8192: - print ("Writing more than 8192 bytes damages the display!") - sys.exit(1) + print("Writing more than 8192 bytes damages the display!") + sys.exit(1) if have_pyhidapi: - pyhidapi.hid_write(dev, buf) + pyhidapi.hid_write(dev, buf) else: - for i in range(int(len(buf)/64)): - time.sleep(0.1) - dev.write(1, buf[i*64:i*64+64]) + for i in range(int(len(buf) / 64)): + time.sleep(0.1) + dev.write(1, buf[i * 64:i * 64 + 64]) if have_pyhidapi: - pyhidapi.hid_close(dev) + pyhidapi.hid_close(dev) From 7cbf25a8e1664c9d7d2d473952fbf0b2a91a9dcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yann=20Mor=C3=A8re?= Date: Mon, 11 Sep 2023 16:34:15 +0200 Subject: [PATCH 12/33] chore : add animated gif to show accentuated characters --- README.md | 45 ++++++++++++++++++++--------------------- photos/accentuated.gif | Bin 0 -> 4498443 bytes photos/blueBadge.jpg | Bin 0 -> 127496 bytes photos/m2ishm.gif | Bin 0 -> 3882288 bytes 4 files changed, 22 insertions(+), 23 deletions(-) create mode 100644 photos/accentuated.gif create mode 100644 photos/blueBadge.jpg create mode 100644 photos/m2ishm.gif diff --git a/README.md b/README.md index f1b7029..2f3646d 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,11 @@ # Led-Badge-44x11 Upload tool for an led name tag with USB-HID interface -![LED Mini Board](photos/green_badge.jpg) +![LED Mini Board](photos/blueBadge.jpg) + +Added Accentuated french Characters + +![French LED Mini Board](photos/accentuated.gif) ## Hardware @@ -129,6 +133,10 @@ shows a bicycle crossing the display in left-to-right and right-to-left (as a se shows a simple animation of a slowly beating heart on the first message, and a blinking heart on the second message. + ./led-badge-11x44.py -B 50 -m 0 -s 8 "Bonjour à toutes et à tous" "Bienvenu(e)s en Master 2 EEA ISHM" "Ingénierie des systèmes Humains Machines" "Bonne réussite à votre promotion 2023-2024" + +![M2 ishm](photos/m2ishm.gif) + python3 ./led-badge-11x44.py --list-names prints the list of builtin icon names, including :happy: :happy2: :heart: :HEART: :heart2: :HEART2: :fablab: :bicycle: :bicycle_r: :owncloud: :: @@ -138,36 +146,27 @@ prints the list of builtin icon names, including :happy: :happy2: :heart: :HEART prints some condensed help:
-usage: led-badge-11x44.py [-h] [-t TYPE] [-s SPEED] [-m MODE] [-b BLINK]
-			  [-a ANTS] [-p FILE] [-l]
-                          MESSAGE [MESSAGE ...]
+usage: led-badge-11x44.py [-h] [-t TYPE] [-s SPEED] [-B BRIGHTNESS] [-m MODE] [-b BLINK] [-a ANTS] [-l] MESSAGE [MESSAGE ...]
 
-Upload messages or graphics to a 44x11 led badge via USB HID.
-Version 0.6 from https://github.com/jnweiger/led-badge-44x11
+Upload messages or graphics to a 11x44 led badge via USB HID.
+Version 0.12 from https://github.com/jnweiger/led-badge-ls32
  -- see there for more examples and for updates.
 
 positional arguments:
-  MESSAGE               Up to 8 message texts with embedded builtin icons or
-                        loaded images within colons(:) -- See -l for a list of
-                        builtins
+  MESSAGE               Up to 8 message texts with embedded builtin icons or loaded images within colons(:) -- See -l for a list of builtins
 
-optional arguments:
+options:
   -h, --help            show this help message and exit
-  -t TYPE, --type TYPE
-			Type of display: supported values are 12x48 or
-			(default) 11x44. Rename the program to led-badge-12x48,
-			to switch the default.
+  -t TYPE, --type TYPE  Type of display: supported values are 12x48 or (default) 11x44. Rename the program to led-badge-12x48, to switch the default.
   -s SPEED, --speed SPEED
-                        Scroll speed (Range 1..8). Up to 8 comma-seperated
-                        values
-  -m MODE, --mode MODE  Up to 8 mode values: Scroll-left(0) -right(1) -up(2)
-                        -down(3); still-centered(4); animation(5); drop-
-                        down(6); curtain(7); laser(8); See '--mode-help' for
-                        more details.
+                        Scroll speed (Range 1..8). Up to 8 comma-separated values
+  -B BRIGHTNESS, --brightness BRIGHTNESS
+                        Brightness for the display in percent: 25, 50, 75, or 100
+  -m MODE, --mode MODE  Up to 8 mode values: Scroll-left(0) -right(1) -up(2) -down(3); still-centered(4); animation(5); drop-down(6); curtain(7);
+                        laser(8); See '--mode-help' for more details.
   -b BLINK, --blink BLINK
-                        1: blinking, 0: normal. Up to 8 comma-seperated values
-  -a ANTS, --ants ANTS  1: animated border, 0: normal. Up to 8 comma-seperated
-                        values
+                        1: blinking, 0: normal. Up to 8 comma-separated values
+  -a ANTS, --ants ANTS  1: animated border, 0: normal. Up to 8 comma-separated values
   -l, --list-names      list named icons to be embedded in messages and exit
 
 Example combining image and text:
diff --git a/photos/accentuated.gif b/photos/accentuated.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2071331655609c03144587af6eeef3f2bb4dc02e
GIT binary patch
literal 4498443
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

hBWmHZ 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

gO4cZ4#*$_ zw$GpF5CPJxOmfI4TB1>e5DDlEKx~fv+D{W(ru{yM{#@n}0L}jHPv}r4Mi6ZYxPV5O z@4zsMivkc0!f>`M200E8=?oCch_C@2kTGsB!XB{#sfqg@>k2NQ5KT=C8ma@);NjfR zhPLgY)P*P%FVuSQh5yvb*_3f2NG$}&Dx36RF;3!hn4q9~&vMYFh2FqOl!Yte2r)hd ze3qr5nq&>vE8XJ9XTD7cYo#bi$q-V@7vE$J*)R-VG4(i5z@Y6TF9#XiXvYy?;(|=PU@-w$V?>~0#4QiExgWqtUxTN zkPYVp0)&Plrc4HD>k`#({WkIa;4l7MCS`PB6oJlzmXgngj_8t03u@_rj1Zvo1`f0c zV~S&3kPaSgungWUZz8QdQo_itK=Qf}4IWVL2yQV3q7dS7z7CHGo^ef#glV8i3z<%6 zYRbwo2Ln0qBGz$-uI92%0*tU~0#|UNOm7Vw04WYIRE+J|K*b)niy)tx;ln3@ZSd$_+96l3C8^*WSkLoG}6u zk`5hC!ara zGmG*h1OEb2)S3nZHc54wqaFXEGCxIKV6Z05k{}y^>{ieMgQp`C0BS5pH7!yd(~^qt z5Zo*;!3IFdeB)PKt;61P3(fAI1XBXtF0SN6WB94d%nh&xDlT`#)3~Y!?MMafNF`t_ z`>eue?(Dd@Qz+w)D4Fs>Fk}XBAt}p~PD3dFPLXHqf^`f)N~@BgCNe*wF1Dg4w!%j3 z&T>J8$CRLgS~5)|*<&+jb1SuyIlL;)+C}x6D>c0bqmWc#7?9~YExO*aH2Me*WAOtm zlA*>xSghc&lE5EZ)ZMTy4N|Ls{w`7wg0%LM)4-Cg`q8XvqXGafROo{ONRUXtU`53) zi2vY2B=ibafGHt>udb*-pcoQ1v(F~KBt4eJNC*QqlqDux$tTjXivrV4T=O?eZ$tA# z*&vCt5>FCc&s${`OCt|TeAC7<;K%H2JN3*v?bKx?#0DT?PnnXqn(|L$BnSePI!?$r zGc-$y5wjqMQLQbS@H1n#&7tlRAp!PDHVW{BL)@ap|F}jE(Pd${sic&oP}#6sO;tHj zH6igXQ_8{$R>uOGC%P)qUs>op2BIuZA^>(sWZCEpBJjnU_BZ4#2?Br+g!Qg8~<0ZK<8zE+i#qSo5(Yq*IeY$eO|$ngr`WT%vhmKJ=_g(X+ib-51h+z3Yz%n$6Y zI+sdg8E!bKEm)HiCjxSB!ga0SVv9DDE`mo@(d-bKaRZuj@Qj38>9$Z70yBgbll0EW zs?3RO=W>VWZGn#}n`9%Y1ZlSy>Ik4VD@$|m^KWx9d@(ly562BEkz+m=bpPv=PUjC2 zBqUG&Ot?7Ac7+O@;7ndls4dAXcS(4mdNxAwLmEe-K4(`a5KA#p zRRDLDYQlhTCtwhysfb@uL~GUxND1kt&shPlaPcl+L#nLg4k*5@(y&4&I}qY3g(cv~ zn5Gi4cor*x!4D3oJ;48J%B7X>?TgL!`5BFxbFl}yvU3J1$Q6riBFR6Amdo>ojezAlD z;e>%Qh2L-f8UbY}h!XVFbR%|#C${Kr7y%1FUeOY0l}`aaHu?evi~liK)if6e9rah! zhunnI%0gIs-xKBdrB8>@7Uj5gTdfUfAS=`O>HPp5{Agi6n=*`S4! z49bWQaa{XHNN<)6QckZ94@dGS;j9%c_=ZgvvjO(xH36V_2(?*V)@g|)GRxG6Y1xfA zcM)Lx!1{QP;QxL_LjeTnZo{iH0w$R#qUXuvjPVis&oFfds?D+0WiT0~W>*+6YIjYIICz>UIpau32q16x$sM^e@B_3?sj8qQ6U?w7ZH-sf&-r@=gtRTC#E*0nE zAj(Pr+4LlEt+6LsC+!&TP!W$;4lUSlk4Ti}wk(15|M1Gl#&~{<6{zz@k%+ou)=7nz z8$6ksbXmr!6;=_7IX(GL(O^)t3so;y5`ku=2IiB$jvxlZgZqXU3pLZ}%)2qs+IU#?fmxS?tFQ7t?Kuo!uWB)7HgoBwyjDL~s)5d~#|2q23W*0!g` zIt_tDE|T?R!U?!)*tSkG7-B@tZX8nw>u7uJxS{15h$u4%P>U~ za5UOC)qAE4%JnwN&vQ@&^~x~Cb~JG!q@);AS{o6SOrb}ms{PUxgRQ>VCN1+ww;4bW z9f>8Zt-WpX2q)aY`n77>Mbw4|E2JO?N8+*bG7KaeNpE|Hp-KbWLpiUp(C-&-weWa1 z;>Dcx^>jmjze~u2Bu8hcI&piEcin8%h71}&IsfwF%9C48k@~kNM9O2hm!BG{of6Bb zy3sJe%_B4eBGa36x;>*soeiSW#~D+p;`hgL4)Li|{w#=VTxr!#Zb26=tc&H=5+R&kx=4xydj z-Aa%A-Yiq$-8Ek4&HHTpzLtj6o6HN?^y@|~St39>roE`E-P%2IbX!1}wH;y=w%h;I zhWqc^;BcxwqYAXy9aEm^@{ey1!k~_9YS@7^tr% zkQ5bPXBPrOr|e8iHcR+%&@zY8Wb8al*uk7U-F!W59SJiQxbN0!^fP&3QJf282T4 zV8A%R3z@%%7Vr?6#O)w5I2Zq9Xr@7iFnbrO8IzzQ0-HJmc(sy&L0klrk5Wkhp#X&f zl`W$Q(;$q(p<_yO^#Yj0O*~imI#erWFV2>#CoBka_i_ONJ-1qJv(tIj*?KkDR#T8* z>*?Ght9*>pfB>6)(flP3nMrCZNz;supv6g$QuOQF?}SQ~{!#lW^-l$$CIJfQA1$vy z;(`t?oWfuu4LS&6grP`CVE-kST=++ZfNZ#74^?mhL=z-PkcS>n#l&5Tc45F`NhEj> zL5VWLct9C~eX(7NX!+$Bc)#r^6h#Ki)nZA91v1h{iy*0yaTk$=op3Ml<;F{6ArO@r zUZ^+Z0>0_!+D(mtffx^P4FpC<3V6X=9YB_c(;0W+hSG7Ic~RAuV9sI2WMGLV1(^iY zkd#;j1*a#N7-V*%6miK_!D3{T(VjtAah1l8JE3P;0~H|(2TlwK#6+oI)#epKM*u%S zz`wZxn*(hm)RLz+UNq>C-~E;sOWvIkCTat$8RbkorG(=e36(KOYKgu%N1R__M=7Ui z?I_)BXEY!H13$`H>TtSVLBan5&(dV1eD}?_2`TF4_aA@mzB^!r1k#e=gB0F7p@Z^b z*oTJo-4H|;ASy8;jDf!TBeOHvctwjOy{N~G5ls9P1IXpLCvC?1=w`+XEr8l_Zw)~5 zkxfw?*99uGh`~*GN{dieQ?5GdXhb#~QO96jn}N#~AfS;DZ>g39PZD71@k7}ytYwp_ zxfPiJ0_5E0p25k90icK7?B^M$!J0G$RWU3UMu|=8g{ziUw=8mC0~IqGS&>1N7kZAB z>joOcMzv{~H3b+I6fxm#LK@5*s(E#HDmBS@!Vz_95P&Kt$;!TA2eWJ=rJA%!tE!OS zFuyStWhfrhFjPyAd_eycMxeXlCb6%JU%T+$zHfn#tY9y``Tm}7B*OFSFNXmS%m;}P zkmMD03Bwsx>W)@Wu*4_-YH_O1D_r>7nR`4{ppFi3K*=>sEF&XEnwhmvjkTTk7d!{KfcOr4w?ft(H^-a822)*zTg{qIpMqn-f@QZYrXqFw*(a0f?u&Fc}b=$-HIH9X?Q&UjcD*kN2Gmw~_#NUTE62ubok5-@@h zH2R1K^iUE?eW3x%(%Geq0=fZyZzbehj*JLcuN-4eylJCwd4vbmTi;$q-VB)96-ZQ%?<5m_|z8 z(Q1{o(wq)skjsFdxWuF!EImq_F2E|j{$q$f?Og;vVa4)yV+O>mO9oXCO8#^IoQNy@`k z!-xMrx(K*3rI?E*$5_jBRaZ-!NeZ<{L#U)~uPBi!;2`!}#b~uRT-`5sC_+{_4ecT) zG~=o$t0FN-u7Xeb3zJfJ8%&0FI|PZPT#jbTC7o}kb0I2e@d+6R>?9%kBd`fcA^@Sv zaxvMh8d{f%U2=Nw4rY1fIJI)RHsL8b+)eLNWlK+nuqwuIo9z^DOu)CjMgUfYz?upL zTB7t4B1Vo`sTeRBI^YV#$^4QMbvV^DDuDO zkknvIC+(CY)C62x)kFZf8m@+yvZon(E58DGj*x{!n`oY?kwq@jr;23cUKdqObKd{( zfJeQbQVlq#_7K=BmFix`2qLvCks(|T=Ha1Ko78%8`3(z5@hl%TQwp4tpXNhyw#3m zp*`iyRp}+bHnqBIs$^Du;kzOsbD7h1W|6L7-!s^OzhN+ge(PWdELae82?RVvI9HEx z4%l?Ha9(6;PAeLm_fW&k6i3n9Y+tz1JZbCLkb85joeQTm2Q8W_Vpv2Ln9)Y!BY{eb zvcu{0v<&SBYNJftHCHR^p9&GJnYmC$YY+pLoUL-Y^f2AM(IlNhkiZalz{LL-a7#P| zT@>yzt~kh^W&b)%08Gc5Q{4^2ZX{Qk?^?dpW1==yAJ}`i`PMhU1MY7H?V#T@c!K2*uJAjm6wWYcDTtB)$U_%? z=QL*O70qjbx8VB1lPWj7Z~Sy3rOnfhJ)D)S04Ts9$s^_s2@*U~$}V|WD-M;3>e@T1 zENhoL&XSWol63=5p+QU|Z5k6xTBbg)GpbLJm|^6KDT(v}b4C*I4C& z0H8&8dIy0uwS1%pQ9BU`OP~Vx)-P}5cmdY}E>MC9vTwKm2`D%Nn5TK0*Dq_dAyB{t zTtHP6vw)vt7lQF!8uwjS#aaHfN^6xIA9P?nwnJ*-XC9$4NdiD@#TxQtPo~9l2yk?g z#3f__UuB_c3gAE~CMV9;IcgArch++kLlGe$E>LqS+=muogF?BN5oj}e?v{0$G$c>v z1s(tZhy)VlXI9)68S}SY4$x!(aCCkVG7!KVSd{^cvP7Gae1~=!?=&h&lpT>#a&ECd zi4s34fuy)hU{M1e2!hWgg7G3CCb<7^lt4$h=w^-p3oeL9 z6~b_xCucUeVH1;88CV@>=oQA+V4xI9lyZKb79?Y1hlcky_g4TFz+f1+GH8@x8euV| zf+O~~TV`Pf4nPq`gaMMHXubv}U4c47vm{QjNYUd!!7+L#M;WJbeR?1O;OBfu^niU= zHqtYPbc0cHQi?bc02JV8Pn7^ZU>BGqZOtNK4S@&Yp$8LaZncGBskkVPgNe!kURGEr zf3pA#AONJ&hy(^`xAGjkG!_NeilcRHt7wF36M#%mk*dgw8B;Vx@PYP0T=`ZY0m5%5 zh*BfvX1a|tb{AvL!`cT}*MF-eB86>H1(ZCpqNYFCCh zIhH^z$lWL6oC_(spEyKxr}Lo5n#Yh zlcFYqG$~Y9hfnlFUXd3rsu~dBkH>@=6G)jvWQCeFPhwyy+t*uENM*U@HRH1$Z+C&! z$%=nr1lZ{bX4WpZh>I&Qc_xU0E7+a52%b*~gV8mNTW|zO020d)P!*^rRf?rx;S^6{ zqqJ!eqS+(Uc}f5DEIxS~ewmj2DSU{80g7>a>B(rZRF(tDd~8r0JQ$cw5>YW~lLqBV z_?bOWwP#W=a~XPM&FKbLP#UXIYZqWk3vmAkU^oF=ij3E^62Ok9cWe zL>W{OP*Q=M4cT$$Wn1UeVmJAdhPq5IC#LsdT>J5O!;_{bn5HVIl;8QL3Kys2$wy0| zu*lOC^p#6i5KpLRXomC}S$Lob#1nh3mFZ1sM1|=O{^N$P>%69xOuu z%{Zx)T5U$BeHOSUY=A_W$ZESrv9md>p*TRb))5g2k;s;ttcH)yi8vB56vR3k3$EH)yUjlgNP_ zsgsyvF{zqZMqLJYg%mE%swRASP88c7iY0Z}v$z>*D1!*I+Vuqq@K4X1t5w1t!RBny z83MKuhQZdQL?I+z`x-`Mr)=4J*h`>A8V33&d>r8?6O)25M7@kTo4MGzPMCzE`wj$J>wBn;jE_ zn$BW5=(VdP*G(aNRuW;i+VmFLgJn^Hii9}32qr2Oak-kCZ`>(x3Ie(tP_t|5&!sTD3KEB1$PLBtZE}91)L>* z6@A$|mtgBoqh(~;p^D9yQDB9vYz$vvVOHVdKh;O2kEKi+*(H1Eezp{mkvhIGyfCO( zGw|tF;U%>g_MuS6#RHmk>*yzgaH0_z2)_yeP$3dX0#t%55-8!2r*Z*@3A6Yjg=RmQw(f*tIDsvWJ3u z6@-RU+QoRKc*3Z!o12s_U;~o3!;+__1DgrGC<;NWFK-ruL|mSJ#8bQ{N*>3h-A1|F zl3Lzjh4IG(dj`r(8ZE8j#Qr;*j7b76j6h&URFs%#dT_$%wibH{omP-e-PV!vBSL5c zEq9B?--9RP;x!cDwtM+)>vdyoP(BYG0T~2oahn`suxPu5B7KrU4C(>NVF{U zg2SV$3_PsOqDz9MiwWS2xk@dU#89>X zCF8)_S9Cfj)*h)p7+`5)HhwtcNzyAf5;~<2Tx-PkKZ&GaO^D7}d&zuYqu^D*hIA1d z5ug-sqW?p^2DMLE<3Jj_xOGy>ewB$>(}?eF20%;89f=}9$s9Fuynej0%g6vtHUL?I zKusHc^mhLQbFD7)Vb?Iw1Abk30e8(h%mNYK!`^wigI$8+IfF*Ld$ZbdF=8T8;H8ai ziZx@S4bvs&rOf+BwF?1{vBpYQc#F2COuZ2oW#0LMu$~x;oY+Y(V>Pv+k!2QtfeV)0lWzY5tbS3J zvgkZ67iRzivCIEm);1clEuJ*Jxtj28Ij`HEJ>jhMs6jtir({Ogq)^whxC1mGd6qYD ztUmv6Hn0NO9P2*J0^f}51xwiD`2!2fcmU~Df z9(@*QEgo#K5n2KO00GqizI~?$P)b;9$sit|eikv-Cmtlzn4CiZE^p}~ijxEdjq6!e zG$K6{jjIzKV#tciwP`S*L^8j{%)K3a+c@+$a39lrJ0!@%KzyeDvBP}b^i*H|E|awt~BNO4R9jtoJ5I0;1?=l#-L#X(_+SrG21j0K!AjT zDy zm}xK^sOhCw3=B7fhV1l=e%H2f@DgNV5+w34UNBIxhXLR*3?xqez!(28>=jF}pv1_H zQuQ}^0%X6Fsz|6t{ZA#6N?e#>1xgMSFcSq|S&%^oVR7UX2^*oXLRT!rP!kmTv!ug5 zKKug)5%aqth#pS-Aw?*naKZ@rv_L`$+@33qp{iO6?K*}uXrnsoegv|;_6l<-HwnJ` zuC^L_OYA(iP8%yJAEQJINGqi*%Zv;J2v3S8v09|NBnLQ;MlW`(Y|1&*psJ~x3J{^x5Qzj1Ut^g-l3Za0TsC=p^v)X`ju)2EsBB=iwFj(Lx2*Q)#F-Qjk8!$Z zULB!y<2b?`8aFPN9W&Us+>l6hTnylp3D%&kzA|emF*sMTpSTOy10>Zeci2~D&G+h9 z(O&lu2tt=T9)eFtPIw$ z8`7ZJrj9^U&#;P{tT)(LOVlt{vo+_(@_x@S0-UsBFf$_clvzAOk22EpSi-Y8Drldz zU$za2%~nPjk$?nm30h#=rFj)pis#A=m5eP(_ZbX>t`AmKDR@#F->0BrqHrd9bIdb? z^MHtHF?&NB9pxU5GY$&%aE`uxX5Ql z5@25T5~C?LO+a1+m>j0+#upncr6y;{j&|Gv5u1g}fe&1S%;3W$3x>c7XGmL~=B75S z0f|-<_!lF{=a}(~?NCC>)S~P)#2PMzOGN`3@AUtICMih|V2Z(20tmJm5EcziaypwA zU?V7%&?P4+S-{N_Wh>GF?hIo2oC97HI7oqMb!UjcA;`5P2%K>`9kh;?a3v>!RNyKk z8JFtZHjsW9jsi2B-LcTnuI<=mDGG>+WhD84*m1xqS|UKY$l#Xb{RUTFhyY`Pb%9ky zXEcM!*GW7@8CI>30_Q1QCG`XoTJq=%onhV+mlU<%AVgu{!r@B1!an%{Aqe!VAO7+e ziUjSCfBx$j04=1U19@mb1tby5u+Rh;EpTZ|TOrtnBDKO8Dm-Nf%>wX7ftMVGAvmj1 z(XJ3E)f7@!-*lPGT*M+FxX4K0#32%=Vuk<7xzlK8t058ZFwjkQl3YG0o)6&@h*vtq zb!A9oLXV}FG9&0Fo*y9zkg=>&n?J zTjEou{>TB|8_Q^diIVmlCR>CQ&uvyEOqOR$_U;(f_1$Y;nXg>{zO#3NQWBQ{e$27ay3<=Of1u~h563ERMb<0~Q1ed~^=B_3+ zX_&7ZtOuzu6dZv{oeKkljqVA~Vz&QiX5Kt4M2lwtPOkH(SET|ZN!KHwwNy$B;hku3 z#iRv1%?R)r8*W_2Bv?+Z0W#Dm+RPG$@WqyiAyv~tacNQyyvKzM3xn$*H_5)*Ybs&k zQ?CG^huSivph?kUPi2cO*+6iqzam#l@aDUZh~YU$6pgRCV+PFlgnR_3$|mvV0R@o3 zzW9aJ7yi^m)#WH(d&*Y;1c0eAZqGJEQr%o1xz&VXW^YolqY&-uTq_O-SVQ6PY<9Vr z?i|)#y;;oUV*65;L1D7@i5Mv=yG$zc?_!*V5GJB2&5-Hungl%AiTG*S6B>Cps#VV~ zfxOxXxb}ir31sPxEHy#x)-(U(k^q^Flr(<=;UG=ojhQU`W-_*pyi^IHju@5OkR-RF z>fx3OiyZ0g-Z)UkvTsPexdAMQ%rm-YTcLo+#$BpG+U82a1 ze8Ej?C{mad_K_n4Qhba|mJ#=RU_rfWD_=Mq!9t)NvL+b}k)u}U0Od#kXs-h0qcE2A zMV*ByRYJFPESG>qr)Kc(1iXR?!-Yp&N&Vj zor49kyAr3Akw74&isS!@TgvOiH)C*6v1z!&zd2^Z7H=|wJ*cckWmiYJgbmtxB!t6z zEB5-v)Xj5G09ZX(@#@J(Z*mn^Xjv1pG9;CLjOg%U{466tws?u6x#DA+G{uegFd>}zH$V_BFKGk6FX^PsigGatM6Z!R30@8roIrZe zsWf~l&9{B-vv&V|peqCLQ4GoDQhNltz4=l`G#w@bL=59DB??WFy{i-oP@d@P5}7i9 z{!63(n-v5M14;295vr@MV;c!Vk|env!ho;(dy1ZMlQ-}#qqr9}fVEe_BpjPRDdH3e z003ZVm*>NcEdnA6P>l#YjtuyUcxn&SiMhJyl?&?^TmP^nGRHivM6)U%IdqL_dixCOzika>jvF*qwjxD@~`&W>L^Aj>lJip+%xx~=F*LXVB=#`R?FTDAhypao?05SWU3Zm-@_81=W zFtYNvzN;{Rv-_S%D13%m+Tt~VM3unPeJ0EINHMzz%bO7Bus4ygh&Uq$crYSkK%yHO zs=ypFDT5^R3#X_sfe48nB&Gsvnkh6fh1#C^$wDpU!p$l}57Dv<8N)7-X zfOr}eb%dX-#KZVeAI(^ckjS>kX~kt(3qzACt)wyf>Ygp>A&xT=1MHHVprJ5uwG$&E zc>5e!L_r)%jQzrZ!vKQwVTcD36m=Pd{nDziu%ZB%L6s;775kTJBcXSsm1H9vUc|<1 z4GskKL?7LnAw7o1T>x-F3%82aDl$v`zOcPCmHc2@a(;N%MG!SsIdQ& zsNz6RWfT*gT)vPi9_Y(~-W#qEpwF8$$%pU`ZWO2W@UN5;z2K{=srWoY0Ua$Wp`IZr zz_TuJ62w4gmBwi_n^BatoGN)l3t)5}IfBY}6gqf=N{MR8@~Ehwx;hQ`E(shWXRse%^aJ={ow`b^Z8Q7nDR$>slR$ua2` z^?b>#)Hpx94WaBfiUP!%G)wzD#6Z~8@5mbqphR=So}YA=Ofppt!vK_1RpPqPGN4L! zvL5EU#C+ndaw9VSD#enjxmJO|19Qnw)d^|2zl8k00Q5U${Jn#@o^0`vXzV}apdk$i z%ujiMkm{8mW1-nNA7vD>f2pWmAx2J9OR~VESq+-0p(5Jhm-0%Jb=j|*dLMTTKEAn` zE8wHBG>W1bsAwrnpu~z{p@Lj}z}t!wqMH@%JkvXsvej#*DqB-izz|WW$Vs@^ixd$$ zozpr!PCPYPip{1xt-WK~)09zx6KUDzOqu5VNEhkT>U%}Pa?BEmo(R$EVb!tEmxINq`gV8J%Uuh z05gb-BSDfg+Q;DmN38uje~}`ylntz$O;n6b-TJ9Dn+=|eg&jJqRZ4?s(>4uUKuu%7 zuJN(mSOlTW1K?oB@Q5Ro_{aMqy)5CQ51Tq_M2ef(xFUV3r|FKKKpJI}$}>nQZhaId z9nxOQ9jx+|)p11#5CBF1i+#zXT;T&Om{^Ln*e(R#EQ==LeN#8(*yANbjHxD(WnSYX z*^|9f=(STQn_m2g-sH?vm_;C-l@CD0z3B`|H(a1Q!%l|@T7&;NO7)pfMh^6PS1MgY=NfCSc51T^+?sK?lsg z!crA^al!n28b651NIHW-QA~r4OWR=^G+0qSIWH;6fCw7E_e7HTq_cs!U0A82Y%Sp` z*|tnm8#d@kdYj+rdt4q)Sld*mc@06lSuhIPo;wjnbc&RZ+L^JMAtmVo`cO_!sMy|o zNHHAV;)Ols1=$dpy)YixkbT~gHRJ1zvNW!bl+C6!mfk9^SnR#i<(%2=Rgv!8*^q1k z^9$51z>UNx)IHu$kn}wuP(wUS$v|ikOg*e}{Zz*-Fi8K_HAu!(9dcpx^neByzM&K{ z$IT=b7FOa@h^t*uXl@F7K30{HFH?hr4^X;B{)Om0J~Sy_xP)2Ix1YUV$cP zHMU+fUgM2aXy;6knI(c1DFQ>j*_>U&=ji|;TeFkiP7VLih=fWoFfky0uMrf2>Y=ds& z#a3*_KIjsl>@aia82CtwR=+;JvqaubAj^%C4B+3(uBY+TZz2!3d0O6Zn;?Tem?nY4 zpyY#??T{AAqV!}wXq8#CQYrv z#e=BNs-9(*SyWRE0YA{-l9rT;xCwQ7%eDXTf(&r$^zPQAcvta=p!}^`7IG39>}AbE zTwkoZg&KppezM8_U4bKBFVx})fdm4-XE+^BF%}WR_Gbn+?8JuffPU}@r|`zM@C%1* z>W$;dj_k==Xc@rlj|6T!epCg@XpP1*UWJ;X9l7=W*-Q?^*LLYl&H>uKZBw=F(gx*| zmT919T$7G8r;Y7c9%&Z@@=lH;TW!iQ5f0&_Fff=~x1F~JPQUL~)QEN<^rKIH)m3#O z$BN1=TwB;WB0ckd%kjG0v_b<&IW@+0nb04%`54gYV>awY?JgaYU5 z1Mlm_NSxm=vSZ5kB{vjlX##tf;aEf(>_m6 z?d}@L?LHiy2i>JuIDi&eLp%R`+UF!!V4*6pk+Vh2!K3aww^L!-eI;=F3hCaVS8iWJ zY_Dd9kA)aQZZmf~S9dzSV*I%*co&%siT42SSc}YOd%t%AiAaoebT(#t$1eDOXY}V) z__wF~x;OZUar=YU^MptEg`X@>Pd$il=o*DSHiS^^)&fGXS~@)SjfP3>exU9^%7|ud z>)!IK^?@4AaX+l_&3{SU=5?3uZIEl5YnK#`Wm{4xR_$KZ+CYe8LwAf7Vy{^DSIo@FdfWcJz* zd4S-PXJ8%@e2f?|NU-3+KpsdeGzi4U!-x$7)iB71gbyG^igetlQ3gUk86kQwIk6(a z2@+~#^w83a0+=klm`PIM;swLRB$q#){#Gg_xD(+~nhq-p z)hH8V6pklBeiS)!3rHeHU@~D@)Z)$}JZBCK`my8El_Q--tva=()~;K;?h{*frP;J^ z<0hPYx8L3{egppx4oJ9Q;>L?_LhgHc^5)K;Gmj2fI`rzKtYgnkT|4*g-j#z7FCKe| z^5#|i1+F5-i}iqR^k6ST#*Y|8mSExHBgugSN%bSq-$Vb2G*C)`cr+A2R3W&~fCwhE zQ7juF^n(#RoJ3(&5+{v$08;zvJfMTU{zv781hj=LO*L5%fgXAsfPn!JAbF%u3lsoBQDl5k29!)7fB;TvjHQMdVNl_P25_}S){z)? z(cW}}6^7Vojd9lI9&f%$nr5G^NoSp|BxahPtMS>VpSA&7o1nZATIisM8X8=5?+sTR zqmPbv+;{)mO-gB{mtvZ!rqxB-=?Z6}atSG-nwQ>sC**QNd+^~f-+Vvd*F}z5L8ZkO zJUwV@fI^B$LR1q8m6U}{@i8HUKghs?LN-Qd5mpKo6hVz4PHSRE3e5;ChZ5E5giSBi z5QVr}@KhwY*e)RC016Q)1x-mRS=0gWQc#q;@PYy57e*3bz*0n@mmDh1rD>RApow-0 zoD0W!+GTe_?Ae|Z|5-6?7GE4_#)u}$aiPa~95SThjohfoo^EPs$}6+nvdbvLTq<%Z zqUNu&2rJC6 z;h=mX2_gxzIa$OKV;uR$l5;$H$d_Yon{PXu%qo1GbKYC%9S`bU$w8FtsH88e%sQy8 zU-!D~vD5B)?PuC<>R^A#Y-;cA)r=l`LDV;F4)OIM>xCBR)GdE>bAh9R11{~5wZKw4 zqKYS44dJq6M*-8hN`)^JM>%@kE3RMj6l6txD>B>dyD~Ujs z2!s|bi%cN#L9h-i>bH(f&z}pgrmXYSg|}pvvShJ<7}c?M-*;OgZI%UAD0uTf(`$2V5&nT z>dM)ilfjTv=nN$3FlRzZ!t;^woaD-S_m@@SQ&l^Al_q=Uw4McVKc;L#EBP}@3+So| z0_sUfx>ymIRLg4Tn%+cvc|I-x3~+)ICNVp@#sLnHe|B1C0ZDqWlQz?tDNQLjTk6u6 zS`(%*r6yvoxf~1r#sxtT8t2T}M|SQnoP<2*A&WZBbvjB_MqORt+)285Le*tar6<8I zIjS3CHB>sp=cyQUALEIVh#wLqjEwXlQ!Z2^0<{}Mp(Y@*Wi*F}Dyc`=sJOd=)Qu+H zD@yyy3cs#2uzwXSVP#53!v+T!H}NOq>ssZ(98JXwo7s=l^2R?RAH&9m86*$1G-qY4s|pfu;15(5KGVsL-E zg)a0!qn%9!UH|7?yh0bR&E=~|0c+jsVwbSlEo?Itn^>WK7rfr3A;!q-*qK6>5{XqW z1A8-rZ2qB~mPKl)7DVPHYXfI z&Uc+nH7s}?x!(kn6RGrVA(0Eb;HT1V#|VBWHksT)15anRSB3v_lqct54RbiUdi`*S zOYCLslK9JE9`km|%v>|8n8hhxv6^2z-ow6G$>(J=ifQbzK$^CjKd!P|4HK#}pP9-> zPAANU+*&y|645bS^pYDrPfDI}uCL+fbF-}F>2g`jn%*>+JB?;ee|pSm9yOigZ0Z)P z=F~iHv!C<(sYS^brzZ0$XOE2P?)VpFQ5`U^72RtjJG#-;ys#P>mRFEMmlIpgbeBQx zY)^;!+0u?SwaFW3R+l>4t=6`xyX|c^(|Fr~g7xZjENOAKn81YIHKTtG>~|;H*DPGF zm8WY=Eq~zB8D@5~r|s{51H9S-zc#^1U2trpo7)Osc&h)u?Qn)8Tx6xqbzoqySeOnP z$m>3IJmu|icZ2-nc6_G2@s00%EAGnsUOB%5?s87A!mlx(In6g+^MU{S;1Sn3#Cz`Z zpWhegL2tOVcdpuri?EVV7Ie~CcIO$wdxavGx}j+LSPWx1x{E`3vOgeFmV>?J{eC&w zWo~xt-u&!lPCMJnj&q*FUFdS3JKcT#b2}@#b$cGUtyQ>jC&xSFf#pgRGWS%|8TG;E z5l^7mFfvWfcupXq@x@l-<1OEL%KJX}!v8(-Iq(1Z&m%wiabLc{Pe1zSJD>SBwbTan zuCn^>J@tl$bk)1>K))E?O~$^x;_=G(u(Of(kRLw#+kbqUyFdQMFTV2YZ~yyCKmQ4b zKL5e};^vp$s|kwg5nw#+SpjNH0v_JIm0#{9jsv2c_@&rejpP%VG2Sa3rb<=)nK?;p~X;#0AAmY6&7PiP-`q;;^`pn zncw*_&KYJM5E4@nc3>N3o*OD562{>i(&7IT&Y>ORVID>y0N&jS0-*n0VH(X?V^m=R zP7rMfV)#u41CAjX-d+Tzp$~f0*uh~XTH+hlVJ6CVIVknB@&i$bulH#ZZ zVk&x=WUV6B(bWRB2{N7E4nATnLSiIJA{$=fF7hJgT_O=~VkZjYFs@xO#^ES>;Qa|B zpy}KRmLdSE)Zh$aB03W*I$jUT9yY?sEau}`wJQ`y?(&G|3V>3o$EArzjVwyIh;rKOTI1=P7lH);UAj7ERLat*&>LNQr zq&!OGL{g+ZT4Y6Hq&qHQKSmx&p&$PmLf`-uZgM&>l)w+FZtET>@n{ z-X-I0rB*tkSJEX|0_IqXWke1pTN)-#re$KTsZrE*7XLa)Cb&}z4cBXdj<#2lE zcYft*8fSARrFfR5<`o}#F6Ux4<#W2{d%op#+NO2V=Wg2PF=1zK@+Eg#rDqB!c(&mh z%B6XhW`U|FVV-AsI_H8O=z2ORd_rh^O6X)#Xocn=bk^rc+Gl=VCwFRRfBt89N~egD zsDKh^gQ6&cx@L+#C>=(qg1#t&#^{8~XNJ~jjp`gZnbsBc;tfR-qbvZ#R$X_2O; zk;-U`9%+)oD3i|Ula8oES}2C%sEuxDR$eJkZl{N8<&Wl~kOnDe5-D*asgsVWik_*N zLaCaTsf#Y@n!YKU!fF4M#%7(;X_Z=OmgeY=a_MjKr0Cm2T=!_UWhor5J*$sD@~%j%uq8;j0>Jvcl@JGOMz->a12O zv`TAb-YS+_>#la{e)cJ#a%;Ex=dc!QxJE0TI%~O_E3!80xvFbJPHVfmE2Z`&rd}(y z_G-QQs>$K&w|XnMj%s3z>%Ri*v97DYMrXPXESehZ!6qz})@r~u?892Byk_deQmlS% zsl9IHHs&iM>TCbU3hQXzAip~7$ck&FMkp*Wtir17%1Y|Hx-7&}Yqe@>#d@P==IX_2 ztEcv;#%}Co@+`1=Y|siV$b#k24lT(BX_A&~vZ5@@I_=ZKCcwTd%u=n);_A%Otj%I9 zr*7uPiXqTirqPNmLi(%7BJI+eY}B4D)Us{c9&FYAE8I$~BkHQf(rdQrY_In0*MhAq zj_tkXD_31ch(2XF`I z!iUyu0goX96R+PAublv{0ypptJ1`D&a0G|!23xQX191m~aFxn15#z4+ns5>a@GhjV z3U@$2001HR1O*BJyZ|f!000130?q&c2>$>(2n3<)!$5)v4<3-IFTZv zix@L%%(y2}M~ojsdK5`=WXX^nQ;NW}vLz%GEljv%IkTosQ8;tzyxC}HPgg#H3LW~B zsL@Q5e!`@rG^x|3PoYMYid0e69Xeh;LNOI*iybgr%m5p+Dpadz)0$n|^=S&MQ=UwT zNteY87E9?);o@LNN40DNyX7kBlZz=k@G4%scq>=OGG9ubJc&h@vXLQE*1Y+#BhFht ziw4~}bLi8iQLA1(nsf>lakGxdX|m;Po;7dtoITPcZ{I3=i}XmGGR$Ei8Q(44%FDq&obnZVHO!diU)i0~V~K zOBcjX#HUzYb?FeGNBiZMpil;8Wfy^smG<3)Iz%Ypg&4NR+J+f+=pkye;ewcAwjD>4 ziM9o&-HFA$rWOlBXb2QtKlis_TNhV(H)>DD?NJ4RqZFo3Xpj3f~iR zTIlDpcnSJ!pVC%qEwzzyXiJ*InwF}!xg~n(O56^Lm!y{(I~$>dLNe}bI!@$iry$H5 z>ZhU#X=;(*qN?hu-p%JFl>@`7EWzm2>gKIxeU;u=VTna2!?yOy-dK0)71M#0VI}aw zLkVc^nbR7maLLmqi>=Cdt{d0OgrW5GqSwlvSrTW+VChYJ_p^Xal|d8X^)&H z9nlCu-mCA^HToNMzlzrEl&b|Fto7EiE`>1HU*;uNnJ(-QgqG=%m3FagUzoMUnjnSo zgT~Il?3%&?i)H^r&xMBm8;!~Bm}$MHJ7n+ZPUpMt>r+=Pwbe&OCV1@zzYX`-_<0TT?{2Ck_Sz87 zFxC@i7ca5#4^Qm-OuK*e=)-sJkvDvIX{fc`$HzG*fx6ld#NiXJT)yIqr$3s2AP8Oa zi`m)?tks4Jxb3^`iZ<-9apk``ygc%h(hjmZd^HVfu#4U7WJkOF+zxDggCOs&!W7_H z@IBGP$GeMvWV09fT+kzFlFNgdwLuLMj#=cx)A`hA zzFn!WLQIQX{Qvm2n+Ar*qqk64uPdw zAOoq^oq}yl5CI1IDdB#Y!h#;4O)oo$OBLo~0t4Z2 zcVA-?)azP|rQ^QF*Qj(Xf~C#{W7nQpc9FyyX~kIWTPMj+e;vB^w_I$72@rq0Nk=M2TrUH%7FXW%FLM`ZL8= zC6qkGBbJ;fDH#KmCVSi@sW>f(KFRpZoRXtmI%S%O79>%0yBNl>J{M0G0L`bbQQ}9| zNx+2Qvvo4*CoTUOMgc?xMq%_@a2!%733MR<&L8t&(B#Llb<>ykL{dEx<(}_d-YwcEJH`DP9e$`rlRltDe}uf%D1XR~id7(7E7A{WkCiEtA8cep{qOe-VEu>UkS znI{5Md5DAZM{2YvCAk8v8b(L8D=#I*h%bYh_|~tp_wKCrf7i4S}%gvWU3U}b9^h}=}(26ixv%~SHdw-m9suFqJDE~LNeA~)$ zm8Tost997RsSK>YU2}Z)wE$N@sK3gwUHxiE1gI) zGQIYmBWy8*F$H-9c9UTghkfx$2Ajpsj_=jqE9oIh+aru#v~vL6V}VA-y*C*<#ZF!^ zm)kv=mcIMB+g<9iM!D~RA267;IfE($0Tw9_jG5X-i2+H52$1^s(GSV$L6RuLQwZ?WwCNNUQ zV@+qJfQNH9LH2D8^kB<3QPyXHp0<6@w}BYQfdE!EvK4rwwgXUyR`%wB%d}r2#B$bj2BaAq&UlbtCdpWj1dvc2XOLSI8w`G37?QlQqHTZNGP8 z*tQWN*Kr8=fQIv35BG3)v4C&Yg&y=wTB2;s!!}*EXTq0!Xt-%8D1vP0Uuzh6?AC^I zSZW~jbEQ>$9)@px$L>H|1-F6MB3^YkHM%QE!Y1d1*ZkOpar`qq^!SVv#kO@7jI z-qd(qxsePRA3Y$8fwYzpcai3YJQs;PaFLN#R+gItk|DX0t2J9E$rLG>f^66cs-Q=F z`ImvQJle-dWAz9m*qEaigncA^KuM0(7aL`PaDZ5pMVD_$`B&IT8I#A3?YMb&NLBV& zXu+qC`)HL;BQvpc3tG9ATv?l7S%$Znn|io?in*J(*^}9XkPGRB@lhtOIF}N6oEXWL z4vBq)2b@ayi@>N8&{t`0IFi_zog^ukmC&7qX$fILTg(4Q3Ex?sD`}pHnV3WnYZD`g z3<6g>$(|+{jV8EZXz7y&=8`&DjtppdMkpCmFa)GoQnYqbkjZ}$q>D|ci73L41UMbq zCOZN-ielMKzgdvqH`%6kEJGq9OXBX8D^=2~Iu9Hp%vd%K4&1a5h1} zmLWuoz1gABDV=+{orGzkJ_?>9ik?C`q(pj{!?;M&7)UaCd==_3aAtpkv;>P6A9i@6 z=tmbisWZVgppYOUNU41UXP{3Bm6(`fokf+?;YF{*FMXn8z2|$`Wt3h9qBlyX9Qvbk znx}XQn0uM`>~#4vK3%`=9!ScaF@r-JI8&9kS^>a5gSt=1Z-*gCD&TB6!YsIoPD z6`HIosF6EB1I6h_#<`X=Dx-}0g%P8ye+sJd3KYmFW|T)K*Q%Z1ilcxklkh2Ld_>Ahwo>%~R7MiU-%SYjD%E zmb$j6>99g3ca<|b1-M>IRCWz!EUo5hC2ET%>#j@NjLj&p0_z_{@E?V{u7C@;P^+@s zIkPbvv#s#BlKZLVsk1wKxt#i=mW#QX%eh?(twKAkj2pUK%c?%RJW~6#O8d7>3o(m3 zsru@RyrY;6SE`>|y82ocV7sqOinc3yf1HL;sY#VJGg5MLyb%kK`i6zjG`1T%sH5At zHaof}`$2&lxP|L$6}i3Ki;;;72q*tLx_#4W%V8npJihxqHfiYc;QST=t9vF%E-?h3E^>s-6KyRt>JrmMic>#V#BwjIf~6x_CM zd%@mzKkQ_@lhqhGgBRJOyaU3#&C5v0`nV|7Wz}Abs+*`vn?5N)x zF*sX7EqlI_i@tsdzwFz&lsm-od&Eeb#PhqvOl-eF3!Jp@z?90hF>E{p?7GD%vgYcL zv}mIuWWcx^!D8&dVeG(uly?Yf!5HjqO+sVOvB4S)5prxeA50<_p%QmX!Yu$r>A}Ya z{KqMbx}(d&glxr88@_{_$d~_Hs1H`fGK{?x$-Tuj$=&O{;CsnxD6{G7!u%%(u3SWMz!I|Aw7btHx_g zKXEL_qIk@6d_V3o869UD*{8>}9LUnV!i7xD)_l#?jLqWh`sH<;%&PtiDrLxu@*8MO@GL?7sONzx+JQ8x+M2tbEVwLFn3|1ANP1 zjIH#@wra@84V%Wp{2OqbRLLxx$(&dHG(UOFJbqlw(R|3@tUTE4&Dl)IA#KPe{mmmC z(kwmFi<}m6IJ7C-w6Xt)&Nr;ii@LZyy2+jVxUBHgKn+%_Ov*&P&-#4SM%~X!-L*zL zII&EB8;dsWYR=7h(7F7a34EHcpqIfc%xjFyU~SA4omsOvH4TPBA1&1=Efy{9(m?9g z-Hga`J=b)t(sq5}348t0MLVhlOvBo1)7|^MIxUzzz1Tn;)IvSaIXl#Z zDcML}*^oWN{}sxuywsfC%O1JVLqWw1*{H|)kP%6o&(viAotIv%)xbkEVNKS`{Kk@@ z%t=)rg^`u_=5QrlvNr$-za8Ax3*3lJ+y{Nh$X(a_Ys7r**VX&n%Kg{U-Pg^n*Vdia z*X_!M>B*UG*CGG=y>e00hRtw`y3WbXxb2L-i#=P8P0y!X)b||Uoju?4J#O9<)n+3X z4~g2w`M+45ArS4bv3=1lLdUi36n{oO9X$goz~Bx3;1CYs$^8NoZrsKV-j15Ja7oD; z#^DuN-Z@+f&dt7(y~@BUEMStxR09S=^Udx9^!s& zvq8<+josezec3cl)J2};MoQmHZH75Y8IHJ^xJ=M(>5x(D&xM zUg#=5==1+8=qs+`(XH9y4CI$R(Z-o#yIi48ephW2;5n-0#oXnhSKudc)@$wHG0^Kc@B+EO<}~o@Z0_d9e(c9S z=gKbU%iiqDPU&`Tks9tF9FD`*{=LHO=Wib9if-cG{_Qf3=!@>%hFH_>Ki~ux&+#1}1%@~0OW^Szj{_)Q1S0S8DIf9|f01hm zmwf-;12kXrHt*~>PvO}f+&cg4HIKv6e&-#o=O5nV*S^cs%Sso#v+zU@>G z?(NI_zHjbV5A{)B^~4X-FFyP$?y20(^^g4e;ywG>i__Z9>7h{eKK#z0F3-!T{YL-3 z_Vb$X?-AP#@8w#)V|K6GBZJZv-}gTt_tYlfzWJ{Pg z0JRMAvgS;jHf8Q)S*mAFo;rozta;MtQKU(c2F>Zy(^IIVP)ViQsp{1}e>QE^+SO}T zu3^QFg+cbKS+rosVpZGL?OU)`vsRKTca*ABcSGro#Mf_Mx@~vB7+kbymnU5mFJ|1> zF=8T-4d0xr$+D?ajWln@+}U%h&!9zn&dX}=U(~4;S!TW3_3PG@V9%yKDbxRL+^%x# ze#LutZ{W8^q!4b)gmL7=l`m&5V$XBvwvVG=(Zc%m8H81=#6i+K$r#;#bTm>VJb5SR z(O;}c5#oC!JbW;uFCj@mh8`NqMjJZp5cZbPB|uY?6$K#<+0NffrqraYn@sT=7PtaEgj89(#1_ zM6`fRYeyf8G_o?ds2VcKz^npHwbP>H3xy}K(~dC1o(O`)$GUusMI3R|v9i*fY>l%h zNlSAtHPt+`w%_24b57uHD{i{vZb_jzKBGeu{ z145Lz5kg6W5-+F`i8WEgVo_vjr!6N76N?+c?2<+oYXoztWyciqNF}*t@+@z^4OgtX z#5EVma?N~lHs{cEPEZ%(MN;0g3M1;UYa#Q}+Ay1?tSn2a40wf0WZMmt%;;3uUEdm> zQ_np4@p^_*kQLjkI|QE9Z5VaB1I4gA>d1hQ%`H~pwpN4v*1)z`MZ?n zgZRKXRZCf|&}UZ{1Ta8`YK9O$5)c~s)nLQxHNp>7xM&NNczXX~ysCRL6ef?25=tp- zCu25855+cHMX;ll7FxF17Srl&$30hWaOb8wUAyxZc<*)Pq;1fF=_Ss*-5h#}rHxy$>s_>n!U1N=&phTWPxM0+5;YSS&68d6GEjyY4E^^m<~ z2_^vbqd;h;-Q}7CLAg?h())R!NqtzPpc-D)z0_M1L={ZQ#vcTN0{x>(FFRXg<5xCxwfChKefE(;F>WIJ$GiU}0Wg4d(_53! zb-)59aA2|F8v|d{x$4*;f+nC~1zTVPjTNRa3w%@LCMW+n%Z0Ex#>w1rMzA?ZU@U_= zD3s_7b+QkU%n32zPU<)^Ar>V_XcZzA?HEFVOfj!hr7FnFIwg_gE$;xo!yT=vuqs&5 z;6Y6U9`BB5feYkrc}d735BLDR=(Ub&Qruw_B%}fwTn}aJSqZS#IFea_Pd>gY4-RG# zktO=zi3jon1|)JrB1mypQ9Mcxu4kk6LCZtNN*4TLGLy4KQdnv0m)AVBKW*_(fOOlW z0uA^{1cEY@qazY`Is0i zCJyaEv3s2#kmfwxjdMZiQ;_jsB{em&3XQ#5qd;hwPls%e5MU&pL~s@%4vk7aTp)rB z1eCNIxacGwxfMm$M}zH2AtVh#V>!8I%#RW?ZS=FGBY#q&V*yD-@55Ky@b}V6GDVY} zr0Lx}c~ev7^jxUyn+IiCrxPB>mes+f1uLk_&uOKG?72@l*VC(yolKbP5nk)AX$3H} z0S#jy!vYGx1Tt*k4QoIH1Fk6nXA%)Vew+XT&bojzoWZLKsDONe2*``zia{8~LKQF4 zMH0x)tMMG-0sfe>3iu~JRXCZ?_}WiN+UhlkOo`VJv9z~jz&+wpwI+lUK!Rk5JWJxxrgBIo_#`9^a}k55A?gGN>Ci+WB2uzFQhq&2>9$m=BcM2I zZHuAS{oJ;qY#Dc^1gt4_t!q=9b~2S3>#0vA$1o6%z?PU}0eN%joJ3d*V*mr4>C)-5 zRViwCtx~2#+@mROis1}!5bGV}uz@p#K?7}=!++(lhB4Hxt+umkTNz-6t(rk15GcSH z$l8D;nAKMDIo}lZ7);<9C<{p}>;&v85e5tvoV@KwGS&H5`+DrJ!K+&F*7z}k91jEO z@k0}I$B-=M2WAEVtj-jhgSrmcAnE@xE2{Vq#nM7A3o3}C`6z;e5*QL_;b9pdr3kzH zg)d|k;aUuakUiptr;#X4)^Xi@B4uT%S@olHOeJa3=@RKmZ{~BJ2k2)25^TGFunuZ| z8cSN5cY;LK9H4gjmC&h*ob9o1eIaXUm6_^g3h+XI{rhPHhuRMOy@FXE3=|WspNmXL zdN=0IWgVnLFnU;bQXp)Ji`+XSTq*>k^}_|i?O8I`z@1NKPzh32YYENb2O%M74q}l6 z(I)!`dy?Pov+%2BEq*M0Uvlvb@%fFdU+d#| z;nW7*i)XUW$Q`-Gg>uqu@f4PaR+udmU0xCv^{7Zq>Pm7rX-Zd`c=J`+7ex!}Is_fm z1s?jS;}8dGQo##mK(#c}K=h)ETCAmR@P3vSJX^oFb_sy+R((x@3oCe@CF!y1UPKCQSo;rc>cn*6e0) zmIn_M#E?Svw^MWW+ZVugXgOGkmT!Cm?fueMRSW$*qo%4e_T&U?yin%7yd{!=EGZ-j zZv5EX6E=%wrGQYb{r3O$wvZ1uMJ6AcaGes$?s|7};>FX;Wj=F9*W5wK9I;(Pyz?P= zp0bj*J3C)yVLXIC>PCn99Ms?d2!BES`<43mKaJo^8BuBPecsQn5bN;2q3i7TFEtmO z09sR>`eLluvyc-IojpRllPIPLVW`l#HuKq|>O(6Gs4IdvHU{XmZt|*z_$w`lfN_gF zc`~hCqoUWEvEMq6``RoZIF&p&1jvIGh%h3^TcYd}kXSgfbR#Glnyfb}y?#=-#G|b0 z$)}Fsj@U|%$Y8u9V3dZ+9UEK`%_}JcSt&FlF5$x@lq(eFn!P%+v#{wxFdPa@nv1ST zKIL0Jp)#SNI1`71IgH5F43F9L3CO?( zXn^!HwO}-!HOit^1VF^P0;a1#3lxMV=&F=CiX$+C)si7f@rXcxL2^r(O<{yX5T|#$ z8K*$cj{?joD?*P%vkG|$ z!t@oZ!GSGEI2wA1)$0`~n6sKtrja7UEF3=K8z%HQ$QcQO;}e`FVaPPh4MuCe=X1k$ zu}J^d_?*wQo%H)P`S7F9qN;L|qKs4>N!g>Sn;8huFO>8&Kh&yeDod{lfd>=1lym?H zkezm1MjkRU^T|m_#DMloM5AN6V5Bg^x|Ka-1j)?CFJiaYOTtu~BWR4Gb(22~NC5Uc zM5_!t19io^3bIhC0GEs_Z6W{wqyoAc1pnkG4e_vH5>5B8F_1{BSH!9e+(nQuv0qe_ zjBuyg$}1$R$7v(8Z5&J-8;C|BC%L@IIhx0rc|`pn0f$-$OKid&R7cIskRoNueTu*f z;it_MsDY&%23qY(5CTBkP6NBkDnOQ&a*`#+VsY@^eq0EUN?#)Go^NFr8YN1gP7 z24I7tBP*EvFS4sEFIWIhkq87eFtdUH0r*uj$N+uQJ{*#v3BffEVWMnG0I_VVLQF6d zy?|DvBV_|oU?Pbln9>(gBWH`zX!}+pHM49~0u)^YC)*)R6}$i~PgMD=bfhD3U7Zpb zLVM*<$m+qxgcXw*sK!I5yQ(8qH9ezv2&fsRx8qj{u~I;i!Z%7L0o2Eo8&m(?Tse$A z)8AB6Hf__bSgIp11T>I3LnReDoY zqywe>+5($34E&)CyuVu|E3-ODJeai!D6M!s5X>sLRQ-WCa?A=4fB>kl} z17CZ^EK;ULdADFPf{;*xVU!+@=$h^Evd_E-wv4Y9Lmr6Yz5$>~cU8t11Ri-ZKo3Ki zahzNTp&?>4nX5Th(A-OTaxuRP8ZdG|q=c1*r7b-*i6~&w4$(5(WsLuIJ1t;Q4EXvN z_F70X#n_fZ(~afW%~-EOaRO@<+xL?K1}HI}xjvG-z$#*ytYX`kTmvBb)E?RtHXyJE zK!X7jur**>F#ucx2ufN+J9SDXB#KJ!Gy|a1Q5tUCc=qd>o+cfx9lq^=C3#`bi+PPgfGa3)0yn-4)05AwT zQlo-T)ylCIgSHyWibCM>P*G7Ni33F7h(nzk!y3p9ni;CxzI@Jf+&R$NQOE4Jg`kuJ zCOEIWvLD{pBW)TeDq>g3o%|F)qqM5zu^t3zw!KQ(A{IScTY~?33Le!_s65=>Q?a_r zy3I3G7rbboBf%BrX=XJBonF{5}Q1#Qkl9oi$~u zlTu!-JQv{*c)Xz)XiN_K5W$=w?#KoCav=oaRy*_v{>-uCG|>qtgr;RC86*TU;DH?M zU6C}*(nMp%t>SX6!^oh&a-zg8gW^zeXW%gp)KlF$gwFp9ePj7xW|=tv2VSxz5IL;4 zW020{(txGrg`ixb4mwGtE4c`+<5cUFW^l8~?#16}W@Sx<#P2)9x?P;Es3&Hxs6-xRayH83a>%Obbzv0V9r96c0(b*kbSvLxEcueE0I zEU>LSB4?@q4}Q;Cy=koqfDn9{928QFSY-2Xr;R=UPK!EB_QNtDP@#<44s2Iey}ZvuN#7haSG$ovc%Tf(Y$s*kN)V87HR*IE~+$jLzD(DK*o{>A<&y9x>KeA z?43iu`Up#{osIs2p62Um?O*@J>7napX|74-$(hCNkNjY(qmCvG7FMtV;4yI7VUw#2 z%%=A(wn|YCBBs&>Q9>J`H~RpPt89bpo~BYxZVk|{V)Zv}tE-kyTD83bl6C3=h}vhg z+R!x}|FCTmSnH!3aF|VI0$l(IKk)gO=E%!|$+K(4^v~0k8lf?s+r8yQ$$^FbW-TzN zywhtc@Nb`t)I%WU?Hq$ZSkN5a%!eBtG}1?xXu#5uqlfUg-#INHknz7gY8f;Y)xJ?0 zLys+cqE&%%u&!jZKo&_Z-!v-HZi1rK?B@2{_wf>|tD{S>5vhef9s0AW1+H@!9Y{RU81%eXBQ5k5#?v`4t?&fdTC@UCrr2A8$TSTIk%%gOWBs5|lE{YfX z%aAvaE}A1)1YEKl1X)%wPu6UXn|F5aQXL{i&!79Fp-#c#6jdYjFtE>md)(cI_}-3q z;5O+LT62r95~Wfq8>*cVl>-0rCEt*bO9}jaIQEa6;bpf5{G3(!QI_?Xq~Qn8cG)(q z_;9C22kL3og2ek%Zf(>U{0F>qa zsM!EuWh=-^2wQ*v00=5xyktPYAdHm+g{}wz0t8EyB0rK8Is)VeMj|w{@aX7cNE9DO zAQU*WrcE0u2hVJ1d8Z|r3?>;M7+8To!w3Ty@r)pH!XgqvB`C>(W5h?|3>A;<$sW|*`_7-MMInOrDkcoqgB_BFv6YOrM-N^hLlmKtb$aYau) zF($!K6V@OUWLZ&&mj^ToB?Sfze38aUZKx%e9Y`LDhZfFWi`QGfz!29UuQF3F*$00O|-Qj<5GCR$TNAmt|wsQsxL zYCsThC~%o!hJl41{$`LDXrQ6ep+NbDnPnb@7y?rgEiuuAN8!L%VHW`?pp{ti5oM-9 zacRJ&4WO~2TX1ohkSy z#vozc*enUk{*~!NwdF9|YJLXTU~3OHgjJ+uP{4oz1~9;YiYOw~s$Tw0N8NSXc?TZA z<^_D-cqX(rAHwj_x3DSsDMCpk5o4$CQR(s^ZGo*WR+_pH68iCiK2*TefbqVIz-A4o z+$dZcLR$Zs0Y6E=gcK=?K?M_Hq#-Af8lGWBfqW!&v5)JLTBFEI@e0|F6`sY!AS|t= zs&}a0A|(LDwKwrSL7U1iY%H@)2(SVpj03-^yn;L ziD{}tMlu*GfdvbUJOKg1wW+HDl_8M86)^=s0ow=&02Jaxo>3PBHB7+Unu2~xa#H|m z#06o@Wkf{R+A3%SjWHt2QvnNHVK@PjT08ZeV#rB{wQpn=rB{HF%JnQExlYwn%5yD4 z5;{pq!bcKd(5&qX&>ZF&h%Y_ml~G8~NLJ{Qt}IBYn-&qY+{SB=tZ%qcWW79t0hALs z=)3c~L@XO=g;_8Q z0Rw7Qqtd1+ig3Uuk_ifD zAnzMP*}{}W`5iz2So=zXwA7Jb=@4m>3CUfW+gpe(@R$QMj%`^1p>GC~9Qgf=48v(0&N74n8jh?XvSA;D zdeA&O;%0R{XkDLJla)lth;Wq=2<{9(wyCMHYIVrdZ$jV|XB7dHe=*9am{TfYt?U15 zS0q8!mSUMF8E8#9qt#2$0K)GfYiY~jN)?5|F(`CxD6bpA|H4IuL|r)(Z40!qHP&R$^g2OUA84E#N{eIzwd| zB|kJ^#%V_6Bn1W{DGW@`059{xnXF{ABd9MmA)!d89+bgi5eNen7=S0yNI&4=X$)mq zn%0uyL)Ep?2UeWS_=ICPsqJo{vm&Wn5F*2N#pIW`x>f_e$ixZos(8pOnKO@imslKg zm(!!b$i~P30few7W{`^@3*ghu9SSwXG9E_8B|3;SPcnldlwSsd0lQ#Mlo$=UF9h1n zo-S*e$R2=;R5K;E1h-9Y`tO?n3@3WV86SnQ_JF5ApaS~?19uXk3$20Y^dx9Z3tkqf zm&FkggBv0h?>dhP)DA^0JH$?i zH#DU2z$o1%VwQ?ZKFyFZl|m{56Fl1)D}X99OncgkYKTG=YML; zocdB$o=}=6aP!IAdJZSI1^TZ*USvCgvf;&M)KC*^SID*vr^Y^36mR$DmkjQZ5Bx;X z$m|I$dO{$CB|OO(4)wv>VJZUUOIHpE;ZfQ|WP@h4?G`#Xqc(XaB`CY<@0!%2dG&@c zD=bc#Rz@b{tm%ooOsUe`8xiS1dl8ibZn`>xd?r zU%fGiQA5$~GPB0{F%&bCdv2u^MFxUGD-bMgjOa{<1F@RQbVcCUdY61hJy=Ozz&Q}6 z*kGh8!(|N)kn*;&h(ph@l_<}AsrV#7JVqP@m_IcoTh5Syyro&qY!(>I+bnZ}k+Zd~ z#ZP_~sB=6AAqWr|4K5e!=cf*OF&$*^_oOvk4S~TjWJC$7uOQ~-x`v&bB-xlC7yh%h;Ias{aPR>CQkZjASM5{(hfn8A>-bDWaFg*d&%<0)qz5z_>LE}jA zZC}Fb-B&X;njqBh7;S)t>7Rqvm)W2BSp)zHbRk%8K;0TFlBAtM%Y1I@Eu`< z098R0r|gAb{dTiigaLU0nZL} zLl6OxwGQzOiWF4<1AqqGS%CsTj(I@}fFT+TIZkKnn6os>{t+PyM&W~5g!YA<8&MA# zEL-@=1w;9O44B{fp&!7^+|04xIEg?xxgY%9*=*IK&#{-Paa956#Jhk9yj0NtE!axQ zQlK5(bL|oY=#KoHSE(uC^Fe?f=$M7PPcKbZq3srMxlhK4&Df0`#=Od*-4NG>;F=^@ zykrHhyqYc*$og#G4JHN5m;`Q!ML)d(a+&{3n_vj$P#0+cML~r?h)j-%=wJ%5l^>`E zkg3m+DaI@1U6!e%AMk|k-Gl+05gUQq8km{wJW*a`R#M4PP+Vba2u@M;h#tTNFjY(1 zz?fQrQd^N*9=xCgO<@|+h@jY!8@&!m{@DlVjAsCp4Ux@`p;te-ivUnWBmzetSzSaK z9moJjWOSlT5nOSo7ovF(wr+M3@pat!_4B&&7W-zjzvym z5!#gYT;fk0!6tcJ_Z7}^^=QlZ07>d-$Q)WowoILL`JuGvqL^X8N_fVHVz+k&+lP zi5R4y5rq&#gjz{TNC4hOO>$XSogrRg-q!)%k`z)#Vx=&l*8$Rr9=O<;phQ8j-9W9T z(d1^`&6jm$1+N_mMpoyNkU;}LW4@r`nu+CD5{!fHKv}NeS;F5cm8i5gJ57-PCcg8U_d$L6Ah`jLC}X1lFw@CneT8LgpUg zAO8s*_FW(zZVUDdsn-F(06hO3IucKW1)vaFKzhkYXF^NXDJ4*Fs9K$)cQQhg6*;~4q~wPVnA?d^&n(gc zc-VNw3D2C#I_^+}@Fx)HWjW3jn0UrjZq9%tr~{D}Sf*ctlI6`!sIb-tL1?d)A9085dz@KnfXvqa+6}k`b4#pxBY= zCM{{S5}JXK=^n0p}67mnS@okP371Qh$)S~E*KtKl&*zOGofLV_6h}{k*zkXY?hJcJk8>v zh)R|T?uBRgT+xWG2GGW90YDBMhOHXJtb(fIuR3Ubu+tu_E!(y&&ZX1aRwyf8sDCh% zA6N*PjUrGbn$(d5yk4f)EauY+lvRf9U0vjH=nSg8*xNJ!6N=~%-s`R{T2>8+LNQkc z#hVB2*}57|(m?-70ZdoP#0a~3U&eYFw^WbFapNZr=Lg|a9$gzpVgSS(tuX=$VZJFyf?{0lZW#iZJaR#DoU!N!bk} zdgcL0^aW5A!OVaTNCE{{u-n2d2LCGEN{7!W1(6u=$q5^3 zHkNL=Pj8&?vVySQ3YgU(M2C6Ns!gnobd_bftC_$H1e}`X(1;0o?lV-PWYhH_?~Rvs^5sg&Z8^Iqe_fmpi@NLN5f3fd0ll;ptDtN#|`PWFn>L=TY) z(RLn^=S0nN(F{~o02_aS0Q~Oo0twU5V5}Mz&AMr6Jd)rv9LxX!RiThv`Gyo+jtjjj zHrZtbfbkEHrbGT%ZBT2tc%-IzPKVpeXJa9sqz4-%CW3~6f#YS5;U&h2t>L9#JGA&QljBPVu2kD*XUa;}nkf#-&r zc0&K^{Y9e`ARG~u+o3#3rA_g^E~#fe)gth&2V9{HWO1*^02{jR!#bg2LV%S@Eu?a& zdBJn;T6DAIp^=gRA@mh9?V%q?fg#8SaM=V!K9{c8MOn~{F1{d65Qb79+-YzHR912; z1!olMB@{|VTNcgG>>^6Oggs`n{FZ8JVg}e2Zv0k_8^l|$EJ)FEZkU0A=soittU(66 zGAw_k*}_~pNpK6`0>t2QFUPG~{&EKgg6u&vXo**jHYSupE8()W3Zu~|wgIvEBBmvQ zqaGotdYG5gO#)VmUS0-?4%+4XR~S(2y(uCSo=N1a8y@@64~a~1QR`n00ue7o)2095 zFCJy0^qah5=t>%Q7mN58nTKNuZfZt@1YC?q)cO&8ZqBGFEaC}p?KZU zPMiBYOHkkiZ@0@FS}_}s>>IDk7zBrS{&aMEY{LCpfBvTPgbV>3fNz`xK^TPd4Yf?z zXF@e)S_GSmGPMawP>E`)d$mSzCG%R>wcRN2RyXk3h5{`^3_FSS`{nX3m$g~X+;$u* z2dA&{sD3Zxp zV1^swDo)hkjYOsYsxR{B;0wAvv}qLbsM=vQ5!YsG>wt6Z#{sRJzpH zWvZtNLsUqVEdUL8+JZI2oD+ZxIHm&(S_4Rk4Fp{u@Le4T75HtuUZP>{l!jS2the%q zV4WBAb6$t4g@<_U4ku2G&%11^*^E>$@wPqTWpNfe0l*1hvKR#@y9_1YH@mnQB8#?7 zPNlp}s&fiys0mYj%(&G#UsNg|#6o6`_Rr$qv)5)c`b!F0N( z54g-#0?-?H5OAfadl~dCb%lRHh$d8ugI(Yr-wKt)%9nawe^%Aax|$Hx0GnDN#X1ws zivfV36Bg0Fy}F0T;hFUI#znE(NjglVz5P(OQ$;Sy0|m`cAmZ>l${JlEyd%i$9&1EJ zCQ_>LraIM(Y|7H!KKIXc~F1?;8PgyjL#IYI+!N}~pk(ZvwQ)2|wiKE&D^qT0a zdNTx=h3z4pCJP}K^uT?ig8#77TJFFOxPT5=fA)j*_HR0U@O;nDEqDn1a|lK-+r{Tu zW%w=Os^`50PCVFCfKRfr*XJ*=cSsmiUAA`Hb_0X~3JbiD0dpk*hB$KU;AwaV;v9(+ z>9j$^z{>&%c|06AP-9Vq1B@6A1XIR=8ix;AE^PTl!GZ;ONS2J?=Yq_d97S23VTc%;2y}Eli**MGE5!J{geo^VCUP4~IyQ z@R0**XQy)Y=z(ldL4~Cl!;JaqwsTbk7`{ZVFkmDAl8^)4j!=_PXR@NFN_ZNTxQE`L zJxrx3oKL~pvPmS|d&Ud|2z(kRaSd5xX95eb(={$(`*Z^!wM6;coh;iUY1_Ux9s+lG z0Rt1Xwz!uH2JXUO5iWWt1;GSKS+EmSMv3IXKVXp1k`^d=q=gxF(1F7lX22yw8g#gj z#79m6<-`;lF=fRTLwS*v7-3W;!b8v79{OY<tRX2;kqce?8thbNe9*zBE8GNa9n}^#rZgQj z^2oShZD0^GuIu>IxbvpSjX%fyG}b6n!iukfnvJrxqOg3xfyUh=vssV!^^-c>-0qW0 zEVC*T&AU8`87)l@&{zOQ^@g;iHN+4=0N_NjZzqwfHPQ`P8r?IE21wATw1PDw!Sw|c zxMI&z&FGI$GA^iCI3qHhDi&Tr6Z-#O2v9yFPg4;vok%lQ7l5cPwU6@IGZ32XiVQLk znSnyDNFuKI$O5CP_{=q;sd2!@n6g!l~Lb8?Fbc!*q5uy3Gb&!muEH=~niO75=G7}!{f~~SZuVl8X_B3o) zEj)=Ccs76!j_hbyxWUo@!637djcQ4x+J>^`0uXJDYbXfY6p>iPvf)TVYSR%Blwbtp z6%TH5<5T9^Aihz(jZcztO|7yLnb~O0Q~-z)8>jT8PZ8#C%W7Xw6o4#z=|OQ?a@^q7 zBnH1wZXnWo*`bUT7{w`x4X^)VNvDMLuT+I51kZ_p2f+|G)e-V2)NGh@-mnW zL4NO%!CUClE|5&g3xBzbQlzj3tt5bTg7FrC32ZUkQ2-gj1H;fYrz@ZF6-QL1 zmRFKXhqY1J$;xw|(S>X)1`C)$SO~BaZiQjMOVtdU$w>Anp@P3+SwZC_ovj3Mh(t6Z zgq)^Ck5+93Pwd*%Mq1KUP|=DhHCq-Fbb}i#p)6w%V;E;TkvnRxrfCEdm{3!IUXF7= zeA(Mj)$}DIdGjs}bfN!%`eVjqhG9%p3Y8TwQa_p{R6HOd0GcH7fK`?udm0eX3JK5= z`?<>_3LMfK)X0RrI0_C_-O5zR^%>V0%MjSp(;E)SMq6p;o|nPNE8pb@@BBtPu4$7m zALZAE?DR-{dFx*NL&wMvN?;4%OcT23gj2zfEf|=f|C+VJFEkJ#`hpDjPL@atd?lSq zQ5Fe90+KOkB?R!YSuJyBE*us%W|p+xVt!@-VDf8RcTr&h3ARAf7OScmtDM6aRzr9? z(@@lnO-1==FqVNQ0`$q~(l+W*shO9g=;hjs#@1f3sgyx1)glz;vsInaG^bi}>V0R* zCCQQyBUPe{Px1fe*!*^Nn0E8#bwH`cM?%C@+iXl)%vvI7%9h#{f@ez>=eJUc%^lljY^6 z01ixmUioIm$Ql){8UUl0ikD8531|RGI0ADbwg5q7#t;Y5gSrCaQ=>pwcz1bKtQr_# zL}G*q(t=X}7_ef=Y&BNPT#Lp;oCO&qVOR4p@pw*nn4;|v#M-GSN_dQAf#i6Fj)u}e z1%#dfxK5EZfae73YXR+QS|o{Tr{pkD>dz^G2;)tgC(5f*^`;lrCXzKuUG21$%Gaem zz(Oo9$6x>UR(Ol+MpQB}uHDfEy~DAoz57!ZI4 z=dP(?3Il$!9ha9;b2)Kg-5D0lCPle*bLp!Vk2fMuAOW$&izu2Iw;}-I?f8FR=pAq= zrqG4Og~+8jiJT-Usb&||z;a+*#G$<7)ELCnys2SLJ~sty@i9?C+GQNPciSerkjWeH z9u#$X+0dn^DNk0$(b&X{hxA$_f*bFjU@1Od=14F?Fi2X;0RdX|OA zEQ?d=n*D|b+Ww0j_oNIl^Ub9u17hf-A)Cj)L*W?jz!jv?P~4qSd9d=NZ0CXclKq< z_70B!F2awBkEk$@*#ssviUm+;kjQ$X-Lx;i!bI3$(AS0{y7D7`z{|}d#n&QiJi?frVRdK+9-|(#RLYAuZ#%A z0+g+u3IzdmhAh%g3i@vVK5PxT%43)SnG~Z=poQJODJ7;Qx)4CY+=x;LAg@Af%RG2)v>+a8bzGse4mMb$ikN5bxDGEf6K&;wz?5k8RCHt@YhummS$M|7kMP!IwC zd<+g=?C?B^tZYe=CT{uQpgcP4fogzfNKJvdqG;?)6JKfDe6bnBp)$hUNhg z4GC*1!gPY;B;W~sPt7VTd&r;x94iqehAFTuSdOeYe!>6*;437eQ(7n71SYp~PMXkS zBaP$Zz^QuZZmP6}3T{euoaOQ`hnSFW46aZHy~%H2LV=p%;OxpYmW`9f$PrH``5=iA zyYE&&CO}FJSCHfBjw8n~CNkz1IIsmkWCoa#F53>iND$Xvsv3Pjx&9BodQd?B_M=&L zNFI-Bza-A93<*%g;yf0T#Cik%8p+X8%pLKF1_huIPltU3MCj5GH=1MqzR1~f2LO1c zU|`4#Ht71MEF8mv+*lkf%61|w-7-?94&6L)$nR`TT_(viAw zq9+a!fLaU)yU!}au}u6@2AzeDl42|hg~D*|p=!H}8 z7;Ehq&5ns|KnLp5E}hYe;LZe>pbNy(9sA1#D~tOUF;d`w#r(-5CJa~qR#Xy6tgJe* z0Q@QjkxwzsvoG%s2(QBmLM?z4D&!_|*ea4_Hib7eB|R`e7G%nkdXgbPNbAZHb_%8^ zQYjlDt~((K;VhslYI4YoG$W>vB8;<>&d33@WB%9*0}Mma2&e(hkg0^EIY05K)CYUu zAe(xQ0L%kZZm|%s4^9t*DI1F*DJvx*j^e(PZZM8Dt^i?J<#jsf-5h8?R*+IF)jJKW z=`^OqgdpmC(=2(dr zP*mL@EXFK+T+A;b@<7325O6cvSS~DtL}P>?VmVSZR><~p3o$mQB`F0Vsi0pANlsZZ zJlVvX0IwW@_S7Vk&VRqO|LS&%uGv#DU;VBIr=%=9dz+SF>6o5I? zrzFKQ+WN+jM3JC2RcBXYfzGH#k#JP8W5$4QC-MgtebzGn?e+|=k$18)N;ic7yloyo zwhqpq0my9NtS&Wcf-=(fQp*($FpTe9F~f?&HvX+jaFYtjKz%4zNz-|A-OybO~-fG1XKs3FtugW#=l4+_|^iH6(5I3TAwN5YU&T5sHSHb9E zA>%aIwQD(OySgr~a+QRD;000@LaPWaIpk_sAXa77X=_y}M)X5@Qt>KNUoh_4xORF^ z^Pd1E9LKgf3rwhFlyL%SK3{P?W-_59kz{apN}i=kp>qDJ)q<|z0d4kriz+Peke38! zaO=mjHYlwWvDYlZC3(q}9`{j`o+T!S7yb)g_a6_Kh4tI6LguEC(&XWTdHU&!5CZhyj&sez}IV3glWsyeEA^9rj}|= za(Q)1bq*qHb%L-K5Ny3bi}_Il2Gvr-kvdF`YZYiF`Dn5Ht0<&u^di-rz>>laFk!LD zb}3@Th%XVVb$=+v(|(UPg$-7a36hwkb$lm&9=9qM1t{Q(2W6MTo+`KSuVnj3Ax6}D z$TM~JX8Ud>{Qv}F!L$w&6$uH{dep!&bITL|6+;1sL+gE4xmg8KL)wX(oB)D7kv?$4j4isHij3^4SLrocO;lE_?MTkEP#!} z=4`e*7|czy<%{Kf%xr67xsI|4j24)l!Q#+Vad=hML#EL3ucUuZEK$T+Q%5Z(& zv4E}Mtw`}qOtSW_ux{tIYTJ!y;+fP@DesZI}*1;ct^9xMs#6A<|p0*lNuk8T~k2cvIlo%gO=-*;=dDQka< zq5I_cKxn&uqZVu6+J*~VS=kN}dEPiI4Sbmg#=-*54Xw2bKL!tmnSjN zl;C-SBcTG@!CrRs?kIQ2?PN%CxhXH1bXV_$n&J|*WIIMt(wR+&8JqJo@d_vbc%bks z*$NEfzAe+ezb{E*Yk0ii_MDj&&B&MxIEB$CPE#vmoCP&n>=eZX0U)t)gkoSq4Kij7 z{>J!<2Oui3Hv@1YjU9B2$Byj({y>f&n~otHi6on#EqlA5jhK6|jtG!-41jwSxoKy>^Xq<(BvPplqGIY*kutH!W6Vtclx|Zv;EAoo)ROS@*3t%OfONs=Su&FrX zi~`mx4hfdbUw$RG`_l%U{6hj7=eh~ zt!qVgUy)@F05<}7sU!#jI+zDBC((Ui#EG`Vz4yeeM#Wd0eC?P=PH@mDfT;UejChYI6qmmk*B6OUAvd~xd3f)r#Skw|4|>KA zT=dZ771F6Jdm8z1w+wX)^h7HzP2YTARHZi?(msgBO2)*Pg!@n0bghoZA~RN;JADB% z_clVcP`z)qA-=Yv&@0I|Mggm=yk)+=WV9m%t z(XRZzv`#x_aLj{ZkZSy6KB7l=$kCcp#X1b-=TmnKAZWR_jSm|I0D9M1yv3uDM}GZB zg2ZM2lE%wtzafQ>ovKV?BF)57MM1~94JFzwttd)3;y}^AM7^HB;15Y`bQ)Falq{Vo zRU>-BUHP_x_XV#19}y@6!yofD-J61Sma?krFwUib352!CEa;R!(ut!RS+PV+H;e}5 zjCDPT!S=(`qg7h@FxwxeHS)c!)maar60#o1$rp@3>KlKJ`l{t~`?h(60+(m+uKBL< z(7Oa9Tb8GIXC=L*5x?zQz(u0e@fvA<*q`;t+kk;BSZJB%)*r-;)2l;7is>_SvU81# z)-XKN*ZaE<3=$t#tQ>~kuRBx}SMGwS54lRbiNGygZI!RIZkTJq@-zb~1pGV6tIC=I zg2x3u1U%?DD8-8c25%bPc_>GY1`Tr}LR^C;z<~t?7dJ9z3Ced8qzONe;Xh+#s-jZCQ&1VA0Sp(X+* zVH$)ng9gpjGZP=QsVRnH95`7WAV`qrOu`BiBoH9rrDDS|PZ_d}2&W8_1b*3^ZE!OI zhPV{9PGCR=tC>NEAcSSA_b+CNUgL@Zt1!Wr&44v$c0*yM8n#luD7ZsKrnGeZ^tRf;86}P2;qVX z6>xz67g8KBKm-xgP!~=ceJGFuSEN*i8K0G9T7+&GVns>?)MWqy6krsS8xw_r)f*Z( z_aa#(5u`*D9)4t(K}r>MT1zesA{PT1as-4AB#@AY2NcpqzycOAW!6$mO(uX(CTSRm z3^{!?B4MPlVceE?2sVJ2I$0SDaX;xHoE2^!l_MQ4d5Pp?muKn7-*Rhn{B zjgf$i7Th&y2m;uKQCQB2wiHGx2_V24I?fhAhKj`$S85tEnOhnLK#(Dzr5(!UOPQWw z;;W*q`G9Y=I+~TMH+i9(jb^+mVyn8rBvXSBk+IMfCW7__6=0+|s#?c^DL?~csR5k- z1k_oV9l70or{8(_-A5iQ@aZsv3--;Mp1SFN$KQ4VT6aSaSoi>hw@5}vu(Jji91*k( zj7Y_+uuiFAl~t0N#1}!8QEamaM|4G`6IfiLiHb5Rn^Ixf>VYi za#C0Z28vb<7|BUuJIBpL1-mC(Sbb@zuQn!DK~M`zkw5?pIH0U_Un$oy0v0o&H@OU<_QkaIq8W!Bw#$Gkb9V!nZXC z)?r9Li1uO9ev75J)s<^5D(Bw2F1zQsO9{O6)@v{DzUS)+fG-F*U>5*eVaCR-UvGVL z77iz7h6d%K6S5$GWwiAPXF$EOl5e(#7y`>wlK^^9YUiYUG<`n?7$~-zt)P#}Bf;fP z2m}-Yadtug4!tTi$U(yu5EMBx$S5phic%nW@I6Lg2v$^s8@4i1fDAFs4++d*g%%Ki z$(5~ky^0XuG&ZpEjS7ZG`(SEDhAYsFENKZqUkmSW7Eo>FHf#wE1ysTpupp5NZ-ELJ ztnfa!-AH4BNz|fdqY|8iKmpZr(2kBoI}|nKELywVtsZwoG8C&SSTkS$&2pGS1~7qE ztz!)CoJ4{x?2dQ+`CagYcRcgZ;t?wdBzo3$FXs7YU;X-*4@!qNH)79xh1%Y5AeO<2 zWyq35q+#~bk}*$S1cvd8lbxP)fPpN;0t>KR6x))P{^5##_;cCI7NI~`rEf=x8X`?J z@W4y?2m(#h!UexaCoSehGieaqp2$ErFGS!Fnj|1jKH`CuQNWWEX`5`=XEs84lXK&A zVU{E(OV+_{c15HDJ0-X`+%RV_-AWK^tO%3k*vMPC>C#}f$FdCRO*Uw8r;;%8%ANHL z0T{^E=}Kouo9ID>1~b;l3>V3b8ODwn!bujKK(2E25nagxQRowMmp+cvHL%b_G(5&$3g)>;D*R%meD zyq=AU70NnVp#YaOK)9sEkrpv#u@PzSMYNfck{ov+N$4oCaC#)O{sjEJKg?R7kd5*5-VjCWA7fUODWP6`2w6k1)30- zM?hv?>*-$gk&(X$>)67y`=L~_a)YK$_|`v7P1z85%zmf)0WvPYS%X zz4EnX7$O!5g{jXl$nPyU%GDt{y6Rfu5|?+`p{AHHw$eC2u7)X%iJbW$TnTwrQEjod zBn0Jeo#C$U%Q4!PZCGwTn@fylv;%J9t&@31b6))4wm?fp1oY{~*6K`LxPsb#9=3{} zA+b^m;Fr^2TS2K(YMDWL<}@>x&6#+vdNASUl`3Mok)W4aDh;4w?#`tB->~I5F9%-bF4NZ9)dqsXfZ&BEf$q_ui-GA1VA^V z1}S4J4bU^ImO)8HDc}`@*f(?A=L0>pRwu`S8;CcXCUqX6KO&(&-nRgDxIVujS{O1y zJ*Ppflm>T4SZ!1kU;u`Z(NDC+bzL+W)O0CH(GY+JD%3LuHZdFym=uy?06aku5WrAn z^Mc#NOeJE6g0fpCf;O?^hI(iJGM+JQQ^OEXC`l$LNrr=V`=xi7mTk?FZUEB*DiClv zxMqU111)fRss{-xAdR>{dhbCmaJCKuBPS*|c?V^+x!2TeDPo1Qvba(@}AU9FEu! zS0Xg?vk|P8L08f(i#2pK}*Q|UQWc@ZZP zM|hMJ+_QflGkCrzbO`2&D*1_?bv{c5I*_(|yVf-1H36`uBQG%)Nn(#{z>aA(B2;o* zJRt?4V>?@h23Hn`6ktK+g>JwR0u@s~6c#OWF&6#_??c*G;p^g@^agPNUpQnTPVS3WYpZ&S0 zMp#k}2dM)3A2AhiMZg86=#c5Tp1l!mD>(tCq(7I0CkgR763QTLuw-xgcD)ECi%|xb zNdSVtlae_9H!N2XCcNoF^ru}NTZ8IUGM5La{*;rXQz zd3IiKh;wLOPjXdw+E`b!OL0U1bz&j>s1UfMQ+ufZUW1ECbQcwxLm`o+0VrM=h<{)@ zd~9c;6Tq(hC|b920C({)7ZpOR#HFKCinSD^0Mr$Q=Qd*{HyQ_#hzDbU`FG-Ga+>O0 zRIvzz`jrF6jp)IH`{`zA>8N4pmIKN!bw)Go;u?a8(!pHK%qz8iIUV1R43nEnv5Cq+i;)p=~JxH%i>6jX|pQ>wSlm$y6#M=`fcmosxA5N_OBOQbqFKS@*$@L1{OZhIRB zMTv`YrIgEpPraphGS(b78#TLSwC;sVOHin2);!t)df_3U;xUcSD2=2yNQ4B9jXJW) zgM_cgNV11Zt74>l=4Vh*xjJ+=ag!}Y#Tux^d=5}!yFq@$(R8m0D<|P~B0~mMd5^eg zu?w;WCF&YKCj~7CoWh84UM7-AXOTuC7Xe^_7h!f_kr}vl0RUNEXL1Heh;V*&gvS zjc_cyqIXCoE2-XSsS30J5ScO;)_n7IZx~P_a;0`m>=ohqRSw}9O?O6D_Kp+sQ)UD% z*eRrEb7Z23Q&Q-HTPQxs31zh>kAhq+D1n+mbFI~>Cw&IW8VUwxz!6P5VeUx(96>a7 z#NrzmAVi>pE0u9S8ElHZENI-Rs=Sm?kfLs0Mkz#7VvHFv;7b>|#3{!DBL(QDgFqKk zvXc%*01w-NYy`K~><1OoR8RUbW8lfIL3>22xQ5WF!kMK{b`{+PRjW*+*&7#?QCl0u z1btbVh7&?gHpC1AZ;sY51$%EuEN;waeSC665=O>lOkHivgE~-+*JzE2N=S1|vT=6D zCmWaNDwPm2ItwFhko+V@3LJXSTK(U_p`pRHIk`dq#tc zke^|+XTd*Db_Nr-uAyqKDGWtPkp$1|x9)1gP-Z`sR%4@MxZP}$Z|bLumiGgh} zd4Bt=)?zDW04g0QO0Z+jG<*{#1QG(!+0_TM3^PE;cQ^XOh-2;lvcdw}cOq#w0X{HU z;BS(u@Z$v^ma-txz7fm^6$xPysJ9a?T1DdqU@`zK6J>SH2MT*RV#_B?^g1Lg2>*Lc zdH^z$tyaP$G8sGot?ZtK&}%yW$tfH%;x$mt=HJt5N4rUrIzFAHxJ9JO)xY`$aglvI ztmG_N7eKYkR?&XAcZ(S(y)2;+WO4*B1<}5ZpYg)R!#&YzUY5tb(JNJ5%1y2?dzY(w zZzT6L-eX@4O4I50ml7)xT1HhO^SlV<6|HrS&H-;wHIsR*U4A?nz&5p|W)okn!}ZD- zfELo3$39Os7~T+QP(` z90AyGVov6U3aLM6jWjUa6s-d`pnAfcdNUx6BD-+uve9wAFGS!-If}kHMSglthZ-XC z2Ql(FzCB_n)OMMtd;!*o;pd~mGHsP5{@l`E*qf5hb(!LTPiz!lh#}Z!zR8xe-dZH4 zNoESvl<3r&`iNoA-RSw{)Wf-yRP9(jGm+&-V&4Cm87_L7{Oa*{*#f6Cyk`gW+3Nw9WXNCxUN>J7dFvT|^A|nE@uMIX&bYX|x zfoSo~6z=35cN0<^u68>1Z$0O3Hx965Fj;xWVjBmjmpV6HrrB7sB&DGLnf!Kg>#g)t4i zJOooc5HOM?9+EkkP(h;x4jd^72u!Sy)WQNE z7x*j+6qU!+3Kljt1;U3wl7?j>K$w_7O3H>5CTt|*1;L>R3M!B=aD`>TlVQT7eEITA zm@`4sm@#8D#DM`3K7Kq4cff**7%Cc2EXAf*ume6$wkXjt$TBqt)*+aeZs?b77*L>c zm@wQUKme73y-D_LRkcTH%0%gp4i~(A^QQ4z2aPFDrtHvhTt_43&2vA;eOrr2N*vKmo820LqOqJnTrI z5Yez=kP4Yl06_=&5MnAJ&U&b?E11v&02Id~iva;7)W8fwz>?^r1^}~SFtJ9^ zYsoYO={w-6j2Lkbf(*zA5HyuO<4-Nr4zo+GSRB(s00?dj1j@a99J9X{2Sg}?s`g@l zp)?Ad%S<>BKmf4O$S_fYq~K)A4<(eiz=tj`O$sXs7z<$n2jxt{3kDKcx;q&?qcKCw&-BVZ3c01ae-WOS0L90afK_+Id`F(F5c>_qqh%xw|lLJ@06h6 zfDK_f|mG6avB;KaE4EsH_`b*_X6FpGkf z+CW1A1g`R95ylp>P{}7TNT30s06tCTG7@xDSBd0HHIOEDl)$~N6I+dpz=XZe_{~WG zQ>48vHNe7)^)%jbR;9{e+u3C6qU<~t@M*@{MicQagCp!p*Qu7f9 zbu0oPqt9SE=mkX;PH%m~U}?-k!U?s|3{#rb8l*=D8e$C$2!!BP8giDSSOh;y+fzfB z0EP**iE;#Z9TP@Bg0ux#qd=S%~)V+!>LS(?nD3mDU8If7d za+YA^lspUoKo1w9(v`$mfFp&Z00y!G3`s*e+4<*l7Es<}o>HmDSdNfhAPi~}35LYU z@H{ICP)rhbfv=Dd16CBkPeg=<1c1m4HoM6Zf%cTAK<{@sQc$a?QUgl{Fai>>P?b97 zn5r=bdRM!kiaK*G))epu+S{JJ<^`{Ct)P7Bdqpx`p-l8mf|=}#A2GjYzx(CSI|?*d z*bJlq1fEholQLiyz-feT77T(G*<1lSf;N;!z2!4 zxzvEIkn|V-y!jKJJQ+h(K-V6)31(9ku|gRrH^j3gDO!6wLk1A_BqX&A0#Rhh)-+-O zL=Eu(0#LwS1|cVs@(4bzlAB}*IsgFxAOb0qLxyTZ1{t;zE}p6hqegjvWH}9T1HfQP z;Mfuetm!cyp=lp$ST?DO=5K){VHu=?$YI4TDOlxT0cKd2f=(+94Im`|ho}~rQSb{H z;OI`yDmO>b6;nD}Wu)#39~dq`fFVelcsiESloaKs5{cd!4uYY0GPYWb`3hbq^-E6# zlQ!SW#40lTieVn}nV)qgXyq3#`pt`)__C%rvq>Mvcp+0$Nl(JSi9p8i;D851Yye02 zg@-)?5^-B>Yt(Y+N`xPPe+lS))6S1pJz3QMJf^f*<60#ruI>PSKwfI@i2DluT< zA}POu5u^=*xc@|nO72oPwa|2cJvswMQ2MW;xDjbkvOoZ^m)4|s3Icx}5*v(GI}9j| z3dfpAg$(=CqDjA{`mHbV>zM*0SEKj&wHboa-P{w4zvMnxk3T(wg?PsMVKhb@oah`wXxD z`OMt|5qo0bLC*q78Q=n{C#(QFase#zONAQZ+cqhS3RVc+6@n{<+EoT4m(%le3#bH{ z$On3Jil;l#TQ;LfbTXzJ8$0C)8&=OqYRor)qU{PzoJSZs>b znFhwXRy_&|DJ40lhZ`>m0(P<4)Bb0aff0)`=z&n{3?L^6?@tJEFo0%DTU4BsB40~%Yz?=W*1aDv7$vO3rlUY4jO&!NRL~rZENmMTCQXen zXkwjRVN05%p^za;1$b$oLoh)!xClmA4(_-8?PQ&`rpqs=?3ckjX3f%1nxRGivzpiU z@|U~0n)u6C5#+3^@k%7GJ|8k-;UZg^tfoPmYE*+H)3FjF7XpMenXomf%k!Lv*Jc1P z=&qmuq)X1^3;X764+|Ch5Zg==6?Jh3p5^;IGSzcXgTPsqfboVYcdkBqo@za6!H#_E z|C?apdP=5g`Kr^-9o}FJL^@w9HZ*TV>2J$YfYW6+U%L&(jJ1#*L08^)GpjJk@lbSfTn|1;YUZe7rx14_KYk_C~$1L-iuer@O zzj;o=?Dk3)c8^=&6z&V?bps=6tD~6Mb_Gq53;5@V2qw1<447oav0f_?8 zySz9P;%hJFQ9&?)H9r6#5eqyVe3`d1wS9v-qk57?56N7CN055n0qoKk-%dW#I5iLrxtV%$gfIc=T6NFl;r^0}`VkBz8HH1PDQ%jaE z*_8n}7OS8M$;c`Oz_K?~s=hg?g`U?n}TH@<7b<8Nsu-eCseQTY%H4tsVkHc3ZVz8 ztI)aZ9@}6tyo%fM&TCoBFfX@JcX| z3)mXEj*y|Z(ZJB5JQcGDEBXjIv4S}afHC9|q3!D^wSAA%a_A~HckPA1qc z3|hj`Neh+)O%IwAhp;{=ia|q^ppo%Iin<^S>B7SQ0HLYKf=U$1%fhUd1D8{vPnko3 zql7v1`Gh^_#ORnNr-U}wbH!9(ZosNGc0HELmzCe z^<0Ej<2bOmnp%-GlX0Z~5}m+m2$r%z7P7dL7&2+JZtbxvE4^EjTu>d?m^8v0v@g3I#--16Dli z%vVcGdGwmG(-C8x2u;x^PwOJjgp9_DxmjSZ9w#Ty6$t>xOS^$u1Q&{>VuR)tkvHAS#9CD`1v0|+|x^vPXyE(vf< z41G1|JS?*n_Suj$P3eZtTvxv6{fYHe#qXhK2{_z78v_=jCnB4O#Dx2rWbcr*`k6ePIRpd89DONC8zj-};a zP~cDfR3`sqN&yyC`wNAgaNe_eexwIXwb`v&@UxiA9K=#OUt_LvtR9^Z6z2AETvO| zVXZhgxMc*1ToMH=679^xD@dK7JJex;9Nvn=0rJ9;CCCU&P|zi^sJY88D7!{duTZny zI*=jFEE^{6wfg8qBLG+sQkcO7)N9^vuTI!l@e z5E2TQPT(Y(SYla0qk@$GI!v3O*%Hyfnu%oFRH|A599@)Nq+>&UbVog*8Av(Xp%o@n zh|f;#-&O_}rfo`1w7I8EUvTfF~g;k!h z0LgXL1zHLt7=jB1-3wmU8n{vR@W!n88ZdRW-hEDfG0Mf9@b*$9Hp9dBPfciBum_pEG#7w6hk2tF{Xk* zH3K(l5FN>ihkZ3trl~E zv6a1BoiiSuKv#Uy2sB(A83H{`X^k#cARZ(jm}cA}0kn0s!tK&av(OI$uVt+>XO%U; z+}37sz!qkWEe4$t!)U7^13Ic=Nj8#0=+=~i03m@{CIA3KrKmx{JZAF(%05@ig^O6Y ztynOzDh%b}B4aB>As9i}JGi9a=2l`X?V-Eq8@31q(7ifN3237r8A=V}bAauJqmKmE zc?#idqDP_sdp5Qjr~z9DlwcG&feN9;TKhFxR;KEzw(qN!+EabnuIB3g_U~KvWi}nft`bH#x~({=IeV7ZE3zcf3@3Z zMeMj$kHBSwg!^W#Fk-Ll;cphk$euuMzFQH83)UggdkPAn8f5Qg!FVgfc#9JN2rCiV zwuVgrYFyobz8qzqif0XH60leGEyMvqw+|~v&vSsqifIArxwvfcaPC1m`%wY0Qqkm_ zd_3ME>rloXX*QGz140r{qvRipPM16W>4He2+p z)(%kr)#^w8?@8xx1P^daSMaMf@C8;mP3@Kh*L186W(R-pxRyY1LT0*lW(j|&MZjP@ zW6vtsTgj32Rb0$-#va}++%l(U6z}3P2i!sKN#Ay3hEeAtFzin8-5&fOKvTZD5tdiV zSl8m)22;;C8HsTv@gcj>ZqINL7wAKslfIs&B#_l-)?iux zcU4ZCM5(k~9R|mON2MrT!RTe@peNj*_jNZ`XK7}758qwhrQzn$h&K)s)y-_lF!o>7 z15P3Fyw$lb*m*u6DnGd3IIf6<kbSy-5{Z7D)iH26rau$#j!Y|17xf)*`I!IOQrGLqHG;CO z>kHT03y7q+8t2u(o?8-#g~#@#=7MnJ+L!Onwd1|$V_AACy^3=JoO<}X=|iWniPR;B-YhfvSu+sa?!$s zh_;U2wq*gSY*@N>zjj5@qH9*QS787SEO;>Czl9GQE|nNDfjh-lCH4 z*GW)?qEI^iMZEX(5rPDTByj-`9w5kw6kteE0do=L^oAT>RFEKqUaT?I1l<{O#!Uhe zP?P~)FyNqp5lNIHiVY0`U3pe+cu@Y1#!>+uREd+nT z+UFip#;W%oBM%kzYO3-LWpLc$S>Rt5VoTsqxTr27fd$_U?!-aQaz_BWA*d_Bz>~vE zF9k??am5u3;JBa}X{a&pyBOXZIujXqcy-`ZYirbY4l%p!MfVE%@WUZ(+2x`aW1KO^ zZ@SeMBA@6rrYOb-ucpZ-ThhGqkqrIj^V6$5^k|jIJebVcbKiZ<-|Jj`_&xiq`}IYa zAK0Kjr@yt zfPp*+5ZkEMHDgsISF5X4uQ)h??_5wKP!bUm#$_G<5gmXKEy6<91Y{5sAqa9(3DLsh z1%?E42Lb~i0~scOLjzbqU72&&1TaSd16Ym$eWTi^4u&Ea@n?brutFJbHzeE1L0a2^ z!u+ywny>h75@LMB7>j2{k)>&jBWu&enCHefQg3C}i{lE!cfLM(FOT4B-}vrGzR>v5 ze1RM!`u=E0KDMumSb-GKUQ@qG#pVPjxD5_+4 zzH1{KrB_cn;xnIf+$YKkNl3=%v5x{B=s)?{PdoavpbAasAsfoRhxW`Wjr0W2mR8Y9 zUdjmdn+avCUyn?^2>@<qUg_Iczdkm< z`gQE}TDF7OSE-y26kEBsSw;7PKP4)xTAWD{0_7*ujj7rM zcwN_BZCg$SFIfwWR`{M*y;5%f@9^w$Rx8i5zFOY0eeb*9F9Q~zbqer*gYdGLv24Gb zF>``1++f8z_`wvOvz#$(=Q|@ZqL?M^4JL`3(pDj((*1KokdPBCYnYJ;nyTP~@{Q{r)Qoz$x=5CIU9`ymeWh)i_Q}}v)P&(Hc+kn(| zo-Ism^sUCTpcQQl8c75k_}Mq7EeewA)6oM>sk_T@sl4kJo`-1bZ9)dMr`wj(-}F{j zursv+g=*>^<3KY6jwh`Dr~K;mLY$p-g|b^KUh6g5+Q9M+wyrzwap?7xXkp$p$L*;W zG$Xsr=cd#2RM9(U$Irn1RdDvYt?iM&FWWlDGq-KdbMt)`E8z}0V3f8rN;PoMygfp7 zrR(nKXm_fiN^*~*6Y3{sv#M9crg{oaEK`%X2MS+y?;0*^hs*i{XIJBsDem@*hk{LU zpF7<(e(Sm0eaq%7Im!9n_m%@Y@PY@nVPQaQGP4;5LP5t`Rkhy^b>$Bg$LllaOb zI5TLb==Lzr^1v#)=b|6|&wYLd^n1abU{)L4NaWm3dn$5(6C6U|zN)tGlyPhy zwNOpfK2Rre6hn>w1tu%Iyl#K^+0`C#=ckw97Qb?%kwO@y2sJ;3frM)c~Kn9iJevTHCc1^F1Gx$(r=NT?mFCt>wpsuA z-~TbxZkJ!l75xT??up{~g+)3(_DS%HS8`;Ft7a{Rv)!0U`VKp!}(imk?oD#oTE~7}Dt9 znsuHYJz^A6V$oQeC061TmX8x!VJ9Y(J%OPZHXj*s0`!642%=&dW*_&lVI0<>E50Hu z%3>_uVJ+@eBIe;9F5E7*;0^j=;rW;L03lhD%zDBvSKUFA}yAqIiBM=%AqalVKTboJHn$e<{}`{>PNh1AHC+2Q4B9wpncW@~C^3HoJsj-zYhW^Q_?c-|&?n&)|< zr*6KXZ?flb5~pOsr+eCC%@|Z*h}T+@0-Nb%>78C^J|_-JCtpoxQCeqpUgwpmW_E7p zf~MzpI%tDFD1>q+cv7f@TBr(MsCuH~Z?C2Y9%s@~Ao|7huw6tJXa{_Nn968^PM?CJ>5djDl8yzD0x4S6rkfU~ z|D3XEo#rNnF6mR|X_NA)lLluy#$!DK>U`2CTsE1DGEcMx=ooZ-z{pSr4`;+l&p*5mnNO4{HC zK5CeX>8_Tknc^s=x*@QRYN)y#&|`vpVausw%5W>#I^Lty(Lr)}UA7 z+_nDBTQsV!=IXAFX_+z~UkYoR>Zqk|s%7LIsY2_$;_I|lE4K2h zt&4ov#o}zv>g>+)Y|q}T$7(Fc z25rXcy#SU9RTACTyfqEtxhduEK2AilEFoEY13Cn*MCfer?!} zE!hI?*%B?rD9Wy^uS)IIRxQ;gXt}OkDspYtwxQml>zuBu*aB|fn(f|}ZQ&ZO z-ySZq8m-zgZsR(xv8HRxQm5Rytkn{w7uU3 znl9*Wt>(I}X;!Yd%I@sa?UWhp<=!pkzOLs+F7NuT;I3})3h(fW=a4RL|LP)d@(wQH z=I-tmW%EhGQMLl*((a>LuI=h>^E&VLx-RGbF7twK-V*Qll5hDc@A;zd^0IEMnZoq4 z@B2QlQM#}E(r@&}?)_Hp?P9Oi+O76-@8*i{`g*PR2JrWWulXXd`lheyDsXzXZ|Sze z1J7>+PjCgFUHxKkxZ-d1=I_<+@Be~u2p6ycldu2-@Ccjm0jqEVv+x2#XahTN3oon$ z(=Y{FF#O(d1!wRMZ!ibXEwA=3?uu~s4si(^uJ5|;3McUiEAb33u?)ko3v22NgKF_Y zaShur4rlQeYq1vd@E33J5Bsnf2XPtu?->&@3L9|>_wMkjaTBvK{~TX26-V*B)-eQg zFTn+wTN}aTxco4_~htr*RP@@*A)5BFk|cJ8~mGatkBw9KY!u&oLkGF&1NT z4hM243o;?o?k*IvA)_(YlJX%davMW(B(E|fvvMn6vXEA6EXS}F)AA8(awh9?AMdaZ zdouo#aWIFn?CS3aL$45{G83n=DlfAuzp^qva}7&#G~aSHPqHmnu{G!NHgB>X@A5B$ z^Ct^4?RIego^mOlb22ycI#cuLIx#cj@ie#dJOi&bV{Nthx0#wvM3KT z5XUbvAM-&cvN}8SLNhcwKd~Oub42I!L|5}J^K&<2G(c-K|0o+JM-Mb=rZdBav_d~L z)H<|8mvlozvp%CVMO$)3Tl7U|^gdtkMgy`?&3}Dng%gP?Pi%2dq&mbsUd%>y~vhw;3c4!kf|I3=TL3?#-zxHx7cWXEIbH}!8 z*LGy*F>G6RX6yD;OZ8@Rwr3BwXzz6gX!U7s^>M>*a*J>oBPet)AA6&9cDpx5k9A=a zwQb{ebi;Rk|M7m`Gcy7DYut|%lM2(c!h@req;Dy zUpIDdI8^UAeAn;o`ZsU`c##`S)@_tyZdZ@Ag41}7&$n}H zc#e}bkBe|zYdQOZxOSJh7mGMmBYBY*_kf#tcbhl42gbRR&pDMtdDH@SNC&lxXZe`> zxreh=SM>RNNB55dI+(}zne%s$qj{Qx^O_5Hq$fFn3wWKg7kOJcofov8Z#th>8T9>i zsN4Cdr`KzH;Gd&0PG$%F6xw9uvpFnl~lsOb<(4s;gp>P2+lhdb3 zk4A+mm8#PjJ6=tt%G46pu1c*oRYbO|SxslfQq?h~%akcPShSE!m+o9hZMoq5m8AqNxwk2iBm@`|Ry!mox&n|5YW)V~6O4BJJpO&fm zW5bdhA;&g3yLN1e1O*n{?NDLw-@hY9d<`69N82Kik6ey=b#uO)jY^-6w0c$R*RwDE ztG2uM?mDs#|26BetY7Zm(<5@xrHc)=gb&Mqn*wrW_1^c)h%X;RUIo@%LTcX#bE ziC}Tr|4`Uhj#UZTsy}t=$Z?YJ1C(e{uZu_EZ#EQi;jv2sdAMzYw5c=qM9A2R&Cnpy^%15>%L-{>H-XV z`Wxk`8Ol2#?yPvjE>)Q;_E8$!(^L zvV>JG8>mFzwi&A}*uIBLhmHC+u5T8Z`{<(R20f#Plosu7yW?T%m&Ewic`&Z0E{5>a zXHf}ozB>q<^}ss(!8NT*5o~b8`%X*c!f=78Ll;<5U8D#NiX7LM*jmhS+Z~%%Y{-0n z|Llm!aEZpJ%1$5stc4198`Fm%rr>x?z_MTinKZ}wptrDXbRxL}0oOUYD+(PcyGEB@ z_~|%qm)N~bH$AmgQM>*6s-e!RbrAk$t#!a%_incASA}OWt!tO8cEjWWHR{$+udgt^I$>LN++Os8hJ|e%uo3$b*xcJVJO6DopaSkc$BHxjfhJB8)%Z zw(kC>BOQKqV{6^)l9#Gg#SVC)3e^DJmai3XO?Od(pp+~@HM7-C2Sf-@d!``2;>8PL z5hP6AE_S_F{Azn8)SLA7#=^OAOKSfE-_fE3KbSeLeU@WE;B=^iVTcAUbIX%`|H6Zi zo!L)0q+1mK{3pX07LZM>a~%Q^7$w?;Vv1K(pcc27z)^6Ki&LSXRw%KZtdTJiUwn!J zcQ7Tny(MlxeB1zCWh&^A&{y9};bpR?!akyqg^793d#XjaCZg_6a$^Dd-cvHk4Nhco z5*g*3MNEqM}3>I(A9wlMv~j6GxdULOxN7sGORRu(+f&y7HA?jHN7L`AQ_w zQi~C!maV9S1-Lwhm1@-G9i^uO7wjb&<#DFLa>WvZ!}?c~%Y4Y``c*@7bBDTX)a#HaLalbfN#1kJ?BxzCkz zqN78nI@h_tcea$CPxFdF^GQ=y&hn->&8NR|N=r6&?T({?sa9Mdyn;p#V?Fqu3xX=O zF9pbC3C&VN3$(%m{m_|9qo`I>V9jpQ$D^1`Uq^#Tw2|84n&i9<=%AI-bgq=8E`3Tw zMNbyLa+p0EYy1r{do z$%8&bdDJV75hf(#Ze`X6(6BVG zhj8*QiU)%?NcfaAHrCZ*R=Zz8RcWq!bRmwjYTvD5jwdneR^x1#lxua5z@jVgZ4mK(ciEAN$y z5e9RYMg3(lQ`mQ9h6GWYI%=q4VZ3ruvzTY#ytNH3S;$baQr-g6#55&Y4C8Z|WP#Pm z;#odH%<*7IMq@!=7MVIQ^pF(1=+-s*(MVG(lsW0Hm1(-l;O2CvJ$=hRh?~^t7WE2D zecV?H?2K|E0(9GLMKY@yz*U&RiR0E59o(WYqw%0)nHtrmP_LJgYs)WP@{|+h1y`AZB!!&^8jyZC#obH;_ z`>%h{?9E|m;^?t)pLSIsbFG_dRWBSb>D4tH5gryUaM!aXuEJY%-4q(vhs8D+2AeL9 zRmonJ&5>EEqM!M3Yuk5aAj0&?+X`uOLdU(1+fJVg?oyZ2T;?yYaHwt0_rJ7T=R5!F zl;8yTz}pkmu@+nG`h8f-HV@!a+The_JeIpmVY^fCnNy`cH(|3{+1Opo`kd~}XWN(t zbEkIML4NJip!C4xnliH}MIdBvjd!>=)$Uw7!lF-`?2J|(%zx7Nyz3L_pDw=Pm+#7} z`JMTD*nwp+h&SkyMZ=>;eByn6s>kc83R!17|CCfrrG~#`r}MOU7i2Lv#i*AqY_Zwr zZ;WWNI0lG8))&H7Z+4bXDqT_5EJyYcwdYj3(qW+THMhrm3#dB|_<&gx1R~UX6ewC+ zH60&TYInzc?Ph%($Wvy7ZU6&8%J&Gk!!ShGU~5x(Iu=0|_XL&!Y>vfrpNDU9)^((n zHh(rZ2V`vP<$f>mLks0t4wQQM!GHB7QHN7qcWmWGh77*L7GmSrTDz!{g|Xi&i^oW5C{$Z4G7MpX`}g~XUO8ySIpnL)xhj1r`W zSF=wO30yN71Qc|Wi5Z@e|0$WX6oSraRClLp$#r|ZNKlLT7_`t}g7Ipkp^l;Xl&6_J z@y42oCnuP=iJL`pgZYo0xMc9Mc48TYHnN+V_?zb@oBFgJ$~m0>LZLEcp%dDM;+dfw znw%H#K&ilc7&rf}M(ayp_t+MA{~m=Y?ZzO$mZ(*qJXhPK$J)(NI# zTBr_mp<4z*ar$L8|E5{{$tyKFqd$6LcXyIPIvD8Hb1VQS%qEOXwVX)>pyQ@`0J((F za;514X$v}HVKa0OX{LPuqk<}^Ey|aA`KN+fsJaKMIOP+jAPK#QLi)sitKb zmus4=%(|@2x~R`Or*t~46m+Q6dacolt&$p!G76X~Dy!C+R1heuhDxR&I->(hQ=tkI z^qEYF+Klk3tQGpBb_!X&m6dl{T9s#dci5FjSgJ+lF!^OJQ}|7zsB)$#Hx+o149lw+ z3aeK06=C{-v+9cy=oT0|akw~fwwkNu%B)#rtRg$IB)ba7ic`*-vX8l;D%-NzDy=W8 ztugDcGh4IO|9Gw)YOUV-trR<`@;0bmsx@NTt?8+Hs1{k<8m~#av_+ehtd^d8hj*k3 zu!ht)_;s~lr8Ee#s&Ut<3)`?<1F-{RrbBB%VtcQ|iMDL&u->XWwCbX`7`Jj8k|Nos zfUv6$8%riDvc=lBC3~_q*$EI!3NBl?jcK?xi@1rqxQr{aP#dCc`=xH{rz`5V<*JA1 zS#C_LwDhX1n;WllBbcKKp{=J?1bYjYb3?mX7dAwf1M*ovMu8DawwEim=4!jRTef4n zySV$X&`P^K%Zs}xx5Qh#xOxM3o4jPIw|o1y&Wo~ytGLoTz2Ql{hZ()r+qjPVxlwtd zdK#lx|DgiBV`##|vxJ&+LTi%2C73N>K%ZNu$OV*AOS%NwZL*;ur+c~#3U|`fwO|Xr zksCn*+_t@2yS#hA1)RXKO1opKz!=)OX$!y;E2tq^yiRw)7JR%On{yY&yjS$RAx=yIZd33&jXLwhny73|z%oY{0i0ty*@Gy1Js6s*7=p!4|xW zb*sF~>%kx_!frgmfh)KwyuvAr!gYMdzuUN+%e_^Tr$Gw74wy@mE4hX`p)Vo2j8>KO z|4YPE`;{m&u)>kV`#TjRv9CSM#WZ`i7Mi=8u(MAb#tR(Eo{Y&`jKv6?#ifkOUg62T z`?4=NyTKa-XKcpCOSi*V$ZXukA^gT~9LI7@$197+!feNR471S6$6W@cW;@7Ok;BgH zQ(UUPcbYPc+{pIwGRz{$scS4Y;lE%!!G0>dwXDHG5Y9U6fVGRQsXWS3+|KOW#p@i; zru@!c)5-K~&$g?wecYUc%BLGSytBNq9g90^oVO$V!EW5Vd)v#p!tfI(76MP=&8|}q({q-h@7tfN}DNxKB}A2C_Tw~Qxp6=wl9FZGX1Cj{~XX| zT*esebPmuSw2a0-ThQg|3Gn>OL_N6c?9TPf%JMwVs?5On{M1l=&!XJa%W9bN3eIn9 z(*ljg6{|Z9yr#RX&|=NY!xhm)ZPw$7tY}@)Gij%7ZP9otn9BUUHq1L7&7#lAy8?=) zj?7;wy}GT~(%ps8-zw9|JJX1b*c}VdTHV-jYpal*#v4q^g}c=0%*jb@*-^dON-fWq z9n_qi$>IsPM2*#1ea2*L%j68&*ErU${n~3C(Q1mqX`Q1q>Z3P{uExlmIvYaQIebXC z(pX!CyeWKn8lx`|rZW8lP~Zg3{R80)-O^12)7_EQUBMOnkpoS+iGA4J|DD(roZUQ4 z%VxaY1YHVH-NH^Cy_rq8?Omwo4b-9C*;8HLRK4Ew{n?v+*7|%?MIFk{T+YKQ-oz`; z9V_2An$Tihvc*c)yByoHUE6PH$&h(jYTL9NGtC1^o5GDg9sXVhbKC>00yjX$N1y~r zkm5*?157g7kiGyIfB}(?;y$qGHE!KE?gV~X;y#|(F_7xujRUJ*&OmPDt?ueS zj^wf)-L#J8lTF`@NyohI6rfL?H=zDFzb!8>gTC12jpt=egR>?>U5QEu$T|L*cLU-Q0h^HeU{RsF?R zJ;8TNtBif-wjAvRt&<3S?Ii2Buzk?lzU>vZ$bCKTEdA#Vy2Tg2@P|$UmY(AMp6HeC z0bsxH^Zxbp&hG|r_GPc{Nbv5I&IdWZ?w@Yx2Jh)_5BHod_eSvP7JvZ+FWnEX1kk(yGm^M$$e4o=!#=EckR?VBR?BLU}VL$H+koIP8=_DZbW6$pJPW^BH={|t>*uVWb{|^1{?gMRa{dUg-J-+a3uLXf` z>MyZ~s7{tOT}1oj9*&|pD?2@4Wo$WY=}!!8t`WYx+w>qW3(xjKaLFi6LbE>*2frAetN zxN%#}rCYb|9!#P#HGRZ)(q30b0SDImcd%f>iA6Zd+c(AI6t^HxWPVY5_kk!U3|C^AV)@z z79DzdaplBY-)24iHj?PWk1KJmWciUI;hk_NKk$bZ^ih8F`0*k}X!Pq1BF7FyJ`Nd4 zt{_<=|HldD{3C(}8gdA4BJ(6ND>& z5_vMwC!114amAllJkiA#hvG~|qx|BlMjMx+F|D$yT1cX=Dx#=Eus-~-Djoiqk&+yn zG)%Ks6qEAF#u&53gexDD>@qH$G9fd~X2i*}^SD#Mf&wV0O*`wVyNx#6aKqpVGtT&e ziV%96EjT{dT&)T4==;uzAp|9EyWw0r|IJP6RD15v=DK5!!|{?+F1|7?Rcj)JWE_}4};R(cc+Z3 zOM1Pu7tE%_9GA@ShC_gXI?J%)Of}<#Ew<352yt%i>wRWD^9Fg5fDEjS%CW*o@VR6Wri%{d80J@~Fo3AVu5;7fnV zkI&H7d(8rz2aF+yBtjkNhFr>A|L@oLUe#3~SPhC{>WzqHR>BdRHJjKAkM&UPBSnOE zT9hhzac*tvw)<|pbE1(+zWZJbOuW7nd^4(Gh^k$9qm*}X#vI#H%X;sjz{b%HTi!wrE6AOK+uCQwd1Eu=_d)P8>t zr0AAqqpgBP2vF3u`g9HyWchAZkHAVj{n}>avY=i%NTIf1ni5$l4er|17t?4Q|yUVctx5!f4s;a4T#9;aq^Y#KntogxOM-1{b-> z4Q4ZzhzgG=gau2vP7ZSzBJ4sZr_ec!4Q<%K1|k*)DmZ|NcNk)wtne_@rGWvU(-_K< z^QtWj5ILO6LUytj1%y>>0uq?O0&(p<`O9U2FoY!(VKIq$Occ^Bg+I|(3zPIh z7*a`w(=5!qZYa3Q|725}ImFivqxGQkTmT7E#6um3NW~3&&S75I&Fs*5PB;`X4t6l- zJl$~5c%oAZXToIux)X&jjlkH3!Zv4thvXRx%!|mYgtta_G)Vv#9#)+ zvNi>+YnW>_W?PHN))eu`tu)D2Gy4$D7$Rnd)x@R^amdXZ-SsA9LgN?UdDz$4sSJxf z!x|9#Sb9Ph|D9&A0?_WLoJc;;P}*r7#85Yeg*KqEv>QVtH6~8@0MvgTN=_ks0KoYe z0;wA1+H5t+$B+Tl2LpItaHJE0^L@uRCk@#nPqR`%&?$r1627y{1*ib(s}qD#e-B*k zL}YNEV1f{=xEyeS&-SCTrYj?DE0zTv9M%U%Si%#2P}qEB%oX6ot~|smH9h<{EcJDp zBi<%pD@Rx(WB?5BWN~7xcse)KQ?ikrF&^$|QlIhEd826)z#Kb7BErG5oNJ;S$gnz0 zI%;EJ|Los+K~n|$7zkGH1)x?p%F3^i5_6$Wg>&*XWzR6;1kmlt3w^vp>B2GEUg z^#Fk1gg~6gOY-!}*s-Ufk$bOof+S~?yX0gyk>1M~cA^^~^8)H-Dj@0?t$N;@QPq{6 zQbB&3cOd?mc6R{GfpY~)Dn~g)y-<~9l_kV00vk9aV%24ZEeySP0h;%AJ6Z)UEYbrcmChtpQz-0Wl4hzE)p}^q97>-Y zd)hl{q!~T&QCWIs1Zq{Chp;O5ul9 zsK=MWsfMtFas6ZkqgB>hZE&q2ED~Oay~DxYYhonxxNH8kn=%>`N0hCEHWr!MW`Lr@ z9-fA9S6jy8ZonkFs~sMyc7uy3lBiFi?ZTL#NLQg92Ey1NawmLOc~rCkAM# z978wbdlZv#y%l6JH29b0S(=YBB;g1=o8u_r@xJWHIpU)`A}gZC5`#0yr#ql5)u@03 z&<}$NI3>&?GnkmsQ^Gn?fYjTMfU1H5ED!(aqjj6Og;~ATD6Qf{GbJDc|0xi!LRkXu z5ie02lmPmpl;a=v8>&WwE)K*qpevak)IRqyF2HjnkU}4j3$K)ev@cvQmxDy>dAXol zz#EW(op~(-s<|;@kEbEJsi`#i3l>Zx#rbnT|LeL}YoPfU5+MN+v(h@Li!db-yRnnN z8HyZYGq$ixiCyYI382BlLIcfl!_bMdI+3v~O2N)y#>Db6-a5CWViQ*(IX+k(1@M9+ zthO{D!G%hb#akmpf^DoZ)B&_;(~ac&Jh_8|J29QZdxL!v zf(!V^L0qs}F_r(}GR`W53_yZ1n}BSzlM6^lH2Z?gB9xsIm{XD{|KYihNpk`#OPceV z8ZO(T8<3PHh#r{AEx%(PxZ^JPk(HnVpc4p5^{5(-L5~<{xkalP^eU>au_@k@Lm}vy z?<242Q2|VxNT*YR*@`NqOrQ|aK0n&O{bCzd1Td-;wO4DvTGX&x#6`wYyR=)o6Pu7Q zYz-B=MCsk6=c$>b0u9ves9U_!lfgVY!U%2JqU8!c*k0LwJ81_(JGYyV=(JjXWKk*bvi@K=k zDz8UFN{7Hi)esGdXtGz4h)ZE5{lt#0$s-R^tN(LA!P=X=`Zam+D{PXS61zYQe4%dw z1nq=7+4-?ygd;cdG9R1Ed(r^VL_*Wk03=kMa$5wF43O$c$C9!DeSCvw6D_<0QN=sV zJ7GvY2_I7u#G4A4n>rOB%)D`=jdw)6HgJFdpcBI!tr(>-Ce1s~NxsDds5un5>-rv$ zBEC6U!g^{f3}Ch&YlAD)9r;n19?Z{9D-Qd~vY7Ns|MQpy{o_MZn;NFFkV5g#=&_?a zYEBL1jpe8S-FQxQ(~s4gvi6j;MmtWKls+C6D$GLyL4-l>x(=L56xQUlOuQ(loRpZM zKNu96{n0+a^VA=ZB#JYF)r^k?R05I$BPf`khf38gK%oB&k1V4_u!B%rbP@#3#R}X- zUgWh1eY+z_#=R3kXbYIqyG(fs&2EIFZo?kv!=5IvQG@zM0f?g6T&Ojp0)JZoifNeL z_$fc-IE;wQOrl61RT&^MRT6-o=`?^Ly+<0OECkpMC89er(7VY(GImTvJblz5bk}`a zq81ASL$IfE!bjChjnd2l82|#mOB$d<$~&~J|5lpBuW?g))6N_K5PI8BO}T*6A-8|I zz0gx0?H~g)5CVy12r*JWuF<^UR5^?#$vX|aC0oZAq>oee7)2W;owP$qq_{-$$3uCQ z`T4tPd=nL=4(wsc`V>CaKvnj@j*EJh0%VV8$uO?$%3UQ4wQEol>qQC@*3c~2#_~+L zt3h#VgClyAGL6jid(7IH4mF83I1&Jg;nsa>QG=b)7d@hW1GMqDGj_TFkHk}dD%YSa z4L%8hWZlOH5Yfa_vCqK(g<>{kor5b#fI@88)$Eg%NrE8Nx5p|{$_+s?2sqww!9==7 z^3%ld8!tShxJKPHldMEiDm0Hgn$Vq?|6+u=Z&jTJ0E2{ErTqMqISrt~rI`RCs-)a9 ztRNrpdY(W)K1$*}H@V151&=GUU4vA=<)k=o+gZXJv=wz)k80QRXiQ1K3*F~ZAHjphidg`awG9E# zgJK*(G=L{NDc)%l80bVEkaaC|C6r5}NOL_Haa2MMNLV|OA`ZSm2GD>rShK}q$ZTX= z+WP`;H7*k9j%)0v(~NK(gr}_eeBZD-8c&X$Z;HwDJ6mYaZ@2A&MS_A_gq{e z5U0lr6g4U00jO7bVy6;x%Qz^5|9~R^_6w9Zb)W=!-hqgvJ3KE@%_B`qTq$JC=y*dp zlig`8)0+jQ?;XnVMb9tRS?$^`xD8mPRSq{%QRc+0!W|G1%2i#}Urp9U2K8SI9IOC7 z;@F%M4#Tp`HyDE?X4W)G$^D?SejS-! z4r0-*Dd(depS+bRu8&S*Uk^A0+vFKXLZVyVS1LeQBeJ-lQG)*1p7KyrG&@d#fVY^H z8H{_c_B0b|3sZsX!l-4p|HkbvQ0YrK#hy8a9!2iK@k?aOijI%sW72T0j@mJeg5NaV z6#^~L2>e>T3foTBp&bdvp%!n+=ome;+W zlb9>uJ9-o!3a+^w1S!#VT;`iT>dhp9098>@DjHC|Aoh-fd zg4N48Mpb9r{ln!rPWlw8{%E&VUFeGL6MfsF*NbRhwkU}M)$yF;;gr+4Wn6|G0A{xA z*?nY5@?qnc!Q%kT|4rG74f;8!YUw4pUmbyIVWXE8x|hlr+g{wI;4uU()#){`qR&Bq zF|g26Cd?T-Sq2U{^%cZMS%jQR$-C~%oUXxUHMe{AXp^>1Zd(A?g5601g zShFtlooF*=X54A4o?Hz;D9Re7+(b&X=0x6MBiHN3H(G!XrdK-o7chXh)nn|&>q2w< z>_t6J_=YV;_99ainIh&nAI_ZwnC{3z-67SuevKrVnW>@5VwpPEF1FG|=8zhY0>Aq* zZOkXi-fX_)gZafzw4$CV6A+n+8QvKUiGcvy`I9;!Hwd_G=He*xivVsbLA~tRJ z9`2s-+D%Sw|6g71=KfW=X*&n;JzG%|wap^F#Y@2rau5YUW*yQtFyrCk@_%1>*XeJ*^mJO|3)r@SD)mxd zzVQ)&s=lHdUNgOw0=h&feo|RKk4}OU;ZOO3=p<})_9ymuuaL7|ovKdiZR|WKzJAm5 zc@+a&mgRB=^j<$#0wJL4tvG-sBzdM{OR_~CIAAC9pg&uVNS@V&g0 z>B3jPf(c;VlU*n}dsZK4quJ4QSzaSAP}wj|GNb|KmSyP?X>*qbicCgsz2M)O{$w5s z)*e__{{v8-yN*kh#n9Jy*Whgcj%NbFbRq{}EF}#+MsjQSed_eh<{@NXB@2$bUZ{K8 z?(QZ*#%t`|mh^QT?{Z#%N>{;%@zNL0Z|)AVc>?u>qj>XyL&dFurF>Y2v#CY-0yGc= z+o2c>{{kDXy+I&T0x%tijA$g?v~mT5FCwL1A99|A^O6%j5;%lJTt_&o+Yn&(?Uw9t zYgXQJ*NfDd=bKjQ&A%-c;>3OmE><0ZirFL@Yw@Sr3Ilp-kuF-1}Y2Ms4a9xh6GF~`vweE1|;G;!uaIwLtdckE%uU{}dgt z@(tuWZQ6KI5XMZ;F9OLP=xjCu0tRT>#If0ii2^1}8kA9^MoNN{O&n^R=mcYo7rAwp z^5nY`DNB8Z1CL}}(J17h8f9Ycy!mri(xaaeW&KqO6WO(M-`*X?cJSh#9~Vv>2B7qS zeqf0h7)%*3S12$T0HFW|k{DbTC;;De8fSEdfEQ*2=tgA_=s_O?`K^Ug4YPSPm0^Qv z;htU>U|3;FN~F{oh%1p`5L`WJKw3|6xJHH<3kblNRt*K#lth5N)FBXKg~ga2ZQ=3b zTX3ZKRv1heXviQ2PF7QpO%8d-6+kVpqe%}LrXxyJ=~z?Swy1|97R#Tm2*6?pWAV`ir&;Kw1#TBwnI}|#Ru$u)QJe&39v||7*8u#H2xLtO;TM4(Y5C>D zmwlPKm!^ohy47ql4$t}-&kA%&-ANFi+>*Cp_k1O|wP11+<*|Kwz76xkrhBwxu@ zsvifNvjjYj6#{`yy0&eJZk!fWf&aBh^qS8W?NfsW!1_@VSRNJ_vRe5O$c||d5U74v z82IQ0JgtdFi9bTERkB;(R#=4>Ugfb5A%R4vri)67U3l$<{7JB^+G4PVKw5)0UPITdPBo{d z9a3cDVYh9~S6GQU-L%t z(+ag*;)BMy1Vp2&mY5LmGDk8CVlQ7{=qcy>Su(B)a#TAI`3LNmpY zq*4YjTJnsBq9)1A3w9Zb27jd~!9Zk7W5H0@jBlN-B@b0!Ih~J<2U1XHK|d z=Y#+T{#1nk3pj%fHAtrlYLsE)*k>Bk8Rzu{YXc-81V7_Eahk-42Xe!s z?sG^$J_u!3>dL9A*pN|$@K^9$WTN;N8cQkZ4JSlRIW;CC19_4SX~I?pNaDylYHep) zawu59RJ#Siq(B%*z^n>dwiv=Bc3Oek0cjuucwQ|Bs|pLl(iWH1plwYql9a;gb0d-z z;1G;(Wjy6}5z9%=A{N0)-E7k-Q_T}&sWFTn*)*vBTniy%I2;)HCr|}Q!B(+~k!7Ti zsZH5NXG}@T-C!5G+L3aj8$HpJqSU&D=^+4D|5%<%PYD-lX_JR`w9pS=860%Y@;KVF zCA@C=u3YZ21-%?*FYTpRTT%kC=aNpJo-R7UQuM zi$w|102yPzM&@d@t|dV>>k0t|fVN@`lA#!i2wSSs&oNq?QMibODj-yVb{$*^1uQkq zf&8&eMk<(Dq@@+MfI)_i5<^0*dqSWHWkH*&(K}uFPzj`}3YZMtsPy0g2UTqX2bC*Y znI*j3=1QVMWXcY$0#e~#v1LD8q%OK&YV^|4`-{8v-z{1~i38g|i?9y-ZTF!|ITwU?>@< zma<#irGmy(8MNfVl}T=hSSE*?6<1zFud+mJa{kKLz)~4rhNTx_6Z;)0o9}%6GS|N@ zw3oJ0z_Yoct;4)PJZL5?pg}1UOzgwncGh*9nM$oV8xz3TwpN>_T`g&eIDm#3Gz^g( zw0>}f+9Y$3k>os8T^ND131sTcN9s?B3q%>|PS;xbQ{8C3@Z%HDXC;EPkUjATFgex8 zyj0BDnRCcELUwY;?`2jQm=I~7`N33p(;P*1m%H7WmeM+gQ$d85fl*Jhp}eyX5F5iv zNz1OTkY0U4#8z__PDeV0QV- zy}3ahKUf0=z1fBK>8D!#_oy#iwzbq;i-MB*;z+8OfRxqd$tXb1y4Xk0vPEe&ndzXD zk4>th#U^YU*%$ocIWRX2lViFhHg?vB(tx7^5gFK$i5X^ZWlMuXGECd*lA&=In3IzK zgq6DnqP%Lqf(IY+%&#pnyQayt-M`)<0$glrBD5z%WV_+BOeTfSoiSjgDPWut4E!aE)X5*f_0weVn|q-i1?Yt~ z*$&*0;1F!hZ$X5H2mw}+)awuccgcs~41~kXOmb~ZQFzd){Yi`kOe|Q%9bv(RCEX+O zT}zo?0*pqj*@4k8|3OfM*y1o<6SbWb8ilnj&;e~uu6rjHp^!A86JF4v^oMsX#F~jw9>y1wh~CtRPJ~QW zxL8EFRL}K9-^5X0^_`FPjSu!o8OIURmw}u}7(u(ijEY#-Aa;uv=h0LG1*gMQ&u^`9QLa6@YOO=_MPsQKAmbb*^ z#vtIrh>4+;AIwF-5&2#+5|AMDN_3r+T`m(a0_I@Gih=|srFjNg;D<>ViOhtW8Cc!Q zffiCh|DNnTUd`c*Mq-ghTFHV9MU^x`d{84z?aloZR|2#~HKE{~D3TTmq`ln^?NP>3_jsV4jEvw$KI5Sg$B!jxbW?k=L z;v@hMa3%yC!bdF=I#$6C;tHx%7z$2jp3D>rR)BIDN|YeipSs9#jmp-X465OcMD!pc z24q+KU{F=qu$U$RtYobu;TXz6l+aXFg(n3RU$c-TD22heu?lwj8kR_eO`576jOQH4 zQ1P8xGg(%E9h|G0-Z()|fr`q*IU@QHf!ytc ze90AAR;ww2B2QeD(}hTkIEXx!pGpa%Am*Y0%v-f-1wH!c>3qSB+M{*to&h9OLKuda zLH`oZ@#PT_3Rg(MbF~-&OiSr>MV}(edcEXAj9dAgL1mJFapFXAsaJYh3BmGWe+g-p zB5GvvhoMB1izGp4eL(`dPCo7uu7LvtS#Q-zzb+#{f9es;ZW%T0q-)X?x<31q5eI`BB$-!2w#z z04#-m*wk==Z0PVodEqAXdzm@LF}i6vwhl6Fo;zm0b7jY&2YMu~WjHPlKdvB}pStpy$}PeDox7=0u_A=rv(K3;UGMB~Ja8DJm@5Sk%L7t7g49Bv-ytgW#$@CZH< ztk}@QuJI9N3g~oJ86>94T?W`)KphsN2Kh0;o~jXauN7Xe*TgOYQsxJqkTybqhFFx& zovG%O#9d@cM40T(WPv&|1sB9v3Gx8v$Yg$%g>D@qi?%m2Ytx z2$y`m415O)$fedb@jqLm69ho)6NQvdH&ot?*eYkUZB z7Y&3sziy4bAcqjZ4;D%zXF$aK*WTnMq10lQ6r{pzav^7}4nboSCU0FZWJTXrw%l&H zN{qu!fF96sNzkL!0&m26q60e8egHrg6^zFs31~$jL?UlhtVMnO=(OyJ?ZB3=fLD;l z0tTdGLRt8N8OezTO-`?JrStHSaYxXY&lF&sS6`1Si}l zd2I%-=w{Mc?K*~7qqT>sX*(N_ra5+6BaH@%tbF80tr~W-NdGIGxY>eT?I7$&vuW5M zB0vC`qQd~C>P8Npd{9T0Xpyp5g@o2-nCL;w&r-37A&f>vmqcb|boFX!u+^9FW!E-}lZebYWF*6Ka$$io2~r zoJos=%v;VfT>awgBf*w~h?x2EaR*|6x*4Y52%lrasxB|za5Wj2J)&H9C0*aO#kp{E z;I*+X7GFECpz^rnTp6_$7^+cU18(!1Ei&Xgr@sc zSEjP~XVMIoTDJbo_~UA;CF9=^B?N*Yo@YCx0H21xn*YobXD@vt!JI%bW-|f2okZ-a zP-ryw@#U7Z+%TmSXVivc$(|umz?j&OK!DnY5AhIev9$Ce;~}7#%W8!H7%@pC@13pk zj3sZ+*jE)2w+~q%R{vQ=atyWb0Zh?zg-o4t(l!}%U>Fb&ALs;5sMk&t@144uY$WO; zET&v8i18#+eT>*+Mjasj(R#Zd(Fh6Rk?$H1DlQXvIYNc=g>Zt8u!55?BuX<1pAQPF zFeN;KyHL0_S4X=ztM>%~dt`x_@gHWs^U!RVGO?5}$CuGW`)D}IDsC%l!?Qol=Zcf1 zj=p&QA!)*FHjB47)lK6{Wah+l`w-`k4f&5r#Q&};vIw@u=aA%Lx*JgBtm73nL64h6 z0tDQWz#KtXhP%1Q9wrHh8N7?);}~2Q1`@=@v{!BPwnzTSpv%*y|KbZ$7ufwP{ms_c z;yDSqa~_j4tZ<0hcHzX5K=vlH1$5Vv7K%zXTS_3hV-{Dbn*kbspnL@A0)?bs;8A-V%f0D1O3m5RYpqgKf)4x?X&1fOkD zl0;l?Q-LtR2ZD3Eg8RRA#x&u?7#Q<>1^)nlm<6I@Oc)TFs5&lP`jJUk@6%E8*_}7c zsTu0{n8bf=1DJNU?qT_D`5lt?7twZc`Qrr;0;`Ei2Qh^Tsvo)mVx!>dW7sy$+Ct{E*;qI`4{lq8)wd7d)m6X;K&Lq~SW90B>Cg z2nsZ4-~h0Ow`&QvHGEh@Vl!!_Fj-VXs#vT9?J^;AxUgHzgw3{TgMpxh3PS8s?OMi4 z0xy{dV`h8jOa{rNL070SfFOf1XHbh_g9kXB&BF?00TDOyKXe8xKcom2>9dTDK8E>2#6et zaN;24tV)OvJ`Pz9gAqwH0ROwwys(W&FuZ6$$Rt9jaIEt{oIr{ZzYr2HKAeM20zO)- z>NyV}3&e*hpR2M)tPTw8pasYn@QbX=FQiC((PLJ>pn13=Y(KCosTV2bQNDbqY4%q+;xN9u9gq5U_EnIGqUzY%l}vfzAB&=3lzFwD(ARt@q#VRqzXP*9q3HL0+~>4VF9pnOuN*i zFc-Td`1)#)_*@3V3?n7b6UF&z^dpO$i@-{`8c~%_Wa|=utiF|n4zsV_&d4~(z|4pe zNgs^x)@tscI<3tF;W1pjJ!kQ9CljZZb`SLco_-tuW3JgBkNYB2^Ou(Rm0V znt&>z8!qxh)KC@uNR>t%4M~xec9@jXN-qrxa!w_m{L@bf54=>Sn(6@yRAaoVs>$l& z83HrCk~Xbv({(S5#XKuZ_0@%qZCT4Sw9CGsldwIEji2T0fv?DbFJAtnP}AjsQV&@5 zG{T6pjb#s*K>ysS7!e@H+Xxs#jbWGP*O1{EC=n|zYn->XKyWu5wFJxvR*u-v6_{JI zhyxfi0tZpL$@C>yz-rNf40V=vyB}EwF=!}&0RB?2>#R&La(NJT&QKO(72splS(0d^ z;vc?s5C|{2k007aBjbJL3P%FdnOa8$6;42Ss41H10P}?n!EIsjInum*ri9PQjcXnV zAef{SfzTiaH*n($oj}vSxRpt2b9$2z!&bg6VF@xha}fx076i?4N%j0?JzEP= zmFN{N$Ry_qWRTVZUCF#$Wk8Z=v0r!a*Bx7BkXNTsKr9NPH4cX1I=i|80>XnBDl}l2 zZE;=$hl3i|6-n)ksgLW(UNYgpq`)gsWQ(v%Ku?Rt|F3!*mm#jKB4IU+j4 zG$pA##Fh?0k)Z&Gxuh&=jA@kVOcSTZN4=trZmir+V~Uhf&GA%Rcns*0MN~Rf6lNHz z)&C)hnL0@_RdybdQ`-!pvYwP6M zHF}w^47Kxu8qABGc&UPwk1je87E0kw z0>Oar43ZokiLFXl!ICT=WN*1;9}Xw| z!-wwpZbk@{-{gym!POVPA)$qSYkJ@P@^=;ey&Ql8Y^pj!VNebEAlKNsR{yrvNiuv{ z>VqLHr#(w}!o(zQ8RV>Gvl?=BQ3mvql$4k-2QsP^8Z2!Y;oLwZm7p2;vRhg?Kg0?^ z$Aw@t#MtdzM^mAmT!FDJ%MDEk^6Fy(sAq+hEbQ-XvwPS^YqV+zHJ+`RMiaOZWeq9- z^oS=yVbH1r0*=UHk{g>?HO`2%VkQjW=ipZs#1J%iAmMh|FxP2vaDMr4e!-YK%wwb| zC0HRHCn1xv9pOo3n^G`!=)x5eD9p|>0Oe}sb!k}E(9Oad2na;H(h@WuNylDZPb>=( zkw~dcO%nPRjuLRRl-NPCYF6767N1D_t6}ZmG5S;~wVueWMTpY9p8wS6=@n>U*WlpU zaZI>aO?Fe=ut*YNRN9d|SX32rx~(Eqc-36|@7CY|kex|I0(J9%zA1P(jJxPIUn2R! zRWUa)0zNRO^BX?q7m7E%Wp!zgZaQn3_Q6=siwuKbfP3xdS-V>{ufc%G*G?Qy6J`w1 z-mrP~K7r9VtBx(J^tCzf6k=~`=R+R{+w@2b1mMnx5d)bUt5pnX6@hgXe*c6HkuFt* zi$Fl4K_-ZKzUamZ%R0~k6-3D%>8sq7OCVNb1B`?8ngoa#f=_y=iwcG7O5y9k&c0IZ z>~5;5coFUbh20RO0u*wV$R7UV}Ti3BJJ z->9I(9?aULjSP~ous8#(165}?fZfYHIU~&WP!EdOls1AI4G%? zvC{5s7enG!C>kjLo!HUs9>M4 z?G1LX#6*h^>n)mk1!8u{YM5hfT17kN>Du0aJV3AMJTC_w5e13o#}F_C5{`#v1_*F$ z>aap%tPs!i2?36+&yr?V)}vP#&V^|2c4UvyctB5pfKMETZ?taf9uTG`kOK2dQgq-6 zE)WAj<)?sZ?r_Zr4oxbiLIOaC(UhoyTyS=-paJNEF8_9g177f1PV9BSB1-;;)1+tE zh%GTJ3`DMLIW~(|Ku-r5j!4E}2KnGjRIin;O_1O~np}lGD(1~RPVo|mU^puj0WU8! z3_a=sLI`R6oDWy%!u6CYVSEjqcEe=!5QBiw0pKkG_Am{;16H_+p9&SYM)LN<|!e|$HDig@AziuK@bU-GA(JL)y)-Z=u1nky8 zZ5gFwy{HZvCvh9~Fu0=eAGI;Gk_;a64_VTSGXGR)xW+LjU(b2YWF@UaEOccLIc(WV z<^oFaqdbelc=BvQaCjU9FSqdu2LS++jsdugW6UMQA_)-r&9}kM$>2CZ0|B@&4Cd)cEE4x%X+b^)0VtE)7$5+E(_Y-If|?B>xW*cJBlGGBet6@_ zlrSe9Oa=dC-s~l~Hb~9rrAB&EJMyXy_l1z)M-nA3IB+Y>)ZkctO>R)cDisY2yhsq4?9mUAL~KtBcc8W zmF_PIZ*niC${VAE2S7t~mgSoa>GRZ(EdSt!-Bu(57RJb+4Kc)E+sb7bdBgyMrZz zhO-pIaNm-y-|R{0C?r16gFXx_P0wR=^g!GoZVee=@wVx-?nfutQM8mqSL&lgBC6LE zafyy&^88Lh(NmIq^oR0@4{`=Y+{r3gN-Mtz)%G*LLZT)7lLc77EMx5~Jpw@!)Q;W~ z?@9`E=l$xU;zT)BqQweV$S03M+}w}FXd+( zQ&X`PgbE`_sz_sd`0Q2rg6}v6xPT8~u9N|W&|DBeM9j%g0YE`AU`uB*e#m1&IFdIm z^vLQeHC-?-n{H!NaABRxUBGiiVg>Vn?M@5TP%HEv2jOC`rsr;EZs4obHeo4D4Hd!; zEDf{*)hJUpRX{rxW)C#(L{*D)jb}>=Fo|ljJdYgd5@fw+5dOkV>p~B-l`vmWLyluk zP)Wy3&I}x&WAXIFP=+hu>53?Wh+t)TBC(hdt6AWKc#LNK;z(=_#`NWkQVy2HHufh+vEn$$ zaN79Qtj?eTI7HA2w*Qoj3PRHq`4Zla4V)rNDQ_nN!qW?`CNe;gA`g$Qn6+p@cB>9x zh?*183=CycHUeYnW`kG1X7(g()>CixzlxEL2226{B-f1fiYN+)kc~5`_fWfo2cuSF zYs^+X_ApfLs;&d9E`&P4)mAU=`(B8Mc6Wy26)q!*-ek;!68AS^qJJJ&Yq|_O(gFfN={iBN5>B-T=;SBu&ZSSpU+|C=$+aNlN8Z zgIkq|>ogzOX~HH5v_K^XXG7IgDuQ|O<|+0BglMsA z0@FiW^?ikQRktR!i}^#GJpG_+`JPrWb%PIQjP4K@}s zpP%Mfh^x*J*KU7wT*>tpzQAx*bPzbWpEb^y2RCiTR8CR|u7LDyIb(AzH+87R+ki&@ zu8Fex6)Ah?4D2$gR4!OYGqQrXk+F&rm6A?U$xjht5#Fml*YZ%lnPn+ZoPAMK9mjax zP6OvCbN||T?wD8Sb`7vhC_d85C}p!cEhzs6Kw(%(jj?l2QAlPCBA1q08t-v%E6boO zSdZz0B8O5BD&V6u?17o;@vLA98~TJKq%2Z8T#M-oXtVKP_=Q=q6j=zy4g_5yEJ9~& zOu-=bax{Mr){(o#u(H;FEd&f|7?pe2spx|^nFn7RH--dx$pi)k*8qZ|#S8~3>6)uT zOw)O+Ei>fRfd&FEdNVsTgaNX!xMIvY@9F4Zxs)9e|BU98-Me3|J1atf{t%FxU*xTQ z7o4ZKuJyB=Ya*}xYp)a3i$#c3BYb@en@vumR?Uw_!As~u__ZPNZ#{ajC_t_3R% zyEP!Uan66$+DH>)mMgCbgIFL7K$WUhb0Lk8G&eb<6T5G6njKF}pSh>avjNQYbub{6 zzq`32xTZInlli4WEH}T`l{|(lI21|`mp1cEO2Ja5nJ4n^zeF>!{X;ZI-Y{nP7reaSW!J$5S0(z_sA;Z+f)( zGG(_6(74azFoEZ6lE9m$ZeQOrHk_*FXR1?7FX3-Dv$JEy%(o(G&Ohq`jYoqnhJ_X>9Hr5!s(C!+NJL zTWg*^hBC2;nBXxl1TA0y)e)6ldy;5OgRBDyjs!vO?P?zjNhk5&_i|kuz}|7X<%Sq7 z9@2qA`h|t0ax=&X>D#!@T?HF}k*Rb-x;-6S#xWU}g0{}O{7Drz-P6EopPhc8wXF#SuDcG3FCOFh^LS;poG%^IMLwtw zEW(ZT`uY)Tj#`I$AV3^)#x~p;U{GiqzB6iavk3?t}s32B029mSl;d1c?tG zYuid7@z%my5-taLAro>=$-M_h`c0^pZ(zX&%`{MO_ly??10oys4GK+km zSq|lfoEb=wQbCB12rj{x!Jr_4l-78<6E^9(FLJ=glaogo-VVYt3BsKD`=;Uf4dXSp zS?z{=7$zFth^N9|et~Hq265@_*U$q3nvnrVr6tju6bYcg8vjHZ5J;hg4TOP!0PaCl zKmZjHfI)0$Q1n}ECK@1s9(r7snSkV37SS3GoneM>4B+)0N*A%g8iOM)fTN8Uxri8i z7pm7IlN^wtKuc135J(_g{6N!9Jne)^R#yQ<%TY-oHD*y{E(KMZQ&q+0msxS;6z|>Zrfy6Z$4{y2X*cW*D*Q9tf5?W}XYA|Qy6^%`R!Ho~4*W(&u2!H?vV0htM zZ>0%3nT7Qw^ZLa zlt?Le_KjK|uIMFu(z7#$VIYt-8YnHL_bEGAhBG>AsQ-+GeW+|ivra%pkqovcZXDEZ zXet^Fqzd3?g3{{V7abNrt9Apihbcv?#fYJP1%3pFb=WnwYoZ9zXk%p?Jxb(_6IFCY zs1`DWhH>7_*Bxh!j;tkmC`5;X?C^0BqjAvzdSpDAw;r44W2RJ-@r9}z?V1tPv5iXEud~7x zYi^+J$RM@^-M8dx4q=Mh1bV^>nvMk^+N^!lrgxj%-oa>`(_4e<q5430cXrUIFw0s=TEHD}$5L*z0{ zzo;NWH-t`H5s?pI=+*|0O)Xz-_yVdJpg-|A;D2)fqIn<)EjYjsJZL~b0VK7tDVoGo zeVJXi+7P+-bn!Ekks7=d#GO(l=ysp+)c>rWa|I?|NJcso0~upOfffybUl!5`il_hv z{xRl7Y5<^NM&^=}VNYe9*q)nW2Faj52BhH_SHF^#bR3vF{i zeLj?1EaJ$A>ewRJh181tstxVh$j)7jL9*95ObLmp5*A%?t4F&Xy-(uG{5+;FCZK)h$wqTeR++R>&n_}00|&7l&fHr z@+fxtB!u_jl#yWR>6aoo)c>D21qI?IZz5!7ilZj=l4EHqp6utC6!HmH!ji8AQZvu8 zCDBs8!>kuJR3i*&tu?obEq=bxKr6-t!NmO4SefQZ!V&-igS|}#T${jvhGA3BObrGI z$YJ;BH&HGe=7!1emS8SeLKm)avH?J%2*E&`=pBv>0a7A16UQ9qo+x%@@F#i{E2`vd^TqqK4{$M3(n$r- zgA814M8dhohoK?LGQ8%1V=59Gij6HqGlEP~#@&|rG^j*zK?|0$gGA4ODT-!_de^H| zo_z%nlqSOanvg=8YX3UZE=gesWQozTzO{9hb*_;gy4$&Ztqd1Csc4=PTCcg-Y-l_~ zl20gs=Ty@WV1+3wH*n%HaOz$aAYg>7BU@45GmKz6F?4ufVjHvJw%oD|rnH>OCaa5q zvWnCLf8}ijDF#X2p3HT16KemFHeNL{!)ah8SJc%8nxFY`yV)rK02t1OZdT41$kqU? z2?Ar%{Z?*stJ_t2d0D5SZM#!lR=Tcva(51yVzsqW08l^zd={D#qVR(t)FjY?hNPhv z&1jUXoCZ(W0VN4N=$kE7(wMAMT0*($oNpSdsiDxXTgikRD@l&Zt~MLgCSiu13vL(B z<}Fj{D$>kTZ2zQzz+~)79M0eugJ~tWS5K2f(>e!7dZlM58BD|rS6hJ%Fem8b@=UxE zyRT%2dI&g3Av8>+BeVsiN>nGCAYGZY9>k6wIO4o9uoM8PN?tQl=pY0ilhw3}eBZs< zyi|pD0O~9yaU06p;RcV)z&xY1aMZA{Q<2&R|9Pc?GnY`tZ@VP-F8UUY3l!x35xn0$ zEJgqc-#@xdk*2xNfHoJJa=K)i)UHo@y#h5L*)*Uq0;kD3^?gfg0u@VE zqJ+?pD_cv?6HlO*ZQCO1%VQc-fapvN9Wt+TfvQIUqee`<>*o+R??FpeFk$xsU1mol z3L_}cG5>j!kuGBsNH?+=-9}K>0vlh(L=pmG4>TGafo7Ir2ms&#j2C@q1p$l)Nb*u| zdE_BxzyJwgJoVIY6;elI<_7iRW@d zw-$?3d*78*E+BloXC}ONUN0AO#5Z$HMQL<`1@n`9@aF-D6kjcYG0;^;M~G_wbc7TY zXKx^3WTQ+9ry1B`MIOdCTnBwSltbGD5yfRMALf4B_Zy9oDhL#2F(OZXq$<-CO5}DM z6Xt)U7jSTu1jR;SnzD6OH&1b=FBF7qtG0o;zZDj)}FThbM_2Xifudz4^>h1QOflwQNvCWqFAH5UZP7Z+3~ z9QH+DYPD+x2Vwj}P;TgrrWJ}>Q*?yER_WqZ^3{MxW@U<#5|m{uqR}=KA!M||IDtrm zvcXGi5L#}be3^J=LR41};eFM_b%^Kz3#ei&aR_|~9emY1bOjxJr)4T31&eZe8PEU; zNif$oivv^v77%R+#&tu9V8SRHwlNXMv?vV$1`qOm4N!@(u_41_DFFikLU{!u!v8P5 zk%CQDcIotjmPJsKM^a-I5#$79&e3Ymq=ZOVklpw!Ul5Ms$Ol?b1m$RsB}Ztu2MO%> zJ?}V4@F9Bl0jHh zI8rt@S?5lF6oKQ0h)HsT%|v76xmo<;JM;E#dPOTEMPGcdaS)I{Wp+4iaQ~IOrB9ui zVRvvyX7~~@L3=u7p@1oKD?pgIkZ2ofXzgfThMAa(xtKLq1x>I87FjV?0A0IiLnzd2 zwb&6bvWWY0R+N~2cIkR=;EJFLk=@u;dG{ExIZUsEoq|D6%T+9V(@P~qA0C8_bfkF9 z(`|ebN-rq^&Ou6f;Seo`A%lpU!%3jcNdmXaJfM=wjFc1 zc7a7i+$k%cHf&%c1l`6d^JaGFqLlBJJfuiXjgohur&5*!dy+DK1Q1+{Vg+gyF$u$) zlgd)9`5s>Ict%q}FL-BjWJY&{jU#1Ss#bBl1(aXb0EmO@$FXBU)*tr%!9fcKq8!xC4clEGqZyN0Dd;(!-5l!ZVV zgK!a9i6fsOuM?G^&XhF_#E1WQZlkC$k=a+LDxb;oPJPmIlp#>5Iv};9Q5W)W-9!;B zBu?V_th^&BZHEAIV`bwp{h_`B#H|vH~#}&+qJq%UcCye!CHL8 zYOL$IQ2#_avUyoqw>m9qSsdbOeq(i#Av^o#udOE%kJ_>m)S#@?RT_bxZ+a2_qoYA< zBrf}k5=WP&GeMvdHvDn``KN~uL~)|G5HzbD*L7WP6B^^U5^vO_dF5fQ10Y-pZ~E6{ z>qf0qCL-qIMr@%fj6g5bglQx&G8yY9vDBoVI$_Soknxm%!n8wpxLT&AE%O3+wK<7I z7N`yOiby*eP)T-j zyHt|`n6hk!Is`CGQV@fS@Ej3v2)ii+ftoSl1b88FI!&guZP~-YD6sDozEOE^Vc>yr zHJmRwEQg1?O7LmM1BquEbZKBmxo7|jFt=D*0M$u59I=hvk}RI8B8$swQpZl6h;GrQ zlMET7fLeDm$-UjHW)aC)dNfzUwpT78OP%T{Xeev%gh+ZYdE<+S^EOCZ{BiY*wK`?1 zTss2*48SzN0sx$HI`F?6T0UBsj%Q1AWw93O8vny@2xYtb!-UuvEkUI8#HSiVWq-9_ zS(G)Dk+cW290(OtZ`L=6@nO$FekuH*v8Al>1WPVTshay8W{gWR7$d76J6q(8HV8=32`^UNTkcLpis79@zNj{xy5ne2U7LVp0*Ny>IWne zQo(z#cm;ba2C*c`c{%!|-x51+;Jm}Q5(MY2nn(c#1fEjo$Ja3{=*n#sd2%OzhQGC{n7SIaI$#5$EXt@n1-<&U<~0m6 zz{-$TqGQnoRkAb=$`{HNAqAStQ$o4Fg8w|1v#oR>xX8G|WDs!Ax@3O{8#Bxp{L-wS zdR2&1qg&)HLMt4?JIsI^R$;eoh_xydBZ8;fbZb{)ZI;pZbzR#hseaYH)1ruLfKr5v z%~6?t!K4RVT*O{b13*wTyN`Q0m(Ur$^XSJY|)6DpFFGC_MS3M%HhF_eP#sHet_nOii zrzaj)p>T4JQn&&=aMYp9a-^JcHjsNLm&%R+e7MlmtxS(wu|Ad-%d-~EIx0ADiPg>L zA~wyZ$PI+_om%8!uASGYf7nq6lmB48!*!2WYC)SzBMgfH#+rNN#%-Aab`4X+^F(=y zdc0j&vSe5j(BJrEQs3!p#kRVfeZz6*5LWP$eA`9FJG?d`;!t`b18`Vipa&vYxu1l+ z*Y!z;03EP~DJ`fwR-i{H3`Yb2mZMwH6u@{HGD9t%PiLHnarNP}djO}6oVW`Y)q@>a zO37^6bzXM{Dgm8!_hUT5G|{zdwV2f#*BfN2DlJ;mjsa>7rr%b>Jl4(RPuQ0|z1@Sh zXfz1*#Whq$0Y97fPM^qWOX3U?geBzO%dWE8kgCL+P<7pgfCw1uVF+1 zU6e{AZ(!iBX>d#k;*^=P)>qmpEa7Q-A^{~sL7ts!(k&c(dSbqlX$IiJ^{(bvC%F;c zX(;4sc1{IxuG?a1cx6a3d9Z0r&NiCO(^1$xXR;KF<^qqda=38REobOEaOgA;=|Sbn z$0sxlJj?!VuPPc}7j5w^p_`S7Y+qfMe(3XHJtG+KZpaNbkIj~1aFv7$zT6yLVbw=w znP8pkc66gr>gHnxfd3f3p+cfz>3Ig*cxofHY37jyH*G4ECwmBtI%Wr<>xvy^B8&%S ztZkP|Rc*SPNLx+VVeHN!k?vv$qpMf7nE`c&|#3!TFEXc$!zj)xkn}TG08hm`pL@3>^T$ zNROB`c1^=vV)HqoAr2#>x7tNTt!URD|D)q-Opg<-ARI7mxB@XmKv$zh_LW`C#1FV5F zIy&qq3Wvh*!U~Z(1FFc}TZ4@^Hq`JaHzZnVJq#8IfdVNk3ge=vsIqV?hO{EFBQF%_ ztiy#uq)3AsLrO!8l%U!`p)}Mh5Iw;#nqWN&>MN-XsKS7c2>~cL2?7BG48e=2#`rR< z$CM;f0D&az2*@y!^yrN*s0hHK1YDGYM*{|#uqqoF(~(b$t{Bv<5JZE3w514`Xuta~ zCV0Bh4wnSs(vj_%IErM59W34r_oG4

qOD6UPZX`F5mFRyMc%-xF}1r&TJ*hjL%d8u?-8P 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

@=O*6|xMa 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 Mj&5Vo#)9U=jQ{)YRG1fXnFMFD;>UgCH#_*&!EP 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 z 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

+### Animations +See the gfx/starfield folder for examples. An animation of N frames is provided as an image N*48 pixels wide, for both 48 and 44 pixel wide devices. ## Related References (for USB-Serial devices) * https://github.com/Caerbannog/led-mini-board From be3ba324587a46c90b03488549be279babef01bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Weigert?= Date: Wed, 1 Nov 2023 12:24:26 +0100 Subject: [PATCH 15/33] Create FUNDING.yml --- .github/FUNDING.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..932b3ff --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,13 @@ +# These are supported funding model platforms + +github: [jnweiger] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] From f1849a5f88821a0ba997ba0f88818022ae874b3b Mon Sep 17 00:00:00 2001 From: Ben Date: Sun, 5 Nov 2023 21:55:07 +0100 Subject: [PATCH 16/33] Some small refactorings --- led-badge-11x44.py | 262 ++++++++++++++++++++++----------------------- 1 file changed, 131 insertions(+), 131 deletions(-) diff --git a/led-badge-11x44.py b/led-badge-11x44.py index f61c849..da45886 100755 --- a/led-badge-11x44.py +++ b/led-badge-11x44.py @@ -247,9 +247,9 @@ charmap = u'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + \ u"àäòöùüèéêëôöûîïÿç" + \ u"ÀÅÄÉÈÊËÖÔÜÛÙŸ" -char_offset = {} +char_offsets = {} for i in range(len(charmap)): - char_offset[charmap[i]] = 11 * i + char_offsets[charmap[i]] = 11 * i # print(i, charmap[i], char_offset[charmap[i]]) bitmap_preloaded = [([], 0)] @@ -320,7 +320,7 @@ def bitmap_char(ch): bitmaps_preloaded_unused = False return bitmap_preloaded[ord(ch)] - o = char_offset[ch] + o = char_offsets[ch] return (font_11x44[o:o + 11], 1) @@ -334,7 +334,7 @@ def bitmap_text(text): ":gfx/logo.png:" preloads the file gfx/logo.png and is replaced the corresponding control char. """ - def colonrepl(m): + def replace_symbolic(m): name = m.group(1) if name == '': return ':' @@ -343,10 +343,9 @@ def bitmap_text(text): if '.' in name: bitmap_preloaded.append(bitmap_img(name)) return chr(len(bitmap_preloaded) - 1) - b = bitmap_named[name] - return b[2] + return bitmap_named[name][2] - text = re.sub(r':([^:]*):', colonrepl, text) + text = re.sub(r':([^:]*):', replace_symbolic, text) buf = array('B') cols = 0 for c in text: @@ -391,7 +390,7 @@ def bitmap_img(file): def bitmap(arg): """ if arg is a valid and existing path name, we load it as an image. - Otherwise we take it as a string. + Otherwise, we take it as a string. """ if os.path.exists(arg): return bitmap_img(arg) @@ -406,7 +405,7 @@ proto_header = ( ) -def header(lengths, speeds, modes, blink, ants, brightness=100): +def header(lengths, speeds, modes, blink, ants, brightness=100, date=datetime.now()): """ lengths[0] is the number of chars of the first text Speeds come in as 1..8, but are needed 0..7 here. @@ -443,131 +442,132 @@ def header(lengths, speeds, modes, blink, ants, brightness=100): h[17 + (2 * i) - 1] = lengths[i] // 256 h[17 + (2 * i)] = lengths[i] % 256 - cdate = datetime.now() - h[38 + 0] = cdate.year % 100 - h[38 + 1] = cdate.month - h[38 + 2] = cdate.day - h[38 + 3] = cdate.hour - h[38 + 4] = cdate.minute - h[38 + 5] = cdate.second + h[38 + 0] = date.year % 100 + h[38 + 1] = date.month + h[38 + 2] = date.day + h[38 + 3] = date.hour + h[38 + 4] = date.minute + h[38 + 5] = date.second return h -parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter, - description='Upload messages or graphics to a 11x44 led badge via USB HID.\nVersion %s from https://github.com/jnweiger/led-badge-ls32\n -- see there for more examples and for updates.' % __version, - epilog='Example combining image and text:\n sudo %s "I:HEART2:you"' % sys.argv[0]) -parser.add_argument('-t', '--type', default='11x44', - help="Type of display: supported values are 12x48 or (default) 11x44. Rename the program to led-badge-12x48, to switch the default.") -parser.add_argument('-s', '--speed', default='4', help="Scroll speed (Range 1..8). Up to 8 comma-separated values") -parser.add_argument('-B', '--brightness', default='100', - help="Brightness for the display in percent: 25, 50, 75, or 100") -parser.add_argument('-m', '--mode', default='0', - help="Up to 8 mode values: Scroll-left(0) -right(1) -up(2) -down(3); still-centered(4); animation(5); drop-down(6); curtain(7); laser(8); See '--mode-help' for more details.") -parser.add_argument('-b', '--blink', default='0', help="1: blinking, 0: normal. Up to 8 comma-separated values") -parser.add_argument('-a', '--ants', default='0', help="1: animated border, 0: normal. Up to 8 comma-separated values") -parser.add_argument('-p', '--preload', metavar='FILE', action='append', - help=argparse.SUPPRESS) # "Load bitmap images. Use ^A, ^B, ^C, ... in text messages to make them visible. Deprecated, embed within ':' instead") -parser.add_argument('-l', '--list-names', action='version', help="list named icons to be embedded in messages and exit", - version=':' + ': :'.join(bitmap_named.keys()) + ': :: or e.g. :path/to/some_icon.png:') -parser.add_argument('message', metavar='MESSAGE', nargs='+', - help="Up to 8 message texts with embedded builtin icons or loaded images within colons(:) -- See -l for a list of builtins") -parser.add_argument('--mode-help', action='version', help=argparse.SUPPRESS, version=""" - --m 5 "Animation" - - Animation frames are 6 character (or 48px) wide. Upload an animation of - N frames as one image N*48 pixels wide, 11 pixels high. - Frames run from left to right and repeat endless. - Speeds [1..8] result in ca. [1.2 1.3 2.0 2.4 2.8 4.5 7.5 15] fps. - - Example of a slowly beating heart: - sudo %s -s1 -m5 " :heart2: :HEART2:" - --m 9 "Smooth" --m 10 "Rotate" - - These modes are mentioned in the BMP Badge software. - Text is shown static, or sometimes (longer texts?) not shown at all. - One significant difference is: The text of the first message stays visible after - upload, even if the USB cable remains connected. - (No "rotation" or "smoothing"(?) effect can be expected, though) -""" % sys.argv[0]) -args = parser.parse_args() -if have_pyhidapi: - devinfo = pyhidapi.hid_enumerate(0x0416, 0x5020) - # dev = pyhidapi.hid_open(0x0416, 0x5020) -else: - dev = usb.core.find(idVendor=0x0416, idProduct=0x5020) - -if have_pyhidapi: - if devinfo: - dev = pyhidapi.hid_open_path(devinfo[0].path) - print("using [%s %s] int=%d page=%s via pyHIDAPI" % ( - devinfo[0].manufacturer_string, devinfo[0].product_string, devinfo[0].interface_number, devinfo[0].usage_page)) + +if __name__ == '__main__': + parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter, + description='Upload messages or graphics to a 11x44 led badge via USB HID.\nVersion %s from https://github.com/jnweiger/led-badge-ls32\n -- see there for more examples and for updates.' % __version, + epilog='Example combining image and text:\n sudo %s "I:HEART2:you"' % sys.argv[0]) + parser.add_argument('-t', '--type', default='11x44', + help="Type of display: supported values are 12x48 or (default) 11x44. Rename the program to led-badge-12x48, to switch the default.") + parser.add_argument('-s', '--speed', default='4', help="Scroll speed (Range 1..8). Up to 8 comma-separated values") + parser.add_argument('-B', '--brightness', default='100', + help="Brightness for the display in percent: 25, 50, 75, or 100") + parser.add_argument('-m', '--mode', default='0', + help="Up to 8 mode values: Scroll-left(0) -right(1) -up(2) -down(3); still-centered(4); animation(5); drop-down(6); curtain(7); laser(8); See '--mode-help' for more details.") + parser.add_argument('-b', '--blink', default='0', help="1: blinking, 0: normal. Up to 8 comma-separated values") + parser.add_argument('-a', '--ants', default='0', help="1: animated border, 0: normal. Up to 8 comma-separated values") + parser.add_argument('-p', '--preload', metavar='FILE', action='append', + help=argparse.SUPPRESS) # "Load bitmap images. Use ^A, ^B, ^C, ... in text messages to make them visible. Deprecated, embed within ':' instead") + parser.add_argument('-l', '--list-names', action='version', help="list named icons to be embedded in messages and exit", + version=':' + ': :'.join(bitmap_named.keys()) + ': :: or e.g. :path/to/some_icon.png:') + parser.add_argument('message', metavar='MESSAGE', nargs='+', + help="Up to 8 message texts with embedded builtin icons or loaded images within colons(:) -- See -l for a list of builtins") + parser.add_argument('--mode-help', action='version', help=argparse.SUPPRESS, version=""" + + -m 5 "Animation" + + Animation frames are 6 character (or 48px) wide. Upload an animation of + N frames as one image N*48 pixels wide, 11 pixels high. + Frames run from left to right and repeat endless. + Speeds [1..8] result in ca. [1.2 1.3 2.0 2.4 2.8 4.5 7.5 15] fps. + + Example of a slowly beating heart: + sudo %s -s1 -m5 " :heart2: :HEART2:" + + -m 9 "Smooth" + -m 10 "Rotate" + + These modes are mentioned in the BMP Badge software. + Text is shown static, or sometimes (longer texts?) not shown at all. + One significant difference is: The text of the first message stays visible after + upload, even if the USB cable remains connected. + (No "rotation" or "smoothing"(?) effect can be expected, though) + """ % sys.argv[0]) + args = parser.parse_args() + if have_pyhidapi: + devinfo = pyhidapi.hid_enumerate(0x0416, 0x5020) + # dev = pyhidapi.hid_open(0x0416, 0x5020) else: - print("No led tag with vendorID 0x0416 and productID 0x5020 found.") - print("Connect the led tag and run this tool as root.") - sys.exit(1) -else: - if dev is None: - print("No led tag with vendorID 0x0416 and productID 0x5020 found.") - print("Connect the led tag and run this tool as root.") + dev = usb.core.find(idVendor=0x0416, idProduct=0x5020) + + if have_pyhidapi: + if devinfo: + dev = pyhidapi.hid_open_path(devinfo[0].path) + print("using [%s %s] int=%d page=%s via pyHIDAPI" % ( + devinfo[0].manufacturer_string, devinfo[0].product_string, devinfo[0].interface_number, devinfo[0].usage_page)) + else: + print("No led tag with vendorID 0x0416 and productID 0x5020 found.") + print("Connect the led tag and run this tool as root.") + sys.exit(1) + else: + if dev is None: + print("No led tag with vendorID 0x0416 and productID 0x5020 found.") + print("Connect the led tag and run this tool as root.") + sys.exit(1) + try: + # win32: NotImplementedError: is_kernel_driver_active + if dev.is_kernel_driver_active(0): + dev.detach_kernel_driver(0) + except: + pass + dev.set_configuration() + print("using [%s %s] bus=%d dev=%d" % (dev.manufacturer, dev.product, dev.bus, dev.address)) + + if args.preload: + for file in args.preload: + bitmap_preloaded.append(bitmap_img(file)) + bitmaps_preloaded_unused = True + + msg_bitmaps = [] + for msg_arg in args.message: + msg_bitmaps.append(bitmap(msg_arg)) + + if bitmaps_preloaded_unused == True: + print( + "\nWARNING:\n Your preloaded images are not used.\n Try without '-p' or embed the control character '^A' in your message.\n") + + if '12' in args.type or '12' in sys.argv[0]: + print("Type: 12x48") + for msg_bitmap in msg_bitmaps: + # trivial hack to support 12x48 badges: + # patch extra empty lines into the message stream. + for o in reversed(range(1, int(len(msg_bitmap[0]) / 11) + 1)): + msg_bitmap[0][o * 11:o * 11] = array('B', [0]) + else: + print("Type: 11x44") + + buf = array('B') + buf.extend(header(list(map(lambda x: x[1], msg_bitmaps)), args.speed, args.mode, args.blink, args.ants, int(args.brightness))) + + for msg_bitmap in msg_bitmaps: + buf.extend(msg_bitmap[0]) + + need_padding = len(buf) % 64 + if need_padding: + buf.extend((0,) * (64 - need_padding)) + + # print(buf) # array('B', [119, 97, 110, 103, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 126, 255, 255, 255, 255, 126, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) + + if len(buf) > 8192: + print("Writing more than 8192 bytes damages the display!") sys.exit(1) - try: - # win32: NotImplementedError: is_kernel_driver_active - if dev.is_kernel_driver_active(0): - dev.detach_kernel_driver(0) - except: - pass - dev.set_configuration() - print("using [%s %s] bus=%d dev=%d" % (dev.manufacturer, dev.product, dev.bus, dev.address)) - -if args.preload: - for file in args.preload: - bitmap_preloaded.append(bitmap_img(file)) - bitmaps_preloaded_unused = True - -msgs = [] -for arg in args.message: - msgs.append(bitmap(arg)) - -if bitmaps_preloaded_unused == True: - print( - "\nWARNING:\n Your preloaded images are not used.\n Try without '-p' or embed the control character '^A' in your message.\n") - -if '12' in args.type or '12' in sys.argv[0]: - print("Type: 12x48") - for msg in msgs: - # trivial hack to support 12x48 badges: - # patch extra empty lines into the message stream. - for o in reversed(range(1, int(len(msg[0]) / 11) + 1)): - msg[0][o * 11:o * 11] = array('B', [0]) -else: - print("Type: 11x44") - -buf = array('B') -buf.extend(header(list(map(lambda x: x[1], msgs)), args.speed, args.mode, args.blink, args.ants, int(args.brightness))) - -for msg in msgs: - buf.extend(msg[0]) - -needpadding = len(buf) % 64 -if needpadding: - buf.extend((0,) * (64 - needpadding)) - -# print(buf) # array('B', [119, 97, 110, 103, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 126, 255, 255, 255, 255, 126, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) - -if len(buf) > 8192: - print("Writing more than 8192 bytes damages the display!") - sys.exit(1) - -if have_pyhidapi: - pyhidapi.hid_write(dev, buf) -else: - for i in range(int(len(buf) / 64)): - time.sleep(0.1) - dev.write(1, buf[i * 64:i * 64 + 64]) - -if have_pyhidapi: - pyhidapi.hid_close(dev) + + if have_pyhidapi: + pyhidapi.hid_write(dev, buf) + else: + for i in range(int(len(buf) / 64)): + time.sleep(0.1) + dev.write(1, buf[i * 64:i * 64 + 64]) + + if have_pyhidapi: + pyhidapi.hid_close(dev) From 0d78c48a4cf28d1e342757fbfb730bb74ff8672a Mon Sep 17 00:00:00 2001 From: Ben Date: Sun, 5 Nov 2023 21:55:26 +0100 Subject: [PATCH 17/33] First unittests --- tests/test_led-badge-11x44.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 tests/test_led-badge-11x44.py diff --git a/tests/test_led-badge-11x44.py b/tests/test_led-badge-11x44.py new file mode 100644 index 0000000..a2d8afa --- /dev/null +++ b/tests/test_led-badge-11x44.py @@ -0,0 +1,35 @@ +from unittest import TestCase +import datetime +import importlib + +testee = importlib.import_module("led-badge-11x44") + + +class Test(TestCase): + def setUp(self): + self.test_date = datetime.datetime(2022, 11, 13, 17, 38, 24) + + def test_header_2msgs(self): + buf = testee.header((6,7), "5,3", "6,2", "0,1", "1,0", 75, self.test_date) + self.assertEqual([119, 97, 110, 103, 0, 16, 254, 1, 70, 34, 34, 34, 34, 34, 34, 34, 0, 6, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) + + def test_header_8msgs(self): + buf = testee.header((1,2,3,4,5,6,7,8), "1,2,3,4,5,6,7,8", "1,2,3,4,5,6,7,8", "0,1,0,1,0,1,0,1", "1,0,1,0,1,0,1,0", 25, self.test_date) + self.assertEqual([119, 97, 110, 103, 0, 64, 170, 85, 1, 18, 35, 52, 69, 86, 103, 120, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) + + def test_header_brightness(self): + buf = testee.header((6,), "4", "4", "0", "0", 25, self.test_date) + self.assertEqual([119, 97, 110, 103, 0, 64, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) + buf = testee.header((6,), "4", "4", "0", "0", 26, self.test_date) + self.assertEqual([119, 97, 110, 103, 0, 32, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) + buf = testee.header((6,), "4", "4", "0", "0", 60, self.test_date) + self.assertEqual([119, 97, 110, 103, 0, 16, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) + buf = testee.header((6,), "4", "4", "0", "0", 80, self.test_date) + self.assertEqual([119, 97, 110, 103, 0, 0, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) + + def test_header_date(self): + buf1 = testee.header((6,), "4", "4", "0", "0", 100, self.test_date) + buf2 = testee.header((6,), "4", "4", "0", "0", 100) + self.assertEqual(buf1[0:38], buf2[0:38]) + self.assertEqual(buf1[38+6:], buf2[38+6:]) + self.assertNotEqual(buf1[38:38+6], buf2[38:38+6]) From 745398399fb992fb7cc35323e40199dd131f98b2 Mon Sep 17 00:00:00 2001 From: Ben Date: Thu, 9 Nov 2023 07:21:07 +0100 Subject: [PATCH 18/33] More unittests --- tests/resources/bitpatterns.png | Bin 0 -> 133 bytes tests/test_led-badge-11x44.py | 55 +++++++++++++++++++++++++------- 2 files changed, 44 insertions(+), 11 deletions(-) create mode 100644 tests/resources/bitpatterns.png diff --git a/tests/resources/bitpatterns.png b/tests/resources/bitpatterns.png new file mode 100644 index 0000000000000000000000000000000000000000..03b7a9046caf53e60264e9a2266defa54985caf8 GIT binary patch literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^5N+9QhawI1YXI-~Wy;IQ`6r6pbdQybW5{{whi|y>@iT+sN-VgN4`N#M# Date: Thu, 9 Nov 2023 08:35:52 +0100 Subject: [PATCH 19/33] Move processing of command line arguments from header() to main code, some clean code refactoring --- led-badge-11x44.py | 52 ++++++++++++++++++++--------------- tests/test_led-badge-11x44.py | 22 +++++++-------- 2 files changed, 41 insertions(+), 33 deletions(-) diff --git a/led-badge-11x44.py b/led-badge-11x44.py index da45886..43fe6b3 100755 --- a/led-badge-11x44.py +++ b/led-badge-11x44.py @@ -397,32 +397,30 @@ def bitmap(arg): return bitmap_text(arg) -proto_header = ( - 0x77, 0x61, 0x6e, 0x67, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -) - +def expand_tuple(l): + l = l + (l[-1],) * (8 - len(l)) # repeat last element + return l -def header(lengths, speeds, modes, blink, ants, brightness=100, date=datetime.now()): +def header(lengths, speeds, modes, blinks, ants, brightness=100, date=datetime.now()): """ lengths[0] is the number of chars of the first text Speeds come in as 1..8, but are needed 0..7 here. """ - a = [int(x) for x in re.split(r'[\s,]+', ants)] - a = a + [a[-1]] * (8 - len(a)) # repeat last element - - b = [int(x) for x in re.split(r'[\s,]+', blink)] - b = b + [b[-1]] * (8 - len(b)) # repeat last element + protocol_header_template = ( + 0x77, 0x61, 0x6e, 0x67, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + ) - s = [int(x) - 1 for x in re.split(r'[\s,]+', speeds)] - s = s + [s[-1]] * (8 - len(s)) # repeat last element + ants = expand_tuple(ants) + blinks = expand_tuple(blinks) + speeds = expand_tuple(speeds) + modes = expand_tuple(modes) - m = [int(x) for x in re.split(r'[\s,]+', modes)] - m = m + [m[-1]] * (8 - len(m)) # repeat last element + speeds = [x - 1 for x in speeds] - h = list(proto_header) + h = list(protocol_header_template) if brightness <= 25: h[5] = 0x40 @@ -432,11 +430,11 @@ def header(lengths, speeds, modes, blink, ants, brightness=100, date=datetime.no h[5] = 0x10 for i in range(8): - h[6] += b[i] << i - h[7] += a[i] << i + h[6] += blinks[i] << i + h[7] += ants[i] << i for i in range(8): - h[8 + i] = 16 * s[i] + m[i] + h[8 + i] = 16 * speeds[i] + modes[i] for i in range(len(lengths)): h[17 + (2 * i) - 1] = lengths[i] // 256 @@ -452,6 +450,9 @@ def header(lengths, speeds, modes, blink, ants, brightness=100, date=datetime.no return h +def split_to_ints(list_str): + return [int(x) for x in re.split(r'[\s,]+', list_str)] + if __name__ == '__main__': parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter, @@ -546,8 +547,15 @@ if __name__ == '__main__': else: print("Type: 11x44") + lengths = [b[1] for b in msg_bitmaps] + speeds = split_to_ints(args.speeds) + modes = split_to_ints(args.mode) + blinks = split_to_ints(args.blink) + ants = split_to_ints(args.ants) + brightness = int(args.brightness) + buf = array('B') - buf.extend(header(list(map(lambda x: x[1], msg_bitmaps)), args.speed, args.mode, args.blink, args.ants, int(args.brightness))) + buf.extend(header(lengths, speeds, modes, blinks, ants, brightness)) for msg_bitmap in msg_bitmaps: buf.extend(msg_bitmap[0]) diff --git a/tests/test_led-badge-11x44.py b/tests/test_led-badge-11x44.py index 12b7cf5..19b6a21 100644 --- a/tests/test_led-badge-11x44.py +++ b/tests/test_led-badge-11x44.py @@ -11,17 +11,17 @@ class Test(TestCase): self.test_date = datetime.datetime(2022, 11, 13, 17, 38, 24) def test_header_2msgs(self): - buf = testee.header((6, 7), "5,3", "6,2", "0,1", "1,0", 75, self.test_date) + buf = testee.header((6, 7), (5, 3), (6, 2), (0, 1), (1, 0), 75, self.test_date) self.assertEqual([119, 97, 110, 103, 0, 16, 254, 1, 70, 34, 34, 34, 34, 34, 34, 34, 0, 6, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) def test_header_8msgs(self): buf = testee.header((1, 2, 3, 4, 5, 6, 7, 8), - "1,2,3,4,5,6,7,8", - "1,2,3,4,5,6,7,8", - "0,1,0,1,0,1,0,1", - "1,0,1,0,1,0,1,0", + (1, 2, 3, 4, 5, 6, 7, 8), + (1, 2, 3, 4, 5, 6, 7, 8), + (0, 1, 0, 1, 0, 1, 0, 1), + (1, 0, 1, 0, 1, 0, 1, 0), 25, self.test_date) self.assertEqual([119, 97, 110, 103, 0, 64, 170, 85, 1, 18, 35, 52, 69, 86, 103, 120, 0, 1, 0, 2, 0, 3, 0, 4, 0, @@ -29,26 +29,26 @@ class Test(TestCase): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) def test_header_brightness(self): - buf = testee.header((6,), "4", "4", "0", "0", 25, self.test_date) + buf = testee.header((6,), (4,), (4,), (0,), (0,), 25, self.test_date) self.assertEqual([119, 97, 110, 103, 0, 64, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) - buf = testee.header((6,), "4", "4", "0", "0", 26, self.test_date) + buf = testee.header((6,), (4,), (4,), (0,), (0,), 26, self.test_date) self.assertEqual([119, 97, 110, 103, 0, 32, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) - buf = testee.header((6,), "4", "4", "0", "0", 60, self.test_date) + buf = testee.header((6,), (4,), (4,), (0,), (0,), 60, self.test_date) self.assertEqual([119, 97, 110, 103, 0, 16, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) - buf = testee.header((6,), "4", "4", "0", "0", 80, self.test_date) + buf = testee.header((6,), (4,), (4,), (0,), (0,), 80, self.test_date) self.assertEqual([119, 97, 110, 103, 0, 0, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) def test_header_date(self): - buf1 = testee.header((6,), "4", "4", "0", "0", 100, self.test_date) - buf2 = testee.header((6,), "4", "4", "0", "0", 100) + buf1 = testee.header((6,), (4,), (4,), (0,), (0,), 100, self.test_date) + buf2 = testee.header((6,), (4,), (4,), (0,), (0,), 100) self.assertEqual(buf1[0:38], buf2[0:38]) self.assertEqual(buf1[38 + 6:], buf2[38 + 6:]) self.assertNotEqual(buf1[38:38 + 6], buf2[38:38 + 6]) From 6b06508ef9581c2caec9a57cefdb253dd7cb748f Mon Sep 17 00:00:00 2001 From: Ben Date: Fri, 10 Nov 2023 06:54:55 +0100 Subject: [PATCH 20/33] Rearranging code: grouping by functionality parameter-processing, write-buffer-preparing, writing. The goal is a nice splitting into classes and methods, a bit more clean-codish and easy usage as a module. --- led-badge-11x44.py | 55 ++++++++++++++++++++-------------------------- 1 file changed, 24 insertions(+), 31 deletions(-) diff --git a/led-badge-11x44.py b/led-badge-11x44.py index 43fe6b3..65b9059 100755 --- a/led-badge-11x44.py +++ b/led-badge-11x44.py @@ -495,34 +495,6 @@ if __name__ == '__main__': (No "rotation" or "smoothing"(?) effect can be expected, though) """ % sys.argv[0]) args = parser.parse_args() - if have_pyhidapi: - devinfo = pyhidapi.hid_enumerate(0x0416, 0x5020) - # dev = pyhidapi.hid_open(0x0416, 0x5020) - else: - dev = usb.core.find(idVendor=0x0416, idProduct=0x5020) - - if have_pyhidapi: - if devinfo: - dev = pyhidapi.hid_open_path(devinfo[0].path) - print("using [%s %s] int=%d page=%s via pyHIDAPI" % ( - devinfo[0].manufacturer_string, devinfo[0].product_string, devinfo[0].interface_number, devinfo[0].usage_page)) - else: - print("No led tag with vendorID 0x0416 and productID 0x5020 found.") - print("Connect the led tag and run this tool as root.") - sys.exit(1) - else: - if dev is None: - print("No led tag with vendorID 0x0416 and productID 0x5020 found.") - print("Connect the led tag and run this tool as root.") - sys.exit(1) - try: - # win32: NotImplementedError: is_kernel_driver_active - if dev.is_kernel_driver_active(0): - dev.detach_kernel_driver(0) - except: - pass - dev.set_configuration() - print("using [%s %s] bus=%d dev=%d" % (dev.manufacturer, dev.product, dev.bus, dev.address)) if args.preload: for file in args.preload: @@ -571,11 +543,32 @@ if __name__ == '__main__': sys.exit(1) if have_pyhidapi: + devinfo = pyhidapi.hid_enumerate(0x0416, 0x5020) + # dev = pyhidapi.hid_open(0x0416, 0x5020) + if devinfo: + dev = pyhidapi.hid_open_path(devinfo[0].path) + print("using [%s %s] int=%d page=%s via pyHIDAPI" % ( + devinfo[0].manufacturer_string, devinfo[0].product_string, devinfo[0].interface_number, devinfo[0].usage_page)) + else: + print("No led tag with vendorID 0x0416 and productID 0x5020 found.") + print("Connect the led tag and run this tool as root.") + sys.exit(1) pyhidapi.hid_write(dev, buf) + pyhidapi.hid_close(dev) else: + dev = usb.core.find(idVendor=0x0416, idProduct=0x5020) + if dev is None: + print("No led tag with vendorID 0x0416 and productID 0x5020 found.") + print("Connect the led tag and run this tool as root.") + sys.exit(1) + try: + # win32: NotImplementedError: is_kernel_driver_active + if dev.is_kernel_driver_active(0): + dev.detach_kernel_driver(0) + except: + pass + dev.set_configuration() + print("using [%s %s] bus=%d dev=%d" % (dev.manufacturer, dev.product, dev.bus, dev.address)) for i in range(int(len(buf) / 64)): time.sleep(0.1) dev.write(1, buf[i * 64:i * 64 + 64]) - - if have_pyhidapi: - pyhidapi.hid_close(dev) From d79a15f119a48644b7b363e8f99f65f6465d6650 Mon Sep 17 00:00:00 2001 From: Ben Date: Sun, 12 Nov 2023 17:03:18 +0100 Subject: [PATCH 21/33] Rearranging code: new class LedNameBadge for the methods header() and write() (and the USB decision and initialization code), which are the ones, that other content creation sw might want to use. --- led-badge-11x44.py | 257 +++++++++++++++++++++++++-------------------- 1 file changed, 143 insertions(+), 114 deletions(-) diff --git a/led-badge-11x44.py b/led-badge-11x44.py index 65b9059..71d7daf 100755 --- a/led-badge-11x44.py +++ b/led-badge-11x44.py @@ -49,39 +49,22 @@ # v0.11, 2019-09-29, jw New option --brightness added. # v0.12, 2019-12-27, jw hint at pip3 -- as discussed in https://github.com/jnweiger/led-name-badge-ls32/issues/19 -import sys, os, re, time, argparse -from datetime import datetime +import argparse +import os +import re +import sys +import time from array import array +from datetime import datetime try: - if sys.version_info[0] < 3: raise Exception( - "prefer usb.core with python-2.x because of https://github.com/jnweiger/led-badge-ls32/issues/9") import pyhidapi - - pyhidapi.hid_init() - have_pyhidapi = True except: - have_pyhidapi = False - try: - import usb.core - except: - print("ERROR: Need the pyhidapi or usb.core module.") - if sys.platform == "darwin": - print("""Please try - pip3 install pyhidapi - pip install pyhidapi - brew install hidapi""") - elif sys.platform == "linux": - print("""Please try - sudo pip3 install pyhidapi - sudo pip install pyhidapi - sudo apt-get install libhidapi-hidraw0 - sudo ln -s /usr/lib/x86_64-linux-gnu/libhidapi-hidraw.so.0 /usr/local/lib/ -or - sudo apt-get install python3-usb""") - else: # windows? - print("""Please with Linux or MacOS or help us implement support for """ + sys.platform) - sys.exit(1) + pass +try: + import usb.core +except: + pass __version = "0.12" @@ -311,7 +294,7 @@ def bitmap_char(ch): """ Returns a tuple of 11 bytes, ch = '_' returns (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255) The bits in each byte are horizontal, highest bit is left. - """ + """ if ord(ch) < 32: if ch in bitmap_builtin: return bitmap_builtin[ch][:2] @@ -397,62 +380,143 @@ def bitmap(arg): return bitmap_text(arg) -def expand_tuple(l): - l = l + (l[-1],) * (8 - len(l)) # repeat last element - return l - -def header(lengths, speeds, modes, blinks, ants, brightness=100, date=datetime.now()): - """ lengths[0] is the number of chars of the first text - - Speeds come in as 1..8, but are needed 0..7 here. - """ - protocol_header_template = ( +class LedNameBadge: + _protocol_header_template = ( 0x77, 0x61, 0x6e, 0x67, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ) + _have_pyhidapi = False - ants = expand_tuple(ants) - blinks = expand_tuple(blinks) - speeds = expand_tuple(speeds) - modes = expand_tuple(modes) - - speeds = [x - 1 for x in speeds] - - h = list(protocol_header_template) - - if brightness <= 25: - h[5] = 0x40 - elif brightness <= 50: - h[5] = 0x20 - elif brightness <= 75: - h[5] = 0x10 - - for i in range(8): - h[6] += blinks[i] << i - h[7] += ants[i] << i - - for i in range(8): - h[8 + i] = 16 * speeds[i] + modes[i] - - for i in range(len(lengths)): - h[17 + (2 * i) - 1] = lengths[i] // 256 - h[17 + (2 * i)] = lengths[i] % 256 - - h[38 + 0] = date.year % 100 - h[38 + 1] = date.month - h[38 + 2] = date.day - h[38 + 3] = date.hour - h[38 + 4] = date.minute - h[38 + 5] = date.second + @staticmethod + def init_class(): + try: + if sys.version_info[0] < 3: + raise Exception("prefer usb.core with python-2.x because of https://github.com/jnweiger/led-badge-ls32/issues/9") + if pyhidapi: + pyhidapi.hid_init() + LedNameBadge._have_pyhidapi = True + print("Pyhidapi detected") + else: + raise Exception() + except Exception as e: + try: + if usb.core: + print("Pyusb detected") + else: + raise Exception() + except: + print("ERROR: Need the pyhidapi or usb.core module.") + if sys.platform == "darwin": + print("""Please try + pip3 install pyhidapi + pip install pyhidapi + brew install hidapi +""") + elif sys.platform == "linux": + print("""Please try + sudo pip3 install pyhidapi + sudo pip install pyhidapi + sudo apt-get install libhidapi-hidraw0 + sudo ln -s /usr/lib/x86_64-linux-gnu/libhidapi-hidraw.so.0 /usr/local/lib/ +or + sudo apt-get install python3-usb +""") + else: # windows? + print("""Please with Linux or MacOS or help us implement support for """ + sys.platform) + sys.exit(1) + + @staticmethod + def _expand_tuple(l): + l = l + (l[-1],) * (8 - len(l)) # repeat last element + return l + + @staticmethod + def header(lengths, speeds, modes, blinks, ants, brightness=100, date=datetime.now()): + """ lengths[0] is the number of chars of the first text + + Speeds come in as 1..8, but are needed 0..7 here. + """ + ants = LedNameBadge._expand_tuple(ants) + blinks = LedNameBadge._expand_tuple(blinks) + speeds = LedNameBadge._expand_tuple(speeds) + modes = LedNameBadge._expand_tuple(modes) + + speeds = [x - 1 for x in speeds] + + h = list(LedNameBadge._protocol_header_template) + + if brightness <= 25: + h[5] = 0x40 + elif brightness <= 50: + h[5] = 0x20 + elif brightness <= 75: + h[5] = 0x10 + + for i in range(8): + h[6] += blinks[i] << i + h[7] += ants[i] << i + + for i in range(8): + h[8 + i] = 16 * speeds[i] + modes[i] + + for i in range(len(lengths)): + h[17 + (2 * i) - 1] = lengths[i] // 256 + h[17 + (2 * i)] = lengths[i] % 256 + + h[38 + 0] = date.year % 100 + h[38 + 1] = date.month + h[38 + 2] = date.day + h[38 + 3] = date.hour + h[38 + 4] = date.minute + h[38 + 5] = date.second + + return h + + @staticmethod + def write(buf): + if len(buf) > 8192: + print("Writing more than 8192 bytes damages the display!") + sys.exit(1) - return h + if LedNameBadge._have_pyhidapi: + dev_info = pyhidapi.hid_enumerate(0x0416, 0x5020) + # dev = pyhidapi.hid_open(0x0416, 0x5020) + if dev_info: + dev = pyhidapi.hid_open_path(dev_info[0].path) + print("using [%s %s] int=%d page=%s via pyHIDAPI" % ( + dev_info[0].manufacturer_string, dev_info[0].product_string, dev_info[0].interface_number, dev_info[0].usage_page)) + else: + print("No led tag with vendorID 0x0416 and productID 0x5020 found.") + print("Connect the led tag and run this tool as root.") + sys.exit(1) + pyhidapi.hid_write(dev, buf) + pyhidapi.hid_close(dev) + else: + dev = usb.core.find(idVendor=0x0416, idProduct=0x5020) + if dev is None: + print("No led tag with vendorID 0x0416 and productID 0x5020 found.") + print("Connect the led tag and run this tool as root.") + sys.exit(1) + try: + # win32: NotImplementedError: is_kernel_driver_active + if dev.is_kernel_driver_active(0): + dev.detach_kernel_driver(0) + except: + pass + dev.set_configuration() + print("using [%s %s] bus=%d dev=%d" % (dev.manufacturer, dev.product, dev.bus, dev.address)) + for i in range(int(len(buf) / 64)): + time.sleep(0.1) + dev.write(1, buf[i * 64:i * 64 + 64]) + + +LedNameBadge.init_class() def split_to_ints(list_str): - return [int(x) for x in re.split(r'[\s,]+', list_str)] - + return tuple([int(x) for x in re.split(r'[\s,]+', list_str)]) if __name__ == '__main__': parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter, @@ -519,15 +583,15 @@ if __name__ == '__main__': else: print("Type: 11x44") - lengths = [b[1] for b in msg_bitmaps] - speeds = split_to_ints(args.speeds) + lengths = tuple([b[1] for b in msg_bitmaps]) + speeds = split_to_ints(args.speed) modes = split_to_ints(args.mode) blinks = split_to_ints(args.blink) ants = split_to_ints(args.ants) brightness = int(args.brightness) buf = array('B') - buf.extend(header(lengths, speeds, modes, blinks, ants, brightness)) + buf.extend(LedNameBadge.header(lengths, speeds, modes, blinks, ants, brightness)) for msg_bitmap in msg_bitmaps: buf.extend(msg_bitmap[0]) @@ -536,39 +600,4 @@ if __name__ == '__main__': if need_padding: buf.extend((0,) * (64 - need_padding)) - # print(buf) # array('B', [119, 97, 110, 103, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 126, 255, 255, 255, 255, 126, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) - - if len(buf) > 8192: - print("Writing more than 8192 bytes damages the display!") - sys.exit(1) - - if have_pyhidapi: - devinfo = pyhidapi.hid_enumerate(0x0416, 0x5020) - # dev = pyhidapi.hid_open(0x0416, 0x5020) - if devinfo: - dev = pyhidapi.hid_open_path(devinfo[0].path) - print("using [%s %s] int=%d page=%s via pyHIDAPI" % ( - devinfo[0].manufacturer_string, devinfo[0].product_string, devinfo[0].interface_number, devinfo[0].usage_page)) - else: - print("No led tag with vendorID 0x0416 and productID 0x5020 found.") - print("Connect the led tag and run this tool as root.") - sys.exit(1) - pyhidapi.hid_write(dev, buf) - pyhidapi.hid_close(dev) - else: - dev = usb.core.find(idVendor=0x0416, idProduct=0x5020) - if dev is None: - print("No led tag with vendorID 0x0416 and productID 0x5020 found.") - print("Connect the led tag and run this tool as root.") - sys.exit(1) - try: - # win32: NotImplementedError: is_kernel_driver_active - if dev.is_kernel_driver_active(0): - dev.detach_kernel_driver(0) - except: - pass - dev.set_configuration() - print("using [%s %s] bus=%d dev=%d" % (dev.manufacturer, dev.product, dev.bus, dev.address)) - for i in range(int(len(buf) / 64)): - time.sleep(0.1) - dev.write(1, buf[i * 64:i * 64 + 64]) + LedNameBadge.write(buf) From 46574a7348140f6eb924ae81acbffd2109874f93 Mon Sep 17 00:00:00 2001 From: Ben Date: Sun, 12 Nov 2023 18:48:42 +0100 Subject: [PATCH 22/33] Rearranging code: correcting unittests --- led-badge-11x44.py | 2 ++ tests/test_led-badge-11x44.py | 16 ++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/led-badge-11x44.py b/led-badge-11x44.py index 71d7daf..5fe2004 100755 --- a/led-badge-11x44.py +++ b/led-badge-11x44.py @@ -57,6 +57,8 @@ import time from array import array from datetime import datetime +# There are 2 possibilities for accessing the device: using hidapi oer usb-core. Here we just try to import both +# and decide later which one to use, see below in LedNameBadge._init_class(). try: import pyhidapi except: diff --git a/tests/test_led-badge-11x44.py b/tests/test_led-badge-11x44.py index 19b6a21..27d6999 100644 --- a/tests/test_led-badge-11x44.py +++ b/tests/test_led-badge-11x44.py @@ -11,13 +11,13 @@ class Test(TestCase): self.test_date = datetime.datetime(2022, 11, 13, 17, 38, 24) def test_header_2msgs(self): - buf = testee.header((6, 7), (5, 3), (6, 2), (0, 1), (1, 0), 75, self.test_date) + buf = testee.LedNameBadge.header((6, 7), (5, 3), (6, 2), (0, 1), (1, 0), 75, self.test_date) self.assertEqual([119, 97, 110, 103, 0, 16, 254, 1, 70, 34, 34, 34, 34, 34, 34, 34, 0, 6, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) def test_header_8msgs(self): - buf = testee.header((1, 2, 3, 4, 5, 6, 7, 8), + buf = testee.LedNameBadge.header((1, 2, 3, 4, 5, 6, 7, 8), (1, 2, 3, 4, 5, 6, 7, 8), (1, 2, 3, 4, 5, 6, 7, 8), (0, 1, 0, 1, 0, 1, 0, 1), @@ -29,26 +29,26 @@ class Test(TestCase): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) def test_header_brightness(self): - buf = testee.header((6,), (4,), (4,), (0,), (0,), 25, self.test_date) + buf = testee.LedNameBadge.header((6,), (4,), (4,), (0,), (0,), 25, self.test_date) self.assertEqual([119, 97, 110, 103, 0, 64, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) - buf = testee.header((6,), (4,), (4,), (0,), (0,), 26, self.test_date) + buf = testee.LedNameBadge.header((6,), (4,), (4,), (0,), (0,), 26, self.test_date) self.assertEqual([119, 97, 110, 103, 0, 32, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) - buf = testee.header((6,), (4,), (4,), (0,), (0,), 60, self.test_date) + buf = testee.LedNameBadge.header((6,), (4,), (4,), (0,), (0,), 60, self.test_date) self.assertEqual([119, 97, 110, 103, 0, 16, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) - buf = testee.header((6,), (4,), (4,), (0,), (0,), 80, self.test_date) + buf = testee.LedNameBadge.header((6,), (4,), (4,), (0,), (0,), 80, self.test_date) self.assertEqual([119, 97, 110, 103, 0, 0, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) def test_header_date(self): - buf1 = testee.header((6,), (4,), (4,), (0,), (0,), 100, self.test_date) - buf2 = testee.header((6,), (4,), (4,), (0,), (0,), 100) + buf1 = testee.LedNameBadge.header((6,), (4,), (4,), (0,), (0,), 100, self.test_date) + buf2 = testee.LedNameBadge.header((6,), (4,), (4,), (0,), (0,), 100) self.assertEqual(buf1[0:38], buf2[0:38]) self.assertEqual(buf1[38 + 6:], buf2[38 + 6:]) self.assertNotEqual(buf1[38:38 + 6], buf2[38:38 + 6]) From d13f9ebf9faa58c4fd124a355704314222faf85f Mon Sep 17 00:00:00 2001 From: Ben Date: Sun, 12 Nov 2023 18:54:52 +0100 Subject: [PATCH 23/33] Rearranging code: moving the content creation functions to a new class SimpleTextAndIcons to have them out of the way when importing only LedNameBadge. --- led-badge-11x44.py | 659 ++++++++++++++++++---------------- tests/test_led-badge-11x44.py | 30 +- 2 files changed, 363 insertions(+), 326 deletions(-) diff --git a/led-badge-11x44.py b/led-badge-11x44.py index 5fe2004..1143a9f 100755 --- a/led-badge-11x44.py +++ b/led-badge-11x44.py @@ -70,316 +70,334 @@ except: __version = "0.12" -font_11x44 = ( - # 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' - 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, - 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x66, 0xfc, 0x00, - 0x00, 0x7c, 0xc6, 0xc6, 0xc0, 0xc0, 0xc0, 0xc6, 0xc6, 0x7c, 0x00, - 0x00, 0xfc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0xfc, 0x00, - 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x62, 0x66, 0xfe, 0x00, - 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x60, 0x60, 0xf0, 0x00, - 0x00, 0x7c, 0xc6, 0xc6, 0xc0, 0xc0, 0xce, 0xc6, 0xc6, 0x7e, 0x00, - 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, - 0x00, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, - 0x00, 0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0x78, 0x00, - 0x00, 0xe6, 0x66, 0x6c, 0x6c, 0x78, 0x6c, 0x6c, 0x66, 0xe6, 0x00, - 0x00, 0xf0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x62, 0x66, 0xfe, 0x00, - 0x00, 0x82, 0xc6, 0xee, 0xfe, 0xd6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, - 0x00, 0x86, 0xc6, 0xe6, 0xf6, 0xde, 0xce, 0xc6, 0xc6, 0xc6, 0x00, - 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, - 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0xf0, 0x00, - 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xde, 0x7c, 0x06, - 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x6c, 0x66, 0x66, 0xe6, 0x00, - 0x00, 0x7c, 0xc6, 0xc6, 0x60, 0x38, 0x0c, 0xc6, 0xc6, 0x7c, 0x00, - 0x00, 0x7e, 0x7e, 0x5a, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, - 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, - 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x10, 0x00, - 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xfe, 0xee, 0xc6, 0x82, 0x00, - 0x00, 0xc6, 0xc6, 0x6c, 0x7c, 0x38, 0x7c, 0x6c, 0xc6, 0xc6, 0x00, - 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x3c, 0x00, - 0x00, 0xfe, 0xc6, 0x86, 0x0c, 0x18, 0x30, 0x62, 0xc6, 0xfe, 0x00, - - # 'abcdefghijklmnopqrstuvwxyz' - 0x00, 0x00, 0x00, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0x76, 0x00, - 0x00, 0xe0, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, - 0x00, 0x1c, 0x0c, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc6, 0x7c, 0x00, - 0x00, 0x1c, 0x36, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x76, 0xcc, 0xcc, 0x7c, 0x0c, 0xcc, 0x78, - 0x00, 0xe0, 0x60, 0x60, 0x6c, 0x76, 0x66, 0x66, 0x66, 0xe6, 0x00, - 0x00, 0x18, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, - 0x0c, 0x0c, 0x00, 0x1c, 0x0c, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0x78, - 0x00, 0xe0, 0x60, 0x60, 0x66, 0x6c, 0x78, 0x78, 0x6c, 0xe6, 0x00, - 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xec, 0xfe, 0xd6, 0xd6, 0xd6, 0xc6, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xf0, - 0x00, 0x00, 0x00, 0x00, 0x7c, 0xcc, 0xcc, 0x7c, 0x0c, 0x0c, 0x1e, - 0x00, 0x00, 0x00, 0x00, 0xde, 0x76, 0x60, 0x60, 0x60, 0xf0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0x70, 0x1c, 0xc6, 0x7c, 0x00, - 0x00, 0x10, 0x30, 0x30, 0xfc, 0x30, 0x30, 0x30, 0x34, 0x18, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x10, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc6, 0xd6, 0xd6, 0xd6, 0xfe, 0x6c, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc6, 0x6c, 0x38, 0x38, 0x6c, 0xc6, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0xf8, - 0x00, 0x00, 0x00, 0x00, 0xfe, 0x8c, 0x18, 0x30, 0x62, 0xfe, 0x00, - - # '0987654321^ !"\0$%&/()=?` °\\}][{' - 0x00, 0x7c, 0xc6, 0xce, 0xde, 0xf6, 0xe6, 0xc6, 0xc6, 0x7c, 0x00, - 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x06, 0xc6, 0x7c, 0x00, - 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, - 0x00, 0xfe, 0xc6, 0x06, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x30, 0x00, - 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xfc, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, - 0x00, 0xfe, 0xc0, 0xc0, 0xfc, 0x06, 0x06, 0x06, 0xc6, 0x7c, 0x00, - 0x00, 0x0c, 0x1c, 0x3c, 0x6c, 0xcc, 0xfe, 0x0c, 0x0c, 0x1e, 0x00, - 0x00, 0x7c, 0xc6, 0x06, 0x06, 0x3c, 0x06, 0x06, 0xc6, 0x7c, 0x00, - 0x00, 0x7c, 0xc6, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc6, 0xfe, 0x00, - 0x00, 0x18, 0x38, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, - 0x38, 0x6c, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x3c, 0x3c, 0x3c, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, - 0x66, 0x66, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7c, 0x04, 0x14, 0x18, 0x10, 0x10, 0x20, - 0x10, 0x7c, 0xd6, 0xd6, 0x70, 0x1c, 0xd6, 0xd6, 0x7c, 0x10, 0x10, - 0x00, 0x60, 0x92, 0x96, 0x6c, 0x10, 0x6c, 0xd2, 0x92, 0x0c, 0x00, - 0x00, 0x38, 0x6c, 0x6c, 0x38, 0x76, 0xdc, 0xcc, 0xcc, 0x76, 0x00, - 0x00, 0x00, 0x02, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, - 0x00, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00, - 0x00, 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, - 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x7c, 0xc6, 0xc6, 0x0c, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, - 0x18, 0x18, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x7c, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7c, - 0x00, 0x10, 0x28, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x02, 0x00, 0x00, - 0x00, 0x70, 0x18, 0x18, 0x18, 0x0e, 0x18, 0x18, 0x18, 0x70, 0x00, - 0x00, 0x3c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x3c, 0x00, - 0x00, 0x3c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3c, 0x00, - 0x00, 0x0e, 0x18, 0x18, 0x18, 0x70, 0x18, 0x18, 0x18, 0x0e, 0x00, - - # "@ ~ |<>,;.:-_#'+* " - 0x00, 0x00, 0x3c, 0x42, 0x9d, 0xa5, 0xad, 0xb6, 0x40, 0x3c, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00, 0x00, - 0x00, 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x08, 0x08, 0x7c, 0x08, 0x08, 0x18, 0x18, 0x28, 0x28, 0x48, 0x18, - 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, - 0x00, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x00, - 0x00, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x10, 0x20, - 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x08, 0x10, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, - 0x00, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0x00, 0x00, - 0x18, 0x18, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - - # "äöüÄÖÜß" - 0x00, 0xcc, 0xcc, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0x76, 0x00, - 0x00, 0xc6, 0xc6, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, - 0x00, 0xcc, 0xcc, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, - 0xc6, 0xc6, 0x38, 0x6c, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, - 0xc6, 0xc6, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, - 0xc6, 0xc6, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, - 0x00, 0x3c, 0x66, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x66, 0x6c, 0x60, - - # "àäòöùüèéêëôöûîïÿç" - 0x00, 0x60, 0x18, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0x76, 0x00, - 0x00, 0x6c, 0x6c, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0x76, 0x00, - 0x00, 0x60, 0x18, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, - 0x00, 0x6c, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, - 0x00, 0x60, 0x18, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, - 0x00, 0x6c, 0x6c, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, - 0x00, 0x60, 0x18, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc6, 0x7c, 0x00, - 0x00, 0x18, 0x60, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc6, 0x7c, 0x00, - 0x00, 0x10, 0x6c, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc6, 0x7c, 0x00, - 0x00, 0x6c, 0x6c, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc6, 0x7c, 0x00, - 0x00, 0x10, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, - 0x00, 0x6c, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, - 0x00, 0x10, 0x6c, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, - 0x00, 0x10, 0x6c, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, - 0x00, 0x6c, 0x6c, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, - 0x00, 0x6c, 0x6c, 0x00, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0xf8, - 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xc6, 0x7c, 0x10, 0x30, - - # "ÀÅÄÉÈÊËÖÔÜÛÙŸ" - 0x60, 0x18, 0x38, 0x6c, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, - 0x10, 0x6c, 0x38, 0x6c, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, - 0x6c, 0x6c, 0x38, 0x6c, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, - 0x18, 0x60, 0xfe, 0x62, 0x68, 0x78, 0x68, 0x62, 0x66, 0xfe, 0x00, - 0x60, 0x18, 0xfe, 0x62, 0x68, 0x78, 0x68, 0x62, 0x66, 0xfe, 0x00, - 0x10, 0x6c, 0xfe, 0x62, 0x68, 0x78, 0x68, 0x62, 0x66, 0xfe, 0x00, - 0x6c, 0x6c, 0xfe, 0x62, 0x68, 0x78, 0x68, 0x62, 0x66, 0xfe, 0x00, - 0x6c, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, # Ö - 0x10, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, # Ô - 0x6c, 0x6c, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, # Ü - 0x10, 0x6c, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, # Û - 0x60, 0x18, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, # Ù - 0x66, 0x66, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x3c, 0x00, # Ÿ -) - -charmap = u'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + \ - u'abcdefghijklmnopqrstuvwxyz' + \ - u'0987654321^ !"\0$%&/()=?` °\\}][{' + \ - u"@ ~ |<>,;.:-_#'+* " + \ - u"äöüÄÖÜß" + \ - u"àäòöùüèéêëôöûîïÿç" + \ - u"ÀÅÄÉÈÊËÖÔÜÛÙŸ" - -char_offsets = {} -for i in range(len(charmap)): - char_offsets[charmap[i]] = 11 * i - # print(i, charmap[i], char_offset[charmap[i]]) - -bitmap_preloaded = [([], 0)] -bitmaps_preloaded_unused = False - -bitmap_named = { - 'ball': (array('B', ( - 0b00000000, - 0b00000000, - 0b00111100, - 0b01111110, - 0b11111111, - 0b11111111, - 0b11111111, - 0b11111111, - 0b01111110, - 0b00111100, - 0b00000000 - )), 1, '\x1e'), - 'happy': (array('B', ( - 0b00000000, # 0x00 - 0b00000000, # 0x00 - 0b00111100, # 0x3c - 0b01000010, # 0x42 - 0b10100101, # 0xa5 - 0b10000001, # 0x81 - 0b10100101, # 0xa5 - 0b10011001, # 0x99 - 0b01000010, # 0x42 - 0b00111100, # 0x3c - 0b00000000 # 0x00 - )), 1, '\x1d'), - 'happy2': (array('B', (0x00, 0x08, 0x14, 0x08, 0x01, 0x00, 0x00, 0x61, 0x30, 0x1c, 0x07, - 0x00, 0x20, 0x50, 0x20, 0x00, 0x80, 0x80, 0x86, 0x0c, 0x38, 0xe0)), 2, '\x1c'), - 'heart': (array('B', (0x00, 0x00, 0x6c, 0x92, 0x82, 0x82, 0x44, 0x28, 0x10, 0x00, 0x00)), 1, '\x1b'), - 'HEART': (array('B', (0x00, 0x00, 0x6c, 0xfe, 0xfe, 0xfe, 0x7c, 0x38, 0x10, 0x00, 0x00)), 1, '\x1a'), - 'heart2': (array('B', (0x00, 0x0c, 0x12, 0x21, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, - 0x00, 0x60, 0x90, 0x08, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00)), 2, '\x19'), - 'HEART2': (array('B', (0x00, 0x0c, 0x1e, 0x3f, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, - 0x00, 0x60, 0xf0, 0xf8, 0xf8, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00)), 2, '\x18'), - 'fablab': (array('B', (0x07, 0x0e, 0x1b, 0x03, 0x21, 0x2c, 0x2e, 0x26, 0x14, 0x1c, 0x06, - 0x80, 0x60, 0x30, 0x80, 0x88, 0x38, 0xe8, 0xc8, 0x10, 0x30, 0xc0)), 2, '\x17'), - 'bicycle': (array('B', (0x01, 0x02, 0x00, 0x01, 0x07, 0x09, 0x12, 0x12, 0x10, 0x08, 0x07, - 0x00, 0x87, 0x81, 0x5f, 0x22, 0x94, 0x49, 0x5f, 0x49, 0x80, 0x00, - 0x00, 0x80, 0x00, 0x80, 0x70, 0xc8, 0x24, 0xe4, 0x04, 0x88, 0x70)), 3, '\x16'), - 'bicycle_r': (array('B', (0x00, 0x00, 0x00, 0x00, 0x07, 0x09, 0x12, 0x13, 0x10, 0x08, 0x07, - 0x00, 0xf0, 0x40, 0xfd, 0x22, 0x94, 0x49, 0xfd, 0x49, 0x80, 0x00, - 0x40, 0xa0, 0x80, 0x40, 0x70, 0xc8, 0x24, 0x24, 0x04, 0x88, 0x70)), 3, '\x15'), - 'owncloud': (array('B', (0x00, 0x01, 0x02, 0x03, 0x06, 0x0c, 0x1a, 0x13, 0x11, 0x19, 0x0f, - 0x78, 0xcc, 0x87, 0xfc, 0x42, 0x81, 0x81, 0x81, 0x81, 0x43, 0xbd, - 0x00, 0x00, 0x00, 0x80, 0x80, 0xe0, 0x30, 0x10, 0x28, 0x28, 0xd0)), 3, '\x14'), -} -bitmap_builtin = {} -for i in bitmap_named: - bitmap_builtin[bitmap_named[i][2]] = bitmap_named[i] - - -def bitmap_char(ch): - """ Returns a tuple of 11 bytes, - ch = '_' returns (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255) - The bits in each byte are horizontal, highest bit is left. - """ - if ord(ch) < 32: - if ch in bitmap_builtin: - return bitmap_builtin[ch][:2] - - global bitmaps_preloaded_unused - bitmaps_preloaded_unused = False - return bitmap_preloaded[ord(ch)] - - o = char_offsets[ch] - return (font_11x44[o:o + 11], 1) - - -def bitmap_text(text): - """ returns a tuple of (buffer, length_in_byte_columns_aka_chars) - We preprocess the text string for substitution patterns - "::" is replaced with a single ":" - ":1: is replaced with CTRL-A referencing the first preloaded or loaded image. - ":happy:" is replaced with a reference to a builtin smiley glyph - ":heart:" is replaced with a reference to a builtin heart glyph - ":gfx/logo.png:" preloads the file gfx/logo.png and is replaced the corresponding control char. - """ - - def replace_symbolic(m): - name = m.group(1) - if name == '': - return ':' - if re.match('^[0-9]*$', name): # py3 name.isdecimal() - return chr(int(name)) - if '.' in name: - bitmap_preloaded.append(bitmap_img(name)) - return chr(len(bitmap_preloaded) - 1) - return bitmap_named[name][2] - - text = re.sub(r':([^:]*):', replace_symbolic, text) - buf = array('B') - cols = 0 - for c in text: - (b, n) = bitmap_char(c) - buf.extend(b) - cols += n - return (buf, cols) - - -def bitmap_img(file): - """ returns a tuple of (buffer, length_in_byte_columns) - """ - from PIL import Image - - im = Image.open(file) - print("fetching bitmap from file %s -> (%d x %d)" % (file, im.width, im.height)) - if im.height != 11: - sys.exit("%s: image height must be 11px. Seen %d" % (file, im.height)) - buf = array('B') - cols = int((im.width + 7) / 8) - for col in range(cols): - for row in range(11): # [0..10] - byte_val = 0 - for bit in range(8): # [0..7] - bit_val = 0 - x = 8 * col + bit - if x < im.width and row < im.height: - pixel_color = im.getpixel((x, row)) - if isinstance(pixel_color, tuple): - monochrome_color = sum(pixel_color[:3]) / len(pixel_color[:3]) - elif isinstance(pixel_color, int): - monochrome_color = pixel_color - else: - sys.exit("%s: Unknown pixel format detected (%s)!" % (file, pixel_color)) - if monochrome_color > 127: - bit_val = 1 << (7 - bit) - byte_val += bit_val - buf.append(byte_val) - im.close() - return (buf, cols) - - -def bitmap(arg): - """ if arg is a valid and existing path name, we load it as an image. - Otherwise, we take it as a string. - """ - if os.path.exists(arg): - return bitmap_img(arg) - return bitmap_text(arg) + +class SimpleTextAndIcons: + font_11x44 = ( + # 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, + 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x66, 0xfc, 0x00, + 0x00, 0x7c, 0xc6, 0xc6, 0xc0, 0xc0, 0xc0, 0xc6, 0xc6, 0x7c, 0x00, + 0x00, 0xfc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0xfc, 0x00, + 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x62, 0x66, 0xfe, 0x00, + 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x60, 0x60, 0xf0, 0x00, + 0x00, 0x7c, 0xc6, 0xc6, 0xc0, 0xc0, 0xce, 0xc6, 0xc6, 0x7e, 0x00, + 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, + 0x00, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, + 0x00, 0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0x78, 0x00, + 0x00, 0xe6, 0x66, 0x6c, 0x6c, 0x78, 0x6c, 0x6c, 0x66, 0xe6, 0x00, + 0x00, 0xf0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x62, 0x66, 0xfe, 0x00, + 0x00, 0x82, 0xc6, 0xee, 0xfe, 0xd6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, + 0x00, 0x86, 0xc6, 0xe6, 0xf6, 0xde, 0xce, 0xc6, 0xc6, 0xc6, 0x00, + 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, + 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0xf0, 0x00, + 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xde, 0x7c, 0x06, + 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x6c, 0x66, 0x66, 0xe6, 0x00, + 0x00, 0x7c, 0xc6, 0xc6, 0x60, 0x38, 0x0c, 0xc6, 0xc6, 0x7c, 0x00, + 0x00, 0x7e, 0x7e, 0x5a, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, + 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, + 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x10, 0x00, + 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xfe, 0xee, 0xc6, 0x82, 0x00, + 0x00, 0xc6, 0xc6, 0x6c, 0x7c, 0x38, 0x7c, 0x6c, 0xc6, 0xc6, 0x00, + 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x3c, 0x00, + 0x00, 0xfe, 0xc6, 0x86, 0x0c, 0x18, 0x30, 0x62, 0xc6, 0xfe, 0x00, + + # 'abcdefghijklmnopqrstuvwxyz' + 0x00, 0x00, 0x00, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0x76, 0x00, + 0x00, 0xe0, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, + 0x00, 0x1c, 0x0c, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc6, 0x7c, 0x00, + 0x00, 0x1c, 0x36, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x76, 0xcc, 0xcc, 0x7c, 0x0c, 0xcc, 0x78, + 0x00, 0xe0, 0x60, 0x60, 0x6c, 0x76, 0x66, 0x66, 0x66, 0xe6, 0x00, + 0x00, 0x18, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, + 0x0c, 0x0c, 0x00, 0x1c, 0x0c, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0x78, + 0x00, 0xe0, 0x60, 0x60, 0x66, 0x6c, 0x78, 0x78, 0x6c, 0xe6, 0x00, + 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xec, 0xfe, 0xd6, 0xd6, 0xd6, 0xc6, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xf0, + 0x00, 0x00, 0x00, 0x00, 0x7c, 0xcc, 0xcc, 0x7c, 0x0c, 0x0c, 0x1e, + 0x00, 0x00, 0x00, 0x00, 0xde, 0x76, 0x60, 0x60, 0x60, 0xf0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0x70, 0x1c, 0xc6, 0x7c, 0x00, + 0x00, 0x10, 0x30, 0x30, 0xfc, 0x30, 0x30, 0x30, 0x34, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc6, 0xd6, 0xd6, 0xd6, 0xfe, 0x6c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc6, 0x6c, 0x38, 0x38, 0x6c, 0xc6, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0xf8, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0x8c, 0x18, 0x30, 0x62, 0xfe, 0x00, + + # '0987654321^ !"\0$%&/()=?` °\\}][{' + 0x00, 0x7c, 0xc6, 0xce, 0xde, 0xf6, 0xe6, 0xc6, 0xc6, 0x7c, 0x00, + 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x06, 0xc6, 0x7c, 0x00, + 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, + 0x00, 0xfe, 0xc6, 0x06, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x30, 0x00, + 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xfc, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, + 0x00, 0xfe, 0xc0, 0xc0, 0xfc, 0x06, 0x06, 0x06, 0xc6, 0x7c, 0x00, + 0x00, 0x0c, 0x1c, 0x3c, 0x6c, 0xcc, 0xfe, 0x0c, 0x0c, 0x1e, 0x00, + 0x00, 0x7c, 0xc6, 0x06, 0x06, 0x3c, 0x06, 0x06, 0xc6, 0x7c, 0x00, + 0x00, 0x7c, 0xc6, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc6, 0xfe, 0x00, + 0x00, 0x18, 0x38, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, + 0x38, 0x6c, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x3c, 0x3c, 0x3c, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, + 0x66, 0x66, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7c, 0x04, 0x14, 0x18, 0x10, 0x10, 0x20, + 0x10, 0x7c, 0xd6, 0xd6, 0x70, 0x1c, 0xd6, 0xd6, 0x7c, 0x10, 0x10, + 0x00, 0x60, 0x92, 0x96, 0x6c, 0x10, 0x6c, 0xd2, 0x92, 0x0c, 0x00, + 0x00, 0x38, 0x6c, 0x6c, 0x38, 0x76, 0xdc, 0xcc, 0xcc, 0x76, 0x00, + 0x00, 0x00, 0x02, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, + 0x00, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00, + 0x00, 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, + 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7c, 0xc6, 0xc6, 0x0c, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, + 0x18, 0x18, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7c, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x7c, + 0x00, 0x10, 0x28, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x02, 0x00, 0x00, + 0x00, 0x70, 0x18, 0x18, 0x18, 0x0e, 0x18, 0x18, 0x18, 0x70, 0x00, + 0x00, 0x3c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x3c, 0x00, + 0x00, 0x3c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3c, 0x00, + 0x00, 0x0e, 0x18, 0x18, 0x18, 0x70, 0x18, 0x18, 0x18, 0x0e, 0x00, + + # "@ ~ |<>,;.:-_#'+* " + 0x00, 0x00, 0x3c, 0x42, 0x9d, 0xa5, 0xad, 0xb6, 0x40, 0x3c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x08, 0x7c, 0x08, 0x08, 0x18, 0x18, 0x28, 0x28, 0x48, 0x18, + 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, + 0x00, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x00, + 0x00, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x10, 0x20, + 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x08, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0x00, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0x00, 0x00, + 0x18, 0x18, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + # "äöüÄÖÜß" + 0x00, 0xcc, 0xcc, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0x76, 0x00, + 0x00, 0xc6, 0xc6, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, + 0x00, 0xcc, 0xcc, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, + 0xc6, 0xc6, 0x38, 0x6c, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, + 0xc6, 0xc6, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, + 0xc6, 0xc6, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, + 0x00, 0x3c, 0x66, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x66, 0x6c, 0x60, + + # "àäòöùüèéêëôöûîïÿç" + 0x00, 0x60, 0x18, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0x76, 0x00, + 0x00, 0x6c, 0x6c, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0x76, 0x00, + 0x00, 0x60, 0x18, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, + 0x00, 0x6c, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, + 0x00, 0x60, 0x18, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, + 0x00, 0x6c, 0x6c, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, + 0x00, 0x60, 0x18, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc6, 0x7c, 0x00, + 0x00, 0x18, 0x60, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc6, 0x7c, 0x00, + 0x00, 0x10, 0x6c, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc6, 0x7c, 0x00, + 0x00, 0x6c, 0x6c, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc6, 0x7c, 0x00, + 0x00, 0x10, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, + 0x00, 0x6c, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, + 0x00, 0x10, 0x6c, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, + 0x00, 0x10, 0x6c, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, + 0x00, 0x6c, 0x6c, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, + 0x00, 0x6c, 0x6c, 0x00, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0xf8, + 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xc6, 0x7c, 0x10, 0x30, + + # "ÀÅÄÉÈÊËÖÔÜÛÙŸ" + 0x60, 0x18, 0x38, 0x6c, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, + 0x10, 0x6c, 0x38, 0x6c, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, + 0x6c, 0x6c, 0x38, 0x6c, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, + 0x18, 0x60, 0xfe, 0x62, 0x68, 0x78, 0x68, 0x62, 0x66, 0xfe, 0x00, + 0x60, 0x18, 0xfe, 0x62, 0x68, 0x78, 0x68, 0x62, 0x66, 0xfe, 0x00, + 0x10, 0x6c, 0xfe, 0x62, 0x68, 0x78, 0x68, 0x62, 0x66, 0xfe, 0x00, + 0x6c, 0x6c, 0xfe, 0x62, 0x68, 0x78, 0x68, 0x62, 0x66, 0xfe, 0x00, + 0x6c, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, # Ö + 0x10, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, # Ô + 0x6c, 0x6c, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, # Ü + 0x10, 0x6c, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, # Û + 0x60, 0x18, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, # Ù + 0x66, 0x66, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x3c, 0x00, # Ÿ + ) + + charmap = u'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + \ + u'abcdefghijklmnopqrstuvwxyz' + \ + u'0987654321^ !"\0$%&/()=?` °\\}][{' + \ + u"@ ~ |<>,;.:-_#'+* " + \ + u"äöüÄÖÜß" + \ + u"àäòöùüèéêëôöûîïÿç" + \ + u"ÀÅÄÉÈÊËÖÔÜÛÙŸ" + + char_offsets = {} + for i in range(len(charmap)): + char_offsets[charmap[i]] = 11 * i + # print(i, charmap[i], char_offset[charmap[i]]) + + bitmap_named = { + 'ball': (array('B', ( + 0b00000000, + 0b00000000, + 0b00111100, + 0b01111110, + 0b11111111, + 0b11111111, + 0b11111111, + 0b11111111, + 0b01111110, + 0b00111100, + 0b00000000 + )), 1, '\x1e'), + 'happy': (array('B', ( + 0b00000000, # 0x00 + 0b00000000, # 0x00 + 0b00111100, # 0x3c + 0b01000010, # 0x42 + 0b10100101, # 0xa5 + 0b10000001, # 0x81 + 0b10100101, # 0xa5 + 0b10011001, # 0x99 + 0b01000010, # 0x42 + 0b00111100, # 0x3c + 0b00000000 # 0x00 + )), 1, '\x1d'), + 'happy2': (array('B', (0x00, 0x08, 0x14, 0x08, 0x01, 0x00, 0x00, 0x61, 0x30, 0x1c, 0x07, + 0x00, 0x20, 0x50, 0x20, 0x00, 0x80, 0x80, 0x86, 0x0c, 0x38, 0xe0)), 2, '\x1c'), + 'heart': (array('B', (0x00, 0x00, 0x6c, 0x92, 0x82, 0x82, 0x44, 0x28, 0x10, 0x00, 0x00)), 1, '\x1b'), + 'HEART': (array('B', (0x00, 0x00, 0x6c, 0xfe, 0xfe, 0xfe, 0x7c, 0x38, 0x10, 0x00, 0x00)), 1, '\x1a'), + 'heart2': (array('B', (0x00, 0x0c, 0x12, 0x21, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, + 0x00, 0x60, 0x90, 0x08, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00)), 2, '\x19'), + 'HEART2': (array('B', (0x00, 0x0c, 0x1e, 0x3f, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, + 0x00, 0x60, 0xf0, 0xf8, 0xf8, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00)), 2, '\x18'), + 'fablab': (array('B', (0x07, 0x0e, 0x1b, 0x03, 0x21, 0x2c, 0x2e, 0x26, 0x14, 0x1c, 0x06, + 0x80, 0x60, 0x30, 0x80, 0x88, 0x38, 0xe8, 0xc8, 0x10, 0x30, 0xc0)), 2, '\x17'), + 'bicycle': (array('B', (0x01, 0x02, 0x00, 0x01, 0x07, 0x09, 0x12, 0x12, 0x10, 0x08, 0x07, + 0x00, 0x87, 0x81, 0x5f, 0x22, 0x94, 0x49, 0x5f, 0x49, 0x80, 0x00, + 0x00, 0x80, 0x00, 0x80, 0x70, 0xc8, 0x24, 0xe4, 0x04, 0x88, 0x70)), 3, '\x16'), + 'bicycle_r': (array('B', (0x00, 0x00, 0x00, 0x00, 0x07, 0x09, 0x12, 0x13, 0x10, 0x08, 0x07, + 0x00, 0xf0, 0x40, 0xfd, 0x22, 0x94, 0x49, 0xfd, 0x49, 0x80, 0x00, + 0x40, 0xa0, 0x80, 0x40, 0x70, 0xc8, 0x24, 0x24, 0x04, 0x88, 0x70)), 3, '\x15'), + 'owncloud': (array('B', (0x00, 0x01, 0x02, 0x03, 0x06, 0x0c, 0x1a, 0x13, 0x11, 0x19, 0x0f, + 0x78, 0xcc, 0x87, 0xfc, 0x42, 0x81, 0x81, 0x81, 0x81, 0x43, 0xbd, + 0x00, 0x00, 0x00, 0x80, 0x80, 0xe0, 0x30, 0x10, 0x28, 0x28, 0xd0)), 3, '\x14'), + } + + bitmap_builtin = {} + for i in bitmap_named: + bitmap_builtin[bitmap_named[i][2]] = bitmap_named[i] + + + def __init__(self): + self.bitmap_preloaded = [([], 0)] + self.bitmaps_preloaded_unused = False + + def add_preload_img(self, filename): + self.bitmap_preloaded.append(SimpleTextAndIcons.bitmap_img(filename)) + self.bitmaps_preloaded_unused = True + + + def are_preloaded_unused(self): + return self.bitmaps_preloaded_unused == True + + + @staticmethod + def get_named_bitmaps_keys(): + return SimpleTextAndIcons.bitmap_named.keys() + + + def bitmap_char(self, ch): + """ Returns a tuple of 11 bytes, + ch = '_' returns (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255) + The bits in each byte are horizontal, highest bit is left. + """ + if ord(ch) < 32: + if ch in SimpleTextAndIcons.bitmap_builtin: + return SimpleTextAndIcons.bitmap_builtin[ch][:2] + + self.bitmaps_preloaded_unused = False + return self.bitmap_preloaded[ord(ch)] + + o = SimpleTextAndIcons.char_offsets[ch] + return (SimpleTextAndIcons.font_11x44[o:o + 11], 1) + + + def bitmap_text(self, text): + """ returns a tuple of (buffer, length_in_byte_columns_aka_chars) + We preprocess the text string for substitution patterns + "::" is replaced with a single ":" + ":1: is replaced with CTRL-A referencing the first preloaded or loaded image. + ":happy:" is replaced with a reference to a builtin smiley glyph + ":heart:" is replaced with a reference to a builtin heart glyph + ":gfx/logo.png:" preloads the file gfx/logo.png and is replaced the corresponding control char. + """ + + def replace_symbolic(m): + name = m.group(1) + if name == '': + return ':' + if re.match('^[0-9]*$', name): # py3 name.isdecimal() + return chr(int(name)) + if '.' in name: + self.bitmap_preloaded.append(SimpleTextAndIcons.bitmap_img(name)) + return chr(len(self.bitmap_preloaded) - 1) + return SimpleTextAndIcons.bitmap_named[name][2] + + text = re.sub(r':([^:]*):', replace_symbolic, text) + buf = array('B') + cols = 0 + for c in text: + (b, n) = self.bitmap_char(c) + buf.extend(b) + cols += n + return (buf, cols) + + + @staticmethod + def bitmap_img(file): + """ returns a tuple of (buffer, length_in_byte_columns) + """ + from PIL import Image + + im = Image.open(file) + print("fetching bitmap from file %s -> (%d x %d)" % (file, im.width, im.height)) + if im.height != 11: + sys.exit("%s: image height must be 11px. Seen %d" % (file, im.height)) + buf = array('B') + cols = int((im.width + 7) / 8) + for col in range(cols): + for row in range(11): # [0..10] + byte_val = 0 + for bit in range(8): # [0..7] + bit_val = 0 + x = 8 * col + bit + if x < im.width and row < im.height: + pixel_color = im.getpixel((x, row)) + if isinstance(pixel_color, tuple): + monochrome_color = sum(pixel_color[:3]) / len(pixel_color[:3]) + elif isinstance(pixel_color, int): + monochrome_color = pixel_color + else: + sys.exit("%s: Unknown pixel format detected (%s)!" % (file, pixel_color)) + if monochrome_color > 127: + bit_val = 1 << (7 - bit) + byte_val += bit_val + buf.append(byte_val) + im.close() + return (buf, cols) + + + def bitmap(self, arg): + """ if arg is a valid and existing path name, we load it as an image. + Otherwise, we take it as a string. + """ + if os.path.exists(arg): + return SimpleTextAndIcons.bitmap_img(arg) + return self.bitmap_text(arg) class LedNameBadge: @@ -391,6 +409,7 @@ class LedNameBadge: ) _have_pyhidapi = False + @staticmethod def init_class(): try: @@ -429,11 +448,13 @@ or print("""Please with Linux or MacOS or help us implement support for """ + sys.platform) sys.exit(1) + @staticmethod def _expand_tuple(l): l = l + (l[-1],) * (8 - len(l)) # repeat last element return l + @staticmethod def header(lengths, speeds, modes, blinks, ants, brightness=100, date=datetime.now()): """ lengths[0] is the number of chars of the first text @@ -476,6 +497,7 @@ or return h + @staticmethod def write(buf): if len(buf) > 8192: @@ -536,7 +558,7 @@ if __name__ == '__main__': parser.add_argument('-p', '--preload', metavar='FILE', action='append', help=argparse.SUPPRESS) # "Load bitmap images. Use ^A, ^B, ^C, ... in text messages to make them visible. Deprecated, embed within ':' instead") parser.add_argument('-l', '--list-names', action='version', help="list named icons to be embedded in messages and exit", - version=':' + ': :'.join(bitmap_named.keys()) + ': :: or e.g. :path/to/some_icon.png:') + version=':' + ': :'.join(SimpleTextAndIcons.get_named_bitmaps_keys()) + ': :: or e.g. :path/to/some_icon.png:') parser.add_argument('message', metavar='MESSAGE', nargs='+', help="Up to 8 message texts with embedded builtin icons or loaded images within colons(:) -- See -l for a list of builtins") parser.add_argument('--mode-help', action='version', help=argparse.SUPPRESS, version=""" @@ -562,16 +584,17 @@ if __name__ == '__main__': """ % sys.argv[0]) args = parser.parse_args() + creator = SimpleTextAndIcons() + if args.preload: - for file in args.preload: - bitmap_preloaded.append(bitmap_img(file)) - bitmaps_preloaded_unused = True + for filename in args.preload: + creator.add_preload_img(filename) msg_bitmaps = [] for msg_arg in args.message: - msg_bitmaps.append(bitmap(msg_arg)) + msg_bitmaps.append(creator.bitmap(msg_arg)) - if bitmaps_preloaded_unused == True: + if creator.are_preloaded_unused(): print( "\nWARNING:\n Your preloaded images are not used.\n Try without '-p' or embed the control character '^A' in your message.\n") @@ -580,8 +603,8 @@ if __name__ == '__main__': for msg_bitmap in msg_bitmaps: # trivial hack to support 12x48 badges: # patch extra empty lines into the message stream. - for o in reversed(range(1, int(len(msg_bitmap[0]) / 11) + 1)): - msg_bitmap[0][o * 11:o * 11] = array('B', [0]) + for i in reversed(range(1, int(len(msg_bitmap[0]) / 11) + 1)): + msg_bitmap[0][i * 11:i * 11] = array('B', [0]) else: print("Type: 11x44") diff --git a/tests/test_led-badge-11x44.py b/tests/test_led-badge-11x44.py index 27d6999..efd8c0f 100644 --- a/tests/test_led-badge-11x44.py +++ b/tests/test_led-badge-11x44.py @@ -18,12 +18,12 @@ class Test(TestCase): def test_header_8msgs(self): buf = testee.LedNameBadge.header((1, 2, 3, 4, 5, 6, 7, 8), - (1, 2, 3, 4, 5, 6, 7, 8), - (1, 2, 3, 4, 5, 6, 7, 8), - (0, 1, 0, 1, 0, 1, 0, 1), - (1, 0, 1, 0, 1, 0, 1, 0), - 25, - self.test_date) + (1, 2, 3, 4, 5, 6, 7, 8), + (1, 2, 3, 4, 5, 6, 7, 8), + (0, 1, 0, 1, 0, 1, 0, 1), + (1, 0, 1, 0, 1, 0, 1, 0), + 25, + self.test_date) self.assertEqual([119, 97, 110, 103, 0, 64, 170, 85, 1, 18, 35, 52, 69, 86, 103, 120, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) @@ -54,15 +54,29 @@ class Test(TestCase): self.assertNotEqual(buf1[38:38 + 6], buf2[38:38 + 6]) def test_bitmap_png(self): - buf = testee.bitmap("resources/bitpatterns.png") + creator = testee.SimpleTextAndIcons() + buf = creator.bitmap("resources/bitpatterns.png") self.assertEqual((array('B', [128, 64, 32, 16, 8, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 64, 32, 0, 1, 2, 3, 4, 5, 15, 31, 63, 127, 255]), 3), buf) def test_bitmap_text(self): - buf = testee.bitmap("/:HEART2:\\") + creator = testee.SimpleTextAndIcons() + buf = creator.bitmap("/:HEART2:\\") self.assertEqual((array('B', [0, 0, 2, 6, 12, 24, 48, 96, 192, 128, 0, 0, 12, 30, 63, 63, 63, 31, 15, 7, 3, 1, 0, 96, 240, 248, 248, 248, 240, 224, 192, 128, 0, 0, 128, 192, 96, 48, 24, 12, 6, 2, 0, 0]), 4), buf) + + def test_preload(self): + creator = testee.SimpleTextAndIcons() + self.assertFalse(creator.are_preloaded_unused()) + creator.add_preload_img("resources/bitpatterns.png") + self.assertTrue(creator.are_preloaded_unused()) + buf = creator.bitmap("\x01") + self.assertFalse(creator.are_preloaded_unused()) + self.assertEqual((array('B', + [128, 64, 32, 16, 8, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 64, 32, 0, 1, 2, 3, + 4, 5, 15, 31, 63, 127, 255]), + 3), buf) From 67738e87da0a573718056a794ac41cfc1c3e119a Mon Sep 17 00:00:00 2001 From: Ben Date: Mon, 13 Nov 2023 07:02:14 +0100 Subject: [PATCH 24/33] Rearranging code: code for USB importing libraries directly in class instead of method, that's less structured but easier. --- led-badge-11x44.py | 68 ++++++++++++++++------------------------------ 1 file changed, 24 insertions(+), 44 deletions(-) diff --git a/led-badge-11x44.py b/led-badge-11x44.py index 1143a9f..71a09bf 100755 --- a/led-badge-11x44.py +++ b/led-badge-11x44.py @@ -57,16 +57,6 @@ import time from array import array from datetime import datetime -# There are 2 possibilities for accessing the device: using hidapi oer usb-core. Here we just try to import both -# and decide later which one to use, see below in LedNameBadge._init_class(). -try: - import pyhidapi -except: - pass -try: - import usb.core -except: - pass __version = "0.12" @@ -409,34 +399,27 @@ class LedNameBadge: ) _have_pyhidapi = False - - @staticmethod - def init_class(): + try: + if sys.version_info[0] < 3: + raise Exception("Prefer usb.core with python-2.x because of https://github.com/jnweiger/led-badge-ls32/issues/9") + import pyhidapi + pyhidapi.hid_init() + _have_pyhidapi = True + print("Pyhidapi detected") + except Exception: try: - if sys.version_info[0] < 3: - raise Exception("prefer usb.core with python-2.x because of https://github.com/jnweiger/led-badge-ls32/issues/9") - if pyhidapi: - pyhidapi.hid_init() - LedNameBadge._have_pyhidapi = True - print("Pyhidapi detected") - else: - raise Exception() - except Exception as e: - try: - if usb.core: - print("Pyusb detected") - else: - raise Exception() - except: - print("ERROR: Need the pyhidapi or usb.core module.") - if sys.platform == "darwin": - print("""Please try + import usb.core + print("Pyusb detected") + except: + print("ERROR: Need the pyhidapi or usb.core module.") + if sys.platform == "darwin": + print("""Please try pip3 install pyhidapi pip install pyhidapi brew install hidapi """) - elif sys.platform == "linux": - print("""Please try + elif sys.platform == "linux": + print("""Please try sudo pip3 install pyhidapi sudo pip install pyhidapi sudo apt-get install libhidapi-hidraw0 @@ -444,9 +427,9 @@ class LedNameBadge: or sudo apt-get install python3-usb """) - else: # windows? - print("""Please with Linux or MacOS or help us implement support for """ + sys.platform) - sys.exit(1) + else: # windows? + print("""Please with Linux or MacOS or help us implement support for """ + sys.platform) + sys.exit(1) @staticmethod @@ -505,20 +488,20 @@ or sys.exit(1) if LedNameBadge._have_pyhidapi: - dev_info = pyhidapi.hid_enumerate(0x0416, 0x5020) + dev_info = LedNameBadge.pyhidapi.hid_enumerate(0x0416, 0x5020) # dev = pyhidapi.hid_open(0x0416, 0x5020) if dev_info: - dev = pyhidapi.hid_open_path(dev_info[0].path) + dev = LedNameBadge.pyhidapi.hid_open_path(dev_info[0].path) print("using [%s %s] int=%d page=%s via pyHIDAPI" % ( dev_info[0].manufacturer_string, dev_info[0].product_string, dev_info[0].interface_number, dev_info[0].usage_page)) else: print("No led tag with vendorID 0x0416 and productID 0x5020 found.") print("Connect the led tag and run this tool as root.") sys.exit(1) - pyhidapi.hid_write(dev, buf) - pyhidapi.hid_close(dev) + LedNameBadge.pyhidapi.hid_write(dev, buf) + LedNameBadge.pyhidapi.hid_close(dev) else: - dev = usb.core.find(idVendor=0x0416, idProduct=0x5020) + dev = LedNameBadge.usb.core.find(idVendor=0x0416, idProduct=0x5020) if dev is None: print("No led tag with vendorID 0x0416 and productID 0x5020 found.") print("Connect the led tag and run this tool as root.") @@ -536,9 +519,6 @@ or dev.write(1, buf[i * 64:i * 64 + 64]) -LedNameBadge.init_class() - - def split_to_ints(list_str): return tuple([int(x) for x in re.split(r'[\s,]+', list_str)]) From 2e51a018d288c08025af789289e68ed9f4385423 Mon Sep 17 00:00:00 2001 From: Ben Date: Mon, 13 Nov 2023 07:20:29 +0100 Subject: [PATCH 25/33] Rearranging code: file renaming for better "importability" --- led-badge-11x44.py => lednamebadge.py | 0 tests/{test_led-badge-11x44.py => test_lednamebadge_write.py} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename led-badge-11x44.py => lednamebadge.py (100%) rename tests/{test_led-badge-11x44.py => test_lednamebadge_write.py} (100%) diff --git a/led-badge-11x44.py b/lednamebadge.py similarity index 100% rename from led-badge-11x44.py rename to lednamebadge.py diff --git a/tests/test_led-badge-11x44.py b/tests/test_lednamebadge_write.py similarity index 100% rename from tests/test_led-badge-11x44.py rename to tests/test_lednamebadge_write.py From e206fa903dac1f82349c9af4d391a3bb0e558a10 Mon Sep 17 00:00:00 2001 From: Ben Date: Mon, 13 Nov 2023 07:33:54 +0100 Subject: [PATCH 26/33] Rearranging code: corrections and splitting tests after file renaming --- led-badge-12x48.py | 1 - lednamebadge.py | 7 +++- tests/test_lednamebadge_create.py | 35 ++++++++++++++++++ tests/test_lednamebadge_write.py | 59 ++++++++----------------------- 4 files changed, 56 insertions(+), 46 deletions(-) delete mode 120000 led-badge-12x48.py create mode 100644 tests/test_lednamebadge_create.py diff --git a/led-badge-12x48.py b/led-badge-12x48.py deleted file mode 120000 index db1bcd2..0000000 --- a/led-badge-12x48.py +++ /dev/null @@ -1 +0,0 @@ -led-badge-11x44.py \ No newline at end of file diff --git a/lednamebadge.py b/lednamebadge.py index 71a09bf..d7d5d90 100755 --- a/lednamebadge.py +++ b/lednamebadge.py @@ -225,6 +225,7 @@ class SimpleTextAndIcons: u"ÀÅÄÉÈÊËÖÔÜÛÙŸ" char_offsets = {} + pass for i in range(len(charmap)): char_offsets[charmap[i]] = 11 * i # print(i, charmap[i], char_offset[charmap[i]]) @@ -522,7 +523,7 @@ or def split_to_ints(list_str): return tuple([int(x) for x in re.split(r'[\s,]+', list_str)]) -if __name__ == '__main__': +def main(): parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter, description='Upload messages or graphics to a 11x44 led badge via USB HID.\nVersion %s from https://github.com/jnweiger/led-badge-ls32\n -- see there for more examples and for updates.' % __version, epilog='Example combining image and text:\n sudo %s "I:HEART2:you"' % sys.argv[0]) @@ -606,3 +607,7 @@ if __name__ == '__main__': buf.extend((0,) * (64 - need_padding)) LedNameBadge.write(buf) + + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/tests/test_lednamebadge_create.py b/tests/test_lednamebadge_create.py new file mode 100644 index 0000000..12de16a --- /dev/null +++ b/tests/test_lednamebadge_create.py @@ -0,0 +1,35 @@ +import datetime +from array import array +from unittest import TestCase + +from lednamebadge import SimpleTextAndIcons as testee + + +class Test(TestCase): + def test_bitmap_png(self): + creator = testee() + buf = creator.bitmap("resources/bitpatterns.png") + self.assertEqual((array('B', + [128, 64, 32, 16, 8, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 64, 32, 0, 1, 2, 3, + 4, 5, 15, 31, 63, 127, 255]), + 3), buf) + + def test_bitmap_text(self): + creator = testee() + buf = creator.bitmap("/:HEART2:\\") + self.assertEqual((array('B', + [0, 0, 2, 6, 12, 24, 48, 96, 192, 128, 0, 0, 12, 30, 63, 63, 63, 31, 15, 7, 3, 1, 0, 96, + 240, 248, 248, 248, 240, 224, 192, 128, 0, 0, 128, 192, 96, 48, 24, 12, 6, 2, 0, 0]), + 4), buf) + + def test_preload(self): + creator = testee() + self.assertFalse(creator.are_preloaded_unused()) + creator.add_preload_img("resources/bitpatterns.png") + self.assertTrue(creator.are_preloaded_unused()) + buf = creator.bitmap("\x01") + self.assertFalse(creator.are_preloaded_unused()) + self.assertEqual((array('B', + [128, 64, 32, 16, 8, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 64, 32, 0, 1, 2, 3, + 4, 5, 15, 31, 63, 127, 255]), + 3), buf) diff --git a/tests/test_lednamebadge_write.py b/tests/test_lednamebadge_write.py index efd8c0f..af62a59 100644 --- a/tests/test_lednamebadge_write.py +++ b/tests/test_lednamebadge_write.py @@ -1,9 +1,8 @@ import datetime -import importlib from array import array from unittest import TestCase -testee = importlib.import_module("led-badge-11x44") +from lednamebadge import LedNameBadge as testee class Test(TestCase): @@ -11,72 +10,44 @@ class Test(TestCase): self.test_date = datetime.datetime(2022, 11, 13, 17, 38, 24) def test_header_2msgs(self): - buf = testee.LedNameBadge.header((6, 7), (5, 3), (6, 2), (0, 1), (1, 0), 75, self.test_date) + buf = testee.header((6, 7), (5, 3), (6, 2), (0, 1), (1, 0), 75, self.test_date) self.assertEqual([119, 97, 110, 103, 0, 16, 254, 1, 70, 34, 34, 34, 34, 34, 34, 34, 0, 6, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) def test_header_8msgs(self): - buf = testee.LedNameBadge.header((1, 2, 3, 4, 5, 6, 7, 8), - (1, 2, 3, 4, 5, 6, 7, 8), - (1, 2, 3, 4, 5, 6, 7, 8), - (0, 1, 0, 1, 0, 1, 0, 1), - (1, 0, 1, 0, 1, 0, 1, 0), - 25, - self.test_date) + buf = testee.header((1, 2, 3, 4, 5, 6, 7, 8), + (1, 2, 3, 4, 5, 6, 7, 8), + (1, 2, 3, 4, 5, 6, 7, 8), + (0, 1, 0, 1, 0, 1, 0, 1), + (1, 0, 1, 0, 1, 0, 1, 0), + 25, + self.test_date) self.assertEqual([119, 97, 110, 103, 0, 64, 170, 85, 1, 18, 35, 52, 69, 86, 103, 120, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) def test_header_brightness(self): - buf = testee.LedNameBadge.header((6,), (4,), (4,), (0,), (0,), 25, self.test_date) + buf = testee.header((6,), (4,), (4,), (0,), (0,), 25, self.test_date) self.assertEqual([119, 97, 110, 103, 0, 64, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) - buf = testee.LedNameBadge.header((6,), (4,), (4,), (0,), (0,), 26, self.test_date) + buf = testee.header((6,), (4,), (4,), (0,), (0,), 26, self.test_date) self.assertEqual([119, 97, 110, 103, 0, 32, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) - buf = testee.LedNameBadge.header((6,), (4,), (4,), (0,), (0,), 60, self.test_date) + buf = testee.header((6,), (4,), (4,), (0,), (0,), 60, self.test_date) self.assertEqual([119, 97, 110, 103, 0, 16, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) - buf = testee.LedNameBadge.header((6,), (4,), (4,), (0,), (0,), 80, self.test_date) + buf = testee.header((6,), (4,), (4,), (0,), (0,), 80, self.test_date) self.assertEqual([119, 97, 110, 103, 0, 0, 0, 0, 52, 52, 52, 52, 52, 52, 52, 52, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 11, 13, 17, 38, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], buf) def test_header_date(self): - buf1 = testee.LedNameBadge.header((6,), (4,), (4,), (0,), (0,), 100, self.test_date) - buf2 = testee.LedNameBadge.header((6,), (4,), (4,), (0,), (0,), 100) + buf1 = testee.header((6,), (4,), (4,), (0,), (0,), 100, self.test_date) + buf2 = testee.header((6,), (4,), (4,), (0,), (0,), 100) self.assertEqual(buf1[0:38], buf2[0:38]) self.assertEqual(buf1[38 + 6:], buf2[38 + 6:]) self.assertNotEqual(buf1[38:38 + 6], buf2[38:38 + 6]) - - def test_bitmap_png(self): - creator = testee.SimpleTextAndIcons() - buf = creator.bitmap("resources/bitpatterns.png") - self.assertEqual((array('B', - [128, 64, 32, 16, 8, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 64, 32, 0, 1, 2, 3, - 4, 5, 15, 31, 63, 127, 255]), - 3), buf) - - def test_bitmap_text(self): - creator = testee.SimpleTextAndIcons() - buf = creator.bitmap("/:HEART2:\\") - self.assertEqual((array('B', - [0, 0, 2, 6, 12, 24, 48, 96, 192, 128, 0, 0, 12, 30, 63, 63, 63, 31, 15, 7, 3, 1, 0, 96, - 240, 248, 248, 248, 240, 224, 192, 128, 0, 0, 128, 192, 96, 48, 24, 12, 6, 2, 0, 0]), - 4), buf) - - def test_preload(self): - creator = testee.SimpleTextAndIcons() - self.assertFalse(creator.are_preloaded_unused()) - creator.add_preload_img("resources/bitpatterns.png") - self.assertTrue(creator.are_preloaded_unused()) - buf = creator.bitmap("\x01") - self.assertFalse(creator.are_preloaded_unused()) - self.assertEqual((array('B', - [128, 64, 32, 16, 8, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 64, 32, 0, 1, 2, 3, - 4, 5, 15, 31, 63, 127, 255]), - 3), buf) From 2d96e0d41adddb37e9f67175629be4075c5bdc21 Mon Sep 17 00:00:00 2001 From: Ben Date: Mon, 13 Nov 2023 07:48:39 +0100 Subject: [PATCH 27/33] Rearranging code: re-introduce old script names after file renaming, for compatibility --- led-badge-11x44.py | 3 +++ led-badge-12x48.py | 1 + lednamebadge.py | 1 + 3 files changed, 5 insertions(+) create mode 100644 led-badge-11x44.py create mode 120000 led-badge-12x48.py diff --git a/led-badge-11x44.py b/led-badge-11x44.py new file mode 100644 index 0000000..582349c --- /dev/null +++ b/led-badge-11x44.py @@ -0,0 +1,3 @@ +import lednamebadge + +lednamebadge.main() diff --git a/led-badge-12x48.py b/led-badge-12x48.py new file mode 120000 index 0000000..db1bcd2 --- /dev/null +++ b/led-badge-12x48.py @@ -0,0 +1 @@ +led-badge-11x44.py \ No newline at end of file diff --git a/lednamebadge.py b/lednamebadge.py index d7d5d90..c176410 100755 --- a/lednamebadge.py +++ b/lednamebadge.py @@ -402,6 +402,7 @@ class LedNameBadge: try: if sys.version_info[0] < 3: + print("Preferring Pyusb over Pyhidapi with Python 2.x") raise Exception("Prefer usb.core with python-2.x because of https://github.com/jnweiger/led-badge-ls32/issues/9") import pyhidapi pyhidapi.hid_init() From 012d4415bdc0aed4b9ff73493afab6ebfd6d7233 Mon Sep 17 00:00:00 2001 From: Ben Date: Sat, 18 Nov 2023 17:46:49 +0100 Subject: [PATCH 28/33] Rearranging code: cleanup, documentation, version number increment. --- README.md | 110 +++++++++++++++++++++++++++- lednamebadge.py | 117 +++++++++++++++++++++--------- photos/bitmap_data_all.png | Bin 0 -> 2620 bytes photos/bitmap_data_descr.puml | 35 +++++++++ photos/bitmap_data_onebyte.png | Bin 0 -> 3286 bytes photos/bitmap_data_onescene.png | Bin 0 -> 5932 bytes tests/run_tests.py | 8 ++ tests/test_lednamebadge_create.py | 1 - tests/test_lednamebadge_write.py | 28 ++++++- 9 files changed, 260 insertions(+), 39 deletions(-) create mode 100644 photos/bitmap_data_all.png create mode 100644 photos/bitmap_data_descr.puml create mode 100644 photos/bitmap_data_onebyte.png create mode 100644 photos/bitmap_data_onescene.png create mode 100644 tests/run_tests.py diff --git a/README.md b/README.md index 815c22d..d68cba7 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Led-Badge-44x11 -Upload tool for an led name tag with USB-HID interface +Upload tool for a LED name tag with USB-HID interface ![LED Mini Board](photos/blueBadge.jpg) @@ -25,7 +25,7 @@ In both configurations, the badge identifies itself on the USB as ## Warning There are many different versions of LED Badges on the market. -This one uses an USB-HID interface, while others use USB-Serial (see references below). +This one uses a USB-HID interface, while others use USB-Serial (see references below). ## Command Line Installation and Usage @@ -173,10 +173,116 @@ Example combining image and text: sudo ./led-badge-11x44.py "I:HEART2:you" +There are some options defining the default type: +- use lednamebadge.py directly: default type is 11x44 +- rename lednamebadge.py to something with '12' and use that: default type is 12x48 +- use led-badge-11x44.py: default type is 11x44 +- use led-badge-12x48.py: default type is 12x48 +For all these options you can override the default type with -t ### Animations See the gfx/starfield folder for examples. An animation of N frames is provided as an image N*48 pixels wide, for both 48 and 44 pixel wide devices. +## Usage as module + +### Writing to the device +You can use lednamebadge.py as a module in your own content creation code for writing your generated scenes to the device. + +- create the header +- append your own content +- write to device + +The method `header()` takes a number of parameters: + +- up to 8 lengths as a tuple of numbers + - each length is the number of byte-columns for the corresponding bitmap data, that is the number of bytes of the + corresponding bitmap data divided by 11 (for the 11x44 devices) respective 12 (for the 12x48-devices), where one + byte is 8 pixels wide. +- arguments comparable to the command line arguments: up to 8 speeds, modes, blink-flags, ants-flags each as tuple of + numbers, and an (optional) brightness as number. +- Optionally, you can give a timestamp as datetime. It is written to the device as part of the header, but not visible + at the devices display. + +Your own content has to be a byte array with the bitmap data for all scenes. Of course, it has to fit the given lengths. + +See the following graphic for better understanding: +![bitmap_data_onebyte.png](photos%2Fbitmap_data_onebyte.png) + +![bitmap_data_onescene.png](photos%2Fbitmap_data_onescene.png) + +For a 12x48 device there have to be 12 bytes for each byte-column instead of 11, of course. + +![bitmap_data_all.png](photos%2Fbitmap_data_all.png) + +Example: + +Let's say, you have 2 scenes, one is 11x32 pixels, one is 11x60 pixels. So, the first have 4 byte-columns and 44 bytes, +the second has to be padded with 4 empty bit-columns in the last byte-column to 11x64 pixels and has therefore +8 byte-columns and 88 bytes. + +We like to display both in mode 4, the first one with speed 3 and the second one with speed 2 and the second one shall +be displayed with ants. And we like to set the initial brightness to 50%. + +This would be achieved by these calls: + +```python +from lednamebadge import LedNameBadge + +buf = array('B') +buf.extend(LedNameBadge.header((4, 8), (3, 2), (4,), (0,), (0,1), 50)) +buf.extend(scene_one_bytes) +buf.extend(scene_two_bytes) +LedNameBadge.write(buf) +``` + +### Using the text generation + +You can also use the text/icon/graphic generation of this module to get the corresponding byte buffers. + +This is quite simple and just like with the command line usage. There is the additional option to create a bitmap just +and only from an image file by giving the filename instead of a message. + +```python +from lednamebadge import SimpleTextAndIcons + +creator = SimpleTextAndIcons() +scene_a_bitmap = creator.bitmap("Hello :HEART2: World!") +scene_b_bitmap = creator.bitmap("As you :gfx/bicycle3.png: like...") +scene_c_bitmap = creator.bitmap("gfx/starfield/starfield_020.png") +``` + +The resulting bitmaps are tuples with the byte array and the length each. These lengths can be used in header() directly +and the byte arrays can be concatenated to the header. Examle: + +```python +from lednamebadge import * + +creator = SimpleTextAndIcons() +scene_x_bitmap = creator.bitmap("Hello :HEART2: World!") +scene_y_bitmap = creator.bitmap("Complete example ahead.") +your_own_stuff = create_own_bitmap_data() + +lengths = (scene_x_bitmap[1], scene_y_bitmap[1], your_own_stuff.len) +buf = array('B') +buf.extend(LedNameBadge.header(lengths, (3,), (0,), (0,1,0), (0,0,1), 100)) +buf.extend(scene_x_bitmap[0]) +buf.extend(scene_y_bitmap[0]) +buf.extend(your_own_stuff.bytes) +LedNameBadge.write(buf) +``` + +## Development + +### Generating Plantuml graphics + +You will need PlantUML and potentially GraphViz dot to generate the diagrams from the *.puml files. + +Just run `plantuml "*.puml"` from the `photos` directory to regenerate all diagrams. + +### Running the unit tests + +Run `python run_tests.py` from the `tests` directory. + ## Related References (for USB-Serial devices) * https://github.com/Caerbannog/led-mini-board * http://zunkworks.com/projects/programmablelednamebadges/ diff --git a/lednamebadge.py b/lednamebadge.py index c176410..dd0dc4a 100755 --- a/lednamebadge.py +++ b/lednamebadge.py @@ -48,6 +48,19 @@ # v0.10, 2019-09-09, jw Support for loading monochrome images. Typos fixed. # v0.11, 2019-09-29, jw New option --brightness added. # v0.12, 2019-12-27, jw hint at pip3 -- as discussed in https://github.com/jnweiger/led-name-badge-ls32/issues/19 +# v0.13, 2023-11-14, bs modularization. +# Some comments about this big change: +# * I wanted to keep this one-python-file-for-complete-command-line-usage, but also needed to introduce importable +# classes for writing own content to the device (my upcoming GUI editor). Therefore, the file was renamed to an +# importable python file, and forwarding python files are introduced with the old file names for full +# compatibility. +# * A bit of code rearranging and cleanup was necessary for that goal, but I hope the original parts are still +# recognizable, as I tried to keep all this refactoring as less, as possible and sense-making, but did not do +# the full clean-codish refactoring. Keeping the classes in one file is part of that refactoring-omittance. +# * There is some initialization code executed in the classes not needed, if not imported. This is nagging me +# somehow, but it is acceptable, as we do not need to save every processor cycle, here :) +# * Have fun! + import argparse import os @@ -58,7 +71,7 @@ from array import array from datetime import datetime -__version = "0.12" +__version = "0.13" class SimpleTextAndIcons: @@ -225,7 +238,6 @@ class SimpleTextAndIcons: u"ÀÅÄÉÈÊËÖÔÜÛÙŸ" char_offsets = {} - pass for i in range(len(charmap)): char_offsets[charmap[i]] = 11 * i # print(i, charmap[i], char_offset[charmap[i]]) @@ -288,23 +300,25 @@ class SimpleTextAndIcons: self.bitmaps_preloaded_unused = False def add_preload_img(self, filename): + """Still used by main, but deprecated. PLease use ":"-notation for bitmap() / bitmap_text()""" self.bitmap_preloaded.append(SimpleTextAndIcons.bitmap_img(filename)) self.bitmaps_preloaded_unused = True def are_preloaded_unused(self): + """Still used by main, but deprecated. PLease use ":"-notation for bitmap() / bitmap_text()""" return self.bitmaps_preloaded_unused == True @staticmethod - def get_named_bitmaps_keys(): + def _get_named_bitmaps_keys(): return SimpleTextAndIcons.bitmap_named.keys() def bitmap_char(self, ch): - """ Returns a tuple of 11 bytes, - ch = '_' returns (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255) - The bits in each byte are horizontal, highest bit is left. + """Returns a tuple of 11 bytes, it is the bitmap data of given character. + Example: ch = '_' returns (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255). + The bits in each byte are horizontal, highest bit is left. """ if ord(ch) < 32: if ch in SimpleTextAndIcons.bitmap_builtin: @@ -318,7 +332,7 @@ class SimpleTextAndIcons: def bitmap_text(self, text): - """ returns a tuple of (buffer, length_in_byte_columns_aka_chars) + """Returns a tuple of (buffer, length_in_byte_columns_aka_chars) We preprocess the text string for substitution patterns "::" is replaced with a single ":" ":1: is replaced with CTRL-A referencing the first preloaded or loaded image. @@ -350,7 +364,10 @@ class SimpleTextAndIcons: @staticmethod def bitmap_img(file): - """ returns a tuple of (buffer, length_in_byte_columns) + """Returns a tuple of (buffer, length_in_byte_columns) representing the given image file. + It has to be an 8-bit grayscale image or a color image with 8 bit per channel. Color pixels are converted to + grayscale by arithmetic mean. Threshold for an active led is then > 127. + If the width is not a multiple on 8 it will be padded with empty pixel-columns. """ from PIL import Image @@ -383,8 +400,8 @@ class SimpleTextAndIcons: def bitmap(self, arg): - """ if arg is a valid and existing path name, we load it as an image. - Otherwise, we take it as a string. + """If arg is a valid and existing path name, we load it as an image. + Otherwise, we take it as a string (with ":"-notation, see bitmap_text()). """ if os.path.exists(arg): return SimpleTextAndIcons.bitmap_img(arg) @@ -408,7 +425,7 @@ class LedNameBadge: pyhidapi.hid_init() _have_pyhidapi = True print("Pyhidapi detected") - except Exception: + except: try: import usb.core print("Pyusb detected") @@ -429,27 +446,47 @@ class LedNameBadge: or sudo apt-get install python3-usb """) - else: # windows? + else: # windows? print("""Please with Linux or MacOS or help us implement support for """ + sys.platform) sys.exit(1) @staticmethod - def _expand_tuple(l): - l = l + (l[-1],) * (8 - len(l)) # repeat last element - return l + def _prepare_iterable(iterable, min_, max_): + try: + iterable = [min(max(x, min_), max_) for x in iterable] + iterable = tuple(iterable) + (iterable[-1],) * (8 - len(iterable)) # repeat last element + return iterable + except: + raise TypeError("Please give a list or tuple with at least one number: " + str(iterable)) @staticmethod def header(lengths, speeds, modes, blinks, ants, brightness=100, date=datetime.now()): - """ lengths[0] is the number of chars of the first text - - Speeds come in as 1..8, but are needed 0..7 here. + """Create a protocol header + * length, speeds, modes, blinks, ants are iterables with at least one element + * lengths[0] is the number of chars/byte-columns of the first text/bitmap, lengths[1] of the second, + and so on... + * len(length) should match the designated bitmap data + * speeds come in as 1..8, but will be decremented to 0..7, here. + * modes: 0..8 + * blinks and ants: 0..1 or even False..True, + * brightness, if given, is any number, but it'll be limited to 25, 50, 75, 100 (percent), here + * date, if given, is a datetime object. It will be written in the header, but is not to be seen on the + devices screen. """ - ants = LedNameBadge._expand_tuple(ants) - blinks = LedNameBadge._expand_tuple(blinks) - speeds = LedNameBadge._expand_tuple(speeds) - modes = LedNameBadge._expand_tuple(modes) + try: + lengths_sum = sum(lengths) + except: + raise TypeError("Please give a list or tuple with at least one number: " + str(lengths)) + if lengths_sum > (8192 - len(LedNameBadge._protocol_header_template)) / 11 + 1: + raise ValueError("The given lengths seem to be far too high: " + str(lengths)) + + + ants = LedNameBadge._prepare_iterable(ants, 0, 1) + blinks = LedNameBadge._prepare_iterable(blinks, 0, 1) + speeds = LedNameBadge._prepare_iterable(speeds, 1, 8) + modes = LedNameBadge._prepare_iterable(modes, 0, 8) speeds = [x - 1 for x in speeds] @@ -461,6 +498,7 @@ or h[5] = 0x20 elif brightness <= 75: h[5] = 0x10 + # else default 100% == 0x00 for i in range(8): h[6] += blinks[i] << i @@ -473,18 +511,31 @@ or h[17 + (2 * i) - 1] = lengths[i] // 256 h[17 + (2 * i)] = lengths[i] % 256 - h[38 + 0] = date.year % 100 - h[38 + 1] = date.month - h[38 + 2] = date.day - h[38 + 3] = date.hour - h[38 + 4] = date.minute - h[38 + 5] = date.second + try: + h[38 + 0] = date.year % 100 + h[38 + 1] = date.month + h[38 + 2] = date.day + h[38 + 3] = date.hour + h[38 + 4] = date.minute + h[38 + 5] = date.second + except: + raise TypeError("Please give a datetime object: " + str(date)) return h @staticmethod def write(buf): + """Write the given buffer to the device. + It has to begin with a protocol header as provided by header() and followed by the bitmap data. + In short: the bitmap data is organized in bytes with 8 horizontal pixels per byte and 11 resp. 12 + bytes per (8 pixels wide) byte-column. Then just put one byte-column after the other and one bitmap + after the other. + """ + need_padding = len(buf) % 64 + if need_padding: + buf.extend((0,) * (64 - need_padding)) + if len(buf) > 8192: print("Writing more than 8192 bytes damages the display!") sys.exit(1) @@ -522,7 +573,7 @@ or def split_to_ints(list_str): - return tuple([int(x) for x in re.split(r'[\s,]+', list_str)]) + return [int(x) for x in re.split(r'[\s,]+', list_str)] def main(): parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter, @@ -540,7 +591,7 @@ def main(): parser.add_argument('-p', '--preload', metavar='FILE', action='append', help=argparse.SUPPRESS) # "Load bitmap images. Use ^A, ^B, ^C, ... in text messages to make them visible. Deprecated, embed within ':' instead") parser.add_argument('-l', '--list-names', action='version', help="list named icons to be embedded in messages and exit", - version=':' + ': :'.join(SimpleTextAndIcons.get_named_bitmaps_keys()) + ': :: or e.g. :path/to/some_icon.png:') + version=':' + ': :'.join(SimpleTextAndIcons._get_named_bitmaps_keys()) + ': :: or e.g. :path/to/some_icon.png:') parser.add_argument('message', metavar='MESSAGE', nargs='+', help="Up to 8 message texts with embedded builtin icons or loaded images within colons(:) -- See -l for a list of builtins") parser.add_argument('--mode-help', action='version', help=argparse.SUPPRESS, version=""" @@ -590,7 +641,7 @@ def main(): else: print("Type: 11x44") - lengths = tuple([b[1] for b in msg_bitmaps]) + lengths = [b[1] for b in msg_bitmaps] speeds = split_to_ints(args.speed) modes = split_to_ints(args.mode) blinks = split_to_ints(args.blink) @@ -603,10 +654,6 @@ def main(): for msg_bitmap in msg_bitmaps: buf.extend(msg_bitmap[0]) - need_padding = len(buf) % 64 - if need_padding: - buf.extend((0,) * (64 - need_padding)) - LedNameBadge.write(buf) diff --git a/photos/bitmap_data_all.png b/photos/bitmap_data_all.png new file mode 100644 index 0000000000000000000000000000000000000000..fbcee1d9cc8602c8a2bbbe2d7de421571276d1a8 GIT binary patch literal 2620 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 literal 0 HcmV?d00001 diff --git a/photos/bitmap_data_descr.puml b/photos/bitmap_data_descr.puml new file mode 100644 index 0000000..7268993 --- /dev/null +++ b/photos/bitmap_data_descr.puml @@ -0,0 +1,35 @@ +@startuml bitmap_data_onebyte +salt +title One byte +{# + { most significant bit 7 + leftmost pixel } | bit 6 | ... | bit 1 | { least significant bit 0 + rightmost pixel } +} +@enduml + +@startuml bitmap_data_onescene +salt +title One scene +{# + byte 0 == 8 pixel | byte 11 == 8 pixel | byte 22 == 8 pixel | ... + byte 1 ... | byte 12 ... | byte 23 ... | ... + byte 2 ... | byte 13 ... | byte 24 ... | ... + byte 3 ... | byte 14 ... | byte 25 ... | ... + byte 4 ... | byte 15 ... | byte 26 ... | ... + byte 5 ... | byte 16 ... | byte 27 ... | ... + byte 6 ... | byte 17 ... | byte 28 ... | ... + byte 7 ... | byte 18 ... | byte 29 ... | ... + byte 8 ... | byte 19 ... | byte 30 ... | ... + byte 9 ... | byte 20 ... | byte 31 ... | ... + byte 10 ... | byte 21 ... | byte 32 ... | ... +} +@enduml + +@startuml bitmap_data_all +salt +title Complete bitmap data +{# + scene 0 == x bytes | ... | scene n == z bytes +} +@enduml diff --git a/photos/bitmap_data_onebyte.png b/photos/bitmap_data_onebyte.png new file mode 100644 index 0000000000000000000000000000000000000000..6aca0be614eb72b6f20075103abf3907483a6f8a GIT binary patch literal 3286 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 literal 0 HcmV?d00001 diff --git a/tests/run_tests.py b/tests/run_tests.py new file mode 100644 index 0000000..7d6c8c7 --- /dev/null +++ b/tests/run_tests.py @@ -0,0 +1,8 @@ +import sys +import unittest + +if __name__ == '__main__': + sys.path.append("..") + suite = unittest.TestLoader().discover(".") + unittest.TextTestRunner().run(suite) + diff --git a/tests/test_lednamebadge_create.py b/tests/test_lednamebadge_create.py index 12de16a..cff662e 100644 --- a/tests/test_lednamebadge_create.py +++ b/tests/test_lednamebadge_create.py @@ -1,4 +1,3 @@ -import datetime from array import array from unittest import TestCase diff --git a/tests/test_lednamebadge_write.py b/tests/test_lednamebadge_write.py index af62a59..ac5f664 100644 --- a/tests/test_lednamebadge_write.py +++ b/tests/test_lednamebadge_write.py @@ -1,5 +1,4 @@ import datetime -from array import array from unittest import TestCase from lednamebadge import LedNameBadge as testee @@ -9,6 +8,27 @@ class Test(TestCase): def setUp(self): self.test_date = datetime.datetime(2022, 11, 13, 17, 38, 24) + def test_prepare_collection_expand(self): + self.assertEqual((1, 1, 1, 1, 1, 1, 1, 1), testee._prepare_iterable((1,), 1, 8)) + self.assertEqual((1, 2, 3, 4, 4, 4, 4, 4), testee._prepare_iterable([1, 2, 3, 4], 1, 8)) + self.assertEqual((1, 2, 3, 4, 5, 6, 7, 8), testee._prepare_iterable((1, 2, 3, 4, 5, 6, 7, 8), 1, 8)) + # Weired, but possible: + self.assertEqual(('A', 'B', 'C', 'D', 'D', 'D', 'D', 'D'), testee._prepare_iterable("ABCD", 'A', 'Z')) + self.assertEqual((True, False, True, True, True, True, True, True), testee._prepare_iterable((True, False, True), False, True)) + + def test_prepare_collection_limit(self): + self.assertEqual((1, 8, 8, 8, 8, 8, 8, 8), testee._prepare_iterable([-1, 9], 1, 8)) + # Weired, but possible: + self.assertEqual(('C', 'C', 'C', 'D', 'E', 'F', 'F', 'F'), testee._prepare_iterable("ABCDEFGH", 'C', 'F')) + self.assertEqual((True, 1, True, True, True, True, True, True), testee._prepare_iterable((True, False, True), 1, 8)) + self.assertEqual((0, False, 0, 0, 0, 0, 0, 0), testee._prepare_iterable((True, False, True), -2, 0)) + + def test_prepare_collection_type(self): + with self.assertRaises(TypeError): + testee._prepare_iterable(4, 1, 8) + with self.assertRaises(TypeError): + testee._prepare_iterable([], 1, 8) + def test_header_2msgs(self): buf = testee.header((6, 7), (5, 3), (6, 2), (0, 1), (1, 0), 75, self.test_date) self.assertEqual([119, 97, 110, 103, 0, 16, 254, 1, 70, 34, 34, 34, 34, 34, 34, 34, 0, 6, 0, 7, 0, 0, 0, 0, 0, @@ -51,3 +71,9 @@ class Test(TestCase): self.assertEqual(buf1[0:38], buf2[0:38]) self.assertEqual(buf1[38 + 6:], buf2[38 + 6:]) self.assertNotEqual(buf1[38:38 + 6], buf2[38:38 + 6]) + + def test_header_type(self): + with self.assertRaises(TypeError): + testee.header(("nan",), (4,), (4,), (0,), (0,), 80, self.test_date) + with self.assertRaises(ValueError): + testee.header((370,380), (4,), (4,), (0,), (0,), 80, self.test_date) From d780517d37dd9c2db046fdda3a469aa26b74b531 Mon Sep 17 00:00:00 2001 From: Ben Date: Sat, 18 Nov 2023 17:58:28 +0100 Subject: [PATCH 29/33] Rearranging code: cleanup, documentation, version number increment. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d68cba7..38eaf7a 100644 --- a/README.md +++ b/README.md @@ -206,6 +206,7 @@ The method `header()` takes a number of parameters: Your own content has to be a byte array with the bitmap data for all scenes. Of course, it has to fit the given lengths. See the following graphic for better understanding: + ![bitmap_data_onebyte.png](photos%2Fbitmap_data_onebyte.png) ![bitmap_data_onescene.png](photos%2Fbitmap_data_onescene.png) From 66ee972502a6ab4ea14b595d48bd0070a667e1ff Mon Sep 17 00:00:00 2001 From: Juergen Weigert Date: Tue, 26 Dec 2023 02:04:19 +0100 Subject: [PATCH 30/33] * Forward port #42 to lednamebadge.py * Text changes, spelling. --- lednamebadge.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lednamebadge.py b/lednamebadge.py index dd0dc4a..69a6c82 100755 --- a/lednamebadge.py +++ b/lednamebadge.py @@ -240,7 +240,7 @@ class SimpleTextAndIcons: char_offsets = {} for i in range(len(charmap)): char_offsets[charmap[i]] = 11 * i - # print(i, charmap[i], char_offset[charmap[i]]) + # print(i, charmap[i], char_offsets[charmap[i]]) bitmap_named = { 'ball': (array('B', ( @@ -447,7 +447,7 @@ or sudo apt-get install python3-usb """) else: # windows? - print("""Please with Linux or MacOS or help us implement support for """ + sys.platform) + print("""Please try with Linux or MacOS or help us implement support for """ + sys.platform) sys.exit(1) @@ -551,9 +551,16 @@ or print("No led tag with vendorID 0x0416 and productID 0x5020 found.") print("Connect the led tag and run this tool as root.") sys.exit(1) - LedNameBadge.pyhidapi.hid_write(dev, buf) + for i in range(int(len(buf)/64)): + # sendbuf must contain "report ID" as first byte. "0" does the job here. + sendbuf=array('B',[0]) + # Then, put the 64 payload bytes into the buffer + sendbuf.extend(buf[i*64:i*64+64]) + LedNameBadge.pyhidapi.hid_write(dev, sendbuf) LedNameBadge.pyhidapi.hid_close(dev) else: + if args.hid != "0": + sys.exit("HID API access is needed but not initialized. Fix your setup") dev = LedNameBadge.usb.core.find(idVendor=0x0416, idProduct=0x5020) if dev is None: print("No led tag with vendorID 0x0416 and productID 0x5020 found.") @@ -581,6 +588,7 @@ def main(): epilog='Example combining image and text:\n sudo %s "I:HEART2:you"' % sys.argv[0]) parser.add_argument('-t', '--type', default='11x44', help="Type of display: supported values are 12x48 or (default) 11x44. Rename the program to led-badge-12x48, to switch the default.") + parser.add_argument('-H', '--hid', default='0', help="Set to 1 to ensure connect via HID API, program will then not fallback to usb.core library") parser.add_argument('-s', '--speed', default='4', help="Scroll speed (Range 1..8). Up to 8 comma-separated values") parser.add_argument('-B', '--brightness', default='100', help="Brightness for the display in percent: 25, 50, 75, or 100") @@ -658,4 +666,4 @@ def main(): if __name__ == '__main__': - main() \ No newline at end of file + main() From 105e23b187600066706bd22a2478862d6d6e9e2c Mon Sep 17 00:00:00 2001 From: Juergen Weigert Date: Tue, 26 Dec 2023 03:01:51 +0100 Subject: [PATCH 31/33] move args.hid check into main(). It has nothing to do in write() --- lednamebadge.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lednamebadge.py b/lednamebadge.py index 69a6c82..f65c71e 100755 --- a/lednamebadge.py +++ b/lednamebadge.py @@ -559,8 +559,6 @@ or LedNameBadge.pyhidapi.hid_write(dev, sendbuf) LedNameBadge.pyhidapi.hid_close(dev) else: - if args.hid != "0": - sys.exit("HID API access is needed but not initialized. Fix your setup") dev = LedNameBadge.usb.core.find(idVendor=0x0416, idProduct=0x5020) if dev is None: print("No led tag with vendorID 0x0416 and productID 0x5020 found.") @@ -662,6 +660,10 @@ def main(): for msg_bitmap in msg_bitmaps: buf.extend(msg_bitmap[0]) + if not LedNameBadge._have_pyhidapi: + if args.hid != "0": + sys.exit("HID API access is needed but not initialized. Fix your setup") + LedNameBadge.write(buf) From df97bfa1e040fea4fdd616a5d2f948aa6c909c78 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Sat, 28 Dec 2019 16:57:00 +0100 Subject: [PATCH 32/33] [archlinux] add install instructions --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 38eaf7a..696518e 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,10 @@ access to the badge via USB. sudo cp 99-led-badge-44x11.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules && sudo udevadm trigger +### Required dependencies on Arch Linux + + sudo pacman -Syu python-pyusb python-hidapi + ### Required dependencies on Debian/Ubuntu Systems #### Using Debian/Ubuntu packages (recommended): From b0c2a33e74a30327e40fa1b1edefaa209752a7fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= Date: Tue, 7 Feb 2023 23:20:28 +0100 Subject: [PATCH 33/33] =?UTF-8?q?Added=20"=C5=A0"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jaroslav Škarvada --- lednamebadge.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lednamebadge.py b/lednamebadge.py index f65c71e..a598f9f 100755 --- a/lednamebadge.py +++ b/lednamebadge.py @@ -185,7 +185,7 @@ class SimpleTextAndIcons: 0x00, 0x00, 0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - # "äöüÄÖÜß" + # "äöüÄÖÜߊ" 0x00, 0xcc, 0xcc, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0xc6, 0xc6, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0xcc, 0xcc, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, @@ -193,6 +193,7 @@ class SimpleTextAndIcons: 0xc6, 0xc6, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0xc6, 0xc6, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x66, 0x6c, 0x60, + 0x28, 0x10, 0x7c, 0xc6, 0xe0, 0x38, 0x0c, 0xc6, 0xc6, 0x7c, 0x00, # "àäòöùüèéêëôöûîïÿç" 0x00, 0x60, 0x18, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0x76, 0x00, @@ -233,7 +234,7 @@ class SimpleTextAndIcons: u'abcdefghijklmnopqrstuvwxyz' + \ u'0987654321^ !"\0$%&/()=?` °\\}][{' + \ u"@ ~ |<>,;.:-_#'+* " + \ - u"äöüÄÖÜß" + \ + u"äöüÄÖÜߊ" + \ u"àäòöùüèéêëôöûîïÿç" + \ u"ÀÅÄÉÈÊËÖÔÜÛÙŸ"