From 3d933cd76d90729efe61b7921fd794714778bdb2 Mon Sep 17 00:00:00 2001 From: Edward Firmo <94725493+edwardtfn@users.noreply.github.com> Date: Sun, 18 Feb 2024 23:19:16 +0100 Subject: [PATCH] New API --- docs/api.md | 28 +++++- .../Nextion_Components_Home_Values_EU.png | Bin 0 -> 26329 bytes .../Nextion_Components_Home_Values_US.png | Bin 0 -> 22127 bytes esphome/nspanel_esphome_core.yaml | 89 +++++++++--------- nspanel_blueprint.yaml | 62 ++++++------ tft/nspanel_eu.HMI | Bin 15035221 -> 15035221 bytes tft/nspanel_eu_code/entitypage01.txt | 16 ++-- tft/nspanel_eu_code/entitypage02.txt | 16 ++-- tft/nspanel_eu_code/entitypage03.txt | 14 +-- tft/nspanel_eu_code/entitypage04.txt | 16 ++-- tft/nspanel_eu_code/home.txt | 6 +- tft/nspanel_us.HMI | Bin 14820802 -> 14820802 bytes tft/nspanel_us_code/entitypage01.txt | 16 ++-- tft/nspanel_us_code/entitypage02.txt | 16 ++-- tft/nspanel_us_code/entitypage03.txt | 16 ++-- tft/nspanel_us_code/entitypage04.txt | 16 ++-- tft/nspanel_us_code/home.txt | 6 +- 17 files changed, 168 insertions(+), 149 deletions(-) create mode 100644 docs/pics/Nextion_Components_Home_Values_EU.png create mode 100644 docs/pics/Nextion_Components_Home_Values_US.png diff --git a/docs/api.md b/docs/api.md index c7bb2ba..0a34cca 100644 --- a/docs/api.md +++ b/docs/api.md @@ -27,14 +27,21 @@ This document provides details on custom services designed for integration with - [Media Player Page Service (`page_media_player`)](#media-player-page-service-page_media_player): Updates the Media Player page with current state information. - [Screen Components](#screen-components) - [Home page - Chips](#home-page---chips) - - User-defined Chips - - Relays Chips - - Climate Chip + - [User-defined Chips](#user-defined-chips) + - [Relays Chips](#relays-chips) + - [Climate Chip](#climate-chip) - [Home page - Custom Buttons](#home-page---custom-buttons) + - [Home page - Values](#home-page---values) + - [Entities Pages - Values](#entities-pages---values) ## Service Documentation -### Table of contents +### General Guidance +In general, there's no validation on the content of the parameters in a service call. Please make sure to fulfill the validation from the service caller side, otherwise it can drive to a crash in the ESPHome side, it will most likely restart the panel. + +One example is with colors. In almost all cases, it is expected an array with 3 unsigned integers between 0 to 255. If you send anything different, the conversion to the RGB565 used by Nextion will crash. + +### Table of Contents | Service ID | Service Name | Description | |------------|--------------|-------------| @@ -770,3 +777,16 @@ automation: ### Home Page - Custom buttons ![Image](pics/Nextion_Components_Home_Custom_Buttons_EU.png) ![Image](pics/Nextion_Components_Home_Custom_Buttons_US.png) + +### Home Page - Values +![Image](pics/Nextion_Components_Home_Values_EU.png) +![Image](pics/Nextion_Components_Home_Values_US.png) +This is a multi-component system, with names `value01` to `value03` containing the state of the entity, +where `value01_icon` to `value03_icon` supports the icons. + +### Entities Pages - Values +Just like in "[Home Page - Values](#home-page---values)", this is a multi-component system, with names `value01` to `value08` containing the state of the entity, +where `value01_icon` to `value08_icon` supports the icons and, exclusivelly in the Entities pages, `value01_label` to `value08_label`, +which will contain the friendly name or some alternative label for the entities. + +Each to these sets are sent using the [Value Service (`value`)](#value-service-value), with up to 8 individual calls to this service for each page construction. diff --git a/docs/pics/Nextion_Components_Home_Values_EU.png b/docs/pics/Nextion_Components_Home_Values_EU.png new file mode 100644 index 0000000000000000000000000000000000000000..919cd4c93f14c9a91cf18ec62e1b72990cef83f3 GIT binary patch literal 26329 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 literal 0 HcmV?d00001 diff --git a/docs/pics/Nextion_Components_Home_Values_US.png b/docs/pics/Nextion_Components_Home_Values_US.png new file mode 100644 index 0000000000000000000000000000000000000000..f3ab9394c4ed700cc2baeef84db59ece1dec67fb GIT binary patch literal 22127 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

WhE-6eJJW5iL;>lbzmT7C% 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 Qj>MiaHMTS=1wDNEUv!PPaR2}S literal 0 HcmV?d00001 diff --git a/esphome/nspanel_esphome_core.yaml b/esphome/nspanel_esphome_core.yaml index 36593e8..7e4a1a5 100644 --- a/esphome/nspanel_esphome_core.yaml +++ b/esphome/nspanel_esphome_core.yaml @@ -414,13 +414,13 @@ api: # back_page: "home" # Or "buttonpage01" to "buttonpage04" as appropriate. # # NOTE: Tailor , entity_id, and back_page to match your specific setup. This approach ensures a seamless and intuitive navigation experience, facilitating easy access to and from detailed entity information. - - service: open_entity_settings_page + - service: entity_details_show variables: entity: string back_page: string then: - script.execute: - id: open_entity_settings_page + id: entity_details_show entity: !lambda "return entity;" back_page: !lambda "return back_page;" @@ -576,12 +576,12 @@ api: - lambda: |- if (not id(is_uploading_tft)) { static const char *const TAG = "service.page_home"; - ESP_LOGV(TAG, "date_color: %" PRIi32, date_color); + ESP_LOGV(TAG, "date_color: %i", date_color.size()); ESP_LOGV(TAG, "time_format: %s", time_format.c_str()); - ESP_LOGV(TAG, "time_color: %" PRIi32, time_color); + ESP_LOGV(TAG, "time_color: %i", time_color.size()); ESP_LOGV(TAG, "meridiem: %i", meridiem.size()); - ESP_LOGV(TAG, "chip_font_size: %" PRIi32, chip_font_size); - ESP_LOGV(TAG, "custom_buttons_font_size: %" PRIi32, custom_buttons_font_size); + ESP_LOGV(TAG, "chip_font: %" PRIi32, chip_font); + ESP_LOGV(TAG, "custom_buttons_font: %" PRIi32, custom_buttons_font); ESP_LOGV(TAG, "notification_icon: %s", notification_icon.c_str()); ESP_LOGV(TAG, "notification_icon_color_normal: %i", notification_icon_color_normal.size()); ESP_LOGV(TAG, "notification_icon_color_unread: %i", notification_icon_color_unread.size()); @@ -599,28 +599,28 @@ api: // Date/Time colors ESP_LOGV(TAG, "Load date/time colors"); - disp1->set_component_font_color("home.date", date_color); - disp1->set_component_font_color("home.time", time_color); - id(home_date_color) = date_color; - id(home_time_color) = time_color; + set_component_color->execute("home.date", date_color); + set_component_color->execute("home.time", time_color); + id(home_date_color) = esphome::display::ColorUtil::color_to_565(esphome::Color(date_color[0], date_color[1], date_color[2])); + id(home_time_color) = esphome::display::ColorUtil::color_to_565(esphome::Color(time_color[0], time_color[1], time_color[2])); // Chips icon size ESP_LOGV(TAG, "Chips size"); for (int i = 1; i <= 10; ++i) { - disp1->send_command_printf("home.icon_top_%02d.font=%" PRIu32, i, chip_font_size); + disp1->send_command_printf("home.icon_top_%02d.font=%" PRIu32, i, chip_font); } - disp1->send_command_printf("home.wifi_icon.font=%" PRIu32, chip_font_size); - id(home_chip_font_size) = chip_font_size; + disp1->send_command_printf("home.wifi_icon.font=%" PRIu32, chip_font); + id(home_chip_font_id) = chip_font; // Custom buttons icon size ESP_LOGV(TAG, "Custom buttons sizes"); - id(home_custom_buttons_font_size) = custom_buttons_font_size; + id(home_custom_buttons_font_id) = custom_buttons_font; for (int i = 1; i <= 7; ++i) { - disp1->send_command_printf("home.button%02d.font=%i", i, id(home_custom_buttons_font_size)); + disp1->send_command_printf("home.button%02d.font=%i", i, id(home_custom_buttons_font_id)); } - disp1->send_command_printf("home.bt_notific.font=%i", id(home_custom_buttons_font_size)); - disp1->send_command_printf("home.bt_qrcode.font=%i", id(home_custom_buttons_font_size)); - disp1->send_command_printf("home.bt_entities.font=%i", id(home_custom_buttons_font_size)); + disp1->send_command_printf("home.bt_notific.font=%i", id(home_custom_buttons_font_id)); + disp1->send_command_printf("home.bt_qrcode.font=%i", id(home_custom_buttons_font_id)); + disp1->send_command_printf("home.bt_entities.font=%i", id(home_custom_buttons_font_id)); // Notification button ESP_LOGV(TAG, "Set Notification button"); @@ -1420,13 +1420,13 @@ globals: initial_value: '"Unavailable"' ##### Chips ##### - - id: home_chip_font_size + - id: home_chip_font_id type: uint restore_value: true initial_value: '7' #### Custom buttons #### - - id: home_custom_buttons_font_size + - id: home_custom_buttons_font_id type: uint restore_value: true initial_value: '8' @@ -2624,34 +2624,37 @@ script: if (current_page->state == "notification") disp1->goto_page("home"); } - - id: open_entity_settings_page + - id: entity_details_show mode: restart parameters: - page: string - page_label: string - page_icon: string - page_icon_color: int32_t[] + #page: string + #page_label: string + #page_icon: string + #page_icon_color: int32_t[] entity: string back_page: string then: - lambda: |- - if (not id(is_uploading_tft)) { + size_t pos = entity.find("."); + if ((not id(is_uploading_tft)) and (pos != std::string::npos or entity == "embedded_climate")) { + std::string page = entity.substr(0, pos); + if (page == "alarm_control_panel") page = "alarm"; detailed_entity->publish_state(entity); if (page == "alarm_control_panel") page = "alarm"; std::string cmd_page = std::string("page ") + page.c_str(); disp1->send_command_printf(cmd_page.c_str()); - if (page_label.find("\\r") != std::string::npos) - page_label = page_label.replace(page_label.find("\\r"), 2, " "); - disp1->set_component_text_printf("page_label", "%s", page_label.c_str()); + //if (page_label.find("\\r") != std::string::npos) + // page_label = page_label.replace(page_label.find("\\r"), 2, " "); + //disp1->set_component_text_printf("page_label", "%s", page_label.c_str()); set_page_id->execute("back_page_id", back_page.c_str()); if (page == "climate") - disp1->set_component_value("embedded", (entity == "embedded_climate") ? 1 : 0); - else - { - if ((page_icon != std::string()) and (page_icon != "")) - disp1->set_component_text_printf("icon_state", "%s", page_icon.c_str()); - set_component_color->execute("icon_state", page_icon_color); - } + disp1->set_component_value("embedded", (entity == "embedded_climate") ? 1 : 0); + //else + // { + // if ((page_icon != std::string()) and (page_icon != "")) + // disp1->set_component_text_printf("icon_state", "%s", page_icon.c_str()); + // set_component_color->execute("icon_state", page_icon_color); + // } } - id: page_alarm @@ -3424,17 +3427,17 @@ script: // Chips icon size ESP_LOGV(TAG, "Adjusting icon's sizes"); for (int i = 1; i <= 10; ++i) { - disp1->send_command_printf("home.icon_top_%02d.font=%i", i, id(home_chip_font_size)); + disp1->send_command_printf("home.icon_top_%02d.font=%i", i, id(home_chip_font_id)); } // Custom buttons icon size ESP_LOGV(TAG, "Adjusting custom buttons sizes"); for (int i = 1; i <= 7; ++i) { - disp1->send_command_printf("home.button%02d.font=%i", i, id(home_custom_buttons_font_size)); + disp1->send_command_printf("home.button%02d.font=%i", i, id(home_custom_buttons_font_id)); } - disp1->send_command_printf("home.bt_notific.font=%i", id(home_custom_buttons_font_size)); - disp1->send_command_printf("home.bt_qrcode.font=%i", id(home_custom_buttons_font_size)); - disp1->send_command_printf("home.bt_entities.font=%i", id(home_custom_buttons_font_size)); - disp1->send_command_printf("home.wifi_icon.font=%i", id(home_chip_font_size)); + disp1->send_command_printf("home.bt_notific.font=%i", id(home_custom_buttons_font_id)); + disp1->send_command_printf("home.bt_qrcode.font=%i", id(home_custom_buttons_font_id)); + disp1->send_command_printf("home.bt_entities.font=%i", id(home_custom_buttons_font_id)); + disp1->send_command_printf("home.wifi_icon.font=%i", id(home_chip_font_id)); ESP_LOGV(TAG, "Restoring relay's icons"); disp1->set_component_text_printf("home.icon_top_01", "%s", id(home_relay1_icon).c_str()); disp1->set_component_text_printf("home.icon_top_02", "%s", id(home_relay2_icon).c_str()); @@ -3470,12 +3473,12 @@ script: check_versions->stop(); display_embedded_temp->stop(); display_wrapped_text->stop(); + entity_details_show->stop(); global_settings->stop(); ha_button->stop(); ha_call_service->stop(); nextion_status->stop(); notification_clear->stop(); - open_entity_settings_page->stop(); page_alarm->stop(); page_blank->stop(); page_boot->stop(); diff --git a/nspanel_blueprint.yaml b/nspanel_blueprint.yaml index 0ed5885..4478254 100644 --- a/nspanel_blueprint.yaml +++ b/nspanel_blueprint.yaml @@ -3390,31 +3390,31 @@ variables: nspanel: service: - init: - global: 'esphome.{{ nspanel_name }}_global_settings' - page: - home: 'esphome.{{ nspanel_name }}_page_home' - settings: 'esphome.{{ nspanel_name }}_page_settings' - qrcode: 'esphome.{{ nspanel_name }}_qrcode' - relays: 'esphome.{{ nspanel_name }}_relay_settings' + button: 'esphome.{{ nspanel_name }}_set_button' command: 'esphome.{{ nspanel_name }}_command' - page: - alarm: 'esphome.{{ nspanel_name }}_alarm_settings' - button: 'esphome.{{ nspanel_name }}_set_button' - entities: 'esphome.{{ nspanel_name }}_set_entity' - media_player: 'esphome.{{ nspanel_name }}_media_player' - climate: 'esphome.{{ nspanel_name }}_set_climate' - detailed_entity: 'esphome.{{ nspanel_name }}_open_entity_settings_page' component: - show: 'esphome.{{ nspanel_name }}_send_command_show' - hide: 'esphome.{{ nspanel_name }}_send_command_hide' - text: 'esphome.{{ nspanel_name }}_send_command_text_printf' - color: 'esphome.{{ nspanel_name }}_set_component_color' - value: 'esphome.{{ nspanel_name }}_send_command_value' - wake_up: 'esphome.{{ nspanel_name }}_wake_up' - tft_upload: 'esphome.{{ nspanel_name }}_upload_tft_url' + color: 'esphome.{{ nspanel_name }}_component_color' + hide: 'esphome.{{ nspanel_name }}_component_hide' + show: 'esphome.{{ nspanel_name }}_component_show' + text: 'esphome.{{ nspanel_name }}_component_text' + value: 'esphome.{{ nspanel_name }}_component_value' + detailed_entity: 'esphome.{{ nspanel_name }}_entity_details_show' + init: + global: 'esphome.{{ nspanel_name }}_init_global' + page: + home: 'esphome.{{ nspanel_name }}_init_page_home' + settings: 'esphome.{{ nspanel_name }}init_page_settings' + relays: 'esphome.{{ nspanel_name }}_init_relays' notification: clear: 'esphome.{{ nspanel_name }}_notification_clear' + page: + alarm: 'esphome.{{ nspanel_name }}_page_alarm' + media_player: 'esphome.{{ nspanel_name }}_page_media_player' + climate: 'esphome.{{ nspanel_name }}_page_climate' + qrcode: 'esphome.{{ nspanel_name }}_qrcode' + tft_upload: 'esphome.{{ nspanel_name }}_upload_tft_url' + value: 'esphome.{{ nspanel_name }}_value' + wake_up: 'esphome.{{ nspanel_name }}_wake_up' ##### Nextion dict #### nextion: @@ -8084,7 +8084,7 @@ action: {{ current_temperature | round(0 if current_temperature >= 100 or temperature_units in ["F", "f", "°F", "°f", "K", "k"] else 1) }}{{ temperature_units}} {% else %} 0 {% endif %} - - service: '{{ nspanel.service.page.button }}' + - service: '{{ nspanel.service.button }}' data: page: '{{ repeat.item.page }}' id: '{{ repeat.item.component }}' @@ -8101,7 +8101,7 @@ action: then: - delay: milliseconds: 800 - - service: '{{ nspanel.service.page.button }}' + - service: '{{ nspanel.service.button }}' data: page: '{{ repeat.item.page }}' id: '{{ repeat.item.component }}' @@ -8930,7 +8930,7 @@ action: name: '{{ repeat.item.name if repeat.item.name is defined else None }}' unit_of_measurement: '{{ state_attr(entity_id, "unit_of_measurement") | default("") }}' - *variable_entity - - service: '{{ nspanel.service.page.entities }}' + - service: '{{ nspanel.service.value }}' data: ent_id: '{{ repeat.item.page }}.{{ repeat.item.component }}' ent_icon: '{{ entity.icon }}' @@ -9473,13 +9473,9 @@ action: sequence: - variables: back_page: '{{ page.home }}' - - &open_entity_settings_page - service: '{{ nspanel.service.page.detailed_entity }}' + - &entity_details_show + service: '{{ nspanel.service.page.entity_details_show }}' data: - page: '{{ entity_domain }}' - page_label: '{{ entity.name }}' - page_icon: '{{ entity.icon }}' - page_icon_color: '{{ entity.icon_color }}' entity: '{{ "embedded_climate" if entity_id == thermostat_embedded else entity_id }}' back_page: '{{ back_page }}' continue_on_error: true @@ -9561,7 +9557,7 @@ action: sequence: - variables: back_page: '{{ nspanel_event.page }}' - - *open_entity_settings_page + - *entity_details_show - alias: Short click conditions: - '{{ nspanel_event.command == "short_click" and entity_domain not in ["alarm_control_panel", "climate", "media_player"] }}' @@ -9624,7 +9620,7 @@ action: then: - variables: back_page: '{{ page.home }}' - - *open_entity_settings_page + - *entity_details_show else: - *short_press-service_call @@ -9709,7 +9705,7 @@ action: entity_id: '{{ climate }}' back_page: '{{ page.home }}' - *variable_entity - - *open_entity_settings_page + - *entity_details_show - alias: Show button - Notification clear conditions: diff --git a/tft/nspanel_eu.HMI b/tft/nspanel_eu.HMI index 2205373dfe315026cc74c028cd1280b1db0ee6ef..29944e321f550751c2ff55aba45b50cde632008f 100644 GIT binary patch delta 3876 zcmeH~`%_e97{{Np%d%ixHFwMkJ zUQ0??QoN+1peKX4C}30=YHE2a%PG6f;14!7QTBEB!23pjK>pCqd}hDzd!F|>=kWdR zdpKv#ZnmER+NlHDU`x=8^OnT-kD54v%+Ha2iBx67pk$(Dn>A;MB_OBS=BH^THs4r# z*uegY^I9tLU90P~U@64$yESTh(D$2mu~yF*Qx9F!DIt(Z!?BW09foK@)MhnbOrx1t zt(9Eq_=lGBMW=v=vMnx(Z`05-M#I12UDQ9!Yla?_8vX4+{Nflk?@(G`~#~&lrm%LXMIPU2ZqYxfb|Tc$>8p8&pGU z3sI^3Jv?JfeOq2bJF~*P*fJfyI~?{O|99t3 zc4t*nx2&da8n6H>@Bud9YczGU2mEj+6qGb|D_+UrJe)`H!yLgQc@&T4G5iQW%40c_ z$MIu4o}+jIKh96^lRS~5c@j_NDLj>@@l!mVWB6%~#Tp{nO*EdOppI zZXM830WUFy16sYlL|x-^dHgn0tj0-{V)`z<2csd?^;ij9Gn(=PN8+k97*9^S5h zY!M?PoTa(j^{&Qb|MY_vG0B?b8H)AU?yg4FX9al{(SBz|sSz5Gj_SB3-CLc1x&YPd zirj&s_?Ygi4HMOm6~1LOjj2Rcb-1&;7UrGFIA4I7UuG7Xh2frQ&l#J?SKhc^BwkMQ z5pzGe+9`LU(_c8()TS7r_ZIHdL{;a)!J?ryql*#RkUYd{{MIg|lP2QpX(lpU)v8z{BVuA~-0t{AzOppcEfY-oU zunxQq)`K^|29OOlf;T}9*aS9%Tp+*}@D_L*Yz2AX9q=yL2J(%>go11RY&UIFkHmVn zh%0_>xkap30_3j*Xtfd`O$m@w3DEBma$87N0(5<>4A5dFKwql?ictd8padvV2~e35 zpg~H2b}0c$RRZ+qb8?H=?hR0VJNL3XbDt2GyRT|z^s&0P*hE=PYR9Y!KQ|}@?}6=L z2PgtN!7i{H>;dnCys+w zqLpCOD#3_Qf>DBCv^+0{BN#2u5xcUp?Dqzv(W&1I`HvqPqk4+sz03O=7cc0M?FDbB z9U$_<>iUW?6OP{}_U}pUA{wW+MU8x2T^r%*yPKO?8 z9Z=tKQWr$Y6ZCje?gyJD$@ze3QokM}YpgSfip&ezJ)5YHkN0L8@q)C=oPT*C(Hd*I z_kgy9Xt#M_58g29%>_v>5$!PNyC)O*n*Tlorx4xpE~Q?nL=|SurB{e5O`Vq}_mapA z*|WoHsn15eCI{QzAhMe$*s+1=tf^OSlr`gWrS7;@>T||*A6Iseh#p$lU5u{MyNK-S z>Rb{0XGK>r=heDL#lHPD>qPKry*YQFbCeMpRp+)FcZIkD`-r?Ll>@vn`6#8X%3rKF zsiQ@7rMHCQI&d6(4C=ur;8XA!XaFa`=b#as1gF4h@C7&n k&VqB`OYjvq4=#X<;1akDz6RfbE8tu3opG!DYRtaB0nSOK9RL6T delta 3489 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 delta 3161 zcmeIzdr(wm7zXfng$3{7c!S2$OqtOP1ys-!S%?5rMDc#f3yPW-P?L);tm4Z>QBWz5 zrsk@tU}_-R@yY^=0^YzZO+oQesZAP=RyO9?L!9ON%>HYp>5q2iH$3O#J7>@AK6~Dx z)2WU{psUK&S#>URCeNJf7Bo1Rw3nf46cy-kkaty=rpqkWIW>A#S+}IiTWWWp>C4`3 zQIl=E@wZ*6ks@Xz6dcZ*SVJ$PT&G`}Z{4G%6 zxjGo5);A-R*Gi4ADnEEzvQ3Na z>V7NR-XOB&SGtS5-b3V;y+uy%BXXnuBD1f^&-{sEwChI)ihOTieGaFoA@v7TIaK6f zBSbD6Ewb-;k=2Pr=d?FS3MWd|a+B#qS+!3dyz*u!=To=%C~?)6R!U^^MGorOzLr(4 z>Qi&PyN_bJeBGo*B^tAIN=}5)Q@yv<5@eT>*fSmyzywQRDI~%&U`T>wNP$#X4l5uH zR>CSshYVN^YhW#8!iVq?tOEts!v^>mHo_*@44=RjFvC{Z2HW9N*a16X7i2*;?1s-^ z5A20~@Hyl_F6@UqH~P>+18(Q7UhcWBJzW7V*i{TMA6#0 zw>(82<0W!=Uy%cR>a&TC8tMAB6^|Wb3sdkuPwXc>liFRxMIF1ojrk#*Hk7%d1-fba~gVu15XrgCz zr;>XNQNFh4r$s~-E$>SZzlf1b#5LO|iF_w`xj4v8Cvw!@;7|t9MJ=bV5qn0h6S>1i zk?(G)`^oj)AKglQQd!jBMLo0j#)`(u>Q+{JwcuHildHPYdZXE>l<+DG6sX};sR>0= z6MUp59FdyfB{kui)CBt}q6vHDCiIe;P%SkfOKL)h)P&(u6T+k>v{)>fP$4xTR%(Jl zYC_}S72?~xAT{BN)Px+V32{;r{G=u{G5=i?&ZZ~^x56;xrC4i6wc=D!OmqFMgh&pp zea@8BPo$O7L~`sdzJWw(B0cRT)?=lK^st{;pX)2~U4Jn=CP@?Nl01<@q=|H5s5qgY zG?DV8iPTk^NL!_e6d5ii($5j%_qX|liPZ6wG3L+bX-^-e`+bY?h39FC;jtBp;RKw7 z5-5c-I0dKS44j2?P!1Jv9=?PN@D+Rw7vU0o1DD|nR6-S8g=