From e13deacf5cc4d0ed3fdb0c0ebecf3a59253c28bb Mon Sep 17 00:00:00 2001 From: sfeakes Date: Sun, 18 Aug 2019 15:54:10 -0500 Subject: [PATCH] Version 1.3.5b --- Makefile | 4 +- README.md | 152 ++++++++++++++++++++------------------- aq_programmer.c | 2 +- aq_serial.c | 92 +++++++++++++++++++----- aq_serial.h | 3 - aqualinkd.c | 43 ++++++++--- config.c | 39 ++++++---- config.h | 5 +- json_messages.c | 38 ++++++++-- json_messages.h | 3 +- net_services.c | 38 +++++++--- packetLogger.c | 71 ++++++++++++++++++ packetLogger.h | 15 ++++ release/aqualinkd | Bin 250036 -> 250172 bytes release/aqualinkd-player | Bin 247004 -> 0 bytes release/aqualinkd.conf | 6 +- release/serial_logger | Bin 30028 -> 34520 bytes serial_logger.c | 2 +- utils.c | 16 ++++- utils.h | 7 +- version.h | 2 +- web/controller.html | 14 ++-- web/simple.html | 8 ++- 23 files changed, 405 insertions(+), 155 deletions(-) create mode 100644 packetLogger.c create mode 100644 packetLogger.h delete mode 100755 release/aqualinkd-player diff --git a/Makefile b/Makefile index 601f5bc..48c27dc 100755 --- a/Makefile +++ b/Makefile @@ -31,7 +31,7 @@ CFLAGS = $(GCCFLAGS) $(DBG) $(LIBS) -D MG_DISABLE_MD5 -D MG_DISABLE_HTTP_DIGEST_ # Add inputs and outputs from these tool invocations to the build variables # define the C source files -SRCS = aqualinkd.c utils.c config.c aq_serial.c init_buttons.c aq_programmer.c net_services.c json_messages.c pda.c pda_menu.c pda_aq_programmer.c pentair_messages.c mongoose.c +SRCS = aqualinkd.c utils.c config.c aq_serial.c init_buttons.c aq_programmer.c net_services.c json_messages.c pda.c pda_menu.c pda_aq_programmer.c packetLogger.c pentair_messages.c mongoose.c DBG_SRC = timespec_subtract.c # If run with `make DEBUG=true` add debug files and pass parameter for compile @@ -40,7 +40,7 @@ ifeq ($(DEBUG), true) CFLAGS := $(CFLAGS) -D AQ_DEBUG endif -SL_SRC = serial_logger.c aq_serial.c utils.c +SL_SRC = serial_logger.c aq_serial.c utils.c packetLogger.c LR_SRC = log_reader.c aq_serial.c utils.c PL_EXSRC = aq_serial.c PL_EXOBJ = aq_serial_player.o diff --git a/README.md b/README.md index 1093e1e..23e0cd2 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Aqualinkd -linux daemon to control Aqualink RS pool controllers. Provides web UI, MQTT client & HTTP API endpoints. So you can control your pool equiptment from any phone/tablet or computer, and should work with just about Home control systems, including Apple HomeKit, Samsung, Alexa, Google, etc home hubs. +Linux daemon to control Aqualink RS pool controllers. Provides web UI, MQTT client & HTTP API endpoints. Control your pool equiptment from any phone/tablet or computer. Is also compatible with most Home control systems including Apple HomeKit, Samsung, Alexa, Google, etc. -### It does not, and will never provide any layer of security. NEVER directly expose the device running this software to the outside world, only indirectly through the use of Home Automation hub's or other securty measures, e.g. VPNs. +### It does not, and will never provide any layer of security. NEVER directly expose the device running this software to the outside world; only indirectly through the use of Home Automation hub's or other security measures. e.g. VPNs. ## Donation @@ -11,19 +11,20 @@ If you like this project, you can buy me a cup of coffee :) ## AqualinkD forum now open http://aqualinkd.freeforums.net -(Please use this for questions / issues / problems) -For Bugs use issues link on top of page +(Please use this for questions / issues / problems). -## Please see Wiki for install instructions +For Bugs, please use issues link on top of page. + +## Please see Wiki for installation instructions https://github.com/sfeakes/AqualinkD/wiki -Information on Control panel versions and upgrading the chips.
+For information on Control panel versions and upgrading the chips.
https://github.com/sfeakes/AqualinkD/wiki/Upgrading-Jandy-Aqualink-PDA-to-RS-panel -Started to document what I know about the Jandy RS485 protocol.
+Here's where I started to document what I know about the Jandy RS485 protocol.
https://github.com/sfeakes/AqualinkD/wiki/Jandy-Aqualink-RS485-protocol -## AqualinkD builtin WEB Interface(s). +## AqualinkD built in WEB Interface(s). @@ -31,29 +32,29 @@ https://github.com/sfeakes/AqualinkD/wiki/Jandy-Aqualink-RS485-protocol
Default web interfaceSimple web interface
Both Interfaces
    -
  • If you load the web page in a mobile device browser, then save to desktop an app will be created for you.
  • -
  • Order and options shown are configurable
  • +
  • If loading the web page in a mobile device browser, you will need to save to desktop where an app will be created for you.
  • +
  • The order and options shown are configurable for your individual needs and/or preferences.
Default Interfaces
    -
  • The layout & functionality are a from Appple HomeKit interface, only this works in any browser or mobile device.
  • -
  • Customizable tile icons & background image. (can hide any tile)
  • -
  • Thermostst, SWG & Light tiles have more options (like setting heater setpoint, light mode etc) that can be accessed with a long press
  • -
  • Support live background imags (ie poll camera for still image every X seconds)
  • +
  • The layout and functionality are from the Apple HomeKit interface. This works in any browser or on any mobile device.
  • +
  • Customizable tile icons & background images. (Tiles not used can be hidden).
  • +
  • Thermostat, SWG & Light tiles have more options (ie: setting heater temperature, salt generating percentage and light mode etc). These options are accessible by pressing and holding the tile icon.
  • +
  • Supports live background images (ie: poll camera for still image every X seconds).
### Simulator -Designed to mimic AqualinkRS6 All Button keypad, and just like the keypad you can use it to completley configure the master control panel
+Designed to mimic AqualinkRS6 All Button keypad and (like the keypad) is used to fully configure the master control panel
### In Apple Home app. -* (Salt Water Generator is configured as Thermostat as it's the closest homekit accessory type, so °=% and Cooling=Generating) -* Full support for homekit scenes, so can make a "Spa scene" to turn spa on, set spa heater particular temperature, turn spa blower on, etc etc) +* (NOTE: Salt Water Generator is configured as a Thermostat. It is the closest homekit accessory type; so °=% and Cooling=Generating). +* Full support for homekit scenes: ie: Create a "Spa scene" to: "turn spa on, set spa heater to X temperature and turn spa blower on", etc etc). ### In Home Assistant @@ -63,11 +64,14 @@ Designed to mimic AqualinkRS6 All Button keypad, and just like the keypad you ca * http://aqualink.ip/simple.html <- (Simple opion if you don't like the above) * http://aqualink.ip/simulator.html <- (RS8 All Button Control Panel simulator) # -# Update in Release 1.3.5a -* Logic for SWG RS486 checksum_errors +# Update in Release 1.3.5a,b +* Logic for SWG RS486 checksum_errors. +* Fixed pentair packet logging, missing last byte. +* Support for two programmable lights. (Note must update your aqualinkd.conf). +* Can now display warnings and errors in the web UI (as well as log). # Update in Release 1.3.5 -* Fixed SWG bug showing off/0% every ~15 seconds (introduced in 1.3.3) -* PDA updates for freeze protect / SWG & general speed increase. +* Fixed SWG bug showing off/0% every ~15 seconds (introduced in 1.3.3). +* PDA updates for freeze protect/SWG and general speed increase. ## Update in Release 1.3.4 (a) * Logging changes. * Fix issues in programming mode. @@ -75,98 +79,98 @@ Designed to mimic AqualinkRS6 All Button keypad, and just like the keypad you ca * Changed to serial logger. * PDA changes for SWG and Setpoints. ## Update in Release 1.3.3 (a,b,c,e,f) -* Incremental PDA fixes / enhancements. -* SWG bug fix +* Incremental PDA fixes/enhancements. +* SWG bug fix. ## Update in Release 1.3.3 * AqualinkD will now automaticaly find a usable ID if not specifically configured. -* Support for reading (up to 4) Variable Speed Pump info & assigning per device. (Please see wiki for new config options). - * *At present only Pentair VSP supported, if you have Jandy VSP (ePump) and are willing to do some testing, please post on forum as I'd like to get this supported as well.* - * For VSP you need to check config for `read_all_devices = yes` & `read_pentair_packets = yes` and assign RS485 Pump ID to Device ID in configuration. serial_logger should find ID's for you. - * WebUI will display Pump RPM only. RPM,Watts,GPH information is also available from MQTT & API. +* Support for reading (up to 4) Variable Speed Pump info and assigning per device. (Please see wiki for new config options). + * *At present only Pentair VSP is supported, if you have Jandy VSP (ePump) and are willing to do some testing, please post on forum as I'd like to get this supported as well.* + * For VSP you will need to check configuration for `read_all_devices = yes` & `read_pentair_packets = yes` and assign RS485 Pump ID to Device ID in configuration. serial_logger should find ID's for you. + * WebUI will display Pump RPM only. RPM, Watts and GPH information is also available from MQTT & API. ## Update in Release 1.3.2c * Miscellaneous bug fixes and buffer overrun (could cause core dump). * VSP update & Pantair device support. ## Update in Release 1.3.1 * Changed the way PDA mode will sleep. -* Added preliminary support for Variable Speed Pumps. (many limitations on support) -* Added int status to Web API +* Added preliminary support for Variable Speed Pumps. (Many limitations on support). +* Added int status to Web API. ## Update in Release 1.3.0 * Large update for PDA only control panels (Majority of this is ballle98 work) * Can distinguish between AquaPalm and PDA supported control panels. -* PDA Freeze & Heater setpoints now supported. -* Added PDA Sleep mode so AqualinkD can work inconjunction with a real Jandy PDA. +* PDA Freeze & Heater setpoints are now supported. +* Added PDA Sleep mode so AqualinkD can work in conjunction with a real Jandy PDA. * Speeded up many PDA functions. * Fixed many PDA bugs. * Non PDA specific updates :- -* Can get button labels from control panel (not in PDA mode) +* Can get button labels from control panel (not in PDA mode). * RS485 Logging so users can submit information on Variable Speed Pumps & other devices for future support. * Force SWG status on startup, rather than wait for pump to turn on. * General bug fixes and improved code in many areas. ## Update in Release 1.2.6f * Solution to overcome bug in Mosquitto 1.6. * Fixed Salt Water Generator when % was set to 0. -* Added support for different SWG % for pool & spa. (SWG reports and sets the mode that's currently active) +* Added support for different SWG % for pool & spa. (SWG reports and sets the mode that is currently active). * Increased speed of SWG messages. -* Few other bug fixes (Thanks to ballle98) +* Few other bug fixes (Thanks to ballle98). ## Update in Release 1.2.6e (This is a quick update, please only use if you need one of the items below.) * Unstable update. ## Update in Release 1.2.6c -* Fix some merge issues +* Fixed some merge issues. * Added MQTT topic for delayed start on buttons. -* Removed MQTT flash option for delayed start (never worked well anyway) +* Removed MQTT flash option for delayed start (never worked well anyway). ## Update in Release 1.2.6b -* Added MQTT topic for full SWG status (MQTT section in see wiki) -* Config option to turn on/of listening to extended device information. -* Added service mode topic to MQTT (Thanks to tcm0116) -* Added report zero pool temp (Thanks to tcm0116) +* Added MQTT topic for full SWG status (MQTT section in see wiki). +* Configured option to turn on/off listening to extended device information. +* Added service mode topic to MQTT (Thanks to tcm0116). +* Added report zero pool temp (Thanks to tcm0116). ## Update in Release 1.2.6a -* more PDA fixes (Thanks to ballle98) -* Fix in MQTT requests to change temp when temp units are unkown. +* More PDA fixes (Thanks to ballle98). +* Fix in MQTT requests to change temperature when temperature units are unkown. ## Update in Release 1.2.6 -* fix for PDA with SPA messages. (Thanks to ballle98) -* Added report 0 for pool temp when not available. (Thanks to tcm0116) +* Fix for PDA with SPA messages. (Thanks to ballle98). +* Added report 0 for pool temperature when not available. (Thanks to tcm0116). ## Update in Release 1.2.5a -* fix bug for MQTT freeze protect. +* Fix bug for MQTT freeze protect. ## Update in Release 1.2.4 * Small fix for Freeze Protect. ## Update in Release 1.2.3 * Fix for setpoints on "Pool Only" configurations. ## Update in Release 1.2.2 -* Support for Spa OR Pool OLNY mode with setpoints, (previous setpoints expected Spa & Pool mode) -* Added support for MQTT Last Will Message -* Fix spelling errors will effect your conficuration, and the install.sh script will not overwrite. - * Please compare /var/www/aqualinkd/config.js to the new one, you will need to manualy edit or overide - * MQTT spelling for enabled is now accurate, so anything using the /enabled message will nee to be changed - * homekit will need to be changed. Please see the new homekit2mqtt.json or modify your existing one. +* Support for Spa OR Pool ONLY mode with setpoints; (previous setpoints expected Spa & Pool mode) +* Added support for MQTT Last Will Message. +* NOTE: Fixed spelling errors will effect your configuration and the install.sh script will not overwrite. + * Please compare /var/www/aqualinkd/config.js to the new one, you will need to manually edit or overide. + * MQTT spelling for "enabled" is now accurate, so anything using the /enabled message will need to be changed. + * Homekit will also need to be changed. Please see the new homekit2mqtt.json or modify your existing one. ## Updates in Release 1.2 -* PDA support in BETA. (Please see WiKi for details) -* Fixed bug in posting Heater Emables topics to MQTT. (order was reversed) -* Serial read change. (detect escaped DTX in packet, 1 in 10000 chance or happening) +* PDA support in BETA. (Please see WiKi for details). +* Fixed bug in posting Heater enables topics to MQTT. (order was reversed). +* Serial read change. (Detect escaped DTX in packet, 1 in 10000 chance of happening). ## Updates in Release 1.1 * Changed the way AqualinkD reads USB, fixes the checksum & serial read too small errors that happened on some RS485 networks. -* Figex bug in SWG would read "high voltage" and not "check cell" +* Figex bug in SWG would read "high voltage" and not "check cell". ## Updates in release 1.0e -* Web UI out of Beta -* MQTT fix setpoints +* Web UI out of Beta. +* MQTT fix setpoints. * Simulator is now more stable. -* updates to serial logger -* UI updates -* bug fix in MQTT_flash (still not prefect fix) +* Updates to serial logger. +* UI updates. +* Bug fix in MQTT_flash (still not perfect). ## Updates in Release 1.0c -* New Simple interface. +* New Simpler interface. * Start of a RS8 Simulator :- - * So you can program the AqualinkRS form a web interface and not control panel. - * Please make sure all other browsers & tabs are not using AqualinkD. it doesn't support multiple devices when in simulator mode. + * You can now program the AqualinkRS from a web interface and not just the control panel. + * Please make sure all other browsers and tabs are not using AqualinkD as it does not support multiple devices when in simulator mode. * Fixed a few bugs. * -- Release 1.0b -- -* NEW WEB UI !!!!!!!!!!!!! (in beta) -* Flash buttons on/off in homekit for enabeling / disabeling / cooldown period as they do on control panel -* Full SWG support (setting %, not just reporting current state). Also reports Salt Cell status such as (no flow, low salt, high curent, clean cell, low voltage, water temp low, check PCB) -* Update to thermostats, colors are now correct in homekit, green=enabeled, orange=heating, blue=cooling (SWG only) +* NEW WEB UI !!!!!!!!!!!!! (in beta). +* Flash buttons on/off in homekit for enabeling/disabling/cooldown period as they do on the control panel. +* Full SWG support (setting %, not just reporting current state). Also reports Salt Cell status such as (no flow, low salt, high curent, clean cell, low voltage, water temp low, check PCB). +* Update to thermostats, colors are now correct in homekit, green=enabeled, orange=heating, blue=cooling (SWG only). * Light show program mode should now support most vendors lights. -* config changes for (spa temp as pool temp / light program mode options / enable homekit button flash) -* updated to serial_logger. -* freeze protect, heater temperature & SWG set-points have been added to support for standard HTTP requests (MQTT & WS always had support) +* Configuration changes for: Spa temp as pool temp/light program mode options/enable homekit button flash. +* Updated to serial_logger. +* Freeze protect, heater temperature and SWG set-points have been added to support for standard HTTP requests (MQTT & WS always had support). # Please see Wiki for install instructions https://github.com/sfeakes/AqualinkD/wiki @@ -174,8 +178,8 @@ https://github.com/sfeakes/AqualinkD/wiki # # Aqualink Versions tested -This was designed for Jandy Aqualink RS, so should work with AqualinkRS and iAqualink Combo controll panels. It will work with Aqualink PDA / AquaPalm and NON Combo iAqualink, but there are limitations. -Below are varified versions (But should work with any AqualinkRS) :- +This was designed for Jandy Aqualink RS, so should work with AqualinkRS and iAqualink Combo control panels. It will work with Aqualink PDA/AquaPalm and NON Combo iAqualink; but with limitations. +Below are verified versions, but should work with any AqualinkRS :- | Version | Notes | @@ -190,7 +194,7 @@ Below are varified versions (But should work with any AqualinkRS) :- | Jandy iAqualink E0260801 REV R | Everything working | | AquaLink PDA / AquaPalm | Works, please see WiKi for limitations| -If you have tested a version not listed here, please let me know by opening an issue +If you have tested a version not listed here, please let me know by opening an issue. # |>a z@gKCE#-7m2Nmsq80(>Ff@(z-RxgF_E`d3|PZ&ARlx1mjJvh6KQh6X>ItU{afpTb%TG% zAAcLSC-_p{>RQ@;^!wsx!I_Qg|Cn&8dU@9xfOu|-%F%!J%djgdGulJBTP`g`X)YCKTRL8Y5(gWW0_xFO96xC{?BvnsWrGM zf`%iFF|=D7OWVSg@Er2JmGsu~BX!oZ>O0*>Le-a`ZqbJ7-AA1n@`yg3R(;Tw=nFW; zfoEt7U!5!4paF+yOJxPy(}E{1OC0}5I?uip)Av`>r{XRyBmI5I<(zfK^G(}Gb3E;L zl}}CeejU5q*hRsXeNA0y{3Jz#S0ig}`u4p$WtU!7e=Xz6-Na_D%Y1#UU3gn9MSb#< zS{2ce?jP$l`cP+N!Z_zjm&%Tno=E2X@Qu_G0tWle@HR3jHT=s{ca&I zGLvzgtNVkp9y&3>UfhcU#rkj#Misiq@7k9@Pbk*E`}}_!O64y=Pw$P!nE3908%kC$ zh_v@^IX1NLXL(iDMQA7fE!*H;>`S$ACT++rumaBhr62D`zT}uoTw8s4e}_kV`Q6C- zS&CW3KCm`l$#2ef)%nP4-_7r9+25UDzd;V)TL-qj?d2oRaNFEb-8E!mqe@qpvS<4@ zQRl71T2setQwMXQ&F96x-&CD_vsLx`Xxrq|c~9rXZN15xbu+N{(blb+KQ;RypI7s@ z`Xu|o%FpGzb@XVFu`FZt%*{(jl&vu{Lmz#RiP+~Iw)};Y90inVR>O3>LFGqTi z-`E*}FQ;x{+gf3!T<5Q*86H;Ek*_UcnRz|79%ElZ5e$_lb;UFt? zM@|L#QXt-t{pC;wZxw@3GOSGTIzeHbjpO|P~bsa~Y8Mm>2!D26}_K+(cSbN&p)3iD5 zEM%^?%D^})rd#bZ<(3)nyVCf5WTR`YdwrQRv6;h4&gGnYq1%4+_?)_YmnoxPuEM9q zJ{oIPpt^0h5S__5N}s-ERNXokyC0pNI1*v*mEO%A1H&+L zO?0tVg3;?H(}M;iCJKR_vmI&*Zw%s0cYkjzffBXWDlK| z^PV0$4f(D8LMn5Xp6<_wQr@cIEXIs7wpHu{ zHhk0YeV6JVr0r~Z5o=!`G;1g+)<9Z{OMrb*t#fdo#+p7h2=!DhMkg!{bw1v1;gGf+ z`ex>CW%}r8{7&g)?q4b&`s_CPlb}CY^e+7kIgfWlPr>+{`W){)F?-a2 zb&TW)@FvK!{VTEy2H1lkIJQv#xaXHpzvgM$gK|IgsdHbkr9#gBzVD#)33PN$YL`ADcGt;eA!#Bxl4gmUT1#eGxP~qCK?Q z$J^X*8^9~pDQR;~fZ$H-foJGT${DELsj?pSK~eqL7>$Eou?K55u$pxG-b{xs>em71 zb(Fa$h6CC~Ug%6j_Lm`BWP=LVRvtZJ{0UZ9V$T5W4Vd}2@`xspclaa+%>HT%IiS3v z`O$gDTf~-w!#&u3k;c`vtZBdHu3LO%!}Q7MdcjGb)F0`4#<*@%_Y($>rMkvW`~Ts$ zY?5@1!8`cI*whoJmx0?4FXo;3joIg?GYo#gyHzOE$a@Ej&R81XmO0~cHGTg?+;`>^ zUCn;IS!LjH^`H5KIX|HJZ5rRkS2r?;LN|HHX8I%>z{WO~zwj%vi(~w}UiILgYlm*H zwdNY%7WIuwy1va>@bD|Tk$ISGirFzPtVGI^Z%$*Y{x z8DD3NBhkX34UOSTTueXBSbG|WfVl^E)rG`8fnS{`;#6f*$o}V_cC{}QK4s0Hb9oCp zLhTKa?LHrvB@aZi;y=-=_KWWSGWElgCn=3_R36Rwu8i{|ce-{d596eJNYCe+&YH=1 ztn-b^KW|k2pNz^sEzYlVPi*Ux^;X`|0fv6mmg@h(sQl1#wyCq(7i!ie1nUXZZ(*}M z4ZSz}dQ#k`_N`+h9O=_^<)u$QBd_XEzf?y$PUjo}_KP*@77lvi^dGBkaF{ECTlJ0c z{yea$pGw#JI^Lgwj?DQTJeBV|Jj?O;_AtITSe708o5GFau{=Bm-o?MY)IrQ(?MCX6 zd|JTTn))O9);?+*p1utnaVBm3WZ{md&2!^UWE*QZz4=?BbmK9AF$p_ zpXb&Yo6SkSr$&9xT-YBNn~Cq753xDLcVYyOmcN8JFjN1#LuBk}X=`^>wj85pmI71a z&3*Nytiv{OXuVVS(6V;y6$9pjfqbs1ayeiv>)aNvqjn~~qX#{W_d9EfVVnUE>3shL zem3;mNPcs|>fzt{Lc;3gIr{&FIL%_OukG#x2h2gyow@Gi!N=Xh`xDhNF;NS`+3rB} zbNm|`L-9n$L*Mh8v)%V3+?_)<`zndws3oTL1^2yS2YkJR_=o}a{%L-HWgxnkl}G0z zYZbFHgK-lrJ>o2@iJnAD;xp0J4#uuIUboQZhZ(Pk5m)e_x(0dXFY!I@VUZo);>xmIxw;3wtC-#b5CfNfwi z-tV<`;AerZ+})AR@cr@0JHi`8E2O1KYhm8M7~I+8mj@qn4)3>JVveyXmpB8`O>0xo zi)c(~AA^Q$XE$T;WF((WiFS3K@U`CI{Yi(jY4IN{rLJqpm#jWXzFp*7R=bXT!hy-> zE)T9JkLd6mWL%!7=7y^Oa>`lwgqroQ9$i1>)>AG)-`)kj#j`r&{vmYCotn47vo`hh zIJZRCgSQfM9POXGuCgU62gHz9w?zGeic1`bR`X5cuYGnCE5wtNuSmWndBuGb7g!yL z76)6RrB!4g`QPh47ybAR&xP(FdC^@KjlJzfHTOAYFycgO1Fg9~Z^_ z*Ba07Jp4M$CsNie(Qiu3u}Z#u6LkA+=jpK3^~1>z!N2TfRsXNA9^P*OJGNQ)7_e*r z7VS+}`HUyo&>v}kx@460rW^eYKTPDe_((8pVhs8jgIr-_bbbs6lV8q6f{$F;`Iq81 zQ0z;8WXU!_Hxt)B!J%HA;U=Bi+yk#R^dHwve;an|bYL@W1OJDBaR}TgAMJ;3oL{nc zFvj8i;H=93Lwb_-6i>}B9ogS`?hpjN=Gjr`S?p%B?p!BRR&DoK{k4nPM?0P8g*?@c zbkue9XFs^qyVkQ`vlTkiTnred#c&J@Hpa>9g)S3Ai9YSgYfib$*#0hcsIEd{D4e6xs+o`f|XN%0OSZA?H zD<`CE#RaU0t}$ii%Z`08Reala@@?xxR#{qu;k-S37bBgeTZs3tG{w+WBTOZEsaEtEMHH%^S3@xmLp`3<;f`uw`-b2ojy zKJGK=nNIrj1NtNyQa%gZ=(#uUTaLbo-LWgD&&<%p(6&oc`!+gJ13-q~4{~TcQFox#-+N+~qCE)mvB_o>pN{LLUp7W{*A(Fw zAD#37XG<6zAla&Z|3Y{IZ%6XD%F~zwXdO?nDJd5ojOn|XPdsgShj0J=!r=ptQ=jCr znS1k`0?kWC8y?J4z6d=rj$4Jbxw5lB=*ho8^1XH+YsGQ z<*ZuTmRwYuS<=(YahUs!{Qj`jxVsi#PcQN@1r8-6#cS^eFV7Yq3U@AhD4gg>r_ZUk zxQhd=aS=}<8!zkTg~P@S8_&)Sky@-ue#725uOy_TgR)~o;W6B&TZNIrM$s8yxzm)WqWZ-yk zDm)5bE_i(&x*y%1*14qnJlfS*CW$%ffw!f%wPtX&_@rE@?K5+4e7?Z_ZD8Ix`Jqs_ z%D6YPj&=ug__@S5?+y-Wn7RWI@$JFiRlR$bdw zhJNO0`=_^ar#AGZ`HARSa}@bE7sG$juksmn!G9W4`Sa7%E8XBiFM^Fen|l>o%D`8- zqo(-qgS7LQh)3 z3l($bmu-E5H5BP)&F8^s_R?|UMR0qre0TDrN(VV5e288{_u+5C2ZxUWI8xrJ(IfO( zG?XGnMg5UX{w;Wt|3Q3$&SXr`U!;w$Q+|jUqGNn>+_w~+&Kj11BmXpX&|BC08F_!4 zThv;%A9~bfQP)?PGpfu?jXyfdD({R=_b#gak2S8&oU^MNSf>nP^LeygDc6`|82dwZ zQaOVS;=^yyQHfhopSyuO&FBd@*bB|~8S#5_E`j|X z+C~0>S9VLnN3Mu>%Ft$oy-|bg8!Bvxe)2`=6I`=h1U5>qHEn}#uE{ukT7md{xdN9Jf|{Q! z-hf{4S^Zy`|Bap>C@uvWN9HzsGM2Y48vVT~lSE$}`hI}5^AW3XFxj*-ZU^VGF=Q_) zCeW%P7pe^(aE51&|0a$T;B*Y@Ic{|TS$ou0)SUr;7vop!T}SW>zGN$YIL0r$V{FBv zxb=_V_K1B5e*YY9b!VjR6&7wk9OL%?*4$b#jI#5Z>mtJ22Joi2brWa8*Bf6THW=O! z--s_of0{dM=SHt zRQ|`L^=kbxt2jl)oifIlMn3alo#Ur@&RpFi_SH^{IOD11AYoUAGSp`iA1YY`pCX68 z6E)K)mr-1k%4r=@e1}h~_5x4UDfp7WZ(yfS&(RO~)U4k~=WAa7>=zsHyW%&k``LNm z@hAfiil+yyXF`?FDctdLlY1(-gWwsew zYRorj0}54p4V|Yvvg@?B_Ce)?ue6@7^fK_aP+oja|4iB==y2uNcg=YnzL&h)jGk^) z8a&(NTkH}OpRB&AU+Sm&rhX1uyG-BEv-p7E3;H$Mo+tlv(o^_HUiZS1{*N z3x0gDujq@$=#TY<_#f<_Qr&JZjKjwGvhY-W!Vf1Au&`q6E8=;+$h_Bg-z=WONi8f#CNC?E1$em0$@t~y0$-y4hPkW$*+#e-!&?~)}F+ZT7Qzvu$d2^Oc|{;8+rrorONLXYWV59666&vE{p49-+aS| z829g1<)wcQo4l9RT>}sHK}qM7pBgpmY^DA+(3QbanK(-NZTKkeH@+6&LPsNimFIiZ z$2!W0%B%gi#O-{Ybm9V#6B{GhEh>Z0-n^^aJ$yGdG41J_*1+;{*)Q?UtdUWt#^#zh z9Y1}S+K`OW9uk%N8L+C2X8KPJ?C_Lnt3MJ?DZlbQ5a(^C{m|sS%*62te$jwn!}rzo zeZDovdW3iEyOA4MOA}o;by>2AY{FJC{9HipP^TyeZpJcu>F3or82GM%b83>fGg?!-J;5FqES7cy4!JK`cuuc%n*>7)q&d`En z-coc{4|7_4{-J#S1LQY+%3YbrM(lfH7l0v6UH`7WK?|1klQi?(tm;E|8+!Z@-&C*W zA*Q~E`tbMSPiy+EX)EPu&1Xfhl)O8Ear|pj*1bs5)yFl~vC;F)2_$0`hhbvkvMKJL zz@~!^l-{trWp_zGN&o2X3>#d6=dLB@_odp40!uaWV^ec)#_f>}o)!O;1J_CVG#`CE zA6Vh1%{RpN8O#6K$$0nvmbeXcr30-g+|0GOvv*kdV4aaXP2K!;(y-S@ zX2ka6Uiw$%Uvrpg$RQ6q#VR9nuvMmD2lfB>~t7le##El8eR z7OF4IHP^cEoANVvm|!`}C$RT@LW*a1oNiT@lio<1AE%|f7AAP}DoW zS<{}7O7wLuir1NnU}eYnPapHsh*r|Ac9iAU4khl6(T zF_(H<=~HW&IB95#*tyM|d01HVc|At>dc)pW&o3YfGihhI(@+JQoya*p@e!tG-c{;NF6*bXJ7PzvsgU?Prj}7DK zTa$)90(^`M{zLPvt~Dv;odTTfy9ja2jHG$0pSJh(KJnapbw`y$J?!&97xZcWr}mH| z_t%Pd|u_GMO{WeeOvGM&0uR zA0Z3*ZOJFfUA8d~>ueV7N3v-v%ib@$vi9sb#4u`ag9RMW_2yPj`bqKk@LFDXl@Ncy zQ}YvxbAUA-*h5_@VAuW;;%FikPBtr#{B$XNJG+So5&dhfmZDF}Cpyp=yn*^!iXRGW z!B$)yS^nyy@Ojkf4Mdu&sIGg_C)K#Fm!Sov-9_3D<23x$%zrK;o&oyvE;IdZ@c4U_ zcCKRHO}r;@nR~T%ALsd3>asc0861t+?xn1^UtnYuHd0o1ktd5rKAigmd5-uohZrRf)Qj*-@UgT|zL&oXm~wb;c!Gk1yP7%zu^jhA9;twHcuZr}-8 zt0$-<>HFbD`7NB&%Q-Lw&hD#lwufT7nD47EDff$v@7#KUzAE;*k=EGjae+yDcbs;c z$#~=N$I*p=)|5le4x&w}KC?4;i@Pdyp7o+MXAuHR4I&y)N<(izai{n&D=g ztzf~%Gj$(iY;D)CPoQqe4Dl-Qr8W5hZ{0+Dz+;hS;2_UW$zu^Os`m`vomCgzgV(4Z+_2ik;3TM#WSoG33tLTqq?$iYjj^r6X?Qzm~eB{{~*j=0@TeE^n z4Y`C)$F|_9IUP0}adFVK%NfYOZj7;P?G^T_;QeFDW}c(5(tJnb&)m{B`#19Pt79Jm zm(nNDj+d7VV&6Q!fvKJ@YTRxk?tSC)i+>Z(U#xj!ZS9}pE=0kX0&Ww(Sdfpk*Vz5y zu|wE>d^7uO>32O3pX|IU3(0zT6^}! z@94qoBy{%9_#NVe|8+)4Av~GipB+=EpUU$d>`&EoHS$2;H2*}7?0IcRqo14N^5}%F zN}Ts`aM1AIG|FJ7vJbFP&(io=YSv3Tt<>2?edva+1#$ZP_}Lpj3-NPy{JbcB&WfMf zD=#=V*p~Gb{{Msjr=XXcc+TSK@xPw`d-z|%|8)L)`7iQc<=^H1cK#RfpWnuP)$&;( zpLCB3^Ci{rDA#m_|Be&-{T=%9 z-ua1)&9t)g74tg!m0Q*mB?gh>1^wZ}@j!nCJZh-b?X2dtGCGo)=!s@6V2zr}<8{m+#`|LY(g+(oQq{ zJWul+%7~xmh0~@s_}Lo^4>P8s6WJ2oyq|99M6r3uRlccT#?IhdH{Yh9E7{|Y46w50 zTMi%ShORH$--zi^zGlpU?0VS-f4KJ5Z`Qta-fAYU=Ofhf4&Cj?9QL&x^GsZm56=o# z~*AW!W{k^Yzb zcz~zmhw@8){E%lRow9P{8h)7`e*ZanA^C8u%=mM%ym=mjXiT)_Il@C@UtF@px)3o3 zq6eK>tNmrU@|Ng5;CeJYXkGWhQS_iYlN$2=#w<^Ju91D^noAO=o8uXqP>mOyV2bmeVTUh)BOQ`V2ftuTNQnX9z-9a2hoS< zLG&Sd5PgUqL?6m8`uIN2zl0v{j%nyvy3oC)>-qL)^$B}It>WC8biL?9bn6$|za>+C#52ct$&^f-?-|mNN7xAS>KL&{Xh`|NLxBc1h|EBp1w&e5DF4`#kWJN&f=r(|O94!&jQcPq(KhewS>; z54y*V-CeIY@y*Gv}z^4|RxHWp2`I_kPt{AqRq<;(8oMT|KsQbFO z?49Jfld?fv_KvvhM$*4R*=Mghijy|_^~l*>pzNV5kM=iB+2N^Mqch^N*OBKs%H9%}#UEhG zE++lml&y{`JBG4@l*J!6(wG~~(YcXX{5#Bz=F}_vUc`6Nz&hwc^w~*0oz(x?xPC9L zUorbLsb4fH86x`Zp{)z4TXO?!?U?W9gp8}H>oI3*^cb@DL(RHKS3mD3y@$FUE55Ry zzs6T4`+hZbbphW8;(GeYuUP&0aXrjkO+8CV@1mYbqhPv|I^PCN_wby+v%+&6&oa-k zJU8+j6Q>`?^E%$!<7XSsMZCAh?`fX1c~A1}VWLiQK&J>f&Z8I+w~kZ)+7IoAjuXI*o(t9cU7mDOH|b9gG= zr?K|wn>o4sej_&{XFSaZ@LPGSsH1>iX%%s>jrd*74IXm0M)I}j8*}5Vd}*3zoBGcC z(eN8<_)N+-N2%h?(JzpFigS{#Z^-3aSc}w}$g9caMx4`h){T~WH^;JdIlpg<_jRpm zw1NLZbv9%#_m9Q>uqY!x1o}R!`n!SEa-m6m2d;CVA?ZlzX2tX^ipT4B;9v7?;Zc6Q zYq0x!<%cD&a45VcD$I+f;_nB~k1X2~O|Tm}wlD#I1-kRz7$2fP@rusB8h7SE?YA4i z(_o<{f5NBr+tHfboch(18nJnu=*i=FPddK+*-1XuBzTc7{{7(t*T}|Y|A63^Z$SRs zgRyRDbA>tjN50xzXd!N^N17vcA%Cgw);?WM|d!` zBiv~{NdJhTOYAW5-^XPKUYrY@E%Y@h-;?`=NcXxc&)Z3#VSND`f&2PAd{6AT<=jGS zIr*N1hZdA) z(7Q5vq=LMs&#F^p1mj7xr|&&^)(i#>4~G+dokO89_+q4eE6Rs&oH6(!_bxCd4r9RD zHvQ4qG6p6tGP@7`#5}6rKWYq8(1~l@Kf4eCDb`Re^McQN3_1cch>q#GYzqKWLKmEm)-18fwhb|8<=lv4iuO4%GUA9IS zc{68kO_L`p*e&#E(z-kptu}1a%R|Yz#~D-2ZTC^nK6I6Mr#XjxmiJHpTJ*}4UJFRVDyLU%$&_|YhWk)z%9jG0GM{IvH z>mpyP9kh3ZccClf4-wxeR^uS~{+6+R_9XEq>j;&B=vv+%2WHa;e;^V(60k<9`F1%)~WYUHc{FgtpeABaoVY*4XT`rZ-BPd zeq${G9W=Qz)H<~?v^>tAXm{#;{C>B4eqzws%ze_F4|<|M_Mn?M{^Rb;Es6HAb&qp? z-tApL1mzXPz;LD&cj%}etfBlY4bNyDiN4mQdz0?AAu}h!MRz0xV*Y}|$Pp}96{NhhO^!R|;lc`q)9VpC|!C zncs}j064Jn52MdFN4igrvseSI`&xtWdDUOWdcfLK7(3yoy~-KLVAl$8{r*a%M(h!1z0~PfzP`_d{PU=Y_nW zcxCpJoPo|)pLf!C&A~Od(0;;6>VMe}-w?y4IJhQUnLpE)DRCLuyUj8h*FS}`*S$*r z^M9uQ$L?P|yAt1ffDPN+BlrinL1t+$<0f#EE74aUex%4}uA>Uh` z{kG1Q^bGM#9@>C+^EWlt0qla}t`tiKAH*_4aw_HR8cJK73C2Ev8PLAsR1$;Bf>imc zfDK&-mclDAAh?-WZwE&uYx9JXw>d4ma$ffYzKvD)m4+Ji2~NRp=###QpCzXfd3-X(tAbR1 zS#VEWuXwjHp2!DaRXcx3n=zagck38GbYpMnzkHrJ-kl9Qy*V}upxZ_KYrizOHS)+V z(?$iERW6sb!7TF6JeiFRf z$j_{7a%AfsxAeZ6T_PU2da;R-B#+{KMr_VfP^^;8SrE4O0&(|>``CpY*Qn2-jx6|Q zUX@)yyRvm{rxkHLr=DQW#2h1QmpQuu*cW&{YXS2^?gUP7&ZRwsY?KUav_kqpZhlG`=y#XbHAtV0032Jsov02C8$r(NQ|b5Szf` z>@n|B&Q)lfp=$8VNe6L#L#FQL_~sv-p!u3@6>9JgT~pb45qe}KUu8~zAvDAI6yW7q zz?Ll1UKtuH(T@uMv~R`ynXfiu0~XZ(hP+2&1LFDFanu70j7MXBwiCHSd~^M?*!0p- zW`36Ed{bm;|9RX$W??&!CspaM{R{D#$W6)KOqCZY^9^qSbk*qXm_H$`;ENt6@T=k3G1t_OIYW@f{Q3m2b0uNc3m} zw_?P!4m2THS<@Y88dt4NoIq@>>KYA!E>FWLB=>i9sfN5 zy!k>+e!kwa;`KSbkc;Z>$$a$K(u86F%=B_KE=jfm2Us}^N zv2)OraI14Ibe^H+tnzWZTE8BO`^6mVNWXNRMXu85mtg#o>DL!bzrG*$s|m0A)r8r^ zsj*hmg!SvM0_$)SR>f=O8|SxS7nykl^i)4Ic58G9U%1BY2eCZ87P)BWCeSDL<)Z_~ zcr+$6`|_S3Z&zl`1M`r#*;KOIL}#*yxyWBjv~e{0y}`rfoJMZ1cT`$K!A zu`VvY6#XoV%W909WyK3B|HsP8<`V4__)ereKnrENreY|yc^v0PF?APxOYXEp}j&6Xyva~DtB3vC$`f<(LDK!VA*VVApI*79yU&u<$A^TA8P$zZuDTFe zRtOJrKG+X{MSC!1AEs$XI_ieKhYzeE{qER5p>qW8l-`l8SGlxi&gab|n|wbc?qZL0 zxA=0+*yY5T!>{yPchzKM@6b-tT^?xffW}Gp+#W|8E5Qe{y}sgGn}$-QTcd0|w#w5S zTiL(Tn;Ki$ei>x-lvgo%WhRHMH6?%E&7ps&FUSroO5_bLkIjOTv(y-Xa!i14deTp~Vig$$4vO|9*gtOWle5ZayDs|9T^D?ebL(ms zTG;?zHs|vTi8&$`8{DNCJGCPlw2wAg7`rLXKuxkvGpR;&9|fX zS6vY%^6~vu$STDEsUI3s(aRh5v42Tp3GJ&r$-A%A#nx7AntT+O*2_~@nsRYK!@4!< zaQ*sQv>(kW)HJ8m8O^6KH@lBB3WdX_o!l(@pYT}24=enw4n!l@PhE{Yx0EOF zy|lvQ=|P`($jfiMsMyDT?C6cr3B>3eg##b9iM=UD%{1xhVPx;Edk!B^3_f(s{6)Hf zyEI+)AVEu-4+s}008a{8Alht>wdhAQB3){^tgpHLxQytIr~LQ$eX}O+7<}E0eJMP@ z41K6i+Fzivr-oiQeBfWywlz>&LRy0L9m^{aKT3Np=M9o~KIuAtZZCPYzrkiKWiz+0 z(_Vmv%`AKQM!qTkMDq7g_fGQPL)t^J?NNnZe#ie~{3~88!#aq||FgWy&K~Be`Ea5P z?UoF^g`dzE6$>@^drwP&J8Y@nqU~><<=6MozV=+}o(>D!K2u;H5A-UU1^(0ineVA8 z`JpG_EsZY9yR{IY+&M?E-JwPPsO{vO1bb-=;bA&%@@TtlATOe4F-i)U7idkr|xl zz#1U9e``F}jdjL`k0c+brD#VoAyr&$d zvr%2%p}#KK?~)sv*B(Bwh&zftJLXc>99J_Zw@wqBJ>UmVN3EN>E>~SK?CQ&M-ka@e zZ9wf;W7#qVy6E8_n$~zTr}pbltvfujjsG_O53gnIkN<%^*lqO3`31f+@Jasq#e5h2 zW9J|7C88JbPd3h8m&~$@)S1Ulkbk1UQ*hDuM9B}|$(Y#I_&TzPee~na*nGRn*`0A7 zof$rQZ}l6=ud>E2C1(7uXrH^bOw4qGHqrGpjn^0Bv6g&Sz0CL7+re3wq^tgE&3f5m z-2-1W_gJ?&MeL}R!9?=u+z8A1DKY`QC|dv-H+sKyNj^FHr!yIm!F6*!YJPw_h8wn1 zrh0oM-ZFE;BKD=zTART>YMoc17(=7uwNEDAiw-^5!kx}&R9oV2^(74~w)L7AN3StB zy07}2v1^s5-0Vxd|NKShL+Q`(Y}RG=#d*@V^u=lHMW6c$9KFWiNaY@(oa&ccY3@Vs z9)+V8gQFF}Zt^v7^b-?HJsLN%FCKsH9W}G&R0Id$AyGCqcHMssy8Be-js^BZ$Gp<+R@( z_-9jp+s_Xl_y+M6@*RAQr~C*{yk(%~qQ^YGOU5d%h1~u9GsG6h-#U-^_Md#qyos0_ z(lfxUGQT3tQoi{8CEgF7ur>P4DUI(Vya&7w$M5^&_wg=gAfh)_M@ZUq^zmaqr5qyY13L*{r~OfbDKNoo|or5=Xp8jInQ~Hbr!L^h>>kwYKP5d z_ngdJ;(5s&%IUo79ikr|GjxB zK2hH!JxRMt{}cQf%Ti|^-bHWdj;kbPG=J20d=AmO)ZyE$iF2d5!vVYX-PBhD4&)my zxLmt+Vwp<^{Zkj&Iljjk<0#`jK)W4&y9lhN00xBBUj+mAG#vs%f;KdF{O;SpP(Kca z%Yh*tBM$Nnz>DsW(6+|w4SbsR6Oa93zRQp6yN7+3|JE+P&*J+|zJKem@0r1{$n9{9VbRt_%n2^4)0}8I zZG1p`BiTn|_-+xqAm?0i2EK7q^R{I-%Sjp(C#hbIYbUbd$7bhcRL<-Sjwo z-LA9D<|;?;3EsmeEqr^Dt!@n<%1VbTxHj@h72|3%U$?_E#rHL`3>vXQiw7q zyynqqHT2iV8pNBYE_NP&fqiSqeb$?@pNP*~9Mx@be)%+KWzaex(uZ3$1VNj65{ zH{wKq2i-p=Ke9omEjQ@Awe+A&Q;ZDtw>`Vc`FFv~TE823Ynaa}Zk~Lo6ZzHHr;!EO zo1NbW@gLF8>aTpL+mU^@(&wY-vl;ecsY*z}uBM(wlTS3Dy$tm|NtyaHkr8hGobx^Y zYF?*xlEHj9N4#hD6r9b_$UeU5?=STiT`xL;u34|=%Ngp?-&0kdv{V+n(Wb^rbFTOD zJ)UHJO<#8TYl%+ghSPa^c;@irdFJyB@n~&vCx5r{*gUWE=q$71(ZnaP=HN;2BzflW zY~&f{Dd;b2kP-gA$rEMtYk0Ok5;08vHu6|J37#ZR8@^ZFFEpbx-@T8C(TCwyqVDtby} z@iWd1IUi!4*2`Km!TL0e9V?C<^J{Ki^jG30WP;9<7VfZ?%f&tu^fa&<4jrUTXhZb?tyo zcQF1N{JOg6PYvr~yvAMLeTcdv<~i7t&vWn8P#gsO#>$*kT6QPpB2yRI&)=h1K^N<6 zI_s4k?w;8v>EjCOEsuu>r}Tdy z?NZj2^##cw_zYguerPnoIOO>|?D_1rs4d+;e!|hOO{GokEl6g`XLB{};-h%r_ey?? z2d^X_=TbO(rLn0iV-IQ?A6vhT@|tI_C6Dmi2YzKM(0)R`ptwc4b9wL;;Zv6qB~%q%T?gJUw6Uq_bK9YJ|I}|1q&ruvuG`b zZO>h|uqG>quRDI9VKPr-?B3`q6x*09YR!{i9TMCFsyI>7*$I4nOzP6yMP*nAYVWr+ z#V@1y@<9y6-KIMyE-MD-@3E;$p8#>yPH-%|3zv$iodDOmr(Q71R&00n zkv*vb-=7ZtM)|Aq>Z9&LxMPX;TX#9_T#UWg6pVTnxM#(qZ+S6+-(*aJ{wJVo>L|Ct zYxny7#~%Zk)2*0S@p@npPNu2Psr-WoC1UTBMw>C+OMqRN^|;&LgR%FuS8%>!)!gUa zPej}_!T)>U3+`gl@89xUehF@@JlfFROS-Sg9k*1@xta08XR`E1Xt7>xf_uTh+{=YQ z?FVgZ{w(|mwpeJ@o}tC?H1C2>_`_EDNF#0CNP07Wg`?%*sKX!U&FE6~8Q+*D#rl$; zUn4YewT~0__Nwa1`(5%q3=h=%xa=cVhVBZ`Jpu0BbhcuZ-Zau!xUn?JSV6pgYypg| zPlx5Gy?*ys(b*<6?(UH%p-pI3V<6j_;+1v#ZOY~#*&#oJc;Z2DIMY3^$DFK=xTOuj z*oPT=(f3u*j`np-;1{f-UzJ?|%p!cW1h1W;14`kiGD>h$51|q#bFHR z>#B*ZG0OKE?*3COjzygB2tgarx?*uWC^?`pjt>8MEDp*4dh@o1c5_L?vy9O$`lES5 z5;}Z!5py@>ljb?zypZ|oxbM699(TWc@jCF4@b>bt0aOq}y$xA|uZvUBG+0WZgSE$C zm^Wd!I1cVfBgdnMUBm2~+BzlXorFo_SwJuL0ozwRzx%6mv{g7+9c zxsmjvd&=~ole(#EGIdRsEm!#GcbMN{*_HksnbpU9Q|)>Ch-)0TUCZNF?Zavwcj(^h zQrD-kGlATsO|42kF!%aKtmpQ80D6U2 znhfYO!u`7u>(M>cz!gnA$3BPaZ`Kq|f&+6o@Zo2Z=yR0LdlPprVf)zX{14@0NpJ<6 zvsr5}*DOB=j*V2Rq&a}nQ=~^pe_H9-hmRv&Vr=GCj=rs=wrAFK$8U=fGU? zEH)i@CfG;Q{5MK{4^WrzU6I6|c*z%v|2i{Y)Hzs{A7OqZpYRahny4e1g1^Dn8oukS zO2c9GDpt4X$4YuMWU%LDq?hq5bfP?NtRw1`4|lY{Pfq+8%lo*-U`9%F+W}BM3w&EetNIQ@}u;d^^NwDwxVaW z_EbM`M%b%$s@_l4*inziD+O1!JC%#64A?J_t}^p!E2(nO!gSjI zBk5u4L*JJl<-KCsV5ytF3J;CxRj!TuM=EQ%^4PWUjC#R-&iZF}f& z?h(92|w%519wnnE8l~DD4+Tw{0g6XSANCxP#MLhUQHRDg{ihYIMe8q zt6%nb^Owl#rF>W1%yapxzI5>&oV$IxihK#m{)x@HBsyXn&kmklJk31Qd3t#=JXs#C zt#qzs1#6uZ{NBhT|ES$s*QA+q`+99NxxZ-K?hmHFTwL5OybuKRW9gO>PwCRpr zbzNC|b;4f_aMi#!J2;0S95F9L$A3!arJ8JwH+y88=$F!THlem^@xJ#{HUV$RrX~K; zUbpN!8vo0o9j!~Z_aCGo>~k&+?IIp-Q0Lv_XhwDY2D-ipI#>hU>=tgIn|1u&jXzmE zGQBOgm^Ig8>|%=@`5ubizzO zX+VqD^Sx^vEkz(VsNtiwe$I@f3 zgX2gVzeXR=l27iQK5KT(F>3PIQaFDlnyBV?BWo}9vC?86kN#+EG-uI$L0b2Gf;?_4 zIr2-!BVWrQ+R{A{t`3ph;gPMOH*>SosXCGe@4M>Fux88;ubC|NJn-AQ@G>LoG)z1|5rKz{o<}L~H%YOJK z`r;q`J|8dIO3+W}K|YA`H~nkx2ow*|*1@$7_&y7|l77@!YwZvM7p~6`5eWQ<}ja7`h?!(1Dp((*$LZra@D$N-@^2(Mc*xH8II)5ZzOL}oBVy<-0 z`x?e`PL_K&zd*S@b1io#)t1jCPj$w_rSzzH89QDCIk`4uK7(x`U(Q0)*X!=ABzCvt z_TtAWUzLQ$_-5Gn*qpV!81;XLve-@d&Ai?H{s#Gt;QdU_!0I>akFOft5hI)L4`t&k zrDK^FHGK_Tlmea|l-F9Cd#Xe1nM?~OZ*daYL8twapT69l8g%r%g7u>6-f{N!;#BUm z3MGeZBlWM`5x2d#%K#oDXUEKM*dh1?oP~CgEbRe*}IMNv^ zZ!cn*GefeEeTYfm3|l~xkwKrB@EHDlx(}xk_$m$QW@DOR&18-BAZrY4ewpRAa4DOa zeha_)E&CQ{V?4ZpXW=dG|Hl6>BD_`jzrka_`WN68_*O-2a0?EX#O;PL91Sd~G7X`fXU)X>01r_}f%< z@jJ$RRDOxrL!YgppV5TNU*&Dcu?6_-+)KF$-~k;Q`T=do2W%JcDPDdgvBXZIqveku zvxZ1}27g}s^0}W@XNyD!vDA=vwkY{|J8Ca+_lt}qWm6&Mu1`6!)Qfv$tBw+1C1xFG z%jZhIW?kINN`JZQQS+Bs?z!HqF}YmH7)|0Y1&ytU)=|p*mIHB+AB3 z>8xd?Z;mUc7{`;aIm+LP@rqGTgYGfoZ>%q|EcO<1E@Vh)RTaA&IEWuWjlujRXK7@aP?g2GY ztK=tHC))vbqbkFa-G+19ybJzocFWJz>qpe0EO>p6d6DGRKal68mpq=bh*zSqgP%Nq zJF~wbLEi(PJMko9ku^Q}7(3BnC$U!WnZ`!P{=45s%*vM^)VvFPZUKi{(=yj6MzX@6 zXc%Ad--CPl%o)CCMdt~dcBVa87OugYGck9it@`5Ry^{J0_8>7R2A%Ivuge$6t1IwL znGLMrs=9I_y{tidVJdSDGFg7h?%aYtZ82Fpv6jPs-w9j&cBi$(g+X#$xD-t4=cR&) zeeV|FeS$UNoAgQe*e;yHqfz+)u=W}s+xF*tbA6nBzq?xD&-c4S|5sT}#OMM3$C=}3 zt{@)(t=(%#Uli(h<61oDf4dgkc7uyH3;hADwF8H6E`6fCQ1)K!Na9jkJ`b!Hor}ZR z=%`C~ieblL{xP$7S=gAS`AkIp%3u%AD=&V{sadvSmav~@M>6@MMfpv@UV;{lVdQ82 z+){N8`hw1otD~HmFHKmPFJ5c?`sE4GQUu-esPZN_1Ay(7^YkV0m3(a3SFpcLU7^Gu zoNKc`eR(N(-DKUu`TognJOJ76Hqf_3UhT7<;k)8MViR%N(z-`_R+07GTJ=MH_#k~y zJP#{NypNpMKYWGlaB7YXZL!aFgX=SWH1Md5l%@X?(3$9^)m-7UC0F3r!adX0GFN_x<|g~JCi=P$9})Ef`o}Jc zErWKqkiQjMVK{NQEjX|h*pgMcDm?b_wERW7%eTO<0ZlETp2ifg=R8}L zOIz5hlgz{9+bg=$US6l6d70qFyctAhTBR=)hK$0v8=2Nde;=YDSP zg`vMG`WJ`Z?|#LjNBAvPZ{`|$P56iY2p?ad&ZmfXD?W>`CShNqsS`X(rif<5qso^d zpX9(c^6Izv4Z1CV|1Dx>Bg0~>VOywEeL-Kj^CIpQESLT?HZ5u}7X*9w=4J_wq$E` z_a>&v-@iKX)Sh<%8)ci^-@}}C|9pA~sU-LKr+Yo6Aa57>C)( zeBBkvd?amiH#*N8p1C|3o<5#=Jo9<36CZ=`w6Q$~uUEwwyWaxSeZ^;sIbt}S#CgdF`NPY#qjF-k)F;xS(KheIz7JZ72L|@`R(c?DCC45@cH}PUDk*|e!xqk%z z5^(egd@8yx(C&Z!N-~PO5YbE1p^s|#UUVUPkgSp13qcnZz-06N@KTwHeXZc40Yp6#Ce0C7dz*2ERoW%eJgCtl7lvWNaAfi*aL(r4k@ zM*H*V;~CjV3Hg6Y+~oYp=?m>M&b1HeWpP6ns(Z z78E1HzheIPt3Bsl{i{7M;m?7`CdT zzy-m!59sKVIp6x?$%CbSd=Nx;_Z(N}+)2L8r_?#kw5b?VqU&|oru6-2(!>)v(v#S| zF7svb5B`K-0^_GX7%Af4OzpQbVQ7r{#0#o#&EsQx@hKmbu4+m8Jb{i1^wC6nwk>{8 zJK_!T#Ak_7?8-{`fjM1m!dlj_;w}7v3}TA|!{iaKFWmFt`W8zkypFGf+E~N-Kh(Cc zEM1o}m$^DQs9Q398L&w2wq?=Rz^L`PXtfHym+eFE>idVFE$LW;eoL=PpK3lLeY`C> z=)4hrusD^vlIc0jk2&W=nM%rwMo*)xbyo2te6)1#LErwtO<#=9 z++z1zIPIQ^nr3A4<+G5L6AIL4Gv^;(!Z_a!theJ&c{{cho>abQLUYylQA{%abtFb! z&M!4db_VVKz3PXDA%wL_>WusC9__Zfly;XwhZhvXS??@XEp3MAYm)vw{7(1gzxpU!MbbjA^LGWd2c4ysulQ2(C&8iY9y%K#-)P0={V-`=*c^Iz?&N8o z7%_6beL`!1ENQ_#T5DJrY~lBj&U$r*JiGjEz9+~xoo5cu08gI!R`55+w=~aF99W)D zS|9Iwc$e)ytUFoL=arZn6?Ok=yX+m($?O>vSZ^Emdnm`61pDF;^f9Z9vTF)|*pwd`zVt^iUxOzteVbW+jkImoz2)B98u)Ki za#t&JqAJl6@}fw)#pc9d={wBPCto+T@1f;~_>TjR{v@BLUg=-&w1>HT@NCL*NX2MzAwf z3HD2XA(S#pN&T%RrmkSju>Z*%vlYB1XhVI`+#zP=r-JWkVe4``RL#2Z#QgE%L*Zc% zK8ynQ>-fhqUlE?mr~0rzOWnfXi>!r|pL*PJ01st@^{@+9DzDh4teeep1?3mQV*~tF zJ?qew>!^2%U*CFQ5B$h<$C~gE_>K*rTQ2}N`02hq={fbAHIl~D=>;$Do_q#-F#UN*cw!BszFy1tF@|;W?~vb_ z&Rz@dH_SqLZhx%43trXU8rtjQ+tYq~)vANC7390`{+;-UuwLTqdd=2_#Y)B?I1fTy z#Wd~5fk!d@V*J*f6>gjGi}HS$aS|VDtd8-=rH1yRw5N6XX1~qF;6~#iUG=}wCFM$w z{>~f!3DgNaiVpF=8z`AJ=Yvg;_UQA-cj!X_eKdqlWGr3!y3KF%bjn=LcQb<=$mWPk zIOIJ1Rj<#2T|RGa-*tZ>XJIPnpZXr+jJ0&=Bag`kTW2)$#Y$4+&9ewxZPWdMK*+n0Pzra6Fw2N<^>+|?( z$lE{qHn98{U8gY#`oD#~ZAI6v!8RB4z1N55Y~YbD73{;zZ+}ABjnt+7#w=)qO89M^ahS@)%2Ax8a_pR@jrQf zaq^FnZF7T(`PcfQWwG--G8-o@Vp&oF7v^IQ7{ef)lvcX!V~ zx-^$_6qA=Y1kOY7sAwvS%xYwh_&)@r|9cI;f57i^CNW3!)4s>=nqlJD8rLz-7uOlX z_8muujQfn_t?10|@@3F@D4Q?;X8DGFyRJnB#p0dFInC3TE%t7YvIqlu(rBH*dyqoD)GF>mRiCYTHQzd>47{?TR>dv!FEm5>I?^K0eBG75#?L5m zqiq!HoNS`b`IlGo#aWLD?qkZ(S|~(pKKQ+kypgcEps1Ld)2oMHOT8sLonL}p*uzxc zW@%rjs?U-=ls;5XrjPQKF`7D&`T7n`GG`*4e1Bxm#7K0PeoOgn%YXcuS=IQO;@Y}% zMfRD5-vHmjuW%m1hBL)5O2WIrowve$Sa^q5jnHJ)(D?kZc5Y(btThcWF&-oa3H1=y zEEIOcZ}6rQ85W+h#jF{2PIl=Ih=PB~uP43N{b!6t45QhXQ%`;TGV>nfj0=+q4Vcit zqb+kcWYnAnc%dYy}wqrqq>ltkGL?|H$K>8tNwC~7(YzTNuemS3@o@nw) z&Wn4#Lfgb&l&SFja(ZY(vE=vT$Fht1-zZ?mEzDqlt5;|3mqn7;8mF>{9vq%g3Y3$uLnbc!sM1vQWWBlHww(;Y5lQm$F zj?ZJ2nImQi{pf^WBJ@GF9Cyw78*lxs^h(l|79}l#?lW@C`_jyp@}5sqEW!Mb@6x@2 zPgB_MJMbU$X*vS#mio9G+veeJsgJuaABMXw!R_ulTv(KxPK^8g5Wm%a3uS_ShWOnG zJTp~K#*0O$a|7}xl7EqWi{!_l_*=~tPdP#SZpDaIz6^fTCS$Zi?I1s-3k>G4q8a9a zRbj>>l!V?aXdtz~u1QON=)8Y-aU$Q%1iWGF+#NP$=ar4gjjhJLS7*9D8Td>!y$cvO zK{F~Nd>Y_d_F=VGuQrT98ySQwy9^r1mVS1fcc0?FQbsx;LTne&0J85{BMB{&cA9}d zkGbBFkGk?GZiw>9zxVg}$(ztY2EXm$EHTE2Go*XO<2L92QtO?iXUY%wM&kVqj)1dr z1Mq0v`5J*FP!rk{6%z+Qaq_xpFQqeEuI}PCGQw>)@U9cuz|iU9<(M9 z9!$nOqdrkabsxmT1!eaCU3@gqN8vP#JRFacEI3hl@vv-IhvUQ~O*l~;e9v$H&vBwY z>Yk%8{cWdT7B~{05?`sLu?t(obOO)Q7>gS7EO#w~Y^nA7I#@cBwgt2Hu7$UX^Z@c% zac;VcPe7Z0DGp9nAN>ByUsGeW4f(6MC&9f7y^NR69u0uI3jF@H{+Ca=6-yZ(ThI9dc)!$G-bi+D|G-Ri3B8x)F^LYQ&(FXE+ zB4?W;!_m^2rF`uq=+ZFq{bA!*wunbfavxwOwcK+B0!@*Pb3|3Hz&U)h(!P zPJY7qyWvkbJ;}kzVRU-PeD>&x_JA2l^iOU!Khc0*52;S%(=udMsRw);#;!fm?aV7m z&G1Tu7*BPyMGUYKwl3_qb>+?^ZJ5%J114h&cC;Uee&Somcwo1_{eiqa35_50LO+|W zvz;*M#BM5mO#X?`g?Oh8`qF;PW6bOITeeH^5z-m&CipX zd0}~y`}g48ZpyE_{D#Q)9r9;+SK3{?tL>?@-Ma(&!Y?U^ja6w$kL2B$Co3qofxNFU z{_@wZ=eNGep3+HOYxt(M$2yDqZs?zARAFHVSWjjLOE&|fbQ|=36dwP1XG|v>@ z=Znkuok|Us=JUIP-;4R38ryUdFrp zm}}B%Z{Yp$Erj1?V_G)d~Jf?$4*{iKjo+CyV8*} z$c`oUcE8OMb%+;&G7piiyjSp7JR>?)90%#aS4q?FMvWaZeKUM98y=W_tj8bj`Z)=Y zXI46A6Q^U+S1L<8j(?!2vr3^apIbWm`Y#l}eGTIQueTv1LwS7Qj@w@BqTe;AFjreC zJG){it%6>bj--r%(rWse9Ud$t8N>b9JwmCE%FbObq@mS>cLsWZJiG4aTjF<4%o;%M zd1rQr>%bm@u}rbUqlup%jsBjjy@aT-*bX(#F6pf5oy_f83xm!NsYB&k3!W@9*wFTJo=g zpA79wBNvzhM6G-=Sv5G)n8oJIo{xBL=e)7KXLDvhD*UpB*#T~3_canvA-B0>M!ze( z-z~xK(1GuF#lP~xz7tvZ3Wpk}J=bl1O?Z3E;{J{t_O9#R_nL9t;J&ZW*KZ@&f_%!O znEjI7*YYh--VJ=G55?n}jlGRpM^k5xJOg|?s`|`VRlmwrUiV(N&MPRlk}`r};t^ob z8M*1>V7Q3ZGq`^aoDVVHpZTT7JD)_?RMB=BoXh^(krGAX}PTR2juGn8lW+%sz`H+#=>6`?uolO3~79m+Q zf&3b81Af-;X@Vi=y@%a4E-J!@l)1Q!y~aJm^CoZwWvVIj0UvIB5+2dH5sj(N@@wrh z&p@Y8kNPQexEr$UIcv+AL;zI z`h*^2P2{CrOp#8j-c+6W*pHYHLt|cFEz>a&hd*BVsk)4$37 z;*nt3AsQ-Z&-KV~)Bvl-py{uK!vqJ&I`+?yZNQttHfGZI^cLv`wXf$Nbwl77WY5(f_LbSB;_+k3C-I-9>jw~1qV>7OrkQgkjsIiOJ z7s91Hf4@l{!*~$eNZApMhnU;T#u7j1E^_ z*H~}7ESz2ge*cZSlGJraP*=u->3zUd>BCf_E_lMND@k3geqGmC|NXM+Sc9B69om_W z>}rP>We2OrwrkkXZ9z7il_TQ88t`3-{BqBfgFCG&B!h)t*~k=^!LyTrSIv`vJ(Pil zQs}KT@nwPWJ@vrRvY>b`{>Giy+cSx=myZWl16c2Y_HPGP*~2-L&YE8Ll@Ln;TGgE5 z&uQO_<6X(O%c}gSIOK#}RqOYx^3%Oq-=U zq&;}mmhKxDyovN;&bzK^Xi2P!d1s`&a@yO7SXbEcJ5@aM?(~r2w@#T5{bEP{6Wd;&P>jkMS1OkL{p0<8|i#qJ9vs34NfKXXbvPH9Z8a>oQ8u4!K-p6B(%@jfsf+{HM4JhIJ<2j9QJUspDn$R^{^@emyb@gJQjK5f!#F?9;Krj*`ug0-dKzl z77%k<{?Yy9Nik_^8G@dtj`kYdSMS z&i%mT@*MaIa5tXr1G@bvG8{T~?PVTKe8i=R_qsIkLuVo5cO;tlH^2VBh9->M%`Q!R z&ZmhrejR@eO=xVHWB%FL{vBic&wt~weH{O}FB~?u(3^{^A0S^}rXL#TX2wD5FO5kh z{5=Vscj*!EKMDQ`X!l5T+wGUB9LHzl>HSD$6lY#Eu2@H5^Gy8GjJ4qc{zW!x?gTV~ zF6}S|O10=<)86jfN}s0reQHL2h@S58`*AEXTRI_B-(OT;?lrd;PxfJQX=j`)d?)$& zb}%JWJfQiYyOWS`7m{M;8(Q)~%(f2#ar&A7*PZyLcGKaX61Ir!Q^e`XagUEnqSV*p3-% zH_kCM(rK=9xKpdBzMPS=*=xv_x|8di5PWW=wmV;@o+h`RfqmMCRXy)i$H_;iV-9sp z_$%s|a)dfAq>eYXioeIf!Ttnxtg15~&z3Cqf}-q4M69{?1MJ6}hGKlXccwkUI%ZTc zb=_}aH|<%)Th+Q=YnTW$?cPsqc=4dmJUvTX9`b`L#Y}SV!OJrDC0<>47{0(Z5Xob^ zq3sy&$3XK&hIo&}gl$ZbC$q#B-BuU!Q?bjO%6{PqM)GMVWG-Tz+FhPTxe&4Qm|v_d zSkY2}e!QQwGx)}S;Um@QxpqZ*nXTB%{JyIqp*^k(;X7lk*8UY%zWD2FH7DfEDRw>0 zGxRsgUT2Ja^l5FBJj&~k&yC@n%-Z-iRGq{)hYHv<6I&gfwb$MmXVKOYUw5RDGfXws zLfT?~AKYPQSyoLQ5$bwsTzetwX{V6fiXR4j?pg>wx{J?^jh&$LN|QLtg1&#mNb!xm zbIwF~gZXt$LU9GXy;sFH zG_0GP{!`co<}5-Z<6h64fHMfJDLALaS<_>-yLLnG4pQJVGPEtdnqiHwLs!?H;zt&(%H z2EW}qHds%dMBOh#iy`Pvchf3=&=%*6XxsMgfoJ`o^7YunLRP-~Yx*5EWH;o@8~myD zMT#|~_CZ2fE1aY+Y5JARIWg!K|CQ0GU;$R{*rjim9n!bgML&o4t)Ra3 z9_U*XnY$f01ef}!`W}`q0{64Y)~9|&>0{8h=n?uR*&?58)uDKF>f2`ZP3N8xpJvbY zTKE2fI5bBLb9X&>H8i9AqM4Ap&YtbIe;4Iy3ecaAYtfeGKgw4_zD?+}Z;+=R8s!{V znXzR(B^-X*4&YGCe)aoQ?rw7XMfoT;_f?dO^Nlm`?it%Hrx1gjwZGbmSspA}N2`q5 zSweojYb~nvX+OUew=2l+)}6e?`RZZ$dRfzl@Pm_WRO>sPwLQMxt21gou*U!|o2(bu zJHUs5yDsp18g<8AYmL12R6P0(8NiKiTsW66-f<0QWWep4*sVni=<@P?*lT3#{4}&6 zp9k6CM;{&A`+O0^-;_US zOZ=uX&-*-f6y!A8pfG5$2yGM5Jk4G-KW^8miwr=%Dwz1{+ zkL@Ma!05FF;9(5fn8QW3uHfvxr_;9}CzlG>zz-je)}su&ef#+C_n^IapS}&>SLB5| z=Sx#A#Y1`a7s_dTDkp;PYV3I_W6?+jYup-ppwy4g$3520;wEz^_jT_)U^_il^Z{-{ zEenelJhIvPS@AyZiYI>0vU`&|wRZx&EOJ`NC*2|Yq=nuylZ%|Mpx>+{V@f&wJ`tS6 z(lbi2B(Q)(>{$4)^%n7aP;7#=M&dnz|2B|h)^GSm|fr4d_r$bOQ&wkI8(JCpvK2p>0-9?3q**{CO-n7yFXnjvlq z=@#i$a-j4qy3R~;HkUqd7xA;2-x>yX;?#^1dqw36;CErR-T`KGZukJqzi|6>2+S@# z=NDPyPYVYy@5Tnvz5tlHJC?g(W7&oDtH*N*8h&giRB+d9jPy9) zD|7r^3cYkLEl%VvblF{7$Txv+RphCr-L@95e8gU9C-??lnY%DQ0zVeG#J}r4_1C?- zN%Ih7_`T4DMOqDazyvmR(FEg)zs4f`b{8#L3N31!7o!`#=hLOuAPZkaZb5(2S-tG* zh$iJ5L`)sc^;|#QHtaB3gWv;LrL!>+aNCA2u>6}Pqd(@$PVtmtU-q)jldPEyJ*%!5 z@5*}$e6jFF<`g^7JCAmbMgQ8z)O}kYM|Lvr#m9)bK>>dp9{K7<3+tVn z&3Vv_V)%Rhd77i#m)Tz2Y(G}~H+&oWw042VnFmz0Wq=bq<3}Fw)}P~Tq!si-aK@RR z9BD1I1DFy8*;2iBq}N=X#+isPZEl9w2WgKu3@)E9$c~L=7mSSwuilw1^kkAgW{`#8 zw*?qPx9QYsr-08Z_(HUu@A`V1E!^?YelvEhnZ?htH*7XFzShX^8q!0F%U$~%{;PMj zfIHVm7W@Hw`FZrq^XQir>}=92pZDv;m#ix6-hF|e=5IFKf-l`@{RI)Da6b2i^7QfE z&7=5N9me8P_`|wONijiIJKN~f_;#|P4bIA|soz9Dfiuxao3Yy2jz5LYKAlUO^7j^f zb-|OuX%yJw^~8K9zi1$xQ9O9|`>E$NWJfdoGX4HCuYbhgcLm?Y&+n&R^MuCNgb&G> z#+F6k1{pT4?}8gTEbGjAJ>LcU`0t{fW^-{#Yb~A84udN<#xyiEo}Tc(aquCN--}ZR z%>{7R1CQ`&a8_IVras7qr9Px->sOgWapcAkdk1(zl&z-^!p$R;b@RLTQ5_0*qpxdX zz`g&cV|$k~ZgYJ7AzczT{d>Z-?uq9{hy`KmZ2bFWJI#8uW~BL>V4QOFdE7eaBv+PP zTx9)pU>&4+wbnuJ)||O;xgF21u&Y>K(A2Y4`1*xeOThPQBfu?t^ml;0inUGDxXM1b z1|k*(d7^w*zKzO59Z~X$4o?Cvp#*CnVv8cbkwe}(>fpL&^?`K_F>Ou=)-{x6UBfrl zHSB}4cDhiuiK8MjoquK>Q0Pm%*>64^#S+4Fd| zxgFnlXcZc%WlZZL(C-PN$=$5O@yl)%o}fFr@39Tnn_@J`(O{}|F<(dwW_fYBW}-9PH4ZR{ z)k-Zy zKS5nupU(_*7&d@Pem^X@hHcI?9{Npb*Z@YG;n|JHMvYefcJR3Sg$4X9M6XGBH4S{w zaES6I_?ONTFY63!3r{$cFW*2Lk|D#HpSe0qahVk3Q{(lz+NXaN$$_wuSsX)PvA*Jr zy#M{xao>fVPRCTTl{On9h^pnawkwr&Th1@3e%=K7%-_-Uj6<)4-VM?*>0G8t%Dwhr3E7ED~{eEF0m@RB3n%-) zRr0}04`pEiP-RRyKt{9YE!}v0*?PRKS zrTT}S(pkBh?10mo8*tX6>*YUYST^w|*2G2@cyg>V8@II=X$-H5#S^zVnc)G>n6Gkb zs|NO^Q^b{|e5*C!?@xO7csAw+-1uq2SDG>5{@ha0pR4^db4$xq%oFCwvae;AYOWAL zpVaBy9Rt5!=9^8kr>=LV)2|uyE5*~z)5D{`*U1Mi3+42czaLhvyeATaXLbhTOKfC%~D*m>ix@^$-Ws?W?O>f#F=>lbygw?T_^KM2ua~ z-?|9;g1-eG&2QR}0r+#5n6H$>HZlPE3nkHs1#jLO=!r>2-7A{UiqEvSDY+Mg2Dpc; z_)p-x4PKJY59oUa_0BB}mXaxtZ`VMhdE^Z9MwixAeh6A=&M>~lidU>8`hxMCmtF5X z0lsOslz=vjG;``<`Q6_<5~ckP($^&vKa6trpu27x!oH$4EOrERQ;+NcRe9*b;QmXU zq1G64)|4Zcob>@G8lM@!JATX#_@-I6HK3nO=4g|N=iksqTcQj6ubV{M;HND6Yl^uJ zX99?|w0fk)Kt7o8v4uW`PFj(fcWIrIRN3yb{5K!TGeB0s6>wlCEK{hhKhE{vZ z@8RzoqKhPL0Q(b+o#qt-w7Xg~NI%dMRg#}d7hLQ|R7DsE`RVBU(|p&r6_mNbPm7XA zX*tpc{4^T$`a@rsA4CSs4Ke=KsZS5nuF8Me&#QU1VET8``x2Z<$cheDjc8sZdYAw{ zGr&{@Eogr6Gsy#F5x!3i_$4+FBVx1-8LRP*kw@{vc5LzDExaz7Sj*i`zPxPX{Xdy> z-7`62H1aMzbt$qE*oujQ<`>w&;rB*jH?(KgJ9plX?lP~kE3JjLV60%iaW`_sNJGoe zOQ<V6+|kc~W}y>3%PCpeE{2>ctdnD-KUR?OCJ}Nzr^@;`)7Qw=e;AHB{mH)QW@`s{GQG@bb;I8zQ>MS z)=}R@lNy^g>fenl(t8Wk8j@j4V~jy#k0h{Usm@*-LCUlz=S@m+RE<=+PjssExapT`jmE> zhWvadQrAX5-`7dgoN|1=Wqv;PpsMB=>zF%9g!z#akDf>(W-L%F-@i(tpD(!`|| zjMuH`pgKQ}_6_?u*G8;}TU~s(b4v7F*vca_J)aWQqkFq*L|0FY?Ug@a9GN1S@w>U) z1t1yETtWE^+Ec!-)8_Y~?V#S>%*Ui(R4+CkS8r-Akf5$+>K4s*0(;azR%DCuSA|2ZI}GZ4?=H?VkXLiABy#4Pz?DT_^dxS89&T{vjr(>R z-)6htyu0GQ$hRKalkZ~^9Pa;5?@q5ycr3*;oo8Ts*tk2GxA0qMn1=bgnMZMqcJud5 zo>zHv&gn6w^ZXuuRZOG#yi5K!7r3VuzP(s{JIoxOxWVs!9C?)?K7EL_6#V;paIE<{ za;Qpl5uM`oao;lTZsQ@oy3CwSH6GMt0Cy z$0PltJo4?*cdZKy_&R!1@NMnLef~F{oAL4wQRkq$j?=v=k0KWj?@y?Cu=Jh+Ygcd} zdv+b;98MtrFQsmtI8P0a$z$BV-R=9EZd@`iMvCH%P4e4)FEEK-g1&xI{6k-n-%UBm zMD)eGh%dT^_r@Ik=C|lBciM)S=5uSN4#qb6`Ld*Kd5q}_=#M#6ag8xpdItZ27RGU15||R)yFk9(e~&!; z0MBWhy-Oia-8F`H&r8%|>=NEy>sIo8pKpzY+Z@Zh%^6}0L*`u0te;uR!CPU|!}qS{ z4bHd8_j%fFOy5TApxbCmww1-$wAkC>`yARvmOIlK|KSDeo%@(a7>Se{+jb7P)H-a9 z$(n-p-^35u$fioCfj`YZWaDApxOR;}AFLftl70Va#Ay=Eh%Rf4TSwgUs?ZAZko&D} zqaEp`ew#Bpdn&NSo=hAQ%{@bj3mo1xPiWG;$wnrowvi>YKY=|&*&Q_h>?Up3XUFzR)~oGMVwT$uzhmsBhxs1s zCU1zic#3zV^{;SbB<^><7cuA#^06R!%e*Fs++z&lg%$P;1ASRQH}bc`WF3|vM&dB^ zNguGkx^c90kKPwU?CY?;K|CPeW)-#8j{ukKUxxV$U^%ZW`;FlJ;GNoMr$cEevEFW-Dc{va_Cp==Ymyh!HDo>dh?(><6@rih2kB=T2LQ4 zfq66anDEP_X^~QR!mRQ=>O1u)KBU%g!T6Bojt~8ex$RJP2KiJ^4Sf?X1fSZIzccdU z*l^);`_*^DJ120jJ7Xi-{-Ccve+1s=8tX}u9)gDG=LF=E=3!eVY;Znz-`L)u{_pyH zdxh@#L>Arf%dx%diTTixrag__FtlPSPMT{sb54Z5bRN8iG{G0LuC&jK7|({`hmYzn z=L3x_@o_Y^*4d?a8asW4a{&BKfxk*V93tYaNiv$=ChSJ;%#VPFu~5=*I7(4;BnML-Q`G&(75@6+ZqgryhN94Z2V<*q za-tQ(e8BlB@{Ki9F=T14bS8G&nRWM)CK(aY9zjBJ>E*8@c)4qdzMpKQ>UL{P1v6!_ z>vOl|pz}N02zXF&cz(**j_1Kf^3eCHJAqL=7=j0{;CF%fg!JZn$*;Ax^pt*Ih-~O0 zo^coPjMc8{Hgfr=u$4V{i7z*dbUsv(&4-fUelGPAJEIiB-XU4_Q|yTI(07svO^i{- ze?QtCuZzk*q3w5{K1iQ*mjvqr@<|tBQ?8u@{KRW1PPcWI6j}ZmU}J1&^4B8PkV(A8 zT7TSs_!jrJk;foyg7h!24!<>4^*S*C+vMN4`FEONb*53 z4hM+Oe8rE(_WlpJ9r_3MMv--|QC~m@x`Qfsf0}pky4tEo#+c|l#jaEQ(oSFlSLIM> z@RfR#`Am*^O`5eAZD`+g25o51`y%it8KJeN>bW17Rc;9VjIF?_$cVSmL-aRBImxI7 z(HU~T61o{mdpHyyD;_hrES|19GO5xSvQzT~%@bT21P;y*zM?!kh-oN!c%P3W!Bl18 zzXnYRpVH0aW%rBx*4%3j?Q2d`3Czuz_0F50_HY~p$2G)_eA?#$(cSCBL(~{oP_IdU z3-n3-SW25p6W!_ek0|pPaTXr~ro-v(e!o8LI|Vov{GkGPx1m1+8nwYW@4~arxkmY| zeM#YbH?alPxBZ(Xx4n5$*kqr>JkQm~I=3Sl+{(GX3m^4p?}zm162>FPyd=ao%|R{( zX3aA+7QciZLfL%zbn-}^X-*)SRtr6-uKCoZar!;;E79^dsPAKvAK+VZKx;~kwZ`OM zsaNyUE%)mi=Vx=-$t}6{G3CR6!`d_N?p=tNrwIn?m|%f>ehYv4{%LR|z1c|L^*f<_ zjJs7(oimHo)T6jfXG1SFd~XCd?^7PWt1i`}^b37l|6`b#D9o2NSH6e!^QjMdH1Ynh zcTdem(oXWznyJ&}=PdhS**K!Lr+gQ&RFf_*5SucWucb3hJCSK|d@PfS0fydF|DFJ@ zPObC(*zk&D4&Le{7twoFN!ocAcpPT_EZpGh*|e)|dvSzukS@?&6v&>U?s`sw%S!sR zG_>5kk3h6~FXe)>t}3s2)txs9Cl|QufR-$@na$VkW_;p49@J--zsP?U`X~y06*Gisk@Kswf0cY&IOkqNn#r@1GtwK0Lt^rbkiLz4J9&ObIg>SeBahukS-vL- zLbjAVy7Mo`-+4ScdG_;t6BD!PywBiC@pSX_@bvPed1mv>;hD>m;pyXv@-*_a^W z4`+a#z!#;R)+THW{C&gV{z1XXlje-R?q=@;rZi6wFZs=S?qxp;m`Ga+EN_svo3s5o z(=WS&@T2qo7VoX}cgmu@=QUDy_PmfGJ@}Y8#X0v$k4MgdZ?de(X6K}5bIu4np3ZU( zKFpY;kdIknT9aR6t26VG8O_Lp4?_bL(EK^@NDjVeoH_+r(o>XQnCP^nc8YV}9IuV5 z&?`!7CvAqGmiE)SNITb0yU0)LChaUgZKj_#o3zvXw2%2|eWZ2xXEa?HHH$ML+L1-zIN*T;8Yryt|Nr ztI;L%!c&~te4l?D&nZ)!iy6OQ?SxEp=h(w?%)J-$}VV>L4u7kuGnh*m*?jqTewy+hNasA_Z%7aEeIt4|m_vLCn1Z>hWbd7{JFjkv zGw=96hbhn>_{$uaLxc+X@*MK-qfXZbWIg448NG8kaEExmg7-A>__|+i9$y;!Jy(ach}^Pu3Jy z?pvfO#zPBfEu@{o_h8{OWk-NB46Z15#P)i8ol(;O{N(!vv1Wb`J*fR=(wg5h z#d&4hq5A7JzE9wLJKv*>k7#rU>jRYu*7;wjp55frJm+C(09ja0lmEJtrkAvazbSsd zJ@;o*oPK2F!q7td2ll$+wlng?h+JsjA3ocjz94Jgf9mCSwm^J4a33Z;l2~dNC*tR8 zEo6RqX6Z|3aKDhrJ8Q;VjbU#FR^m$9v+ecH%FuB{w*0)ErtHM2%F}NvHZXdD^gnsPXp|88$`0_FE^%(FO_6pra<|KK#c(k6^ zd^g1-n_CZ0J5LAlu#jV~B{NuBi!aoSv}}Vnk966@>7tF<$-&ZG+Ud1eKLDTR?b_p1 zjKZ2E^YzrA^UuDo#YD+q?11Je+T*>Up~KL;&Aq1*JEgZz@#vL|Z7%Q5<%V_)92PpEcXyI z=arp6^%5&hbMx}N+6~S;zTM)lO=nVXu!nk_--ljzPyU7m#pUg#&J<<-1^lQ#+TT=K zlC+EbG{)Oa(^-;kKTY#K<+Dipq@VU9bb;Fk;Ahv%p@a73^EwGBQ1h4UqP{xM=IxH&{4gKm+323ig)?X|umpV2Vh%du z1@XZE>6tXNnmLpY)Gz5h@xeRsKrgf-yNvG6*_B%FJWn6DWr-DnKT68x95VGQE?qLG z`aRm8L;5_@d-8*&v_;HR_#&Q%ANVdG?OPx7=tO({T3gL=`C(~;_Ui(EV6VSu@V!#} z08OsjaVRgib{c55cN{MOYr|~tDOzSz9vc|%>4Ut0O)Qq8-?F858VC8{RcQTt%=bI} zve*e+KG+3a?&90i{<`op)Twor_Ui>V>lpZWX@g`{n)>b`zvriuD!)V>O4C|q4Y*Rj zehwYGFp0L)`3U?M<8Phdk~~}keXYoPw5u;f<&z6ppCMN>#J0@jYd^tw%rmhS+v}YaFnTdx&nr*N&$Z|0sL#xYDlO?+PZk>W zo~@`cHR#5LY)(Q0InSmc`a7BRr{KI781?(`aYine=2`T^QW@><-8ypH=-6J#oz{$E z$>q6whxI%-R=h;*6{=tQu5&pqodb`?cH=!`dv7HD?f6VQ7VwwWDO-0&j5gLLo$#IF zlm)&FTj93>8<-0DGW_K%E4_9{GMdo zGt!a8mw__Vc_ta(MP4Ag7;DL%8Kk9nx_NqddU?`3$Q|w|rv2oNPIr2+ln3w0tn2$w z`VDxLewsl$l26isv#qz+P4{9S5^c(6G+s9;eonxPfqZO%rUKoxbqD;&UU~++imrOb z@gcgiA<$LQNu3sX#_6O^=v}&Xh6xQ(K4~1}Ma6J?jQLH{uQ%YuEPRyZ+i&4h!PQN@ z+CNa+fliw3>m>Qy%%;vB%KQj?D8F=)(x#JkkDn%;q%`?Se$P*nPEwj|4|n-#{|Vo^ zeeiV>u)8`bKGoAn+6U2GBG5^N1hN1cmrhE;BjRK6ug)bVz{TCby^s4Vq?0xRgK%AV z8=dsfY{h)UHUT|+1$aakvK4)a_ao^fXz380luE95_nqEOC!Go}Nk0YSDcb9RZ={1Y z2G9IpY%egrEzi82Zj$f7|HdblA$vJ|G7O)jJbkq$iESqn@X5vz>8?q}e~d_fC82xq zipwWi&*meUA>KI>uNe3~8rd7=Z|3B)>zxsBAwAX#?*3nO*Qjhz&{MUq1A5*;cl9uK z(p>>=|CTyyH@pyrPXe9A8A(@X$%khL-&%b>VGsNeoweE5S(;}{Kiy6K{rK9bPl3*o z4-XfTxM|xC(^&(D=`5Glvxn*|(Yj@!*m;(OEwPM(Ox2_(ts=uCr>uSD>># zK>LBtYNZeLZkZ$NtoLaw&{?me2VOsd&iaPxg=Yetwav}*m+7oKsq=81wNUGFa5n)M zMSsEg9!Xd29~s;0`T#<|fv#Fgx$(M6-^Jry@Lh%F>8k(PUc>JahtCy+qZVowjhS>juM&!q!y4Lx1arTAZ;N7&{_1$vj zSIq`;FqJQ+lUYZ8YFcykQSWc@TN7R$piZUDCT*Xe_G3S-o3s%>Em*I0kw)N9x2)D? zhp*S<6VWpD&(~|;rR~iLWKQ0b7r}Z>@}d>Fuo3+1x45(Db?VNiN}GW}>ouM0@Z`lZ zca9t2$N)#uhg;#%9{`U_W6XDld3SxcXzSp5ZS{!eLkHJuYeuH0j<8;XW@JyQU@kcq z-mT9MIO*gvC*TFquYB-=wc8}dKx;b2O6wK(-{HQnz1Xz}m_v$}dzN#)`v_~g88<~- zf7$uubLW|g8<5EtGw?2RLiW(GO=aDAK)D6{w?Gq-JocjWEeFm~bR`eK z0<;%`mUPBr@nzsPl`5SA4a#3kXFRgtQGUf?i}Q=_JdM5V0nWy4T*Mho&IfaTvWByX zYz0(dvvJRL+{rj~Lo=69mNmKyV;k)!c-nb7c;sK)>i!)Z={7z2hmEJ0q3n15%cGxk zD%-%^rq-nH%ns(1#D7zs6gU=qaf>~#?~m=39jHFZ+yFfPY534H96BqbGaIk*SM=}| z^^xDB{C>ML93A-0YpxwifkXBbKIfJ>pFMnR6clEPo(@j zBj9u%efc)G-Q@B$lA%-0m*6NOq1st@}TcWGyYx-d*a5c(9JN<707&@2?*0Sop(&9 za?Zbi+ZN7m>O99Mc#rY-Okfo}ud*NcDl$wq4)tLf>Cy-IwO1KBgP2@JyWR4WYhqu2 z)JO`B?(zj1FH7gUy)(&g!1Frip!Y;U9eVOCXaRczbgS43Q}ItF-U7Tk z_{tFe*cv;1I|n0SPs9lw;S zoygh-aQ-^*8cE=z|L&ZF{F*=AP5#IH{Pd|R3f*p`Oq?=%DASr)>1;#pYmO$FK94f8 zul>|7gC9awD|FLGnLk1&vXP1o>p52@n6ze@PW~VG`5DWm=A_PtcDuS{H8SYj1A2R4 zU(g?TzGzY|PWg>~SrO1;a&lmkXj4M9m8=Ot#xyj7~4$yOoJ^mzfvS#8Nz;{Jtih~_- zRP(8CllM`tK3_iXKV!h>n|1u1_jl|~!Z*|T+rrbsI=`J~9?uqjuTvT_`&IsmKP0E> zIYTHtE`6x`tYl*epQw9#`<=Ae&%Kl0cfK`{UPpRE)K4?mQ;72Wyi0vMHgP_5_P-uJ zmAn`4$sSER&o&lvPRpg}(H!Z-0F(UJ-Ei`m1Gns)8cobMMx)6sPTW@dzqsdTu)CLt zhvWKz36HzM<8E+typKor@!@fNO(bu}#Q?TQ%U=q=FmA%@J(RK1$o3R;6wacLviJj` z3wT7EjXazkb~LYzawaU}kAd*7ao7+29}Qj7pHkGm+0_R|L4PY=X}0APaMUX%bm7f6 z2liF6PL{lv-$o}egM+<|jOpQUwlJ%fTC!4=d!8$X40_*P1u=nm;y^Jd(^9UI&G@x%P+JE&iCl^A*It-;b9@cirj9xUfUKdGE_@X!eJX!^9`z*)l{=F+{x zoW)45cNV5S`S>wl56&F+W;u758E~?UpX&z$Ei@)>iAf%~XARSD}cyfIW&kc4;?cFT!W>g0kT1vx(_qFN*Lt z=EgSWZaK{fwSV@1**o{Zx{mtJA4zs%90%mYfB_dy94nR+NtPc8#<3I0lKeCbZv=TNjJJzww$mZ}baoKols$=D zQM`&vaq3oF!e20T>>jPhls%!nc@efetlfOheU}V4SWh3%T7u@!_$_I(wu8HKAIHr; z>Z;0TTFm_IzqWfnvefM^+ScukUpfWa<2`1cwG01c$P>l!cBAv7pAn9DX{M}nmWaZu zC)^z2y$pVpIv!z5p*@1f|H;~CXm6n3CwQuyHh|5>0^H2tmVO|a6H{Lz>SOsNc}l*P zHBgVJ&vUuwabL;&mG%i%ns@vAK9c>~FSv;MsCKD-Q~CsL^|Lx78`(jbpM3F({t4!?-;ds)`{UTOz5hk+qc)iHvZc4_ECHRDwj3VI;IC_v zdBSn#mO0O{oO7X;d>;4I{b>#C6^lQ5wj#%wC$zhA@@)obq7A>epaI>0`d>527;_wX znnQOY9ZDDN+{mYfuTj6-C)j7JG3=MVuk(_+=pW*tsGRk!MN#rZ%@96imW#{^j)HBt|3eHDfaa`x)z%y&4{08Afeuxl_``jVmFwfg9K>f(Cp;t|HwYOCmZGwqqTwx9pb?_noF{>(vc zYfpq}QcSlAne2mBQO|PmL1e)}#sr+fQGe}O>7&!opV-U& z_BrHtST?D$w%>^3TJ_bc2S%rA_{xReZr0andy4NMd84sMwM+9>wL#pz zOnM)sY|0zR{~YBJ>#QmJyJ;2MIYU7*xAN4B$ch&aklsq#PenX2dz?H_J4DZ)?8S}r zBO`z7KQLJl{hJFF$3HSTqa8gMJ8RPY{b`ktBZE)SPNVPYchsiikFmn}2EysYzkX9K z;%pS@=Jmv-e)?+oK34yq&iq0BN6zHm``Qm5Ri8qB$rkIx?^i_6anHF9`!b$mM=PRj zXc?8HCqjoVr>v$^MzaXN55F@AGivzyiGkAY<5w@SGQ5|6R{H+_Si+1@w!ACE6?Q8M=RIifSf6(_a_bj+)&ONj4DZN+j`rLE7dv0^jt?oI4vNC!z_}kt5 zegV%Jl#kZ48YrW7?i1Xnx%YARb8qF|&ixGcliWwR4|3$E<^$=Q)is<@bu| z53wUfzOzRHJC6qBylg^$OrOeLmS}wPpQv-%Lm{3;v(LMb zV|AI|qC=-Sw}Q5|g|?>m%{)~Xr_s;nNT1FtjiQe;4&l7gbelNtF2->?`7l)SWi-8fJ9Tv!nevMCeG=1l0K-sJEq@9zwg}4di}Q8hp`*) zJlBYSebe|ta~@Zb)>XK@DrPPc{Z~2{Wq0nie(K9{jk}LvbJBSZyI0mSC(b>9td_0J z9Q5rb;!_>feyy#1*Etj7)uiPhHURMWpGc$UkForBISEc@{CpQ_K)X9YdtXlQGn zM%ME?%JKV6dmo8^gdTT*dfjRC9nLpoWX*5-;#cK$jIyFU&-`ccNgC9rY7JSuYk%~A z4FR?SBia*uIWb9Zr9a+lA(j=YF| zP`>2)v-PxvM;rJpzjoD~<;cJKvgr7s+2zMSIs3V9y*&FH+u*ylnQlvbRuA|NX?d>)!JC8QWfS=!j>| zmX}?7uHqKXxV^=Fk4Mf%_2~VM`fA`3t_nobuHgRTl`S_V7b3R~roYl~0znAlU+PE2Gi}xkC zlkTVYC|Z85?3U}#mc8Y=a?)OoT)IZ%Mauk)%ADUznd$3;WB_&IOa^|7SmXz1)?x93qZKm-4A?P6*-<#$z554Nw7J9PdZjK{~$e2w2y?;$_R-#BsRwdL1b^V+m!*S_)E>#iYu zrlyvj6ZUbvaU)|C)v4KEJ@**?%i@EQ&4v%fulg8%E5B1s%9J{xv$Wex+Srd1byN@+^^N_gQF}%C z?1?XtmtQKMJ^6KH!q>%z=8U54wSPms`{6XkpE}EXR`it%@Jm>=eHf^$e``wcV*Ds*0@1Ly5{fEhyw|_(W?**On zTaNn(|78cQejMk1?ZsXAJvhB$^5EJJOnz#~4U^LvwoXoO{~-4_Ctq&(4`=N8u6BKw z@zZb6-oLEAqI`Vf3l#?^zQCNzm*2p-y4dcNMetSDZsJ%LasEAX-YYfVF!%Q1vbQZB zo*l=J(aagcgVp9}d$Y^ydne<`rn7I$Pn?M-de6>%--phuc=$tS=Ju)|zl*uC_A>Hc ze48-IrAyO8>t}!Y%sU>#jgKGx-bFk3V(!?Po!hNGa0PAj%Jy%N zzC)z#Hz&(zmr?s~o@F03^Jr>6TWH^Rm%XAh@x2>p8q>s;JI*d=Z+0B5Is4`%kDa;s z?8KRyIhXI9BNJz?&3)+1wL6dvJ{xSR=uL$ z*CR{Et0yZCE@D6a!O1rum((vs<0EHh9iKcC9XxmTcTC-}^)NauA( z&y+`9W#tj?vvfDzMd=_vjhrpW>oE&G^5Tx5r)HPLj8)$lLdmx3@iZ zX0GxUK26?|SIgjcI{Bq?SDC9$OD-v2ef^GT3$5GPN7jyg!}gC+&L5k+VtZziw45oY z&fk6CYd>7ub4+!5#x(jP>I;3s{( zg}Apr)B9kiuO{9zkj+{Y4-CaseQ`e1J3Q2f$Ev}_Reg)A_Qq8`an**ERU6}~96>}) z!=u?g8_4j`?#xIb?&yq7!1=-m{KN~Z@(Xd-_|Rxic3|j1OB=|;*v@zd!4>1EtE-zC zMe8z!g1i+ngSmKgXrPdfca97X#)FxBzGoNd$k)W#;o%46rl$~B^%8cM+-^2*^O-_i z7*?p&YggCT#7(Q0)IfT0Xn4=i>SYYB;clY~YGtiqZf0~xJyE8Mgd!RQHZ?q9knI7Yr z1T>qxG$l=GZffg_dwP3EM|uhwRrQpc z#-=;tY-VUzp`XB^hWd#Snw+AK+WJo((#i`pMd2VGI$inXRO|XP zFgc={m>V7#axH0QWNKt7jY99qj%0fJ)P`%E80i_>MZ*lk%~Oj@y_yD!Bh~Oy+Rq5K z$nQ>DOgURjw#_SESA4}J{7b{@+_EmNs!GB!IDUQKck~SPF~(tNGgRmq7>SIGr4}le z<9+e^maQve$WeQ9qmeE~{`K`_2B}nt*L*gU$@#|JnHlPnOzRuS=dwL};~k^_jIKF$t2nDMEiy$_E_MmZ5>^J7g#1C$IcWv>Y!?cY|9ZW@fgRtK3vI$S&w zYTZ5AY`680kK=SWG`8-Z(XsAq&yGwMYALdpG1t<$S>jF&~rWc{2rfEQ}BndNvYR zV>%L}#M$tJau(fmH=eBYmC)5~6v9oUK}VaSKrrkZHlXEmn_TU z#?)z{oAdNwcXy)lHUpOv#=e-0Nz?ltR#}>|Ta0W_m{s}3bS=3735L4GJx=TItLsGu zh`xz_LC;fPW(|q^0{6?@CS8mkn_JdwUe}Grx}mXE?hNL+VbfZ)D(TK0n>K7(7ol*X z(h}c}+N!=>%oik8(qY}(K3(08fPlBp{FpKFMf)Aht+MB>TdN}^rBI&ug7ss`gu1BtNTKG)@Z-ml!M8r!f-c(asQoc z557jxNJjm7_rsZy;cn%bh$JWV-Q=+&ly<^$tB%)<1B32Y-;F@-CZ)Wa2G`xu*-jcH z8}T5m!qgEHCM{gbdidSuV0YAwfU~`N6w$j5<~B5Y8R?Wo3B+~?(j*6IUVTV9z)B=HP&N7-ab1tVTTL@J53AC`!!Za1X727*seBUJhrR8rt@ZHx*AHYl) ziZ|ZX)fG3np@(N=W@KpVGDDdW1~E6@Xwv8FXS&|{(4xz=g`$J0>aiz=v|?R$M8gY} zQWFt_Jv-?AO-nXxU4OYoEx#1Y6m+8*Ks8Fi6!b)>Tt1AV8)o8cMC9+!U}Xw=ij^to z#b}0nESJVnbW>!-w=}Xx*zn{&n|Vt2IqDqF_KbKB zxNF(k)zKJhW-E%SPtq@QcX4m$-p752`xy6e?vvb;+%Iuo=J+2K7k_|kBGXfKl*1jy91 zb(dFgr4s~d(49TmLcGO{Hf&30@Wm^`uWq+ZhQ^ZkbRR5&HknbJuG@H&2_CNsaWJ7Z$GG;G78jW~mBEiICj zT3yJgO4y3w*BVqoH07(AdGjpJ0J-U#CB-gsiZDCvTFA!6uBP>`=dKU6TnjSrSDay{ zohMDl)QXj4h-Uv%F~^=kW)|Jtw90nv@W@8D-a-Ag^|Z64mGz0Zxy7ssbhX9Iqi<;0 zq7d3US~@%9mQ7}XqKy}(`KO5gXXH_7-Z+LXO-Gn7Qx6 zIFgkwBd(0XW(pN|KX1GQ=yJ`(QPl_UYgOw^y2#{>B=ToAhRYQ6ly%0JWtexAc~aqS zWL=H&Q{6P&~VP=Dg(V%|twRfM7g3Uz37rtzb7 zyUzBh+}k-z^71t#l7VWZmA)*WE(lmsD6{CwbZtm=gSy@t>Qha8O(Z%K0KQ9}fci{8h_nqm5 z8;u!??WgmePNGnBn=g}&z<~>QZO6TS!S&Lz35Y&bCL4&MOOr@km*hq0Ac>>c_RXRt zO#7KFbujDOHg~AUXxx~*xAX4x1>?u0(yXCNGgv8!Ve)jt#>>~=E{KkYds-Sh#P7zo zO`a4dK`|io4pmh$N9nyJ4W8&2+t|2a zQx~_XoGfn3kB{-vsuo0oyG!|deIKl|uIp&rXyWif-m7x2Cn{0KP}F++rBSN38?CRX zP)ybD*?~-~iJDBjnyO_4zQ#G1#+%X^Y*eWTrV8K6;wc@IFKx^;wJ{sjWabemBeQyL z$E!wdrMT=^$##70T03sl#8w=#cRiDwtPB?&YtB<9Cg``h9_DhKE>pELu6E-;+>%&k zQ|y$OY(&5sF4#3_8^;Dmwd~`DQNyU2aa3H&sU+Zrb5y%#?!Q1;`(soSJI%_tk-I3nCVFIOx@_UgC9FBM0qOj6^7zh zmuMH=C{z5an#4UjmApMY4`w1w1Fd9!Zb#N;_dp-DN41XsDhIPR!Gs*kuJ#?BXK`jo zvoU7=&C-*c>a^xC#qqtylFTJhhcb&BS?>?A@>+a`-^gP(?vzewil_u9v9HnM_Q+n% z*Dh|ibGYGqw=zMrggc9w+qLeP*__U3$5?ah6~ zn}tU4-1eYZyNR1juhkcA?%2TWvau3aX@)L%UPl+brDe^^qD7sXtXb_wOifJxki^<9 z<{wtZJvnOyMQ6YGy?L!z4EFn4s(wCnTVN!%7(18&vnGkHl+! z&o0025pBurSm_y6uF+m%>UA*#6;^kDVT1*E)>uvTo6=7xJALM(^rXB_8CN1#y|)NE z0KcYEjCLx&C9=2Z-wMNg)IU6!*@2OoYBKCozD)AxMh2A!W>J7=X}H!ARjil;Khup{ zPMjH;6+|0Ax}04_F!jLeH7ZJ{-DpX|*C+92>WJxiF^N>&aDFiTOndTfjhkS-lWyIP zmN77t%y9msLkD5gNxy#J#_c6xJ8w1drGcmTp;sB|!w$ykagKM>22HqaR&_yC85O3* zbSvg{ZMG-h&zo_ZtmT;b&uB|$(tK*;JI!PU8FaU*xJ}MJeO+qb&1d^gX!2|3Kt_7@ z_=!>#Gezd7T}{WwoUB=lqP=$0hjtqq#!l0IyX_=UXO#CgW=gXOmv-a78EIj^JB7#O zVos_{#-^*dD20E9UER(I*33(HukSKr7lwr9RpZv~R;*aNx@D4T;`8}Z497@CWG5A! zAYI>XtSvDDX4%X9nd!b;GnwGC+J~cglS}KX&&-iBZ!x?Jr7Yw1Se%<-j430lN7%_a z+i;Tb<-pRDZ-i{DGwk=`oQOBOv_ekmpk1#sx~Hwr-g;CPS3caLf0M_4m{3!+woLm> z__>@vH9U1X^5^rbm?udh2*~o^eDBJ*!<)CcDMqY7wo-%RAyWbMmUnMbtP+2h{^Ar*Evvg_G~b>53wTNAhjctNbDFU4HD*RP-4r86 z?Fwf6UMyi<9j~nozGpK#Wdx_R$4!YHV{dlYG>OJ6Q_#gS?Ht{a?;RP~VMdFXf7wxx zvB8jjTFk>BAeOB$T1PY8Wny1PC$2S1HEwS+X%?k5$ihFm>-9+;3gbf{*rIoNcRXj%tI6|BQIOFE<9{6hli?};}1P}H^uS`1F%z;&hT<@Z;Tl}19xM} zpDdcgexe)g$?TxhF0oaeLO=4V5uW#E^3l;NrbTlmu_cN5ZI^FXL}khhE;ji@72Kut zV4xaxuv#NKUZ?Lz&R#xxWIpCi^O>rtnLo5!0@=Rj-TVCc9M*L?H(GOiISEi{2zHZBV7hFB1mB~GO%B;Jz$uVl(p0P=0}9Z&IOeyg{?S>C7j?e z!_C*4c)kx{WqhCNTConfuC80=WrM@>aXHYZM5rpo^M|l4Nsv*{(r}cb^N#a5S6BH^ zcO#`2&%fjYwZGd}SDf|DkAIO(;{iWr)Gq~D(@g(I>|7dERi4O71kSbTQ+MWDtmL0-6iDm|3Y# z<+oR7yBQk)T$vIyR3i=kw<};$_AW^HOLtqsNyjCjRWrZG+Y5K6DRMhS--Iwx`4Db; zWbOoN&HSmmD0w3;XW@zCxC9r&HF3KB5l1Gj@SAmL<4>HWa51c4mZHd?`IZ|j;-sHc zehf1Qqbayzhe`aB(pLPEZXA!Y9&d>UlV)Vz<-ppW5&sn}{iqhMskxRyQnWz7RO*2z?#wkt zSypaaX?PD>RI!}o#;%Lwh|9cB;ZS+GdDESn+O}-^nPr4(Vr=G>H?~tRPUkrti#0at zyQOJ#YSvENw7c2mY}Ow-tl7TiU%NMK+R&x^ls{9{rlhT`!~o80w<=)g-;3s_{h)HU zQFbS0ZO>bjF(qYZiE853o_vA9Ft|7n^R^5QqS^0L5&XWaSrS#)QsifOaOZ=n@} z^}CsQqDJ;CZi(+~xu?^Gmli07XT{;>)AVY-tsNK{+|$FH#ocy{rnHG>xa-N9xm%S@ zEfx=aw%d!f(8cB47Qb2S7D}8`eN)-c{*6Mz&JsV_qV4f!a?aU-;mnQwH6b6T%&nuT z-FRzGhViOiel|!$36|XQ#UQY?b83hdYo`orCCi7_xXsniqGvUO%lRqRWzUIkGv1cU zTKgaXdy57@#&|9`eZYiYl1Fr_tg4t@lW^`jkrFo}J(?hVeK&|k@B1=o2r_A3G0FcI z@-u(=43!~Ym|s(t2mYtZ+^O9rmE~uKt+hY95X^LW#_bN9B5x9RrfMbD|I}dblh?3f zUBX*2j7#&v24PLyUe8}K4?+*FO*Px~X*V*(c2BmU#==)UuB^D&qln3%n_g4e8kDO(m6)uBoFYgrXfG$E507(}q=!d5hI9e!g&6D3R@Sj>S&Ll_D}qlOpT3 z#(kQZUOFQo_?LvKe zNggF(TZP@$P1at0;?3qzJYB*M8`+I|>-e#;nDsH`pNVeDxQtB(b+wjG#F!`(vPxwm zwQH()((X+mHf?M++qGmnV3v}84u2av*LAnHZCW=aZ&Rj8OX%rzF?)?=E^}p5#hc1^ zYtXHH^6_oKSS6N$jPq-3WhmM(`)y97@;s13uKon3{;nn#>rhZuZty__w!VvvNV=Au zaz{xUbtH>EVwUFG7XEb6XPgk74i#o(PCr{|$$6y{^dC+>^eBOZ!g5GUN!6LH@>NI_BGeedGlM|I`?fhlKUGa7EuU}Ag!@}xCH{MiJTenzS z5e!}B#Tj`m3tHS;EvIq-RxUue{gi7jPsMBAJAFb z!TTYw*5&m5Ft>Lz!TWUg{YmHMD9>lO%lZB+&(rSv3p`(P?=SPb=-#7uPK#!7D@?u5 z;Z|I8c`k78)jU_Y_fzn-iuWsV)6BEqec#Tr;NG)5$K3lqo(J6f<2;{q??-qZb??V` z&V84S_j%q=x$mcWUgQ>UFYAdLz0cw~&$-uo%&qh)oCWTCHP2PKjv3_UxE}o!xGIyt~kwliw6gt~8rf`h9@Dm~Ysgu)|zU5PxcjHYQr238#+@ z?soCrVoo10A56Q2FNM-QoGW;o!)i_MFvSsPnOvcJD6_}0cHFE~laGrgE!$al(E9IerEl$cZ3x?*SID2;ubZ2%40gDe;KD!2N zKB?o4`e~b4?rF35O}MK#XPtNXm$^icCn{eFaF=hsFnf2nG9b;cQs_1x@XzpVH{J(1 zaK)q-y7@HPmn*uN>YL}WpY>W}{42gy9=^!Id-4Y5`(<0~;?it@-kpC%qrILcZdb^r zI083R#Kes;spDiGS7D96uuiKe@~3j@8_IWM zsfjhQ@q?AtaF#;u$?qNN?auToob)$UTI<$lxXFthJ$ae1n6xNwQk9ACuz*pK&i_PQ|Qbib8z14e>WA_j0B4(d%TN&=3e@kPt(7gqHmd9R$sQMEXnhHegIC4 zC8`bEq}ed6He|o4eb8R13$DfDU*F6TBBt^t?yMnhvE)s9<<{0sRbH+`o64iZ+()>d zF#1`$Tzktg}3t80Ve49eS7U zw({udL-5>Q9{r#CkI~+w!&lWWAB%a$?!XIXE~25{+S^Q_ND-*xJhb>WP8P}-TV5LK zu3_4IT`#tM*sw0PHL-X;kk+l7`A^koo&Qff0cc#))ZDUm-TDo8+}XNuQ(OC89i3g9 z@7}WYo_l+C^!8cxc^K0VkR>#%VyN8*S zym3)ICxh~>_BJugiE6y%Ilzf;*krg5HUUXEHZJ+=FASPG5?U=+)h?~i$Mzfxsgw4A zwn8?xEjwbjwBAG->D6CkHe)UO!b9QW#=P*f+tBT7O0}59Ax52YujPi}_&ymw-XFWV zOrqQeo#^UL0t>&ew&Pu}iagS-Z1*3`2{^+eJ_y-Gq4Kw5g4fYpbk zE({kq)B_VW$XmoAn*KkV?y5}P^BSptSFRL6%JiF6CB9?K~1%eVV-Hacm_d?h5ebJfrGeO)0`N>$cs*2 zk}sIQ{d&&HBD^~OH1J$mH5%Q{vt3&SNMV!hlcS9sk)U{WK4FKGew&ASMhpEMKl-pC zaVF%*j)A^D)6h1Np=Rw7KhAvypJof1Xq_CBlHWPd!`_!@!@|K>$F23`hK)?xp!^>q zav8)i>uJV#F79`&XWAe%fpfLQ z1?jNufAKAKOX|U^a<`eJ#jDtlG?LlL-T|FybDQQLRxR$itqyOk^d?pr5$)=kE>GOP z0@Lc$1QSB5If79ZjC|`sm#UQ)&Yo5Es_oU6t7j@KGvyF3Jg+Hw(R<3B zv!&D0ND+FFpT-AI1!9LShmSXa+%G;O5T z#LN1F;X5fcn{~w^E@qmlj%T@81P_l=g83G<_1M@1FxnEYlG&U{4IEn0}9dclE7i-v^%3ATG`oKI&2UAzwn;O|V z9K174hOD-@j+W*P9qi=qwoAXONj~51+T7BK(SJ+V z`nKlPrds=N>@PAOs`9qBceHHe6z%TD=H`wtUF~fhHeH=f9UI!aOdc42NR@a4)s|)FYFT9_<*!PraGTo55VE!Fo^}GY z4V2V%+(Uw8t?s{hcSOIgYrXxd_!UM~-mnvOv2CB541>3pj@H%srJL-Q z+ty}wOswf>Bm(1IdEKpeT|~CNtc-82ufKZc)iZgdq_-N0{^_Z6)XX^2Xb$2-{dk<& zt(71Ka~g!wEyp{vJ-Y}#I~tD+?#POmw@>k-&(bEs{0<8 ze?QU*U9@KhrYME})HgNk-~*;pMfd7c!#FXRRWmbucs9(CdL0zPy@$2@2!+y)OhH@155^K;j(qOz8R^SN)D-m>>Ch$* z;~V1YCGo0N@e-*z#=ktbwQan#-{QOLxFY&>qjv8Y?%RvOl+k|%q{)hay8+p4p@#U8 zRA;8Qc1vbQrCG!z8rL@7T-)-VCCh7g?_uSmnSle`S zY-5NbH58>$WrA}x4fD>Mf&3BPscppk?RIqTh0H)3;K3CGtyud1z(hCyZ(<+pBP%{x9Y9}S`lW?lrTQQ+o6t80I zxocO%;r<8uxsO+>u5)MGtWD+Xrp)NPZqVZWr~1~FvF}>7H`L~$uLM6wVJr93n(~Nu?~QlFC$-tn@b1%L28MtEzVcj6%VktL* zW=2L~l4kFKp9IlAWR|HYX1>&hixj(gSuhSVqcta|tu479v-L2$7zgLDy6<^Z?7mS> zIc(-f7-TguO6Vy+qa$|AZ1`81Y2-tC^D=Ah&gZkY8>Xa}03=J1lNx3)4#c%?NQ}J; zhHpLf0SPd+S5ig}jA>3jt{#CCTQQ6bHRBoI?Z~a{e{9!i!nS^simP~3xAZKI6*6wD zz_+w+NJLUj`Q9>?)3FRD%&=ZAsjsgkGuaAmwlQDgpB_9twTb>#tkn=9{iX+8awU|%EEvz0b?5tg(^sZ7C-L^_9 zJ?(p-kj>n-!Pqa!xSs5%wVRJd5abJcp%?mV3Vrb-3RNSwT}+m1Q{b(b-}Gq|Sv#U5 zQIJ`g!CP4}WF!2}p230aUbKi|j?uu%HgjwIi>nsf&{i!ranD?(9veoMl*Z4OnX3wF z0da38n{|<_u7_R6wIo-6QF2{Rr;~-e3Gw7a7sN{(EMfd@$7nbrl~cJ{dRr%R3`ro8 zZ%$CsjItz!AJ>6rz8axu+W#bA{V>V%};_jm?h~stY@6 z;(RanFxC@`;zu}tJ1&f1SlT!;(zCZNC#6A#0d;wPONHq}=4J6yH!{43LuKk0)fl&h zk-9v`C{`Cku4bsZgU~RJ#6)lj!S&QB_wx7Ud+*0oXDMHH1Yd^aq<2Xj3;&G;4((&{ zHdDP&5`N(#4r`P1-ldnJauh=n{L=d`=PHcyGOli==*)ik{BV3Db6x0valIN}VX3B4 z>*L$w+9g^tUs@zA@dSM*6}M9hso_lJR1Ym(gr!Xamn^~wX;j5^qN|Ri4puMX7;o}5 z(=r6E%z0}R3MO4~FW_&HntZHTK012sz6)1sIn;@}55z9tnP?u2&LgYCSKKqx_-9G6Ik`aeDCUo@lDhS{w%y9KWx#kBEQvn z;#Vn#(cD+ZzO<`-wb{YPzTsYu+Z!sV7+SI!y{_52p|5&jVaLKnw~FgQTrDP^>id|~ zy?+rkXLa?GeYHy#Ew0OqWqPZp;%!m9Z(n>LKPK;ld#gghY+yI3Y|iZL8O;`|7v1`czj&*6?pqcn zXL@xWJzbL(c#=iZ#icj+KKyc%P-aff^(}52KRTQ-h@pb2hghgI`=Dz(88~X9K;cUh zF%x;2G0t;gNR9a=$FC1)v}@ja%+Q-}bi?MGdLBDBVEozPXtW1L_i)_3^fiU)`^c+j zhMKQWNvod(HB)7{S2t+VYS*Gjvz>QG713Oqw4g1W%&_~t*D71Xw{#ipKkwSSiSY-r z5XmDGEj#gTM@4#f6XMKnI}(zBx8raKtiaZ;!hNiCEh!uYKmM&E8`mwaZ{*Ql9>SCZp$9D#?+UUL>2HmJro z>V}&bHY-NcVlxjMUVB1eOlYMSsZeKcFnpA!&Mehifg8@ z%veF^krH>8Ev0xT$BF3(Da{-3TRW)O5IC?Ii(_+2QGX97@3NRcwiTCgNSIaJ31^QM zjLg%%tS$c5goa1#D6t0~netD@!YNv$wMCPk9Pg7X!Ppw6Oczb{Q5%3(HIi>=9a}NB zGh+lBy?NJbQ76PLqAQY8%&U27fYM8QGj8<4^^^Eon48y~op54Xw!Q8TFkY8r8G`+FDylga}XZY!^Y$|=jyLLr1`J$WL zP%SH1SrY`_ZQfYcqC#P3%I{dM(R%ec_1&KSgdJHvYsOTmbdXBE6DQ|84fm$}4d(Z- zEEz@g&Z+Oi$cRF%tqS7l;elL=K32;YMqGpLz#6$3%jQ#VGGnNPd@t;JIQ4z3md?4B zkD}4Xq<9sL@1mx^?;0Hv6I?wb?=7M6rG%G}OTy(#iJLI|k&=AQ_3h*gtkS&4^0oIt zia%3}gwCrE9;Dvw=4|uf#q5}-f-&i4>bm`Ak)`04{?dM@o%cQ{+avrhFZ!2Eu=KIo z!R6Gk{LTdDYXzg8-2=fl<2u^G`T4ev>y4|jT(&LOR#q@?yRY~&rRGevEWgIttdYN6 z{g%n-pgXpV-!OYHYNefTw1#~VKBu=7%#)pc0*!Lkbzw6?Q zlSA?G-`aT38vWR#%!cTa?1Zo8H_cD&nXk%hPFq*EYu0;h|H8319J|7Pqo_k(-GnqD z=&(uSHVi}C1n5Y6AIy&qh9|9rZZtWaAEYZ$A?+GZ+}}^bT!ZBqZQHHcs@OUdh`yS)41Qx{S0`X!~gTAuMHn6D>F8q=igWs zUBUO}E6O4z==*rMif1MFo4IvSO`>P6pB|O-tb{&?=WOn`a<{*^%)Hn0yapU|U&}p% z`=_tHHat0}Ot!Sc^7}H+6W1yQKi_p6-u;y&o&W#-|9Rl+gPy8U)~Ncm*BYqt$6l*2 zb#=mhU)R*crnZird~U}8=T==m3Zs2wLEzuQM%qV+9+0625 zrd?Y$r|ivTZ>^YH_O`OOm%pQ8UfKMzs4l;Eka;Gag%SJYoJRX*RJvSLH^dI-y2dpd z=m2*)w2M6yX6sZfdPSX(#_~~J-`*j@v(LharML}SDbNj#0kGWLmmJDLow3X{vk*}o zwt@qYhK-SIU1P^ahUsi$i|R7{&LGt|@9xork#+9h-`h**gv|U~FR^0gQfEWifmVm@ z*`THeA`>S2{Oz=lQTNEO^tBvWrK`e}G%}}%B~{Sjidd2gyTKxs^s}-}&k7^)qDV5& zVoAOz@-nHySXM@nWR|W9BgL?>N48n~2J@86v)FV2M)q1P$;tT<$S7SEMlwg(hI=dt zZDq8c710~@h+2`^x+ex4ROt-=;->_u3u2`ts39U>m{J zuK!~7FB09SPrZ!r))KnUkBIyb-Sej&rycAs#i#K50{@>0aJh?bJfO?H`bv9UW%yH{ zX|Fd%zvbTa@ZtBDxL+T*|IrlgC)e0|sr3FMbm7XG$_<g1D&fviPQS4al zb+ySK*|mn)*Jq_~5B`L!ap2=S=IXoXpMqZBRUSPb&@X_)@Lmn@*KsfWT)@x8yVLHY zEeSUDC%~qB11x$rz@p~@Ec(6xi#{G;(P!P4#3y=XfJLv~mZsMPSo9;A55_57e1U|@&8hQ|Caoi_-J`FBd8yTKbCg?WPlak z@sFqJrvrQ~B;k{|^Z9%D6KVId?Y5VbUxyMb{$$@B(qrtzJr-Sd-yVyf=+g-ny)wW{ zAqg)>Bzt~dI$YxZGYM9B)khMn@R|dBJ0#)eAiuJ|mUe$2zzT2u=hO6U0XFeXr0L58 zEc)EvNYiUV3~3y^KH%rMC(`bp53s7P@N%9$KQ8=M+Wo}rRj46 zEc(9RNz)GoSoEilrs>B6Ec(`elcsMAu;{rjrRnou`*KA{~|LBj>^k)NX_CGJ&p!qbBIW|Sv%xt|r_>5zoGg8p#9m1+0e1FZO$zadTU3h-MX2_J+H zpFhX1O1nQFV1+m9jcNMw09Qd09!Ej<;T^pu?f&TiE4(A`Ow;GRE5V}AVPBcOZ2oJX zna83}+?ZhH*NFg&eyBE0e=@+LKO12AKOSHceqGxC69E>zxjs#A53uOtOVjit0T%u6 z&1w3R0bT}4cswYd$#01LV`tu)6=)cEn>#tTs+jvTTiJv(iOXzaH zO@&}COD_ai^cDCI=?c$d(fbc2Sm8ezV9^^sm8NeGu%Uk@P0s~b^b?;;)3pcKUUs~8 z{74$ldDY`LMbGgnteLMe=9~TsTmv3=`1|0aV9n@?{`cS)z*=(=eiL&40$5Wx!ZqOK z|CEGxE4US`H5t+G0QZA6^Co-`cpR*?6XAaFA+Tl=h4+9bz*jr`LGUrKW)4OFB=|Vk z^Ya_v6W~fm|9$Wa0sT+F7r;LLKLme@@&V0?z^a{P}fo4AxAl{Qo|9dEovyxEZXOSkeC@xC`w0`5SP5fL{gg z3-C2eDIWy;{JRc35#W08F|g<7cJQ-cpMRUcC&51c`@xd|Jqvy%z>k1u{50|ZVemY# z=l3(G=Y9c|bn~?h5dqfcwEdKmQ!O53IF7`TrjHP=H?o9|imJ{3r0Kfd1wy z(f0$q06dNL8K2%|;JIL5{&#}w!9Kiu!Rx_3JpUP$Q?PcX( ze}E-_a{*q3f8o=7_xfx7!o9A;1cMEWn~)2(aj{ z1X%RkvUK>=eI}ofNWubfQ+sn~_F89v__)*+@?A@Oa=*s_7fjp6aZ||Y?lSBCT*!!Oo zwBM(o&!BvKdKI2*J?wRD^oNSy;WDI}!k0~ny{?WXp?mDZUmwsFo@`0%bxrgV?md>p zhvlf)$pDLfKER@146x|an$qDP3b5!;2H1oj zU=x0TMXyQua*UrQN*y~4f z|3Xmze*wC1*q^r2e(g0ks)jBs4kVA3f!o2pKWzke1@t??TLbzX_^S-~xfi;>e0@D1 z@ZSr)vaKxIPQCZ-g#)3$W;?dlUb{uYNfx|GhIU_WGOX z+bAD<&5a&|F6_%w^jUwD`2Q8?{_^E@q%R%cvpduH*jE$(pPj=0yj_X=r=SaOB@$oW z*?_L}76SYyxEBuHKNryD{zQQ90ACES=rj70_(fkIV9~n*Ec*5Ui{2Mt(I*2e`h@_C z9t|Y%iC!6C(c2$P)At2f^rHcm|6>6beMUCzzd6979~ny1&j(oa$y}NqJ(OV4`vR=^ za{(6pcz{KJKER^S9ZA9yJr1zw^`mKeLx4r!zdKDo7GTj2jiu>F11$Rahtu>Kk0e<1 z8NZld@mC#S(NDiGO@BGSqOTuM)B6J~`hiE&^kV@Qz2W_7dV7FHf8wz;{X~F8k3W#6 zuMe>3>pz&LX9Fzys~<|!s}Cet^oal~e~txM^uAwC+>1UQV9}R~kT!o9z|JUkYJ z|F_VEHNN%o?3sYB{CPIO3jdj3P4oX;fJN{Bc$z*IVA12ZKXe?GwC|AhdH zzW+$t|B(QT-u!E6`qlu8{!)My{>1=`e({TG|1*9&!6yDcOz_2-w1-n=(HI@B>W9KR z6wu{9`{l&F==%d~;tR0oGyW)XFZ%N55-j>F0T%t#x6<_bKTWXc>rWK&lKiJdn0gu-vcu4;168C$-2f*I_N9BKULjMf-AlTD? z5Bzw2LVpH)80_hP20pYTp??QF0rvElz(UsP)z@kqESoBu|Ec(R&i@xu#(){fYu;|l%kft9Cu;_Dtl%_uyV9}dj zPSe{1Ec(d+8~y_<`qozx|HAFxOUmaV%179b?;Zhf5AX-Txd6-mc;NqIQ zi@&h|E4+&V7JbJ5O!GT8z@pC!u>98qSoHb;i+&)$qCXyB(OZ9##3%ZJ0E@owAJgT9PzYt*2F9cZh=&B^WqR$Ah=v!x{>Ei(w{lwL2 z`YQnzeWEf=pF2CjqAw4y;_nZz=&jeL-A@MdNunSAK~g^7m?A&>0{?#rU3fh~dVTr8 zo0ISr|Iq*|{DW^v(zU$Nep9rwwXF;02JiwyAT$QHBHzfES@GC5nTF>u6 z8Go3|>USpsd^7G(f}1H~@BYM1Y4>w#60G>Q2UzLr53uOxYZLdP&#FtX@gHE(j|5os z_T`Ct(Vq>l=m&02(+>w&^!j(F>CFKaeZh(}eR+UI-@YvN||!aKDliBI9}`-dd_!72Qo z4Aw{YLKi-XKVLug|C;x2>(fMl75;Mp-UvPsV9`$pSo9YHEPBnqN{9bkfJN{7e42hN zz@jghNYkqWEc)^&;ypl6@-;a?s7+bQVB0{YjcpdSzD z-5! z;-?X;_0IK<-&U~3U#dCszZtCcz&?lX2XAdja2EXRJ$C#j_v2vcdkb8Azaspe3S(a& z`cq(yuX&j8|5PvT5gXT9vWMO8_?u?8#2O!R{}!@U3@<&WPFT&eL0SoSu)etfgU z{dd7y&yk9%{P_u3_B)j{AmJGpR^{MdQ|iL=WN76s1yuvqdUiGMqAv%}BQf6n9pERi zKYhZ{?kFX^?8DK z@jDLIe9b(^?;)`4Y1MS!#fR@eekm`{#U@+zbiBQ zM-<;1FqG5yz00{@?hgeqm^0@~a8~Ze+3yTp=^X=Wec+<=f2hR$Z-cd;Mngcw_wT@( zFF)?w|0(#HFIGei!qorol=!~@)_D)2&qk}b2-bMxC6_<%kRhSFl>S<X)kY$J`dJ-#n-2Q5B8V% zISE`mB(?g_77=4vBLj0`0#g-KQ6u(!H4M2a}NIyEPI0e4*xw^>!aHg9{y*& zo%GQ^Ql$-E0M_qe`S@3Y=l&A=)!y(zx=;92mqU3BVe9a#Ij`e#}CZD7sU*Erk`zHpV@A0Yobz&c;R*T;vz z+FyUl#D{zbKXX$>QNMZ|eE80?BK=d~Q-S{Xd9ayJa`ofOV1J4KKP|y$z_K^+^6w|$ z)5z-v+$w*j&qE%wKBoRk{8oasesb91g<#o3NK$!BJ177jhN&Bn=A7y?2f(!pnu)oC5c46!vRsW@* zkAU^NbiO?t0Jq+Qym0XyF7f|V2|f;<^Vy1G`o3L4KL^%&w(sA5T0)=wPU8P##uF~S z>%lJ|FUH_c`CAKKfWEsNto&UCKK`raMxKe@3f6w3YL{R4g13J(sULZ;_7~T?{5Syi zm-6GYVEyi$uU}s(q5mmZ`-gn|-z%a2cd&j_Z<4UY-xd4_u73ZI=49~Oz!#|h9@l{n zq90U?PWi0_`%CFC)>|b^9F9ORx<7xaVJ!`?*uh`)5{b23SY<2uS0@is6;!o}$1N%$y ze=_z+^eFlwSo@Xdx%mDF?8hsWj8~oqKlc@W0};0h??v#e$CLWJ6+|yrd=b`%Zad0d7tM(=QYhbOv`TYF4+`CKRe+R7Jtn~8eZ%XJh zuJ^9RUlc72a16c$tn(jy_#40{(Jx`aq-RUuUjBE1y*>Nv^0!8X68cBL+AleQo~!cz zTnYVmOYm1p@Sm07zXI3aLH+jS2iExuGo1c7a{>ALXd?gSf=>qZEe7lShgV(wSO)H2 zpOj}aSm#kqBW)UAbb_D!d@{e#4c7WZ3n*;%ufx2{Uv@L z1wVH*;r|eLe{)$h0Zr+90-Ouv`yYZ2Q9tK8e!m5N^_T7Zhxk1O9w+x2@UQ&)Az1d9 zTU~hnApb%Ayy6Ddhwe}Gqc?-K-kEjoW3a!(?=tWlW|fkS=!UxWLcy^r{L7JPyE z{RZd%-^>34{Fbf5C&Ahu;QO2Jf@SaJ`TY^tUrO&)3yF{V>-oJFto>8_peeocz_KUz z^0-#`*OL5O4fdD9>jEGCBJ$hSpFXhc-Cl*J@E$2~|FIJM6u9rdB>Kje!PJ3GySoP^VSo`TZE|&&N~z{|G*U{_p#X>5Gsz$def^ymx?QFW&0#La@J-AMYu_ zcYw8?A4604n@i}sz*;Z2`HQ?Rp?{zRe;Ta)*_AFoe*>)Zw$%QWzCS2&|4p!dquJNz z7r;7C%JY8#d@yML{{#-pui{4L5C0wc>E#>v`3;P>Tzcxjp}w^Wtn*E_Ir@6A_U|8a z{5}AFh4w%en*107`%C#Z4wk+9a^96+pDv;Q4p{awUjI5-LZ1Zd{2DW!!2eIc(}MBA zRX1Tjy_fk77ysM9IzLMJulTM5C-X;hqgt@P#NX{;*~>o7yWIDb(D#CM-o`VI{wZ*% zAOAX7`vd!@TmN4K>pY*+&iyyQ{!)B@3D$3Gd;Wd^-u{JhbKZvHSHsZx8Gd~A4sZkI z(~MuytHG~2`rV#2m5f(?|MJV=2`2xwuUz%* zlVI(yBuh+uzYU&5KKl0ZWw7iM4!ZbGfiE^ynDYq5-+8cpoBLTue+}Fp$g5ek5ZtBw zcqdrr52!uM{|#WBpK{(|{l1{=;eCI6FStLL-xvhze87U^_kCc0Df~}?$JZwM$8Ujk zzSRMjAJ2ldANRDwC&1e88{=2}dR)+GNrOXwMJ7vA#MEbw15p zNB>>0?0;Ha`o004ywk1!5Z-?UpJzNJeii-XbNIQsYG-(9Bs!0R7P##4U})_F3oI)1LI_pWXFegV8asJ}OWwLi`Cdt=}} z#_Mfho!{8byYll6xxbbAbfrySm*_$J-v#!U_yhI+S$g)l9hG5a94=3ATJ9Ekq@g2$_ICLx@V^6 zc0%Ib*WJ6hZ@Dup5{b1n-PJRd+uhaMRo(Z_#-M@`q8k$pF&ke16Jm%i5u+baiS7pt ze&7R2G?t6l%flBxHbJnieB1J-#qRJx6C4_MCw1p8$K ztmh{Ke@ubD6Unom10F{Bc^)`?)c>b}^}f+J@LTx(3*fIK?>`AFe0%{|=Tjf_@ZYc9 z|8J@v>E~~*mA|eFeXzd-TCDxI0qc3eKu_-i*7HA4`1$pLbzbF+@9zTe3-4RmhwlN_ z`*8Ms`P0BU&lc#vQaSwc4qyHuU_BrIqKAJC_+{+vPk8uufj{?@TYt^}kAcJIP5k(x z>Jy)Nh~L7;SAaJ^!23PCzW$H3`uA-i58%hQ`}(gHOuXZhettg;{9hhlKY~5E2^>D^ z?;P;^BmUS|ee}gEl&SwC;Gloae+7Q-fO7VgRQ^lAdSBsh`~E%#{2lzoK;M4=ywCp4 zM|^vq2iE)3_I>>?0qZ>WbH4m*f}{ETC$P@@Jm~9x8(8lLyW;ur_1nmAo_BfC-~W){ z|Ka%_U;iv{_&mgqp9a=>%%E?c0e=7AuJp&R0_*%!pzq%T)_I@%xmWZ3ePF%+>jmHb zUjpmAZlK?P0)98~r!e2I0qc3Rz)#--egOX>%=a}r#LsB|3D4he1->8t4D|F)U_I{> z__+@pK3cygf%QJiU_U(#tn*WWp69@yiumy(z(0%r7;>-X^E<$Lzgw8!9|DJu+W#wH zou3uIs{TI!$NO9VqWbu+GhhB~U_GDrHy%H4=+Qs^_w!!fJPbT0zGL$vzQeoYlRJzr z*e91%{@2*&9v^$a;iK^k*WlZ0@JE34e%vooSN!!+;K!KVW5DvaUjUB#|5ISSuQSZ= z%fP=F*=zp}tn+{mc>a4}mxlaD<9R!zZ}-@?x$z~Oz`Z{n>*TWj?%tik)hdS6$d zj{;cF1HIeh>w~~L4;kp~ZEAhg{|A8M{i9z7{@kyu^zUx~>v`6n^7TIstn>Y!_3gh196p-=KLYFhwxRyZ zzjV7ztbuV=5=SIOx`i%#cJQ1<_ek{kRv6%ooBbw(e!)M>XcT=0(w}M z6}c>vL6uI1J83=7rWIKgC&?f!>M~2n)HZphu2ai?X^Gj>VNNoJ#eh^#DkVo-K3(dU zl3S%@5lnqXZ%g{E>-nAGVlqpoO(kU?TWiL5k}FXocaV~MzCjAedZW9e+th3^Q)guS zs?u_lPRRmSS*AF$CrqoF0nRphTbjs0R^`3zG@lf8YT3xuf>L(HHMc{v6LQ_8me;eW z=GjJPC#toxsali6d8!<3<2)VIQTr%T%*d)?MFedb{!y(iKCJ z!*V`Pl@i{Nsv;#%Bw?mdedpMBXl>d(mOaxqRH-_d`qF&as^`aeSXenErXPdbo9d#eyp7Sl0=u2f?H0Hdmu_}CTdUH3 zzZ=!<_jjYJ{eC}!$nV^Xs&+Qd>~5~w>1@(#3+%SQ9n6f?2x%*Bs?*(#XUF6_$zZtA z>1_8~*LPb;==55%?)18?d2RKQ^Ly{zKmWwWF3Z#O-S6-8V#wC2L1d>r>dn@;HkmTF zo%84^D=8Gbc~Vy-Ov_;> z7O+E_$@!90)9Iu_+?NYd33Htlscxf`;%nQR$!MPE&#qSmmC9fA-l9Ibxo0=C?j#?& zdGRTOb`$H>rFGL4NDTEeK*!pou@BUdmGl!7Zbe>6gU%$we4HJV1n;~Js|T*t*5wNn z_qKb9|FM%`5LNYJGy+9w`sDeW>6OcS`)SJk^ZZcBHs@(QL5P#9w?g)xxRj>o)WdOk zkd4zJ+N4Ue#hpaC6vyCkxY2j=>6A(=@U(CVn7n4PoT(|+$mCcwr%bXAGBmZSF6v@j zF=j89B$ioWM+XTjmP71CmAk9b<1$DL>IzCAE9J_&QXXCs=$4=M$oYQWNa3k$yvQA` zY=&O&hi1jbnKR%|>xSAPqvlk@$exj1aL9-!SVn3F4Lz8|Ce8L~7k5I_tn3sc%9E6u ztVkFSPJ<$kZ3$?rkWAl^oNCC_&B2*Gv&BJLm$PD^T78TuQAwwV#B`QiRNO<}o^nwX zba-AjNzCDD%Ya-7}#W-Ey*6Ceev|K+!gZ^I_QGT%p1L3DU=m&t19i1^K4*0Pm)WWk~lJ*l97ClJu@ou z@i1K)39_u-eBMcr4W;$x+Gs^zkd#&z-%JUcYo{@8W*CfA-v!i)k{ekLLI=>109X-gH5l_`$8m9((-C<#XrL zE-CTk&N#`-vblMi3qlV#pM!KzElhY>#Xx@PtSs?9W|_PI6Px*DRwcLRMV()s)+SHP z_P#~pSDE(ZAnwy!%f-li01WfA9?Yx*EmG47!j+*Nn*&=OTd_(sB20Ooo!30eJ(qIth75! z59Vby93Uj(0YS&1vXKgGDKw(y=E>lwoZUWRu~@=^4HaGB9P0rK%P1TdJ4y)HnYwPp(jc9e*Ao}`!euM#f^P3~VM$M`hg&kj(m;7}xqoQ)fms1`clP(~j-N+mQ; zkIJex+YcSx7A2}`6gy=!De^{1wGRjmNYAOG6~4W-)nY^<4@Z-1kdn&1WAtN!w93a2 zaXuuRl24Fx<*dZbXEw6zz&5S6_|LTrvDcz~iXGk@{^Kd8DXAmf91&pNYV*P*F@B6| zdwSl(tQ+V1CY`R&_w)Irm?BHU?SXa!A{NsI3z%lvFm4g;eW@?TT!DwQ6*rs0aEN7IsD?ajX_8X!YD`rs(!^G)iU} z3nPWB4E3{GnLPt*8WCueYZLYCWx)=yFR8G76fMlI5n2}Qh{IeSe~i6aYgKp>357Ng z!(OIF#$MB>5EMFX$Z4gYKpD%4L*QxOlV~FpovvHgbU_mi^Ew-}mlqA6l2lw8))r`3 zPD)}e&pIB2TW0b-l4&+At1+(B+T>hdNYvqOxAh&3%M7cH+X8Qox+rj&YiqYVHGv>b zm&An-B%-xOo<@u6gsP}zFgrfAk#qoW)IPRmTq!-5o+J~aR&?JYe>|^mICK62lFIsy z%>WbU=5jj8nC51CYKSdiak@niaPC$_ovsbrQJdqeR)CZc^MPkBxdlkFTR9f3ISO$b z63a0Ruejw{%q{kaxrWp<(i;}l3`g+_igNE5Z*OvOJ|}VvRU#WES=F+OoK~}y^t#O3 zi(aRh{m>$lV9**vd-1)zi_X*%wly0>G8|%6ia|7HV;EEkRyL@f5&(~9=|p*a1>e+c z%eD=ioFrHI8jZowkeTL)7P7R$5^MA+t}0~?2nl8npuD(lO+wU?`Hs3gi{5aC^$qhj z5z>RDv|Kz$U(qCzC$ff@7d|1q7L?IUFdQor+UnE%Sc(1fqeCg~;iAQZe#>Biq+4ka z>!mFr8eJFY(#)q*$Z{ptgP4+qD#XZ<#QJhGZ_Ko`|ULZHZAL zldvn}P&0#~vSBdF5rN)Nd7?Nx8uP6&uGwvfk;wF9|E@7SWPR4h?5;Ue;F3IHw|sMA zI!i1{nT?MBPRb*jR!dcQg24rv`*_VN6o}g^X%~+x$nZ5Dk-AH=!60wju|`(-50gm8 zX|qM*&LRPE)8Z6qd`VvX4I%iP3m}Qa_slsEG6Q$n;z`b**bW01~SLt5%HcdHX`vD*&852TwIO_#K-g0$XTD&HmM@SZ3|vi8gVKE zH=kNefa`uuR^rXI=JpT~3Hcp7`XG7>Osqz>+tA{HFbZtyLmZDAbHu8Jjg6?xS+Jvwa-_OfY}D9TTeg8N0hTWNLZpWpPVNg&aTWB^(tbD z2QVWNpTjFtnI~weMN3O@iT$T|?%r}UVN2{Oxb+$g5dn+?hElcBDS6sx^M;l)98ekLxLNF(sETjWjM5cotL6ljRdm9uMPP=y_M z6^UIQ;g6UNO8`*uq!GI}tyOc%)NO%4AE-bEJ@tGaZ3KidWg!TQxU#*FggHWSDgHHh za>K-YmIRT&Ih?RLAGRr1W{>dcwsm1WXn0zR@i^sDwkSww!}1ZKyaz*4)0^gVGnM4b zvVl&GCMYErNC-d0odaMyEBH#>5|mBstf0GYvvhZ6heq@3dm=(h z!^hEXj;9KzAXbKzR@qx$?wnqWVa#pQiX}6mvyH<%SyyNydTs4C89pL`)xvw~oHlb{ zoS_$^Sn_vT##cbPmQI_g8eME=6OA1fqZ1|pwLCe*yHpayft!4>M1#et;01a}le_;jCiLzSOd2cSvV`xM3)d_)MyH&b)?UR?nmIJLOiN1{%#eFX0>;lx^2W{Svjc? zqp$E)CdFy&h#2%bV?KDg~}+N>E_Wns6K&h~QvjS^<3#WjM}piNr! z@69!qYM#4erolYEa`A%nR!$6|egg6z%bhL`QOxx*LyXDQTlcGQl1?gArarMwQKU|Y zg$R=ij5;;zeSCC%D}K$$BqZFHmfJ{{r#x~YE^?6l(S=Pv~zw9w1*&KRXoce zkW<)IrH#>x9)&>FNOFoeS8N7CJ|VTju7s#k2lN9=ukg`mFetOGkN3>HlkL#nD%yMR z7y)#ariMWy73jVlTpizXM1we>{-o?;y`P*zBj@~85+-MV&ugP2!B(CvkvKrCUS zVEi%3SGxO|3MHFO==8W>;5YQ^{rZXvGu$aP~>*4kg!A{^6j_*rRhE1;4t`73E z>yK~*p$iWkg~b{yIK!o#VDo7l6~;XplQ1{P9KSQtH*3Kv&T#mnS4_zajn$(kA_MLh zWv%?))MBV^NXSW}6;)c9GL61gnM^&Cc0M@NoN97AiJGOIIpH)8(u_?Ye~%i`a~|f< zsD0~EX0#&2_cFT7;Ifk{!8U1~QxQ4FjA3CNBL23+(zcmGs9BV4Do8R=^3(}m~UKeFF~gMk8V7z^7WK}QJDtug5UI<7psGMs19`E}DCr#b=geGILoB24snx^G5E6*E;L3F(8b zW|Lhfq=Kx(M>EM%jfSJHj#TS>VBD9O#BJ&#pr(gVoDFX+*uP?>z<l0%q2YN-MF}bMvebX7C1Q?!Rp+>2uTD7WL==Ogu+;LKJ$hhn#l?+3 z>4U-{nBv%0GU{IZeN>uzCQF2%>?kW*u_pS&47;7p34#PRZhZ{Q@)-(wEsA|qPv2{NU&~kZF1(ueAoASnCwO?3KQ?aF z(X+Ep@#T?UtM~HjUzNQ4`Xu>R75Wd&+vjKa|GU25FT9!e47{25DNq>tRX_UP;`_h8 z-b++?=|SF8!Zr1)^3e3N{Qd!dZSyU>N9`>RFQGlv)3df8^7YQ~_XhQDQ11;Cs@?;9 zLp?obuCb~gJ(v76i=p!H3H^SU3!$F!6^yB;XM)2=_4NI9zM`d9nDuX zqx=$|yGy+E8XxW&4ErejP~ds$ad&;T7t=qz9(`C#>5yfYtA&zpi@E_}}`YGJU_rm$qj7u}|@1 z_ZhDSSatMyBVY9yKEFx59}IGG-!kY0u6!?0WDILqyzzt5J;@JvYk{@ zMVHj*#n0lCVJlm-v_<1~Ee)<#tVq#PrQ4KcZ6=dh`Lafhib|RN{oaq{l6L>wXYcde zob$Wqew=&mxu5Uk*jb~a+0~L&)HvLb5)mo97k}ImUm`w9ltRgsQDTVHr7smpUuqye zGWXlFd_aux$SjZ}hg`gc(PhRSBs9515^OnG@vLEVAwJUe&BVUUYOZlh`X9d9z37=G zW3sA~wy!;Z@2x{_U$gRO>Lp`}E8tSy#{T%}C_h6z=4$i2_>1J0FDI>hrEPIsiQ($0 zQun$yxq7SGK5;)}xVnwDO$o&=PyMF4ts6Hr+^SkVdFqg7t;$WzHa=7{6Z3*!Kr=6D zOW(LLMZ_f^QgwvmRW8YZnmwTD!$f*XM~EbY4lhC((kUoMijrBRgGF*khrk-7$sz@$ zNw6bnfygA%bP+%47zs)VnV}-3q%%ayNTE@H^a_!3(tME$QuKQr$MLJxhh7=vyK#K9HCG}$jN%Mjt4P*w1Y$MGP*-q*cX(Y|SxRGXx>>%}s z>?AD~X(7!L*+n`^bG zPMRk2Drus~VbW}oBcvlmj*(7=^8_ZJ=~O9$GlMU!z^MJ^;jWCMJG)-$ZI3$qevN-t z<9BQPE{)%*@l6`PUE>=xzSiP{X2Ug_V711t(D=m~U#{_G8egLElQh0S<8w4Vy*Jq3 z<77?X*7%E`_UGx<`12ayt?{Qc{)EOK)A+*$;4pP}u8fje4_M zqqoIk=e8k=x3cR^LyEHv`BtROkdtnCJo-Bb45^F!+>j&}(lLjVJeBu%#RWo<_?A%Q z@t=nx$JJ{oYlE{`MJNue{>U&7YfIDL)V5AB@})oQO=3~k7lEHL*>MrP=wvMiOSVgcI`9d;ECa_QI~`w ztn>)@q2R}Ze-(T@`1jSBAs-q4to}4~r18VH&xTGljHPO9YJSRsBssS|-O4mi-H>{h zF;=~uszwOXsfqZ18@(19ZcA&0_MymEZFdiwXc#|Nd((boRI7#Q6I1{CSLh+TqT+iz zx+AqU`lb4Q`jy5xbtrx0_19dA^%>0YhvLNlW_;x-F%<0A& zb!%qsxPSA=xhy~25H9MLTYQLanJK zwWXHSwrRdPn6)X}vBW?N)hdALy-rN zz8+q}DqdGljT%4YCZzlcDO9ops?cA$L3%cwENt12}&-}pB* zBX^$hFY4~x{Ba*A$T`=k=B}Ra9XcIYVn_!@s}u1wA}e9VQlWmGJIiQNM&4{_IVUfF z+`psP_x_Ax=w~mo{x8KI%F8uYsps-0dX_@jT69YVa((JzUa~Ql^?bWot7l;IY?><2 z1-;mZB~aOgLq?L7;JNizwTR=%k;w`ED)Ek)8V6wBdaPolGZ? z>6p56^b9rJBsj>NsaB$s{pEjxj zGFRh{E*F;3!HsW6ll*VP7eD8E91g2J`I$*qqoQLR{{`yT`BzLxLV*OV{2VGA!w$ZT zq4J>8UGZ4veApG>$ehj@YIH%`1TS)9NsX{XlbtggO^mF3JKBU24M=0|GIeu7{^%FK zL_e?#xv^6*^(|nQEVWD4sXYamt8QaUfzHSmm>4b`>@L6%>5E_#IL0BIECb+A(KvJ{ zXd{78ILp@>eF3$x)?v^o*{;zGOWhbRXIZvpks3DkapMiuJT7xcAsR`N6_HP3v6F+` z>YcHBJEHBL|4_Kh2)DgmIL|PC zqEd@8i-y2pnK109vDniey5!s-sf@rtCsQyox!3}7j$2F4wnb`L(bHIqJ}k-{^~bn= zD-VW~O|pmY_eg(Hjh>h{#8G{pH9$)y=DM&jY?@eXe4zGB%#Z&ua_&%XO`JMn%mtoE zTB1CW4VG_4a9K(kgvLKnsgu$&9!5U#|1g?}!_#U=YT(*msF{=AgkKnwpD>EmQmuET&borR9hAi>D(vw!N3Vd) z<9jArfx{6FLSeXf5x-PK&IHK-p}!|C#7u|9#<@KdozqdT{DUZ?gB9Xu7XC!|i+R1DqUF)q$zL zg%2Vt+kgQg@u5)omvE}YKzSG3CX4|;DLBZ!0G+(($6?SIXk5U`KN#h3!_7`Wxu2*J z{&~jJ>SllDv|V;S+?H{BTNzmi>;h#wf5tu>*NEi>WgbFXxW`74)n5O2V~Kj(KYrC( zwguJGVPoia)bQWe#TC%&Z;rl!k!BsYo8^{A;tqricc?l3DwGlEMcM1ISkhkb@R95| zw26yzb~5apGfXX+Hf974w@I`Nhmb=Whvx5uFDI)xlg9^>A#wZf>x}a+$FX;Lcp-8) zc5lLf?8ecNb|3fm?A{m(vr|0XPN#yQP$UToB_MsOtuPE`+z$d@D!HvI9mz$tVFD4Xq`P%qfA8`9Z;SPJkeF{1KhW%LR zR-1~4$KQ))lhuR8BZFV#JnV)EPRC+LosO2G@@;nIC+*79P=cdQ#X0I{P>u_F3eqd> zyuU-<10v_*Fbj^ubKJPUEm=9e$K~_#uvyKo`uU>Sv^0 za~wVGM6?c5p>QM2Rf-;RF~Q?YlC$4Vx6|-KlvHDxG(1JUHX|)#f-S)uNPW&s5Q@V%Pl7)Gf1Csm@Zj@?4p0j8+*}PB%uWg;(D0`m$I3;>zOTpY`%e z96)2=@8o#~?`1_F^r}l&E;HU$*OyLrz0+$~;WgH&k4w`MlLPNX_dyMhN|~9T_#Vo0 z^V_3l&YT*2(5$V_JRaZ_fiv-bB4x` zZq0FHyeka(1uRtuT!lD9CZ8!RZjJV!%X8nqt_vnpAIuyZ{}AfvRjF4^9D8gU9K?%> zjEl)yr22i$UF~qmc(i^$@I1r=s`{$T`MZ#cJ>qppet!>AOA+Jz^Wg%^BlATb+CCck zZF%$q?js8zV_ycLX7*zhusNve&{dh&l}~HUIN*OT^?<)A750q45s&i5N@w9I+>Me! z4B%{(O7{PU>7aQ?_t<%`dnLKinj0F8RL0e5!H+(*hTnq{-P-VbU|T^N=?GHW#?;Xd zOr6q5X#up#^dex=g`i@${v)pU&=k*n=JK^cTB8Ti<}+9Yw$-&}M-#9V{0d;P-(1ha z;#JY#(h5+iT}qfe^=Dy3*|=)Sd({v=WJmD`j@~A$jE)^ zi%->UWn*Sk;8BEU_@90nJ4;>8+qxV`(`>24w#y@bk7DFUALtK%shID)V2U91P}hL7_i^4)TY> zywRrNvK5E4-LTq7XvlmIL*9b&FIYGj{wE~xpdSz60`R;h;1Mt?gD0`T!t=PveLF9Egtpxkw)1Cq@Tg?t*$O~nbWQb z_Bsw*)q)lvmLpamrX!w5df^gv>6#*Ag_2cap0(CUQm@TQn-!0my+b#LLoR5G zWy(P9q&rY>C!*Jf^PQNw0Gieuv5*?F$+PtYSSr8Yc>y!Hn-=tSM6vdu;IhcS`X31U z;FuyeMFydfBj_1?Bn{Wfxc|hJU^Z6Xo(B${K8V+smPW3A=K6G0Y{fsvA;{@OOJ!>Y zo=&rOgj%DR2`4)Umsp2Yic%tRx#Xhfu$OKEtM-HW$jHn;c5K66uc2V@;c zrvnCH?sFgO=H9`3Q<7uuV=%SzOwvK#d|5HfwZz9ee-9F!F~K?)c?uO9pih9R+BpTT zUwy0|ol~4}98bYVvfGZ%S>+kB3uSgA?n6AVL=|6qR{0hkdvtL@Sv5AAsSS73OmO_g_FmbJXE=PzGC$4Xg9^Uy znS&^T&vDorO#IoU*yfiEL*jvtCm80ZyQ(-m5Ca=7wP|VQwOHV=+sF zh4JZ8@O6>zy;cIp-5Pld;~OPH6Fh+-POzaM@RKe>ocU1{pELU~N7wQg(l~Qu!PsLK zXO1vDrw`L3@b%9b)HumtIT1JwL!98-B*KY4OxNM}R&{jQlDYi+Y=so50ORPzkF~@H z2FRU$2>LVhrB7>^tsTkg&rkUU4O3n-;&OSThAHpVFvR+(md z!3r(IR8-(#r-E8djxQK;0TqDsb;FqzT=#CEpszz|W&>Q2t&k$y!8+KkUuCXH8ArwV z^9d^qGgny$b6uqzpJ$%GF*i6#8y0+p6yg&QJL-08a@t4o`kQ})EbtL6|9(x*{6{p* zCqH5>ze^g_gWt>xzU1q#mc`mNOl^;7nDS#9raWi#<>g<}Fy$-o%x?wDyF(g=JSg7$ z%QK{Fm=#>muxW>a{`{27*nUiTj)p0(&@knd8m>V5QaJAN3Q9E03cTYlm-BJg3f2Nr zQ`nE$z{?tD`JF|V%Ud*Df%awl#LF}6)G#a9r(rg*U&EANoP2rttSSAN@?F#Wv8kYj zZ)AqUGx{?S^L5t>*1F7ZKvu}YDFPM&=FYdHT;Wt} zxxyq3vskHysb`snDPN&s%2#Wc^79&o9Hzapzd^GB4Vw*UnDVBp`twu%tcEG?D7##q zd`&;5e20b?vHd5t1ZFrqtG@sn=+Q9cr)FO+@76Ho7d6cC?m&Nj%6%GMMAw?6B``yU zhFQT%4O1S{Fy;F+Ou2bI2jz~PjgcqDqm~%<4$kYm6*47Q0N#8-Gc#Cw3Get;$dajG ziP;Cb(pA7!z|P*X6u3siHv@0b@>3zc4On5QtcTnQZuvMEV-GIQaWYu5HF<77rrfJx zR#>26$_q72d98*i-=<;8JLWm{2Q4r6*oQS|x8;S?3R%J)5wi#_@EzbgG<-jB9k62& zHoyyw6^6=VPE|-ikIfEeIqi+GxA!_H0oc^ITs^-!x7ax(@(QpA^*ET<0Jh^C3VBWV zIppp&>Z{e+!C$dSduJ5vXvct^F4;=xXr zl1+J~hA*K!e*-}i43m_g42iQQ<^~9mAR~b3rZrXu84Y}(v>*F{oxqFDT;TMXxZHtf z`9%ZdHv@Ct`E2=mP445Q-iXVUa{%_??sOkA@X%Lh7dU9$5`fr%$fJ;V!UF6;D)K)K z%wKCTcrobvv<8^}mjm!yI_9K4g#^z0Lh$TCH?i$Csi^S0UI2M64ZvP#!nKzZm*sPS zyEO&JQ&T%op)z3Zn%&@oEbvcAXheey?7_9bZtVNJF^rV20`Bi&rc?tvffYW->!}@x z>mlb_x)VIhd!R6Hy9~qdn)?vsc6&H4puxwHz+>)3+Xw!c4PY_nCd3N%1AFXwLyP_r0}J3roG#fvfL`HSUG06T#S;(f#pus;(f;AY2(?NsnJGVtk;`Pg8} zfF9-nZ--OjZe=zwWq^DhFt^LawtN{d*XBwauLR~wRLSwDhU<~wIH4C#b=bOULTV}4 z0J#&W@FN58-T`<6%Jb;w_{1*<$ltLs+cz!HH6VkbdA$#Lo*U?Nkn>`}QROTc1?(K* zQ(c)-q?M<_^9JDM7B<^A6{tZ1FOZhWhf4i`0^c8ip8!4u9|@syTJXof+#J$v{L2CP zj{)<9@vJTHFy&VJrUGY>z{939re6bd@vX88494p~$C!Sn%mC))(reEWKb)5bgq1eV zvtAQW+OqJ~1MpH}yM0rE+mOJ+W`|wDHelY>EE8wRn`l6vrVk9L@aX~g4h*Stg{Osn z3OO&MyG(^rWC-L=`=$cz$e=fH7?`(H$0BbJXaFA?`U1!JQ(zue9WVD_I`Q{a&Me9X z?q5f;WSpnJeN%x_WZ-f7qOIXvVBT&!LD_?EfbuxcU$GOf0N#fo2-x}806T#SZ3ZqV zz;`$B%)cJ9f`?znqKzK(pZE7|c7_KARPf{gJQKJD$92BXvBKvyxesaY46w*6kZ*@m zHrn}r3(PYdeqe2ue=mpxUcpN3g!fq?G%m35Ux3RrFTX?#FZS8;B=m^)3!0b;=8>kw_Nh6@$Q#*tJAZIGGC08p<~raF7{dzitgr^S1qwPEZvj34xd+Zec_Z-4 zxPb6*Nc=Fc6F3ARVBQg(4!#J?CzlS{_u}ard-Ms!SIln1w2f$QY4!aJFtSOz=vnH9bK1X7}MJR zaBG6$D)FoTT0dfy)*!X5*%{wRhI6t6aCKp?c%iwy_(oa1B9))&ukWty?#5 zZCiEQ`$lSgL-p1ME7dBjuB^SU|Nkd`R(pF};T`uFiG5|&o=txoQs1z-uD?**otu{$ z>eqEYF!rnKx8x=A5wr?xc%8a?OWriTB_GH7X23{J;G|%{KY{eU4D)I9T^M+idTUEw zJRe2_>ccJh@q7|(Q5jqF6Zsgr4<_HC=4{PN)!iY$0Ty;Zz_kcsl@uc1nZw#)Rg)$i9E;VEX9Gutg^N~ zCEomZ7WLiw{CJ*Q*MJ+Y+K~=~L+v|Ox@V30yguK9)rSlC2{pPQFOeJU37{;qs?`n2 ziRR})q_n6l4f!to^!D+Fajp^7>Xn9ZDHYZ5T)dZZt{+z)H;ha;jUNw{B&lI{j)~9t M9zOM`JzLWL2XA|6rT_o{ delta 12042 zcmcgyeRNdSwcmF#6DC6f6UY|}MuIjfD*BLlzu%pE$st|+@2z*% z+S&Ve_Sxs`bI!i!YjV2I(R|LR&nhg>Fr-vOc30t#Q(UFulO!1-IWkxbk*fSTBKdO+ z(Bm^!PW1zkTqrEiql8?#iR3WpJTf*oL=r7ML~+j}IY5uM-;#8tu$o~kO)DxGTk-d= zT6?|q$z$&=7}xLK|Lk?~bJb*wf}J{R?01#GzEnNwXmmCnO0I7VB$OJCj)2xkf(|S$a6#%k&h9%m3*Yg67ta^%gHlDD#+21)#R9u zN^(DDj664pd7#isWE1%yk!o_ENDXk$UpMB0I^4i0mRCjtC(i zD-t3fA+neJ8j*eE!$kIz7l<4n42a9Chyhc-I}~plXqxxttMA%@`kt^G(D}<6cw7hM3Wb3@*GVr*W}5XT&l@Mnw+o6 zgDwQShbT=`Bx|x$lP`VIUH*b5pV#EGn%t_%Et=eH%R$W3aT`EBqRCB~ykC>|YVvMP z-l@quG`Uujt2KE8r>y)RWr;u+*Rpdo=CS{<}tiDOPBXtJLhC<=aSnS;0vLI5e*7O;e zUY6Mq6?roH1hmQipGUi7Pt>pW^vS$tP_KsQDCD~9L*W+K$bAh_SA8h*)PIB`;tNF_ z-cUG6Lg8PkaG%WLrL4Uw(7w-*S6VU}q7Df~MkDV8UGsh@JZm!y8x zFT;4J@uhwv4dW3N?*AKOrP`V{GSzVz&dAQF_@0VxPi=@^ROoy7yBhjgpc6BU+0rrHkh4%61EoRPfy%w8 z{Em$I1H_5=0ZSynAtuGy)k>o(O{?OI6Fk==`5Y5vvm6O4E0sk+H8A3 zdJfdF>(zq;3RCXA6ziM-H?TuTtJO;bM)u*1j4obM-G;$BA5fnT*yuPNPqBQa z2OR&i*Q;-{hxW^Wxl0y>zm3JRtFX`)m8($$$EQ1yooHoy(7CSZM?01@-aqi~M$(r5 ziFNLkhUi0T{oq{Ve)Ty1u2%;KXQu3c<}QQ=4gR3s89aQ{Qsn#%IdrKA4Kqk4fR}@I zf%byVLste~S*{9mh8n+Db93^Hm(}{5>y3TtrJTHi=0xdqwAQtEJ#@5V*K9+I5H+Qs z$skt3iWkjPmvg2X+tifYX~stNKyF^a(=dDJ1DK&#vrzP(nEf#~$5^7Gxg(AFD%CgE zC^wB)YsNj>WP5BEZ9eMDm~tD6x;X)ucQ4uspe-l*=`<(h?PyMHbeOnnI##-}P}m5B z!Vau-300wRkqY~+3vM4`NDb&Bs0-8qY6Hp8IGu)kO2c+O`3dA710B}%2P}D?mS@|9 z{xJ`S7pozg??Rz^b#TbffAIRZvCdhTY<7%MQ-#iLX9s5);srH94uR@HyFgu_Hc$)b z1ZW?q8dL+?02%}v_k8uMp^LL~QMDa;jF_sjqaF8s8#{*x?3Xt+H3@2`+-wFW)hpGC zyxHlWf76{iInWTL=0^2e-az9+btW&^M?EmF1WBe zIDK{P%zYD>ZA`H0o~_R0XD*(}7RuTpUnBY*IAqO1$5(^05D7g6oQ>7i#?a>sV(mUnsl}JGb}|k_hd4)QY11#!2<#qCXkC)Rf|%8!76Y;^Eol zIDz;*?=;$WLI4BU9MztBYO-o!hr3 zdZd51&oAPZA^u-PlTdF2Wh>B+K8Q!Qmxz9~$6^cKt%m_S_!|_iHKa2EjX4D;LKN_# z!VQ-G*VuEo7o%)A{}k5$$BuT0ERNvHl z_u5CQb+qsM51|;_l$y4PD-;U9gm6kbwkMk8EpJbj`C)!pg2QM7{Pd!4`@m!1y)7Hu zL9-KK_it*Z|N3j5f_1L%3_^85#8VbZb(YnoCmsl;Zn3Oz!^O?()<{4d^k*h*LuuSJ zBVP5Ef4K2I^^Je{;-_OVPcqz2!`Q6B*c<*W?OgSe{dLiuh!Fb9O_y_$a3EwjLv_5S z!;J;z*u4(>XCY($vJ=qKNN^5UZL0don4tr1hMJ>7b6iF}31}W~0`Gd&1I5E{_d?_J zZ)r>LFT|O5VHo#gj~BuALpE50utrA_c#&&~L!pQV&Lkp#tmO~}#ds7gFpv6TGyjJX zT+BUQbz8~sNp!{O-Q4E%{pBOWJ3ngVZ*F5tIDn>4#F@kie`>uA?~KQ=JAI*WwY4Um zHq`qi87_qiz3Q8ifj7D#aSqs&!Dg`d7J`p}!C+!vC~_E_@o#?%F^N6f415u!eGiAm zj(7C_N_{$Ztx=|KFCCrk`3l7Dt>VTByL-P>+0#lK>%LSsOPiPFP@EQbQ(=bzHn)RpB)rQ?E_zpX4rkJGu{UIMtbn zc}d@1h;?$u`LjxzG&LVDYl7?s(x;*3kx$PJ-^}9*KTnAA{iwaK~Ic)zJ zcm7oOwOoYNh2JjJvc*QUDt|7`|ht~u>bK@M=E z@HkPM6D`hFpIz5KIK;HCYo7#uR-0Zo#;yc;}GF{BU6Oq)=6COLaZe~^D0F!?5M zv0DFktQQG#a|CZ)9+q7#4bk&o#5$kF2fC@MAv>CgH2~}3xjBCG`wNR#ML7U_)Sk%$ zgYzMM2yGU%Xod$m4(M>?w;{h3Q^9HCZIE{YP8+`%d%8Gvj7)w(9Uws&GfJ0-!h=x9 z>N3<9;3U;YKZRT3-5H&NeDUv$I((tLh=FkDVf#Hx$wR|97C=ERECm+7Y(D#Jj{lTDzt}-$qVY>l+55?Q87-6k@wjErU=iM*$y_a zJkX98#8>c*XM2EKEj^w~UpWDXo~0d}NrsLAz%mXv1A8|{Ee{^D z+-tC_hyB4g4u+2+1FLxy(HGvtMsP02OQZ)A6Rtu&4QTi-IA%A(d@h!KQ2|~$BQGF7 zfC~3m4Lk?TM!C!+T6ues=YpLddDIE=KgRSenm@u}epam*rxBpzplZ-=PzY2BDhJif zR-aBS#9ea0w6Vr!HFw$_#$WZ$-eMVoS%ka|MrT1@AI_wH22CJ> z;Ymg725*1Vcg$9fvL}qM)stnpj*KtVp|aH_ihnT+7YdBx0ES>^eT zC7-LQ@(sIJ)H62>RGo95 z>$d{i(C7_oszxtZSUO?csLFMBsV8nKaQRNgf=1(zd2c&hrFi&BR>rct8{NGP!Rjif zrW=B%eDjwGyes4948#{m@OpyP!Ngx)j;(7l3~>P;Ni@t~DwZS|Jio|AL#G9hG5{HE;!5k?3K5+$O8$;r- zG9{Q(fZ@at#c^+wbGYIdzq$y1Sm6U&JcDx{pY=G#&ofA;5d};Mg5?B>zg{sVn7;?% z4ebi%%*LaIJi(k*2-bWhn6rzhxq=xDrSTuL;s*E?g$V(}lpuK7Kst2=Gi>-%lX`RI zO*8mQTRf%6EC{w={GEz;Ll3>(4?#buKNV0*@5q@^qZNA+**13I6JW93ntnF0J)R=H zh4|ET_39lt{k+z&+Sx7B)u(sl1o@g8Px0D98m9Gr4YRc!S>5HSKcZpkM+~@HU#?;5 z_i7mSL21%5%nI-lA5ST!`$Zb2{(y$*z%dO|-=$&dFKC$h6NB~o7vc9bE4;)S&mHOA z1!!QtX@YZ6Am&qJJY~r@5H139;lWMU)VEGoOIPIvtsuhZZ+2s^HcRx##`Y|p(DZb> zMZ<$o-o|!$=`k-YSG>wJ+Y2UZ1xBL+8`~B5H9d}l(uE4Zu5`oxD!As|OvRNB^*0;f zY8+1~QVr3@R{dk8LMy;=<4?x%)K9jqqb!?V!7 z94o%Mf>sT)g65K|^<5gK{!(eTo|w;R@f2U5`Q{!^Sz2A@+WTN$jN z=mz!b-8sRmadtiNC3lgA*^wn0rrBx@Q(viJ>T5Mj{SFONKWKb+d(a2PuVt7GXxMB( z!_+rTys83e(J=KL*Ilh2G`Sm7ze~fj85;Yv3>Ija(rrKoWNJ62{=9~%zo232lc#l; zr#?-?)cZ9&o1rmT%V2?9HOvZDYnb{28m9iRhN%x&M-c8I)GyI6^{X`;WCpKw@zfVL zq&Vh(uNcz^Ms?>VG4jk7o_07}O+BG>P_F0Rk=ryRu#ym;W%syN3r2SLq zo%7VIYqEn6vqfuz5$p%MfbC>D?OHr4S@;sLop?9slYrknCm3=7 zGVL>g?L_@Gz>HcSWa`IidLKWD0^CpRbEFR^jd`pPN24msU{(CE4a5pWmO|fZ1w|^# z-wDjSI+GVcut95p<+t|0PwJST#6D#3yBPtQ9v%R`gbF!`si^RP40*iP)>oxI^$ ziFg|HT#0r-rhN;l=7o`|AD+B^0KL^-&}?ueGI(0#+|pnzFqcX$;l!JO#rkYGA`bx% zD(jx2hk<>VW1d!6{&AMK5*_+=4}2Jy9ddI1Ss{KQyOL2j<5A>iFZgWW-P3>mz0d9A4TBN(||-fH2K(A$YU{ICZ$a0%y0>$FwAFEDQ`@e#}t zh5GcbEQgo&c>k>!h~MJPHrPNpFt;;%jtep5_RW?fvJiUS(RQLN@t=DH=}PGJ2JZpp zoy{JRdx7ot%_(>o8Fr!rzX0aZ&5q(1f%z{T@j1+rW5C_(LY6f5uzw$zXUj{diw<@G z^Ul}mj^j^yp?#iiYpw78TNJ3o6qH#8E)=vA9ZCo8z;XK`WLC&u-+30ahqwTG-fA~l z`r;n;Q+wbKdZGV|aC+sF6)OyA1$@Zc(4$8c(C;Y2JEB#7Jupu+_}5F*{(j(kAO2Cv z!nMG>ALLtjCvYVewvdJQ2AP2<_E{MRfO*{J5YwUG1KUH)&n^WDUP#Vc`ZuAslMg}% zaM392rjThL1Lif#b}$(uwgLKT)I)u6AToIT=23?kg}`>=kY5MP8klK4e~~hA$}YNyiinH4($f6z#Q|{kW2O69u2$EFo%KbN_fp<8Oa@ z#!$~ZuvuOE;Ifp;b@#3cthnPxt2WG8cUR-i2Olt0zg`2>xSAu4j)&$LDzJG6{%7gT z=G-K{$}Pcaxm>xndUs++guy7(aHQ}=JlbMYyzNV>VjiQJ{|{PmZuLz5VH9Z+mn-)+s~|AG(QR^UjVuWsB{kWxM$ mfu4q47_)L*J+N(HV#_L#SMiUH+lFR6u@0}>{3fkri~kGNe!xip diff --git a/serial_logger.c b/serial_logger.c index 6b95991..a402f1d 100644 --- a/serial_logger.c +++ b/serial_logger.c @@ -289,7 +289,7 @@ int main(int argc, char *argv[]) { } } - setLoggingPrms(logLevel, false, false); + setLoggingPrms(logLevel, false, false, NULL); if (_playback_file) { rs_fd = open(argv[1], O_RDONLY | O_NOCTTY | O_NONBLOCK | O_NDELAY); diff --git a/utils.c b/utils.c index da160bf..e25e6fe 100644 --- a/utils.c +++ b/utils.c @@ -46,12 +46,15 @@ static bool _daemonise = false; static bool _log2file = false; static int _log_level = -1; static char *_log_filename = NULL; + +static char *_loq_display_message = NULL; //static char _log_filename[256]; -void setLoggingPrms(int level , bool deamonized, char* log_file) +void setLoggingPrms(int level , bool deamonized, char* log_file, char *error_messages) { _log_level = level; _daemonise = deamonized; + _loq_display_message = error_messages; if (log_file == NULL || strlen(log_file) <= 0) { _log2file = false; @@ -322,7 +325,12 @@ void logMessage(int msg_level, char *format, ...) if ( buffer[len-1] != '\n') { strcat(buffer, "\n"); - } + } + + if (msg_level <= LOG_WARNING && _loq_display_message != NULL) { + snprintf(_loq_display_message, 127, buffer); + } + if (_log2file == TRUE && _log_filename != NULL) { char time[TIMESTAMP_LENGTH]; @@ -548,6 +556,7 @@ char *prittyString(char *str) return str; } +/* static FILE *_packetLogFile = NULL; void writePacketLog(char *buffer) { @@ -560,4 +569,5 @@ void writePacketLog(char *buffer) { } void closePacketLog() { fclose(_packetLogFile); -} \ No newline at end of file +} +*/ \ No newline at end of file diff --git a/utils.h b/utils.h index 9895f7f..3d1b413 100644 --- a/utils.h +++ b/utils.h @@ -27,7 +27,8 @@ typedef enum false = FALSE, true = TRUE } bool; */ -void setLoggingPrms(int level , bool deamonized, char* log_file); +//void setLoggingPrms(int level , bool deamonized, char* log_file); +void setLoggingPrms(int level , bool deamonized, char* log_file, char *error_messages); int getLogLevel(); void daemonise ( char *pidFile, void (*main_function)(void) ); //void debugPrint (char *format, ...); @@ -51,8 +52,8 @@ float degCtoF(float degC); char* stristr(const char* haystack, const char* needle); int ascii(char *destination, char *source); char *prittyString(char *str); -void writePacketLog(char *buff); -void closePacketLog(); +//void writePacketLog(char *buff); +//void closePacketLog(); //#ifndef _UTILS_C_ extern bool _daemon_; diff --git a/version.h b/version.h index 304dd97..c8641cb 100644 --- a/version.h +++ b/version.h @@ -1,4 +1,4 @@ #define AQUALINKD_NAME "Aqualink Daemon" -#define AQUALINKD_VERSION "1.3.5a" +#define AQUALINKD_VERSION "1.3.5b" diff --git a/web/controller.html b/web/controller.html index b866d1d..3369aaa 100644 --- a/web/controller.html +++ b/web/controller.html @@ -1051,14 +1051,14 @@ var mode=false; if (_lightProgramDropdown) { if (pswitch.selectedIndex > 0) { - send_light_mode(pswitch.selectedIndex); + send_light_mode(pswitch.selectedIndex, id); mode=true; } } else { var radio = document.getElementsByName("light_program"); for (x = 0; x < radio.length; x++) { if (radio[x].checked == true) { - send_light_mode(radio[x].value); + send_light_mode(radio[x].value, id); mode=true; break; } @@ -1256,12 +1256,14 @@ socket_di.send(JSON.stringify(temperature)); } - function send_light_mode(value) { - console.log("Set light mode "+value); + function send_light_mode(value, id) { + console.log("Set light mode to "+value+" id="+id); var mode = {}; - mode.parameter = 'POOL_LIGHT_MODE'; + //mode.parameter = 'POOL_LIGHT_MODE'; + mode.parameter = 'LIGHT_MODE'; mode.value = value; - socket_di.send(JSON.stringify(mode)); + mode.button = id; + socket_di.send(JSON.stringify(mode)); } function reset() { diff --git a/web/simple.html b/web/simple.html index cacd294..f4c05dd 100644 --- a/web/simple.html +++ b/web/simple.html @@ -424,12 +424,14 @@ break; default: // type is null because it's a selector //name = source.id.substr(9); //remove 'selector_'' - cmd.parameter = 'POOL_LIGHT_MODE'; + cmd.parameter = 'LIGHT_MODE'; cmd.value = source.value; + cmd.button = source.id.substr(9); // remove 'selector_' break; } - - console.log(cmd); + //console.log(source); + //console.log(cmd); + //console.log("*** NOT SENDING COMMAND ***"); send_command(cmd); }