From 007281fa83745e356756461677025653c80440e3 Mon Sep 17 00:00:00 2001 From: Gurgen Davtyan Date: Tue, 24 Mar 2026 06:14:01 +0400 Subject: [PATCH 01/16] Boost alarm volume level --- clock.yaml | 251 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 228 insertions(+), 23 deletions(-) diff --git a/clock.yaml b/clock.yaml index fe8af07..f7a84af 100644 --- a/clock.yaml +++ b/clock.yaml @@ -1,17 +1,16 @@ ---- esphome: - name: clock - friendly_name: Clock + name: esphome-web-56058c + friendly_name: AlarmV1 + min_version: 2025.11.0 + name_add_mac_suffix: false on_boot: then: + - output.set_max_power: + id: buzzer + max_power: 100% - pcf8563.read_time: - - light.turn_on: display_backlight + - script.execute: reset_idle_timer - script.execute: update_minutes_hand - platformio_options: - board_build.flash_mode: dio - -packages: - core: !include debug.yaml esp32: variant: esp32s3 @@ -22,13 +21,6 @@ wifi: ssid: !secret wifi_ssid password: !secret wifi_password - ap: - ssid: "Clock Fallback Hotspot" - password: !secret wifi_password - - -captive_portal: - api: reboot_timeout: 0s @@ -36,7 +28,6 @@ web_server: ota: - platform: esphome - password: !secret ota_password logger: @@ -54,12 +45,32 @@ output: - platform: ledc pin: GPIO3 id: buzzer + frequency: 2000 Hz - platform: ledc pin: GPIO9 id: backlight_output -rtttl: - output: buzzer +globals: + - id: alarm_ringing + type: bool + restore_value: no + initial_value: "false" + - id: alarm_disabled_today + type: bool + restore_value: yes + initial_value: "false" + - id: alarm_disabled_day + type: int + restore_value: yes + initial_value: "-1" + - id: last_alarm_minute_key + type: int + restore_value: no + initial_value: "-1" + - id: last_alarm_debug_minute_key + type: int + restore_value: no + initial_value: "-1" sensor: - platform: rotary_encoder @@ -67,6 +78,7 @@ sensor: pin_a: GPIO40 pin_b: GPIO41 on_clockwise: + - script.execute: reset_idle_timer - lambda: |- auto alarm_time_var = id(alarm_time).state_as_esptime(); alarm_time_var.minute += 15; @@ -76,13 +88,14 @@ sensor: } id(alarm_time).make_call().set_time(alarm_time_var).perform(); on_anticlockwise: + - script.execute: reset_idle_timer - lambda: |- auto alarm_time_var = id(alarm_time).state_as_esptime(); - if (alarm_time_var.minute < 15) { + if (alarm_time_var.minute < 5) { alarm_time_var.minute += 60; alarm_time_var.hour = (alarm_time_var.hour + 23) % 24; } - alarm_time_var.minute -= 15; + alarm_time_var.minute -= 5; id(alarm_time).make_call().set_time(alarm_time_var).perform(); time: @@ -93,11 +106,12 @@ time: on_time: - minutes: "*" then: + - script.execute: sync_alarm_day_state - script.execute: update_minutes_hand - platform: sntp id: sntp_time - timezone: Europe/London + timezone: Asia/Yerevan servers: - 0.pool.ntp.org - 1.pool.ntp.org @@ -125,16 +139,31 @@ binary_sensor: name: Button id: front_button pin: GPIO42 + on_press: + - script.execute: stop_alarm + - script.execute: reset_idle_timer - platform: gpio name: Hold Button pin: GPIO46 + on_press: + - script.execute: stop_alarm + - script.execute: reset_idle_timer spi: id: spi_bus mosi_pin: GPIO5 clk_pin: GPIO6 +touchscreen: + platform: ft5x06 + id: dial_touchscreen + i2c_id: internal_i2c + address: 0x38 + interrupt_pin: GPIO14 + on_touch: + - script.execute: reset_idle_timer + light: - platform: monochromatic name: "Backlight" @@ -227,6 +256,7 @@ lvgl: r_mod: -15 value: 0 - obj: + id: alarm_status_circle width: 120 height: 120 align: CENTER @@ -236,6 +266,16 @@ lvgl: clip_corner: true pad_all: 0 border_width: 1 + on_click: + then: + - if: + condition: + lambda: "return id(alarm_ringing);" + then: + - script.execute: stop_alarm + else: + - script.execute: toggle_alarm_for_today + - script.execute: reset_idle_timer widgets: - label: styles: date_style @@ -259,10 +299,175 @@ interval: struct timeval tv; gettimeofday(&tv, NULL); return (now.second * 12) + (tv.tv_usec / 83330.0); + - interval: 1s + then: + - lambda: |- + auto now = id(rtctime).now(); + if (!now.is_valid()) { + return; + } + const int minute_key = now.day_of_year * 1440 + now.hour * 60 + now.minute; + if (id(last_alarm_debug_minute_key) == minute_key) { + return; + } + id(last_alarm_debug_minute_key) = minute_key; + auto alarm_time_var = id(alarm_time); + if (alarm_time_var == nullptr) { + ESP_LOGW("alarm", "Alarm check at %02d:%02d:%02d but alarm_time is null", now.hour, now.minute, now.second); + return; + } + ESP_LOGI( + "alarm", + "Alarm check now=%02d:%02d:%02d target=%02d:%02d disabled_today=%d ringing=%d", + now.hour, + now.minute, + now.second, + alarm_time_var->hour, + alarm_time_var->minute, + id(alarm_disabled_today) && id(alarm_disabled_day) == now.day_of_year, + id(alarm_ringing) + ); + - if: + condition: + lambda: |- + auto now = id(rtctime).now(); + if (!now.is_valid()) { + return false; + } + if (id(alarm_ringing)) { + return false; + } + if (id(alarm_disabled_today) && id(alarm_disabled_day) == now.day_of_year) { + return false; + } + auto alarm_time_var = id(alarm_time); + if (alarm_time_var == nullptr) { + return false; + } + if (now.hour != alarm_time_var->hour || now.minute != alarm_time_var->minute) { + return false; + } + const int minute_key = now.day_of_year * 1440 + now.hour * 60 + now.minute; + if (id(last_alarm_minute_key) == minute_key) { + return false; + } + id(last_alarm_minute_key) = minute_key; + ESP_LOGI("alarm", "Alarm trigger matched at %02d:%02d:%02d for %02d:%02d", now.hour, now.minute, now.second, alarm_time_var->hour, alarm_time_var->minute); + return true; + then: + - script.execute: start_alarm script: + - id: sync_alarm_day_state + then: + - lambda: |- + auto now = id(rtctime).now(); + if (now.is_valid() && id(alarm_disabled_today) && id(alarm_disabled_day) != now.day_of_year) { + id(alarm_disabled_today) = false; + id(alarm_disabled_day) = -1; + } + - script.execute: update_alarm_status_ui + + - id: toggle_alarm_for_today + then: + - lambda: |- + auto now = id(rtctime).now(); + if (!now.is_valid()) { + return; + } + if (id(alarm_disabled_today) && id(alarm_disabled_day) == now.day_of_year) { + id(alarm_disabled_today) = false; + id(alarm_disabled_day) = -1; + } else { + id(alarm_disabled_today) = true; + id(alarm_disabled_day) = now.day_of_year; + } + - script.execute: update_alarm_status_ui + + - id: update_alarm_status_ui + then: + - lvgl.widget.update: + id: alarm_status_circle + bg_color: !lambda |- + auto now = id(rtctime).now(); + if (now.is_valid() && id(alarm_disabled_today) && id(alarm_disabled_day) == now.day_of_year) { + return lv_color_hex(0xFFD54F); + } + return lv_color_hex(0x000000); + + - id: start_alarm + mode: restart + then: + - lambda: |- + id(alarm_ringing) = true; + auto now = id(rtctime).now(); + ESP_LOGI("alarm", "Starting alarm at %02d:%02d:%02d", now.hour, now.minute, now.second); + - script.execute: alarm_loop + - script.execute: alarm_timeout + + - id: stop_alarm + then: + - lambda: |- + if (id(alarm_ringing)) { + auto now = id(rtctime).now(); + ESP_LOGI("alarm", "Stopping alarm at %02d:%02d:%02d", now.hour, now.minute, now.second); + } + id(alarm_ringing) = false; + - script.stop: alarm_loop + - script.stop: alarm_timeout + - output.turn_off: buzzer + + - id: alarm_loop + mode: restart + then: + - while: + condition: + lambda: "return id(alarm_ringing);" + then: + - output.ledc.set_frequency: + id: buzzer + frequency: "2700Hz" + - output.set_level: + id: buzzer + level: 50% + - delay: 900ms + - output.turn_off: buzzer + - delay: 150ms + - output.ledc.set_frequency: + id: buzzer + frequency: "2300Hz" + - output.set_level: + id: buzzer + level: 50% + - delay: 900ms + - output.turn_off: buzzer + - delay: 350ms + + - id: alarm_timeout + mode: restart + then: + - delay: 5min + - if: + condition: + lambda: "return id(alarm_ringing);" + then: + - logger.log: "Alarm timed out after 5 minutes" + - script.execute: stop_alarm + + - id: reset_idle_timer + mode: restart + then: + - light.turn_on: + id: display_backlight + brightness: 100% + - delay: 1min + - light.turn_on: + id: display_backlight + brightness: 15% + - id: update_minutes_hand then: + - script.execute: update_alarm_status_ui - lvgl.indicator.update: id: hour_hand value: !lambda |- @@ -288,4 +493,4 @@ script: static char date_buf[16]; auto now = id(rtctime).now(); snprintf(date_buf, sizeof(date_buf), "%s, %s %2d", day_names[id(rtctime).now().day_of_week - 1], mon_names[now.month-1], now.day_of_month); - return date_buf; \ No newline at end of file + return date_buf; From 2be3857ffa75637b690d54582c2910d7c4a5233c Mon Sep 17 00:00:00 2001 From: Gurgen Davtyan Date: Fri, 17 Apr 2026 02:15:45 +0400 Subject: [PATCH 02/16] Add snooze and alarm UX improvements --- .gitignore | 2 + clock.yaml | 474 +++++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 423 insertions(+), 53 deletions(-) diff --git a/.gitignore b/.gitignore index d8b4157..e2ba6eb 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ # You can modify this file to suit your needs. /.esphome/ /secrets.yaml + +.DS_Store \ No newline at end of file diff --git a/clock.yaml b/clock.yaml index f7a84af..321e468 100644 --- a/clock.yaml +++ b/clock.yaml @@ -51,6 +51,10 @@ output: id: backlight_output globals: + - id: alarm_enabled + type: bool + restore_value: yes + initial_value: "true" - id: alarm_ringing type: bool restore_value: no @@ -71,6 +75,71 @@ globals: type: int restore_value: no initial_value: "-1" + - id: snooze_active + type: bool + restore_value: no + initial_value: "false" + - id: snooze_minutes + type: int + restore_value: yes + initial_value: "10" + - id: snooze_day_of_year + type: int + restore_value: no + initial_value: "-1" + - id: snooze_hour + type: int + restore_value: no + initial_value: "-1" + - id: snooze_minute + type: int + restore_value: no + initial_value: "-1" + - id: last_encoder_turn_ms + type: uint32_t + restore_value: no + initial_value: "0" + - id: last_encoder_direction + type: int + restore_value: no + initial_value: "0" + - id: alarm_flash_on + type: bool + restore_value: no + initial_value: "false" + +switch: + - platform: template + id: alarm_enabled_switch + name: "Alarm Enabled" + icon: "mdi:alarm-check" + lambda: |- + return id(alarm_enabled); + turn_on_action: + - lambda: |- + id(alarm_enabled) = true; + ESP_LOGI("alarm", "Alarm enabled"); + - script.execute: update_minutes_hand + - script.execute: reset_idle_timer + turn_off_action: + - lambda: |- + id(alarm_enabled) = false; + id(snooze_active) = false; + id(snooze_day_of_year) = -1; + id(snooze_hour) = -1; + id(snooze_minute) = -1; + ESP_LOGI("alarm", "Alarm disabled"); + - script.execute: stop_alarm + - script.execute: update_minutes_hand + - script.execute: reset_idle_timer + +button: + - platform: template + name: "Stop Alarm" + icon: "mdi:alarm-off" + on_press: + - script.execute: stop_alarm + - script.execute: reset_idle_timer sensor: - platform: rotary_encoder @@ -80,23 +149,77 @@ sensor: on_clockwise: - script.execute: reset_idle_timer - lambda: |- - auto alarm_time_var = id(alarm_time).state_as_esptime(); - alarm_time_var.minute += 15; - if (alarm_time_var.minute >= 60) { - alarm_time_var.minute -= 60; - alarm_time_var.hour = (alarm_time_var.hour + 1) % 24; + const int direction = 1; + const uint32_t now_ms = millis(); + uint32_t delta_ms = now_ms - id(last_encoder_turn_ms); + if (id(last_encoder_direction) != direction) { + delta_ms = 1000; } + id(last_encoder_turn_ms) = now_ms; + id(last_encoder_direction) = direction; + + int step_minutes = 5; + if (delta_ms < 70) { + step_minutes = 30; + } else if (delta_ms < 140) { + step_minutes = 15; + } + + if (id(alarm_ringing)) { + id(snooze_minutes) += step_minutes; + if (id(snooze_minutes) > 60) { + id(snooze_minutes) = 60; + } + ESP_LOGI("alarm", "Snooze duration set to %d minutes (delta=%ums, step=%d)", id(snooze_minutes), delta_ms, step_minutes); + id(update_alarm_status_ui).execute(); + return; + } + + auto alarm_time_var = id(alarm_time).state_as_esptime(); + int total_minutes = alarm_time_var.hour * 60 + alarm_time_var.minute + step_minutes; + total_minutes %= 1440; + alarm_time_var.hour = total_minutes / 60; + alarm_time_var.minute = total_minutes % 60; id(alarm_time).make_call().set_time(alarm_time_var).perform(); + ESP_LOGI("alarm", "Alarm time adjusted clockwise by %d minutes (delta=%ums)", step_minutes, delta_ms); on_anticlockwise: - script.execute: reset_idle_timer - lambda: |- + const int direction = -1; + const uint32_t now_ms = millis(); + uint32_t delta_ms = now_ms - id(last_encoder_turn_ms); + if (id(last_encoder_direction) != direction) { + delta_ms = 1000; + } + id(last_encoder_turn_ms) = now_ms; + id(last_encoder_direction) = direction; + + int step_minutes = 5; + if (delta_ms < 70) { + step_minutes = 30; + } else if (delta_ms < 140) { + step_minutes = 15; + } + + if (id(alarm_ringing)) { + id(snooze_minutes) -= step_minutes; + if (id(snooze_minutes) < 5) { + id(snooze_minutes) = 5; + } + ESP_LOGI("alarm", "Snooze duration set to %d minutes (delta=%ums, step=%d)", id(snooze_minutes), delta_ms, step_minutes); + id(update_alarm_status_ui).execute(); + return; + } + auto alarm_time_var = id(alarm_time).state_as_esptime(); - if (alarm_time_var.minute < 5) { - alarm_time_var.minute += 60; - alarm_time_var.hour = (alarm_time_var.hour + 23) % 24; + int total_minutes = alarm_time_var.hour * 60 + alarm_time_var.minute - step_minutes; + while (total_minutes < 0) { + total_minutes += 1440; } - alarm_time_var.minute -= 5; + alarm_time_var.hour = total_minutes / 60; + alarm_time_var.minute = total_minutes % 60; id(alarm_time).make_call().set_time(alarm_time_var).perform(); + ESP_LOGI("alarm", "Alarm time adjusted anticlockwise by %d minutes (delta=%ums)", step_minutes, delta_ms); time: - platform: pcf8563 @@ -139,16 +262,52 @@ binary_sensor: name: Button id: front_button pin: GPIO42 - on_press: - - script.execute: stop_alarm - - script.execute: reset_idle_timer + on_multi_click: + - timing: + - ON for at least 3s + - OFF for at least 50ms + then: + - if: + condition: + lambda: "return id(alarm_ringing);" + then: + - script.execute: stop_alarm + - script.execute: reset_idle_timer + - timing: + - ON for at most 500ms + - OFF for at least 50ms + then: + - if: + condition: + lambda: "return id(alarm_ringing);" + then: + - script.execute: snooze_alarm_five_minutes + - script.execute: reset_idle_timer - platform: gpio name: Hold Button pin: GPIO46 - on_press: - - script.execute: stop_alarm - - script.execute: reset_idle_timer + on_multi_click: + - timing: + - ON for at least 3s + - OFF for at least 50ms + then: + - if: + condition: + lambda: "return id(alarm_ringing);" + then: + - script.execute: stop_alarm + - script.execute: reset_idle_timer + - timing: + - ON for at most 500ms + - OFF for at least 50ms + then: + - if: + condition: + lambda: "return id(alarm_ringing);" + then: + - script.execute: snooze_alarm_five_minutes + - script.execute: reset_idle_timer spi: id: spi_bus @@ -183,6 +342,7 @@ display: update_interval: never lvgl: + rotation: 270 style_definitions: - id: date_style # choose an ID for your definition text_font: montserrat_14 @@ -241,7 +401,10 @@ lvgl: angle_range: 360 rotation: 270 ticks: - count: 0 + count: 2 + width: 1 + length: 1 + color: 0x000000 indicators: - line: id: hour_hand @@ -270,10 +433,8 @@ lvgl: then: - if: condition: - lambda: "return id(alarm_ringing);" + lambda: "return !id(alarm_ringing);" then: - - script.execute: stop_alarm - else: - script.execute: toggle_alarm_for_today - script.execute: reset_idle_timer widgets: @@ -287,6 +448,57 @@ lvgl: styles: date_style y: 20 text: "" + - button: + id: snooze_button + hidden: true + width: 106 + height: 60 + x: -58 + y: 88 + align: CENTER + radius: 18 + bg_color: 0x1E88E5 + text_color: White + border_width: 0 + on_click: + then: + - script.execute: snooze_alarm + - script.execute: reset_idle_timer + widgets: + - label: + id: snooze_button_label + align: CENTER + text_align: center + text: "Snooze\n10 min" + - button: + id: stop_button + hidden: true + width: 106 + height: 60 + x: 58 + y: 88 + align: CENTER + radius: 18 + bg_color: 0xE53935 + text_color: White + border_width: 0 + on_click: + then: + - script.execute: stop_alarm + - script.execute: reset_idle_timer + widgets: + - label: + align: CENTER + text_align: center + text: "Stop" + - label: + id: snooze_hint_label + hidden: true + align: CENTER + y: 132 + text_align: center + text_color: 0xB0BEC5 + text: "Rotate = snooze time" interval: - interval: 25ms @@ -299,6 +511,23 @@ interval: struct timeval tv; gettimeofday(&tv, NULL); return (now.second * 12) + (tv.tv_usec / 83330.0); + - interval: 400ms + then: + - if: + condition: + lambda: "return id(alarm_ringing);" + then: + - lambda: |- + id(alarm_flash_on) = !id(alarm_flash_on); + - script.execute: update_alarm_status_ui + else: + - if: + condition: + lambda: "return id(alarm_flash_on);" + then: + - lambda: |- + id(alarm_flash_on) = false; + - script.execute: update_alarm_status_ui - interval: 1s then: - lambda: |- @@ -318,14 +547,19 @@ interval: } ESP_LOGI( "alarm", - "Alarm check now=%02d:%02d:%02d target=%02d:%02d disabled_today=%d ringing=%d", + "Alarm check now=%02d:%02d:%02d target=%02d:%02d enabled=%d disabled_today=%d ringing=%d snooze_active=%d snooze_target=%d/%02d:%02d", now.hour, now.minute, now.second, alarm_time_var->hour, alarm_time_var->minute, + id(alarm_enabled), id(alarm_disabled_today) && id(alarm_disabled_day) == now.day_of_year, - id(alarm_ringing) + id(alarm_ringing), + id(snooze_active), + id(snooze_day_of_year), + id(snooze_hour), + id(snooze_minute) ); - if: condition: @@ -334,17 +568,28 @@ interval: if (!now.is_valid()) { return false; } - if (id(alarm_ringing)) { + if (!id(alarm_enabled)) { return false; } - if (id(alarm_disabled_today) && id(alarm_disabled_day) == now.day_of_year) { + if (id(alarm_ringing)) { return false; } auto alarm_time_var = id(alarm_time); if (alarm_time_var == nullptr) { return false; } - if (now.hour != alarm_time_var->hour || now.minute != alarm_time_var->minute) { + bool alarm_due = false; + if (id(snooze_active)) { + alarm_due = id(snooze_day_of_year) == now.day_of_year && + id(snooze_hour) == now.hour && + id(snooze_minute) == now.minute; + } else { + if (id(alarm_disabled_today) && id(alarm_disabled_day) == now.day_of_year) { + return false; + } + alarm_due = now.hour == alarm_time_var->hour && now.minute == alarm_time_var->minute; + } + if (!alarm_due) { return false; } const int minute_key = now.day_of_year * 1440 + now.hour * 60 + now.minute; @@ -386,22 +631,164 @@ script: - id: update_alarm_status_ui then: + - lvgl.label.update: + id: snooze_button_label + text: !lambda |- + static char snooze_buf[24]; + snprintf(snooze_buf, sizeof(snooze_buf), "Snooze\n%d min", id(snooze_minutes)); + return snooze_buf; + - lvgl.label.update: + id: alarm_label + text: !lambda |- + auto alarm_time_var = id(alarm_time); + static char alarm_buf[24]; + if (!id(alarm_enabled)) { + snprintf(alarm_buf, sizeof(alarm_buf), "Alarm Off"); + } else if (id(alarm_ringing)) { + snprintf(alarm_buf, sizeof(alarm_buf), "Alarm!"); + } else if (id(snooze_active)) { + snprintf(alarm_buf, sizeof(alarm_buf), "Snoozing"); + } else { + snprintf(alarm_buf, sizeof(alarm_buf), "Alarm %02d:%02d", alarm_time_var->hour, alarm_time_var->minute); + } + return alarm_buf; + - lvgl.label.update: + id: date_label + text: !lambda |- + static const char * const day_names[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; + static const char * const mon_names[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", + "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; + static char date_buf[24]; + auto now = id(rtctime).now(); + if (!id(alarm_enabled)) { + snprintf(date_buf, sizeof(date_buf), "Disabled"); + } else if (id(snooze_active)) { + snprintf(date_buf, sizeof(date_buf), "Until %02d:%02d", id(snooze_hour), id(snooze_minute)); + } else { + snprintf(date_buf, sizeof(date_buf), "%s, %s %2d", day_names[id(rtctime).now().day_of_week - 1], mon_names[now.month-1], now.day_of_month); + } + return date_buf; - lvgl.widget.update: id: alarm_status_circle bg_color: !lambda |- auto now = id(rtctime).now(); + if (id(alarm_ringing)) { + return id(alarm_flash_on) ? lv_color_hex(0xFF7043) : lv_color_hex(0xE53935); + } + if (!id(alarm_enabled)) { + return lv_color_hex(0x455A64); + } if (now.is_valid() && id(alarm_disabled_today) && id(alarm_disabled_day) == now.day_of_year) { return lv_color_hex(0xFFD54F); } return lv_color_hex(0x000000); + - if: + condition: + lambda: "return id(alarm_ringing);" + then: + - lvgl.widget.show: [snooze_button, stop_button, snooze_hint_label] + else: + - lvgl.widget.hide: [snooze_button, stop_button, snooze_hint_label] + + - id: apply_active_brightness + then: + - light.turn_on: + id: display_backlight + brightness: !lambda |- + if (id(alarm_ringing)) { + return 1.0f; + } + auto now = id(rtctime).now(); + if (now.is_valid() && now.hour >= 23) { + return 0.30f; + } + if (now.is_valid() && now.hour < 7) { + return 0.30f; + } + return 1.0f; + + - id: apply_idle_brightness + then: + - light.turn_on: + id: display_backlight + brightness: !lambda |- + if (id(alarm_ringing)) { + return 1.0f; + } + auto now = id(rtctime).now(); + if (now.is_valid() && now.hour >= 23) { + return 0.08f; + } + if (now.is_valid() && now.hour < 7) { + return 0.08f; + } + return 0.25f; + + - id: snooze_alarm + then: + - lambda: |- + auto now = id(rtctime).now(); + if (!now.is_valid()) { + ESP_LOGW("alarm", "Snooze requested but current time is invalid"); + return; + } + int total_minutes = now.hour * 60 + now.minute + id(snooze_minutes); + int day_offset = total_minutes / 1440; + total_minutes = total_minutes % 1440; + id(snooze_active) = true; + id(snooze_day_of_year) = now.day_of_year + day_offset; + id(snooze_hour) = total_minutes / 60; + id(snooze_minute) = total_minutes % 60; + ESP_LOGI( + "alarm", + "Snoozed for %d minutes until day=%d %02d:%02d", + id(snooze_minutes), + id(snooze_day_of_year), + id(snooze_hour), + id(snooze_minute) + ); + - script.execute: stop_alarm + - script.execute: update_minutes_hand + + - id: snooze_alarm_five_minutes + then: + - lambda: |- + auto now = id(rtctime).now(); + if (!now.is_valid()) { + ESP_LOGW("alarm", "5-minute snooze requested but current time is invalid"); + return; + } + int total_minutes = now.hour * 60 + now.minute + 5; + int day_offset = total_minutes / 1440; + total_minutes = total_minutes % 1440; + id(snooze_active) = true; + id(snooze_day_of_year) = now.day_of_year + day_offset; + id(snooze_hour) = total_minutes / 60; + id(snooze_minute) = total_minutes % 60; + ESP_LOGI( + "alarm", + "Snoozed for 5 minutes until day=%d %02d:%02d", + id(snooze_day_of_year), + id(snooze_hour), + id(snooze_minute) + ); + - script.execute: stop_alarm + - script.execute: update_minutes_hand - id: start_alarm mode: restart then: - lambda: |- + id(snooze_active) = false; + id(snooze_day_of_year) = -1; + id(snooze_hour) = -1; + id(snooze_minute) = -1; id(alarm_ringing) = true; auto now = id(rtctime).now(); ESP_LOGI("alarm", "Starting alarm at %02d:%02d:%02d", now.hour, now.minute, now.second); + - script.stop: reset_idle_timer + - script.execute: apply_active_brightness + - script.execute: update_minutes_hand - script.execute: alarm_loop - script.execute: alarm_timeout @@ -416,6 +803,8 @@ script: - script.stop: alarm_loop - script.stop: alarm_timeout - output.turn_off: buzzer + - script.execute: update_minutes_hand + - script.execute: reset_idle_timer - id: alarm_loop mode: restart @@ -426,22 +815,22 @@ script: then: - output.ledc.set_frequency: id: buzzer - frequency: "2700Hz" + frequency: "3200Hz" - output.set_level: id: buzzer level: 50% - - delay: 900ms + - delay: 950ms - output.turn_off: buzzer - - delay: 150ms + - delay: 100ms - output.ledc.set_frequency: id: buzzer - frequency: "2300Hz" + frequency: "2800Hz" - output.set_level: id: buzzer level: 50% - - delay: 900ms + - delay: 950ms - output.turn_off: buzzer - - delay: 350ms + - delay: 250ms - id: alarm_timeout mode: restart @@ -457,13 +846,9 @@ script: - id: reset_idle_timer mode: restart then: - - light.turn_on: - id: display_backlight - brightness: 100% + - script.execute: apply_active_brightness - delay: 1min - - light.turn_on: - id: display_backlight - brightness: 15% + - script.execute: apply_idle_brightness - id: update_minutes_hand then: @@ -477,20 +862,3 @@ script: id: minute_hand value: !lambda |- return id(rtctime).now().minute; - - lvgl.label.update: - id: alarm_label - text: !lambda |- - auto alarm_time_var = id(alarm_time); - static char alarm_buf[16]; - snprintf(alarm_buf, sizeof(alarm_buf), "Alarm %02d:%02d", alarm_time_var->hour, alarm_time_var->minute); - return alarm_buf; - - lvgl.label.update: - id: date_label - text: !lambda |- - static const char * const day_names[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; - static const char * const mon_names[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; - static char date_buf[16]; - auto now = id(rtctime).now(); - snprintf(date_buf, sizeof(date_buf), "%s, %s %2d", day_names[id(rtctime).now().day_of_week - 1], mon_names[now.month-1], now.day_of_month); - return date_buf; From 21a7c99f6cc16621b9031a0887f9d5264376435e Mon Sep 17 00:00:00 2001 From: Gurgen Davtyan Date: Fri, 17 Apr 2026 14:09:29 +0400 Subject: [PATCH 03/16] Refine alarm clock UI and boot handling --- clock.yaml | 539 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 345 insertions(+), 194 deletions(-) diff --git a/clock.yaml b/clock.yaml index 321e468..4644313 100644 --- a/clock.yaml +++ b/clock.yaml @@ -4,19 +4,37 @@ esphome: min_version: 2025.11.0 name_add_mac_suffix: false on_boot: + priority: -10 then: + - lambda: |- + ESP_LOGI("boot", "boot step 1: on_boot started"); - output.set_max_power: id: buzzer max_power: 100% - - pcf8563.read_time: + - lambda: |- + ESP_LOGI("boot", "boot step 2: buzzer max power applied"); + - delay: 2s + - lambda: |- + ESP_LOGI("boot", "boot step 3: startup delay complete"); - script.execute: reset_idle_timer + - lambda: |- + ESP_LOGI("boot", "boot step 4: reset_idle_timer executed"); - script.execute: update_minutes_hand + - lambda: |- + ESP_LOGI("boot", "boot step 5: update_minutes_hand executed"); + - delay: 3s + - safe_mode.mark_successful + - lambda: |- + ESP_LOGI("boot", "boot step 6: marked boot successful"); esp32: variant: esp32s3 framework: type: esp-idf +safe_mode: + boot_is_good_after: 5s + wifi: ssid: !secret wifi_ssid password: !secret wifi_password @@ -75,6 +93,10 @@ globals: type: int restore_value: no initial_value: "-1" + - id: last_ui_minute_key + type: int + restore_value: no + initial_value: "-1" - id: snooze_active type: bool restore_value: no @@ -107,6 +129,22 @@ globals: type: bool restore_value: no initial_value: "false" + - id: last_interaction_ms + type: uint32_t + restore_value: no + initial_value: "0" + - id: last_touch_ms + type: uint32_t + restore_value: no + initial_value: "0" + - id: screen_dimmed + type: bool + restore_value: no + initial_value: "false" + - id: ring_controls_visible + type: bool + restore_value: no + initial_value: "false" switch: - platform: template @@ -124,11 +162,8 @@ switch: turn_off_action: - lambda: |- id(alarm_enabled) = false; - id(snooze_active) = false; - id(snooze_day_of_year) = -1; - id(snooze_hour) = -1; - id(snooze_minute) = -1; ESP_LOGI("alarm", "Alarm disabled"); + - script.execute: clear_snooze - script.execute: stop_alarm - script.execute: update_minutes_hand - script.execute: reset_idle_timer @@ -138,7 +173,15 @@ button: name: "Stop Alarm" icon: "mdi:alarm-off" on_press: - - script.execute: stop_alarm + - script.execute: dismiss_alarm + - script.execute: reset_idle_timer + - platform: template + name: "Test Alarm" + icon: "mdi:alarm-light" + on_press: + - logger.log: "Manual test alarm requested" + - script.execute: clear_snooze + - script.execute: start_alarm - script.execute: reset_idle_timer sensor: @@ -175,6 +218,11 @@ sensor: return; } + if (id(snooze_active)) { + ESP_LOGI("alarm", "Ignoring clockwise encoder turn while alarm is snoozed"); + return; + } + auto alarm_time_var = id(alarm_time).state_as_esptime(); int total_minutes = alarm_time_var.hour * 60 + alarm_time_var.minute + step_minutes; total_minutes %= 1440; @@ -211,6 +259,11 @@ sensor: return; } + if (id(snooze_active)) { + ESP_LOGI("alarm", "Ignoring anticlockwise encoder turn while alarm is snoozed"); + return; + } + auto alarm_time_var = id(alarm_time).state_as_esptime(); int total_minutes = alarm_time_var.hour * 60 + alarm_time_var.minute - step_minutes; while (total_minutes < 0) { @@ -226,23 +279,21 @@ time: id: rtctime i2c_id: internal_i2c address: 0x51 - on_time: - - minutes: "*" - then: - - script.execute: sync_alarm_day_state - - script.execute: update_minutes_hand + update_interval: never - platform: sntp id: sntp_time timezone: Asia/Yerevan servers: - - 0.pool.ntp.org - - 1.pool.ntp.org - - 2.pool.ntp.org + - 0.pool.ntp.org + - 1.pool.ntp.org + - 2.pool.ntp.org on_time_sync: then: + - logger.log: "SNTP time sync received, writing time back to RTC" - pcf8563.write_time: - script.execute: update_minutes_hand + - script.execute: sync_alarm_day_state datetime: - platform: template @@ -261,32 +312,15 @@ binary_sensor: - platform: gpio name: Button id: front_button - pin: GPIO42 - on_multi_click: - - timing: - - ON for at least 3s - - OFF for at least 50ms - then: - - if: - condition: - lambda: "return id(alarm_ringing);" - then: - - script.execute: stop_alarm - - script.execute: reset_idle_timer - - timing: - - ON for at most 500ms - - OFF for at least 50ms - then: - - if: - condition: - lambda: "return id(alarm_ringing);" - then: - - script.execute: snooze_alarm_five_minutes - - script.execute: reset_idle_timer - - - platform: gpio - name: Hold Button - pin: GPIO46 + pin: + number: GPIO42 + mode: + input: true + pullup: true + inverted: true + filters: + - delayed_on: 10ms + - delayed_off: 10ms on_multi_click: - timing: - ON for at least 3s @@ -296,7 +330,7 @@ binary_sensor: condition: lambda: "return id(alarm_ringing);" then: - - script.execute: stop_alarm + - script.execute: dismiss_alarm - script.execute: reset_idle_timer - timing: - ON for at most 500ms @@ -319,9 +353,19 @@ touchscreen: id: dial_touchscreen i2c_id: internal_i2c address: 0x38 - interrupt_pin: GPIO14 + touch_timeout: 250ms on_touch: - - script.execute: reset_idle_timer + - if: + condition: + lambda: |- + const uint32_t now_ms = millis(); + if (now_ms - id(last_touch_ms) < 700) { + return false; + } + id(last_touch_ms) = now_ms; + return true; + then: + - script.execute: reset_idle_timer light: - platform: monochromatic @@ -331,20 +375,26 @@ light: default_transition_length: 0s display: - - platform: ili9xxx + - platform: mipi_spi id: round_display model: GC9A01A cs_pin: GPIO7 reset_pin: GPIO8 dc_pin: GPIO4 + color_order: bgr invert_colors: true auto_clear_enabled: false update_interval: never + data_rate: 40MHz lvgl: rotation: 270 + displays: + - round_display + touchscreens: + - touchscreen_id: dial_touchscreen style_definitions: - - id: date_style # choose an ID for your definition + - id: date_style text_font: montserrat_14 align: center text_color: White @@ -366,7 +416,7 @@ lvgl: pad_all: 0 text_color: White scales: - - range_from: 0 # minutes scale + - range_from: 0 range_to: 60 angle_range: 360 rotation: 270 @@ -380,9 +430,9 @@ lvgl: id: minute_hand width: 2 color: White - r_mod: -25 + length: 95 value: 0 - - range_from: 1 # hours scale for labels + - range_from: 1 range_to: 12 angle_range: 330 rotation: 300 @@ -396,7 +446,7 @@ lvgl: length: 10 color: White label_gap: 12 - - range_from: 0 # hi-res hours scale for hand + - range_from: 0 range_to: 720 angle_range: 360 rotation: 270 @@ -410,13 +460,13 @@ lvgl: id: hour_hand width: 4 color: White - r_mod: -40 + length: 80 value: 0 - line: id: secs_hand width: 1 color: Red - r_mod: -15 + length: 105 value: 0 - obj: id: alarm_status_circle @@ -451,12 +501,12 @@ lvgl: - button: id: snooze_button hidden: true - width: 106 - height: 60 - x: -58 - y: 88 + width: 88 + height: 88 + x: -66 + y: 0 align: CENTER - radius: 18 + radius: 44 bg_color: 0x1E88E5 text_color: White border_width: 0 @@ -473,18 +523,18 @@ lvgl: - button: id: stop_button hidden: true - width: 106 - height: 60 - x: 58 - y: 88 + width: 88 + height: 88 + x: 66 + y: 0 align: CENTER - radius: 18 + radius: 44 bg_color: 0xE53935 text_color: White border_width: 0 on_click: then: - - script.execute: stop_alarm + - script.execute: dismiss_alarm - script.execute: reset_idle_timer widgets: - label: @@ -495,89 +545,86 @@ lvgl: id: snooze_hint_label hidden: true align: CENTER - y: 132 + y: 76 text_align: center text_color: 0xB0BEC5 text: "Rotate = snooze time" - + interval: - interval: 25ms then: - - lvgl.indicator.update: id: secs_hand value: !lambda |- - auto now = id(rtctime).now(); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } + if (!now.is_valid()) { + return 0.0f; + } struct timeval tv; gettimeofday(&tv, NULL); return (now.second * 12) + (tv.tv_usec / 83330.0); - - interval: 400ms - then: - - if: - condition: - lambda: "return id(alarm_ringing);" - then: - - lambda: |- - id(alarm_flash_on) = !id(alarm_flash_on); - - script.execute: update_alarm_status_ui - else: - - if: - condition: - lambda: "return id(alarm_flash_on);" - then: - - lambda: |- - id(alarm_flash_on) = false; - - script.execute: update_alarm_status_ui + - interval: 1s then: - lambda: |- - auto now = id(rtctime).now(); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } if (!now.is_valid()) { return; } + const int minute_key = now.day_of_year * 1440 + now.hour * 60 + now.minute; - if (id(last_alarm_debug_minute_key) == minute_key) { - return; + if (id(last_ui_minute_key) != minute_key) { + id(last_ui_minute_key) = minute_key; + id(sync_alarm_day_state).execute(); + id(update_minutes_hand).execute(); } - id(last_alarm_debug_minute_key) = minute_key; - auto alarm_time_var = id(alarm_time); - if (alarm_time_var == nullptr) { - ESP_LOGW("alarm", "Alarm check at %02d:%02d:%02d but alarm_time is null", now.hour, now.minute, now.second); - return; + + if (id(last_alarm_debug_minute_key) != minute_key) { + id(last_alarm_debug_minute_key) = minute_key; + auto alarm_time_var = id(alarm_time); + if (alarm_time_var != nullptr) { + ESP_LOGI( + "alarm", + "Alarm check now=%02d:%02d:%02d target=%02d:%02d enabled=%d disabled_today=%d ringing=%d snooze_active=%d snooze_target=%d/%02d:%02d", + now.hour, + now.minute, + now.second, + alarm_time_var->hour, + alarm_time_var->minute, + id(alarm_enabled), + id(alarm_disabled_today) && id(alarm_disabled_day) == now.day_of_year, + id(alarm_ringing), + id(snooze_active), + id(snooze_day_of_year), + id(snooze_hour), + id(snooze_minute) + ); + } } - ESP_LOGI( - "alarm", - "Alarm check now=%02d:%02d:%02d target=%02d:%02d enabled=%d disabled_today=%d ringing=%d snooze_active=%d snooze_target=%d/%02d:%02d", - now.hour, - now.minute, - now.second, - alarm_time_var->hour, - alarm_time_var->minute, - id(alarm_enabled), - id(alarm_disabled_today) && id(alarm_disabled_day) == now.day_of_year, - id(alarm_ringing), - id(snooze_active), - id(snooze_day_of_year), - id(snooze_hour), - id(snooze_minute) - ); - if: condition: lambda: |- - auto now = id(rtctime).now(); + auto now = id(sntp_time).now(); if (!now.is_valid()) { - return false; + now = id(rtctime).now(); } - if (!id(alarm_enabled)) { + if (!now.is_valid()) { return false; } - if (id(alarm_ringing)) { + if (!id(alarm_enabled) || id(alarm_ringing)) { return false; } auto alarm_time_var = id(alarm_time); if (alarm_time_var == nullptr) { return false; } + bool alarm_due = false; if (id(snooze_active)) { alarm_due = id(snooze_day_of_year) == now.day_of_year && @@ -589,25 +636,79 @@ interval: } alarm_due = now.hour == alarm_time_var->hour && now.minute == alarm_time_var->minute; } + if (!alarm_due) { return false; } + const int minute_key = now.day_of_year * 1440 + now.hour * 60 + now.minute; if (id(last_alarm_minute_key) == minute_key) { return false; } id(last_alarm_minute_key) = minute_key; - ESP_LOGI("alarm", "Alarm trigger matched at %02d:%02d:%02d for %02d:%02d", now.hour, now.minute, now.second, alarm_time_var->hour, alarm_time_var->minute); + ESP_LOGI("alarm", "Alarm trigger matched at %02d:%02d:%02d", now.hour, now.minute, now.second); return true; then: - script.execute: start_alarm - + - if: + condition: + lambda: |- + if (id(alarm_ringing)) { + return false; + } + if (id(screen_dimmed)) { + return false; + } + return millis() - id(last_interaction_ms) >= 60000; + then: + - lambda: |- + id(screen_dimmed) = true; + ESP_LOGD("ui", "Screen dimmed after inactivity"); + - script.execute: apply_idle_brightness + + - interval: 400ms + then: + - if: + condition: + lambda: "return id(alarm_ringing);" + then: + - lambda: |- + id(alarm_flash_on) = !id(alarm_flash_on); + - script.execute: update_alarm_status_ui + else: + - if: + condition: + lambda: "return id(alarm_flash_on);" + then: + - lambda: |- + id(alarm_flash_on) = false; + - script.execute: update_alarm_status_ui + script: + - id: clear_snooze + then: + - lambda: |- + id(snooze_active) = false; + id(snooze_day_of_year) = -1; + id(snooze_hour) = -1; + id(snooze_minute) = -1; + + - id: dismiss_alarm + then: + - script.execute: clear_snooze + - script.execute: stop_alarm + - id: sync_alarm_day_state then: - lambda: |- - auto now = id(rtctime).now(); - if (now.is_valid() && id(alarm_disabled_today) && id(alarm_disabled_day) != now.day_of_year) { + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } + if (!now.is_valid()) { + return; + } + if (id(alarm_disabled_today) && id(alarm_disabled_day) != now.day_of_year) { id(alarm_disabled_today) = false; id(alarm_disabled_day) = -1; } @@ -616,8 +717,12 @@ script: - id: toggle_alarm_for_today then: - lambda: |- - auto now = id(rtctime).now(); + auto now = id(sntp_time).now(); if (!now.is_valid()) { + now = id(rtctime).now(); + } + if (!now.is_valid()) { + ESP_LOGW("alarm", "Skip-today toggle requested but current time is invalid"); return; } if (id(alarm_disabled_today) && id(alarm_disabled_day) == now.day_of_year) { @@ -629,6 +734,52 @@ script: } - script.execute: update_alarm_status_ui + - id: apply_active_brightness + then: + - light.turn_on: + id: display_backlight + brightness: !lambda |- + if (id(alarm_ringing)) { + return 1.0f; + } + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } + if (now.is_valid() && (now.hour >= 23 || now.hour < 7)) { + return 0.30f; + } + return 1.0f; + + - id: apply_idle_brightness + then: + - light.turn_on: + id: display_backlight + brightness: !lambda |- + if (id(alarm_ringing)) { + return 1.0f; + } + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } + if (now.is_valid() && (now.hour >= 23 || now.hour < 7)) { + return 0.08f; + } + return 0.25f; + + - id: reset_idle_timer + mode: restart + then: + - lambda: |- + id(last_interaction_ms) = millis(); + const bool was_dimmed = id(screen_dimmed); + id(screen_dimmed) = false; + if (was_dimmed) { + ESP_LOGD("ui", "Screen restored from idle dim"); + } + - script.execute: apply_active_brightness + - id: update_alarm_status_ui then: - lvgl.label.update: @@ -642,6 +793,10 @@ script: text: !lambda |- auto alarm_time_var = id(alarm_time); static char alarm_buf[24]; + if (alarm_time_var == nullptr) { + snprintf(alarm_buf, sizeof(alarm_buf), "Alarm --:--"); + return alarm_buf; + } if (!id(alarm_enabled)) { snprintf(alarm_buf, sizeof(alarm_buf), "Alarm Off"); } else if (id(alarm_ringing)) { @@ -655,28 +810,42 @@ script: - lvgl.label.update: id: date_label text: !lambda |- - static const char * const day_names[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; - static const char * const mon_names[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; + static const char *const day_names[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; + static const char *const mon_names[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", + "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; static char date_buf[24]; - auto now = id(rtctime).now(); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } + if (!id(alarm_enabled)) { snprintf(date_buf, sizeof(date_buf), "Disabled"); } else if (id(snooze_active)) { snprintf(date_buf, sizeof(date_buf), "Until %02d:%02d", id(snooze_hour), id(snooze_minute)); + } else if (!now.is_valid() || now.day_of_week < 1 || now.day_of_week > 7 || now.month < 1 || now.month > 12) { + snprintf(date_buf, sizeof(date_buf), "--"); + } else if (id(alarm_disabled_today) && id(alarm_disabled_day) == now.day_of_year) { + snprintf(date_buf, sizeof(date_buf), "Skipped Today"); } else { - snprintf(date_buf, sizeof(date_buf), "%s, %s %2d", day_names[id(rtctime).now().day_of_week - 1], mon_names[now.month-1], now.day_of_month); + snprintf(date_buf, sizeof(date_buf), "%s, %s %2d", day_names[now.day_of_week - 1], mon_names[now.month - 1], now.day_of_month); } return date_buf; - lvgl.widget.update: id: alarm_status_circle bg_color: !lambda |- - auto now = id(rtctime).now(); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } if (id(alarm_ringing)) { return id(alarm_flash_on) ? lv_color_hex(0xFF7043) : lv_color_hex(0xE53935); } + if (id(snooze_active)) { + return lv_color_hex(0x1E88E5); + } if (!id(alarm_enabled)) { - return lv_color_hex(0x455A64); + return lv_color_hex(0x616161); } if (now.is_valid() && id(alarm_disabled_today) && id(alarm_disabled_day) == now.day_of_year) { return lv_color_hex(0xFFD54F); @@ -686,107 +855,80 @@ script: condition: lambda: "return id(alarm_ringing);" then: - - lvgl.widget.show: [snooze_button, stop_button, snooze_hint_label] + - if: + condition: + lambda: "return !id(ring_controls_visible);" + then: + - lambda: |- + id(ring_controls_visible) = true; + - lvgl.widget.hide: [alarm_status_circle] + - lvgl.widget.show: [snooze_button, stop_button, snooze_hint_label] else: - - lvgl.widget.hide: [snooze_button, stop_button, snooze_hint_label] - - - id: apply_active_brightness - then: - - light.turn_on: - id: display_backlight - brightness: !lambda |- - if (id(alarm_ringing)) { - return 1.0f; - } - auto now = id(rtctime).now(); - if (now.is_valid() && now.hour >= 23) { - return 0.30f; - } - if (now.is_valid() && now.hour < 7) { - return 0.30f; - } - return 1.0f; - - - id: apply_idle_brightness - then: - - light.turn_on: - id: display_backlight - brightness: !lambda |- - if (id(alarm_ringing)) { - return 1.0f; - } - auto now = id(rtctime).now(); - if (now.is_valid() && now.hour >= 23) { - return 0.08f; - } - if (now.is_valid() && now.hour < 7) { - return 0.08f; - } - return 0.25f; + - if: + condition: + lambda: "return id(ring_controls_visible);" + then: + - lambda: |- + id(ring_controls_visible) = false; + - lvgl.widget.show: [alarm_status_circle] + - lvgl.widget.hide: [snooze_button, stop_button, snooze_hint_label] - id: snooze_alarm then: - lambda: |- - auto now = id(rtctime).now(); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } if (!now.is_valid()) { ESP_LOGW("alarm", "Snooze requested but current time is invalid"); return; } int total_minutes = now.hour * 60 + now.minute + id(snooze_minutes); int day_offset = total_minutes / 1440; - total_minutes = total_minutes % 1440; + total_minutes %= 1440; id(snooze_active) = true; id(snooze_day_of_year) = now.day_of_year + day_offset; id(snooze_hour) = total_minutes / 60; id(snooze_minute) = total_minutes % 60; - ESP_LOGI( - "alarm", - "Snoozed for %d minutes until day=%d %02d:%02d", - id(snooze_minutes), - id(snooze_day_of_year), - id(snooze_hour), - id(snooze_minute) - ); + ESP_LOGI("alarm", "Snoozed for %d minutes until day=%d %02d:%02d", id(snooze_minutes), id(snooze_day_of_year), id(snooze_hour), id(snooze_minute)); - script.execute: stop_alarm - script.execute: update_minutes_hand - id: snooze_alarm_five_minutes then: - lambda: |- - auto now = id(rtctime).now(); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } if (!now.is_valid()) { ESP_LOGW("alarm", "5-minute snooze requested but current time is invalid"); return; } int total_minutes = now.hour * 60 + now.minute + 5; int day_offset = total_minutes / 1440; - total_minutes = total_minutes % 1440; + total_minutes %= 1440; id(snooze_active) = true; id(snooze_day_of_year) = now.day_of_year + day_offset; id(snooze_hour) = total_minutes / 60; id(snooze_minute) = total_minutes % 60; - ESP_LOGI( - "alarm", - "Snoozed for 5 minutes until day=%d %02d:%02d", - id(snooze_day_of_year), - id(snooze_hour), - id(snooze_minute) - ); + ESP_LOGI("alarm", "Snoozed for 5 minutes until day=%d %02d:%02d", id(snooze_day_of_year), id(snooze_hour), id(snooze_minute)); - script.execute: stop_alarm - script.execute: update_minutes_hand - id: start_alarm mode: restart then: + - script.execute: clear_snooze - lambda: |- - id(snooze_active) = false; - id(snooze_day_of_year) = -1; - id(snooze_hour) = -1; - id(snooze_minute) = -1; + id(snooze_minutes) = 10; id(alarm_ringing) = true; - auto now = id(rtctime).now(); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } ESP_LOGI("alarm", "Starting alarm at %02d:%02d:%02d", now.hour, now.minute, now.second); - - script.stop: reset_idle_timer - script.execute: apply_active_brightness - script.execute: update_minutes_hand - script.execute: alarm_loop @@ -796,7 +938,10 @@ script: then: - lambda: |- if (id(alarm_ringing)) { - auto now = id(rtctime).now(); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } ESP_LOGI("alarm", "Stopping alarm at %02d:%02d:%02d", now.hour, now.minute, now.second); } id(alarm_ringing) = false; @@ -843,22 +988,28 @@ script: - logger.log: "Alarm timed out after 5 minutes" - script.execute: stop_alarm - - id: reset_idle_timer - mode: restart - then: - - script.execute: apply_active_brightness - - delay: 1min - - script.execute: apply_idle_brightness - - id: update_minutes_hand then: - script.execute: update_alarm_status_ui - lvgl.indicator.update: id: hour_hand value: !lambda |- - auto now = id(rtctime).now(); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } + if (!now.is_valid()) { + return 0.0f; + } return std::fmod(now.hour, 12) * 60 + now.minute; - lvgl.indicator.update: id: minute_hand value: !lambda |- - return id(rtctime).now().minute; + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } + if (!now.is_valid()) { + return 0.0f; + } + return float(now.minute); From 3db96b3bca769d10123cc7ce9dfa436046bf7df2 Mon Sep 17 00:00:00 2001 From: Gurgen Davtyan Date: Fri, 17 Apr 2026 21:32:03 +0400 Subject: [PATCH 04/16] Refactor alarm to use next-ring overrides and timestamp sensor --- clock.yaml | 383 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 272 insertions(+), 111 deletions(-) diff --git a/clock.yaml b/clock.yaml index 4644313..36f316a 100644 --- a/clock.yaml +++ b/clock.yaml @@ -77,14 +77,10 @@ globals: type: bool restore_value: no initial_value: "false" - - id: alarm_disabled_today + - id: skip_next_ring type: bool restore_value: yes initial_value: "false" - - id: alarm_disabled_day - type: int - restore_value: yes - initial_value: "-1" - id: last_alarm_minute_key type: int restore_value: no @@ -145,12 +141,33 @@ globals: type: bool restore_value: no initial_value: "false" + - id: dismiss_feedback_until_ms + type: uint32_t + restore_value: no + initial_value: "0" + - id: next_ring_override_active + type: bool + restore_value: yes + initial_value: "false" + - id: next_ring_override_epoch + type: uint32_t + restore_value: yes + initial_value: "0" + - id: next_alarm_available + type: bool + restore_value: no + initial_value: "false" + - id: next_alarm_epoch + type: uint32_t + restore_value: no + initial_value: "0" switch: - platform: template id: alarm_enabled_switch name: "Alarm Enabled" icon: "mdi:alarm-check" + restore_mode: RESTORE_DEFAULT_ON lambda: |- return id(alarm_enabled); turn_on_action: @@ -201,11 +218,11 @@ sensor: id(last_encoder_turn_ms) = now_ms; id(last_encoder_direction) = direction; - int step_minutes = 5; + int step_minutes = 1; if (delta_ms < 70) { - step_minutes = 30; - } else if (delta_ms < 140) { step_minutes = 15; + } else if (delta_ms < 140) { + step_minutes = 5; } if (id(alarm_ringing)) { @@ -223,13 +240,24 @@ sensor: return; } - auto alarm_time_var = id(alarm_time).state_as_esptime(); - int total_minutes = alarm_time_var.hour * 60 + alarm_time_var.minute + step_minutes; - total_minutes %= 1440; - alarm_time_var.hour = total_minutes / 60; - alarm_time_var.minute = total_minutes % 60; - id(alarm_time).make_call().set_time(alarm_time_var).perform(); - ESP_LOGI("alarm", "Alarm time adjusted clockwise by %d minutes (delta=%ums)", step_minutes, delta_ms); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } + if (!now.is_valid() || !id(next_alarm_available)) { + ESP_LOGW("alarm", "Ignoring clockwise encoder turn because next ring is unavailable"); + return; + } + uint32_t candidate_epoch = id(next_alarm_epoch) + (step_minutes * 60); + const uint32_t min_epoch = ((uint32_t(now.timestamp) / 60) + 1) * 60; + if (candidate_epoch < min_epoch) { + candidate_epoch = min_epoch; + } + id(next_ring_override_active) = true; + id(next_ring_override_epoch) = candidate_epoch; + id(update_minutes_hand).execute(); + auto next_alarm = ESPTime::from_epoch_local(candidate_epoch); + ESP_LOGI("alarm", "Next ring override adjusted clockwise by %d minutes to %02d:%02d", step_minutes, next_alarm.hour, next_alarm.minute); on_anticlockwise: - script.execute: reset_idle_timer - lambda: |- @@ -242,11 +270,11 @@ sensor: id(last_encoder_turn_ms) = now_ms; id(last_encoder_direction) = direction; - int step_minutes = 5; + int step_minutes = 1; if (delta_ms < 70) { - step_minutes = 30; - } else if (delta_ms < 140) { step_minutes = 15; + } else if (delta_ms < 140) { + step_minutes = 5; } if (id(alarm_ringing)) { @@ -264,15 +292,24 @@ sensor: return; } - auto alarm_time_var = id(alarm_time).state_as_esptime(); - int total_minutes = alarm_time_var.hour * 60 + alarm_time_var.minute - step_minutes; - while (total_minutes < 0) { - total_minutes += 1440; + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } + if (!now.is_valid() || !id(next_alarm_available)) { + ESP_LOGW("alarm", "Ignoring anticlockwise encoder turn because next ring is unavailable"); + return; + } + int32_t candidate_epoch = int32_t(id(next_alarm_epoch)) - (step_minutes * 60); + const uint32_t min_epoch = ((uint32_t(now.timestamp) / 60) + 1) * 60; + if (candidate_epoch < int32_t(min_epoch)) { + candidate_epoch = int32_t(min_epoch); } - alarm_time_var.hour = total_minutes / 60; - alarm_time_var.minute = total_minutes % 60; - id(alarm_time).make_call().set_time(alarm_time_var).perform(); - ESP_LOGI("alarm", "Alarm time adjusted anticlockwise by %d minutes (delta=%ums)", step_minutes, delta_ms); + id(next_ring_override_active) = true; + id(next_ring_override_epoch) = uint32_t(candidate_epoch); + id(update_minutes_hand).execute(); + auto next_alarm = ESPTime::from_epoch_local(uint32_t(candidate_epoch)); + ESP_LOGI("alarm", "Next ring override adjusted anticlockwise by %d minutes to %02d:%02d", step_minutes, next_alarm.hour, next_alarm.minute); time: - platform: pcf8563 @@ -297,16 +334,64 @@ time: datetime: - platform: template - id: alarm_time - name: "Alarm Time" + id: weekday_alarm_time + name: "Weekday Alarm Time" type: time - icon: "mdi:alarm" + icon: "mdi:calendar-week" initial_value: "07:00:00" restore_value: true optimistic: yes on_value: then: - script.execute: update_minutes_hand + - platform: template + id: weekend_alarm_time + name: "Weekend Alarm Time" + type: time + icon: "mdi:calendar-weekend" + initial_value: "09:00:00" + restore_value: true + optimistic: yes + on_value: + then: + - script.execute: update_minutes_hand +text_sensor: + - platform: template + id: next_alarm_time_text + name: "Next Alarm Time" + icon: "mdi:calendar-clock" + device_class: timestamp + update_interval: 30s + lambda: |- + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } + if (!now.is_valid()) { + return {""}; + } + if (!id(alarm_enabled)) { + return {""}; + } + if (!id(next_alarm_available)) { + return {""}; + } + + time_t candidate_epoch = id(next_alarm_epoch); + auto local = ESPTime::from_epoch_local(candidate_epoch); + char base_buf[32]; + local.strftime(base_buf, sizeof(base_buf), "%Y-%m-%dT%H:%M:%S"); + int32_t tz_offset = ESPTime::timezone_offset(); + char sign = '+'; + if (tz_offset < 0) { + sign = '-'; + tz_offset = -tz_offset; + } + int tz_hours = tz_offset / 3600; + int tz_minutes = (tz_offset % 3600) / 60; + char out_buf[40]; + snprintf(out_buf, sizeof(out_buf), "%s%c%02d:%02d", base_buf, sign, tz_hours, tz_minutes); + return {out_buf}; binary_sensor: - platform: gpio @@ -479,25 +564,39 @@ lvgl: clip_corner: true pad_all: 0 border_width: 1 - on_click: - then: - - if: - condition: - lambda: "return !id(alarm_ringing);" - then: - - script.execute: toggle_alarm_for_today - - script.execute: reset_idle_timer widgets: - label: styles: date_style id: alarm_label + width: 104 y: -20 + text_align: center text: "" - label: id: date_label styles: date_style + width: 104 y: 20 + text_align: center text: "" + - button: + id: center_tap_button + width: 120 + height: 120 + align: CENTER + radius: 60 + bg_opa: TRANSP + border_width: 0 + shadow_width: 0 + press_lock: true + on_click: + then: + - if: + condition: + lambda: "return !id(alarm_ringing);" + then: + - script.execute: toggle_skip_next_ring + - script.execute: reset_idle_timer - button: id: snooze_button hidden: true @@ -587,23 +686,21 @@ interval: if (id(last_alarm_debug_minute_key) != minute_key) { id(last_alarm_debug_minute_key) = minute_key; - auto alarm_time_var = id(alarm_time); - if (alarm_time_var != nullptr) { + if (id(next_alarm_available)) { + auto next_alarm = ESPTime::from_epoch_local(id(next_alarm_epoch)); ESP_LOGI( "alarm", - "Alarm check now=%02d:%02d:%02d target=%02d:%02d enabled=%d disabled_today=%d ringing=%d snooze_active=%d snooze_target=%d/%02d:%02d", + "Alarm check now=%02d:%02d:%02d target=%02d:%02d enabled=%d skip_next=%d ringing=%d snooze_active=%d override=%d", now.hour, now.minute, now.second, - alarm_time_var->hour, - alarm_time_var->minute, + next_alarm.hour, + next_alarm.minute, id(alarm_enabled), - id(alarm_disabled_today) && id(alarm_disabled_day) == now.day_of_year, + id(skip_next_ring), id(alarm_ringing), id(snooze_active), - id(snooze_day_of_year), - id(snooze_hour), - id(snooze_minute) + id(next_ring_override_active) ); } } @@ -620,32 +717,18 @@ interval: if (!id(alarm_enabled) || id(alarm_ringing)) { return false; } - auto alarm_time_var = id(alarm_time); - if (alarm_time_var == nullptr) { + if (!id(next_alarm_available)) { return false; } - - bool alarm_due = false; - if (id(snooze_active)) { - alarm_due = id(snooze_day_of_year) == now.day_of_year && - id(snooze_hour) == now.hour && - id(snooze_minute) == now.minute; - } else { - if (id(alarm_disabled_today) && id(alarm_disabled_day) == now.day_of_year) { - return false; - } - alarm_due = now.hour == alarm_time_var->hour && now.minute == alarm_time_var->minute; - } - - if (!alarm_due) { + const uint32_t now_minute = uint32_t(now.timestamp / 60); + const uint32_t target_minute = uint32_t(id(next_alarm_epoch) / 60); + if (now_minute != target_minute) { return false; } - - const int minute_key = now.day_of_year * 1440 + now.hour * 60 + now.minute; - if (id(last_alarm_minute_key) == minute_key) { + if (id(last_alarm_minute_key) == int(target_minute)) { return false; } - id(last_alarm_minute_key) = minute_key; + id(last_alarm_minute_key) = int(target_minute); ESP_LOGI("alarm", "Alarm trigger matched at %02d:%02d:%02d", now.hour, now.minute, now.second); return true; then: @@ -678,13 +761,89 @@ interval: else: - if: condition: - lambda: "return id(alarm_flash_on);" + lambda: |- + return id(alarm_flash_on) || id(dismiss_feedback_until_ms) != 0; then: - lambda: |- - id(alarm_flash_on) = false; + if (id(alarm_flash_on)) { + id(alarm_flash_on) = false; + } + if (id(dismiss_feedback_until_ms) != 0 && millis() >= id(dismiss_feedback_until_ms)) { + id(dismiss_feedback_until_ms) = 0; + } - script.execute: update_alarm_status_ui script: + - id: sync_next_alarm_state + then: + - lambda: |- + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } + if (!now.is_valid() || !id(alarm_enabled)) { + id(next_alarm_available) = false; + id(next_alarm_epoch) = 0; + return; + } + + if (id(next_ring_override_active)) { + if (id(next_ring_override_epoch) > uint32_t(now.timestamp)) { + id(next_alarm_available) = true; + id(next_alarm_epoch) = id(next_ring_override_epoch); + return; + } + id(next_ring_override_active) = false; + id(next_ring_override_epoch) = 0; + } + + if (id(snooze_active)) { + int day_offset = (id(snooze_day_of_year) == now.day_of_year) ? 0 : 1; + const time_t midnight_epoch = now.timestamp - (now.hour * 3600) - (now.minute * 60) - now.second; + id(next_alarm_epoch) = uint32_t(midnight_epoch + (day_offset * 86400) + (id(snooze_hour) * 3600) + (id(snooze_minute) * 60)); + id(next_alarm_available) = true; + return; + } + + const auto weekday_alarm = id(weekday_alarm_time); + const auto weekend_alarm = id(weekend_alarm_time); + if (weekday_alarm == nullptr || weekend_alarm == nullptr) { + id(next_alarm_available) = false; + id(next_alarm_epoch) = 0; + return; + } + + bool found = false; + bool skip_consumed = false; + for (int offset = 0; offset < 8; offset++) { + const int candidate_dow = ((now.day_of_week - 1 + offset) % 7) + 1; + auto candidate_alarm = (candidate_dow == 1 || candidate_dow == 7) ? weekend_alarm : weekday_alarm; + if (!skip_consumed && id(skip_next_ring)) { + skip_consumed = true; + continue; + } + const bool valid_time = offset > 0 || + candidate_alarm->hour > now.hour || + (candidate_alarm->hour == now.hour && candidate_alarm->minute > now.minute); + if (!valid_time) { + continue; + } + const time_t midnight_epoch = now.timestamp - (now.hour * 3600) - (now.minute * 60) - now.second; + id(next_alarm_epoch) = uint32_t(midnight_epoch + (offset * 86400) + (candidate_alarm->hour * 3600) + (candidate_alarm->minute * 60)); + id(next_alarm_available) = true; + found = true; + break; + } + + if (skip_consumed) { + id(skip_next_ring) = false; + } + + if (!found) { + id(next_alarm_available) = false; + id(next_alarm_epoch) = 0; + } + - id: clear_snooze then: - lambda: |- @@ -695,43 +854,21 @@ script: - id: dismiss_alarm then: + - lambda: |- + id(dismiss_feedback_until_ms) = millis() + 3000; - script.execute: clear_snooze - script.execute: stop_alarm - id: sync_alarm_day_state then: - - lambda: |- - auto now = id(sntp_time).now(); - if (!now.is_valid()) { - now = id(rtctime).now(); - } - if (!now.is_valid()) { - return; - } - if (id(alarm_disabled_today) && id(alarm_disabled_day) != now.day_of_year) { - id(alarm_disabled_today) = false; - id(alarm_disabled_day) = -1; - } + - script.execute: sync_next_alarm_state - script.execute: update_alarm_status_ui - - id: toggle_alarm_for_today + - id: toggle_skip_next_ring then: - lambda: |- - auto now = id(sntp_time).now(); - if (!now.is_valid()) { - now = id(rtctime).now(); - } - if (!now.is_valid()) { - ESP_LOGW("alarm", "Skip-today toggle requested but current time is invalid"); - return; - } - if (id(alarm_disabled_today) && id(alarm_disabled_day) == now.day_of_year) { - id(alarm_disabled_today) = false; - id(alarm_disabled_day) = -1; - } else { - id(alarm_disabled_today) = true; - id(alarm_disabled_day) = now.day_of_year; - } + id(skip_next_ring) = !id(skip_next_ring); + ESP_LOGI("ui", "Skip next ring toggled to %d", id(skip_next_ring)); - script.execute: update_alarm_status_ui - id: apply_active_brightness @@ -782,6 +919,7 @@ script: - id: update_alarm_status_ui then: + - script.execute: sync_next_alarm_state - lvgl.label.update: id: snooze_button_label text: !lambda |- @@ -791,28 +929,23 @@ script: - lvgl.label.update: id: alarm_label text: !lambda |- - auto alarm_time_var = id(alarm_time); static char alarm_buf[24]; - if (alarm_time_var == nullptr) { - snprintf(alarm_buf, sizeof(alarm_buf), "Alarm --:--"); - return alarm_buf; - } if (!id(alarm_enabled)) { snprintf(alarm_buf, sizeof(alarm_buf), "Alarm Off"); } else if (id(alarm_ringing)) { snprintf(alarm_buf, sizeof(alarm_buf), "Alarm!"); + } else if (id(dismiss_feedback_until_ms) != 0 && millis() < id(dismiss_feedback_until_ms)) { + snprintf(alarm_buf, sizeof(alarm_buf), "Stopped"); } else if (id(snooze_active)) { snprintf(alarm_buf, sizeof(alarm_buf), "Snoozing"); } else { - snprintf(alarm_buf, sizeof(alarm_buf), "Alarm %02d:%02d", alarm_time_var->hour, alarm_time_var->minute); + snprintf(alarm_buf, sizeof(alarm_buf), "Next Ring"); } return alarm_buf; - lvgl.label.update: id: date_label text: !lambda |- static const char *const day_names[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; - static const char *const mon_names[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; static char date_buf[24]; auto now = id(sntp_time).now(); if (!now.is_valid()) { @@ -821,14 +954,37 @@ script: if (!id(alarm_enabled)) { snprintf(date_buf, sizeof(date_buf), "Disabled"); + } else if (id(dismiss_feedback_until_ms) != 0 && millis() < id(dismiss_feedback_until_ms)) { + snprintf(date_buf, sizeof(date_buf), "Dismissed"); } else if (id(snooze_active)) { - snprintf(date_buf, sizeof(date_buf), "Until %02d:%02d", id(snooze_hour), id(snooze_minute)); + if (!now.is_valid()) { + snprintf(date_buf, sizeof(date_buf), "Until %02d:%02d", id(snooze_hour), id(snooze_minute)); + } else if (id(snooze_day_of_year) == now.day_of_year) { + snprintf(date_buf, sizeof(date_buf), "Today %02d:%02d", id(snooze_hour), id(snooze_minute)); + } else if (id(snooze_day_of_year) == now.day_of_year + 1) { + snprintf(date_buf, sizeof(date_buf), "Tomorrow %02d:%02d", id(snooze_hour), id(snooze_minute)); + } else { + snprintf(date_buf, sizeof(date_buf), "Until %02d:%02d", id(snooze_hour), id(snooze_minute)); + } + } else if (id(skip_next_ring)) { + snprintf(date_buf, sizeof(date_buf), "Skipped"); } else if (!now.is_valid() || now.day_of_week < 1 || now.day_of_week > 7 || now.month < 1 || now.month > 12) { snprintf(date_buf, sizeof(date_buf), "--"); - } else if (id(alarm_disabled_today) && id(alarm_disabled_day) == now.day_of_year) { - snprintf(date_buf, sizeof(date_buf), "Skipped Today"); + } else if (!id(next_alarm_available)) { + snprintf(date_buf, sizeof(date_buf), "No next ring"); } else { - snprintf(date_buf, sizeof(date_buf), "%s, %s %2d", day_names[now.day_of_week - 1], mon_names[now.month - 1], now.day_of_month); + auto next_alarm = ESPTime::from_epoch_local(id(next_alarm_epoch)); + int day_delta = next_alarm.day_of_year - now.day_of_year; + if (day_delta < 0) { + day_delta += 366; + } + if (day_delta == 0) { + snprintf(date_buf, sizeof(date_buf), "Today %02d:%02d", next_alarm.hour, next_alarm.minute); + } else if (day_delta == 1) { + snprintf(date_buf, sizeof(date_buf), "Tomorrow %02d:%02d", next_alarm.hour, next_alarm.minute); + } else { + snprintf(date_buf, sizeof(date_buf), "%s %02d:%02d", day_names[next_alarm.day_of_week - 1], next_alarm.hour, next_alarm.minute); + } } return date_buf; - lvgl.widget.update: @@ -841,13 +997,16 @@ script: if (id(alarm_ringing)) { return id(alarm_flash_on) ? lv_color_hex(0xFF7043) : lv_color_hex(0xE53935); } + if (id(dismiss_feedback_until_ms) != 0 && millis() < id(dismiss_feedback_until_ms)) { + return lv_color_hex(0x43A047); + } if (id(snooze_active)) { return lv_color_hex(0x1E88E5); } if (!id(alarm_enabled)) { return lv_color_hex(0x616161); } - if (now.is_valid() && id(alarm_disabled_today) && id(alarm_disabled_day) == now.day_of_year) { + if (id(skip_next_ring)) { return lv_color_hex(0xFFD54F); } return lv_color_hex(0x000000); @@ -861,7 +1020,7 @@ script: then: - lambda: |- id(ring_controls_visible) = true; - - lvgl.widget.hide: [alarm_status_circle] + - lvgl.widget.hide: [alarm_status_circle, center_tap_button] - lvgl.widget.show: [snooze_button, stop_button, snooze_hint_label] else: - if: @@ -870,7 +1029,7 @@ script: then: - lambda: |- id(ring_controls_visible) = false; - - lvgl.widget.show: [alarm_status_circle] + - lvgl.widget.show: [alarm_status_circle, center_tap_button] - lvgl.widget.hide: [snooze_button, stop_button, snooze_hint_label] - id: snooze_alarm @@ -922,6 +1081,8 @@ script: then: - script.execute: clear_snooze - lambda: |- + id(next_ring_override_active) = false; + id(next_ring_override_epoch) = 0; id(snooze_minutes) = 10; id(alarm_ringing) = true; auto now = id(sntp_time).now(); From 953023de6ec7968d214a99c04e00539ab880bbfa Mon Sep 17 00:00:00 2001 From: Gurgen Davtyan Date: Fri, 17 Apr 2026 21:57:14 +0400 Subject: [PATCH 05/16] Dismiss snoozed alarms and wrap next ring text --- clock.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/clock.yaml b/clock.yaml index 36f316a..0c0f84d 100644 --- a/clock.yaml +++ b/clock.yaml @@ -413,7 +413,7 @@ binary_sensor: then: - if: condition: - lambda: "return id(alarm_ringing);" + lambda: "return id(alarm_ringing) || id(snooze_active);" then: - script.execute: dismiss_alarm - script.execute: reset_idle_timer @@ -979,11 +979,11 @@ script: day_delta += 366; } if (day_delta == 0) { - snprintf(date_buf, sizeof(date_buf), "Today %02d:%02d", next_alarm.hour, next_alarm.minute); + snprintf(date_buf, sizeof(date_buf), "Today\n%02d:%02d", next_alarm.hour, next_alarm.minute); } else if (day_delta == 1) { - snprintf(date_buf, sizeof(date_buf), "Tomorrow %02d:%02d", next_alarm.hour, next_alarm.minute); + snprintf(date_buf, sizeof(date_buf), "Tomorrow\n%02d:%02d", next_alarm.hour, next_alarm.minute); } else { - snprintf(date_buf, sizeof(date_buf), "%s %02d:%02d", day_names[next_alarm.day_of_week - 1], next_alarm.hour, next_alarm.minute); + snprintf(date_buf, sizeof(date_buf), "%s\n%02d:%02d", day_names[next_alarm.day_of_week - 1], next_alarm.hour, next_alarm.minute); } } return date_buf; From 095c0458ae85fdcfb747d6e645a8a20e49249a80 Mon Sep 17 00:00:00 2001 From: Gurgen Davtyan Date: Fri, 17 Apr 2026 23:44:00 +0400 Subject: [PATCH 06/16] Start HA alarm audio and fix next-ring override timing --- clock.yaml | 45 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/clock.yaml b/clock.yaml index 0c0f84d..622de06 100644 --- a/clock.yaml +++ b/clock.yaml @@ -1,3 +1,6 @@ +substitutions: + alarm_audio_player_entity: media_player.living_room_speaker_2 + esphome: name: esphome-web-56058c friendly_name: AlarmV1 @@ -788,7 +791,9 @@ script: } if (id(next_ring_override_active)) { - if (id(next_ring_override_epoch) > uint32_t(now.timestamp)) { + const uint32_t now_minute = uint32_t(now.timestamp / 60); + const uint32_t override_minute = uint32_t(id(next_ring_override_epoch) / 60); + if (override_minute >= now_minute) { id(next_alarm_available) = true; id(next_alarm_epoch) = id(next_ring_override_epoch); return; @@ -905,6 +910,42 @@ script: } return 0.25f; + - id: start_alarm_media_on_ha + then: + - lambda: |- + ESP_LOGI("alarm", "Requesting Home Assistant alarm audio start"); + - homeassistant.action: + action: script.alarmv1_start_alarm_audio + data: + entity_id: ${alarm_audio_player_entity} + on_success: + - if: + condition: + lambda: "return id(alarm_ringing);" + then: + - lambda: |- + ESP_LOGI("alarm", "Requested Home Assistant alarm audio start"); + - script.stop: alarm_loop + - output.turn_off: buzzer + on_error: + - lambda: |- + ESP_LOGW("alarm", "Home Assistant alarm audio start failed: %s", error.c_str()); + + - id: stop_alarm_media_on_ha + then: + - lambda: |- + ESP_LOGI("alarm", "Requesting Home Assistant alarm audio stop for %s", "${alarm_audio_player_entity}"); + - homeassistant.action: + action: media_player.media_stop + data: + entity_id: ${alarm_audio_player_entity} + on_success: + - lambda: |- + ESP_LOGI("alarm", "Requested Home Assistant alarm audio stop for %s", "${alarm_audio_player_entity}"); + on_error: + - lambda: |- + ESP_LOGW("alarm", "Home Assistant alarm audio stop failed: %s", error.c_str()); + - id: reset_idle_timer mode: restart then: @@ -1092,6 +1133,7 @@ script: ESP_LOGI("alarm", "Starting alarm at %02d:%02d:%02d", now.hour, now.minute, now.second); - script.execute: apply_active_brightness - script.execute: update_minutes_hand + - script.execute: start_alarm_media_on_ha - script.execute: alarm_loop - script.execute: alarm_timeout @@ -1109,6 +1151,7 @@ script: - script.stop: alarm_loop - script.stop: alarm_timeout - output.turn_off: buzzer + - script.execute: stop_alarm_media_on_ha - script.execute: update_minutes_hand - script.execute: reset_idle_timer From c3f16705d3e432dc3f3253b24428fad1b0ea24e2 Mon Sep 17 00:00:00 2001 From: Gurgen Davtyan Date: Mon, 20 Apr 2026 14:15:52 +0400 Subject: [PATCH 07/16] Fix alarm scheduling and screen rotation --- clock.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/clock.yaml b/clock.yaml index 622de06..566cd34 100644 --- a/clock.yaml +++ b/clock.yaml @@ -476,7 +476,7 @@ display: data_rate: 40MHz lvgl: - rotation: 270 + rotation: 90 displays: - round_display touchscreens: @@ -827,9 +827,10 @@ script: skip_consumed = true; continue; } + const int now_total_minutes = now.hour * 60 + now.minute; + const int candidate_total_minutes = candidate_alarm->hour * 60 + candidate_alarm->minute; const bool valid_time = offset > 0 || - candidate_alarm->hour > now.hour || - (candidate_alarm->hour == now.hour && candidate_alarm->minute > now.minute); + candidate_total_minutes >= now_total_minutes; if (!valid_time) { continue; } From 4ab5910560abac74e1110b5f437d325f8366b318 Mon Sep 17 00:00:00 2001 From: Gurgen Davtyan Date: Mon, 20 Apr 2026 17:45:25 +0400 Subject: [PATCH 08/16] Rewrite README for forked alarm clock --- readme.md | 201 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 180 insertions(+), 21 deletions(-) diff --git a/readme.md b/readme.md index a917232..974c081 100644 --- a/readme.md +++ b/readme.md @@ -1,32 +1,191 @@ -# Analogue Bedside Clock +# M5Stack Dial Alarm Clock -This project builds an analogue bedside clock out of a M5Stack Dial; the main purpose is to be able to set the time for an alarm routing in Home Assistant by twisting the dial. +This repository is a fork of [tomwilkie/clock](https://github.com/tomwilkie/clock) with a much more complete alarm-clock workflow built on top of the original analogue M5Stack Dial clock idea. -I have the alarm routine in Home Assistant slow fade up my bedsite lights, open the shutters, put on the air purifier and start the robot vacuum cleaners in the house. +The base project turns an `M5Stack Dial` into a round bedside clock for Home Assistant. This fork keeps that core idea, but adds on-device alarm logic, snoozing, next-alarm overrides, weekday/weekend scheduling, Home Assistant controls, and optional music playback through a Home Assistant media player. -Tip: if you use adaptive lighting, you can also set that up to control the backlight so its not too bright at night! +M5Stack Dial analogue alarm clock -Analogue Bedside Clock +## What This Fork Adds -You'll need: -- An M5Stack Dial: https://docs.m5stack.com/en/core/M5Dial -- Some 3D printed parts: https://www.printables.com/model/1562621-analogue-alarm-clock-for-home-assistant -- A low profile USB C cable: https://www.amazon.co.uk/dp/B0FMPVZJDP +Compared to the original project, this fork adds: + +- A real on-device alarm that triggers when the configured alarm time is reached +- Weekday and weekend default alarm times +- A one-time "next ring" override using the rotary dial +- Snooze support, including adjustable snooze duration while the alarm is ringing +- Skip-next-ring behavior from the center touch target +- `Alarm Enabled`, `Stop Alarm`, and `Test Alarm` entities in Home Assistant +- `Next Alarm Time` exported as a timestamp-style text sensor for automations +- On-screen alarm state UI with different colors for: + - armed + - skipped + - disabled + - snoozed + - ringing + - recently dismissed +- Side-by-side on-screen `Snooze` and `Stop` controls while ringing +- Idle screen dimming with brighter alarm-time behavior +- Optional external alarm audio through Home Assistant / Music Assistant / Chromecast +- More robust boot handling for current ESPHome versions + +## Current Behavior + +The device currently works like this: + +- The screen shows an analogue clock face on the M5Stack Dial display. +- The RTC (`PCF8563`) is used locally, with SNTP syncing time back into the RTC. +- The rotary encoder adjusts the next upcoming alarm. +- Slow rotation changes by `1 minute`, faster rotation by `5 minutes`, very fast rotation by `15 minutes`. +- During ringing, the rotary encoder adjusts snooze duration instead. +- While snoozed, encoder alarm-time edits are locked. +- Tapping the center area toggles `skip next ring`. +- The single hardware button: + - short press while ringing = snooze 5 minutes + - hold for 3 seconds while ringing or snoozed = dismiss the alarm +- If Home Assistant is configured, the alarm can also start music playback on a speaker and stop it on snooze/dismiss. + +## Alarm Model + +This fork uses a simple model: + +- `Weekday Alarm Time` is the default for Monday-Friday +- `Weekend Alarm Time` is the default for Saturday-Sunday +- Turning the dial does **not** rewrite those defaults directly +- Turning the dial creates a one-time override for the **next actual ring** +- After that ring happens, the override is cleared automatically + +This makes the device easy to use at the bedside: + +- keep stable weekday/weekend defaults +- quickly tweak only tomorrow's alarm from the dial + +## Home Assistant Entities + +The ESPHome config exposes the following useful entities: + +- `Alarm Enabled` +- `Weekday Alarm Time` +- `Weekend Alarm Time` +- `Stop Alarm` +- `Test Alarm` +- `Next Alarm Time` + +`Next Alarm Time` is published as an ISO-style local timestamp string and marked with `device_class: timestamp`, which makes it useful in Home Assistant automations. + +## Optional Music Alarm + +This repo supports starting alarm audio through Home Assistant when the alarm begins. + +The current ESPHome config expects: + +- a Home Assistant script named `script.alarmv1_start_alarm_audio` +- a Home Assistant media player entity configured in `clock.yaml` under: + +```yaml +substitutions: + alarm_audio_player_entity: media_player.living_room_speaker_2 +``` + +When the alarm starts: + +- the device triggers `script.alarmv1_start_alarm_audio` +- once Home Assistant confirms success, the local buzzer is stopped + +When the alarm is snoozed, stopped, disabled, or times out: + +- the device calls `media_player.media_stop` for the configured player + +### Example Home Assistant Script + +This is an example script that works with Music Assistant: + +```yaml +alias: AlarmV1 Start Alarm Audio +sequence: + - action: media_player.volume_set + target: + entity_id: media_player.living_room_speaker_2 + data: + volume_level: 0.8 + + - action: music_assistant.play_media + target: + entity_id: media_player.living_room_speaker_2 + data: + media_id: Techno + media_type: playlist + enqueue: replace + + - delay: 1s + + - action: media_player.shuffle_set + target: + entity_id: media_player.living_room_speaker_2 + data: + shuffle: true +``` + +You must also enable ESPHome devices to perform Home Assistant actions in the ESPHome integration settings. + +## Hardware + +This project is built for: + +- [M5Stack Dial](https://docs.m5stack.com/en/core/M5Dial) + +Useful extras from the original project: + +- 3D printed parts: https://www.printables.com/model/1562621-analogue-alarm-clock-for-home-assistant +- low-profile USB-C cable: https://www.amazon.co.uk/dp/B0FMPVZJDP + +## Project Files + +- [clock.yaml](/Users/gdavtyan/Projects/esp-alarm-clock/clock.yaml): main ESPHome firmware config +- [debug.yaml](/Users/gdavtyan/Projects/esp-alarm-clock/debug.yaml): older/shared debug config kept in the repo +- [clock.webp](/Users/gdavtyan/Projects/esp-alarm-clock/clock.webp): device photo + +## Configuration Notes + +Before flashing, you will probably want to adjust: + +- device name and friendly name +- Wi-Fi credentials in `secrets.yaml` +- timezone +- `alarm_audio_player_entity` +- any Home Assistant script names or media targets + +This repo is currently tailored to: + +- `Asia/Yerevan` +- Home Assistant +- Music Assistant +- a Chromecast-style media player + +## Installing ESPHome on macOS -# Installing esphome & compiling this project on a Mac ```sh -# We'll use pipx to install esphome, and brew to install pipx -$ brew install pipx libmagic cairo +brew install pipx libmagic cairo +pipx install esphome +pipx runpip esphome install python-magic pillow==11.3.0 cairosvg +``` -# Install esphome in its own virtual env -$ pipx install esphome +## Flashing -# Add some dependencies to the virtual env -$ pipx runpip esphome install python-magic pillow==11.3.0 cairosvg +First flash over USB: + +```sh +~/.local/bin/esphome run --device=/dev/tty.usbmodemXXXX clock.yaml +``` + +Later flashes over Wi-Fi: + +```sh +~/.local/bin/esphome run clock.yaml +``` -# Install the wind tunnel (first time - your device name will vary) -$ ~/.local/bin/esphome run --device=/dev/tty.usbmodem31301 clock.yaml +## Notes -# Install the wind tunnel (susequent times, via WiFi) -$ ~/.local/bin/esphome run clock.yaml -``` \ No newline at end of file +- The M5Stack Dial only has one normal user-facing hardware button. +- The touchscreen can occasionally log `Failed to read status`; in this project that has mostly been harmless noise unless touch behavior is obviously broken. +- The current config uses the modern `mipi_spi` display driver because it is more stable with recent ESPHome versions than the older `ili9xxx` setup. From 58bb693febfe83a4095ffca68981bc7853f15f88 Mon Sep 17 00:00:00 2001 From: Gurgen Davtyan Date: Mon, 11 May 2026 00:58:58 +0400 Subject: [PATCH 09/16] Refine alarm menu and skip handling --- clock.yaml | 254 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 230 insertions(+), 24 deletions(-) diff --git a/clock.yaml b/clock.yaml index 566cd34..ff0f6ca 100644 --- a/clock.yaml +++ b/clock.yaml @@ -84,6 +84,10 @@ globals: type: bool restore_value: yes initial_value: "false" + - id: skip_next_ring_epoch + type: uint32_t + restore_value: yes + initial_value: "0" - id: last_alarm_minute_key type: int restore_value: no @@ -144,6 +148,10 @@ globals: type: bool restore_value: no initial_value: "false" + - id: home_menu_visible + type: bool + restore_value: no + initial_value: "false" - id: dismiss_feedback_until_ms type: uint32_t restore_value: no @@ -419,6 +427,9 @@ binary_sensor: lambda: "return id(alarm_ringing) || id(snooze_active);" then: - script.execute: dismiss_alarm + else: + - script.execute: home_all_lights_off + - script.execute: close_home_menu - script.execute: reset_idle_timer - timing: - ON for at most 500ms @@ -429,6 +440,14 @@ binary_sensor: lambda: "return id(alarm_ringing);" then: - script.execute: snooze_alarm_five_minutes + else: + - if: + condition: + lambda: "return id(home_menu_visible);" + then: + - script.execute: close_home_menu + else: + - script.execute: open_home_menu - script.execute: reset_idle_timer spi: @@ -476,11 +495,12 @@ display: data_rate: 40MHz lvgl: - rotation: 90 + rotation: 0 displays: - round_display touchscreens: - touchscreen_id: dial_touchscreen + long_press_time: 700ms style_definitions: - id: date_style text_font: montserrat_14 @@ -592,14 +612,87 @@ lvgl: border_width: 0 shadow_width: 0 press_lock: true - on_click: + on_short_click: then: - if: condition: - lambda: "return !id(alarm_ringing);" + lambda: "return !id(alarm_ringing) && !id(home_menu_visible);" then: - script.execute: toggle_skip_next_ring - script.execute: reset_idle_timer + on_long_press: + then: + - if: + condition: + lambda: "return !id(alarm_ringing) && !id(home_menu_visible);" + then: + - script.execute: open_home_menu + - script.execute: reset_idle_timer + - label: + id: sleep_hint_label + hidden: true + align: CENTER + y: -82 + text_align: center + text_color: 0xFFB300 + text: "Sleep" + - obj: + id: home_menu_panel + hidden: true + width: 168 + height: 118 + align: CENTER + bg_color: 0x111111 + bg_opa: 92% + radius: 18 + border_width: 1 + border_color: 0x455A64 + pad_all: 0 + widgets: + - label: + align: TOP_MID + y: 12 + text_color: White + text: "Home" + - button: + id: all_lights_off_button + hidden: true + width: 118 + height: 42 + align: CENTER + y: 10 + radius: 21 + bg_color: 0x37474F + text_color: White + border_width: 0 + on_click: + then: + - script.execute: home_all_lights_off + - script.execute: close_home_menu + - script.execute: reset_idle_timer + widgets: + - label: + align: CENTER + text: "All Off" + - button: + id: close_menu_button + hidden: true + width: 34 + height: 34 + x: 54 + y: -28 + align: CENTER + radius: 17 + bg_color: 0x546E7A + text_color: White + border_width: 0 + on_click: + then: + - script.execute: close_home_menu + widgets: + - label: + align: CENTER + text: "X" - button: id: snooze_button hidden: true @@ -790,13 +883,26 @@ script: return; } + const uint32_t now_minute = uint32_t(now.timestamp / 60); + if (id(skip_next_ring)) { + const uint32_t skipped_minute = uint32_t(id(skip_next_ring_epoch) / 60); + if (id(skip_next_ring_epoch) == 0 || skipped_minute < now_minute) { + id(skip_next_ring) = false; + id(skip_next_ring_epoch) = 0; + } + } + if (id(next_ring_override_active)) { - const uint32_t now_minute = uint32_t(now.timestamp / 60); const uint32_t override_minute = uint32_t(id(next_ring_override_epoch) / 60); if (override_minute >= now_minute) { - id(next_alarm_available) = true; - id(next_alarm_epoch) = id(next_ring_override_epoch); - return; + if (id(skip_next_ring) && id(skip_next_ring_epoch) != 0 && + override_minute == uint32_t(id(skip_next_ring_epoch) / 60)) { + // Skip this one-time override and fall through to the next scheduled alarm. + } else { + id(next_alarm_available) = true; + id(next_alarm_epoch) = id(next_ring_override_epoch); + return; + } } id(next_ring_override_active) = false; id(next_ring_override_epoch) = 0; @@ -805,9 +911,13 @@ script: if (id(snooze_active)) { int day_offset = (id(snooze_day_of_year) == now.day_of_year) ? 0 : 1; const time_t midnight_epoch = now.timestamp - (now.hour * 3600) - (now.minute * 60) - now.second; - id(next_alarm_epoch) = uint32_t(midnight_epoch + (day_offset * 86400) + (id(snooze_hour) * 3600) + (id(snooze_minute) * 60)); - id(next_alarm_available) = true; - return; + const uint32_t snooze_epoch = uint32_t(midnight_epoch + (day_offset * 86400) + (id(snooze_hour) * 3600) + (id(snooze_minute) * 60)); + if (!(id(skip_next_ring) && id(skip_next_ring_epoch) != 0 && + uint32_t(snooze_epoch / 60) == uint32_t(id(skip_next_ring_epoch) / 60))) { + id(next_alarm_epoch) = snooze_epoch; + id(next_alarm_available) = true; + return; + } } const auto weekday_alarm = id(weekday_alarm_time); @@ -819,14 +929,9 @@ script: } bool found = false; - bool skip_consumed = false; for (int offset = 0; offset < 8; offset++) { const int candidate_dow = ((now.day_of_week - 1 + offset) % 7) + 1; auto candidate_alarm = (candidate_dow == 1 || candidate_dow == 7) ? weekend_alarm : weekday_alarm; - if (!skip_consumed && id(skip_next_ring)) { - skip_consumed = true; - continue; - } const int now_total_minutes = now.hour * 60 + now.minute; const int candidate_total_minutes = candidate_alarm->hour * 60 + candidate_alarm->minute; const bool valid_time = offset > 0 || @@ -835,16 +940,17 @@ script: continue; } const time_t midnight_epoch = now.timestamp - (now.hour * 3600) - (now.minute * 60) - now.second; - id(next_alarm_epoch) = uint32_t(midnight_epoch + (offset * 86400) + (candidate_alarm->hour * 3600) + (candidate_alarm->minute * 60)); + const uint32_t candidate_epoch = uint32_t(midnight_epoch + (offset * 86400) + (candidate_alarm->hour * 3600) + (candidate_alarm->minute * 60)); + if (id(skip_next_ring) && id(skip_next_ring_epoch) != 0 && + uint32_t(candidate_epoch / 60) == uint32_t(id(skip_next_ring_epoch) / 60)) { + continue; + } + id(next_alarm_epoch) = candidate_epoch; id(next_alarm_available) = true; found = true; break; } - if (skip_consumed) { - id(skip_next_ring) = false; - } - if (!found) { id(next_alarm_available) = false; id(next_alarm_epoch) = 0; @@ -871,11 +977,70 @@ script: - script.execute: update_alarm_status_ui - id: toggle_skip_next_ring + then: + - script.execute: sync_next_alarm_state + - lambda: |- + if (id(skip_next_ring)) { + id(skip_next_ring) = false; + id(skip_next_ring_epoch) = 0; + ESP_LOGI("ui", "Skip next ring cleared"); + return; + } + if (!id(next_alarm_available)) { + ESP_LOGW("ui", "Skip next ring requested but there is no next alarm available"); + return; + } + id(skip_next_ring) = true; + id(skip_next_ring_epoch) = id(next_alarm_epoch); + auto skipped_alarm = ESPTime::from_epoch_local(id(skip_next_ring_epoch)); + ESP_LOGI("ui", "Skip next ring set for %02d:%02d", skipped_alarm.hour, skipped_alarm.minute); + - script.execute: update_alarm_status_ui + + - id: open_home_menu + then: + - lambda: |- + id(home_menu_visible) = true; + ESP_LOGI("ui", "Home menu opened"); + - script.execute: update_alarm_status_ui + - script.execute: reset_idle_timer + - script.execute: auto_close_home_menu + + - id: close_home_menu then: - lambda: |- - id(skip_next_ring) = !id(skip_next_ring); - ESP_LOGI("ui", "Skip next ring toggled to %d", id(skip_next_ring)); + id(home_menu_visible) = false; + ESP_LOGI("ui", "Home menu closed"); + - script.stop: auto_close_home_menu - script.execute: update_alarm_status_ui + - script.execute: reset_idle_timer + + - id: auto_close_home_menu + mode: restart + then: + - delay: 10s + - if: + condition: + lambda: "return id(home_menu_visible) && !id(alarm_ringing);" + then: + - lambda: |- + id(home_menu_visible) = false; + ESP_LOGI("ui", "Home menu auto-closed"); + - script.execute: update_alarm_status_ui + + - id: home_all_lights_off + then: + - lambda: |- + ESP_LOGI("ui", "Requesting Home Assistant action: all lights off"); + - homeassistant.action: + action: light.turn_off + data: + entity_id: all + on_success: + - lambda: |- + ESP_LOGI("ui", "Requested Home Assistant action: all lights off"); + on_error: + - lambda: |- + ESP_LOGW("ui", "All lights off action failed: %s", error.c_str()); - id: apply_active_brightness then: @@ -928,6 +1093,10 @@ script: ESP_LOGI("alarm", "Requested Home Assistant alarm audio start"); - script.stop: alarm_loop - output.turn_off: buzzer + else: + - lambda: |- + ESP_LOGW("alarm", "Home Assistant alarm audio started after alarm stopped; stopping media now"); + - script.execute: stop_alarm_media_on_ha on_error: - lambda: |- ESP_LOGW("alarm", "Home Assistant alarm audio start failed: %s", error.c_str()); @@ -980,10 +1149,21 @@ script: snprintf(alarm_buf, sizeof(alarm_buf), "Stopped"); } else if (id(snooze_active)) { snprintf(alarm_buf, sizeof(alarm_buf), "Snoozing"); + } else if (id(next_ring_override_active)) { + snprintf(alarm_buf, sizeof(alarm_buf), "One-Time"); } else { snprintf(alarm_buf, sizeof(alarm_buf), "Next Ring"); } return alarm_buf; + - lvgl.label.update: + id: date_label + text_color: !lambda |- + if (id(next_ring_override_active) && id(alarm_enabled) && !id(alarm_ringing) && + !id(snooze_active) && !id(skip_next_ring) && + !(id(dismiss_feedback_until_ms) != 0 && millis() < id(dismiss_feedback_until_ms))) { + return lv_color_hex(0xFFB300); + } + return lv_color_hex(0xFFFFFF); - lvgl.label.update: id: date_label text: !lambda |- @@ -1062,7 +1242,8 @@ script: then: - lambda: |- id(ring_controls_visible) = true; - - lvgl.widget.hide: [alarm_status_circle, center_tap_button] + id(home_menu_visible) = false; + - lvgl.widget.hide: [alarm_status_circle, center_tap_button, sleep_hint_label, home_menu_panel, all_lights_off_button, close_menu_button] - lvgl.widget.show: [snooze_button, stop_button, snooze_hint_label] else: - if: @@ -1071,8 +1252,32 @@ script: then: - lambda: |- id(ring_controls_visible) = false; - - lvgl.widget.show: [alarm_status_circle, center_tap_button] - lvgl.widget.hide: [snooze_button, stop_button, snooze_hint_label] + - if: + condition: + lambda: "return id(home_menu_visible);" + then: + - lvgl.widget.hide: [alarm_status_circle, center_tap_button, sleep_hint_label] + - lvgl.widget.show: [home_menu_panel, all_lights_off_button, close_menu_button] + else: + - lvgl.widget.hide: [home_menu_panel, all_lights_off_button, close_menu_button] + - lvgl.widget.show: [alarm_status_circle, center_tap_button] + - if: + condition: + lambda: |- + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } + if (!now.is_valid() || !id(alarm_enabled) || !id(next_alarm_available) || id(snooze_active)) { + return false; + } + const int32_t seconds_until_alarm = int32_t(id(next_alarm_epoch)) - int32_t(now.timestamp); + return seconds_until_alarm > 0 && seconds_until_alarm <= (8 * 3600); + then: + - lvgl.widget.show: [sleep_hint_label] + else: + - lvgl.widget.hide: [sleep_hint_label] - id: snooze_alarm then: @@ -1127,6 +1332,7 @@ script: id(next_ring_override_epoch) = 0; id(snooze_minutes) = 10; id(alarm_ringing) = true; + id(home_menu_visible) = false; auto now = id(sntp_time).now(); if (!now.is_valid()) { now = id(rtctime).now(); From ea722e5a3cffdcb772cce5340c6b2ee9545b3a18 Mon Sep 17 00:00:00 2001 From: Gurgen Davtyan Date: Mon, 11 May 2026 01:14:15 +0400 Subject: [PATCH 10/16] Move sleep hint to bottom and show countdown --- clock.yaml | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/clock.yaml b/clock.yaml index ff0f6ca..b6b1566 100644 --- a/clock.yaml +++ b/clock.yaml @@ -632,10 +632,11 @@ lvgl: id: sleep_hint_label hidden: true align: CENTER - y: -82 + y: 68 + text_font: montserrat_18 text_align: center - text_color: 0xFFB300 - text: "Sleep" + text_color: 0xE53935 + text: "" - obj: id: home_menu_panel hidden: true @@ -1137,6 +1138,27 @@ script: static char snooze_buf[24]; snprintf(snooze_buf, sizeof(snooze_buf), "Snooze\n%d min", id(snooze_minutes)); return snooze_buf; + - lvgl.label.update: + id: sleep_hint_label + text: !lambda |- + static char sleep_buf[16]; + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } + if (!now.is_valid() || !id(alarm_enabled) || !id(next_alarm_available) || id(snooze_active)) { + snprintf(sleep_buf, sizeof(sleep_buf), ""); + return sleep_buf; + } + const int32_t seconds_until_alarm = int32_t(id(next_alarm_epoch)) - int32_t(now.timestamp); + if (seconds_until_alarm <= 0 || seconds_until_alarm > (8 * 3600)) { + snprintf(sleep_buf, sizeof(sleep_buf), ""); + return sleep_buf; + } + const int hours = seconds_until_alarm / 3600; + const int minutes = (seconds_until_alarm % 3600) / 60; + snprintf(sleep_buf, sizeof(sleep_buf), "%dh %02dm", hours, minutes); + return sleep_buf; - lvgl.label.update: id: alarm_label text: !lambda |- From def6ec2e65bfe6d350bca83441af6d527d7fcd99 Mon Sep 17 00:00:00 2001 From: Gurgen Davtyan Date: Sun, 24 May 2026 03:18:31 +0400 Subject: [PATCH 11/16] refactor: extract alarm clock helpers (#1) --- clock.yaml | 151 ++++++++++++++------------------------------ readme.md | 8 ++- src/alarm_helpers.h | 20 ++++++ 3 files changed, 73 insertions(+), 106 deletions(-) create mode 100644 src/alarm_helpers.h diff --git a/clock.yaml b/clock.yaml index b6b1566..7ab264a 100644 --- a/clock.yaml +++ b/clock.yaml @@ -1,11 +1,18 @@ substitutions: alarm_audio_player_entity: media_player.living_room_speaker_2 + alarm_audio_start_action: script.alarmv1_start_alarm_audio + alarm_audio_stop_action: media_player.media_stop + home_lights_off_action: light.turn_off + home_lights_off_entity: all + timezone: Asia/Yerevan esphome: name: esphome-web-56058c friendly_name: AlarmV1 min_version: 2025.11.0 name_add_mac_suffix: false + includes: + - src/alarm_helpers.h on_boot: priority: -10 then: @@ -251,10 +258,7 @@ sensor: return; } - auto now = id(sntp_time).now(); - if (!now.is_valid()) { - now = id(rtctime).now(); - } + auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); if (!now.is_valid() || !id(next_alarm_available)) { ESP_LOGW("alarm", "Ignoring clockwise encoder turn because next ring is unavailable"); return; @@ -303,10 +307,7 @@ sensor: return; } - auto now = id(sntp_time).now(); - if (!now.is_valid()) { - now = id(rtctime).now(); - } + auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); if (!now.is_valid() || !id(next_alarm_available)) { ESP_LOGW("alarm", "Ignoring anticlockwise encoder turn because next ring is unavailable"); return; @@ -331,7 +332,7 @@ time: - platform: sntp id: sntp_time - timezone: Asia/Yerevan + timezone: ${timezone} servers: - 0.pool.ntp.org - 1.pool.ntp.org @@ -374,10 +375,7 @@ text_sensor: device_class: timestamp update_interval: 30s lambda: |- - auto now = id(sntp_time).now(); - if (!now.is_valid()) { - now = id(rtctime).now(); - } + auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); if (!now.is_valid()) { return {""}; } @@ -752,10 +750,7 @@ interval: - lvgl.indicator.update: id: secs_hand value: !lambda |- - auto now = id(sntp_time).now(); - if (!now.is_valid()) { - now = id(rtctime).now(); - } + auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); if (!now.is_valid()) { return 0.0f; } @@ -766,10 +761,7 @@ interval: - interval: 1s then: - lambda: |- - auto now = id(sntp_time).now(); - if (!now.is_valid()) { - now = id(rtctime).now(); - } + auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); if (!now.is_valid()) { return; } @@ -804,10 +796,7 @@ interval: - if: condition: lambda: |- - auto now = id(sntp_time).now(); - if (!now.is_valid()) { - now = id(rtctime).now(); - } + auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); if (!now.is_valid()) { return false; } @@ -874,10 +863,7 @@ script: - id: sync_next_alarm_state then: - lambda: |- - auto now = id(sntp_time).now(); - if (!now.is_valid()) { - now = id(rtctime).now(); - } + auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); if (!now.is_valid() || !id(alarm_enabled)) { id(next_alarm_available) = false; id(next_alarm_epoch) = 0; @@ -1033,9 +1019,9 @@ script: - lambda: |- ESP_LOGI("ui", "Requesting Home Assistant action: all lights off"); - homeassistant.action: - action: light.turn_off + action: ${home_lights_off_action} data: - entity_id: all + entity_id: ${home_lights_off_entity} on_success: - lambda: |- ESP_LOGI("ui", "Requested Home Assistant action: all lights off"); @@ -1051,10 +1037,7 @@ script: if (id(alarm_ringing)) { return 1.0f; } - auto now = id(sntp_time).now(); - if (!now.is_valid()) { - now = id(rtctime).now(); - } + auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); if (now.is_valid() && (now.hour >= 23 || now.hour < 7)) { return 0.30f; } @@ -1068,10 +1051,7 @@ script: if (id(alarm_ringing)) { return 1.0f; } - auto now = id(sntp_time).now(); - if (!now.is_valid()) { - now = id(rtctime).now(); - } + auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); if (now.is_valid() && (now.hour >= 23 || now.hour < 7)) { return 0.08f; } @@ -1082,7 +1062,7 @@ script: - lambda: |- ESP_LOGI("alarm", "Requesting Home Assistant alarm audio start"); - homeassistant.action: - action: script.alarmv1_start_alarm_audio + action: ${alarm_audio_start_action} data: entity_id: ${alarm_audio_player_entity} on_success: @@ -1107,7 +1087,7 @@ script: - lambda: |- ESP_LOGI("alarm", "Requesting Home Assistant alarm audio stop for %s", "${alarm_audio_player_entity}"); - homeassistant.action: - action: media_player.media_stop + action: ${alarm_audio_stop_action} data: entity_id: ${alarm_audio_player_entity} on_success: @@ -1142,10 +1122,7 @@ script: id: sleep_hint_label text: !lambda |- static char sleep_buf[16]; - auto now = id(sntp_time).now(); - if (!now.is_valid()) { - now = id(rtctime).now(); - } + auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); if (!now.is_valid() || !id(alarm_enabled) || !id(next_alarm_available) || id(snooze_active)) { snprintf(sleep_buf, sizeof(sleep_buf), ""); return sleep_buf; @@ -1191,10 +1168,7 @@ script: text: !lambda |- static const char *const day_names[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; static char date_buf[24]; - auto now = id(sntp_time).now(); - if (!now.is_valid()) { - now = id(rtctime).now(); - } + auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); if (!id(alarm_enabled)) { snprintf(date_buf, sizeof(date_buf), "Disabled"); @@ -1234,10 +1208,7 @@ script: - lvgl.widget.update: id: alarm_status_circle bg_color: !lambda |- - auto now = id(sntp_time).now(); - if (!now.is_valid()) { - now = id(rtctime).now(); - } + auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); if (id(alarm_ringing)) { return id(alarm_flash_on) ? lv_color_hex(0xFF7043) : lv_color_hex(0xE53935); } @@ -1287,10 +1258,7 @@ script: - if: condition: lambda: |- - auto now = id(sntp_time).now(); - if (!now.is_valid()) { - now = id(rtctime).now(); - } + auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); if (!now.is_valid() || !id(alarm_enabled) || !id(next_alarm_available) || id(snooze_active)) { return false; } @@ -1301,49 +1269,36 @@ script: else: - lvgl.widget.hide: [sleep_hint_label] - - id: snooze_alarm + - id: apply_snooze_duration + parameters: + minutes: int then: - lambda: |- - auto now = id(sntp_time).now(); - if (!now.is_valid()) { - now = id(rtctime).now(); - } + auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); if (!now.is_valid()) { ESP_LOGW("alarm", "Snooze requested but current time is invalid"); return; } - int total_minutes = now.hour * 60 + now.minute + id(snooze_minutes); - int day_offset = total_minutes / 1440; - total_minutes %= 1440; + auto snooze_until = alarm_clock::add_minutes(now, minutes); id(snooze_active) = true; - id(snooze_day_of_year) = now.day_of_year + day_offset; - id(snooze_hour) = total_minutes / 60; - id(snooze_minute) = total_minutes % 60; - ESP_LOGI("alarm", "Snoozed for %d minutes until day=%d %02d:%02d", id(snooze_minutes), id(snooze_day_of_year), id(snooze_hour), id(snooze_minute)); + id(snooze_day_of_year) = snooze_until.day_of_year; + id(snooze_hour) = snooze_until.hour; + id(snooze_minute) = snooze_until.minute; + ESP_LOGI("alarm", "Snoozed for %d minutes until day=%d %02d:%02d", minutes, id(snooze_day_of_year), id(snooze_hour), id(snooze_minute)); - script.execute: stop_alarm - script.execute: update_minutes_hand + - id: snooze_alarm + then: + - script.execute: + id: apply_snooze_duration + minutes: !lambda "return id(snooze_minutes);" + - id: snooze_alarm_five_minutes then: - - lambda: |- - auto now = id(sntp_time).now(); - if (!now.is_valid()) { - now = id(rtctime).now(); - } - if (!now.is_valid()) { - ESP_LOGW("alarm", "5-minute snooze requested but current time is invalid"); - return; - } - int total_minutes = now.hour * 60 + now.minute + 5; - int day_offset = total_minutes / 1440; - total_minutes %= 1440; - id(snooze_active) = true; - id(snooze_day_of_year) = now.day_of_year + day_offset; - id(snooze_hour) = total_minutes / 60; - id(snooze_minute) = total_minutes % 60; - ESP_LOGI("alarm", "Snoozed for 5 minutes until day=%d %02d:%02d", id(snooze_day_of_year), id(snooze_hour), id(snooze_minute)); - - script.execute: stop_alarm - - script.execute: update_minutes_hand + - script.execute: + id: apply_snooze_duration + minutes: 5 - id: start_alarm mode: restart @@ -1355,10 +1310,7 @@ script: id(snooze_minutes) = 10; id(alarm_ringing) = true; id(home_menu_visible) = false; - auto now = id(sntp_time).now(); - if (!now.is_valid()) { - now = id(rtctime).now(); - } + auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); ESP_LOGI("alarm", "Starting alarm at %02d:%02d:%02d", now.hour, now.minute, now.second); - script.execute: apply_active_brightness - script.execute: update_minutes_hand @@ -1370,10 +1322,7 @@ script: then: - lambda: |- if (id(alarm_ringing)) { - auto now = id(sntp_time).now(); - if (!now.is_valid()) { - now = id(rtctime).now(); - } + auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); ESP_LOGI("alarm", "Stopping alarm at %02d:%02d:%02d", now.hour, now.minute, now.second); } id(alarm_ringing) = false; @@ -1427,10 +1376,7 @@ script: - lvgl.indicator.update: id: hour_hand value: !lambda |- - auto now = id(sntp_time).now(); - if (!now.is_valid()) { - now = id(rtctime).now(); - } + auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); if (!now.is_valid()) { return 0.0f; } @@ -1438,10 +1384,7 @@ script: - lvgl.indicator.update: id: minute_hand value: !lambda |- - auto now = id(sntp_time).now(); - if (!now.is_valid()) { - now = id(rtctime).now(); - } + auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); if (!now.is_valid()) { return 0.0f; } diff --git a/readme.md b/readme.md index 974c081..04b3e55 100644 --- a/readme.md +++ b/readme.md @@ -151,9 +151,13 @@ Before flashing, you will probably want to adjust: - device name and friendly name - Wi-Fi credentials in `secrets.yaml` -- timezone +- timezone via `timezone` - `alarm_audio_player_entity` -- any Home Assistant script names or media targets +- Home Assistant action/entity substitutions: + - `alarm_audio_start_action` + - `alarm_audio_stop_action` + - `home_lights_off_action` + - `home_lights_off_entity` This repo is currently tailored to: diff --git a/src/alarm_helpers.h b/src/alarm_helpers.h new file mode 100644 index 0000000..5361b6d --- /dev/null +++ b/src/alarm_helpers.h @@ -0,0 +1,20 @@ +#pragma once + +#include "esphome/core/time.h" + +namespace alarm_clock { + +template +esphome::ESPTime current_time(PrimaryClock *primary, FallbackClock *fallback) { + auto now = primary->now(); + if (!now.is_valid()) { + now = fallback->now(); + } + return now; +} + +inline esphome::ESPTime add_minutes(esphome::ESPTime now, int minutes) { + return esphome::ESPTime::from_epoch_local(now.timestamp + (minutes * 60)); +} + +} // namespace alarm_clock From f8604eca22f57eef8829bc8e8df0803858087e85 Mon Sep 17 00:00:00 2001 From: Gurgen Davtyan Date: Sun, 24 May 2026 03:31:07 +0400 Subject: [PATCH 12/16] feat: add away mode for alarm clock --- clock.yaml | 80 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 70 insertions(+), 10 deletions(-) diff --git a/clock.yaml b/clock.yaml index 7ab264a..785de84 100644 --- a/clock.yaml +++ b/clock.yaml @@ -83,6 +83,10 @@ globals: type: bool restore_value: yes initial_value: "true" + - id: away_mode + type: bool + restore_value: yes + initial_value: "false" - id: alarm_ringing type: bool restore_value: no @@ -202,6 +206,27 @@ switch: - script.execute: stop_alarm - script.execute: update_minutes_hand - script.execute: reset_idle_timer + - platform: template + id: away_mode_switch + name: "Away Mode" + icon: "mdi:home-export-outline" + restore_mode: RESTORE_DEFAULT_OFF + lambda: |- + return id(away_mode); + turn_on_action: + - lambda: |- + id(away_mode) = true; + id(skip_next_ring) = false; + id(skip_next_ring_epoch) = 0; + id(next_ring_override_active) = false; + id(next_ring_override_epoch) = 0; + ESP_LOGI("alarm", "Away mode enabled; alarms disabled until away mode is turned off"); + - script.execute: clear_snooze + - script.execute: stop_alarm + - script.execute: update_minutes_hand + - script.execute: reset_idle_timer + turn_off_action: + - script.execute: disable_away_mode button: - platform: template @@ -379,7 +404,7 @@ text_sensor: if (!now.is_valid()) { return {""}; } - if (!id(alarm_enabled)) { + if (!id(alarm_enabled) || id(away_mode)) { return {""}; } if (!id(next_alarm_available)) { @@ -614,9 +639,15 @@ lvgl: then: - if: condition: - lambda: "return !id(alarm_ringing) && !id(home_menu_visible);" + lambda: "return id(away_mode) && !id(alarm_ringing) && !id(home_menu_visible);" then: - - script.execute: toggle_skip_next_ring + - script.execute: disable_away_mode + else: + - if: + condition: + lambda: "return !id(alarm_ringing) && !id(home_menu_visible);" + then: + - script.execute: toggle_skip_next_ring - script.execute: reset_idle_timer on_long_press: then: @@ -779,13 +810,14 @@ interval: auto next_alarm = ESPTime::from_epoch_local(id(next_alarm_epoch)); ESP_LOGI( "alarm", - "Alarm check now=%02d:%02d:%02d target=%02d:%02d enabled=%d skip_next=%d ringing=%d snooze_active=%d override=%d", + "Alarm check now=%02d:%02d:%02d target=%02d:%02d enabled=%d away=%d skip_next=%d ringing=%d snooze_active=%d override=%d", now.hour, now.minute, now.second, next_alarm.hour, next_alarm.minute, id(alarm_enabled), + id(away_mode), id(skip_next_ring), id(alarm_ringing), id(snooze_active), @@ -800,7 +832,7 @@ interval: if (!now.is_valid()) { return false; } - if (!id(alarm_enabled) || id(alarm_ringing)) { + if (!id(alarm_enabled) || id(away_mode) || id(alarm_ringing)) { return false; } if (!id(next_alarm_available)) { @@ -864,7 +896,7 @@ script: then: - lambda: |- auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); - if (!now.is_valid() || !id(alarm_enabled)) { + if (!now.is_valid() || !id(alarm_enabled) || id(away_mode)) { id(next_alarm_available) = false; id(next_alarm_epoch) = 0; return; @@ -951,6 +983,17 @@ script: id(snooze_hour) = -1; id(snooze_minute) = -1; + - id: disable_away_mode + then: + - lambda: |- + if (id(away_mode)) { + ESP_LOGI("alarm", "Away mode disabled"); + } + id(away_mode) = false; + id(away_mode_switch).publish_state(false); + - script.execute: update_minutes_hand + - script.execute: reset_idle_timer + - id: dismiss_alarm then: - lambda: |- @@ -1123,7 +1166,7 @@ script: text: !lambda |- static char sleep_buf[16]; auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); - if (!now.is_valid() || !id(alarm_enabled) || !id(next_alarm_available) || id(snooze_active)) { + if (!now.is_valid() || !id(alarm_enabled) || id(away_mode) || !id(next_alarm_available) || id(snooze_active)) { snprintf(sleep_buf, sizeof(sleep_buf), ""); return sleep_buf; } @@ -1136,11 +1179,20 @@ script: const int minutes = (seconds_until_alarm % 3600) / 60; snprintf(sleep_buf, sizeof(sleep_buf), "%dh %02dm", hours, minutes); return sleep_buf; + - lvgl.label.update: + id: alarm_label + text_color: !lambda |- + if (id(away_mode)) { + return lv_color_hex(0xCE93D8); + } + return lv_color_hex(0xFFFFFF); - lvgl.label.update: id: alarm_label text: !lambda |- static char alarm_buf[24]; - if (!id(alarm_enabled)) { + if (id(away_mode)) { + snprintf(alarm_buf, sizeof(alarm_buf), "Away Mode"); + } else if (!id(alarm_enabled)) { snprintf(alarm_buf, sizeof(alarm_buf), "Alarm Off"); } else if (id(alarm_ringing)) { snprintf(alarm_buf, sizeof(alarm_buf), "Alarm!"); @@ -1157,6 +1209,9 @@ script: - lvgl.label.update: id: date_label text_color: !lambda |- + if (id(away_mode)) { + return lv_color_hex(0xFFFFFF); + } if (id(next_ring_override_active) && id(alarm_enabled) && !id(alarm_ringing) && !id(snooze_active) && !id(skip_next_ring) && !(id(dismiss_feedback_until_ms) != 0 && millis() < id(dismiss_feedback_until_ms))) { @@ -1170,7 +1225,9 @@ script: static char date_buf[24]; auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); - if (!id(alarm_enabled)) { + if (id(away_mode)) { + snprintf(date_buf, sizeof(date_buf), "Tap center\nto return"); + } else if (!id(alarm_enabled)) { snprintf(date_buf, sizeof(date_buf), "Disabled"); } else if (id(dismiss_feedback_until_ms) != 0 && millis() < id(dismiss_feedback_until_ms)) { snprintf(date_buf, sizeof(date_buf), "Dismissed"); @@ -1218,6 +1275,9 @@ script: if (id(snooze_active)) { return lv_color_hex(0x1E88E5); } + if (id(away_mode)) { + return lv_color_hex(0x7B1FA2); + } if (!id(alarm_enabled)) { return lv_color_hex(0x616161); } @@ -1259,7 +1319,7 @@ script: condition: lambda: |- auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); - if (!now.is_valid() || !id(alarm_enabled) || !id(next_alarm_available) || id(snooze_active)) { + if (!now.is_valid() || !id(alarm_enabled) || id(away_mode) || !id(next_alarm_available) || id(snooze_active)) { return false; } const int32_t seconds_until_alarm = int32_t(id(next_alarm_epoch)) - int32_t(now.timestamp); From 9167a26b85f061021772d0cb6fd914e88fea7f51 Mon Sep 17 00:00:00 2001 From: Gurgen Davtyan Date: Sun, 24 May 2026 21:08:08 +0400 Subject: [PATCH 13/16] Morning brief (#3) --- clock.yaml | 183 +++++++++++++++++++++++++++----------------- readme.md | 24 ++++-- src/alarm_helpers.h | 20 ----- 3 files changed, 131 insertions(+), 96 deletions(-) delete mode 100644 src/alarm_helpers.h diff --git a/clock.yaml b/clock.yaml index 785de84..e82cf90 100644 --- a/clock.yaml +++ b/clock.yaml @@ -1,18 +1,18 @@ substitutions: - alarm_audio_player_entity: media_player.living_room_speaker_2 + alarm_audio_player_entity: media_player.example_speaker alarm_audio_start_action: script.alarmv1_start_alarm_audio alarm_audio_stop_action: media_player.media_stop + morning_briefing_action: script.alarmv1_morning_briefing + morning_briefing_player_entity: media_player.example_speaker home_lights_off_action: light.turn_off home_lights_off_entity: all - timezone: Asia/Yerevan + timezone: Etc/UTC esphome: name: esphome-web-56058c friendly_name: AlarmV1 min_version: 2025.11.0 name_add_mac_suffix: false - includes: - - src/alarm_helpers.h on_boot: priority: -10 then: @@ -83,10 +83,6 @@ globals: type: bool restore_value: yes initial_value: "true" - - id: away_mode - type: bool - restore_value: yes - initial_value: "false" - id: alarm_ringing type: bool restore_value: no @@ -201,32 +197,15 @@ switch: turn_off_action: - lambda: |- id(alarm_enabled) = false; - ESP_LOGI("alarm", "Alarm disabled"); - - script.execute: clear_snooze - - script.execute: stop_alarm - - script.execute: update_minutes_hand - - script.execute: reset_idle_timer - - platform: template - id: away_mode_switch - name: "Away Mode" - icon: "mdi:home-export-outline" - restore_mode: RESTORE_DEFAULT_OFF - lambda: |- - return id(away_mode); - turn_on_action: - - lambda: |- - id(away_mode) = true; id(skip_next_ring) = false; id(skip_next_ring_epoch) = 0; id(next_ring_override_active) = false; id(next_ring_override_epoch) = 0; - ESP_LOGI("alarm", "Away mode enabled; alarms disabled until away mode is turned off"); + ESP_LOGI("alarm", "Alarm disabled / away mode enabled"); - script.execute: clear_snooze - script.execute: stop_alarm - script.execute: update_minutes_hand - script.execute: reset_idle_timer - turn_off_action: - - script.execute: disable_away_mode button: - platform: template @@ -283,7 +262,10 @@ sensor: return; } - auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } if (!now.is_valid() || !id(next_alarm_available)) { ESP_LOGW("alarm", "Ignoring clockwise encoder turn because next ring is unavailable"); return; @@ -332,7 +314,10 @@ sensor: return; } - auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } if (!now.is_valid() || !id(next_alarm_available)) { ESP_LOGW("alarm", "Ignoring anticlockwise encoder turn because next ring is unavailable"); return; @@ -400,11 +385,14 @@ text_sensor: device_class: timestamp update_interval: 30s lambda: |- - auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } if (!now.is_valid()) { return {""}; } - if (!id(alarm_enabled) || id(away_mode)) { + if (!id(alarm_enabled)) { return {""}; } if (!id(next_alarm_available)) { @@ -639,9 +627,9 @@ lvgl: then: - if: condition: - lambda: "return id(away_mode) && !id(alarm_ringing) && !id(home_menu_visible);" + lambda: "return !id(alarm_enabled) && !id(alarm_ringing) && !id(home_menu_visible);" then: - - script.execute: disable_away_mode + - script.execute: enable_alarm else: - if: condition: @@ -781,7 +769,10 @@ interval: - lvgl.indicator.update: id: secs_hand value: !lambda |- - auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } if (!now.is_valid()) { return 0.0f; } @@ -792,7 +783,10 @@ interval: - interval: 1s then: - lambda: |- - auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } if (!now.is_valid()) { return; } @@ -810,14 +804,13 @@ interval: auto next_alarm = ESPTime::from_epoch_local(id(next_alarm_epoch)); ESP_LOGI( "alarm", - "Alarm check now=%02d:%02d:%02d target=%02d:%02d enabled=%d away=%d skip_next=%d ringing=%d snooze_active=%d override=%d", + "Alarm check now=%02d:%02d:%02d target=%02d:%02d enabled=%d skip_next=%d ringing=%d snooze_active=%d override=%d", now.hour, now.minute, now.second, next_alarm.hour, next_alarm.minute, id(alarm_enabled), - id(away_mode), id(skip_next_ring), id(alarm_ringing), id(snooze_active), @@ -828,11 +821,14 @@ interval: - if: condition: lambda: |- - auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } if (!now.is_valid()) { return false; } - if (!id(alarm_enabled) || id(away_mode) || id(alarm_ringing)) { + if (!id(alarm_enabled) || id(alarm_ringing)) { return false; } if (!id(next_alarm_available)) { @@ -895,8 +891,11 @@ script: - id: sync_next_alarm_state then: - lambda: |- - auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); - if (!now.is_valid() || !id(alarm_enabled) || id(away_mode)) { + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } + if (!now.is_valid() || !id(alarm_enabled)) { id(next_alarm_available) = false; id(next_alarm_epoch) = 0; return; @@ -983,14 +982,14 @@ script: id(snooze_hour) = -1; id(snooze_minute) = -1; - - id: disable_away_mode + - id: enable_alarm then: - lambda: |- - if (id(away_mode)) { - ESP_LOGI("alarm", "Away mode disabled"); + if (!id(alarm_enabled)) { + ESP_LOGI("alarm", "Away mode disabled; alarm enabled"); } - id(away_mode) = false; - id(away_mode_switch).publish_state(false); + id(alarm_enabled) = true; + id(alarm_enabled_switch).publish_state(true); - script.execute: update_minutes_hand - script.execute: reset_idle_timer @@ -1000,6 +999,7 @@ script: id(dismiss_feedback_until_ms) = millis() + 3000; - script.execute: clear_snooze - script.execute: stop_alarm + - script.execute: play_morning_briefing_on_ha - id: sync_alarm_day_state then: @@ -1080,7 +1080,10 @@ script: if (id(alarm_ringing)) { return 1.0f; } - auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } if (now.is_valid() && (now.hour >= 23 || now.hour < 7)) { return 0.30f; } @@ -1094,7 +1097,10 @@ script: if (id(alarm_ringing)) { return 1.0f; } - auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } if (now.is_valid() && (now.hour >= 23 || now.hour < 7)) { return 0.08f; } @@ -1140,6 +1146,21 @@ script: - lambda: |- ESP_LOGW("alarm", "Home Assistant alarm audio stop failed: %s", error.c_str()); + - id: play_morning_briefing_on_ha + then: + - lambda: |- + ESP_LOGI("alarm", "Requesting Home Assistant morning briefing on %s", "${morning_briefing_player_entity}"); + - homeassistant.action: + action: ${morning_briefing_action} + data: + media_player_entity_id: ${morning_briefing_player_entity} + on_success: + - lambda: |- + ESP_LOGI("alarm", "Requested Home Assistant morning briefing"); + on_error: + - lambda: |- + ESP_LOGW("alarm", "Home Assistant morning briefing failed: %s", error.c_str()); + - id: reset_idle_timer mode: restart then: @@ -1165,8 +1186,11 @@ script: id: sleep_hint_label text: !lambda |- static char sleep_buf[16]; - auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); - if (!now.is_valid() || !id(alarm_enabled) || id(away_mode) || !id(next_alarm_available) || id(snooze_active)) { + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } + if (!now.is_valid() || !id(alarm_enabled) || !id(next_alarm_available) || id(snooze_active)) { snprintf(sleep_buf, sizeof(sleep_buf), ""); return sleep_buf; } @@ -1182,7 +1206,7 @@ script: - lvgl.label.update: id: alarm_label text_color: !lambda |- - if (id(away_mode)) { + if (!id(alarm_enabled)) { return lv_color_hex(0xCE93D8); } return lv_color_hex(0xFFFFFF); @@ -1190,10 +1214,8 @@ script: id: alarm_label text: !lambda |- static char alarm_buf[24]; - if (id(away_mode)) { + if (!id(alarm_enabled)) { snprintf(alarm_buf, sizeof(alarm_buf), "Away Mode"); - } else if (!id(alarm_enabled)) { - snprintf(alarm_buf, sizeof(alarm_buf), "Alarm Off"); } else if (id(alarm_ringing)) { snprintf(alarm_buf, sizeof(alarm_buf), "Alarm!"); } else if (id(dismiss_feedback_until_ms) != 0 && millis() < id(dismiss_feedback_until_ms)) { @@ -1209,7 +1231,7 @@ script: - lvgl.label.update: id: date_label text_color: !lambda |- - if (id(away_mode)) { + if (!id(alarm_enabled)) { return lv_color_hex(0xFFFFFF); } if (id(next_ring_override_active) && id(alarm_enabled) && !id(alarm_ringing) && @@ -1223,12 +1245,13 @@ script: text: !lambda |- static const char *const day_names[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; static char date_buf[24]; - auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } - if (id(away_mode)) { + if (!id(alarm_enabled)) { snprintf(date_buf, sizeof(date_buf), "Tap center\nto return"); - } else if (!id(alarm_enabled)) { - snprintf(date_buf, sizeof(date_buf), "Disabled"); } else if (id(dismiss_feedback_until_ms) != 0 && millis() < id(dismiss_feedback_until_ms)) { snprintf(date_buf, sizeof(date_buf), "Dismissed"); } else if (id(snooze_active)) { @@ -1265,7 +1288,10 @@ script: - lvgl.widget.update: id: alarm_status_circle bg_color: !lambda |- - auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } if (id(alarm_ringing)) { return id(alarm_flash_on) ? lv_color_hex(0xFF7043) : lv_color_hex(0xE53935); } @@ -1275,11 +1301,8 @@ script: if (id(snooze_active)) { return lv_color_hex(0x1E88E5); } - if (id(away_mode)) { - return lv_color_hex(0x7B1FA2); - } if (!id(alarm_enabled)) { - return lv_color_hex(0x616161); + return lv_color_hex(0x7B1FA2); } if (id(skip_next_ring)) { return lv_color_hex(0xFFD54F); @@ -1318,8 +1341,11 @@ script: - if: condition: lambda: |- - auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); - if (!now.is_valid() || !id(alarm_enabled) || id(away_mode) || !id(next_alarm_available) || id(snooze_active)) { + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } + if (!now.is_valid() || !id(alarm_enabled) || !id(next_alarm_available) || id(snooze_active)) { return false; } const int32_t seconds_until_alarm = int32_t(id(next_alarm_epoch)) - int32_t(now.timestamp); @@ -1334,12 +1360,15 @@ script: minutes: int then: - lambda: |- - auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } if (!now.is_valid()) { ESP_LOGW("alarm", "Snooze requested but current time is invalid"); return; } - auto snooze_until = alarm_clock::add_minutes(now, minutes); + auto snooze_until = esphome::ESPTime::from_epoch_local(now.timestamp + (minutes * 60)); id(snooze_active) = true; id(snooze_day_of_year) = snooze_until.day_of_year; id(snooze_hour) = snooze_until.hour; @@ -1370,7 +1399,10 @@ script: id(snooze_minutes) = 10; id(alarm_ringing) = true; id(home_menu_visible) = false; - auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } ESP_LOGI("alarm", "Starting alarm at %02d:%02d:%02d", now.hour, now.minute, now.second); - script.execute: apply_active_brightness - script.execute: update_minutes_hand @@ -1382,7 +1414,10 @@ script: then: - lambda: |- if (id(alarm_ringing)) { - auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } ESP_LOGI("alarm", "Stopping alarm at %02d:%02d:%02d", now.hour, now.minute, now.second); } id(alarm_ringing) = false; @@ -1436,7 +1471,10 @@ script: - lvgl.indicator.update: id: hour_hand value: !lambda |- - auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } if (!now.is_valid()) { return 0.0f; } @@ -1444,7 +1482,10 @@ script: - lvgl.indicator.update: id: minute_hand value: !lambda |- - auto now = alarm_clock::current_time(id(sntp_time), id(rtctime)); + auto now = id(sntp_time).now(); + if (!now.is_valid()) { + now = id(rtctime).now(); + } if (!now.is_valid()) { return 0.0f; } diff --git a/readme.md b/readme.md index 04b3e55..3997ede 100644 --- a/readme.md +++ b/readme.md @@ -84,7 +84,7 @@ The current ESPHome config expects: ```yaml substitutions: - alarm_audio_player_entity: media_player.living_room_speaker_2 + alarm_audio_player_entity: media_player.example_speaker ``` When the alarm starts: @@ -105,13 +105,13 @@ alias: AlarmV1 Start Alarm Audio sequence: - action: media_player.volume_set target: - entity_id: media_player.living_room_speaker_2 + entity_id: media_player.example_speaker data: volume_level: 0.8 - action: music_assistant.play_media target: - entity_id: media_player.living_room_speaker_2 + entity_id: media_player.example_speaker data: media_id: Techno media_type: playlist @@ -121,13 +121,27 @@ sequence: - action: media_player.shuffle_set target: - entity_id: media_player.living_room_speaker_2 + entity_id: media_player.example_speaker data: shuffle: true ``` You must also enable ESPHome devices to perform Home Assistant actions in the ESPHome integration settings. +## Optional Morning Briefing + +When the alarm is dismissed/stopped, the device can call a Home Assistant script. The contents of that script are intentionally left up to the user. + +The ESPHome config expects: + +```yaml +substitutions: + morning_briefing_action: script.alarmv1_morning_briefing + morning_briefing_player_entity: media_player.example_speaker +``` + +Create `script.alarmv1_morning_briefing` in Home Assistant if you want a wake-up briefing. It receives `media_player_entity_id` as script data, so your script can choose whether to speak weather, commute, calendar, news, or nothing at all. + ## Hardware This project is built for: @@ -161,7 +175,7 @@ Before flashing, you will probably want to adjust: This repo is currently tailored to: -- `Asia/Yerevan` +- `Etc/UTC` - Home Assistant - Music Assistant - a Chromecast-style media player diff --git a/src/alarm_helpers.h b/src/alarm_helpers.h deleted file mode 100644 index 5361b6d..0000000 --- a/src/alarm_helpers.h +++ /dev/null @@ -1,20 +0,0 @@ -#pragma once - -#include "esphome/core/time.h" - -namespace alarm_clock { - -template -esphome::ESPTime current_time(PrimaryClock *primary, FallbackClock *fallback) { - auto now = primary->now(); - if (!now.is_valid()) { - now = fallback->now(); - } - return now; -} - -inline esphome::ESPTime add_minutes(esphome::ESPTime now, int minutes) { - return esphome::ESPTime::from_epoch_local(now.timestamp + (minutes * 60)); -} - -} // namespace alarm_clock From d9ed6b51896834102b21879cad78c8f6a3a5b315 Mon Sep 17 00:00:00 2001 From: Gurgen Davtyan Date: Sun, 24 May 2026 21:47:52 +0400 Subject: [PATCH 14/16] Simplify away mode return hint --- clock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clock.yaml b/clock.yaml index e82cf90..df4029a 100644 --- a/clock.yaml +++ b/clock.yaml @@ -1251,7 +1251,7 @@ script: } if (!id(alarm_enabled)) { - snprintf(date_buf, sizeof(date_buf), "Tap center\nto return"); + snprintf(date_buf, sizeof(date_buf), "Tap to\nresume"); } else if (id(dismiss_feedback_until_ms) != 0 && millis() < id(dismiss_feedback_until_ms)) { snprintf(date_buf, sizeof(date_buf), "Dismissed"); } else if (id(snooze_active)) { From dd7e39a5270158f25a923219ab1e4e7541b4849a Mon Sep 17 00:00:00 2001 From: Gurgen Davtyan Date: Sun, 24 May 2026 22:05:39 +0400 Subject: [PATCH 15/16] Persist alarm preference changes sooner --- clock.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/clock.yaml b/clock.yaml index df4029a..66c0000 100644 --- a/clock.yaml +++ b/clock.yaml @@ -49,6 +49,9 @@ wifi: ssid: !secret wifi_ssid password: !secret wifi_password +preferences: + flash_write_interval: 10s + api: reboot_timeout: 0s From 17d37b5f9c01289edd15aa0ad6d616e35c2f9a78 Mon Sep 17 00:00:00 2001 From: Gurgen Davtyan Date: Tue, 26 May 2026 05:24:11 +0400 Subject: [PATCH 16/16] Media controls (#4) --- assets/DejaVuSans.ttf | Bin 0 -> 759720 bytes clock.yaml | 492 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 471 insertions(+), 21 deletions(-) create mode 100644 assets/DejaVuSans.ttf diff --git a/assets/DejaVuSans.ttf b/assets/DejaVuSans.ttf new file mode 100644 index 0000000000000000000000000000000000000000..5789a29d6552ed8c7939190ba8899d748da7ea4b GIT binary patch literal 759720 zcmeEv3%pKM`u|#MU*7wDJNpgCIW8TylO#!!BuVZak|a6q_jEc*21$~PF_MfVW8{aC zjEp2BNm5fXl8iAjl95i5bdp@o`G425_Iu7g4$@_Qzy6=ky!*4B{k+dw>)C5P>silw z_S$Q&%{XJs0?=9WR;{|UpWm@c4aRsoP%Gcu@}^eP4$pi8{|7QAX58GVW9P2pH(kY; zcABwyQ*Q2jTZ`AXHNS(g1(O-8u($mUU0N@0(0D9kYmnY-*0J;D4eq#X-;-IZIsUh1-iJ30?3dg3(oOrPGT+@n#5WoULg@Dy@8W+;{I4-^SpKL> z7yR>6{6~3mXAS9>H$3>X_gdzA9nsgH9(qro+}zCEEzHkQpWHRWaz~A*yxY8&`FpQI zg3RH$!}?|1)BZX9-@({*-VyiQmw!vOSzVa__j?#S)^|i+zY*7ZzG5seqd8*+uEC@< z*}uN{_xirim4dixFAc$JC7`owysC0}I0^bGaRzu1bVEQZ z1lk=x;5sx!>Z1&PzDM+6R?AlHy0Fo?dAYsWq};q=!`YJFdAWnwsy?~H?_(SK4D6T3 zw)A;0Zz$U}px-@ttZ+bHzag9r%pE?6M+f%noyRK=$sL}{>kQ4kCzCfCnwvkIw;Gn4 zKafuvJ_M8*_YBA##^>kVKRk~w%kMvY0AG_oFn18&Of_c3#Z;CwrnS8-CzGXh?$8qO zwj2qWjD=!DE@qk3QdX&)=fk5+v~LS8(at$7084mjuqx-uBd>G5IMpua%cV0fYskE} zbZ(!?8nz|aj$r$a?Lg^3cuq$d+qrFL35nvAi2sPI%GOJjMwZPe`6pw1(%P}c1e*=Z z%^Skd9)Mj4_8{1I*pOjE*kFQr1VE56%I2{};L34KbU_<1#N+?96YyVW=5-Bk6gN(|IkVfA zyiDq2{Jx&*{7evh>$5DtCa}>O>KbMi%D{>c1Gq!NGhZWKGe#N@8sl7;)R-`Wg-}tZ z!>Vof2F)~o}h(w+5U{UMh;Hj0gdWTvp`Y!;g))!z!{&Xk9kqCz=?=&kXfEa2D+E8J>z|CPv8{&6eg(W-Id+ zTtkhHaI|oRiU^qqSqRw(4G+s<~ez3c!hU`N?;cA5+BEM+=}uk zRzbxLo(OneOE5`L(NSyA-S9O@ak$A`q6ppx(gX;GF9<0m@}ldIf5yl&)8UitXFeKz zlQh;=rcpM7#@DLkbyY(i-&uM74$5xi3{lQB%2|ZyPmmK3D$GFNXBUD4E zg-{QnAwm;`<_N8%T=4rPL1|onaCt-v4qX(}px;ekYsSFNOook_3Hvf1wq+UY${N^| zP3#@EjqPN6*nW119btv+r0mo@$m2Z8tMD4U4zJG}@us{5Z_PXKF6cMCcz-^W=kZZ| z9G}Ri@acROpUW5UC44zw#nU-cn z&rV}jK_8QTGWq~~;3F(9j^h3(L3c(rdBREZfiEHNw=(&?Rp>q_gYJN;(mh3Wx>KkP z|GXNjZ`ZJEuq*5=`05SFGrtDc2>#G(5Z?^qdnx(-*~IH=*klI%V$d)K9b?ck#!f=1 zae{{c=LR8;kVL40Py?Y3LVbir2u%@MAhbs4fY1e@J3=pn{s==6@(@NLj6;}+Fa=>c z!YqWj2n!IFAS_2%g|HT31Hxv6EeP8Yb|LIVIDk-qa1`M;rYi!tl`@Ep0y^C8Ol_>|#ro-39~&qJXRuMFq%l=ECm-Sa|KSOhZ& zaU)?^Mg=3yu#Kc~iJV8koPqM8AaD;q>(Fo%aCLv5k zm;sCaTbzFm2sYA>EQMAwv6*qJDf;~b`ceJ3e%cU*7jq*PW84Hc2#tLJ#vCi0NylreXb{M;jea1oKuyM>d zVHBCV={KWhnpxSbX4W$6nGMY*@bOxi?J)1r&FpFRH3yp`%#r38bAmb9oMz56=a}=& zMdmVdrMbpjZ*DT*F}ImJ%{}IR^N@MOEHqDIy3F(hJ#kOcQ^ixmQ^!-^)5z1*)56o* z)4|il)7{g{)88}Hljj-b8Rwbknc|u5ndO=5S>RdXS?*coS?k&0+3eZk+3wlp+3Pvr zDexTi9QT~|3a{52_FCSG-b`*?$38|)k58|fS4o8X)5o93J8o8z1BTjX2jTj^WlTkqTC zd&jrUx6`-Bx8HZjcf?odJLzYB(;xK5{Yifne+_>fe|>)=e^Y-8e`|jSe;0pue=mQ3 z|4@IPf0Tcmf1-bif4YB`f3AOle~Ev&f0ci&e}jLse~W*+f0uu+|A4>1f7E~6e>xxn z-at5D1uA0BDJzg2Xb@-|XclN0XcOoZ=o;t|=p7gs7#_$EjK&Pqq`*{Z`7ztHFt9YR zBCtBJF0e81c3^8@M__kgU*KTiaNt>2DE92^`G92p!FoDiHGoEDrJoD-ZMTohauTp3&wTp!#Nd?&aqxHGsXxIcI( zcqCXDJQ-pkGZYNPL&;E;P>oQXQ2kJ&P}5M0Q0q{KP?u2mP_Iz`(9lp`XjEuiXkute zXnJT?Xl`ghXh~>!XjN!!XhUdoXiI2&Xjf=&=s>6-bTo84bUG};-f%c5KEiyAQCo(^>D6%ZFGO{MJKC&tDPGnnTXJk)gf8C8qqq@`q4(wrqLGB*3k~pF46AMUeW&1q0zkPsOY%p#ORdh^ysYU+~|Vn zlIZg2s_5G2hUn(#mgx5AuIS$AfoMVWX!LmWbWFs&v2e_aRg7iEvSQh>2C>GmX0evB zHnC2zuCX4m-m!tP;j#SK=-Bw!q}bHhjM(hhyx79n(%6dF>e#y2#@O4jt+5@k-LZYK zgR#T0W3dylqPQOS$D{GIc;$Gtc&&K7c*A&;c=LFxc)NH`yj#3yyl;GPd_;U?d`x^o zd~$qRd}e%3e13dUd|7;Dd`*0Pd{g|L__p}Y_@4Ow_@Vfbcwzixf+fsEFcD8A6IBv5 z5_J;w6O9s06D<<06CDy=65SKM68#fH6M2bIiE)XEi7AQciCKxci3N!ziRFn^u!9)& z0dJF#|C8_&1fM60wAq|zmr}&*5@-J=`g26DO88;I*AOg{kbED`|0r=SN^nf^NnC3V zrMZ>TP)bpgD4PgM!^}1K8b~Qe1J3uCgXwbg;|dnaIUAlX@At&Iq7f;&Hj(f`j9Ofq z=z`g2MuL)!`*aC`^Nljrfr=YJ(M_f~3&MjIcgpk*{5z!~$g^dsw9I1Mi;8u!JSn_L z&H@~zlt(1asZ?BDh05%tr*gXSRLQBd6N`F+r&AY2QS~A`RU=ie3&4_^f*Z;pC8nT~ z!`DR%N~Ccf$*7WF3_MGEXUkJblBB0(rLC6baUe-jTTSidl4^-;Wy@xg1X2)^clcyF zxyq#>{+Vacjw&y71}#zs9ytyFOY_Jyg4#<#P~s_yb6t}8`Q)Iq(SaYHo>S89X{6h? zkXBPK6FrIYtPA!k#kCm{m-p|u`VfMbONi$^lCJvKhlGDb^y(4{#ce!MRG)(1j$HjD zqSoCcEK5IM`cgVqz2L&jE`z)8 z@VaD?6eJs~EUkj*RHZaJK{UzF8nSZruDU|GGD<$*rSQK?M&QhJ%O&#k5B z(a$pWe2Of&P|!VAo{yeI=@oRRchg;CEALGDPtZN)mZ47}O;)2Y)s!Eh+MS1vesNCw zpvDwHY2T<_&S6hnI*)cQ88uKI>5ULnqr5ZLyX)nQBgEfj_fnn!)zsD3-2KR{VZ)wfKq zchZxT(rNs1K|v#_8*=5lx}Y<{s&TgbXsgD`@~{_;gKk(ZjT)WZP>s}X=#1KG>~@Xd zg2r(L)oAX9YGijqjYfGlRO7fCYBc)0q2md-OFo|J<$_o%AbkKgbom30Z$O@d@*mt@ zg!}4_N8#e^_9DuA8g8${jXNHQ@6lO|Jnl@dA@(%tvTrj@Z;yaxhOQg7b+V?cCTEIF5kzMC%_j{ z-y!HwT-HokMdfKIsFD8+k3!l*g6GO5>&vH;6(U$Z%{hBFEN7YiPX4yz3EV=`_MCo- ztdP7Dp%GK_obE$-iFFc3lr1gsMFk6CT@vONF++DBt781tn9f=lPZ}Symd0_cKY9{t zdAhO}v2y1KPq(kMuj7BPueUq#W%f`zpRcz^+9UZ}a)l0m+di6XDXQU~EqdV@O|z0* zVS;D-3^TM0PkR}j@H5QSGS&;BKf+K1%+KR#Kg0Yj!xMjoXZ{Q`xeU+!89n*`kIice zwOXbS&u%%MIs}=`E^akK>bWl$eK7mV`TL?iI2@CZFOyI_O_au3CD1LRyhIdJQusp> z=l2Rcf#QQG_Ctz2MELUrckwG=aVRgIxV;CS{Ux0rkWd>e^J1MGaMlStu{;8;iM@8%dOFncZokt|FD=7dGLG) zPaPPZ^)o!}XKVw)W`r#Wcs_*Z{+M}}YYTq1^%p;iTcTb32-fCJ#Y}wh%Z zx9hv~z4`&Y;J@o}P-BcTplOp){yq`cE9<#dUQbyz0>NNKuhnZV1#JLRxlpgA1SQXPvW}=7)lo^QJfy3v zQ<5ZDUV3hdl3^jqljNqPcRr}3nt~+r!cwSRBPF0+Lu)@t^3Vs_E*FIQI;lk^us_LA zwHN7$s-tnYq?guC%Tc-{>xl9YG+NQMq{JMGYF`yg_(p2?G~+0^-6A1>p75RopLM}r zr8wV5ctS!xoS@>cnD9SJsJ%=0M}$|GP&{iK0~{}*CWu~<=rbkclv2ftJ4$0Um8KG< zB)Stzy-8^ruS+^ZFr|m36cu}Zy3$w)d0pzQ1XFr`4!Y_EQo?mf8wt8KgcnME7N(3n zFWueiyHPtT_%qSV_9kj^)tgfNh}s%M?8tL&uIX9e9l49Y^H16~ZB zCp<%ulAxGE`aDHUkyj_JUZ?jfD_f=8T8^}SslFz0)w2`?H)(+tEOa!V^j~Sag4AAx z3cBf3hHlg&T)O1eD`gc$H_=s=&81!0vhLi0at%0pQ(7ctdwDilEeFb2o~@uejkFJ- zD_ELlBk5kcXB%Q2=$$Qbf=+8vE!0@!8gWE7y&_W9B{?YQN^`!xfUyI;Kx9dXG#C*S zRc~^Q&PS-$ zu2BYk2O29((hVAOd7&DYOX=t%YU~4a_s7(jP8Q5no{~`>t%-V-LdVW1oiA-)P9uU! z>F#T8ub@m{AfEyKLV6CaexY>CO;MIm@f4=?JyNwJty7e;98lV_x<`_9S!u_|=th=S z!6_u4Ze+m}JO|}$txI`XvKDIO<(6MW*zFp@IgR5A3L4GbkkiQShH8{|Lp6@O zp+=*>8#(={c@Dw_-PbMSQ4mkJccHw9@}7p9zZ)0I z193x_H{#~z#>-eU<>i*~V3jp2LC1ELvvTLKZ|AUVj?PP~tGry7 zl}L@+WZ#ac(Vs>ib=N?BGu40Hw&?6MsUBULCPgXrh}5;%D0vkH9g54lP@XeS(AY{) z**&+#E6H`1?{N-qB;kb@%?Xz8-Jr1Nk=o}Opk6ac{U{r`zsX-4kF0)W5*EW>a!wtp?6n)?wLqhzm9oLtPZ~@_@ibnvD*JQ zv?Pl8=k$wsA22lofA*VK+_($!;m~~vAC^$tQ-ry0!&LO*=D^1jekZ|d1Zxw$8R0h( z1VBm!k4xNCDaR3AL3(EBa8p-oK(Vwc(3mfA^EX7H^?j;T-X@YlP%vRuH?PAqd~dT4 zlg|n?`M#Wd-y3Pd2o?hD6Cm=qA+H9Bao!B_%3#e|E4)*hgE#4V;!VQAY{Ux*DJrGA)BMNr((8&Jb1h?qz7_ho1}!(6H{gwVGv1Q7;hlI_-h=n%1Nm^C z&qwp|d=j6^XYkp49$(0p@)dkFU&lA{xA|7SgYV}1_(6V{ALA$R;-xP9A}Z2EWl>Gk z67@tw(L^*CtwcMK1CPI_=qm<`5n`kmBPNK+Vw#vK=7{-Xkys{HiZx=r*d*Q&+r&<> zN9-4e@Wxl6IEg(kOf9IzwWL->tD)7=>T8X(rdkWFwbnuFqIK7LY5ldKTAnsa8;5&{ zDcW>xmNr*gpe@msYpb-i+6Ha2wnf{n?b7yY2ebn1sCHaCtqa|&hjmM@sAuX~dbZv` zZ>%@dTk37}PI_0phu&Kss1Mik_0jrxeUd&^pP|pz=jjXerTPkewZ2ZOlk~p-3;!#D z|4QH&AOXQH#hY{RJTUg%g%N2Ej)r)$y_Q{t=h|=Kow{x8eTmsuu7@5NEhks7Ewpk zVQs|K;%e4bbP-)xJFOB{EwuN(?|q+j@OgbP)-m>3>~nTU>`3fO)+6>!>>JiI_Fe2G zyBqIue93YX-b8@)NyHMB*Z{oAQIq8*Y9}sZV-gJ#SFwljMn`M*Xrf)B6PsaowmY-m z!PW@uOC#U^!=5e((X*^iZ>&e*@RihCgh^Hf@<{DQ!9^SSKCd|J83s5@;yi;W_YoZH z#KOuNO1`zpomxwu%aMsgp}MQ9h{@9Xb0l`bYl+8*&qfJF4ngU)a`|R7C`vN+g}6Ca zr@D3C*hrmwqtUu9Z-{C!y1VO7g1hRQt}LSS1s6^|9o`-hp0}#cHxztSvV{59){YWBLib$j}YH5ygAMm5pkc^{8hw#JaBL zMk}m+$}zebJ&nG`U}FT{Bpzc-FeV$*jG4w9W4^J-SZ1s=))?!JO~yOMHe;u;$JlQi zGL9I9#z_-fsF*=Bj#-QJ4AHZ@z|4zvUAmAd18s=qnZ%ri%s`Ga?HTWxRI7g?OEs9=y}_-)w9F1 z+q2Je&~w;x%yYt1vxfZRl;{ZSHO5ZRgGLcJuc1_Vo_-j_{83 zj`2?LPWDdo&h*al&i5|zF7vMRuJNw-Zt}k4-R9lt-Q(TwJ>)&&E%cuBF`wxR`r^K% zuZpjRua2+2uaU2*uZ6F*uY<3Pue-08ufK1oFV8p1H_kWFH^n#IH_JEIx4^f=x7@eN zx7N1-`nAQk-M7oP*LT2I;5+I&?mO)ley>05xBM0Tnf@$)w!eYDvA>zWrN528lfSFK zhrhRfpnteO-#^+v-apAd)jz{O+dt30(7)8b!oS+T&cD(BwtuUChkv(!pZ}o$u>Y9< zguf`D2mFC(AT3ZiP%Tg^P%qFh&?L}2&??X_kQ3+@=o#o67#tW87#SE7m=Ks8m=>6c zJ>KRA76q0CR$_0r^?^-+cLLi2I|F+H`vZppM*@X`lR?}f2ZO=NuA>=o=E92(3EjtY(oP7F>7P7lrs&J8XIE(tCVt_rRVZU}A;ZV7G= z?h5V=9tai$j|PtiPlrUv8w!W4P{mMYC@Yj5Y7lB1Y8Gl4Y7^=d>Kf`1>Kz&w8Xn3I zjSh_uO$tp7%?Qm7%?m9IEe)**tq$Q{LHwF5(2s+19t}@AC3Hq7IdkTWPHK$Olx>!t zLCWsdlh#Ycil-^BvZmhReM%jC^*5YNNEF|b2 z@s!=Axd1`qVQSQ(vMCB#V(l}^OBCnoDi@6;f-IQ0RHotbZk{_MQcsC%Hxs2d!Cu7q zBF0bc6PZ3$p0ja>zmgc$vCLSis%9vhWp#N$+Qx}q-U$edPi z*Ox1KDrr-TEB~U*n0&S5qxdU2Pb7YH@mVTGXUiDuXHs|EiQC!h{z}=xDE! zxx0@LF8UH@@~WJk<>16Y&fas;L_+T1lJ2x)F2%McsO0%vv7F_mwieIR)$gWQcc8w!$%EC}x9DR2Ct<=lP=-9l{vT0-w%fu=PRHQUY zqZ}P`Q7$38IYAZMP2%cJ9WjCER382!;jfm1%DbFSbOqJ51`vhH;8-nXsYn`vuHwA6 zr1ZpXXAT$Pu1xeNc(@2Vo&lHeu-rKfxP*u0erv!1-4@1;Yh>ZMoEvpU6TJoDIn*xw zsf1w(x$2L5DK?v6LxMFZC8bfa#p(&kZ8kyG`X?nWMwjx`C@=q(=$k1ewL6{%%DhTq zMCV`Q-c!EKj3-uH=`iKel*Kqr>H85MWeKT=sxi(P??~Fpaw;8g`uIG`rP_2o;Us^j z7Wa|9DQosd@d1>fCtXX8m}->E3QboXCNVDLidsS6@>p?LjBEBy4;@`X+{!saM=@6bj4Z5ish8%DG52< z<%o9)S9I6Ck-MCZBuNj|=%#IwJe}U8diOtxkFxV2x}vh8-x5x8Q<7KyiDUiTt>8-I zSS@N1L0YOtd`;%E9A!l{C4aIE`W9I#?3XLy5ec=X1j(vnpJYkt zA)%56e}d|z+O$y8b!r7IOXA{Tf*(q#sS)P@r5Qz(YbaK=`zpeTa~Xf{0is{D@8^s` zBvtI}g?l;2D!xU0gBtzXSP z)5qfZRRQ)d8pIBJhj>S@Bi{SGzhZ^nhrExlGv3F%Q@N1ycHArH?YK|gXY+)-)8-X? zCw$*=JMc{48GcFNxxgY`F|Z`ClvfG75O{%C#oj+J@oL!pXC1E<*bvyjYvZouO zoE_vj*dL}j?;__2`E7EJkl&sNCBpp9L^M%}--VgN%lIHUN5~&cT$|{`$5wct!sGnO z3V*2Z2fnDna}}QBi!1D^@G)P4nSd^Qr9H$R!dKb%+xPRA?1$`!_-gx0`%C`vf1k_! zm?vhbr+?p*_a{D=OBw?kV)J3_ld`$7jpheO9gCqhMGJ?sxh z!)f8l;cDSp;d@W}9(@PzQ>@U-yE@SO1c@S^at z@XGL-@cQtk@H^pc;ho_<;r-!5;UnR~@W}{^n2}&49;q0~jATW!BMl;rBh4Z$BW)s` zB3*yMdz00RHH6JXCda15X2#~k=EoMrmd94b z*2Xr(HpjNaw#Rm1#5oWvh#mbU>`VsF>esY-^~b?=l$W5^j_|_-=aoXOhs4!;Bm8oS z^LnMRybi_QN0e^}uUQ(aDSRwZo+PMJ9wA&^mvV{sh>}NeJ)jV6u==OE^xEj(Lj1E) zjw1Ru3;*JXQ}4qJ#y^!#K8?E^xPq=Vwc2Mgjd&bTi2DGs%0?_A+C2nqf;A=N^34|^ z#sZhm`g%&5b~DBICfJK0~LQANJ5-8ho4BcBdCz^ssB<_@TFy$kybaYJVje@EbmFyI(LOSaq4&w}gz#gK*yvTQs`IjBTVzfoG2Ms$^4 z$%bU?=tMrnD!S5@ibPpTQ0a=adR$YbP$g1uK9zxV&XG59b5edu9F#R8Sf*zv$}yS7 zu}(_oTNBSGB~(^H|4`yO^&Y49t6u1aq^Vjy<()_AI})yJfU@n>Yc-OUMs(*bL>e6& z&Xm^~gH+yoBp>Zw;zpx`lX4|pMYSP8=UsxwD5WY}2g3{m8r}QPbF2-0ikMC4p(}plNHhWQ5opX z6E*q?lABQdi~5~v3wIfWYE9)uD4A2MIU|Ov9ffK^)u*V(IU}uVJ0i|J znlziz-Yrv!lLSW-g}5TOsDiMsOF#-~X0tb}~5iQR6*w{%VF zSK>6K?~dcw94rx%9^}ke1KThHp(Nq znc7TIl%^`}RJQv{;zs?4@1T?2ys|vXLzPbrNawL$UzX*4$w|M0 z@V^uOW+`1$tua#4OYnPLIOwW1comsT-7oMNg!dr0oVZEP6kl%xAIuQD%j&i$%4gO# z(bbd%BJbU4do_yxQ*z?crpkHeqmsMhCDF*iza@$qnUpo5atJjBt9DV^=t`qTddGKF ztw|PHBi$Aq4XhRtGw|&{u91Bgq}Adoc`c<&{BjT8PSCfwu6~4Ko0{9}4;9H1Q_fq)i1$*!u^X+n`y&2}&|H!V#Jo`#^1I@IzU>k7U zNHgs%vEuZ7tP(rKK4Ul2%F|nDj=c@dvA3n!^>#G7-kx8@uVNiByWWCzqS^Hv%&yZE{UM>&m-fb?ROGPJS1=o8!O?yj-c;2j8gaj~Vzud@$>W`SuZ*fzQX<)uDVD zU&it=$Nrr&$NnJAu|G_6?CWWceK*aqe?)Wad$m?tPt30O!xNVi+F)%kJBfAmL)j^9 zxHg=f)<$R}*cq&{AH|BaN3~zGV(mBDZ@8&Fp*_Jp+SA%I+^fyge$NBiLhS_}(*C5q z$8GIz+5z53`%F8^+i8Wm;9Yb>_wzoOrLVyU>2>vNK19D)a5{sx-cf1T#`-=Mku%`~_F7R~KrW*>9=+c39(oWD;q`G@0K@hpA> zJH9vJU(&4p(fEh)UHq%~KjRz9U+lzI;=QzI;=UzI<~Pefg$2^k2PS6UG_ObLDd^UIU>HLVbir2+a^$A>i2^ z)>|`nziVg@}5V|9voN~R5Ksn_a7J+h# zaR_+&Ev6vgNk7)V3R)A5?;4gl<5{+Qt+Wd-n+{``D^B4m#rZj;a!k?gq1<^c2y0g~ zMOPGwGim>R3Oqx1pG6N5pBo60zjwOeCvsM`3_5a){Ya1k#`U||4gwATHxrDDT#?`bxQ!MlaDWOqFlP{rONkVp#p7^U32#N#6Iw{o? zYB&G 4iL13zs96brLF;*prW8wb)VT&$Fyo6?Sh?Jk$+gR^nR>sn2UaZ4 z!N~PB#+#Bg$h7X5)*Qz^!@CD^J@G#P8N+(wGle*dtfQFsV^!-{&&2x`ok02j;#d4Z z@ykv@+hUi_Yw#?b6+=SBlZ#&{o>Lq;XC<;y)Z)KNtawlAzjH=>@dszonB@FJekj=< zaK?H9#a}|Au;N@`V~b&3B&Mi{N!7!h9<@OH{VGmzkm-?$_)31IM+q;*bvh)Fi@Y+0 zyrRTkD4t$)qF7^cT}8>yT|S39D}G&GQo`02pPa8Bi?R+Sp(%8T@*-OiQJ zvx+9WOLR7_w4F*a=j^z1|3AA<=T3ETRLBn!lxZ)n4K9xB&zB0)RDF}|#m`g5pH+Uc zd{Rqlr(~GY1<*(X^ONl$||^8y4b->&O?gjszKyNIS~iD?n?bbC5zI%o+=s6 zWi27ewCEtNkRi3T=xB<&Th1xGL>1SSXPm2 zN4b*k7x*LjL7&mOvZu)L{VZ*k)>n;zQo70$QBqXZN#P}DIbuq^n*-jEHl#>0|8bQs zMsIV;-!<0#IDY@BTo{2u=%v!LIcqd=l^z!_dZ7r?kO3*F=NBz3`k)AMFM<`K^XtyI zHn})fv=6kxqEBUNl}BPf?1!Fl;$m}@E$hYR`Z>}SPlhLWN7?>+uF^O@D&!3LkyorJ z_;C4!K=h9a@Zudm;{5!av4M2JDc@wJ|0zEL)`t2Ac#f62 z0REfvlfLbAE1FNv$KlWGqI_i|WJV@kmdQQlkwqGg2!2)V+YBkmaIL2I-wM zeVL^+!}nud<;advDfe9V?)$TsPw{hG1jpLa-E{e@{cy_9TRzB+?%gi79I`dtTIR;j z<{{%!@op_RJKgvH$0)L=bmaa1^cPC;bIY$NrMbAM;PLeQEhplwaBz-t)qX9XCp~;=;8^Y1f5QU39E-PyW;V zzl*-w4@@X!LNmR;(3u0WYZv)^;RjazXGt!#kG$NU{rQnB9<`42zG!w#{gc|6(qzKb zz5Y4vAN5}$XH9=T`vP7r4_}q>{N+Qut9&Vumy};V-=gxVm=rygE_GJ)i|^;>_6-_SIieGj=M@(svla`ob2C*s1r%Icp&cx{)m;8a{6WARt zii2YvMh&dGx)g`T@azGrC~D#`SZy38_G_$zeJ|?b@UqKr_*gw0ept}USpcgy8esj( zl{iA!+p-}GW9`LNEQ0;$8iDuKIAU1e(HL)-U4tXRn&7b5wKytZ)kjl&C-XWSHtvvH zvn2KexP@JUJtI3{x6E5{R6-eZu&cmrIMT6);~iKv(j7+zyAwwy*2?r?RoO5c)!0}Z z)!76bHP|Eg#_6T(Q5;!VK{E;XWE?fw<2Y(zJ29;?8*QSaMmzkCQN*Z zv`V51^CvPA8IY&IH#Sv!$IvDM@=Qm2%eL34?G0*sliJ=xZSSSF_qp2MkGfnAJ&>&) zpjP)%s|Tsoz0~R?%}6KBsDf|Zc0n$w9~oFX)fGB%JC3T@IieeMLTXHP(wG{gF_)6Y zWRb?yB#o&BeVGIaNd2fy`ca28BS4xFA@_Jsek&7MkpDI2w>H zdT8ZuBlZD~t7)f=#_aDn8nb`kXw3eJqp_o@d)Z#_k@|WK`xr+>>|VYflmj@Lu&;1j z%f7*JEorltwAo8~oX*2M%&w%pI-2q*zBOjv9oQ0CxA;`_mZw>@Jsk5 z*!Nayyq7dSgIDI2S%_D`YRwR7e~4G*RaqwWfe^3Gs{^mWYhZ`mOZlbjD(V$sUX#~k zRk3op7WT}oi#;`))9xV6`Q_O0raASQ2)_c~`>n>WH$lk;Zna>LbF#vpI5V&q0g^DZ#P0yH$x}4LesWGhxS1) ziecUSXlWa5TM6x04eeAPa=jkbsyKkpqM#lbutUAj`xxrc4c1cbc!OW@E(GjkRgC?N zim|&+A_sjOd;P**VSPUmC|sNa*O5ljd1A1H!1Y8F@S z^1;5vqK&qOSuI<&>%vCo=H>QgQ*!f$4QHEr=j9G!+xz4WzmM(hGq7JCE9moJ-cWXY zK)-wPcyd5qzahNFz}(@3c*BAHdgt-xLvn}b@|>Z$_hj;(Lv!0tUDKG>_O_f%me#pL%S=}5wj2o| zhhp@26C+j><5e0g&DoSo6epw;kfgulAICo_Vf7vEvUrq<_HDsG**T{Lpp(W!XMF7% zBlWp*;@w`vRXk@LRvE)mhGDVKl~b0b6${*WLzhg}{ie>H0B^pb9pEjU+h?-gZ3(s` z*uEp^BRdeD(-E;FJGbqOG@Xe;CG?QYJm?w`^)7_m14UjJXBn4@sUY_yBKeilDwi)G zM5IH)A&ic8`B>szR(kFlrf25d+LEov%^jN0Ruf!DaATj``}(oB`}7$$f^8+ZgWw*5 z2l@^jG=Lo;SV-_>|3T0qM$jCHSRN!8A2fVWK2H*?0&*^|K`?vhJ$;7q1_T=q>(_S> zZ$_|Xp3K{ZV3+$)D&B)&Z-N6+SJ^uxR4ackA-oDf03}DXCHfEksh%fwRQ@+89@>Ib z@;MoYK1%2#=p|?ovke%i_4{{45N)7Dm-H{eBOdEwMXqp{Jc^ znrElC3cj}_EfV)mQyjd@obw8t!O6SIIiFBxAKv$rbbm8-4rDs#zKTzRbh9lqA$c#fPS=bGWslhr2oFxz2f+b6yAjI3k^#a~GV!C(_M1k95v6A$3V#>ZIG_ z(D$ix6gx!7_-JeAEcwa*4xeZ*=l?+GJOXVOWLom3WUJ)OplPfRdpO<=)F}KTc}QE| z8c?TiM=`UiS(R1sAN3z)8S)!ZEVCqzQyix_PH~c-7xpR(oJ$Y62fg}-l7YL@#1sYV z_+dGd;G0QxZ6V8#_v5aiv@$*HrV+!pbOiQ)t_)bkr~;T}WC317>BzdsTu3W($nh%; z8YmC+3Vai!C8(0`HSk*7v#&$|`()oO_ox?t7OTWdVzqb~Uln;ptQCL3_xfJN_eEY4 z8^r5kqj&>f8hI1%ynHE+im${m@io3Q@(td5IVDbuGxD7myzw#_yNZ2*cU~^RH$p1; z>iYhQcV3>vF2qj-_60shSq5Vqy$-dz35P}=wMO?;8a(N?pvW?D_y8S&OFvn|*gqR^ z4*XkfFJWP#zOO3orjr>WC?rk*mwjId36Nkoj;n472!fwDlI5hZ? zdja?1(8!0>$cNPM-a-K=hjD1wdHe|AQ5+iimK=M(9Rps7L&F!Vjsu>+p|MlkU>f&u zSa zd`OMg;dKz3&9edP@p^#rzDvW`0U7`{@+ZGhqkZW#+L2Df zZt6Lp%f09{e9NXQAa+&<{4M`2;1m2wz^C|AfD8FTK>41WMt-J79;QYfrbfP{M*gG* z-3q`q$*(?e=-AzWFN!zuhTvP`9j1%-!~wtp@de-!@eSz5#c|-@if@6R5GR435@&!H ziDIVHTUA2C4>%6Ikvv(Oj5kI;*FFdQLi+-5i6rr!h=AVJW!(2y-(MMr{yoJ6X`kwo zY3P&GubduImHx?5L-iQ-U;1&S6xo+$KFLA$DjBHvm-(;qluZ%GxFGLfrR{16&jQyF zi^cN}56K537$}QDUjn);1KClW<-u?VR-Pj5#P{*VbCfWhJUhsRFGqA>HnHkvLtLddL`1}Ek4Afg+bTQ&P(9^cZJU{;PZEP<&!137(Vg~ zVVd}(_#^n-iMs}YyN0`e1RqERe3lA~sfk{=?-01}=zCFo%1TD+ts~z=Kis*LN}_y? zIA$3H#zE}1ggc*CF>+z&U0|;POUl~gt@xHWn~?%Qyd5v`v{n*_B^9g%tAY`Bs{LDg zhW(U1+kVELXaB)oXfL*x+Ar8E>_6M9?N{t|_G|V=`%U|8`(1mh{l2}!{=2=~{>a`Z z%cjP2U`JTKHO3lejkhLP6RpYC6l#oA`=uy$E{tbNu2>yTAo9mcmLud!I-MB*^MC)px#G;umnXy0VFwxU+hZfjXq z(yC@3wZF2DSyimcR;K;6U1(+5`Sv&VaeRC7Tl<7n!~V`bX`g}8Xh}2aO9t&m$w)G8 z>B$O~H=ODmW_9{DrtC*js#EOW*wgJN?OFEI z_FVh-_5%BV>?QW|_Hz40dzJmNz1Du!-eA9BZ?^wxZ?XSoZ?`|RciI26_u3zqk?K;G zV@rB`>!cBpcWxl2;`gC$CL5v#+z7CT~c#w3^$UtgiNbRwtC% zZ*(!bKq6fY>?4ftXP_q;xsZ`Zeno>tj66sxjU<(Xr2fDv8mo+du-e96V;?*eCADAM z)9fegnfCAOIrg*meET_jk^M(|nf)hwrTvn<#{P@F-hSQQWWQyDEOlwMVUATTfU|Sx;NfT7R%!uwJxYvR<)XwO+U0wEk+nXT5KIX#K=}G#NA^YlN zG?}oBWSZqmUXrYA)lOz4t0gbBZcNs)E=$(6u1eOku1H>C-;->ZygJz=d7a(Vx;EK7 zd82i`-O;+u&a-5#f11=dW`8tz-f1ioeOk94fy}YjKCnrI3Eas934f5{r2ntsizW|J zs&R;wV^kLAjoPrGl<(mZ4ij7)9s@qsp6H@XCd#8k(P4q2C_`mi{vSo@9wkaOO1i-5Nv2Pe1^`J%WZ9g3NjL{ZqZaiq^ z0gke8k7PVx-2*t%8U}d3g}2`!8>hTRXZ#yy+zL1rU;7ls7|0AY#9eSES}5Ck5VT)e z4*-s~?gxC(x({%abuZup)= zfpMcIU<;H)YEokvXM_>w!wBlMY+@Y~dSPNM;IYIjfQJ)n0M8Jgzc`qNFYBB#4A4ri zA@}*c9Tbk)dN+M_ijFU!am++YpRg9@E?Z&FzdP%XJAKlbfV^|87La#d(u0H+1?oyX zP)E{{QxANAa@W9|r^LsDDzBplP&)V;5_<*lwJ=XA@uz{~YifvtYy-cif87G}=$wNT zUR?j0s{FnZ^fWvVkQ=gxmEr;|^uj)*O39x7Tjd z?!)Bn*cD-jNMN@FSq=kt%$MP5Nk@#*9CN+0pQb?*s-Sf6vFwKshQJ3(;EXT2 z$}cWaJ~NdMJ7>$BX818cdDknDH)vmKSGTk58g^~F4t7rX#I9@Cw6pD6NE0l%YgKow z>V9>D*od5&m?is~e}^3$s?wg$-_bwpRcHN&ew9hT-t}M3C>V*sslyecyhlIoJr6;Lng*HYBY28TOu(c{FN{kc%6|%1 zn1V7+{y0W+!f#XmF9h+-gNczBO5wzH2VbOxMpGc%i7H2T(#W(NyE~-v$lV}L{TBc6 zWZ3!D(oY&qpxr@wnl%OcuFt>>{v6n&1=w+YE$-&G<37BA9mkw}75ZIrkqR0{rL^IJwbQQfte|#@>xX2UZ z@b&OnVu4tWxs1)C6Y4(#VLHMJgl(7&f#0uHM8J*}_=(^gPut`z{!WBH104Gg6FwJs zTYo35Inu25Y)rQEpCJ0nz}q|c8sHrq{1xCG9egeDP7eMT;I}$BzHpVyaqw4xcXsgg zz`H0s)E3vhO_d?k4tQ4wZx8%-2k!v9o4=EI8x`1#fSm?3IY$XJc8}+Y0_?-@(hwJrF*Nfc;{4NL22j0`c?+1RjgO3E>%fTN2p6lSFfcJLr2Z8r-@X^5g zI{2@E_jB+u!23J+Sl|O3d>rtB4*n4EK@L71_+STr*!x0qNU$ZX6L=Q~zYF+n4t_WC zcBQ-!bm%4UsO7t#vCt}5>{`CxU&m1tLa$RA)IYS5(#%Gh4TNF06&LL_%J+z5jGtig z3naC?62Du<0ORrxGeU0y*7B9*xak}m-zdw`|DDVyIRbNY)Itl1<2@+PX5#ZWu;(bZ z-1S5LL})Fbl4e;c2-IE1l&`x8m6airZ6TR~TUp65nOnuMOq^>Oa;7&^mH=2PM$W$0 z(m{il0SGJ=BU_}F=n8nRi~)9`80q^3VE5!V#-%6N9EXN4wD)4V|2xRW6Py#A%e=wW z!SyTzJ8tp&R`P&HU7m>$dsULL$6cxUjgAbmAP5A*35 zdzo>i@iZE(iaKk5XZ=MSWeb>^=GBGJKV`#ntgKbnTFPQ|YtS@FAQ8P)`gLo>#CxGaIb!Tjx z_zd%T-)bH4o$21%1KLCQzVuY>55}dq&$`=q%$Q=lVZ3D&7=`%iUJCl@nuF~Mp0(p%zHDZWzNlfDf89L_cQloeq7a8 z^_Hp~syy;k+?>i1V4Tm7->GpjGJ{d&8{_j)|^@MPc_%q++1^C&ChEU*ACRaq4vbuAJ+c7_9;w-R<3h-ogsDR*I8TV zWZjB&Yt-$M{Xq6ZmtA^Uzsv5am#lYby?X7jJay5{i*8>ue9>aoxo?EWUm5 zfW?n2eq!;`#l>GR+cmJ5^j1DXLynTzm#k0p%}~%@>Eo z*Z27-4c@*D%tYB8c^NZ%@?fBATzWE@& z=J=s`)U(0!x#tAh;9=|w|8)2d;TOVx32#6fyp28K_eAGMw_yU?XQf+L%Q*(jj2x~I ztZ>oYv5*f*i%#79yk@Xw?V9atcB`3Nb9T)aYrcs#I9T&& zZL@as+K<%UiZ(cjnyMH9hQw{)a{(zEBiq#9ji}mkbySXuyEU=mW$dg z>b+>nqM3`miz_Xzzqr-nzKh2%ethx##V5YRqkuw&Heja`r_xU?J@vt<1E)?Gv7*eP z5yjuhHYon2cw_MfoH5E2KVLkrcy96R;@=g|Dt@YX3f_)=tauXMow~dD_Tn7GUyV>t zz7bShwYW+#Jd)yI(XpcJqS{3@zx{-f~h z`q)dyRvr8Ev6aVOJocw!%a1KO_CLoK9((54?~YAl?5mSs?fB~5&j)@!;PZZ;_x-#N zW1qMGyz%D^3yKO(7Mv(JUQk$YjIn|v1&0ehFDNKDRPbrRzY7i&d{VHtU{Aq63w9xH zBf`rCPZ!L_d1k>A1-~wMwBV6~hYKDmxCWFu1yu@?pTW+5w)C^%hjtzM`=M=zRx)1rw)8|;Lw5Qj2)=I>Gx8NzwcN1^Yf&T7K(m+G;Gs&=g)agJRfPs z$w)5km+S2O!`O+qdFtQALO${Al(H;m|KzpL_v5{B)xj#3k2pIOhbQ2~^-W>&EOP-4 zm(cwy&%qsA7U$CM#ZGg4HD3o$y8ushPU5S&jYKywT8tNy;8!ojQ^Epq6obSFZHzWi zpRUi+mt!}<_4*!tzlq%9Pl~5lLC*%|Sb`s(++bwUOyg#wH3pemj5dI6jrJ3+xVxkhwzV#y`cOHVV_yutbq-+E|qkAd8H2twldF8zVqF0h^fD zdYehid%bt7_iu!4!@u|axTe1?LOXmR^|yiPGA8hZd`c-X;Ijh13+yNClMvMc-z3F) z<)+2V8#PF?&yW@9A zEZ#kSXS_%JuK4fc^W%SrFNi-EUl{+N_@emY_>%Y^<4fbu$Ct%lh%b--DZV29Vti%% z&+%39m*T7AFUQx!Ux}}c|0TXI{%U-E{I&Ro`0MeF@i*d|;%~+`$KQ&-9sg_mo%p-) zE%Eo_TjPI=Z;QVl-yZ)UzJsp&VSFc@{~q5J|3`c`_EOvv|0upU{;&AH_{Z`6*j4dB z{NM3|@lWH2u(x6Xc2+zb|AKO0cg6V8_*d~`@vq~B@o(bC#!9}voR+W?$;2gziit}9kFqxb zjH1}uhO2s=o_(f!vQCo8PS_F>0t5mX!y+I;RCXnVEiB5ui9y*U0RaO-SOY`^1Vjvo zm>`>iAe-m~^m2iV2r9nD$n~NkB+d6!Pr`Cv@Be*2;iM|FbXT3KI_K1L&Z$Tmh{%))`QJdm4#}u69n5w3!&DC_Zh1ybWrDot< z$2RyzrrK6*r)H^s^)chw&K=Z_b`|iJklN>I>>SA?? z`i8nxU8Z8Tsms+B>PmH$x>{YMma1#jb?SPxOnp<`puVMUR5z)c)wk6x>Q;4|`i{C? zeOKL~zNhX~cd75IyVVcWJ?e*Qg<7fZRXOu98`my?ndRRT8eySc-kEx%j z$JG<+N%fR^TK!x-qkf@&ss2qptDaNOtC$t)*XrNZ3+g}Ai>PB3tCv-*HuZ}74Sru$ zzg4fP*VXUT@6{jF8|sh1-`ME@9H1$fcyy*|1SI= zwZQQ2X#`dRr}3JgiJAnf%>gFn$#t5)V-RVE9QwwJ_LrURV~9 zT9oF~qO}+;R*Tc(wFE6uYoH}*4YfvEW37qSR7=)Uv}RhWmZmj_HP`~SNGmNvYpu1> zGPSl^J1tA|YmaH!T6?X7))D@Y$Ke&}qG9!GPrzzW}mTkE6s z)%t1uwP&^Gv;kVKHc-pc25Ez}A=*%Fn3k^%*G6a~wNcvh+6&rfZ49tcqK(tWYZJ7I z+9YkVHbtANy{JvoUeXHSS$Y`=?+kdCW&!V=0}s<&_(h7~XPOUB(*k%%7Qx?C43E5zw20o~@@Sd!PC+bc3P~L(+Y7;zCZ^I|G6<(=#;Fo$Ao|X6D zo!SZi%KPw9eE=`ZhwxNY!q@T<{8jtmaXARv>|^*{4#Ri#DZDSo;K4c$AIwSku};Gi za|Yh5FX4|l3!m0`cxAqZXA8Ksb`k!q%ka=#ftTwl{503#>-rAfnjhft`Vl^_pR_9N zXRTWMMZ2l}OZ!#(w{}bW4cIsSX@6+9wLi5x+Fh;2*!d7!CVL$kB^1AWpjSXlVw6Eo z{D=}di>m@vgSLbIT}P05Hv9lO~am{$wN=`uYtUvg>@8*5;he7CI}jbe+$|Nl8J|Q5u1T}V^f6v zrUs&)MF$A&77v45prfE;AY4oQ0)+JhB%7VRO~hNEZ0Iet zTS9xq$5AREGwNMXS_33Pb4i{6iQQ0!2Z-rVDJno>ca+hf*7z>?CHXRG7oCZ3G`cjl=zw{aE|3G;XbP9D~meS_|Vp>{4zZi+% zpgbQS@hVF6QTh|Fe~XRcAIo>pZ$``_urCUbl!S5_Xa!zxh;kKZJ?c$Sz6rv(O6e#!1&CP>_O}DX ztO)xy&^!1{Yn1PTDpAK=wqxw=Kq4fJiyeKjA3+^sVF!O0Ntl~<@X3A}by)az@WXxq zb<9!wB@pA;U_zW_pifaBiV~l3)}W3)XcQ!){vk>Q#K!ml$_NnJD}9NwC8#Uv|AP|u z)^Hz5N7)mEw#gz&v`xeN@>rDMwFlRfSEF=-+M&J&r5}`o`gbUC4bLdlv5q|$f6rXl zOPIr+*Feirk4A|$d)`AGJoNlCK+MkaTn&&3;|6~{33?o#!L@_NfTp0HjdCWa6m`sD zbcIA<%uORu27xfPrk7D-EF*Aj(*l$!pl4CX7)A^Lp>3u^D5rv6ME!G=1pzXBfs%b6 zWCDL8&~`?qzoA?MI*9sNlo+ds!_o>zQrK$-|{@lGSCO8gO9!n&|cK>Ip6*OS(c#u0t8-K-av`=_;61P z#=?ho`7WWp93{q`k!2-8S_=sC6<#as+d)_#7Ob&o@PZMus-wFH$bxo8qfOBmBg=J^ z^8;iJLy30Ax_~Z)qr_OmhQjV%i_#0iO>FB?#(^53z6oU`P-E1$p_~YsjQVzzF9nEM z@v-1NBU?Gjq5#=;qC|ff*><5^1KNT5`zSvLok9H=O0<;`+Xcja7a+D9h`kXY+est{ z#DHS)nNuk9KqFDdHR8dO1n}JUca-Zu;I#woOE?5Nj5_+70KPDCpdE=6B%oe`QUWQc zgP)03P$KH!Lt+vL{B%^J#C&4J_8^HpKu@E78D;MPIj*AY3(CdoxJTk35bopn5#>q{ zc;k#f30@>(t~t|DehR`|bhbzNO@N#oQGO5l39olTc@r?`J=D7ql7x09$=K^WhtdqP zuze3oKj<;k^H9zKy^8u^l;BI!dDMrZ#Pt}tUO;&VbQkr}1TI7nhx%BQ=zBwqy=wx> zb8~l0l5a=FWA4tf?FF>rmo{-HQK#!w-1||5r8RP4QT-clg zdJ1*$ZZq1u8TWL5jS@WFJO=fPC|?6DLLGB+^D+?Tk-G{d#(MKA)T;@3+XMS0D`GtT&QAa<~JaUsq{does4TO8D z;Pox6`&+DS%L!1p0IB8hI^r{TCA^Ngd{+epqh5g$^ZPFDk9ae3w-pHYSHZWtxHluV z^SSE>v1?vN*&c*3P_Ljw-|zN7{VK|*L2se{6H2uG?z_;dZBb%u?&2C6zJK?hAbd{) zzwTZKVV!9hzq>Uc^ic!vbhJ}m=$~c2akPRgwH$Wr^&#kLY0%48>IZ!qSwM0D>C1Tz|Bq#zU+6*E= zkthd&2BRK@a;QNhh}~y6XcS(LL5ZlK>ItYL>Yy6&CDl_=Z-NqiuAYuMo-tGn4-kk1 zr4xD+F&8(NqK*igo9N@s9jLEHxf65%bwpX-{1|iw^$$^g3A%#%Q9}Ri0)?P{p3qyk z$1TkLpvx$64-g5uf)e)tk)Uq~{T;me9b*)96(u5Ce{V!cFnIPmzWY1oUoavdes6CO z3HA|*Gh?CUk3o)VeI8!}#G0^7J{Il4a`{q_?fKvG`P$(rFMjeE zyjSfJ8PXB4DUTaDek^a6#b2;E{~ROV?-|k)8M3_*chmQN=HCE#$p(@ zTFqWE3)vxKtea?0>sjj(mXl~vuxFi3=8_eNde+8J-Hc}tZ7_6+J6k! zI*sqICKEAv&r>texkh*mt;f9v8^0s?CgOSH=O&qfJNG0Tr3wH|vA7H4*k*c|R!K`q z8956-*m(XTor|aFY!Nz>;s6KuJW`BnuV&wo^6})HJmaT;U7edMfJGL}y#qfjfr3`O2G zznm1~N=ARBmg4XDW~p!$eJ-YpkO6U;?|?OyFI0oqSe9&dd?-tzz;l!|_BqSB_%1`s z{ZIAvebz6!N#pakq|mE$~8@axotNyX2MohK%sN=6o%-^=r;yt(%~` zkWD7S!3)N+@$&WMLcWNM5y+k}zg4(Pq`TB4&fo-+eB@kJGvYi~b*?H!bw#`4qg~PY z0;!qEhu3_kFPH7Nf1Q9GJcrqj3n3bchwMuCJ7h9Pn8lf7kuto;?5ugB+|sjeCDh`f zR{b)oQZq7|k>u+&r&8!1V)0pWEc}4@G*7H6&Be#^H2vhsliCK4u8Zeu$Lnh-%s6)W zPx)=!kH$S@lI?eh^i_e(G6|xDpa8+d?&0qFM7i4YS=@+YH>$bB8h;D-OQC*8isDyt zlssjeQl=bKE6lA$ndkr-%|}~kw3^08dr$?%ss^P;tI;4KSijtp#&;M&<3^SZr>*oi zpQi2fH6zM~>lcT=IYR%G=JnJM(2@E4TzwZ`qz|I&^+BukU90rLbRDBrwEJqhp6Qrv z`dMK#aGYqwMI@8`{$4Sh*aVkiwN-)_(DTR%N!p2)}pEWo4070p605L&U?HmYy$yz_bw*O>l&N3gjmlJWPh$w|NnEzr-g z$fZvs^ZhO29PtV9368|L#BB10HS&$7i$dOrlisi{N^mc15VxdxVsv=C!rMG{#pZ~% zHL{1>9L+4v1I%L!1`M;ZUmE*mXTNL)|C%wb9;v!j<*fd_nz0Hq&3QfbR_1l%6=!vT zYa+NNGCsvfU_x4I3-BN@6;oDb2 zRI{S@kimWW3>nHdE34^W7PW5QN9)&D?&X#&dv$h6$?Q2LGcJAf(Z!1&?YqbgDw+N2 zvSqK%T0Y~?e@nKDAMO9g#eI7(F+Oo**1c<@4n8R)g`V~=w^6&b(B*bn3e6U`+oco| z#S`R_sbne)3i5E2r-c!b5u{Kdk&zL;C@wnEWme5tc6^BDQq8i7lN6V#nsEpUPXcdo zAs)PgcU5z?+oJFiF-P(ZJa(x;qEr&ns3dV&+>(%mcGcX}V#hf&Zcm~;l5grxjJCTR zSat4jXESFFX5+ak=g|OjF&o*0WXt*J_20k840Rr5a}*OaxNd@i)nZ_NK2kjLhtu@G zW-)u^{;U0Bb~#ch9pK+3Tf`V8$xFO6iVH?iazmQnZcUoIJ6Li_Kic2i%iTY$e^kGe z;gJO}M^@8S+zL~PWvQnms3c}plPJZaSWPZ#qP0N?7p{a_Lam`LujcgxMMS0IR34h7 z#JU@*4YdZIj+i&M)|%TqH3-~oQdQo}53sUR-2WtzmvG&a#rV`B(g zo5l)FOATVnGuD`p^w(#5ohuu-xr<&vYuaQ>d#xh|(BPWl5!dJZOaHvEFeUY$70+zy z)n{FYk#pMcu}{6(_l-}o{9JME?S3aGysGQ3=+~C^>qFJAXI>qW^>XHhPvheDBsUw| zHw`-trYq=JLszu)o9U}$7VHyF5dK0*7%HL)3c}_`_D!BRPFyUOiISlnpc(>t0dtp< za{X7XKyo88xuxGBtt2b#HYAa{C8C<`&Pz=5K;oGL63=1OnVh?xT7~(81zLlfNSsG= z2gfFG>CN3Oxq`ykbLN&UFIl!ia(}P4`{4(@&38Z1qu*SiN3c^P8*#s}#{Ht8QQ7@u zq`12U6{!f$OPRMGTvtsCa(gsRj&0#iZ_aJRB}2#V-ki72LAf5O!VCC21JI$U4X zn&wQPIl`4s4i7%57tv`a2Os`q$Voa)FJjg&#VIlbQ3V3zXsq8w6k00tBIglsK9S@x zS)G?^piP;+IEV5`3UxtQGButa?c#TEO={0>sXfaz5rx{b+gN2AY;8)`-E-5!*wBk4 z)Nke2kvS4Cz|9pRVMxxM3XDw4G!K;S&9fV4J*{uo4^cn9HpiXU?>(_BJNupQFJl$kL*F*M#DF zo#R)fGB+u+E^#jmQM`^w-s=euK?`o74bJOKRiw}u&gFEcrNUt05>tuGNw7BYn_E!2 zb}jy|U3-@*`X6`i>VHs0%+XKlr$DFKSvRyfO)JwU>V-SZ7)B2-7 zX5#mIviUNBD-&nQq)ahINnRLF)Z#qH)IL@QWvij;NPsD+x0p!@4@ zbwawMb^g>|0>7StSy|Ch+5$ZeV2EpeNrh9C-G{m(KOQLA8$0hU&Mr zZQC}LE@?e_MVG0|v)i9)mU`op=QfRt(0?-eUy3oGi2gSqQ8JQH4IW%wsE4 zmP+0--_qD6(n8N$NkLwf@LH%h!RPeyT9hIsF*XE&4X`G_0ma||%zKEDU}MTvU56>= zG}K$b2!l*ihDHvG8sr-qEkM9Cn@Wg|Nnj>dz?x`8(*u=9I>=`&c}xF7zma=vRL{>w zA2?RIX~&+Db#JYF=D>uB$NPOxt*`U(QAZYE{xv@SaI@6q#jloZo;q$~L0rOapYO|E z)8Aopdnm?vBjyzcX*9RWyNX!~wVH`nG6_~g_FB-ffN^AH9Xpo^ zp=4<6>r6u3wzZfABR)mY=u@*79^EDfQiu4+-d%_a8f)eq363I zxdGVoJY$lO%KW9z0R5MrzSsZ95LAQdrbu)PvSSP8)Ci1=M27f7 zL>GtSFkEGJbu}SvhVlt62POg@%`uW{` zIXo{o4Ci}v7KiiYq+F6QXP_ZyEREj6AFBQKEY)k%#PhxH%o5r55?W#bc+8&c3_XW^ zSbKkb2soT5l|?owb1#WpnD|yoh&8UE*AwS;D3Ih3=Z@%b?5kk)AAu|fbL-cv@mB_v z??ViYXVz96tSu&PjAa`e69+3yt=|SNSN$t9$!)&3ylhFW#TI%NKLB_`;1F7mAP4L6c_B zo&-Xl4BK8PLZ3o_ME3Q^%2A=Tkc5_*Hwk5Aeo$1Ib4k#`c-iZX#)*P4F_QJ5>RSKPgyqmG}xr$L5tTdzMG z$*riLPpnTjF>wwHu^2I#c>Q*1j<6Z(-GDVh069RmFcpuf!jwFd5I4`_pRNnBy1^5} z_AtJ$ka)ieYeHTp%psexbrET(Kth0x;39?@a=nIWX*F;m!x}lu>=9h5_Cmc)a)IQE z7tscZJn3)9l_FM?mJ%wkf}^4&l2S>`7V$u8BJx|Lw`IzaI3X6Z8kh@K=dG%`9Shr0 z*Y7^qURvQiIL%JHc=xtox}%F6e^XzgFWp1G+)Te@e7HdK#EblfIzHH74oRf~x*(8P z#)czcLmf&4y~ln4WU}kr(fJKqZU%JsgSPkZH%Murd>!b0RRgW~@XgTXapcnmO)O0*_Je?Z%6eRxU9zA)pp1g-LLx}?-P55%m zOP0|&%-<+3Qjr961RQ8up*qi561)T>8WCnw@C5HjYV(E(UW_kE2vg&kRc~dsi)v^~ zn2Q)8wj0Fmk8Qe>tAE#TRXb1PC1(EanWnsCe#sZWveZ~CxGZdi0<$up|Jj0cV5cNw zvqXzdp8WJ+tN#5n(&oI-`?(hzY@vV93wp?z}#|VA0~2rWJG1nQMk` z|N8Im3@>d{{Klp%{|NnjdBL}NYj;i@J(6l`XZ<;%|I7M?m6dwM%$bGrUYSLo-hYlh zU+_c^{S*BL7h3$*#@82a+NgJavdf>JeRk)GZgXmVL05J@zb|Lbg2(*%`UfAc*Z*hK zh|ztX8artCoR?pwUH0#xU0EJYT)f%D-hdS&moOVfWT>Hm8Y`k1mhzDRW_bNvRlUVx01FJp z0lpAev8)W#0T}qK3^2%cPzUFb9f$+!3y;Y-_%9Th0vq8KA&7=@y=h-A$2y#j;9jIt zxas@^VXFM1sff$CjI8!+8f;Q+RH@?7S84J^>$+?j32l8(9ZcAG~daUpRo-8iNKu_Ap=55 z3xAmHP5TaWiHp8Tb_iJhu7zQ8sEwp(&M?-*I(5X__Iq{8Zbx`jIEUsj8>P-JY0=Vy z$y{%wh>7_>%)W;Qf>9?Wvwz4R_4BJZLi;6JNS`VESsZ+RV6J{l|GR!cKbAZ2Z0F8& zJ;g}S^^Y5C7<@#YPk@h2{T@=HfP+pG=QI;w&8ftz2yQgW*y{(F23@l&Pc;};r~Bfg zjiw|~y7U&LV3dAUKdEQqKD+30eT1H)4-%8_PQ?*cO>q=e@Me95J`>;x^Jr0H92emJ z7J|D=B?4ChNWDaO*DO*+hJ7kn8B5L`IdXrzQg%hzaCf!=Hg?}AkMrfVVcfCW4DNPK zJ7!vT+E#llAoJNgiN*C51e&<(t}na`#bI0=%8y+%Ci!eM<6=bo&8U#4%+C({Kq_YEqK9apnJuhxIY z`Lpilx16U-HrLL0rWajBMrg8S!*6SXnue{Cr@^iCtj<+^Lr zrMNavntn*$bs zEP+{KZ09l=*7U$BP%jLb3A4+@WAgal&^Rh^iYbU|AT}_yr$~?3{Ui0X|246|3Lnf|5W~(|4P2W|0vuL|3~_Rzb*bL zH6AdY3>Xi_(`alY;da8PuA@S2I3K3}UYo|oc0MNTLD_z~p7Zsph#8Q~ z!LVzbopHW5&s31YnLV5)tL6kQLH5ZBW}msaoNgY;P3H>aY37;SYNAdr=W9&-?K_Rcs2YS&+__rMKjhgmxiiflDWltzbHUEYMrYAgQKB;E6N zDuJhZy~Sy?nqnOr15TaX@+11q+EHlj-6-MeokqgdyX^cCrk5^2mKlB{V0a~NQWC)M zLLF&*sK?1LJO-KF$MD$J7(0IaP7H`E<2RppNw1~+rAw6R_b%Ze!58&;`ceH;hOvs> z^a}kuJhrj|2MMx+lsj+KpVimt*zM4bIK2ToWblkLbipF<%!F8z*8ULaA*PPpPO}M~ zU}&Q(7gI+X8U$e#m=*?#=eIaKQJyT%KxFocOp(`NLeSs9yM#sKgQ+z-0_hB1;^eCH;G~!A^ryqlDRHt&Ls6l538p`n5+OEY_|0&q((`UvAR`erOb#%?#d_Gstu z0jxoPB%7z%FR4@{A{Al$$%2P?klYi*2Mc&I1C8er_(UlIKH3Du7m0HxxlXhbH$t2& z;KU?#o-|KhDXo+d49%dvV3m1S+1RY_Pw<}#Va@ahei>xtwQf2PgK*)3dT zRHRAaWHT2P6`5_eL`Df7oCo}-wk)K?C6th5@i5LBM4By8;WCK{54AUuL$#O&&PzwI zCaz-(X7B||qt5Yp^uCCC*jo(dIA9zN*b|kMoYW%;D8hXoRMcO9n#r(}0_cg*dE%*o zo8F(g`K52a)-UTnjQV9}LDhtJ_Z6)!`1S-1{%zzx#EqY}Y%z1nkYQ1wjV|oD@J&kc z7acpzdu7b@sE{Uy-Z^?5fEvAr$X0>HEy$!R5QKm*_rtdGizeqepk)v|w^)e66Xj-x zFPVrR%rX&EJ-(z8C5qq}d@f3MB8Fj{vR+XJurL8OHj?m5ZS~38Y8Xg&&NFn0l3kD~ zNw}X2n0%0lb6JR3Vqd7>>|B%A+zJ}?F_@I~YMpIt>jVria5mA{Mm7p*aO+i`sg=MM z4uTAb9M;ROlRFN7vg4$F1@h!O{R)KdWI!G_`2{u4>6i4caO7zmYeW6sNFpEl69uN{ zc>rz!O%E43PClWOWWx{h9$_0GoSIAJ`uz`t@B`;ZJxF2bnH&?FITx(Hpw$EALx zx0KI~6h`9IvMJaWO%tYxlckv^_}Qc+tbu5nreHtBb*(*mmR_L$_*?BU$nId_M;J~N zv2sM-3?5r)fxn9wCW+9eLYP_M!w^ov!LNg83W=#)taq_aA zYB4LOK;V!?CN}4}x~LI^iu|>*y}t*%zXc?Q?)_EbBoVQQ_;H&Xh;h)m?YMSgb90Kh z8~3D`ZT6e{;n1Du#o^{Wa{=61)5RI$O!IQMb0cJ;aIgRbphpNmq_TjyCo4n|%w{XG zhw&c4V+yr8?LHw|^hrM1XNpzg%<&eV-Dl6_TJz~bnwVm0p=4OHtSNRpiGz0K44X;J zhQiG@`AvSMgZW9T-|n~f<)GuOIre;RI6p`jEapjha-M0ZGSocOG8N-cz`e*%6()(( zq-pY0(>T+M)*03r_Cl_RpC`;0=PIvRitQ_e_4fDd&oT|mhKP+)tU_ZuoPwCnxW;~+ z*5~Vx-Jc+U=&oC+W(51dc?W17#tzZIb#{5aU$O}Z5U^tEUBVt`_e?Uw%niWGG%QeN z52QR%o}JUzuNh{l;=|M$aUiUoL}^tp5mSopE3>O zUgef@&LA4bN0}3765o=x;{9gqS@{?Fapv`A<`Cfxu0#F^7Z5JE=0fewljy~2F2Cki z>;jL0&EWHM;4`y76|&eLZrGnD2D)dPV9xR-BBmV8#%cLxhO#ky$!s{LBm-(YcO9Y# zf{{V1MhH;A(r2z4Kjyg{A}7JT447n{O^V1{OvDnzhnbv~WJ@}qVal>R&UZESu=L{l znezFOrm>c({EMa;mi3k(HgN#XLx85!=!rr}O%8wTZd<;*X1I8M_1&@CRtrmv_A`Hf zU&Knuq>bMpY?XF#TggsrUHSIJbRQWcY_Iij! zz2ZM>ijC_(;tPh%poE0+;143T{y%-eFka|3!x_wc!3doMua6nA0<5hmekZ?`?h;vB zNqa%63ypJt!NBgYljB&6GcPfl(r6&?7Qk__>D*Yo?=Qbd+UlDN^W;C1B{5~$~xZYXse4N98*Pf*d^vQ6&V;)!O5rU@U z9BShDfNX`_7n}@BIES4n*e_^z|E_N@X6(TIwh1@6`BFYU+sv=f-Q<0N??B;lXDtOI z>rhC`Xl_2{wTlCAMKCHiO7k}iOTWiMCZihB#uj*8&MQl6jkIaik=&@ zII%48W@2RhSL?r2|AoBByr?{1Ui7%gaZ%%ZiZ*pn*1%oGE*qzj^cGkB1K_73} zf5<&!LDQz&5)&b6II~7M#M< zG)@)lY+YH&C7=A^hm#=g>7j%4efn+u>>D(63tB^2Tpj-d#xRs*`NK&eohR4}ZS%~P zE}=3QgBK>dZKSi-5x^bdY%oul@y{Un->OrvEeUsq&kSE2UKY-_CHIX!hB7k%&)5$D zW8{D6zBcFmqetJ*S=;@|O#^CS#WbN(uMI-__C}4aoj!f7QKM~fap;g82gA2UZUFd& zb_xB_LT7+qVU@(LRf?vC_6oWJ<~A{LkGtHKj*MTh?HI%p;Mb8y_{CrzV>l6*flXb| z!+1Hrp`xPo&gm!dl&_Q1ch(*Q=eBGC_xL?r?w?g#h7O_~s0lwE2I-zU2G+G}2Kc3s za6|~i!TwhYP4h(0Rw`Cn=|>@z?h5NdZ@7muc}(O9&h6;vHJW(D@Mkdg1)R6H3^-zz$))wETjMF@wI_L(^qj#x!B*&LQ`*qIt8bR}l7 zA(ZV5xUw*Pl6eF^sw3DhU?3RO=B!3c05f#`IF+i*!?pxyWCYU*P-?O1Y4F{oaktBd zJV}%FFDuK-ckGw6RXHPu6xSs4Ulw=&h@GcBUhggR2d^!N#^?$J+!~>{3)P@X2Va>G zTama=sdVfQi%1B?(P58EZnv)^LNHj=rZF9kTn|hL{XFAz23AqSnK*OmKUPt&lY8LT zZ)>+yg~D&xRI+T-re!6YDs=tMpzTjRweIN;c4zFG{&`K!=hJs(RB&xSyL9QZ zW0x-dq<^db7!mn?Y z=eTw2*B#hcTO?_<>xK>eg{`5Far0@oFY~Q7!p`V`u#@bAZ`CA_PWOGQz#6fV*}f+b zyN#91AWY_J{kQ`EguJ_Dl7<8>?%qYcw{bo8ET0a3uZ5F|{eV?268DpR)}2n1QajtBr7n_9v1Yjrk@=VBN%!{{95X zt%Nv;6d`-8MG-!}B79${QzkBl$t2~tOpY9H2-Hq2WK?QR4Nxb;y3NeIe#-zP*(CI< zDRDV*yu)DxJbNgWT(e(yl#gvrI5D<@1{w7Ie} zt9;r^@9^`dPx_PY>8C#+pGNRQQt~Su^|odd)Cp zX{?#ud7d)}Z2pf`Q`eyXx@vH1wrB!+XR;x4f+2HMsnSgD%6i74V874e0&OF0XV4Y!`VV~ic;hfPN40WM34+W1r5*j#h+4grzmTup^ z^d@!d)i?j8|3Y2-l^>2D|KY}G$9^o;Khvx9pCQaMAhR`!yiK%mFXZAzw2|q?cK+~s z-B@8?NcZ#mBA^!^H#Fo!)&xSE408hN(XRyTiEknSYqMz5G=n(+Jeeu+h>0<=vhsl? z!L_QlFSgX~kj&d2vL)zG^$IeeyYI_wqkZ+ZPK9G(`2Ns+5r(DnIBcGWw0C{`VD3E9 zzK0cdy>w=ZoH@8-X>z^J<|aPS(>eB4bXU|$!;M|{S?+j%I+M%HEdQH%9hRg0M~+o`L0o28kfEePVJqm zHudtm-L8`dYIk8mk3d(9WLLeKmVW_!iM z_NvF_o(?zJWs?@uu>ot>xkqq07-NX(`K_8QRAU<#z~zkJfaMU3j?L(3ui0zyTARY4 zXl!Y0ZKJd?x3RRbT71Mu8l{7GEM$*ir#YtsJHmVy&S=&XEgWrl+fqkYTvjyNM zY(=Nr&h)Ecq@>nudky&pm9*=%tCR|skA_!`^3ck`_FGEDiYV} zpA^@Y&F{W?{olB}V%iRj!CKq_JGC#ymSvB&@p~U=_l0JnT3#>EcNWhfSuzmFy+gD?M z9SD^8uP6ugzup;W7sI&fu89ARxKnrf@~Gc&yBO5z8g=(L%f! zBgM$^rbHl+(Uw?i1`kiIDTCpTTxY(M;72&8pZRJ{9e_D@urSP#jbm>vM|etnT6$W} zF+HR7H21O$L45x(ZWKQZe%4XaD0z%B$THkI);^ga+l70Xe^GcD<2yroNuGgVnQ3_1 zYJqu*q$F$M< zp8W%EC%<3#NUTr}+K+ID`BTCPahfqF!f6`*(^w0Q?OpNxcNf0@u0p?f;a|UA!0cGg zk79JUj9*?e3UdS*_5!kB@yzG;{!SuuXA1Br$*e%c5t5}`@I_gW?@r7v1u!293*roA z#RUKweqMnB**(b6Goywj0o*e%L6DbcjK48eFgK+7RmbW9K<-Gu;|EBzUY0-V2Ck1v zsz<09RJYPB2<9-sV@@!)6`GlQ34P?g=6v%M`jRk3o@8Dm%r>tQ)(b1-H_VI8o9R~J zJzPhAQ?~$p7ClOsC5cZE(@x?<4k>`pLaby_J5J9NSpii*$x<4P7R`LpRFhwllUXwtKc@@Lu5akXL)9_G4P1cgCUhLHc+KlnSy8wgZ!84!XeK9_eR_i#QmY zaaarT$B4t`vf5C$x$HJ9T&oLifNYyZaT1GI#P7FT_OV=1vjX(r9#KB9_H@0 z{z`xID07i*CJwK5!%v_{SZNl!#Su(BoKtX$!N#$FVfHXbB8h|M^$9*P37+|QbDSm4 znrLfiZ|Ly3T0&X^ITljHR^}F#7S>j_410zn#q}8RQ$OcNv;?qZV+Cd_9nFv1y4bro z{H~tlDf$%Gi_Z~qFh0F7K7EuvScSc;{p|f5Ij($~&y6sTw2yS;xe81#+Fx|cC$A}U zEpx5&ZS(E(9jlZQONn*0eYInwWux^S`#X+u*BRFp*FD!TjHPIYr;?>2WKqK(z%A{* zZ2Hm{y7f$p*4qRG?ugG`THU#@r_jA-8UF%AF2=Gi0@*HNEETfWA7(()21uQ4+Di8E zTY*m_o{t9LX_j7qRLuI-P?zgvtdb+Cb@AeV0aa%+nV7&m&UKMRi^*XL;loXhOg>8s z0MscK#;=YBzuKGn0Hz*j$)kB(KA$J#iGu-E&$PT}31?E`K3F}TA646p+gc2yXZ1))!uH+qU@mt$()bu&DR5W5)LHz39N= zWtV?hF{yZB$<514i~BCRz4rCc@YhRkFTxN}D(De(hs2&V@BWaIokk`ff{j^&P9X&h zVIe!VNfEc26PAzl>uTSUc&2U#7aaEm9@A&5Sngl-KdTVoG}JGQ!Z#(P7r#+UcU~mJ@*h+>oGkD)Xk{H$uBqDy-)Gd z%Qs6V7EfC7%jIQk4qu>W5trSJM37iNT*Tp491K(%u9o7!cSj_=T42(-nsZf7mgfY# z%YZ!-6W9*}<&2!9;2`#c7K#@~zCUQp8x~P^tjX=WeK7lLsaZ7H*W~uz$~W89qeB~k z4yG5lG_4Ck&9EIW+?y|NXN9D6@ZKT{vZyBRDI-vq9qr>j;i3 zro;3#m;@Zzt{+3(;Yuj7X!4Z5ks72Chm~4nfT0#=p<|x4QVX(FMnrilf)>VjJw%CA zEe=_5hsMC)aE|5c8!#OJQ5fRRBLPU+SPWofN_-%%oNXf#k+s6`P8sbTmH@MNe%g$GO=Oew#Zmn zzfOG`Yyk>Y4k#F5oIARGce0w8$+2*sAe za15oTJK1JP=-zE!+hvnzkv@%UQWI5m?ATW~+O80H?@3BpbMEV6J$c(U`eku775|On zh1eM6lBb1z!Y;xxT;}+@@JhHxXc9>hyfmW{;ZghV+pkeJ*uv1PD<38@dcF!+Kq6F!fROK9-rgfnd> zwQc=k+cV?O#K$KjoSAs0!N;>3PiqCLskz}3Lr z(w^Zgvd(jFwr#R+b8dCnp`eV|Jmlb}C*oJYA&X=@4)Wzm7#SG%WRO`0)xAoKAQA*|m(-i?j^Mugu)0K>=; zf$tSPVuB4|gCYObfDXX?TUl%7eisP)9hig9-D`_ea#(y_JF>)|nViy4BEbZRKYW*~GNo-a!-b)eGh$c!4UhR|7q>oSOV~q*RNQmM4q-8-cTxW+= zK$>DLfuk^pnN~c)mRKNdlD)#-3B>X|e1t>5Yst=9qBwCWt6t;B*&$NNuon5M2C)_-Ao^U?m-w?stX z)t=q*3+ykh%73=FS>tgXXRk**0!O|UJMl?4Nr#Qc8!U?HbAg;T(V;{filbL9LB%k2 zjB#OZTDIk6$(a8;mg(W`rg5M}aNuLc>;tw{H~Z>TLFivz!|!5dQXWD_#?f)yIB}e0 z8bIL=UxhGHR(@vh0oF`74fO$v5v9JCPX8{F626aK6LPFb_l9%lPS$l zJ$@qOIQcB@xV7b=4sBC%8!A$VTx18iyTZq9q`^RJ0%t>(Pi^&A)lT*+g(4v(kZq6X z@rM#sf}u|X!x;$=NQ*$?Z(>v9JQC>IzzG}yzau+*g9%i!lFFk;zwpB7(fXe&SL%NT z>Qr7i=iA)eyu94pZ|A&vEqB0x+~;zyy`4QfyX5V6*7#q_Za=@%-|yc2dzX3Q=`r}~ zoz*M#yQ4>sL7j>#S5pb~;kmiF-_4$NEjM@Iz}x}f&Y62{KyL1Dv!Z?PtzEw(DrQE6 z_tqC*{_16GgeMc}dA<$S2u~t$s?k7yS_3&=h;oNGxobGq)Jd+!Uq)Qwm5_gWE}Osc zE@?3QLWkeKIf4Y4@DvD8!}p_(lLOb2Ltn2SfMe+KKAf5k8wjigl= zZHC*EF`~_*2~ybK2UyjXF5t>*bGRKPjTaA?x$@w?J(DN5o7bVsl8zs~uUEbK%HXF* z%;s_mxC-4rE~`V)_@dW@XP=FUnc?-8-)!H*|K#Ec5tz5@$RZ&g`FF@+C56yIH&~qc zjX)&L4W475&<#ux^9>xyqueklR#uo5n`|@PkY!u8!dZkLWU|?=SVd0e$ym`WkF}1m zJ8Nn(5hY;A0oGN_eAriph)L%iYaQ=>)bIdMQE0tnU&F^ zOS8NuTI99Q%ylb~PvlBU(pLX+ z*(Cm#Wu^k!e&{3{DD)`A^43MF3gjrPxlB)Xx$AxgZV}{JB%mEA9BBt zYDCZoi11^A^8XUe!jfywbG>V~iNC|jXY%(jKbdc9=rKIG)9;cFdybI9)+ONz9$3Nm z4++QmGor+Ap?D+}7zh3Y)Ct3lo44Rd&X_SdIb+85@K0&fv}t8w(e4Uy?AV+hqeu7X zF>Y3~rcEYfzxv_sqCz;h*nKY`hAVI$hXWZxA>tP@UrN3}@_nh@W}M4mHF?YuU<@n( zCjMEV1L~+gaySQbtUq)>N9|c7J5jbAFZ4O2b zvt(NUxG;>n`3dfpylNhs8NSdC9UZTew9v8!|I2)@8v# z-E(^M=-$2d>p+{=-D@Lc!1lHwuf~nMhL6cCiL(=VfQT3ni`{wd91e{$tU3d6OEFAa zcI<-@6V6SehZY@p{p+8ofY7^qDeBLwe0SI7iUZIgI0J_3On2~|u-@GtBGH?jF@yEa z3?ta7EUg=d!0?@P#yc8|0J)D*Q%RKHu1IFvzj2HZaVGML#^gDZ63ORkz^N33)FAr) zVKXoxk?YyA#fwv#_GuK;HMvb@qbBV}ru2K(YMtY9q%@7}(-v)+k9G8^cm-SM#{LkQ zTvqtY0(V*YLtJ7pO_v7n)9G|#abALoM)*0R>kO+l6|Hp1=`Gn&7ty7su6#fLbnVx? znH!QcDY3TE7-lQv!B!Y**a{BpN1OUXVIy1(f?eReEG+R7)kZ^~mtRnyw_zWO)mU!{ z02_l`Vqy(j+dy|9j9@a|KbXu=_O$Q&pMU;7J7r+xD>Fune0e$)ybyl*;K7TR4jjBZ z@y&U2%gW}?FN0kA7<#?)1HEp&ffM-5isc3}nrt_Kd0U~-fqIKK5EadH!VSb#N;kk4 z5e5K|mTW7sy$ro>H6dTZG}bKBu{;?Ey`EVE`DN_%8Dk#O>kMywkaS+J&+GL&lF*q} zS7>~o_?Vv88$q$3MHXgV4T=1@PwTk{A$6<=A5?KB&^{6B?udvk8kqItq>PMknC-i6G>`SDiC5ck2<5zzT+Sr=ND-s)iniPXI={ z6NZ1in+eu`ykXYEc~ifsv`j*1_ateOJjE+An>~;W|DUEYOPXiqGcxGY=&b`S`}c31 zHfMDA-Fdl(hF5&krC;Ba1f)$LIdOtJQ#x#RpT2*YBHx1A@vyx>9)kS5I|0ZjamvB* z!ah3rFJ6y*{?iOt>v)srpI&8@59?;Af6C=k#&b|NHIODV0ZnG9E z;k;eIl4FHOKHvTR=VR(W@3tAAPjP42h}&T^K998)xc+GDUF|@zPWpRVT{dgD zH{9;>hDU-TTwZUu%@ys4wz}+Aha=kOazsb5zq7634x7S%>`@|1Y|86CZ)Aiw#1|E9 zb4zxFH-wYkAzp{n+wF~x0Y(Tr)_IN@X@OmBJ=~j|`8^DGq|0J>AD{>IPM^8}B@}^I z;LZ0T1b2Yn7iOJkU1MdrfZ;i@`L>bv$+iOfH1D*CDZVMuGh?j`FnAbcq0vUd4cif6 zLg3IimVwUq?3d;5(>E)t-%9-^7p?bg+iv~D32$a)a#|oGUFx6Jug_yyef#SFMrwNZ zq={W7mc2Ql)0Ct;3j#^%?1WPycZRHYK(ZG3Gh8ma!|rrB9Cn+_VF$|`_H40)w;&O` z#EFpf|HIsy2S!n)YvXmQtM{#XOLr%oba%E6A&`&|!kz*o?E8*Df*>F+Yyt{s0F{75 z0WpGzvIq!>xJ4#G5EtA4m$~A02WK3Y8J$689CcvT`p%`Vw#x9J@gK{6S{klW($;!uDXKn}EKVM0~_*}SD@e$2vlK5rUOv0_HT$qysLkk{wtr+S3xSJFy zd6Bg0w5QT^JIp&QJFGk4#ogiDA@6XVFrToTu%57;aGY?SkWaW|gkpQ5$bpiDc65U+ z@$jjPXW_rccCx3DaDN>V?yKH>^E4Z&KJ`x)Psi84pUAowk8Nb1tLYn?|CUI|PmHs^ zgv%22A7hd&sTdP)z2M1|NR||N$}?q8I5Qzjc-|-<+hT3Z^)Wu?mp{+C>%*xsV41YB*Xkg-rj^a+WdrrPXptFZ?M2b@qDZu`NREb!441q^^QFC$ z$=~tT>%yt@j#&whNR`9kR86)qs7B?0et8wL?Ji}QWxM95-i{Mn0;UaI+WPI}-rlbH zwYQUB8!$J5Wjpt4_l0l4Ko~bB|_1}VX|*R za9nh*@7m~c-;&VcsJX%eSGZ@cFw-+LG&gUBu*kC{v@Fkx#cRe@gM#t_150sY0wQ|+ zMgXmFtSvvR z@Ek?Hei1Xs&*g9V`n~*lmX!RQ)-TF)S%v4=9~N%_GD9&JdLx0bR}LihhgJ`*N3DD& z)gy%JS5+ROturg~a&xpU<89Og${cnty-anl+o~-oW!T4#Ce`C~Q-TI>e$j z$zYENQhv%Be`=#AzfrfvQ`^yIwx>s;F|#QfP(taZY&oTaNfs&yKCI~sQZ~+#J&v1X zuuTfTP=P4-K6!PqSrp)EI}N~+i8=G`w%u(<$f3nZkqj2QC2WsaqP9#aH)s!rgOTo$ z?$Kf4VUa=6L78*Ib0d2VdyV@dl&|99=1o7hhWSiSanX~7$R`07*BqN>7C`8jj%oq6bY!N8u3 z^vbKt$M!DkQFC?mq4e4F*WYmw*-&&Q@!TK7EX+SLHC+aw-)K-6DaP{L!rXAKPCK_Q zFSF$TUPfGtGNyWKUV#^EJ0W<)Wx;N7){bC(*dO7Su=L0z@YkX_n z!U0EjcVj5naZQJ#`MO5O^Ttk=hH$Vpr@V7nuE8nfl!c7BPM=`1_sTUnJCvC+`G2 zM4fQs&*f!EAB-gQ!Isw{g!UO`$uXf{3miiLKmI5G?ndZq^Z4^6$)s+Q>(5=ZCebv=MeH(OqrImJU1sJDm}JoEyu7vo$9#FP52=2?q0MBogkM7t77bj7GwytPGtqOV^lYZuHfrWj)<4 zH|DlQBZ0gel+|ZA4K}xXl))XKG#%J0ARt>$VVuG7&=<{)t?3jFpoyB||MQ=}F*@RE zhKW#7%Jbz2%&`4{qIbj#A@s}{D~IoCs8D}j#v&OAgtrjO;sO8hx~y{@8oV!Ov058t=xa2NCK z3)L_F@>lgs=KaLoIe&-xQj`Us`=Xi+i>e>%HoN4HUOD#1KOS3ljOA`nKYgM_eUp_5 zEk6VASzmwsj45X}&6|D=)~A+JL~?Nytxxc!Y;9eii}`wh5R)O77hyTX*K_joC0Bax zGKg#O+!WVZNv3M+g1&?L@b{14@4fZDNJl4^zmdX@awObQlfPP7T4%hhFqfB2)=-PW zIg5Y#3I8nF_`e&zD^3 zIjuW9$GPuMBZ<`d9<3$R2mN9${ytDIrUl4KWLMHg1d7ti145cJfEyCZ^SDv|{VDwW zOQzxb&?|Ya4CGooSB7#(DPN}6)PP)>EmzK!Ij`l)T%L=B+46YZvcqTMO=0lzzlep-wCeQ`)|nw-3|9l2N0+5 zhF;N)5EJ)Iu7Bx&g3WWmU;!nesi9;*2Pi|7oF`W6P!es>>by^miQ9y?+2DAc?)rdW z^3d6Zvcf!*IJF36HJvUj=Zf1#d>F6ORG%rB&|Y2_Y$tp5@4MsnKrlCb!PmiZb+NRP zpR;HMHVP@BM!Q^_(xBgB6~i__y_!rG z!+@aM)1NS-p(%m^23l)tc62jB)sPFDyE1oYF6F`!Odn`nNUHuurnGvLRWxkd_AB|) zZ1`=PH{bSi(-m{3F^-yjtOR|AjSD)~0$~^HrHwn};!k`n11-^GAiapjcfQa%zS_Gq zj_ssfe7;c!x1qI_p>wC&Fp#g`->!$xJz3Z=$EYXK27@;Dco)yn25K|bEAFF-He z(aPgF^1tyM<@h?jMJvy3gR`~rv{s~j;QzYR)~B^|y7n$~wROV%Ef=vPg=jk8knLHt#it=gHD($uAM`pH#lCxqLtw7ir0g0;(gcw+5ygy z?DIUg+At8$@fP~AEw0CE<+VN1_Fcpc>B=$SxbU>TtBu)QK4z!`&ljmo58O!1!-x85 zE#F`)@y*uqo$>q?-KWfk=URE%BR%4M6nP&3uLSMFCK`;8Q0780VhD?}A#QVM`4VG1 zQ!B4a;pK;*e15%GG;leEFyc`YpBKFFiV&VKki+d8y&F9%y(>M67rC5MH9LcW@Hjn) zSn9517(_QP!d$jGAAv_YEJm9j=)_&!b}wuV0k~y~i_eg~f!u{0L-JfPr&-MTQ8wq=LIW{S-W z)hM1NzC+6rzwNe0R;BLzMXtE?)1GC^_Nd1w^|hs?1(I64#W)RnEgR5eBwJw{#;KfP z4us=(n3nfYX11XWbNL9}B2ea^yiCZHk{&Mu4NMRx8TlF2(vhE0T0Ov_f**$4KwG{? znSuHrY45kBx3sj@lU(LU`WBz>c9*orf!vNnJ=Es$+TOpUJxOK2E3;V4(Z7#2Kio2t zuUE7O>+%6SxAMLJa0^x>*5y$C9P5(R8AoDopd9vcKDUi~o&|K1AorAeb`t8#jpYU$ zh%}e+JbT>#iD9xpu}TfX36PnLg9iTUP-nIvc z+fyjX9u=TXZ>qC&-%(qI4x*+J@Uc^n*2iSbK9zY%9j|+u+ARzdyK=1o?G{XmE?AK$ zL%5@2Wqhw_a|s^?=F-IXmNo~-=cl_P#)aP+JqGrl%gdlW8G7JkqRfZ-G+kE3ciEqe-nT7*srGPx0;myf0(8(RjFz0%jWNqwjXW& z6Q3{aRYR3uqU+f2HUMAULTz=ZRa4JmHb_QRNT?>N^)Ct0=}v@cpeOR)XizYedujRz3}OfDWo zta#)&3hyFmnPtBHQ~L$GnVN=c6@)Ju_Ikr@L*HyzKKNCDZ|s{q_Z|SvZksswp7^-J z@5I-K^eSHmG)S1Y5pDCP-Q{nDp1!275i>gqB``bXSQK0x;Pqf10&kV?Ll8bMCzhMlrCVb9mvKzc0Rcad&# z4_X1;B@Nf-j+)yoGbSk;|x2Y#a(1#M{$o@4u;z*9Q^15<(`lJ(%JSgy7!Q zhm3tVLl8$fHeyUC!Pnb##)W%@Em)WGlu;y5=~YI`wkH@WCP%r^8n^r|WpG-%gUoA8 zpoBTVsH}}EMzaBOExe1+SjnGxILoI)70`1d3*7WPAzNDUMn)m+ns_m0^ zq6;LGpeJFBu-K8IZTASefX`TCkZS@+PC4d7B&smn<2R*LM6|m;smlbGfPgaC?2GEF zqVGgGphTh>WnD_!j@)=F{VCGS(W9PIzrHRvH;&9QY4YNiX3PLK%fJt+sbJiQ?j=x6nM1zV)$oR z2Y$kvzk>- zW=^;v=&9{&0F8DhvlB3lLpr(5quRSe{X5fj3h~z59#|I}&DiZvDwAFRd({ zU%I38ozizpFO(X&QQcT>DmT+D+Az;J&os}hPcoA0lR=$epmA`|p=P+Dlo=r>VHihv zC6HYAkY!vqkQ>G4zHtqV;yb?|HQ@KP96ID5weR&E{?!H;&3}F>jw~YHzxCO}kCZ0x zpKiMGrW+GzBJ*yze!luiO#*EsAveax zlFa3gR(`dbK^PnKTo>Ta@kU%OjpcF)<+xnB4RVR@7nQhFYxfKK7Vb5WMR*6cp>>ch za=pv%;T8_3U+`cRqb`njdr4cn@NaOujik1YkGEAT&us_NX1+gAUa;0n5nsD@@}L>r zu{EfT+WY)ol|y@j-oK<2eH-^ctRc<*0+y1GBbbqZS8%?;o}nQ2EQ!V@-w~<%v;EUWg|&*1qKFhdl__EU}4bnKhyIG z+H(yfmybJ2^6xLgxXbm-ZsvXhj6W1oZTwL}R1K@q2E2{3QLzl17dW#vc(r>u&iJ2k z#uMhQQ>Z}vqqPnchdL)VJWRI=5cqM1g0qoMS)|H+LANK^PLAcQY$H7>(+LnDVK@@Fn!&ksynZcj zG=_9rx>4c(I2Z^4g5=~9BFLywHTZ{vf_#1N*Xv@jZ6ing7k=WvAXp!of1KZ?$TRLS zke?jm9X1DITo#+dfrKp9Y^3~7CEUU9R1;Aa_byXPZv37TuTQi4eap`Ys?S>wJP$kS zqr0+>&Wgl&&g<0fSHd0qex=oE(20&q>(p#3$!&z(`^9;owNbONB)3r(Oo2=5n}>CS zw!x;b9qdlmVJx(FPvJS*fc?CE#Yxg{6rU31LqK~j9+x2FyrJ>J%0(UVcc;bAo2U4B zgF2`@?2N!*ZvEE70#+oI$G-TA??03y`;3VFgXdR4>Dp(!8TIGte`G5#AKm#F`$W*5 z$77{W*Ao=;)qBk619voq*v^;6~lST90Xzx?}2i}97C?=s6)T@1uWHH`rmBmccBK1zE zV5KQ+!w`g%L2+AaEL)g(K!1!`WD^ilhq|!+&NOLafONblH<<9`BxJQ4fh@h1V*nn0 zYDO$q!~c6Quib3u6%pt>gq!KaUHmE~M{1P4w#G=P*4vQTF6Tf&c5F*#$NqvlFd#o- zD9AJAWW_2v(8pjdDTcX(>?J?YCP$2qhNj6nQ))IoiCtb&T!y?{QZoH1F4>46a3pSX zOK9ATqWf~p*!%7qJ4X8zxSEqDEy=S^oo0pL|kDd1Uba8>f$pKo^N9 zi~Z|2$$jozvi-&1Ao$T2RbJPr;<-n)wMKVEa1*%=x_x-ihHaVxJ9$?noQACatVY>Z zD>b-N4tTb>^ZI-JZqoocoMQ4+#HdH`sGa0fbG~g}t}qW#U(PS4YtdzMpc~$Ny|^%W znsi4ln*oD&A8UFsX^!ZYsPzGM3cpaI*!)(c=E@!QR!?T<cCuk_L3#ptt8PkiV z@hcrRya(-yaD5&cE-?(o|6njKn)3~aoY)$5nfkNo6BB66T8QdNf6aga>U4Fh z`k*>};K27Pr$KX#u{_poS|wx-?mLFb#+mSlT%}}2>moV7;GN2efX^V!#kr^84{0hs zk2nL(c}pRGKYa@eFBqs0vP2g=N)XoC6$h}5{{acZSezP^#BY#MRc*K1WZXWZIVihDI^XxBe2;z zDz+4p)w1%0v1t!)4ofQjAyb&2to}Fnna+6vAbBBfm?e_7^`^gKm}~q-*0t`sc!!$L&WXs z57a?4@0n^pn@UMc1QFUzP=KtU%Vf-%2 zN%6s;6D!4GTiQ7XxF{Tn8Pv(5t_u!gN>IZ7LfG8(532({xni>DOj%&%b}=B^v6Cn0B#k+O@j}-9JjD{!P8b ze-qk%b1JcU9Td|KvZDtvW{b&Y13Q;TNQLCdWnRIw%XnB4>b(9s7k+(0s}J#ZS=07@)ZLNrr*;L@6p5a511`)MQRXC`&=;hETRx+JGpFZ`U`?pT~^% z0orao=NW&=V+xYqmH@-1;?(5Uk zuhe%R)#XGVU-8WEBa!;t?B$E*FWpyn=Y|K0JH3*V^Zh3qPomxA!vMw%@vQVw!Y-5B zUT1r%jpNSkG6_aooal}?{Im=b4jDna7=e-JWhB;I#(CF9pqAjiOYo?10=ykzh@|bz6qKEphh0D>vJ~aII}57 zp48y60X0TRv}E~011UlKh>|`M7~q#+WVgX0(*+cd-29Ny>6n2+U{9&(| z)Y1ASSObWX1qZ7=Hqy=9QqXS;hO={#H$>}n>dEJ1lc1AqJbg&92z6=4T{-UTRk`Q} zt^rWn!hTa4$)+NRdzZ`YHf80wva^xCD4*{Mf{~s_JXl^PJTS@Uk7T*o{cQLl4ay(y`y1=A(a9nx$=Fc+~MIgQ+h>v z+6mAJPo6nTzDFf!sximBxk8Q0mzJxGxB@j1b5=vf7FUQI$pBxXj>t&J#4klTiN2Jg z2QIJBo)H+Tra;0l69*sn5mKpsXx-QegL~il>5cQ$Pd}-6{^2A%@}bvlzvkM9{y4uf zdVl(cP3rj{)xW&)HZxrUQ2v$r{pQ(p25}xe@ii{1J1R0b5)H5;8G*3}7rbO^V^X3` zb^atb-oQ&lI|n|P1Z1o0%~Ln6DIfOvTOds8@bUu(e_#$?H}n*7G_SkA;u5W3MFFD= zP_sf76R*7INy@53)BsG7ctJtb0Q3U#*`Dk91306uK*7jkWhg!A%~K~%;6FH`QZ&Pq z)))Q1AZz`?Ea>YYW`wKSY;}el5&=g;M7g>lTNzFnCCBPAnN2{FG@D#RWF&JGNvlcL zIc$DWU+3B6c+zI3NrIH%o`_cTi$tOgN4vo7jxMws^C6~)@$0Nl|F46Caw~G0KZ%nd zo)T{uw_xqKanitByNt|g{*Ok6h_Z*hc8)gR+>!*s-nxGBF(y`_STVwTi1EOZ>`6cjib=Er#SnB> z9FhTvZh(W-=sM@aMX2Gjw=R~K8lHZ-;dj4-hp_8L!eZKp>M`c9wjg$i>>E234=U6% z2OLs10|<^>HiG~Y>d9wTqN=ke<&#ja{N3sas-J8wic>3YFbLr0+G0mw$PZcyWsy>B z(H#&EQ0pX{(JVP#g2TnoB0=vGaZ_|U7*I?BrD?Qb5xR^nyTMMf@I2U-^yf|ZSC1bd z3-JuU^+ZCZqp4>JYl~ z)Z_@%MRnP=dG2)6sz~7vJ$u4qOjMb);=1LKuLL5Nu#-8$Uh7Zfq62~*2f=|wX&(X6 zS5}^mbpsUr>2BSYE*~@I^l1X4A3yH>6-$;c`%Fr^_}$Uc;V3jD^`$-q!e3vevR%w^ScWH77TrJ_emkHWStHaifs4qz?0i!FDl{AxcF@!At zgBIVeCA%Y#{r`yq({l+0W}8~mN`?8>=L0xDY%3pTO+vSUT`%qvl?^(I9RWsBT&J~S z_XoibWDUweLy6Oa6n0M9jQa^Kxs*Dyr_T9Astq@PT>1GO6nX+K_|RYzsw>MBj8WXE zQ{laGdln(3tve_li7@k3tdAP;xl=8IO?SwlHjg)5Ja_KjCh==ZV*|b84zOl|GgJ4f z`o$}+uu$_dwFO{iy%^a@T7=oqYtj*mfE>sl$hLb%zngW&^Ci%4-;@3h8|N8mB2X9L z%>?i|=l(Rj16k~a=eI-&NpRf_fTw~q zN3v4V$>%b}`&H}*l}(VLbNmKV=E^nbZ(4Rt>l3Bz&7aOB+_g;SB z;`;Xz9H41GsNXkr;4GI!?bk3{3Ls__?L;h|eiD3>Dab9c$$7B=Zqab3)$wo+4D?-KFmG8dUPUC=tT7W&Do>2tBT`w$J5cIDh3Ob(A#sSL zvm^`KrKYu`k3OgV^}3;L7Pd zCZq|F{>Uo#HU$BZLSYGj3fLGF4TuPpDf!3o%_L8k2*T)`po5^yn=+r26(Kbn*u=2X zVGBfzXTD&sG5@L0mT#*$_Qaq6tu}w4{`J01AAYuMU(X(sCab%?(C-=gg}ULz4uSBB z^J~|?TRDF|$VJ-+!^I^ZE6R=3rJ?f2`42TsOok}JV0vJm4 zNeO18gPqbNtck75_O9`)lN*+(3&*2Fjet~ zGD7L0P{(jVMnQT(s7JU*MvwF!A?pG%#d0JF8o{J%JBP0#XplIH)6Svwv)=x6E4Uc0 ztzA9+wOKd3GWnx_?LAq3|26B@P2N9TD$mF`^vLSEY-i5MA)_XhmcEdcb!7Xx2lE}# zLCV;%c@(A%*-X9y#M|PW=}PiL{T_Gf53x^EAd|Z&wsZ#qL%hu7w~T-cE^b1MD@X8B zoZfJaU`?x$w?w2G!*LSO*rJfp(8*hse(*FzN;^j(=KLi-vMrHgr-UsXHUoT8hhI>? zXNAv=E_I(!*O*+wJG>Tin z$Ut%nkA+Et#_ot}AOldwI=jmdN`b&DpOO1PHO^>KAi4&iBotZ!Sh?!n{TAZj4+@pTp8(9AO zXP%j^)}Q)L{e)#+IK_ree}>xnX3L+sT_#QFfI&r!ph*|B1wuZF=dPr|~0cEDItN*JGTxkmAGZjf>E6Y({)VMd>up51ltizn1~hJ7`CHZJw| z&}aAEIN>U$HSE=sqT%Lc%%Qu`B)|Ls&3O}i5f}KKd#2*_guFHhoIapzH7mwIoU-*~ zw?Z89ij^`nVdAoypTwmN2mcwe2?cH75SFaqo(2Ca?yX>r(eCA%Xr`MhL0M>U7C^g$ zkTEitLkNkNU$(i6HCOtun=i+u-g&zD0+F^3pZqAU+Xq2~><9##Pmm#5=V;!>{<9Xh z?K^M@=Q0O*Yx<8UHj&L${BDOYEgUfU!mS(zVJU2l{7*OxU{v54;OJy`jW!{y(I$i) zu5=-+(I()xOKB4#8f`)(4YY;UWB!On?oLjc{}C0!JqebBOBoKX%x>^YUV}cr!f5d8 zTm~A8!E#d@cY(%RK%4~?pcT&fA8|8WPG`V9&wz`MTT%?hU(g$*`idsj+|l^VsBYcb zc`Zp)2jYvJOR7$+S-7zK*nDpg`+~<&K#y|?FDj)7wt>?DQMR(tWyP;9{IRdzUMD%+ z1c+p;GusS0r{s`K4%}zJ)@wqf+@);21l~RgsK_KPVFG|&M7AmHC4Llg)gfV7(f5Qc z6Te`Eat>c>zzPmuYgg+)ae#H8Y}OmCvfxQErpmIX&{JycCYO5#7zfKEJmZX$T(gYV z$@4r*jkn0vpt?%p@a5o+41$Dn`Kt3-P+g>sB}QM?sJ;)7={q>Duj<;^{O!SQV&+En zCyWD+8{H;6uO%qpu7W2(#XPKynxlm}R3=XRyIQfw5rP7_?DB@G*!} zLJ(B_Bv3-ci90mQ3(4_c9f~%N2&>*IJ3Rqon%rKFc)DN!iaZK&M1ajkG53=v7$?b< zo+{#qFjkqW%-3KjR(hWF#5p2#$gI%@BZ~$DToD&v1_kyj#23NZpJgMNos&kW=QgSv zHt%OsHnMJfkMC@GN%}X|L?#$R9ae|kWRc*5OtIKAvbaO4+exVF_2rHc4sohx|L|DM zb+Xf1XJ3^S-j#7!s7tNQLMJipFb2Y|TclWIqRO_qoU)T_HuOJm4lQL)Q7>DqKDmb# z7Z+h_!k`PlOPWF-BVCExrs0!=6viLK{V&d#Ic4hJ!)#SklO(9u&Ru!U_)&mM{%YxM zx38I7ef#x8hHO|fXz*6{w}ac%l&<+V&bj;CvRggwoL4#pgLD>5LI3J`|E4L6vU2`Ln#hZL5e{ztXex?t`7#`V{&_LU3Tv7IXC8aWq;dtP)*r7c+i>+LnxgL{h6Z8}>X>Teh9(EZaSg9Kg=FUv7xWA4ff z{aJ-!ESmztBs;Wwv%zOfN%f_=C4dfHIs$}^t&I`Z^NQ7Dhm9CDVdVJfYJ@$&LVs8Ph=dt@UwwqlQ;R-RzxDYFo{iWYEck6{&NVB< zuABF(Grv^NcM42jkFm#rE)B+6o(%{VOe}hi+R+J88c4g>z-19`gCAjAHL`W$OHD&r z_eJVs?6b<8*qE_vDzBS+%d)c*zhd6Z@ZdS;iw**}URk{H#(_fzEgdo>8tr$cQ}I_X zPZ>R^Y9rh!_~uls-~V9!28B|^k)|_YXPH1WA2e3L^mP^!3GJHHetSwCkQ)tkb}K># z0CxsGM?Q0wG8Q6aDT31&;j1~>{uJ5Cut?ztWw|;_2@`@11-IJoPsg`Q&%X8hPcB)5sjysGLz2mDv6)g$72J&+Z;n%} z5mE!k(~LC^TaD#dn${pNqn|H=F*K=3CB+#`YZ5m7oP%$(2O9UPJ9NS39iLqH#XjC5 z^{eO4J~kuKp4=H{G^4=*loT?HR#I!suG!6Qkn6`8V9O zPW@)ws8K@)jU7Jn*%{qf_wg_G7Qg)R)L(Ufxh-SqqJu|od)V#DI+PbkS=i^UYlbdl z&OOYlp5KG+!=97ixOBjiqQDyIGT9No2(t}$qZDfsV(aUx(VJ^^#{_mfKnNl~oZ$z- z5x?G9gD6L%B!45wXC~>%cco>MK={dwtDsm-36U)?h zL2lW1bf@_X9#kj5iN5haclGV_9gPF>Ti9l-6P=I?FXI-(W>b=%M#~E0Iobd9ihiWN zN}t5b`sS%q`uG36irDHH0#sA$|tPmTvG574slwsL)t`^sg2{U5b6f7M)_1>Mr{K zl=d5|gvV#g{tE}23&gVrFYHg;(b@exmPfijerLD5OSyxrT>mt+6IPJ;bMsRai^~+W zw(U7$T}+#_=h6}We1KM7on^?T{t6u=7>ZDjmdi$YLVx5rWy7Rvlb$25QT$GO&X(}! z$eAM>0_yo*t4CkSpJU(h=i?18WzLk z3{U&?T0gXSYx+L4u=xAd`as0WnAXZf9i|dF*FUa^@&vk~g;Y0xSIb8dma`uCn-|)? zX_|~WQBpSeCw56LpQ(KdeVEwtg8D{l{cYuWu54@lZRMx7oJ=ZT)ms0gB12Mp+R9Ig z*H2?adH4nq$swqh&#j3t1~9j1A2LVyb3UiWPI!)3Rp{6Ygwd?W70ORYE^qh&<*%ah z{s}Fc)t6A-g!u7+#?Dx43&amuZ;Z>@ME%Bj`tRvE`>Lf0&#|W{{=f7z+-Ru{ANY}$Ry zIPa1$jDF3{>Jgny{a|9tm~reuq)pw#9voPa9EK5lZsMI3<_nojm;pcIu4)xJ3lkNG zGqX5Hqh1db^e@%on~Eu>PEgV!E=N|5t(`frCKzh;=^Bd*8%n^}?mM2_uJAHuc0!Q^ zB1M;#U3PZ4oSofEXFQJ5R*rU@HKY&x22;D|+1J9|t6S;XC;ME@cZ%CmuE^Sc)5MCY zN-gJYuk?rd514itcRS{t{9?diznd?p)a zAnt$N;AX4@9G-lQzy_+H%X6_~(rzA`&vU3-zJ{)|o!5=rX_7~}RMeec&tx0V$%*3` zu$C85O&rgFZ4_3rm2`0y3{$Cn$b&#E8hl?5v(7v}qL_aZxMmV~tm(P1l0P5KpY!r< z`G#%-JJeP_kz0tTPsH2K?=JDS^SlCfD=$A0I&vXoKKh!5{U(mp$`ePtIFrr-NWC1A zK0K$~TCaJuV0=q{Q1-?oG~Qpr(SZ#X!FDKYk_P*`PZ1Iwz)euR~tfF zGLPFjNdWFq&E4#$SQ+{e%aa@sc%Jnpp+EHQ_2B(|d!L$FrT#_zX7)@VLEy~YF3!Ao ze#gk+Y{ZZ~;*RFYe_DCVEla+}jghX1*jscaijWtr`c8=Sosg)7jkM`Ib)@gC`oHKq z8ml)qYiRlo_Y4C1fAgtRT{lhm?6omtn>LBNdi7lO&C%`6M~&5u11FT;0wjns^=)>T z*)|NQP+QO}j3cex5+mh-=IAr{+Kr#FSi3U~Gcmq6TOn8bu|P{39{3_WhXMxqnPr&5 zZbLmJhtC=5`D5C1{dxXeldF9GP?F{^Nv;}ZpgiO$>R-aHZD~e591k|07o+m>+ju)U z<`*x26y-7BA-0rwYm18SLf*HQ@6uX64;bRT zTgy}a)61l@w3f&C027+(&x_Z;m)FnFC&&V-|7Z(IgMo?hM0u)TE1w6P7^+_@uhoBm z*U!thV6?2T<8v#oADXXjaD04nc>8f;qy4nr#`5~L@_EuqUO#44H!WU&2VTEcUekqW{7EmN z_WOAKnhvDR?^)jdiM)QTJdM9rJ`d?doW05%xV!1SYw> z4utYj7;xMR=VYa2y>+FXJL+&-DTS?>xGEf?uAFtA*VrPce|zu^)~RvIZSyM^J^JsS zv*z^5DjPB|x8a}Py?w{&75?rwiM#u$f0+OF&b3vUJIiVxe0apQca{u%d~Rx=8S6)v zjW5ZxHN3EA{E?MCXDzrHZ5g1B;66{BBP>IQ59x8+mbg2RHv~UYLvRO21TbgK5Fe|U z-#gm(hOG}jTQ_+3kB`jATQapr`A2`s>@%UfL%37FK3VT9kpnK(Z$ zRa0JIdp^z=Nd9Q&k}k^gE6I2REFeAmA7TOV`yB8JzQ?_*qvF;<=`yc!KV|ZS+*U)# z)CYv|JT$OTFeN|>$n*-O49P#RMG&wqw6NaHPY?xJ(#UNO5;DQ4GY^0M^_#lt58sbN z64b0=1WEAo$7mnrq0cv51>czw`yb<+0}nP#8<|GTEsv8o7_+*R<(86-3kEt_%T4pU zN(9-T5-IBy|Cx$~);*8ZR#98{VaIGNtBsQbi8D^9Phu3mY1#iWVd8=Br9 zGnQqK#Xst~v8(k@c3_c)x78EQf!+IW?wQRKq(pf)C8&whn*O5Br35zi0DdJs4|_ZZ zYtjbf`3XuWTkw|P80yvE63XkF9tcId_K-tmeWg%g|DMof;Y4{R(t}OK@5r~Kz$~1f z?(7l@gzstZ5lY|G(`YKFMc@{!muJqNArmItld$DzUBdd(kt145$J3lc6u1Jag1D`L zyZ52_!Ba#Qt*CgqVea+U&t>zkzy9nGs}EN8IJ3X9YUqutzj$E%!L5fXtF}MXeDtC1 zRns4Tyx+LhH-ql;)nUWb?}rT=HhfLZHn5zp7}0-VhdzDQKGJ@eY37{iM^`=*$(%7` z!^bz{pN}`pn2{N-m^5+q7$^>WETjc`C$LO9BV#Y6OMi zC^;iA$F{!4I=#(V=UU~hvvHpU;>3B-hL^Y>oGy>o1IsN(Y@I|d36I4QaJ2K}I=VUr zdImTKI?Z~o)hYN>ys1vvU+6FOc5{~d2Y3fNNBGBiCpl+%uXE1xFZJHytoHBllS@Jm zk0Ix7B6m8BgWU2M)rTJ$xR4`nT>Me@RMTv!u4$z1b+7uTkvZIzzD?S6aNEUsT;5KE zt%W$LeZnCHjy|8=>20Z%>e+PU6;BrzuT#w-QZ_*2J|Gq|hPI}E^e*bQu z^BMQ=Mg0DKdHE^VC6zaPjqgI=zp-0snn_lx6-YWJdPEf^j6_wbJ>+}$!?H^l&AD_D(xO^TPfO4!@K z6xE$r!{q{bvc3p)9>v)(9QSJ@opHZ%GL$7n2;-z3TUupd+ zL%*iO)@wvG*RQofi(=vSM)qFvm%BviDC$&G(?~!Gzxbs1PoN{HFK>W)LH9&^!6X{Z#6UEvVUyUqBivCaF0=?Am=yMgFkhoZN zv6jc#X=m-{##)@UX3mh@NAYy(pMwxUeVX0WKHwO@+|mAk>_;?8Pgqnn!7b;R8Z8~A z#+3A0m!-kJC5QvR_y=I^$p}2+XK)u8C$Og&N3siNwjhf*r+rzaiQ`(}C$x67u|hh7 z_wUCE-1y_d#)Ute!A?2z1Ah9EpVa!PW9W27b~#RJ@n<@O|H>Zt>mp`OWrvirVOS*Iqq%Fy39AzjYiihq&_{)vo~mhZ_-N*lDc9 z!~ABVFmkdiV=N22(q`n_fYC@C{N)-peHQ%FD?niM!CS=@Jw}VnTPSW+zfEEDjIg(DIlyOL}#`cGirJotl0yTh}sS_05ZB&0V_W zPPP8!ZsJGm=G862+O-uEnf`f@6U}+&-E4Q-Et8f!-#*$j%WiwPu(0yIf!W!wGoNls z;r55skGLU56wEEVrK!>}vB40ruy#yl*S++{xRbydg5ZFzth#*OOO zVN&IiV4(RuqhZFgBZrR|K5X=usTVevv2O3l_dLo5qP~{pfm}wRJ7Dy_?T8gLtO-*@@!o z;^>2YC#hCO=MvgKPnD%0_73tdD3!mEape-rJ4MTE)N;APiA*jdeu60yDmgD1cb(IK z>nz13h>;vR^wYOz)ejxMfAYGk`giJdfB9=8$1I<4=Z?+!Lt|qX4w&>!Mz-vle#5L8 zGp4V`!ix>b%gb?Q4<54mkwY07hx79C^T#SV*-=NqkfH0gU#)m{+@8IySMJsS%mDnC zJL`qg)U*y*knqK!-6fEl0bqH+>zd+ctzb21S$o9F^T>qe;Zr&>6Fz>!X8!eFlc$k_ zAXV*e`b6%e{yScK`F5KQRyx!>67xy?D*;4hy4)U{RdNb&I|Wl%NOFSy9C>!|HW4K^ zR358Pr+3!L);jkp5%GrfcSQ`49&xf2WQ|cSYY#9v0~SHt6g%~gd$w)6NA3UQh^>#S zKY*P4Uzn+VI$=}I+70;yM=H+!`NO|zZP0DNoCJh2MYfm>PRRzAAGasPB-r9jh_l?n z72C-Cwl(&(rbcIjA8h~$1~r1Sy(B!vm`#3NHK7R4GJI}s+ zitXD}b5EavK41GI6*t}dhxfl!5lBYo2CZ$%8z(NBJYkBG>T}u*{`4%p;0~plgOQG+ zWEVoYIVln{WjWLcFk&%08bpWU%VTvp5~$SE5o%^fgoD1$@kACP0dN8OmLTHEXNR;@ zVlQBt%TD8{!HU*?$U&w7-GAtg&0!_L)3=#jt?vCz4385h#5dpEc&cW7?Ooz5wfDS* z3+C^8@#%HDy^+&f-}rAff1@VfKG(mEzIkB*tyG*oT?px`T`|iZWZA+58o%+H3#j%L6rO3`A4ND(TgkWRYU9SMgwgm;8>bU>4> zlspw$b_ls8^ieJ5xb&IR;-63N-3x>^%7*yUzJ0nw&EdnZynGne(g(!3%@6E(Ks~2^ z!17u41AF$|cHzDEE+q6=*oO@|*dZ}jZ?^Q6)*CkC4(~@iD$WP;80a8S=zn8Y8PKHQ zn07HRH|rV>_L+F!7G_b8HHsaZxAr;M=PB{9+OzRv=Gg*j)6Fl$5#(NY0r}qVi|Ngu zi?6ezDv~rL+==@Ft2zVrwOpYC`58%I#B=~})1~l;3!aK(%<|wd&kymJmC*fF?|~dP z7}Ho*itcrBj6(|V9_xj~CMjpH|8hV(uYwFr*z`-fq3h!t>R^v_C z*65f#?;R@`O(x5B_4_W9)h(gUok3?3eVLj4>D!qF$?^Tnhd#|LzVB5wSUmiQI)gb5 z(fZ}NN<8P$BTQ1l(5;XkUgvgtaa(&zUgZ^BcH~xeW3G@*mfDOQh!e()pD#ubG2+bN zT_$>IlG-6qh#tL(4Z3o%_Uw zW|%Xv{j9)f4;gB z%HTQRFylf^&BAX*id7CO!I8nL;QXMb6k-9iDTZ3xd|6NsAJtUE=bme50FJ9^kE&&4 zu#fiW4t-5~V-ft!PwD>w`IC*iezwkLH`JM*%E_z)%6c84tZ!mZ=9mp8F^ugm27?}% za!Af%<;#d8C5L=GeMFAury?FA5i9JXRJ6FWE``Z%WJYn67EyZkOJX#9yKH7}X?%c#uZ4 zy4yILM7&qY5EOa^;6UAFy0fuj_R2y95k{I{w8Ej?J9Tu3{$qd)4%r z2QSt>I9=DP4TwVH8XOC`~>jwHI4?IDR4k9nvdxU zzo2c5y>jyGnWFlUsXJ0R*bSZ6JYokXOsG9!Ks%68Q_Oh0@z9~h?nm$PbPTcZpn~m> ziF5X-J=w`U?B9oH&Cu(QyIpVZqP_f6{G4>*G!b+q{wPEq#Ym!JSY{yU{nE!h%(y1ImdqS@Vh_IyUNL9oJq`W)A7Aj$O(3}GomYdN(0 z(h^;XC+fkkz9<5XlHzmUQa`xx!Yd7IXu~Uw->DzI^xrqeqjTB!8`xWF3H`r8y};`y z8-EqX&H}IeGm7jNbe33HXYvLt$hfT_uY57t@OWBJC&ecm@Y@`QMpr{_WKH;Js4=V7 zc8nkeh-#Te6QSitf?=!Q>=4}XfN7;uc}97-JW?JVkuf4XA~GUcnNb<8j8sPFWy}lD zi_D8wXAsv*b#z0}_%x5_g|q$l1Sky)9Zc)K#w2VFr^4k$&#$PLe0 z8c$aIK#g;Fi|HB}RzpMiv9*UzH(ylM$F@`*8GG#ulmB@^Y#-;o8Y)&FoHhNW-EF*B zT=&uJos%&}#Fx@l2@+Qdai-Kd8rU&x21H;Da6xoXf*%qnpc#-wT+5j|QkAhXV`l~j ztV!hFiu^20NtPA5-3>`-HO;Rlq=fFs!HYYuNFhOM<0$6tQMAjdwM*A%bDA3izFKEP z+OeSEb`JpUt|_&GCmup2X>AusT$0+Q+3hK9tV?npA0cIx=)O#}r1>5aWw@(zQPu!> zHw`fd&~8ZxSqHIF+py29{LBa^wJR7skgzmDYvl1r#`aV)RIx-?b~+dH+H<*VbL4^Sy_h?&{8z73tAQt{~9993X!)7H~?cof!kwrdxU|RWWD%;AiLB@^wYKriaFKvn(^fVTX_H#qn$HEt8Bff=qHq8-!@=u@ z{)&WngWL8luKpDv_NXWZ5onll7syLpO%1NQv3ptnbyc_y{QL+ z-bP#S`EaAuV5`mI;{6L5Yfe)!ik0xXqg`CjZ88N?zr=_ru*w2-md;|{kt=+ znK@(b?`F-mH9gZHZgfnYvTg0?G2*nJ@7uI%H*lYR+P=LY|8VEj)EP5h*vKB4Fk$lK zq&`vxULPeJnu>XiX|0|e@C6#(zUTFgwgz`?Nc5$pnVds>ZWHT|q^v~O<2?kI8i*sY zsERzLQGW9C$ZD>kB7wXN5PgUvU!WUqd+T@FRRs&XoBCnXXX<|%#Jy{AK@o)nrnLG7 zj`nZV<1FhWF)-4;UV-?xJF%}V@S81F zNg`kmVOvm~g$FvuGE*Bf8%oWMuG&({)1&{+o;zP3UX!tw!mbso-e>rt&-lAo8pW4fIG$wx>C=aF0n4$U{_Mi5caFNRAY2;L-4p3Ngg4?UI{rLIYtN^ zjJn~oL}qE;k`Wobc0a2M*WKUr#p)>`QT3z^{rwHoXVR^W*|uk=oo+xfeS77}38O!_ z`<>oh)$RSWCW{-ZmZ;zC-nD7=cJ_QMYbJP@Q|Z>WJ*(Z~`;lG0y=w9s5Wl#`-Ua#l zhO`10n((?@^5-*LKI88V`O*rZw{V>zD_x3AJqt739X)PcFlH^+V9WplK;zd*Ny%Lk zTbtRK-%uVn5G=Q@v8;7A8fwdF=;#hd#=UR@HAujvG69z_@W!w~QM*eBiqK zAG*2URTcf04j46Z`ZWiKo?KArJl{HS>Zgi0C2-#jPaHug*5k-J=-PGi#I7Y<3p!LN z9Xs0X>5l~h!~4!%lNh>vxQfTu|En0ARGb-L8t}Wro!mBeuH-J@_HHC*!%0bSnT=@; zMXm$xB2#0#T3GLC8PQ-oljX*;(R|R!e&?i)#<=AOi$og|+7?Kp_{YVn88hbm*Cjoh zb8^ALo;~ODt^?iTgDqQh=Wbf~*1Pj=zN9ldhmW{ts?sOGdkfve0ZZ#6njb_AL6h*{ zbOYD!U2Hz^m^mmxi?-vckb`%XX@8Hmh94fhXLP)oHZBOsI++DxRpEJdfkDCSf6V@T;2?G8}ytxuTHIe zaR%vbBUU`ZT(!*?va_`%%et499qirv^S9pm+(~T{g(}1^&E)GhOSo0Br zB7gFnz+eZbXOL6R>abl%%s&ehBmM*VfOrrEyj2OrwaanY#A{gJ7uCwSxji1hKRt5i zs+BLYzWu_XP+s@$d7)64eI?$~bnfXfD`%`)y?WJ*m1CaPW&eC{TA)M!K{IE}m^r9_ zhXC%S)Mw1c|E|xq|KIhw-N)*}0R{c3&;1Jqs0%-4?a=2~xNFyNEEE=h&o(sw?V6#t z^j^Jc)#~22482B7X$qsyQKh(|qF9M)eP+N_A1_Vh^V|)oYv3z$Fhh;QRcm3#Y{$KJ zv&lMKgx3}_itdH9{9qY|nTAg1`YPW$KG+;QTt$Um!Lgb6YRo-M3}sI=H1vCV@k?*8 zqvF2i={t73ut!|}pP$6>vu5Dpu5n7ugltN~u8ni0ahkM{&F4PgjB}+q-7>h+tOP*7 z0TB2Vt0(xkU?q&VeP10@hG#lRzkT%BhkFCuN(UBxSx zpMIXRo7E`B-G)qliDXk!&5;L~<6Iy*cI^sY+9%aiR@Q%AS&6bDcqXF$#E&s9ztAaQ zO*I#pTnHYB@D;_SI4;yfKI(L#{#@ID%k32XvOP(6+#Y96Ivyo#j(}4VjleR-w#Tmw*sr-Q9g+D1kt^!1S9b*O z5r^6BwZBDQUemul(QHQb<3!+6U>!07daDjBkD@K=&tX#n7Z*lQ^Ja?z&=m_wOrLYw z+!S+#E$zIdZNZT(I`^NiFJDkmcS@HLe(nGz56?}3bFFUDFv~^ zQf`V}8OzgX^=6$V#u8(fVO@hr3$L53B}S9}(#-9j z-8}5oTV6!&^ynw{vc18ZtE!~Q?85b}W=^~7!=GIdNRQ4&=JcBW{T^rksz*4VI$)PJ zPtP}esgIK_pK-~<+4Ja9V;T?Rnm84MagE3oi5fCdM`ivbW`g25VDk|6unr^mVs zHNa;@&`J{|yg)=&Mq$RBjExyP@c&50#~BS7Mm8puZ)FW1kE@|PUjcuG(DAgLo+j<> zF`@YOXI`wHw{XJ^H&oACeD~wk)tyI;By_xYmv-*-+h-sy6LwYv-a7F(Qh?`Tri0^Z#c^fBqtlYCfiAkcKA)TsFaJ zk1*&9eTJCA7O95x0*JjJQ1#p@gZKu}(-Lc}KF*yQBj{SjCPkLCyiTghs7Z?jJZ2+a zA$L$?rLqgN=VWh$P`o4iNcP9s4cW#q+!%@7N692%EkwG?q%^}pINq4-3vvq$(J)+c zjA7{>uLiK;-B`eC0yZ38B$aVw!zSg&9;qP4Aa2v}4Z$Lc8}SVhk0sB5j2SBo3E08O z2RVFJ+hCK&;MO=QdEbbo25effQqF+gHH=qEBN7@g0wLK=7|8_nq6u`xac{(tui+}k zy~^7ta+;Xg3@!j@uDR-KIqrOJ?~xbmvtgw%@M&{ve zv%cCbK#6d#k1@$E=Mb}mps}lfkEBF6et?aDB069ul0Z3<+};Ro{?&8|aqj))E^&dY z{J!#C!L_?KU1Ba2kmtq7q>qoTTzRy9$JY-$@U>JABhf_|iCziA3lc4a-ig%K6wI9q zE7~_;O^^knPBcVBxoljQfpZnG5ho6sTq3js=$HW$bYoYIDNer|X#Mq|81<$s&aM=NCS}(mTIs&mN zE;o0j0sx-}e_I7pNu*>iiTAIMtV+ccVxh-MC$ciVb ztM|TUs`a0KQ5~n++Cz?Sf|?y*gs}u`6DB zoAbbt+%M|{UV~Q${3)kdf)mzQqpx+DbOymt05Dhp*J?)n@Vp)>1lA5wNX_?3Qietr zBc*=a^;#Wr#7c);&eJc}<4N2FtBoJ}2X8Z4=n#lO32bwTr8Y*0j*v>Cs+=`3W*6FZ z5QYWX4Os-Ro*H$ABRF<@Y?G!N$J@LMTb~#({Tub!N1OE{xQ!1Rbea6Yd@a^Mw!ICs z1vu>iU>*quMehJ!%0;T29YElarNmqVjZx-;Jw*wHr24RG!#=50g-T7a5x)o?sjL*c z5%H&WhThQR*;HqeKbsenqGy{*tbhM(&2;G%PaO(gs?^32el`t&=nwMB2mS5$EL4mTh(WZ1`RBxebszUdIda2z0NLKd|sC#Qb{7zKM?*p=zv{k zfVC2o*zMVE5NaYa;kiRh9Du}}@G(Gdfja>Xd>i8?Rh>Tx)&Q-e&sXmrvaH|E<9oB` zXWcyK?f2E?)hAakT)7xV%JdGaSc3Zcm<6WT_0u2Q#xAPQ6b~F!ggr4Edms6Ckk3{H zdRQ%@&3r>fx>SrW?{T(z{3Rj;U>HGN)(A32+*g$q8ji)lRv(O_g(f+Zc}_KHX%_ zNYM*JQw%n}A-m}uFA2fChk?Duykjr3?+v+n5a>n9_W^g)Uw zmAfJ+bl9*!-y~bhEoBvlow9|Wxhpr{IHZ3eLPyIfa+KDKHM|FXjxaSNgm$PN<+j-e zD`t~{X%=HB^IGH-&`C<{wQdvB=}MH%WT?SdK@74Y8?7J^fi&?m??nw|k&9*h-SRPB zV&X~*?L;$9f=U&Db^4_ z1wekf4JGDUH$W9dgpW8}Htxtku##4Y6YC$+`p`Nx&Rd7<7M}cE9;KvVfDV{`>XT<5 z4WXsh$MO>)eZgyPf^MOXn&RT}Ks?#^t;|>A5cKkHlRFa8dkU*DM_OcqZcr3iDyixc z#;jSoV5+>3jR-NAyPPiAD-+*H4B0C~0jwd9H7^Jnj$qweC3dKK{&~%GxmVgAd}aCa z4F|+&><`sI-w2v|3Kq<-OqGv`+qZ+!(7McR_)K1dJ|-ag(Ha-yN)o_ETsD&ogj)c7 zo;y)T#(Nln;;d|UyrU*Dvicf)&p`Ai&QBaa#{C%ort?k5$8jIW2b=*1#SK{yl}Y|8 z0g^cmQ9exmo-o8OI6``UlDy{P_?7DCpMI)-zHa=nK6w*t7V*#6fc|4gB%LCQOpye=hNFr4JOahK_TT3o)_QyVpG#q1^# zg3Vw*bKqp)We+MZv&!SZRN0AaqaD&y^~2B zAv#*T&eXwFpcIIGO@mFtlwsm1lnNcMj2EYy76IC7kvK;zRW>P`#fMD?m4o6@^6D~srpo%UrCpfq*SOh$wI0n-JD`dGWree zrSPQmK@ml%5oKv)#gzmP*4j zwr7?7a;@}&SY!efSQbc?v`OS>JSWYa<(dAZs`Nex*eo@6z-}~w3_oSQa zH_QlhEbP;7`Ta8ov}}`^#9ltGKB7J@&=Sv}|KQeg+4KhXzc~gc2Cc4`Zlv2{ydv=O?&UegG4KrS z4>-Lrti;BJU)?t$h>;EmG9{kcThyHm?riX`$j3|XuBU15Zx*|(T@p;&hl#$&?6dy zj~?gO20tNsrGJ(G8Gj`9Go=;fgu~^$WRK+0a+GZigI#VrL@?1bJd-@ETk)C>X{^i8 z+onrfBy|%_2WzBZ@OS=XC1W4pUQqGH;9sCQbVR*g@D2iNfxH zDK^35O4h|E*Z{BD=pjhZJOp0NLlB=7w>v)UA&9R@f@n@&#xTI^UXH z&l@n|&TjL(o>ou!ovy7bp5HTnaeNR4faZP54VdCld0axU0S`q+uc%XwwRVfyU2Wbh z0-PUJ9k1;a=oGrdF(hauguApp4qalK&FyQQ5mtRMMBuREL?V{o|yI7BaA;N}>IvBY34kvFHrl*D>V5^53Z z0#zOBcMf%Y2wIG8 zgG^#ojH!N<7NWvJCsBr{ge?`nX_Jh9Z8EzjC5iW`RY)xRQmtZrP>LuP#)Hu)FSMNs z42dV$W7tx#k&^wV3-?jKf(x)m!$uyCE$bYxwMB55F%^+zc2{aBxXb}zmo^)ZE;H>m zW<^vdH;XRIFp;woCUY%^G{l>m2AZYfEb#bg0O*GCKJvs~i+dIH?6KhC2g>>k8a90M z*=Z9e7OTIp@tZfRZ>uMNP}RGZ&*{`@-dyQIn>K-h>smjUbN$Fs*I&P2_M2zs&DybT zE267^R*xNidggsmQQZP#?jAe{`+(wiPh%gX3%vvBu2`opYPV-|hM=S(h$yw%;PjOy z@ED>D#1O@{lamocM8&uoV~7x;5Uv6lHk1A(l&Fcq9=3!)%)ch6D1UleEm+~-h8EfF zN!;C|ei4o^3a!s-zCLHMJ`&fp+h9BrJO;5s`+(CJp~zmBU5?W;1ttA>0Sa=YW4Dtr z2bHX%thGp--fxTmIm-mtAe_sDR#jC!TkFd2UqdSQQA5>2 zwsKr6RG#|g^pzd!mh>+E@XWgI-Lewt{67!6T>-j{oKd92k@y91C`YcS4u0^RI5b#( zNo-%O4v;phaiT>W7W`23V;J-~4CW_%P7z`QR^bR77>ZsZ+yfmHsye8EnS>|{(f}96 z^Ht)?`qv;s=G>3ZYO#8MU@%(FL3}vppvu19Uz?gx;zK++k|C0N3ochX=_^Dm~#-^+ceSZBwx@!-`B<* z<|!${fPgs-JS8E)8|(E$B%oEbAB4q9L|O`xPwc~}FX+Qa5WCjk_=5p;@a02Uz-DKW81noi0wBQo< z)@ugJg6_QqBb&|rxcbYIjzE7{;%~KF@@}#Q7~bWTd80+pAE46d0hm3QT!RDH>dY6 zG8wo2!SoMn!@>GzBH?{D<`yW6tZCHA)vySPdBQR`ne#Z7gxL?NhPv6|*b^Qrp}tkU zZ{LU!RGd0Jja?@`*Zsy(3y)5m$iot~nGJ_eNdKtMl>UKg)x-JBPux2>JA3gG^a(ab zr5pN`E(pZ<{+G>ow2B4))8-qjb6;NjA9oz+5!#hML%SwOr1u1@Rz))FB%_(QF+fZx zaE&LylYz6lb+=ff>_%K3$8*r&&J-$jYbElEb~`w{!c_83yeIVt4iIl{?~Hle^( z;zK;73}hBmtdX|nHGC$0qa?rz2(+9CGD+b}BKwro^hMr+dpDNdyKzBv>4RHJtDC+M zhpUn78~P63Es8-^>D>G^<||Klnzx~cw>Jl#cNo=;44?wgd>q7@$;SW**@99hyHUP+I=CS?V}te+?E@P}y&})keq&zWG-|CSDx}*`UGq{L(uV zIIFqzDVVnUsn>q|T0FsxIl=DgafBf+{qrKoI`2b~vIu>k3Y}Ikb5FPv$>C0rqua%M zk!(UQl6@udwceU!hn6k;pSz+9IhxY1?UGzLExX|GHsx=6cIBQ2rc_jah`ucpE5s8z z3X0DP=sgI{Hkrx6)hV;C4mRZ>Blmk?S897;B^*0KK!>`*BE8><(!s%fub%i&d2jK= zf##oT^NSICiY`z*fk#u+!M+oY-Llh5fk400fzJW3$%7UcXQ%cDNT)=k2(!d)8mNBCc67V?K`x%Rz%nO1NsO%Lro>rQtDKPFRYB-2E(PEn_KG;mq3#BRR)6H;PKzO zpk2sa@ppg zt1ETyKLsCb;3+zb(vPeJw833)YUTBB95uMa2ReceWG3(189iD46$8? z&34eD3kT5PnD*FFxmplLE~Hc}&%(gSk%9Szg9jH%KQ0>?=sI#);ovU|3$;DktQ`Xo zqOjdBKzo%@!%%jZ6Xis+j<;hovmGDO9Q*+Xfg@s=ZE?hRU zYXDkSh_;mJMA#l%1&kCXKyl=Ig6gKH`lOx6y zHaWV}m*%H1f7iKi__oc;$;sV2qG!*78LQ;cftLCGQvw!CR56n6MixvP7wF+sp=fI~ zPV2{Y0h3RNvI|jqBzfSFT&P1SHmxTT25)zp#il*M*$?S-B>XqGGqP`2&gk8<*NCTc zb8@oUX1C3r+a-mi<}H;+tKHZw&K`kr(+WnKjPBwnizSfKKfh&w=7gE$Z1Gp!KKMHY zmg=!GPbxFBZ`Cbqs_Io<_;uZ(L+gIM_C6)|I+m-5zha+G#hu?O>5caZN9E;GSKSmm zuk#^UT&UB-UV@o@R#rsepdLFU`;bF)plWdYETR8CBm5OM_$z7!eZxzb8NfBdSK-Wu z=Q1aPJHHM;z@M#~qBX|X@oF0b4oS*F7H&g=n}^!ybnbwIcHw_+Az;ZBI_Pr64zip> zNq1uymt-V%SR0MJJUkB=KgRV#Xk7UL3kGutqiHfe7&+nJ{jVcR*ZbMk5taUmslE2u zl5mJd(PUg05Gu3%=Vt>YB_E>*cl`&pufb-=PKS>t z6QQHnQEY6f&J{c_0{;)RrXxQAjr!A{6cEv|b-eSQm8gPy%d zz9g1u?*TfIvDqwUi~2m?yo<{0plz7B#tQZSrfn)FfVS(krg_`yOH!+bVI0j>_;W0u zn?0%z6(8=S_LZw`%+i{m{;57`Xahwdqn<#xe>2fN$dj|tiF2|aeN|^aMFGr`oT%wpzP}@h7lz;-_!{!vw;3I#Z5Q{8a6- z2}oy~HW6CkHTUquCro?-JGN<)By8HGo@1@i|4BlF_`Eb6wj2TIIAq@f_^3aZ_1yHy zC!0PI7t+s9;Ay6Hoy0zd8*m}bIk}L;G_?ym#y;kL=vR~$QhQw=$V($olkk$P7Y^F= zMFv(R*gy%8K20em@CWeijB{_}=iUY$qn&$Pw}U7kSfT$u#5K?zu;vgx5$@!aAtHwh z68Sk?c6eoxdHjf?V(TK)wtMg0rt8zcf4>16Hg2STvWJwO;uM_&{Tvi9imwZ2WQMs0 zzvD(r>VioNjzB9iZ$%d5P%CVowg0evw*I^ee|Zzr!yc-u(>ah-FA6`%pGq#h4s!>T zsen^D>iOAt)c#YHP-I!6D{`S$EOZ7MIDUmO-Z@rGzMJb1Ja|uhaAcs{h!NcaBX8Y4 zfBts*R(|O^as)1dbMDwd*D$65>Ov8EC1mo%fZc2}>HlT>1=C}a)18pLDgGBGUWCrT zQILcgf~W<-E(GBNdpfIHd|j*jyu>aEX+7g_ouAuzWI~%ZcKe+s(}*!y)A69gN*wAZ zyN*Ze<>Man_deA37WAGX?_#X$B1+2OnFkd7g{XphC~4qe zjbCB9MPBJz!N*tI2M!#f^66Zt)%&}E%K|E@>B_SD_TD6GS_+clri@Mtq&9n{jLLUM z^c`Aqzb`5L2klK!xCDB&m(wJ@&^>@6RflBZpg~5Ei-O~?H$aO(=sER|??gi1ZOVoK z$&X1uSarCA&~YVvi}eToC|SMdV~{(wlsrS&UkwfHBh+#+KwA~0)Mj803S-`@XawI$ zlPbed13U5fAJIn#`bcLD93elQh_^mcyy>Pfhn{`*(3qPJ9X>4oFn;_CwZ+A?FKFXh z$et8~kSDFcjue18;ij;@d`|Y^M~8a>RhX3nKdZk!d%5h$b7g8xS?Ox&!k>rMtT}>e z<)3__-nI9^fdk9%Fecn8R&bpLTFrh@%EXS@FG%19&|RRdEYL~yTljsXi)~agg=~B% z?9(K7QzLq56G#UxYlqNIc>|yY?emwMs}Bld&SZ-JpS`?YngD8R*)j^U#rr zzS$Wwv$A>@+#YD(Ua^k%n#~ZoQ`|rmiE7zu;E0?YlPO|GyxpFCUCT&!q`}joW#5rm zZH)%%Kl&vlVJ>L?B<3fkN)sWu8EMS3lPfRP+$D*H+bnsn|gOBfRtXrHi65PQ9d2lz#nL!qHD7upVgMvq+6 zsIGEXmMLd4R8wX;wj2CaKpdcGphqCcA`>VWV?s{>S;lkNky5Fml(oa7nmsEzVE+4$ zU;AlsTB$gVKHdED=*t{=4$G2JGg5XioxB_3?SJnJYlrSM?~67U!frz3lEZUB^|i^M zpDUJ^2CGZuH!trh#e5zOUX;2vybT^zA_#xZ(c}mDGpUtskqdRp(8pCkHlHi3(sUH* z7T~@kaE;&h1L~Z(g!cGs1wNa@$8%U+B=u|92(4~hz~(|kkTIqxcCoR@v?#eLl>vg9 z*XXn<%xiSn6z}l_qjEgP27AfBAwGXgcf#_#mV>KpX;K;UwKUx{qCQT?)udcbfSO-W z59Yf~p)_0~Lydof4%P3Hm#HP34#`4Zz``Ie%2kRi^+ak8mxw70ygBUw>%pb~3kuO5 z$W%rayoC!@Y@{YusUATL&Xt!n6kdHc$)b(V<^hxc{n;eTMXF^a%xxf&HlO-@6wlRU zcRjM6?I9_*%D@F(19h8-Ci?w9in>ZLBBG=|5jv`0*9Z^~|v_-uhz4*|TKj=Qp$4<=kDCnsW z?vN#75nmMc(|o|rs(>Z(J|mh-U;(`>x08Fy(ijE?9vK8++*mkY_kj%5zk{*2;IaZL zv?5~+oa1#_IAf?XvPpQ(B-u#na(iOqpVz|z{>+Ar%D$LCzv zrc3WplXQJ@hWF^)EiuOENVH_+r6wn5cv9M7{w~U&HUP1R&Ryf&|04g;Z~%4%y|`VQ zd+ddmF&{m!$8?Y^u@^#G3HAahCQbIj|EikkgU@Sf)gTxnxN<_9fdy;ii)v5ZF07sH z07@=qV%+;BmZ@0~)t;rgU20EOgIm$}OY+4Ahi(^YBfZ$rjw~QpX$WBWC)SU_7-IRE zXvX&y=#&!EEB|M{4|_-wzJvBNC4Y#*i)9~&89!UX`@;93z6gD(!Z5lw*^ex|M`1IH zdRCKtQBE8KJ7l^9LrEq)(pi$fQSeFhzHwECWy#x=7ENSWH9`8Op{J68`7s3~5r!6S z3iL`B^!xHY}6MaMYUL zmjyxJ@6ONiBnLPCG@IY2mPyO#c@0bDhlCQYHv)lE@&{g7xJBn8u?Oq0EBLWm(l8un zwZ|3pk00q;aBlF!hC+UAk#-GjrKoPTQ^V_AHzAJ?#EamG9XpmRQJ-D%2*DrYo)fs| zf_9G*Qagetmf)uBN0vMyFm<@HR_Lmq10F2^t`o-nz9{(oZK>|-Qq_yktCyr1!ZP_2 z$ir;|I(?B%b_$tIf}Y8^P>qIQExwR_fesa-QI87F%oFw4V!4`05+Ur+DG(+E!>4+w zxkxO%(_CPtKCe<;YEi?Bki~ofomFQll5E@oK}S}1RBt^B2^?$82r{P8GNl%cTE2W# zMs99~>RK`C#^pHfdmL-F@e&w@4k z*|)goG19bml+UmJkLEuwZPW@{jOBdXH)H-bGz`M^Ozq(L`{)Il?8sW30imdN%C9v#!!L23Z?4$H*3ddnT&w8y;*JNocqXdsJ$d zn?sJ@94|^m=7{>_pxSA{`_6^7X_M`XEYqjh7uhc?P}dD*F`~3-Q#sqDe#ZE@eOYxk z^k`V`MCIUm`Oh@?L&K_1V_@`XZj0l(Fl=!lU6{`N5q!2Y|7-0-K5kLf+EN+#Ki#0^*F1~pD_t50E# zx`)^3%0;@?@Pk8dx*T4kE9=?ChNmS9bX`G0LJQYsG_st_^-%)ufcAVt{|$pj&GniG zPR$v7ci%zx-Hu1ss#*-(S9G8tzhE1gANd9_&jb==rN za@}Bh|FWy$`G$K@vm*Td<)u@V=qUvwb;^yr-KTI~ZvQv5NjPfNAJy@*qVPfh{*aMA z_*9rSb-zlQSp84x=!U3<$2eUIrPbE|RK`4I2zBgt>=^7`VlWB&{GSbPW1QH*3cRl@ z*Y5#@co)|1Y)i5WsfW*=ZN7&UNHP&_59*sF>-}k{QRjE%X9v}e*u#sgQ>QoJB)XcQ zW~-kzRB7u*Ry_Kz!g7ceqwnk`n;__jK@ZmVJ5I-FeZj#2732?k@R-1+O`M3Sa6&OW z&yDB3O?+Abmv$xv$-=0fqdfroVm%BR4gDaWrQ>F;fNOP4e(i?2(e#;EA zx2Y1A7@yRA)(oq=`8B0s>TaXWl#)8Mq+ef~HE!xIv$gRRWc$N%8QQMH`X>pgXkRlr z#W6oOyoIbzotb7(q&g1~#FgsXM<-ZPGFD72O6i={J~G*!n6W~fIxM;4*PAw--Ly%W zmSi($U#FYA$PpWFwdAzWO4O%e)!B8`lk8K!Tg?SsDy4J zfVb;&^CLa!YW5_$Lv{1}Z(Bq6Es;M}OJR$|{vf|2?Q-rXf{!d;Ee*76-MVF9-k`$5 zLGyI$Sj*OdZmn9eWo&Tamnb33>AYMF{pwxFwa3uojo5ot!WY z9E2c&e^UKM)zvV&;RyDwht8|u&F;d|l6Coc*k9DU*+pXg_h%!6mVglCYffc+kR z?;g0Y;B@*x-i(+Un~vjY4S$j;MOUVa|@K6^4vMEj_%ri6u&aQ zeQ!B@Mb|Ii>@uZf_2xS~nZIb=pT7wAUq)YNq5pnuOz7icHAA`|dyV!?F5hJS{QAYZ z`Lw%kTcaN5y9c%z%mHdq!hh`iiROahmZUc+Hrn|!jfdXX`A|ava%IyHo7a>ZPN{28 zt7}n*y8ah&!sYWyt01sP`ST_>xu1v1qKLIrQB{q9&F-e>hy2`_OJ_g_3kd4jL-K;A z4e^VjjCOQ;aTZ+RKdVS&fE3WV>Bz+U9*Bu?mzyj$zgmmWY!=)^ z&kW(5<9t93!E40A65hBYU0BKnH>`pG4Ejxz`*2;jhpvb2-`3z_$7Mh4WASuf!zOhK zyPxc1l&6C}UG=-Qh3|qaJTM)Fd>8-CaCD8Mj`!mor9c|0Ka2W@z-&Qa38W`B6B1=W z|BPX~VVpr46Hvw(>;`de7QY|#LzxC1l`i?z_aX1X8$KTme{VTkEdT|^$6yi-h0$XXD26V{`I_`du!VAd&*k%I zD*Rmh1rIn%nF{6dYF3VN8WPfkk&wxg3wd~-OF%}kBsz6EMR3Xtsm3z!N05C+>6ea+ zH=+QUf|V3&)G1Q#m1?oW7h-$GcIBa6C?eFVvCmXXQzvBb*EeA;P;V8lA%tpUQabY2 zxF4q_oF79u4oN^7^2y~9_a;l_!qds-@|g9>eh0HhdvgRpEjS2L@&r=%p)$kvs(ob< z6{PeNUVI@x&xx9Z>6A>PRjMaAB=)j+EZBujxUl+mCSAC&dey4c7bumcriM~!YHDk1 zq&a)UwUw1x22EupWzbaOB~PI_`_|dBYyz9`*4c3XLuUdaOK3b;6O0cli8TtXA!fQ$ zz}#I|F0Kafp^R_>7rqKi| zL~FD*b=sV2=K}kLXbJkzmd`2en+ez_B>$R)mH^hnf}3eh4drI5%#1)okY&IiA}p>G z%_dJSMbBt1CE7nUr`h5w!S={@te?ui=kAegd#6tL_1DA__W;Mz-lu^oMcL|J^c3?h?S`bBOQ|di_@z|ybx8FWt)2U4pR;|LXU$)iO zZvFMtFI#JBw*GQTzQ;3S{>hi;kMQ94%O~->-r-%l0~lELM@qcgw@0phL`AWwN7hDe zrM-Yt6*^BH`CQX@KEQb5Q0F_+VJ(jpJvK~tg2(3-ZN6B$!KaTWr#Cu`@-J9=AQMv@ zYgSTTI@pW^mkRO?c*W2Byl4p4A`&HZk>WAN-ma-q&fh-ku2Xl-y8XOTRr5AuYxkY4 zW7F6cb*lPh<$9a+Q@!1`p3V2gX1C_^C_x-m8B2lj^NYnRvr+$Os%)eJh+X z>?kkD@?3sT2Y!!5)Q9f@|NTn-TsOs)CV}sQTlr>b&*ymf;0tMzuaKxeSyZT9 z4P%${H{m4b3j_G|$I+h$`ExLn;AXxCJP-Gm17D*h@lR~-`WwWM^axa+RP{5hi@M+b#-Jq5**S72OBe2Kp8|}cvZKkiZ)j#t+&^BOQ;wu zr?E)TRs!xgr{J{VCZ_}0`1m^xf9V~aE?&H7;J@0!_h4Q_Fx{-oy2_!92}Jab=lZi3IzSl2`r7(Cjbj4N4z~8L4$kZ2u6K5|b`rWU!kloBL@+Xi@C*r1{7_a69k!fAX;ACy4y^4wu>XLi zYx`7AtUQxp^tVVHIcw~&7S1+fTW|Po-oll4pJe%>@vHA=-F5iF^cm;bS1dL7$Omm( zWK|4nIdb-h77uPk(Yds{9-{et2|4|xx+KJV_=Nm`9f_~;C>dk+3O<9Rp+mv9`Z-zC z1GboI#ptQ_I;*Yg#o9OmUOQLc{v38O^iM}pB4$m-?_?Cx!{177qO+Yp(aDxpvpwv< zQ!Gl2KX>Eomsz5k#b$h~Ug@PebrO43U8(*sX%y;8rLlfbgLTDt_prbR>Z>?giRc?) zgCHU$pm#`m1BFDM13VuQD}a+7(bdW@@1wGBmJ)#f(x3-ohAi2vaAi8NRl(TdLgVNP z7%+!7pwgN!uCnRBva!e2j#cXWt;e-3cp2n%fHdjK4hXt?q@K5J3-2}HEF!1AL`F+2clrI47SZ3Oh+}#NkKkZkXg!pfDLr(xi)1ehf0h zn+xwLE4%dLU1ept{VQ1YhfCC`p7}+?i^}hRYV`Qq5Y$|-@TRQPIVI|M>hBd>w^p!- zy2k=3gYRaJ0yQJ9@7%i6^X7m3;w!~d%{t6+sD1^wUFSfuWv#i?QEjNoiQOHQlfE{i z)L-3teNMY*bGq9gCm6DNeY9lwuF`k8x{3LoYmSaYZmyt zPx@@O(W8+rOZ0e#I#l`tzR5VCW1CGjSArZJg++SI5M zEmXVK$HzpLL~V}8V5q_xya}mT6*9*A+vR#Smgi5D9AvriKmrp_tr#(nO``f{{W@6KQ*^?OEHICWH(kU3-@$~6VvI55vV z@S%7Ca_R!esaR`{EI`h=hJxzFJcB=Q@r6=75yZ9wHRPLPuu@<;m zgLl|_6_szgp|8=GS9JfDA%O_i`BEAFUHYlCtgKW#sh(e1vGp$Y8uLxsR&kqJFCIGg zmU@@E?%etF=h#BF=q<$93B)&mNe(^`8_?T_(fH)*_hQGq(c8|TpsesC5LyhyKjs|c^;N%gkl?7M!MGl~~} zrcA#4u+*vkgq(fywr$8>0MDh`0AG-vE-dEz6ueuG!kl;z*#(=g3+;HRSClp{o5@Se zA!WR7l(TVq0NW%>`cRKpV~+s3r(DDjfQ}Ht4W-Ye=d=wSEUFtR7j%uF$DY_xekc<71IZosR8GVj&^r{hQP6bfl(${*nbZ(dkw^DG@I5 z{btAfUN%tu`of!%C%8^@1W$@UB)aCbvu9cBkts}mc_>c&hewQiylRd56Xuri2!PoO zypfCLWQkDY5l|Z$ux2=N zz;ywZ9t4HPFhh6&VDjlFx4pYd$<@>bAtJEe&ukhwc=?s&Kk+o^8Z{tnerE2?fs-_nCqM)@%rf8c-3_({RN(i>lW z7_J-&d;`#Jsvnm^(K~SwtD3+q#jsElN-)>Wm_n(|Iz zMHNzv1z=}h&2=Tp*qnrmyVQSawNV=D+C6heVIv`@lqD4OLD{!(ak~M{i8;|wl0p9| zzs+e+Jm$}wXg9echRCkiUW7%535&plfoNa>t0UJZI73TgPfP z*0drKPn`eY(4r^7%!>v;Bu;$&mJnT>E4@Bz{)?}D_4TXI-8$>Os)`TQ?=|MmJP)tN z*_ed0dJFnQSyP4xt7JD=Ou(c96dm#EfWZz>*&4B0A$2$#%q=8b=2FNVWetm8hDf7& zlWbH+)M=#ARaF)I=e>44BK~p-buSThk zL_<&;c?vIuc{Mxsq>X_b56#Y>v1xioyCEJYzu>x-t18rklP7T6ToUN@=Asv-tXh1> zsAcmX3cm0;Te9e7qSQ4191mHZhS-Z1kXjtAfZuG75DoF(48JR;S4)ynI@Qr(C#lsT zBvhN@t6ECwB@y2Bp4yfKP)|&r6hoHmafb4is8SSXRM^oZh>>bb!U`A4oersUw{hc! z7Zv2KUs+bR`t)K6cV`%<~ZMF5nTQ;}?_wu;O=n6_*LoCMPr z3|o$ihX6xnlkA5OFG;@~7N=;pA7XaI>Dv!MyF|XL0_pS+CLsK$*@SdZ?W!vR59fd0 zs37{2Nt~m|kt9(^&^}5}5igXhXWnB64!3=%Z2=RzJ-~9_QwQ-^sQAQI2H%vT*gIe| z`X|)YVpjdvY72Tn`$}8OV)%sfkdGN*a7SB##H}+ZNN>BU$p>r^7Ny2#GnYgQ>tlgT zA6~;wSyYZM1WFjv?D;Eb%}&4A>#G@eJU_hO^5^d8G5q;E7F~EQI(7Wwe~D$m+nyWH z-6ox{Z*A*7>=|)&a7q2FiGG!ISoEm`_D}%oqAuC>0k_K);p^padCUfj-X#K;QtTDW z>r|3Ze-XR{d(3Ed$u%}(35Yp%)i0e+fEqd5MdXMcNB#8*$AOG;l z4IiD}bNZtVCm&YFtCx~m#EC<{V*&N0OX^@TCio@We~Dgw7u?HQspp9|lU;R%&H;TG z_EdN>Zzk(%SWkve2X^K-(zl^4^Xr`7XnObxx;`v)ou6avdUDhI`IxyLK33Di8TW4s zuOWAz?6Qa(AaN$iC?ZG_zJ*ibHYNvSr5N?TwagK;!Y4tcj)Q&b{|O~(jreO2wgkwV zk3-%Zs7u9JMdl)~Yix=yrbVwbpH+zWxeLewg;Kp2&mHI*1ENXC)n^u}<1wBOvFU}U zdoE>lw~onUKm6A5Hr2Lnwzy>N*~<6DF;{NgCZJ?4B4ybT43k zUaSMK+r@e+;B1piT$>Yx5_4RMcYRDE!M))<;-FCHIM6W4$`h_t9KNg|Z-SO6&&%FPu`nl>?f34ZaG9Q!X{C3-(vQc|Ro#pNLNS#z) zuTEx%*;z9aMq*G43>~KuH_BR=>B&q&OYkD?tUz|NWAN@ zyP36*-?+zQ%~I#FWj&0Efzd58yJJ6dpTi^ApX3L@afC%^Dk}`_T|TCeUFv1F5W9LR z-(w+se8{Qs*kj#b=Ztabj4U2N)`=-D2M0pBYUd2N;uA}lyDGz*P-3*K_iQ%TX7G~l z+}g>FozB1Vf*fZ=h>iIrC$=3KXvF$g?kp?2^A*kv*1q!G+=0UwD;hZWxw!*IFgAPu z^7N9oWt6&YZx4JcarXwEiz&LsZ zyfTu9Wt}atmlWsHMH!;qE@mSU0|Fu_k5&r{D`<~$IHeL+lK>1bgJpdJ=WN(!+1Zp8 zs)-k=DUt{SO}qRSNL~Orl5%ibob9^lTHikq1n8&a7Ldxu50pF9-`D%2H{?C?8y`u# zs;b_o3_i^m3IU%NhgQDvk0&^B`llqZy-#Sgd$fE;o(d!lfv9l1e7#7DUT!;zl;!$g zE_QY#fN}NtE)p6&ZpxkDhZA=ur|06BN`L;AWU|&4znY(%&r-VBV(w`_IxspWmc_+s z7u5^e#k4a8JI9RcTWLzX)OU66O!fEW$%7wa#=CCqkT-4SCs}g3dVKW2naoI+)!((t z!B3{7wB6Abb30!h30wFj$VUmNG60amxM-V6@JZfiy@QS|5^N=hlqE@Ha6k?tdCHb$ z1Fa#FWQiy@-J2LwE=a64(E+B!4>84+VbBm0k~j*OUMD7!rzX-1&_8%;q%~FbJK%p| z9a)E(nwss))IL;>j#a@&6Q#~!8)FWh6;Hqc^A>@bojs`Z)toeN&S*{=+Vr3|kkzTy zhZX&X1wW~m$>kHG^){DNc6m6#xo{xM$smwoYog#tCv;E=73a+d+FuT-Ht zd37q$b*_!E(9Hc+VD}S!#2mL^9;rb6SMjpZx4e4mjg10(2lb_U%B$~UOW0(k)#3-$ zGwQP|9~{ajxVDy#;Cp!I$$+95GM*c;^m|CYP80=|v^ud!a&%UZ&B!<_b;ga@>VVW-Z9LIDeY8=7-Ya-AG~1Nomod^^y+#SvU2_ zx(QFW&&g@iHak0OL|~|V`;L1i8I7(=pUvK7$ZYks4Z*JWJvQHD_Esi1oc+gX>wmDJ zUOtEQk3{DsCV@ugd(cdN1dD+9ucy>>F>jV+`8GYa`yF2n85i+TQ1?{mZ@C0PZnp(n z7q^`0uPqpQn7yywiz>X@E9@<@&y?y=E)uo~6BBicgrFN4f$@Z`EFA7G?ba)sQN`$- z=7V%dPS{150Mm=CgH)@8;SUKgA;;;c4cBxvN&YVnQ3pb+u3{Hzx~^%OddLP zT;Pm&_=Pvs$}FWraJ|^K|MZh@sIRLRgU8g7>V0egJH`I7B6DE7H-jgWMECC-?q;$! zhl|yX@+Nr+?30*7KWZF9;wE!yE{F`8_k*y^`mvf#vSq6U)ndYgHZ^at>wf;^sRg@= zSv$3kz2qMld{f-FGHFfayRWK+>c?ss8~dB~?D=Yc2>a(@YZ?*ob+R&tL4d=et0NcE zn6s6yb+Ruy-W3<^=n|H1+am#kWR?q1GWHoe-AD(+ZZvdh)jn=@7i(JEa?koM*lgJ_ zs&oR{8{{(b0wOLzpAPwq0?Znn7wsY_)d%u}CYvF+na6yPO_<9Q2(ESMmCijsIHX=& zw0`_uOV3nJ?KvquebVIn-dehBQpYiW4lC)=r|*h+eR{uAP_STax86NUhFuY1~h{bd3{=VPEOFAB!ze{sRLr9H^h2L9RMgV|4);Jt@wSsAFzny zOWxnWK7Lc#Bfb97hWATY`{^$~bauv^(L>g~!kAV4UhEK36gGo1pHo`_F?O1!Ec|25 zFWZ*&O?AvPx9ZBrH6OBjAM9cBmzwN8r$vx`(OPL)xJA)#8~nZNZL8xASV$OuxP=D> z74Gc~YwqMHrTve(21JS@@>0c%hl=l-i5^Z1*F97?Z|n_hz_4Legd(@`{X5IHtqe**+r+!y ztX;ie{({qDTT~()N+4>x{OO8wOCCXTAu9sXm zft|nKYH{#oHb<8WRfs*TO&&$t>)Jd&Z-kp#imm24=S?p0U{>1p`-W~g}yYc##rTJ3N2fgN` zn8etmM2`=}NR()I+o>! zU6WgFFPc^eR}R)^F!rxm`HkZG6gepoV0Vo(tIwiDLXy0o{lP4qlbD|+Uv3Z}Y(Jw` zi_agNIdfv=p|Sp`ORb9@Wl=2Rk)1o$-_@v!^Q^_!7hhzLvY$R!Q*rm?G56(lePqh9 zjraca?qM9hJD)v>b|*pRx*2;k8J)nk|7*KB*)l1eR1pTv-t_*rfNcFp?Eb_}Hw|02 zr7+%Im)dvT4_`C)UC*eQ_wEk9tp2!#EoC@5lkJS+18Dssjhf*Ve`R_2!s_(6i`G1gC$WH%viHSV zkb&H6m3ko}Cb?_0w^vePf^S~`)|pIX#&+rb=f%Y*CiRSr>Xa4{qn>38bo#hny)Pf{ z-6zJfhn-TViJjRCaWToV=>@Z*^vEbsSF@G<{XG=L{DMhNcBZMlg2#=9q&<6*?8H+D zLrjoQW3C$eF0m|_h_2~-?BDcVx~A_BvAWM81GN9qZp<&4z8 z9Z@l{z77$dyf~-lH+CI1RENG-X7ue4t!!i0t3R+x*4bx^mh^Wc_$Mbm7e*&tZhVd` z8}8Oi(Ka6tgr^#m=xy7g6`F5g>82w0Fit?67E8ei;&TkWtFg))>3U@Sb2<1C3n?v9 zOZDv$*L#NyUv~SiEF1j%PxbZ6N7pT9`{tML=s$Mz%zIvazGm9=>64GtOi+Mu)Ne;o za$B_~cuB3Pc$gKkkIueeGNtcNG3e^MvD?3#zu=|XCG)ZR=o8s%Mx#%_Mn#{}!hMSL zHu0Sik{<6>M3}y4x>TO{@IU*ucDI;3dP&{NRjXEh&`?&oU@99t?xq`hkLfjP*A2t& zD=!*3a@ghvhTfp$i%a_LF34-Ub7%0<&YexV^+dX&tN-K7y!jxOub^9qF2q@AjkE9^ zXrvwTvK1M`cG(BaEVG3wcOkJ3hDdG!vx@M4mD^EmZnaYDAka1#!s=jP^%qaG`>N$}sH1mzt#a!eaG^QsMjG3khM&3qnu8bryXNZA zL3Sobk(lw{l~&SZ)qlnzX6RaVHB~+O7j+d{Y%1$IdLZ^g*hdouZK^}S=1%JsgSZ2y zA;BdS5LPYu87Ss}2X5ITs=YpPh$JI4!&{rm899_IIEy%iC;AcEN9it7UJ{)th$V#9 z#nsj4N9ApU&xW>6-ICEac2HO%`$hGsE~(WG!_*7IZs16(V(OcZP8jRg_D$QYN$SWw z;`{B`rUlq498fiEcO*X!{9HVarvddy*;1-qC=BH9H^$eo@qE3p@1=J^KS<8zR0BI7 z4hhc6x-yR@c94=yBv5)cHFe_6&rKQU5+4hWc8#0z+^T{722Y!z{=$7BmdUd+(xtst zQ_RGhc5mE$)5MtQCtTi&3NfRi!fSv96Kj6r{}J~d;89gu-}vlv&h(Ti>6!FK2nmo7 zNT?w|=p8}`Eg*y@Eur^-(nZ?PODGBn0s&DH3>Jz=g347;xnj90DvIc}U4_iy|6BW< zNkP2t`+d*%Jb#gpnN0Rsd+)W^Ugfve!Z}M&o@eKx6;}wBhT0+`Ov&3W6 zQ^zq68eIN$@`S!UdM~AiyM_tR(ZeS_5hETy=wZMkTp!^Pw!?w7Pd2IcoPrfB=5yzJ z%Gcuc+O>$&{)DxO<+Q>6BkUu5ty?lIXu$>$rAg z%?X1Uaba`?#QPjvi109QFED%r0|&zhMiacXCX-PqXj!if&Z+5M)V~g)Ye+d$OQE~I zyJ@I?sL7Cl4)31mdKGAlW$~y{)>`ah=wUSRh7y3tLKlQZ0tYZlWQ!30OuQs7sg{>q z)ZUOI*k{0ThRK2KoBRKwwO#_*@gnqU58w=pURl8JpozLC+ySbif=|PUz`D`noUSQ6 zTD9}A308y2s7^+i0U)G5Sbo44gXM>z_6U0&DN9(ej6)qZ90e_sKyvVc8}hCZj{ zJXU=F5SA9_X)tJ^m?wFmHRzP4sy(&Gg6v{mfk)HeVDMljKNt&ghPGz6<=~2O;)Z&s zVuSF~H|r4DtUDHOl}?{t%6_eXFu)7M_k6Eew+4G3E3PLmr)Hi2DOC44!nG528$M3x zLMkt<)lY{1AASsr-aiIu-Lq=n@1wkL)%!#!`o# zT&m%t1e9qkGz1Mbp-q|HS|+4wFtQyZXY|X#k22Dfcj>pl0}t=Z`Pvu2)4}9#(V85= zK3;wfyA`z~$&Yah!FrfaTBlTI@pAfG{H#uUk%dCt3b3eIj77%*ThRFtWG3!Y;+51R zQTxKxuX?p#F>T>Oc~v#sI%{3`*#5JhPLO~8wRG!w7P)V)D_xsVS}JGVxmUY}llU4U z430I7l8$4on0s%~%^h`%f^6tA>Jz9#FL$bd%3Uq~cBk!FpvQjmaWAKFW1wa~JMQlk z*9F1=;4Uow<)qE4`$>O$cNDp@*)s(Hw4u$IuP#CfONYY)6A>dHZzAwM}_amxykQy zuVAOgF(2kM6*+WHEy_v~90?+bVAK{to7&Q5O~rjqdax7~5d+sUqJmZlnLcmH8*e(r zx!*lt7WtZ-d6+4>{-1N)EEdU>zz6<(~e`Y1SVzYKsD#8i~XI5Df*$m%|{CBLFo+ zC5&;Z5NVe@T`Q`pg!xq}S*#^U`h5RBf`P-h+AWL)L7#r|Pj-grSxI~got*gAjy`D+ z!lDI!S1%;ODQru|v)Sadd)Pdk-bGpu0_PCRA~1z^gS-@L9j{70XFt7Ck4eQDckUtk zWKA7^D*LEi!Flt9%A2+4Tbsh)Kc=4h+x*B#eP25k|Z z>6V9hKJLyKW!|8N;*|fV`6J`7UW6&v!=i41j_D3ByED+@FFHJZoc=)L0F1-;obR~k z^enRZd29S>GKjBm2sdREP;umzt!#m~l*n5`d(Yk%w#dQL{pFJ@Vn>T}OG_VoT3RX< zU6(!OmpUhOn9EuSu`KBR4cV96t?YY+2Pl^Sb3%Rz_7YzWvq76(vpvI%zK;@uS`H5l z8f$^y(bmb_ttfP03)%ZmL%G=8!c^>KX49lh#T(c zC@Y7Yr7-ckDxvf@*JncK_hq{*SIM$$e_!bA`s_CWJmm@%zHq%*GgoBt9V)!a{A(VH ztAySz#FDfkxZ{@s=6{iU9;7w(<*d276fcdmpzuJ!1C9 z9*=ZtHhQd!r&2kPQuLP}MF=My?@}v8MMlTf7N1Zr6b@RVRAiz1?<{To@{I@OJ@@9z zUp3iLvas@6#f7WaU)+1}%@xDno^eE4#(lhZJnaGJK&DN(=$a(|bWzw!xi!+i z9zd;p5GFw@Q_l`$$`t4fkSWj^;-%kk4@RBVnQR(;LYWDL_{=E8S7xDVe6K(xXJ||) zO+a{AzDG3I6_~48GqjE`HC)2fvZXnbSW*H<5<~K4hlEu5U$dhEHlT`39Bl9&6J4(f zqi(tG%Rds-fSBl1%{+yPX#H`oXRWBHN+!rXhmKkJoyNmr2D4L#%rK1+)WC0- z0_C6IVPu=)_zt?+euy}?N)FB+Q`+WG7f)`@WE$3?UjnwDV z+6=hgaZlCd0O7g(UcfI~HSJH^tvXM_fDwT8l@zpLGKQ8k{q@~IpQWOWV3F*lpH&vG}zjB zk~Fzyi})mn7AaFvN3vMQqn7P5tPvJdAWHxGIzl}C#6T+#xVi)KBv`#XHBNsY-y*bo zbB1_@H6{6G`IWvlgKGda75!7FVnA%17){}~7^ECY^o`axO7y(>_18D6Z+`XF&1(6A zT*8L1cGavM8!R7{FH}nhe6C))RPEzaed*FwpBjrlnlc#iC((cHT7UTlbg=)(H~ddw zT_4RgqI>i<=0NwTho{krj9i>x^%}j~mWv^jo+~mNkgSNy03L|CdlYwow#|d}bdQ!o zpN4lxOeTD_ll~B9}q>OPuD$boUDm(d00b$fA z0IAfrS&VY=a|J+pLFilcr&NWnrF8Qvq$~U^zh;=m=}yk@wt6}>7+PHti>g^Di(=B5 zgd%Sbby;X#>MaaC3yY(_q&$S4Q@cLI^|VHU2H9)606fbBcQP{k1gBV}u{pKJ>`slv zGtg*5UZ@ygxq6FS^tcY(dIi=BI;o;iL~)D_y@FTtH@T~@Tu~{0dca!t?ZXv~{r&pF zI;hqAI(Kq?(itvx^{i(he>qlsgLE!U6X`{)0oPHv&SQek6P;n#Iz5k>ai)CzkXto9K0lZDRL}2uIZo zB%28l;XJxYCkhVGY45}QFx>O2`9ci!yC?tgQ1kvZWa#x}E9ChwS$@0Dvd%FF>=71n z?#6ncM|Q~D<77eW+m)E*q%|!H3yW-13!z?db>E!ZSf7 zAHMVX{R9B&R)aL~lgd^6_tC$TOg-eY&U!R={+N zpL%MseE;VOPdzmO&d8T9U4L@Yl6BvFAg2qG{OqXQ+>z{xTs5#qkG`8XJUxD%cfj_7 zt>iRPdb?c%ZLld`MmD;EWl=WzE%57UsRZc{@KdNc>1Rbh*Fh<7a}At00`e4YYeVpR zI`9$M6b4UQNr1PXXz;L?`1z|g1sbPA+-I1@5|2u&ub0NJ#Qum)p@&J)lAGD8hQMAC z{NzQm<&TCn8YBF+d2`Lo&6~y6>*TSwS~eQ|J}bFilOhj*Gwe1y&UuDn3QIW8bmQ}Z zM^^VE=&El|z%BaU?1{?%pX>=rnXv-r+&ch zAdBZ`!AtJ%>MOLoB5!6>uDGg%lk9}+XFgwdZd)Vxb^?N9u(0 z3)jffApBrUKhWdi_Er7Pab>O;W!!-Gd(wF^7f%w z8N-7@4hID6d1geB%7aup19nA+3}0?dR0>*i7TFW%-)zujkvRdZCQdZzlV2qR9ZQO~ zsm=z0LWlo(lNPi#guy1wJLCH5?inGN_dQ=;vk3V%OK``MoT2kb{`y#|)q%=oJ2g8W zUWIL-H`zqk1}M-BP4 zXW_SUc|p#|9gf8(*`+gZEWbTX?sxuOu$Uqvw0$wYho*OipW82AY1DbR{oPsQx#te= z2A=x=*~4AW*?yLJA~U4}Ggrvf<#H8V+%B7N50sR-;)I(u{S-Q+BEIf%89v4mfjWMh zJ+llFGSrxR1E4XfT!MrdSXiWvapU7`g)q3H!gZ9K=dIY42gQQqLKZmqf#b;QjeEF&qyS zDc3+Z9{0Nm-h~uRW`;GjOS~<@LlOF|Bphr_3>Bfi<$>E;G#4wP zz1Nw~wcvQlWL%+b$vB}jtX5Wph;__L1?|vq6MX`Ci2ngTN0Z zG%&Jd&gg_nm@*}gGi9Wrnsnli&6}xpDQ%)WfRDQs&(UC9tENqcRVeZF)>mrmSqz{l zM4!<3NL86&$y~pSAc24&foGX_RQCZnCk4;)hp(4$CpjrewJ98mk<(2s*^xiIyhZ8+ z7GKUj9F<+p9P)3o+O%Q6KPbkd6@J%I{+#0H%n}Tu$$)N7I%QInnSn{c)Tz`MN*-(K zXxTq2?nhRzn-%E0_MljqnmV?8Tc3cjy-~9TwoVD6R%TR3pe0jn9c9tr7&Zx&Wb5#C zd%Ufq+patXkE>fi_aX|K_V8OI;aMKADVk)M{gHexdYKIdlb_`xjw_!BoGc~gO1)Q! zhj$73)zNLFc$!f`6{`oM2PNPXMM#|S!8cHC(qyL)&Gho0Ouu;fa$(!SBS#L2Z*P`c zZB{fM%u|u|+FiVc(k~L6Sg7LgFZ=+pXY8w@liA@-G5dDW*u1r7oN^y7#re`oC1xWU z=s{;8$R+VNCjtIIMFES75a%z4+6DD%xhtcBd2zbZS+CrYAVHiew<4O9^`;mw<^Bag zh8nd7o4uRf3+`mtI5^@shW_Xozsel2LbFP!@Y9#*UNKi#%E`nbf8RZejK9C#JNZ`= zrxl$yGI6NLBut!?aBkv6#?9EfXY+e@*IPoe$G*!u_wRWg)#MZ9kL8EwHs8oT`p?Z1 zKg)h03&#t!NaXXRJE6BAa)Nq+Ml-PatuwsCkpX8DZ2=yEAxMLxyg$X3A*o@}RCt#M z>neQL1qYUdIx2$+m5MFnyH-!5W-TErRP{TKPz!)Z^iZ{E*9`lgKe-j|KaJPQ%f-*! zYO{R)RU8MmlAZL2>pzg%9YG@y8&V{AiR_oQsBo<{ST(jf>jk8tYEOx!(&$?vlI@}} z(&KFx^sI$cGb;5PaVkL{WAm5J`Qwi{OR=ljGk1P?lf7JVTYgy#890)S9$xb-`#xy( zvj_G+C}ub1IQQMLL`N}8B<>+1)hQQQOzNGogy%BheJgUAG>{~Zjahp0m}OL1s5@pE zg_x!H<71YgwK2<33QN|DS$bQ_FoYVjjIx%Ah*{doqSTmW6vZt0yYyQmThLQeqCSOT z(7C+P48hXJ5CXo0J3I@i0?3Ym>;G5o0kZm(*uxC01lB>&N|UFwEfmM|A^@|v9mof5 zM_FKOD_v5&!l~6q13t9zI^u*5{H(03LI`nvnR#mV%OA-lAI|@6;liDVE6`PwotAq& zD^D3W_Ky7B7xK{fb$%@Ay=(g}?v)?7&#w59j(oUpaUaEO%?jMfyid4#milCvOlGvV z6T10z3AEIFm0ZIcEcy#8#8q1B3d<_53cIny^oq7ZQ*M9sFd4PoPkNciUtlz;vCL$I zFu@WO!lW|J03t>4^CTR4e$W1$m-l%H$*#BT?`__*ck?;&@C>|KZaRFLRwDo6qG9EV_abfwl&p=C3$#FtxxjC;96J7!vR~KBapNeC~%G zYKdG9Kw~_thEP3Vx-49cVk&~uE40KIR${R!I-Z5Qev!eUxPKMfN-4|=;pGb$NDMb3 z5y|9w-$zG3_!h!+m%KA)q&Sz%$b+g9s7NnW5u8mnr2H(&GA=uHP(yhfGcCgs(#6lF zHQ5Y78nZV_6x2pCx$WU;FEIw0OPIyxRcZ7j<(=~lnYD`fKr)rf1(bPpQzrFMsd9Z< zQ6WUK;hZkg+eo02W}xVBH7P1t;AhB%)!=9Jc+BvI2MG)vsPZ!i;`|Kh1T6s7FgP#! zabC6sVZGek{1;YM!<>+3_1O5uS?8+C7cSgh(tw4(`$4|O8t>ct#(prba_>kRIqyP= z#xBpErg!r+Y!8wbusuj#j8NnS*W>PO&YfW`DZmT*k#X7TaMVm{EwTg|Z z1DK@}=r)g!bqOR5_R z4kqK#a-(0gp~&iRCaU?Ls5%Xm1{t9LGv=MRj^|>)<07>F?@;#z3;wZb9LL0m{O{oH z-@Gd4pE@~`1LCpnJjavjJBTAWuOi~6Jqdl-1}_qPNMZIst*156TjMYrJyA%Da;O38 z=MFm5Td+AjEM7&%04F;Z=rk%$S7?vWf_>edP0~f+n@78B0w|I~fPD6xItQn`flaSs zGnl>30V?(Xf}*-o|3jaDe#n)-*6oI+vjqC2Z@{;DbZh|U215_=H(IrJZz3?L9)Wc0 zdKs-HW^Yfa#O}FGTSC=8aJ_N*qE+Pt)smqqDbg59ibWSCMX4%^>w^3W>r%l=B=|lLSuVRc`>PBLQhct8mPngEa{^ zFS0#VRquuFxxfalm_27ge&Nhz4>haC2MVWLS^A>Ynup6~7UoZyGy5s|*oCu3H!6V{ z4quCo>Uv{T)26%Uyjd#$vSm-xrla2P79IWWo2)O%8}!M8f4B&G3F1B|wL%iQ9)OO^ zXaKzx<$_ALN$p8ke?2_X11^*%o_hz+g}AQ7$O}xH%geX>&)>#{_UVp8p8a)X3dHuY z4PSAIl2WyFFYO6%0J=ZGGiFp}(nLgY6jlTfVJUVa)BW);`8)YemHdtT-M>WP_DT7c zd`k#+-KM{&Li&r)%5?=}z)7aFLPn}%h#awrWS11Xndz(-?tWQ*`|br{{e_Lc{KA~_ zWcmw>w}S1LDba}g;i246T->h#4XUi1Kr(ZZ&={s8=A6l>d%Cig-MV{2){U8El-S3$0Hp`$i6g45rS@bu<^^tWhmKe`J*}%kV)s%+tr= zZAWJ>hljy40GWuvFqqP>-a74V=xac`MhIl&A=)#%GEi0_ohRcGmuGq)ZYKsh13Zg- z3<5&^zorvtM~Uenf7d%GAkgaN?G<2!vpvX)e%8o*BFvon&(KpD4gmj%cOh|*PXsPy z5d_7i+#;kKMTl#wHjiC)pqPhR#OIz)u-pI;?3!rn~AnMM5;d>5oyoZ*8crXV9yJVeYEb?^jFhee&|sikOR z%x8J38QMYCn_-}2^|WZ5LJ$;H??-1SAZ8|@mo8QE3`EyIYfxa&BQrcb-SMnLz#JpM zlYC;3MpUQ-6ZTamEOwDc{6jFvuT1W_`a*W=?DBzW+2>dHcv5~vd|BQq__(gdX785o zUY^-ENFL4(1ofPG1?i51BXP#ZKP-IM5pVo0|bPsSn1 z$1`A3lX(;;wM7J3Uud3YC)6cRXW$tO-n4MO7OHA6pfi}n>3PYU(+_m9d9ii$IPM<(Y!Kc+zb z@tFaG*{ko4Uu9TU;9(Z@F^A)Vn~dHxzyHXb0h7+P3VdFOZTZZ-9;XvM*>ZXLrx^ip zwqVl`tuU=BV940Rva3tz@H~>K!{nLbTRI)ju&J9Xg``>nNnJNtOA0r-!CaB3?C+nP zf);T+Gox;@>gT-~C5&L6;#;$)9O!%`u-}-7xF)9(pU7!5rulox6FaQF$eQF%?bEhE zd&-QQ8J0S-+whI$i}PusO??yk2Sp`gmcv-HZ>M$b#|G>jnQbT<9c+w_TN~*gGhiF@ z$Q#-#Ey1vz758r((duxRna}VE|76n;{j{p4KVMAt%jiyXBl-OXc-Mg!Y8DBc!erg0 zz;?$U=qxl#-5ad~!(&1++sa?vuevV}zraQ=s#^4Ip9z^oDQQ|CWL2c?cbViW){=@f ziQm`Qg@Wt-QZPKzB*V{kO&9t?TVqJg)u8 zm(pB1eNuz#<$=H0jwL&3K9JpExMS^q84HQ6xKmH3q_wuk#)NcihsEMc^=-fWOgL63 z`J~kWmx;(1rr+p`i;rmKwCSec7&v}3F#CONULt$ZfA7FYSv1e>{=ttM(MRr zuE}?q{U1W-e=r~UhkwYQGF`!U-_4XC$Tc&+`>ud!M4r0tA=ZfU>w(DoD~$-Ga}j|H z2ka$Sq9QFRx`&S;Zq}&6tMAOr%bWSm)xxnKfByO7NIEKaJACD>=UL_RZ(XT*Tg|(`zrg)n58OYPel~@2K6Xz61W?xkK9hSo>H_zencng`P-{%(^|)ME9gg zT>oX(l-X8))?z{8{%+aX9ZC}s18UNuiOr->JlHjRaJPfX8-Br_#w$tk!?~+h&t%#p zz0ot+uLZrSPh!FxyeU7Z_vWFznP(0!A8j^SeSEAY^Qf8SmD5MjE42DBZC<_m-kk%h zOeSv+6TLRA+Wq6V2Ugd<#@U$-jKO{VOiQfoeb|C=Qm}3t{?$u?x@Ig6Ki>`>*iZFv zY}b{aYis1)^mDEA;RXDh+jjaCoV~l6C)hyPLcj5|$896+=ayK!4;xeb9V<(+jB;p6 zj)Wjb6!jv4J)8LjYAvB~_|;rL-88rZ%BYa_;o-I4^SBM*a0lu{G`$PQC0w+py~D!7 zpom1cs~9w}6FA5L7qxi*xcuBJ7cMlk4OXq%{u7&g<;`nsAe-=Rtr@UK{z!g**%ntB z(S|d}eLbAE5L=K(H(#5?^Lu~g{sj*Y_)V>-=jjM6;Y8K^b`KRBy~8YFOT#vV6^Ef> zBS9*7tzqJdhJ`zED+t@=2hTXSZDqQ_{rmUo)3;B*7oWg?FaCCA>%RNUwr7vkhDvFE zzB3Bmt|*w{xFjF_5XT?Q;GwY6WUG{1O&*pHST%P+%ACoKO z6qDKR6Bv*d5a?q!!yQI19PI77cYRFiyV~)=fx$NALpFTtP+rx&=^GH}P+wt=F1B+jwygEHMo6 zXO(o*O#`z}lkI4c+iSs0w!(k-47~^Z zE*issK9DzvS$c{+1VVPCXflwam8%(#q3d_cYw$w*|MVwvy>8Oz#3!aTXw3KL@dht- z`3+t^@>Bhp20#6eM}wEr>IN@$9o05ha)0%kXVri2vq#<#+}#1)pLnoc{RHiS;g1~G z1>w9Q5f~AqjljAKfh8VK+zMW|Q!B(c5qET4s~CSR^Ve(RVo-iq>zl}YQ5+Tx)>G{% zW>i8DqwJHn&YL#8pV6DzaszJIe+Rfb)+Lg!1Y7R23)5v!e{k|fGniiUNy)ei1q)0 zWT=7z#`|yJ{WP5q-bdaHREwROVqgFSvUWKB?f;#>$lW!sp1+7~uJaciIZ}0m-TGfR ziv;kmM(U#7i`Z@`BsJnQ8k^NGROjJv1o#DoJ>o0!^b0Ksa0F>fJc4v3zQ{atyNc@5 z0q>QPH3=Ebz4+LsqV}DZQc$fZv%TvNw~%hYNiSrY)OOHP1>~h1E|(- zJy=@wg$LXDj4T&){cw^PHEZ#LfiCo;m{IWYro<-cD>k{_ZF+h!_^>Wt6vb(v1AzIs z?xSRQrX*|Wf!xiAXVz8?hI%75UN?13Uw1y+rYsh`d75*`la%aMQPFy6&H~B`_1J!R z#B+t0s!>LvkTN}ej*oaTsabQ>@YI<~siFd<5_{8m;22bCk{-S6P?y(J)KMc35m_jV zK+imSkFfn!LQRn)&U!`oPboF?Kr(goeITAy%$1h<^M#x-;x_@hQhpQe>6b*E3cIQs z;jFNHGaAz70aKSk=qnndE7tl)thFbwyFSdrX_NqWEz)@FOddu+c$t^N4p*-NAJ_EP z8jdrDvl7lh3e?bF)`xbP8jT21u1|z5rNXvS*K;@dv{O_tc;kCLa~On`=iU zd>Bg9c$DC=C0as>J@yG5_!In4I=UEnioce!^LylvOJxsQLpfifT&Q5m(6R+Mq!16l zk44IZLb~`3UwXACX98_USpkte>Xi`X% zn=yqa&!x3mxKQzeAx&;h!9C=(BYUoAPo6%<_XBpn8FLLGTI_)+0}fhH8Xg)@JzDG~ zwsTBVqG!4iv688@P_~##3u)87)XG3LTR;pfGFDIy+}wftOrJFXoi5*aVQNHdZ1WY0 z|EyGgqig@$^3S~SWvk81P#PYOwP^$#@Ay*BGVvWSIV;}#|1ST=ciMK=L^KP zc>ig6miU&mklufX-oHxkbAEVDdz#A*wFV<*uFe^C7R3>Qh$hM`PUR%!jboW^T-Uff z4(uBJ$!wM-b8MG<>H28EyD%@@Nt`A-(c}x2ifU9UX(J@IuT&j5qO6cRdE^M>=jR*b z_4N}-q;VT)EULl15%C6PEG`E)O(2NII(vqVm3P;Nn=M+T^O?WMl?n`^8*-)%S;Xg; z4FAI^td%EvtJlljLRIfubwD_;OwVG?qj@sO+W$Yxl!3UaopMC7@Jz$`%IzLam(fzL zKx3@iGA_gF=rh0}|F`tjV)g!S=&N1Eh{i%%{S}mf&*B(P_xg!%V);NH@-K7}=lPZy zK^{)wn4|&J9$g3ZPLo-5Xwy6yl4%HzlZ^ifO4}5HOa!^_Hapc1Er&*^@HWonxM`?j z>8Dj!t|&P+l<}#g-jVR5=e+@pR0cmE%`<{LIet!8Vl;bOvpfK8D=}%29H-&%9}3c{ zI68V@9g?p0QE!wBL(1`=tE3!pfE4z2O*%hGh|MZWL10 z8nSUUl9xI&x}p#muHnTT=*lFv6t zG&(EMH>ks;{;?C%s}G`C%B|G`5NGB3<4m4B^#V%Q7+*;9CQdRp5BuNDnhda}d7 zWn|Dizu<09R4m#d^b?L>)nQNBM9Fm+oX!?RBtp}byRoWxS*B*4l-)8WM z3XW|t^IaBlq?lQ%7kM4_%isC-!bP7R9uqjF^@{ZyyEM&zVrZvE30;Tfjfx#}bp2HD zx#E|aE6vw*AitEoMSG$CZ1@sjUZH{l*H1}Seom-rFEJ`INzn2M13>A8kId-#>_1kF zSTig!Id4r)T(%>+L(||!{bu&goZc^S_^7DPp}~pqjRUMPiD@ydmURlv>fSYM<@Jrd z#O%n#AhTaYBU@0D2)oc|`A55R#9g|qg6%nDiVNDCtuf>0F3T9PudrkKgiS+t{d=U{ zB$@2qdrT;K?Py{PwiyTQ_@F#?}m5W_^jFQd9EyaZi+&6Lb~`+8rdP#FuGY;BX+Vq;GgWa$Ei!6;BKQ#WdtJ z8Y%^&PShCC4-$Wkmg_ysOoMus8F&YHGqqRgS>`hctyav)9UXeTrh97?6h<3?tJFdx zP;bStL}f8TqZPngBs_m^TNkny@0bnQVb0^NITa%Wa4_2F5E%uOr# z)|HqvkO=%Y7}~ylCjU`Q>bC2rn`|%Jb<_0|YAh7W&#=N$bbfQ~6!L3+rlo}ZaL*Cr z81bvTCO-p^|Tlwl)G*S2`*SNR44v6$NoQV9K#IgooD5wsWWTEU z3Z{dSy=V5uW#mz$moxhlw+ziPyT6B!geu^_bnGNTVDso?YoaU2gm_&#{zV#4$sb z<%}sP+JH1mWpgg$wqdR0n@F}COV8Yjy}|7c)NU4@>5nq42FVwh@qYE6Y0{V2d_3Ie zj>Dj}WqRNaZDl?j2CcW%!l3KX;;xN}WtTLVdVMrB-(tZCNc4B_6CnCknm^7d<&*}1 zFdl`)X89n*!FNp&AW_1yHp+}_8$PJ6{$PVpHzAfTUxqrAAY7K;3BsZC7ul=G8!%qHsM6MqkL9LK$-gi-bRHUqx1zUk zU=h!E^)AwTA(f8n1Oy)jt8vT@4*h&8>7rE6fF8TMUgZq93t%&m9Wj>IRO*T63FtZh zrQQer`bcQF-7~CF(MIp+KtqZ#FaV`ZH312hThQ33M8HKZjWYbGjDSaIfWfJWKIY-{ zY2=hP`m9SJXt4tIC(WRlI|l0V`K3KGS%!ElV9YYP+tShE6lOa7-g_U*PszW^@8pg8 zFe^Ix?elCf8$bE8UhRuJrVFnvJalLwpPM(ZKKY3A#GoJN#0+avtZzuH!QNA&vuS-% zwWcZNcK23>S)-laY>Bq4*}KiOBS_IwXBuRW^$A@OvMNw#jxF&CtccY3ywVs*<;ZnS zX|`XTn&!hsBqIYHh(L5SYZ`*;VpyYQtZvgOKt{S+2#Y`ni2`i3D^Xj#i{)$>nzy@I zdXJ!)n=}uuOuC?9 z2nZ6xY^7$5ZWyl_bCjPUo)@U=hPd-ic7*FJ)tDFeLupeXR~&eOnC)M@No0t?mk=S8 ztgY`)l2-w1h3*jIj7K$e4rM`?2#oz2{7S1JV?t@{$9jj<(NlzxK1|!K&Oy{h)&qWhzUF8qmEnov&j$Z26S7*gS-fNqX`$S8>5ZarB?hCeQbH>T z2unN_(8=1T)_L*7YcPh$)^$7Ye1rf6EXdw|uugH@(Q^@J;I=$;D%ywIk!T$iGmqQm zSpPaeo_pOX7D0CT<9=7M#<;PKwO66f+}y^>u^Yw99nHN@?y2NtD;BHMa zWy58d1(YYEKC(``6YLF*YUcQ4(uhR<% z%gj!z=QvyUEzW^eej3khfF#AwDekjY zt<$xi_tGUpL!TjLXsFKs{|wL5R^%^b!eBO4%4eq6eP$N!e)O-f=~(}|-=XIS!TdG< zxzZa&8&0xano{>U!b4~#4T3c)k!4PFHR5*x?*pvs|ChVK0{e9m!_5o(6?XwX&+9U& zy;oN9&%ET1X|8~94b9$*-QNzz;exO&giPNimp5w#xwEr(E`>&1T z`!9wC8EOAB!ukeT!oq^w`_J)XJSXXWW&aB`;FkKIZWh*oK8?BkSL~Vl=k#m|zF@>v zBk9?AzxEjtVs^-Hn1pB08uA(+>e`Oya|8NI`MmgzvUgw5+J2$#9kAZ0{idv40bjdv z{&{Y@V(nrzGe*+NebnId%G%Y|io^IyUIpK~ku-k8&rb$MCZVpjT96GUa63YwpMU-q(Zlb9*LbZqqb4fDWJdhTh>9*$7YptRipjk!A#8{w)uva0 zqfsj?ki@$}?#?S$v^UVJog5%E7UCKr;kDgkQPho5QoQQ=cv(Wo@G)ai#fAgru;5D3 zunJBOT5s^AE{pTb>*~Ip;rj-j)b8TE@j1PZlYvu@XLrSYN^!u!0YmzNj>WVm+RcrkPjtai`qdHKa1f#4%}eHIzNcEF%!H8=A(Y+%2tic^2kRV zB0)mHt7Bj(r4|Zv8+t`(u5B>av6w5yHwql?g9lK*uT=K~q_IdFm>k@x|HU^h2KG&r z&((L7;0F3k_K!_}dvxJ$(KKZ{QaoxMCVVZ`T2OSy+2Qs{LCs5~IACmsy(&_jHhtJk zq_ezplRIMNOg!}Gfe)H)(2hF0xgPq!Ic`L&gp~V zL|Uf@?{$t$b=Yg*FTfuezEVLNykz;nRjYyx@Q=tuI1GHftAua;@{2$Qj@%%*YF-$6kls-0-m+ zW=YRYZJ$|0>B&nwwHIEO(?2MjIddKr8S0grki;e?H5OieP>e3U{eb7Di=E~SyS@|V z?4fCf)8>^d#X90WgFPG}+Ccy2N~$?pk&`}Wi8MIv%o%hn(Y~%xWk^wTR3j&)&O)h5 zv;b;xp;SAJcmV&)^jU~-lNl>C~U89gnOa~s+ z>vhvnYty&n^Wp9vz~QjSkDX3CzUCb>CT$s>*u2w-k*i+FAIF!zynWkA6WX>fA3Ncl z_s50_LQ>lG`yc3r-4K>zyt)XWjVPCeD5=ksmaPA_cNK05YvxWzJI;;Ds$vm?UBjM=cX!Cs~H z8;$dO6nm8=E!3n^|H4*DwkBp9re}-N`Lu*TljaBN`Sg5N*jIU1_?H7Mckaw8ja`kQHr_CDRHf=s8*SzTcJ_TxolW)!q-JH05QOZ#>c z)&09XeGE&>PfOX}Brz)^Daq55>dEx!`^<=pjsbz)`gY6d+@)>{XN{xt#cecgTkIiK zlkzlp28P5r5`@4QA6;Xod%81e&6F(XW+&-XQOk#m16Vw6w&I2dIJJ* zo$AJ3Q@${VMb_UxvRc&8of#W(*@-d`+|F5Irb$UdDI3ksjmDg*CcrQO^ zL{X&HX<6rR2Ad)+SE+WT5pHgoVB*wTM+Xuc9uY{3z7S_T>h|C~ zkp#ZK2N^}Z(mW$kJICmQa=!+2b!kAOZ%KG%gjC|aF1RGf7}0=6?jx)xPV12fr-@WJ ze|#O!)_P8GKTAW_)MwEJ!n2P!QMi5yxnoG=HU{)x@B?xoIc^7qRx`XqIlT@L9B2sO zjf&y;O;(oG)3+qZ5m4z*L>v8^(h22(e6%Zml;Ur zg1FT}DM!{6?dq|Ks~2vQcU^q_wM*!47xyouJGwp=Vm@3@#m;`dBt0VZy{p2tx8Ga; z;cKpauHr3+*iU?o$Og%R4_Tq7i_T{A@w92W5IxjWlIXEi1laWzIwRVG2h^v>PGq=q zO!*~B7-k<%;fzgNnfcn;S1+C$lbbu{+!y6nZp$^!^+HqTwP*j-(uE5P)wrn^YwwFVGo-2W+O`2$E3;>iWOwL&P~0|9EpB@iOXcb5^f(vjqm;M}v?Qxy zf~wr|G6%J;LiGd=`lL0=-M;;0?+z${u9?-&17uf`TU21W;X1^T|bY%kZNNhOB|i-aC8-#d?2q?N-3jiQw!#9HhsuPf-Q zL{@A5P$R8g?iunq!YOl#&k;67?ZBvXsIDN|FX{Kds3=vn^B2)suUQUUy}UpeV{t5= z>)_=Jk#Pe9m*>&z$wUBBQ+{UW z&S#i&2~w&F3e4b6n{bm)PTSP=?xvMM|Gv0}(7<1Q+^jJiuPHTuV0`o#(H+704uI6A znNac*K`JnMim#$!_#+E2He6@%3)gK{W>g(Ce96@XCkgU<5{TbHAuL8tI4s{fe3(V6 zv)X@T=7G^F;&=3c$=ld!m&CSy^Nl>|8$K_1zx0*ZBVQnbG%4qy{0|FU$a}GHfEaq)+V+7B_OG#t}jce2&Pmj-$!jsJPNsHGa={a zV2)uxeK*A_Dg{Xt01eVv;-av8NvIbLEf~3G8ss679umVtqV(Mygrwd+GwJe}C$6D& z%%1HMs@S}#l(Z4XWsm=Y>C1)ZR_(0ta`jXS-UuUeU%lL-#qq{Xc5go~$Ek&Gg5^&x zZaaN^?;2kJ2Isa={)2pU@a(kU=a_o8<^l_%qw3W7d1tKA^QbGU)3oNVv*B+@rFsm= zx*#4TpBUjQeefd1zf}bDkBZZ)SVqKI;)F>nw|&Ay`QTgYm+p1r8LQZdkF{&IeIf69 zYw3P>MQnonvGQ9O^DJz|jo@p$GG+?8UeK5v%Zf3D)O8(afARI^^}Uv;CG^g)o>F|q zoI9I)6{%J9zyUv_2QzAH%lU>v(8v4bc{$?jf#Hr2eFQ{NtXg&D*2SwNxV_OYBgAQl zfH<<9GibsHnuj|Uf9mRPKMwOnp@F*NJhvhA3t^@D)w%zQ|3b(^t=Fx{EWHQj9Y@xp zmm%IKDAEw7kAm20^a!m~!l%R#1<_>(tr3sVsuYR&+W?g!%(x6_hzX-8RsFJoDlY8C zXv9Vd&CG*UwUq>UOo-#@BB0A!Egp_2{}9m;tW66eFkmEZ=VUmvlCNLoc80~~w48GU zhoXxE;UdEw93qIH<8$u1et)~ZDircBi_43T^HvytLDsp_YjK5;FZv*?YZPofi-#e` z77#8OLbMTtD2ygDZ-ESz4Xm~jYe)7 znlf`FQcaE%qR1PO7!g`8DqU&KGi>^+{U7I&% zZEj=n<(eMiAr`~p<(u-&^zeB{rz9s&IXX}N=7bD~7u`)GFzyYEYv(f}EHxGYKs+G# zQt%AXsy>3|Bz=7Uezm-D?MGXB_ulf+I_A$Js~hL8$(#6Wc1)9DYexwM7?xe=xBlX{ zm!9n}e}GaT@3266XzQ`7_C7T#74v}9(^f0kSiX21S3Hg8Z0(ooT(@s=f%VeKb@G-vU=Fj-&xDwj}Ck1oy?j0M~>Pzvt#F3`-Xj&I!%5n zren^8?Dmo0rRTQS_90%ZnI#_D{K=LcJ+^$Zxy1?j!^sDyrnfFU@!gRpQv&86n^NBj!BEqe_=T?>Gd%oS7X;fh zfvQkqLsQy|gva&wO#=QFPAG}W9D4zAjHk6|*(%Deo+aAq=md0TU>?;L_v8M4y*jO}ZanV!MGIe;)HHLS{QFxWy@qIS z{MKPy*BB!JwjV|{b(qsz7>DlvcE`XyYiA8=`o!@cRxkZ#oZMp6iKqMZT5@D~-tnjU zjQ(C(6XJ0sj1e{sDly;t6>HT@<$-<36$S106*o|4gJc>7py@a2(**R)F^FH$v~z%3*}Q5IGK zG&c|yD*oFaN-76_CkZih(8v$bvQ-j0(`MXL-RAx#)X6#pLWlN?G4xT(hBLqkGP{Wsgn?@7T9nMkeWc06Frz0I~#lm%oZ< z9H#qnn*<2wF>8m$SF>>DU_mV6#0f<>x0rHtjw+lX`mr9U+@!70egUf|8oY)n>X|Ry zEm(8>kCIK`J#Z9|@Dcb&8=E+N;nSUjnGY^zPVE`x)4zA8{X^xieyQxYZ|kbGnvMNB zdkyU^{ObCyYmqiSDq~oBO~Ik?E>G@wYw?sTIc%GJFLQE_Mm39{F3F1$9`tw~^C4Ll zg}ugnm?9f%Z)Xx%5x&}ZSae^@U&){IOL_FVp^e!kZLG^Ieg*W>3r0D|w@l67Jfh8nfo;959fr*YIj}Fj)Xs3vS0$?69T=6$ zF2(1rdxCEsCVm@J|Li_s9$eQ*nOZtGJRKL~2Y`b_2)~voXRr9-7utCkGYJn!LMIit zdHwvEZw%R2D$gnxtty7;K5Qk7Ow+3Z2o_2O+&ui~b+%+z_dcf|l zHg39eFsIL&bJI{{-&PtBD$Ccmm_56#czxbaf3%&leR$WNOW)r%F#EZmcQ5|%xyi6% zXfL@8_!%SaTn~sqKezibzI`KkDxI zQ!WPIHJVf1rB3Hm?0uo;!4E+_8W+6sRQLC;P1u!BQ}~ia-#Iv>=jwBJ2EW6)Tpw@t z%--_mjL&|oqkdrVovkxJeR&blPCCy^xKkZ?0r~AEs*ga&I!If(Uy}rJe0BEPF)ga| zU;bnB9?ip-o~TaCU$5;-NOzC!)15hu)0f@cJ!Hu4o69gAXJ6;+zFeMbp2OISFqcS* zII_qjDK(bl4rN$??c5p*JVLQC>SFnaa*3~RFABEox&4w*oT2aT+nbB;?(W^|=`&BV zo6unT^uI8w(E)a&*|@#aChr}Wq!VokJ=@GXIVH}T&@DAY*cFxDwQGj&ZC#^HE-*|?X_8#R6+UpKHGIx@+aaeI$@F==My#%Z;{-@=KaM)U%nzwR5 zzg1(?T8>^lsMC@eqp}(aLid%geRtuRKGkAepZVE+=k|@3q}ZM_`mMULrO$w^H{_c4 zoc-8^&NBx!3-3I!d+WjN8hM&R6FcM-_RQT`kkRhRjf0vD%8ZZ88r3SfduoiQf9Av; zQ}YiMw(GeJDjaD2>se`FE09L$2j#s{b(7)i^2V&miC6VO2)#NR0VjoYtzyi3JmeiL zdJf>Tl0=zJ^+X-36@gfB?fA#az0bp2HS&K%;<yWCC#0oKaE_>6`FU|pPVwg} z@y-6+-2M1QTCcw;&;Cd+wVAyA;*KZVh&2}7pshEU#|PU7Y4`2Z4%+^K{Ob*TzlZ1) zc%7-KI1|CVx+E^gIHHz!rRDlO7z>N8D%l{4l!P!td2jvTnAjofudT~wANt0$2$jD+v2*7MVH`}U@IGtLfBVLo-a_u~qT$KO!;1Dk zJ-TJ9(cCXpi*Mq+%tX!9hhJ-{=3^KvffP{cra1vz?IZDzpcN2+kD}Lw298) zxz35gQ}UH{J$tWzYhhem_R0}0B;o7E{ib)_u?dAbp81HGEfFbM$>H9vHKnWbQd}WY z3#b)LGfVuDtwi3g7hWJ{PvLK0rOq~6S%`Rbzru{1oDA{De*M1g+iyWmhm0IrZ=4NL zW*_qXChZqBIG98gHMBRj%Wp7lU*H}E+Uzsk6mSPV1HW0oW%=w5-4uBheqSs7Tezu@ zp?e4_BfsM*NiPMP#HO{*Z5K8_W#o#1nZwe9<|pN@(q7O;r*~_Vv0zLGofL!bx-J+A zIgLE4htf~%Q`G&^YdSp~Or&9Kz4Wb^s{4WLP1KjE6XT@s#-)(hrb`On$9f5~rm(Jy zkLP!opVv0L-LSTCeLFSRuMq9Qp!ztUT! zJjx%AX`p>`f=CgE<_gmAT~sQ4AXYrk<+bHQR*h(0;b@)RrfWg}go+t+vkLkpR8({* zo44@D2a9KRm|HeOIOOWne@3_P=EIi{5azqa9Nd*WVp)G-{)6J<6Gto0rvBMu;rI2! z0;QsW7)lS*rRMf*BP~IE;Sc8v!oOYK6%{C{ef|WXj?r;zt z@E5=pH^o>MLPEOjR^?1Vmr!Pg15X+b760&!VoekJ&)hVte?k-dGqb;_DQ{i2DF4X3 zPMzi*$zN2~y8OlsVN2Ei>4?VfA2)XY4E*~bLKrZ1^x$1LneOJU!K25P)?^gZ-eMlw z*2+AHdSxcHv+%{!q;VCPh%$*cZ(!QpXd14SQXZd!tA>wr9C4#D*el#^*ekvkYE&2} zQ(gYJ*yH6wjZ13ZZqfEZ+2!S(%4WYYb}Tz9<;uN^Wd=CMs4@G$cQt!q{Fu3OAcNfN z;;TsnsigTovKCBHCb`=KSDYl}-jE9)S&Et)5#8qwX*(jTS*T}3&pG(63%-+oFMeb_ zT<`YTy`XnY$HAlXoAueXuy<@mb{>#Me2pNG?_zH7d*I$yCKn-Yb48VdIaUZUIv>zq z^SSa_l`r5ok5E@rQFbWafvg3UD{8V8ra*227PDqivC0vy;g~n=$+y^(Ce(R^MUe0! zomOEkQj#PpF5txzQ*ps*$*-U!=C&8aeAc|%>}`DqtQ+5^qN4E=Q)aj8ylU~3{z;p* z+VYCFWOZATm)0t`kmbuC1SK~L@K4By5A5H+v(R+x{^{-FbJvf1@I4BtwC&Zz8rN;Y z@?ArUXY8NYJi7bTEz`Qk6njUcM29qw_4RKzk?sh@Z?#RaE*7eI!|GF!YIl1EK%eUV z5D&<2cAwcl0j%4-|Loqe<(W&){`|_4%#047x9Exrd&eOY+FZCO9QvYx1c@J4Qp5z-E_wL!{t9Vv-CIT81#x^$rI~nk0Oxso zie8ILm-{}rqlK&(QQ>+;eR0D^4EWVeOc%B({>K~SEK%O`t_aL zuaPaGYm1eA=Jt=*nwaT}_lo;`_|*J&whbPir;$>&Fnd`?*K=kG%H z_%T0{4ty53R{fl~@ejX{nqkaDO(v}_di?s?z}cw^H{;4`MOs@2mZHaxbfE$)a`lwM zp+a|zmngOkY7tcOVtH`4;nO>f**&S1D72rlb7bccZGs}BFE_S(Ga;$#kVe7jvMHj| zxX!)j4oC>?GQEGhCkHgsHaTetw~du=SGXR&kl3STNaozqiFs#^9qegp(RE;a=hXBL zA#MBIYdiGD4TyDljh(^#DIkKMWD0a?RmcFEtCpDJowre*6AyN^!GDjb;9c+9?8T|*iN zn~Ij zI<9;Q7;(%SGG3dAy~CZS@&jG2;7|AU3XbSGXJ8_G<_0mvg*Vw*;d$3+`8+YY)U^2i zI!Jcq3_iS$l#T+NLBu!Uzf?o=EmO~yQyhL`FQhV4^nLUWJon*EtP}Aeo-1Ox8=gmW zB#nw=&+rFxUcB(;4V@3MB0W`D@SvC;dPf8!(i}9XQ@8+ohja&jI!6%BTw`pnBMpXJ zjj8`1b8j9WRgv`%->Q3Wcc-&;ce=B0ojs7Go9uxsO&}okJ}y6Xz`PzK_VrEZ)o)nVJZE)D{k>)rQ%M;yO*6vvAqUH4k?yo7&x)(BV11Ab(xf^usgCAK6~BY}RNNM$sx4 zJU0V56o5+)oy6il02k{crNSg}VSvbIz@!7T%sr)5e{_+%?hoTibF8uX1FNQG*=CL@ z@{aCe|E^1)6k|fsfYgxUSTd<@ak1oW1Oo=9mD)PjY~8+Lc?ON{{!s78qS8Jo@nzi# zL+#y@{AAH$Y8-auva`e|)aMA;hp4oiw5as_)zeFo%BRuy`aZT}!}6JY zGo*X(esQ(|%<*#EWl`em7^1w|?=j7F{&784#V@1#EvAN(OW^+|?9%6?G$S3TE|CUc?F{+jm z)7VTtov@PrL_UA}s+Os3CZJr_wc)@c5x-ynzRfXYTDLyco@S;smq&4%)7o$7h?I+$ zoWJEiRFUTFc5=eS*POo<%^GMY-_oVeWt69f-1=y&&}A0ew|J~WFNKc_y}|l(VZT@Jt;k%s z-(#G$wRot~4V{V29$eKey*;iffBz}2dDHrLdJtF1=6<|AvbN!C2jBaQ6ZY@zux0u` z8E_r}jl)YNwXSw9sOWf1IktbynEkTh_=K@Ap_IEH?;kRj{J@MnoC)~RU`{Qk6?kYK zr_}(^3SEV8II(hCq;anm0|9FR2cGAIouQtv*)^Nzh|R=PJz=L85{-3o{m+}6LyzoO zG{jzCv8HbLxC67gbeVNvoOA2Xr`(q1^OuVHlI16+O*^q1N&dfm_~-zZ+?UvM@~TG$ zjv6v_@7!WBv}3=S-O6V7NmP25Zg__z^eZdw<6iahwlOx>&Af-O#wvemR;YUdThl+V zBkF-km28bUn>&B&xnNKl#d>p|Qwc!W;-pBtG zMPy{bd=tnix{|IzA5|d$wM{i~i4%|`;Im%&Wj$RpeE5-6f;AKT*Ek3-}4?oG55w$nP|atyc@)KkS*$TZnHEM4jX%`(jS~$D;92#zoR; zM2VmV3wy?D7`lF78myfs3UlL?oR`4O3`M};S>2pBKH+pEus$_`0k$NWIIFh?&ZsS_6P)YdI5CmkJ$`oKo^0?JRyiD z_b0qd0h;l9hEA4_UQ^b4S@SaL{Z=s*V zOY+vs0`b=S8m=Ro2#|F;CFt0vy86KA(Bm+tgX>Vjl53zCq?VTjDJVB6cNi!pdZWpn zR)<#QtrWvCAy&i}qZ(TX3Sw3L0<-CuuzqM49nNKC+xW4FhBRhiA-6()$U(UsCPjLYq!39NmKH0=l*hm4m6@rC=e zcwo*pnlpNUZtu3_l1*|F#t8?_btu=yOMaXpR5Dz>YOik%#_cUZ7z{+g46}9>iMXLug~#SvL!IWR^wh2?QOY+rNNreb zZVZ2t=13v?m5H>{&yv-3W{Gm=Z2yf_{nJw{zGT1qn6D)p4~fs&0UO5l@07w^s{$-7 zsSJ2pgzUzk09H84f>bv|X*W05&)3h=(ovl}um>^Ng+^VSSCg^MQg_0PTn~iA#p6~@ zFlg*QbT z>by^gHXCZHuv|D(P^?^c#e{yz!U!C4JbHwolk3P|5+a1mWj5a}lPb(xfcnK)|#g!Q-(@GMq zM1(U0ZP1!To6B{{4*w?Nx=^wr=(Th13*t-SyDl3_6=OK;%Z#U1VLTCcAo-2PQngy( zDO$=qpI&#l>Sy~-(=&`YvlvxoK^JA8CMt*&*xRmOLiR1<<7167zE~ljENgTiS$|eM zdA9nTl18o(%a`=8?m@IF!TlPo`uMSJcR4PYo6P5PTN~t3FmtJdkzAgsWOb@jtibFy ze0VY+lF3@Psysqj4K!b&q`{xaIwqH>f5z$HH?aJKq5tqom~6J-)6>M^V*NDl;oeB* zMu{?xhCk<Vxf0L@V?LY6Xp^I0ZO62^}N-tj_ zr_rCmtkZd&WVIDt%`Vre+1{j;QhW;3Fh(uOCNyrcxo(}BkMw?lW8$fH1Tsmh&aHMT z-<<`K%wN&b?!$EPYdc-YoQJ{0`0*@k$Cspsz>gyutsy$Sk?0~%vf73~wQ;_Awt1!A zrax7ymq)qUSiq`Eg@2tnswrBoI}y$p^3ts{)Ach$W=5VFsUICOIzaa$98oL+@=-t}8#Ie{~A&&fs594ii=zOhiv{8RU`-Sfo~7? zWcbDgRz+c1QjAr0Z|zNAWS_6ZIdvyKZxC`DOr@wir-y+AQrD058RON)mL`=~8uaL! zOU@e&Py!8O#C~FtC^F>OExSh_P;uuuOM2zXQ3@jLkA1i z^EqMcyootOgsg@ztuDYX1PR_u{WSLT?-yL;Ule=-yyRh}Fiz|SbX;iitMj!n^%G!C zj}*=Dwy6;zI9kM7D@o;o7Zz2-#8fPLVS#dtR8H8^Hzua$ z*1`olnszKGRM#G|F8&MmRXXTFy;etbIzc|AqcCN_Y}Ze%MAg&#wB$yG(4eJt5-URO zx(dm+5(F(8Wi27qWVgH93-mKl87jU@C1n$t>GE%t|3`qU4)UJ~`4@EFdL22*#Gi3= zE0$dDg$6Vl$Bu`l(RXgu&+=K}gW4SM)&pH?!9Ps)rAJ)x^(I*oZ*GZ8+*lej_nW| z9@{u2c6e+rX^K=oPx6V?wTf7xy6TPQI=#^3U*~rs464_4-PKqrO*f7-E|gBKG|Hn8 zAdO&MRNst79iS`@BAjL!u8+wLiBnCQ&R>ci|ZI4ci`=51M zJv}cnj&G;de*abVi(}2{BCLn6&CdR&&`Y1MuOi~8PL0E~gEUjM6Exs?56fFr{h|lUoBirEOuM)mGyOAt68sZ< z8jJmleFlgV#1lG@-Wn|-!~?;^;6y_-3wAk6z9SKYwg~RKEdok^zejhcjzLx6yU-ig z5P+LV>|~4bkkXU9wBSHx9GAzIVr~xv2<43ywEjkY9iNkaW>#AebZIE`jqvsN1*i{# zhrPJYhcx+}Y_fpT*Kd7OZ#Kx-yY2OpeS7#)w8Vo?6p_7hRy;Fkh)G=kazLlb^{=c} zR*^X6`YXh|c6+JV9ZmnfS$OLC^(&{@Hq}j$d|l~zd%&yEO;~GBU4qe#Axt;<>U5_9 zN`pZTwqULBgs9{KJlZ;Q6Fqr882Smyq*p)`3L@IPIbnk;%1@YJPoR7zJ8!ufr->uQ zUgAm#fAwq`9o35x*5ok;9$B_|OgOir&fTL|a<>89*6k+^#PAIreeX9(f9;8X^(^t- zYuJ5)O!x(BuKLWjg0I4bX^oL0t6Qkko)TD|}bt(=gJ4pcJpWE`fiwjDH)m#qQ!DQ5M_b5zN=&j8m7U8g==8oc{+peTrCoeIEJc9{(Nh6>Xg!%KsFbv{&gDwLr4A(-@pPkDd%7Wne|fHWt4P`qy#DBqYL z*hMT7%EZR$s1rO!=oQ#7HEWQv92A%f)aEnP?2L8ct!=f& zS&(HG;v^@0Le@yy;Lw!d0H-N5EukPTl8CN>TgCU>Z-}xnFf(U(4s7mT%Pae&*(?TS zYmcqW7KCrpD2>5htrrHI&^G$$bh2J2iS;_FDfLEPINNp_`^jVESuzR^N~4e??vXhk zmB%SMHfWoK^CysW4Hmz2>UmIDJz~vac4!XL_uv>IWb?Umi0g?(Gv)&L-1Thlr!ceZF#akk zPl|%gW*_#z-Y<%8p0i|BtU$94(r?8}OZr67&M-(j_gpx&G}<%lk3u@=EmoxD3nw>#6Eeep<6_^n6h|SH&!@J0t$6G8I*5o0qKPrTxDpS3d*NeKf_|j|4sa@v5u@!C5t;M zuF21o6lj#U{FAy(-TCU>gGXK8Jh@?LK`7S6-13{JhF{OdXsnB<*9D!{1slvl`y|cS)@@@w z)=$0n5z&JWewY-3lQaA?@EhX!dTf5Mw)pc*{@kuUCx_wxV9)IYF@AU-&w=kbcv~I= zABck4;YI6Vq+&N zfxr*;Gy93x#DGB)??q&7B4EP#<)pvfJU1w6+|tMp--t9>n&agck>I796P!ABkR{q0 z;rmw3k&Cy|WWQRCM zT1+zW4G5lTHu#nnjw&zf;AaZ8#ttfrJ@^2;lJGFRbxUM3)>4Zd7N#$v++*1n^DxC@ zDWuox>y^U#diS>adb+#TJ-YTT{wJI9?G_w;_`Ej1-RE&%-#SA3Q8eq-QT}_Rwy}ut zDKo+d8x=VX=m;f}=U5yX@7BcrLhL~K?LHu6LyFWB*orQ9N5%5F(R z;1|212(lxd+G4lRrYjnaMwe)-9A5S}=j02cktQ;IO-A1E;kk;U>{^eb z_n}vE^P0Mq&K%Zhbk?vTt0(S*+&w7_79+*aS&Vj$o#kV5&f!hpP%*`BNnn~T2;A1n zVNcoycF)|Jk!6XTJbv8F;S)+TI#rR&d7aBT4}a^s!6!5!W@~WoeuKJ}FDxnuJc|~6 zq4wGH(*67cV$bGR3}-r^idchxrkm`iSmk;2(C-iaaJoo%P)K0zr)|3%XQ2JjK3InEX?-` zzw8C4Q)B-97XE~}S1X4#KhT5lBg1Y-UAa^-PdSX|n_6BIYo$;;pUt1A33tV{?ERKo znjggIw)fL$6W!SQoWHM*WAi*esQAc9BI>)zBRu27D+&60p0ir5EJq~Bf-=XfRuUTh z!uIqu5X@nRsDs3Ok;Gk6KKba2UMorYh3k9nDx>SxT(8{oBOM0Dpva(VviA?n|mX}+1 z2~zXdSY3YcvtQ3C9uQrj+)YcJG!Y1!hjr*Xzk270WqYTNFMlOjo8at#x%ilT zu2Cwkq=e1I*Kr(8;PoxpOc`tzDofU^X!NpwQlI5a*QFsPzwSw1RHX{J-;H9ls)H}D*Sy!wu|;y!n@2HkP`0kg{Lv-)=sg5FBrR zeEQbq1^+nEE5CZl-#OJ?D^S!TjmhoKMb5~S^ww;#l7(ul(yt%=VNKYh}? zr7NoY^)BZjWqSk%m^p(3d`sXC2@0>m} zJBHBs9)GW!u_!XsaE{jXpZ-eGh|-z>naKp!CV;Qmcy-OBdmOjzhzW0oJo>=n1`Y24 zlC_ZyVCNWUUsF7ko{EpywG|M1#gdZ?+!vG`WR~*=F^}xNXcAy{7LDqT>H051|805X zJwH-3-kMnQ0|4Uu@0kmHGf{;>d*D-T_SCebnGvH0zC%6W4@Dk-4j{ zt?X0RHFHXNNU*6S!WsI=nzO8KC7)j|1zeL=xX53m6Oa|CB|2SjGF=4&&0?mjoKD6k z)h$P~hh+2*lyP^;_+S1-T7l;eDLv%<{5dei^E7b)Dq&J#d&_0{bA>aN zV*`4m9@aumHpylJfg&PW4Hza4_-AM=9*GgJ^-8Gl^XWdRazNkW-0rFQdHH>NnW70T zA513ocFug{v-Jz#nW%hfaQe~O#Va=t+bhi)Ao)dF!%YUgf91>$iQbj^(9p;Pqaoau z)<2=6>$#qUh$mhBl(S2pjtU?&vhreiR_BzFX|Z88tj#v%vK$Q9u`|c>1aQE`byA#| zz~JHnj2_XZzRq!rm3!+3kLjs26XI}oJ(|?BV#aelS9~o^ySGQVxcy{tOyEdj+&FUH zyw!zr%NsGOym;x}*BZ8vT~Dp8>i=~7AlhMQ$d~4xcaI=q*TvX6c+5r`gBtUc^5l?-gIow9M_KW%BWvt7j@(@lEAD^3bpcvQk>wR3}@8hBb0*#pr6{6xSALlle`i68)MUv6uEa>5eOVWlVeh@>X0x|^o zmK$qFg;CEM-$yOkE5L)8pE1rH8yy+mvE=fuy_i)X-pdMukLjRW(w8D6404B44q+?HYH5tZysW@vln!pB41$nw*mGXkG8&l9!#`r?R#q{ck7VdIr*W= z;lsOS#q{pe{V6$n=|GFGA-VT*M?|2}Sh|Yslcb;Y5z6h3I#qCQi6=+Tx- z>a*WI;cz!gKZtQ!8|+q=%h0M8RXv0gN*0q)EGd$OnEGH++NNL0NB@hJ)ujFJR+i!a zvvgbZ)nu|*CL*G^4-R<^7dNe5z3HNKo0ML>sNfOTqi6F!-*QWQT8`!``@i-! zB*K0WW0y=?kNt00&1`#@UgIlQ4C%RS;>1U0Pk5+nWm!rNp?9!3m zj=2N!dyyb($4l|yLCa@9wQg1K;Ang2qCKl%>{8T4za=6~9QQNG=oL641qG^Bq8Jzu z$ZDP8fP`(rM5nGB(pQptBrC~1B&qLXFRdFsc&bu3b@1>SY0CANpL=~?aq+y@pL>~X zC(08)oK~(Z*uH%M$vXW5VKqo`Y7~D0y_p0W0!#t+SSr#)MpruvCJ_6^M~u5PI4Yc0 zZ9VmL{ZsGBW~6T)LXDYqq&q1m9d?AL*Qa9~WVc8LjAH>0C13>3L68EBn1KA? z?$C-$`-a;owGZES>8VA7BY#Cd8zhLosl0m3+xr;lLb8?jm7dC*DqprAlfWnCfsUz7 zaA<6HfQekKj~u+{sr!SjI5ZBP6b#r?d7osHE^JukRprf_L?N9)N6P9C0N+T&`^N&~ zKWyqjrU0PN?4Z_7CMb};^mf6sou`gj`pCYK)xLUD{P0U7Qc`-1?3b6DA2zTD9c;?T znYeV@*yV%&a=A{X+h7qeA5HAM|C6i~*CXl8d8KGLw=>PEv<5_o{y#CcTQ5JX}6b7qq8u@9}w) z6Rr6pe|}qe`~8Re3}_rI5}zy@(y>pM41^cu{K5G{guFEKx%!XK?$6Ks7W(xK>0O$m4dMC~hd1)ZOgw<~!*t3LIi0+#`3I{l z641`rVaXw?372D$m-J0B7;-z0EX+)I6dNN(TNf#H@*a~pEy+)S<8j+u9nVgi#AyDx2gk#6bv))9YUcw=$NSu8^oRNJoWIX~GxGC*m-~j~ z<-*1m77wpJKi>L0s1q%c&8^Sd`I6G;Mj_-+o_7+p(B=ORKCR^+KY#ez}+jBdffAuHtrwi~s zdwfe5WE=d6y@e+3Hyp$GjGv9(kmlm~sy{xL{AdEk$9tS#Dit5k`){^;o+@T4W$JS| z0M9WF)%+d_Kj!`M+54aed$Vo4RH0r-@{G5(ozDyB4aR>QuC<&_>io9<;dwf_!|BI; zWPBXvW5R6m7JNX1j|!ht{X1#$qPFn@ zIDG1Jo3w(<%^!U+HgT;u0PDhiAsPq9QGFpck^)}{Rec^@4`ToNqaF;0UqhBn%HHr5*HP8VVeKLD25|EDYs7~*ZTRyxKMq?9 z_;J`;wEms>c{F})pR>t}xSyxmee8kp?DV!e-XGpimlt96{@X8^bTiPZVZ!8k*<@@Bd|b^`so z``I2AO%w^3RG6jw=j$h4Ugg>RDl59?gr=1glVt_{W37MbK(f!>jZE?miH=tqmM)z$ zame7F3FC-2qw9*|7$|xU6B?PK10{Z8ZjKxn;(Tihk~t(2Dv`B=B*U5>myN8##P~S! zy0`H#Jwd8mQ^xpvNt)-xH-7^><|h=NHh>-_cbsH~ZLw>Za!`CoCl`(zi(uLBb7J+e zSz&t;egjC4w}WWUG@Wi*z>XZy)58IyG z=p6MqD$T-2*Y?~_D^>YnYoYDfHhzEByQp8cJL7%zd78LZbA-JQ9#qHi zJZ~Kzywv`AC;Gwtd3Bj><3K+7ILsgShV~Mk&tUUHi!~9pKXN~v_VL!|L8;O-t1Heu%PV=LCqP@Fbrr#D88>fPf)@0dx>DJ1vVQ?GUpi=Rd&{Lp{kN40*A>p9hT$MrC*pzST^?{A?QLX9GOyz202F!ToOXDmE*7?ozlvE)f>eM)z-R?|Xcw_i z`G+$*xhz$VoIa>>WcS?2s1TdIWXr{ZEj#b~1;Qk=f54*71tACGD6z&^;Gd(^SRdN| zK^Fne0N4wswfrJ}CCA~6nG7jt^Qp92(GUWAkjh+!98*SmK%mM722+EJU9HRkm3LobfWNl5mME zR5re#yt@gN<(V$N1{!Raqu9wY!vu^y=MVL+xIGliFRis->pH9ZguZF(#?9WmsB-AM zLVIye%H+*eU(Q~ah2mSY2FK5M^trLKqUtkjUB~swNKUTrxwr94w$`4rG-!`Vk_Ud@ zz<>9gVexm|3xY1JhuSvWoqK~aNe=IzFt2d`NHN?T#`-Vb;mvFGn%Y32)^~?#bD-LS z)=rQYZvd4{MgxsQ;3SWpG|){44j#n+4=Pj0uf$9FkD^!pBUj*9dlg@AArvKpWRi?p zWuCH5sZr*UEo3oS0@{3u^Z#&}^$tox(p8j<1_@DmAC{Pda2+&5)YWReYSC~~sHN!t zj8+85o@&ClHQZR$N)2bmfA}?&+5=i{Fvk?kTQ|@&}6Pk7G56+HfzK zU?_YP34M*4TFI+gtYsm`7>i%Qap)Libhmpt-F^8uIeVO5_TZ|*6x}F?6Rj88UbBc| z)*-1;s@0+ABg2w4D&je+>^9Fz>gaAZ6hK3Ba9?`awUzNyD}Gub>cdyyx)rj|<80w2T5styAX zsen-jV~iK)y4m4c_z*Pi3L0yLMC9*j!jZs)P6c_$)j=(yYSDHJ326=58chx2D76OZ zmVAq#!zRWeQdjpbkS59yKgPRja5XnwcZA?)_*hm8>GrE zpv-y4u9r3x7afq85E(Z>1Z9&_*dBgGD+*37k6pit-&2N?wt& z$&>E>t`Efyl+~`pxY9~-4)aGdU4f1V1?0$Ga^#|N7$@R6u5I+ZyBpp+hxe-So>qu< z=)EK@n$$As=GkSOam6QPE{*vt@}Eg|hE(m!V`aNVbfv|u;Dcj$c}YUJEFwP^eWrOg zmIlbrlM)leJ4`t+X|`suF+@MtPYjY>v>baqcnUkW)DJa8Ex0Kzboj@Xkce=jC0r8} zE_s)rM*1bjRT>uVd&*%%_iEnG#3%F-jV1aKza4_ys?xw;Jb&5R%2&}IwrbCHup4V! zok`7rUW~bj&&@S!=9Ldn`nNIOu3fw6Qt#+a$6l=)H?Hp0W1XVC$)VX*xw%#B8-thA zPCAOU^AX}5dIV9(K9ZlesI-v3gM1lr^9=clKpS73Nv9D)biQgc7lak6J)69>UUF?1 z39R+oA*#}qj)^QxQ?akum;^&MO0aWxDr~>N3~>%!cvk6l;J2m|C&{GIn+}Z1eQn0v z(NgC(z!je>mq`AHWbn6>_A1qHtQnQN_q8=lH$kRER?pZ=NJLLZ*((70NmP3}qV*ul ziPqM75oqt{34nm^#8LwQfB{vq*h$wYS>y`+o7*aXuuHM+1dg0X>C0_nYP2RVF@VTW z;b>RLL=_uYEi&F}HP7o>$5gooctIIqKqZT=anir-B=4e;9j6;x6CK9X<0c9{>_Wn{ z;r>B1+#<0k{e0d*u94Jw2V#$5$%Bw!WGW!gNsT&UciFJ&W0``c2b60hWk6<1N!dCxJsYR0_xY|X>0X}yO&QXJ+rpg*JDBpEc}K3ZSoLfk>v zJR;Qd&?XJ|5Fd@NQ0s@S^3JV1V_u#^OH6{v$Ja+|kfC27*Rb16+Sp8rTS<{cPM<%x zKC{@HIK#5~Y`7?nm%A!I{=<1wd1KCFWXzuCW|B9AF^oz}AIy*56pcEOO5p<4vPL(? zJhnLAY#O-#saP%B?p!^EkhoE72f0eY1(AJanEEPfdNV za@7=f0$sLx)vJ#vGs*ZhE1!PvC!nq3Ep7tdh#5fd99@(i+oljjk!B7a%16LDl9&j^ zR_Bea4hi*GZf5Lo&Wt7Nl{2K=Ny?QoPI1+4azQED?ON43u7>eZ0QyT9EIv_sV64-a z(5xYfA`^uT-t3vc;X{nRwW1bMQ61oK%STh~eEccj)BBU_Om#j8q&nqUa?we8EA>vL zK&;-y=4D^ITr0(D*GkOq(Jj!+?4H8PG_z_@+}F$v64WZpidMC148rIh)y%Z2IA@pp z3@vA4vAqD+7k<(R1*dhQ2ApvTrcGlpK?e`|h|I?*A6V%yQKN+HJR^1+YD8@UjYgKW ztgi>Y=?u4q5i4ssBfjRIPfBSw#eP$<%fzSdCfi!wjhA6Rn<1WS9wu_M8Dfg~;_m9PqI z_|0e)XB-<99~Bib^@!q&o2nCQ9VMju$j#T?gW!3b)4!x3f5K?@0fsvL&%@i7?HI9) z5O)kHsp_!hfXy4Wv5znIDO6gJ!ZoN#;Nq(ZmD4DTFp#~gp~RZ6y3oE=RibP#QzS1W|j z+MsHW83bH`k>~P(CDX!(q#o+<*g~3#UAfK`5KTO*JoC_Uri5rZ=}rGb%RO3%HS|z5 zkvoRfcVzYilLxI3BPQ#@r4YMO%Ocu__v{nmC5{<6xo-HCv+yw4N=#j=|O&BA?j9=A-=|1o{AgpEg{!#?vhsD zTd@lua@whTKC9o$Vt%ria0Vi#m|KA$2saFI#LGshmNtVC`HW|%SXnX`_F%7pPPT)0 zE1A{nskW_K>i6?5WvOpu`q9^pV%t`hl6BruosPaXaEL8R`J7pfW7IwTK2Lb;A2FQB z;aXM7n89~O12Kc~e+Rt4H#ESc@&U6R zCDh8;cd;hkY)#m11{sM5_kfO8vV?R&crpTmcs4e+E?8QvTP4=HmG<7KtW@CePk;?? z^s$7;1e5THl6cjK4<@6)z8-^%P3bK@5^T{w;u8~F9cW{={2$Hv_&;4gRF5IPZ3{#O z{nzRZaEdW)EA#fBubnqp=dq1oCw_n%c@{16=hHDxvREH9`2KrN<&4-@In&PQlPdm) znSb83%l$7r8ZzN5)*Ez)`?&n;ZvJku^o97M zW)i>O7g@c-UA{kk>zKeEp_hcF&j7ed7ZbX(lO6G12k1=YJuK zzR-uqeTDnYBXV~-TVueS{-SFAUZM-2 z@|$nrB-tRzNNhQ+#pxwI&n}do@ETNp!Vd{n=LIdxU4q`wB4N##lRFGG`_W1&melY5 zWmA3qCIGYkmtQz8BQW+;eC(3bvIcfWGdrX2cz}k0`f4C62xq=R2)vH;j@4kfpr<$c*_VPH{7C20q!?9 zDPL!@PpP4kS_VF_KB5lp3|^dw?7MpP*{h6)KY*V;k*}jx2tLEkr#g+z)r{q2Y4cjq z2C3sq%Cb%9$SYTr#aFIq3~#;(_dCPqvb2Dl!+nHK2yfJ*j*zI8yr3AG`3O|h)goz= zA2<*Og#rf|AI>u%tF%NsgSHM!*P?-z_&GaXc;c7; zgNznYFk#IhpqH9q^>`#S5g#>+-mYJE!GM;96Ut3#hbEE35h*0{XhE2Xq7fkoP^I`0 zmN}YXYFXV-1m78B16W=Ti%}8P9}>vSx88b7SwJ>Tcz5oCMe{f9Use6@2@@6-cJE%e zXm8J+JEaZELbB2Qonj?_b8nYJ(GC1(I$+SgMO#hbCm(*kYAjW5%1IzuGYLUk?0F)Uxlc z3vaz~jm*}4+}OXr@}lc?G4D9bH{I0onOq}n1`amC;qdDe?r%zBF?MECY>6Gfuom{s z>S;0{q$V=3#=6;Vs)?6$LWde(CwqgvaEEziz*B8dv+mx}MuRUw!9pY+17d9gZaHG3 zvocfJO)U&8tQ@HVVBOv$3tync%45oHoOAs*d~od0#&uH%FTC=M(wTfn{6111n%TQZ zoP}2%%B^oUTvDD;=Z>&obP)+X3_JjQ8?=3YaezKX>m7^h)3rvaNlunQ-1%~wJrL0f2MyU zQ!LhZ2q9jiD|@FH@=Ar3sFePwv=0_fGJGDs22((UmqkRI@q`j|sYVedR2^fw$>AMU z2OK4|@#QIGk49P- zxvsqYcwsYxd6N>C!BD}PsJPwP8j(vRIgQe4XJ{$xD) zi}K6wAFrI+ZO5|Qta;~w+uWAh;O{-atpmIoehIpG(d-ow91Y#f6%IBBwj^vt3^6sy zn>$9-pvSew`H&?4z*NW&V$^G|DHWG+Rj~Ey!i85|uX9+cQLlN8^aSXdCgh_Zv&obi673Zu zMw=2#Y)t5`Uu9MDI9-KkP26T%NKI;lrN%GWX|l0=Vl-G})CE}gIUe!*NF-C$G}wcO zPKq8tQBIVZPGq`=Wk~Pn$9{6=bSO+(wWLFz*lZ9wfMAUJh%!ub^N2MEgqq&cfiND!sp{Ai83LCE`ua~5A9sgFCAo2N$qff?`IdkreRw8(d&dv zobbVnyPwMOPj2GtFckcKMcRRNNMT-{vdv1F*jQAnLjMh#ZJ|LXRrHD5cGsb>exy&=wH zBzDc-Ht_(Nth@RdA)mSz)DdzLg~;AjPR*MKG6T*s(0Lx`l?do{utE@I&nLj7D`D;+ z#wmRF!5LTZa|Sm>T57^KM;h+9S^@Oz^jvjhXJFS6EP+<+Mo1Ea#>fH)%Jl|>PksAO zLX=yC^dXa-?l0ZHh_@Md?g5`%N@#e6Ha)7md+Z9j?AE(`E5%$bw892E8X5cyw$T4G zY>)n*VGH`-!zM`_w)`JojcS~Q8QLQHm0I+D|jocA(BGh4y9oJ^Jkk;OLcAdMD97o;c;2f8($A87gRNt5f3 z9w4skpx@u0I^rZx?pMAe?|&2)p*05ls< zTN%c;Q(AtM1EuAle=0PbAy{WI>ikl?lEf5UTy#mAM?b)LVpqHlgC<5ua0WJ|`3Lya zghp;o<8WWXH9u3;?H4bg9h^oF7RVsrc8bL;LZ_1np0(-90d7U%u?;tGeP4WkEnKIc zW;Cxm&gG4x^RJ`vkN?)ZLHT!|?N7Ji0Gj__;qd7H7dS}Y-wRfkM8#o~@^kMUz<~%3 z@J*mp1u2MgXf-<2;1h!3&fpuQUQ3#Sr5bPl&B2V`SQDI@K~$bpZ9q^a_CjX=Y16aF zE++~7-Kq3bPA6wHymnwaWi8!Plz)-{dfoM^@?vi8fjvvv)_}F=whyP<|E=xw=>H#V zAMq1cLYwWg34CngHfoBH{f}O^!e?!NbsLg2_A>OYhEU3oh z1OuZ4&~=F9f9-NsoVReU!8r>ShWd+YW@GaU%!nrA8T;ako>x}6uhVQY?&gBuzEw7p zoix;qLsiY-_rC}%Z$xXdO8y?+HGEHUNnG>N7d9VKwki8(mMp#UUSD%OTZ?|!KaOLc z^A_xa!(m8IF-3*~2UEOBOb9ILgf(Y4An@ZB+oz3wHSxhH>JnaKwr%cYt?A%omNwt6 z(O&xjn@L8Ff|j3RvVcwi-}CST0uT~mbugpU9FJ1rFh?0O#5?7g?mk~r`p)lY8=OBh zzWYL4rvIE6N*guC9^?s{puG6`Z&t2f9U@Pb52v!8f2=F3(Gy^oiC9O zLCTJ;c@7?MT=YxI#QfdG;r5 zfPoxaMYHY~tA8)&r_mp=(`)5H{2gw>ZSb0Hlk}^_4dH^5C z6_QD^lxyxCzpp<2;f)^2vCosJERwx{e=Ud%K4*Gpk@PY6Clm1-?mQ4K#UkwgyGhYT_emf~_@XXEv~aghL%&`lC7`s56LF%4GM1h&BvD$|F1d zuu~<|Quh@Tnc~@1NgR5}E_HuKp13l0+O#Q--F<$3dQSPlx5#3e?0!ahy=KOjAB{Oc zHnrM1%I`!t->KxLYuI!m*_GXkDn^gX9iY6T%v&&K+2@~(Dh=oOy{SAa{|o0j5&lDP zl{sBZBtl|>KhY${1(>YZgy1iMc^$)Slp+FVf*6QhSFQSYH62LOyX0+rWoIn{{wSI9 z7EH1CuS-Wh={xwN6$gG%PD;M3?nSSo9Z6)DylH#pKq9u2?QcW7Tr*o0BMvx&JkGVcC&Lu_pnh2%k*h4qS#}#oB8Jt$Saa*4vQdrPxe=mhVz5(55Kx{!r z1bpZui?`9gB!r(|_zv$K;41`qX=?iQF)0m8NN_J2J&)G zA@NECO~4%`6a&S*=Uz?x3o8h42ESZb@xrTZa|iX@VdJWY(wCKXgA$odadxxN890K5jsE{m^5Z;^5KX>aJZ! zZkLm~pFTdZ?})2S)kJw`)(E2^?(uVdM{HVv&`j!j+Pzh|-10m>E5UGQx=3H(BZScj}J(qLcPRp0^4^no=f87z6%1fayF3(xXlaBzWxo{gcgP-RRC zt?7vN$qCZjYqr}v(lt0g&+HGl_rjm^4xi39Ux+&LQoBJ>9 z3)S!?-H}-()O1|MaA%=ff&k4iAX;oxHhLm6HF4S#m{}uX7AX3-*ch`we)8ybdQu^7 zH<@wc#@1BQpY(87{=R^Cjb65D{);`8p9huGhN4z;lb&{0DGp*>Nm4GqJMW=Aq=e30 zPBK1z*L`V_a_{%&l*gEyQejEU*K{xR6N^dg;P46&qP$T_wUilL9?E$8)p$8$!p(sa zGs?gR%obzypJHS9(UjjtSa>fzZF+W&8vmpTq+3b1Zu@`w{_3>SiuGmQ{raCe1E(hQ zeG=>8*@;OAu$lQyuZ5}o+}4ayKemF+~fQ}g7d4Y-$T!M167toLKf(eLzjHQMoeBD?*Hh& zZT_r?St#n7Hnsdi+@TEwop3q)0G+s>B#KyrP;@8Gvw}IX^to07O`!9Su9YN`*5wNl zO2`NI4*Wu}`tl znVAwnFp)Mk0c@^%X_?a><~!=$Fw+IQtYmBtqxeNkMz{2pOLBUp#4s4JP7M#+diEVz zU|-!(JXG1EJTa)>c?)8G%iMJyxW&r(BfEDWIe(P?-|t{;vwkHsf8^k9isCx1{Abeo zzsz2!e^cj0CeyN3TmUq2o1}lcU(*bMJ>%yHMihWAwqz3=SxKotf$g2=fj0u{Fcp$223sl@aunCf-aD?TzH%jvnOX&zc#eV@H~tviw`+vxn1WYY(m` zWKHA9q%C(Dy!Q&F*M&6A&#ZnAiGk`!$8m#Sq2N%8pI9n7>S|yzPJVVYVOC;>omEz1 zZbhxemG&dihB5k3ZfjJK6V-aqZaBaxYvC5`49c zMS5XxtpM)SwNLt0Db&ox8u$xA4#@|Xrp%zj;7AYFYuL|r)ln83ljAX!T>GwHyMAqL z??Dw6@{9HLmoJxdw1?j z##MGYc#wpwA3tj|a#jAhYR;^k;>&BNoIYPw{n*gwo^;h-+WB|)*3(bzCi2ZkE@6)G zEt92V(gBaHY);PuuA{ad$Y@$c1|8oh%IaO z$KR~$S-)ig@g~OVqsrUA(!f=#-2bRqK(4HuT~^X<`oxiwDgEj?C4;Xw@7pksEO_*? z`<-JoeE!AKNckk@j|2VEGh@Vbr0a5($g`E0>=}wkTvm_)RjgSxM6u(lRdcV!`)7Ri z#Xm<)YF6H=KKjo4B+9AmzOig}87W<*R5S#LuYIh1^RG#>FcBGa_^B`cPL$V`Z|lY? z_W%%xi3-6#$Qw0BSbRY|#5|MLH}lASyMxRB!`XYlMR`1N{wzqii#~NsHlioA_!Pxi49F+O=8s8HHlbaj3&aZ|L^Sc930^9 zec#XD1igFMXJ>YHW_EUVb_S{%u5GJ@0^b$;R-b`FLJclEQ?8OG?0A@~NOfZ{-I; z1H@4g4OmrGv5q?k0}s+h4*W0^w0$ulJ{F5QqCFyFO zljHO+HnTPHmZlvTo3M0y2||qS6H)He#RtEfQ_mnemGu^?U>sn@Yx!*47aUaE6 z4qErirGk@Wy!38xc@ffAmM>D~h#!HCMe!plG!P;!{b2=zYU1zzzwsXN@vmxR=R8 zY?z4^0*!7A`%dU|wm>J3^e`@tXHNKRuEc8APGse)1h*)$NX`k;7s;>M{o?PMSSO_E zuFx+g@Hv6b<3x}enm>I4K{EJb0 z1nGy#LAV4+5_pP@W^DSB9DaGJXmqS?`W zUd8=fQi5ZTAvyey!8IcJPd7BD7UOOH&(5zxuh(eHr(sI6+^!&tA7QoX$~hO<-Pwg6 zF8DS6&n_`+;K+YxI;W4b167YIJyK0$(g6`|j=)I&?}L?XqZNud_@spL!@tPkSHG;< zAnCfQepj_-x52gC!Z92Fm%+c%gBomzaAoC2L4%`1hDq}2<96)+3bT7vmk@IE{a=ZY z|0nhXdISX4lrP@hHO@6AQT|-!V(_hOFuNe667g;De<5q70qbhGr*STC#IyM~yfeGW z$E)oupIi38UuS;Hx_AG2g6smru@U>1MY9u3N!{_7SK%-D0AMneIeqzUdw4CFA@1Ef zbu-{#7p+osm?6|9+!sMtP|FDKMZ~&%{P3!K{O(ca%>TMDX5+z3Or~_a9qVwLnclql z_sFeix!zl8v*?RoQiF{dIMXpu$Z{A=F)}ku(E6Aztbe%7Fr6=9pM5%e`p{+I|Lh~T z**JcQ)luaobH5n((apCxES&TMb9woIRaW{i zC3|PWl`ofk%PQ{0x!qNMC4U?B)5U-|QuIUfhjAlfps+73<2G)|AiAEX?q44B@uKKC z%Psp4K9f*zg8fsVsD2AR8o9jV$5WRjr@i_;eYWKj;3gR&-rZG~f*uZ{S6?%79X4U; zm`Ow$#57WXcx8j!gmbnrWA?GTEJ@;zA3f)P@(hfXF$dO4w(y$y>Fg?VdblzBO4`|^B+p=F8hkjX7?RRF|m-So4(sQfV%L3+7^)nEwhyMWP^1yP@*jD2N0DMjCa@iicUw&0L>& zaBtH1njjM!oyP-u`ux7vK1bKRd%u!x_&iSvtrgrE+q?aem{@?VIe|0&n>-Z^rZB zxQBGsK=?^x7M*6{`Jf=^J+@+dQaXxN3jlTpEksx~mJ03M>hr+fcs4I2L?@y$?VX%4TI`K*#o8 zHfek#{)TTkOwHuG@}J}WY|JBUR@*t??4Doso{6)DrtCZp2^+G@{P&|Qaj`s@xv?Zf zx;;duxnAs?Wk27+T9=h7AZmLQN)45RPJ7Dh_jn-_J((f+-97cFCa=ts!~jKgKs#_r z69x-gJ%S{75AO0`_!Oz(`2|akX0Ug6_(|6IPsK4QzuT^#*|puuZcSc6qhy08(a1>s z)JKT5uZK~l2_jV}U){XxC4aH?7xv5VjO|;IfWD;MUaa=xq+gO(OyG|W?CB-f|8KB{ zSKPaM#w+Mg&>T}MP;-G7%{t-GtvFvpGQCGP@AF%S$BmWF#P432DUF;hPvQ+g=9{eU z73Q;a%;%@poxOcU`NWc+|GU=rEX0~EK;O_&B>I&x<`7L8zyliYsVtEA#cz=n_jLw4 zkv#L8)iJN78vGxOdejqTWd6!i&)BUSm%dtdoMdbk;xp$9dB+OCpt8YtsGg1_k>E%O zrZ4nKu5@EPzr!kTxPF9RLS*3`=|sUIb_KO3LX<^E&s!MF`u11;9k02`n90#A^*fX= zdLMrTLx=bxdL5QFdM4FEf6JcWkG=oCMNOAMkN;skkMhxvBx%|&fR({pV)beZhCY4n zoID83k<15Rn{oxpCC8G=cWgX7p}{v&6&A~4*bDB;*YmUdmw4bnap=srz?cqQW)@x{ zT&oYp9z^o@GfE!r2JGkop9(AbDUk2#tg=A~A3QkoCX=r6uwfa`4DU7%lLujWwG7@h z47hA%1EEC6Lo7NOy$b5H%DIz|_w$ zSI+o?87Fl@GfzKCCZC^Sxpah$&5-I#!&%pYcJh99onMriAq%;RA&~68yDR3$jP;oo z5ffAfdI_NA$V-`@`R$^G=l9_#_3lIF#VRT3={MPp^!y%5>L08b&w+0NeITE%@;Puo zAA+|f;ulfH3IEE+FE1e4fOBDpis(+45@q@;{^uor?MT+Vug+)fc+E4}_H8MO|nQlO$9!nz0aJG zKVZWO_VZUe)}2jDW0jJb8^3$$^rBT0e&Cx0|7kiVN$4w5gn>e{;PwSzVi8y7^WR=< z{aU(E5TCi^=$s!jmCG>Se(~ZTq#Kh9mUt#JBfC$uhuxqq!#XCxi)FyIRn*?0BnTh` zQzlzBLO1OG`3e8{rc|C!d8hWUJXc>^{w?@{y|#3gW299(3f9vc!v4S1LH z`csokeJu_#wwCy{i>PV#H{Y8nWlI^UGf!qnPJi=rtnWqn6<;8EV5uU*S&TDH=O;L6n9oth)fIF_F*1=!q)z z&;?7M{dDOln^2~2(qCBI#xtg7x+jeu{-3;%G=abu?|0K_=c16122>?O>;v4}6)UcS zGxQFJ`tie=Y|Eh80~7Zv^Z50<%raY=#vU?1$=mYq%np`vUV=>r9o+>sE%BlQW&?gA zszGDY2CrQv_woRfgqKClU1A!Kvdkn()&N~B^Px?!HhW6zPqh3}n$f1qM5*x?(L)BY zj1gaa%YHkS!TR!T(oZY*{(5cy2|kNWmvS~8y(cvsFnwCgh*+h}&_46}?w>R?=?Z_m z`uY0vl5}R@io47^asSa1hs9VSCvv)SM9iy;Z)J0Mhzb4+=-$u}PlKG!`|$w*d#k*B z&iLd**x<7?-hf^H@kbcO5m(vAS5x>Zq8ZjgoSz)S7+rCKf>}mSF8)+FLzD_}W{Qkc zeR6Hf$9Ny!o-J~#yJAK5%vnKhtV!l;L<;{c`C3j$5t3cA=G#Y(`l{LdFEiUt;lV81 z!yUU+;VU-u=l#w`bhwsxLQcXKKR9=BUq7pL&0;ue6Qe=30Y3(D)Q#$Z>fB(+^ zWS4icjP;T+*%>h(-K8CDT4uub9ckGKbH1(dGe6J5eq!5}Oq{i1ZoO)~nH_&HW7ZBn zFY$FnAO3E^?yGbIeJC`Gn=%ONLmHYa@HcYCio^j+OR*j$h@p`_IeVOs;aKk&cB@+q6nB#M)i{-vl?W?F1 zzKc5^&%L^Fh`jleF?B8MKFdr0#_}JVjC4tZiPq3HJi#yH#izWj|L)36xs|qU=GiA_J@o`=dsbAKtn zrvLRHzuo#Zk~3_+{N)G^+)^ zF~A~w$VK);hAeOcGDG8E`PkCz<=iPDXNlZjYJoN99IMRy*fKtv-{H5hNpP014x*2~ znB(nAFY*eguDV=`IicEG@V#pVfE2U5Rl>Wig43!o`(J<0{D@W0`eV{_hW&9rw&wXG z{zPIGHt?0Lj%B2$X8$;-AOG9RL)GjmE29iS0A>V^p%}Yt0`q_b`afW8H?X#1!`g62 zVWVhQnVtDL@5V2Z<7%heQx2;fe!GFIqWhZfsmGi1y>mv-dSp4pmR{>0d-(h4fj@wZ zX?gq=Q(htE?08gxF9TGCL#*pmbjA0kAXCu65a$1X3`~@@JXNP%!)Kv0ytj9WC zIa{|b7%`dGuI0c-@lLFd1_!pMoNL?x+nDSRa3jR1I`i*FgpoW2Cknt!+VpquPVsTa0MzaZc=l1=B^ zFJDHG<1GFIzkyJ&5Xs^GeGLxLYKP`Q(s>0s+=W;rI2@(l=-JdgZE!JI(>3Wr=L$ZQwe`W9;U<)e z8d^Cp47Dxfos19Ry(RZd_m^+@(EBjdszU;Qmf>g}z&5X32?gvezv(=0EWatGtopq5 zgnb~skQ4PS@b<$O7aRIOAmIrl`oPEQp)ikd!FK9fe(xdcEIs&bJG%)>@)>+SoTc&! z{JX5{{bFw-NVh$|0n*s9D1@$VJb980<`c0Ae}k2^GBVAzWo;t2d-1N-J6bFRAA3y9 z{YK4ZqnQ^0*yb=P6r*%^#hef4-O`xyh@CZNRrrPhHU>V(r~NI#{5Y@9E+fOsWxfHrFH8zrZkZ`fUq*O4KsRK;KVR8aU*k{? z>yd}-C)cmZ0>iyDQ8mk1JdU^a22AyLY2Flvr4H-6jdt(dWohT;$t;NGXUqNjNS@;* zf0VTtyT5*4RNEAM=ny|6*1U?wD&XH>!-q5`3X%<>B^EZHQSq&eEmHk3I{T)T7M}&X zg^>oK%f@J4q)#_7dB7Kk*#ee-o54@;fWP1HE;1j#rosceHy)e_5QC}`0j}QRk#<7tuffa zY}5I4jpqL;wkG0UtG0MSd4yn9oXC6nX8FCj{n4(J;BRWMCflc`(Yly&_b%4Oa`Msk zj^|$gz@|EMk=ANF%Bw?$W9TGA4GS+6S)8>(XOcV@DN7G3eu?AlE*ZQlTl`CGzg)I9 z_1rP(&JB5^dgoV3VsROdzCDo<5eo50WcMFG=AqZ$GWjBQv44E`9rNPbdG)(#e{COA zbC(XgB5boxh)yWJ&Kpf+eIWg*OGp^Dd=Tr8cvsgPPs`J(@qF^0AJ1P&_&6y_>jxqi1tts1$f{r6jRB2Wn4bySgJv9; z$x%m9tc>zzP6@F#&zqbQ-?|f*wa=@MrlCB%|3w2atVP3u*=lzd`_EeN0?A?nr5VWw z0y8}65-Orp+(INXaitl-s2EvbSU?~Ot}ErwK>NCL=kbT8z_^c;e%`h1j3oW+aM0m9 zY3KIX-q@xo@&{WG$lVAZPp`4Wu}@gzc|Y`Ck~Jq0LlJA$edu5ES(CSlR%;jEFk&~e zun@6&KtaNgW?T9v?btEri)YXC*&9n993nMYYiUb<9kxA+58^lwB45=#WcsCf353i^ zWKT9?9)VT7aEBkWQbZ|0@p2)O`30D84%INFTXf$q7fxrLTE{2Nn1*$#CSQ_vkJ-JP zF-hITTyt`A>&Hij23D)zYtadl z6w{TyTYZBZikWf;LVgsYj0Gqa8{wxY1_d*>AFI5l!pmpuok8w(bY0!L{3`3&75kxtm{qb}fD{zx>7i z!xvYL`)o~cOO||a@riX+{A<^rSEu&kp3P{(O>4bouVB{1?nmE82@^UvG_2%OtS`rd zc<*YN)t>(~X3Lgg(nni1_m%jp?QG_j>~D^+nH;-3tew}H<4tMS`uH!Gk51g$YhiYB z4% z_*~hQ{mo$k@VSzc-v%p=G@ierxgr>lG1BRT zy*^i=f^bwAga+k-yB^_iio4=6th|%Q@V=EZE5FQpxuH4h*#9fuo9%dKuzYum!825$ z86U_}f4j$TG2cs;g=V(Dx&#N?ggGw@*j_mK<9kdjfVv|dK~gI^JJfcOLL0eI)+5pw zmCY17g_9x`#wVg2LYaGrFNJ)`yD-v$kWvT!8a%O$Z5cauEbhVQKY9I@yF6j)+t*Uq zGro=uhrX4Lf4Y!8y7yFm_VoEJqAl%VD;gVN?kdp!8F~tlspP1plnBu7 zz8*Aeq47!Zpew_JjSVHJml&WA0Or7BW`ygUoVtDky|Ga|s%^sx)z!nZ2ujSwLb%BJmA-4IkDC_#G~#Ra-J z3~407lD?JH^$u(>3_duWa}hFFKlW%ZZ~QWsH9UM|$)2=`x^O`M_}hV;7XZ{@<{IIr z()dTLnW$6i=>>71t&$4{OPa(S7~(~w9-8*avMaZ*AK;T`P0oK_F|#5jxR27&@(B*b zs_eJ?e1mtd$#?U+tiqCIFb}p1`gOs&5~YmL{10w$B35>V5e#2WNN`;iPW`&o53lOx zPWGNCG-vGckA>O&%az%>_W@@?yQD(IEz{`bpw+-wqMqHbkK1&hkYyY9_P=ns{AnDvAWg<;>|eJiwczQ;1kuI z#tD~)pQ`^LJq&w!<_s^Jn=9Wrl6&yqL&Qtizg7n?(>~t7g0XL>s9~%OzSy97foq8> ztle$);LhoMp4aTpDRFH41a%(@0wMf1m<>4*+hNDW>?0@97qUXBBh+8;33>h^ouUlL z?#B|1s3{5V6VPxq8jjDAy?ZZt9G@>NS*OY`oSE7@ouXdy&J7 zaE;8Cd?+_D^2{O22kz4DkAmlL50Y9nY^bG~Loz}I8Rlf<$0c-8DG6<#x;&-7?4I^v zW_xCa4`H0VB|k%Xtehz5#D2ASA~)x}2f$Up(s8IRa5yAz)1G$%ZdH`(>~r8|^IS#l zc;gK=%z!Hk^coSSAzK9r9QsiUkYOGaCiL06=Ev!!q`lZ-dYls&|J4B5hptrO+M0+t#y}dSvpo?(>!8IN%(Z9hMhUWpsgQ6b+MWe5& zrRe7ngDF>t5Bkxc-%$68=Y{k&wG{myF5O=Ae^~3E-YPzS#&d=s%m;q2JvaU>;C@@I zAJ9#}4KRXU7_WeCZ7<*+E8SkeJyxu}4gKY&0xo_J9dZs8?GwQVvL@f>E?iKrT>yV9 zkk-qO)!Txn5w_r~A_!Y*@EVuq`mm3dv5(YPOIn=Vyx<7>7%2TJJyf$rA2^L0D0#9UgK;W=I4w81MLk%8iOjQ~~%|RhSbd*g;Gokn_ z?Lw)>$)aYX(tKQU@;K(pZ=+;mWX;#q{{q<;@Ank%qi|q-P0u16EyxdnX<_h`@0v_S zAF1G@62))7t{EBKyBS<-zUWK5A0+L^`;d2vB_XIdbHWEtcO%;Zzf1YZ=;%oLcU)4E z95f|5vT5{`q({jlM;h)up&!Z4ryv9E5TmHxWJvLPlS=av^(K*1LfRlVQMJ5b276G@ zA3so6AI#(T;km4cf21E|mwE*+>WRMvTxq?u74t*7xl*>hJiuTYfK-pTjF5*bE?Khj zhN%g5bXPbyh>keu=vDGqW_hp-6N_mRQ-`silcuvoxxLN&%k94>nkYtTmogI?&A@_u zgF=HqV#`gbs$!g?&sjatycewtu>3<|h=o#^H~VGswQG~FDaLEprr>`x74)UH^C<3x zj)>^sh1y9~RVVJxZcLd1euloc`%uXHRm?<@ykky`XM|i_mG6n?g>r4GqCHm{i|3j= zg3s;7XwTKf;<=`0&=1xV=yJLxE8vyX`45Yp3!PuD=sU?-q0UD;j7i87l5=Ou7eDc3bAddldX5k)DkbzF^RMV1U^T=X-V zW!0=Gw1yR}OH_RqxT*t5!RKdWWeMee$Z`=NisP#5_b1}H(7ytw`=#|S=o~=vL3)j} zHu@=Q|L}e7p|3&zlI?{ad{nx<(1VXkwb%6QYYTFWp}BkKmM&?ZtSX zlx{Ej2VF|G7x?FuZZG=JE7sm-?m=f-=g}X@nDn)r41HiUL}W76KvR4n7`I>dN3l0b z0&-+N&^XdKjb?co&GIx^omO&|F~c;=a&o~RvX>=RE<275j%R}rtSDftXWl~RxMxTM zC`l;zJyU+e5)`_}>;@IHKvyqfF83kVMRg%_4Yco&!Ror5^@8jy6HrIL@cg3POY9$U zE6u^ju7TOd(9G4Pp#5H#9?>N3#~Sp>D%PDY&*FcEg&4T{&q8C@LyeOdh@B$Xm8}j^^WJ<@uD$izQe^k871RLyK zA<(Y?G|QA|57W~{7@Xn0l??z)wLJ6>6WLLatP<*;oky~pB({&O;v*1*HIDm%oT|M}QOSJZhY#x5s&AAuWjpd-Uh4#BU=K#Aoi z(%zWpRMwE_o=^^1yl*yqRy?zi(L^~Mw7hhFQq<&KXJg{`UAPdx?+Jg-{I2IQmt3`5 z%IegWJ65EuwuH20FY?~reUX>{r#@fGaoar|?yC__n0MuP5l;5r9%W=7XA~DLpj31^ zPUQ@Vt_fw|gA-WOL81 zHbm|h%}fbyi<|q4RTd|V9m%hyZQ^!iotAMZJrCt#- zUb*mjfl1gIcuqPA&xwY>_jnP$m{V^|tqlzcUz*p&<=&64jQoB$eH0j*L!?tSQ_IZ! z*7ZF8B6qfRW~J|~Gpl$4JkgQhYxv5c0$)GvIry-g&@n#jSHaKFO=u53R5JuW-%!8> z;9H-<_Dx0m4;ZAaP$!XYFzfAwT+lpe^Ji>Iva9VqO_k^^{kfT*o8ZkNnMQs%9Z%px zI-_!Ne6TKN;CTSiQ?%Fnhdh>}ahZHew-^2UmTKQr^zT<3fAnJ({evzg@FDyIO;t;` z7yZKrXw&`$`l0>PDzG zUBg`%9=}iV()60*m9lz=#&0EbTZDjR)osqmqm3dJMjv~{Md(@pbCwgGtiZHgYN0BV z-|UMYenHn@ir4ZTt5fp-(DW9%wZbF5Db!mUJgeSvHhho;U;t?y8+-wYPK!+mF31@7 z48zm*@`YN8xd@25aym*76)#OE5xmm+sENRXo)_0gcn%s{^^r5>IPqa1bK$tNiO7rX z3K2on1F1>Egxm}An_OMp5S`gkqO;Tf%&S$;5Pum4Fb9UsM1QFD6J2E_=$MYq(UICeFklQ&tgnM!+mt*Ad; zCU=N6Q0vbYKgEaH;%A`3e^AEaqKHziAV&I`3V)z9B4m!<^Va%PGemzlde)!c)NOza zVFPH-b-dwE!R>EdM~u?m*Vp8J*5_&{ts(lF*@IQI_N(rpwF|2yv^iv}M`8P?Htl=q z`wGBQ^?ijR_7x_KSA(lQCAg;E#r6rJJ)Q@cdh5JaxUUfS1e&4=lfpG0;}`e@m@q!U z%fL$SpZvsuraq=RT$AAL<0 zPy|nF{y^2>jhO2J#FmsUH_LEK!v5a~Il;{1_#R8HH(LxhAoc=sbB(8Ik3qhJ|Cc=m zLVRG8i)c9E=#-OD9#G$8Fe86la+{&an-w?gM8M6V!VxJuNY@IE#9>{Z2tBe;rre~$ z{*}GGJnX%ly{dfa0Za-QzvaCQiB9EFs4&>&Rq?GtV4*cxKOFV=maJcNHYVom znxzP&;m`B1UFcw0CtcYVm%4Ig>g^3)mc7e(kx~9#5mN4p%RB#1q(E()uj^*H)O_jMv#|ruF8W&Ww5;uj zjY1xFF|u?eVK!kEw=E6$5L&nH3chm${0~$wvF46^7eRQPBD}z-pcUnn_cl~PF$sZ} zSD7MOWf>FQ49y?b^uGAeW!AqmU@;ITLu# zbdjDLZx|cVbJM30uZm)W|2ADu8A@_KT z_>THf1>KZFJVCbw@@?euc!2pW2hp*yalK$K*AGMLaH0u2H>ycY+m=Jx#%$P<&Z?yc zvDr$;c2V8iw~B7wHg5XVIrHYt>DmbQpTrtk2eR#o-h{=ipQ~sq9=n;kbJ?K5gRtI7 zi^$HVRnofT2{|aj$GZeRK^i*=l#H@ZOxqzX+r~5*Wf{$82N6zNl#XqiN4ILBEy-$P?Lh^*L9 zOU;FJzJ)FL=hC&Ow{9i5glKGCUNm=_Y^Dev(_j@FR~c^cW-HAOV^x|{wWSilP>{Fm#?{EyxMbHxx;hJcd_xx-Y9QSI9^Z|^wp5i97Hr+ z;bM`R4?ewiDUDW>G3lQ|>K5{D$!_ zE&8@;9yfjVG@wZH4t@~l`A)b610Q~Ea^sg_9x9#J$fF8YDUS=><-7v-tSlD%;Oeyp zEcnnLc{zVrc}Ag{e@@spntYU|1|P>VFdu}+T~0JPQi)Fp3Edh+vMe+17@`J~3o-&X zACimJ-zis3MHQMO7D@f>qgY|N;y+L8R z{fQh89)9vkWEeOyBp0^;U**ujwtF7c_j5 z-iuFw33MX4A*`(JMgPgA+l&5_OSaeX-&`6W;2&TDU8w&ee02P`lx{Ej-%_kSY;MuN z)ek11ki6my{&%dcPS~G14RFK(Jh7J8pPFtdPH)tNGO)X;e6YA2NtXq2QALW*`LWHi z`+3Wx(`VMREPlY_VY;?=!+uxFL!IQBU>c7)bS03Il~qDjK&<-Y-3koVZfYXdt1dEA z3&nuwhMeXT!=py{)o##wM)M{+QW`I6*Lp!zv(bTd>b9QIw9)3Jji;+8=T-WkP4!4O zlrAk788Lj)^a|zY1O|3!(AckB?NzolQ};Z^7)zNCcXN{cFR3@ zBJFbF2X^$zh`x7G@;jUPOVRY1d7sGUH;VNOE`ojdE)qECD$iXc)%K$ON`PCIch zw_9xgUWFe}H7A<+XQQV0-M%BP;LiLFRHyL9XW}t|Gx3;L4fSs}9=x4xg=xGgXNx(| zi5=h<6pE-mqvTsfLaIr9Vmw2FJa7fPzAMs%B9Yiz-#KF^Pi?=G$!8HVay|X$`oWdw zjGHmB=cfNIr?9|XKhO_n1Fp4wua+mxlj9C!G6l5|=ewC#_AmpJf9&m3}3$FijIt$#wF8{Zw z=Y;sNb9{sA|Fnx=--4Va^3L{CCy$%M_I@^_IB6hZ0M!~%!1!o?R@la*OQ*Zx;RG9iLRt;@cg>40S=aKFV^UTTL1Kx zwY}*7Q0ew~9$*4p2!Gr5qW{CC+l&4W7qu5Qz>mrv^^v%N(L@SIwP{Gc?JR4xB4H5} z&a%|6M&P(lj}B&YHneTrE~0&~S2M?iaR-O9>03HBX#ZhUOXWhV#;aIr#{v7}Cf2U- zNi)9*9tU^#81&7@lj_tP*3p1J!hTR1VO_Q})PY~i&Isf6<^@t^Sy6V0l5r+HQCO5w zCl~brR1=~@s5ma7L;7IB@%bkS0q=tb+jW(T~xC+vV9 z1U&1Sh}4d#J0N*;q72344K=idckcj3q$AWrp}s`&HNkcy418(D+r9*tH$MDN#1S<|2#WJp@Mx zGd6&J%=cVwApsB_n!3vpBwZ;re(ij$@VWZ0Sm!SkJCi0H&+6-Zh>(p7)_(ML^@oz{ zq|rlfA1~U2z8c;2b@j*6?S-u3BBzjTyrs3*@wxb3d;(0Mm1qyF^!65_vFTFj_M-nw zCEM%xUnz}`unRz!;`r$JUoG8U^nbNj`;vBnfFkUIuZ3M;XQ-d0nq+B!9T*KxBQSTQ zeUx;|PJLrYu-8ljF~QSR6C!aSP%24O;RG*O#(v~m6WD0f<-5(ZC-Lbha1S~xkVWhr zVt;N4ULyb9r?5jDDTcEG3qfiKM=;3Vgj1&zP!YyI;qLteRu^6T#;Wj1$O+XA*{`5> z1Rp~0-h`ja&47BP_C8L`$HAbu3nv$ZKhi->bXn}~gl)OI%hd?f9(fi7^t45uZUgDZ z&gXJ}7&h>#^uY2+b8N}ecvQ-om8tA#8qXuImVjmT^SK%PvmJfx+6dj5B z<+iZ0FeoPgsvALje<(1`q!3^<_n2`Z1{8C};v<#U9AoS#4TndiF?W49I=|o4eGbRo zDOgjqSS;u^&~zPW>KkeA=wouj*;o-xvoKH^rUpI4T6vF%spD}@^KzlQjL+49!+u~# z2_(-;V@GL#JjyC-x}BgL6F!JS*kXU>W`Nht#anIa;A3zk;1Obnm0c#$4$cVdH$>r4 zH{H7;Qg>+n2)}deY(B0&z01c1i?d7Cty`kj-FE-Rt$VcFT0U>?a*$UWyLG>%cnW>@ zRO2Vo_gF^+e8tVz6KWwzXT@R1es}{No3Y&tUeI>?yvXmgJ8?(`?$XZPKW^%ddJ;RHQR9j z$}mrN@gT)R6p3`OyX9!OW&g%K!2`j7;#9sERkYoNuk<^=+pAl27glN6(v|(XZr;c$ zsbgApiE4)g9c@}SojPTPMt@o}=>7ow4dHM$Sp5xbA~_l82M&i-@+ic#KKmml?~gcLKHyj=B*QAaJ3@U0edS~5l4bAZE|)J`(FK)Htt!&!WiXfX-s4lZpdsoxT@aCr zR8YXZoVkLNkGHveh4SUhK3--gCm+oUfhl6=@|5a*^wB*h!Y*dCL-Il%8Pqzqhtc52 zw$+b_2(A_NA%9$bZ|tb;Nz+*s_UmO_3Q;@N4T`K2RjUea-i(?way?5JH+;Qa!9BI? z+nU7htB|jy*c}nme;@?LLeD`5eJrwvy>o@)V}X;~TxJi#2W`gU?&jlRHkWlO<6?Gp zE^9_{5{#uxsj=9`_{fC6J+8IVR?vunv2DR0M%4t^lbMTj=;DBrRUsL`Mqn}&Qf)1QYS zL>kf3m;%g=z*`^BZXu)jVs3~>XX)eVhSkkU_Hr)c+&>90am_ZN zdnR;_fOz12>N3n_WvD9~x(BL+sXvjO&JwVR#x`0u`UV74@~PoJpKp>7`zwXlsa`9v zO>j_aCPfZbPE@E+)!Vdioy2+6swa2w?PC7W^wT0NmomP zTSjLT#aC-_*GuQB zEVgdl*t(3>syAx2EU*4-$R=yRwH|`KcqYIDF9Bc2SHxc1*$KQR0k1h??;C*cFv0?i zKn_W6ke$llOFnpkm2Z$H-S7Z~)>j??tws?e_(lHY%ViWl&5jnuRcDOevSHkpiA;f-qsBs$`E!0Rg@h0s=m0HKfe(wjGbA z!WmR}qCd7<%wTnlchw5`Q`P&&UJ<@Na;tWT9*#TDcIWo#)~GkZg^gsaBVuZOio->| zTALVNTxxo66ff(wj*lpctAk_*TumudA4@4ZU z9Zqd&?0_BfKG-ty5fz3$n34Wg8Sh-G^2*VcSHq>DV%!8ngRN+= z-F2Q?q?o}|*hhix<{&vJkamEY8Yji3+R`H7bkv(o)<{kksmFH8iR>8Xjag^DS_|kb zXN~X#2#gzRn+o3(Vu@;s@A`fgXX}r&?>Gl6Pd+45MY#_+-e~%#=(+GQ;ydC~KcL^D zzXjBu@xuJl z_;uNF#Z7K|7js!31|+ocWAsi@uFin3ECvPKTplz;z^IExf|4j$#Y}VgBY7n=DNQut z5-139Q@u2q(t=7MWEu`u8FDo=rTwCl>LVK@8yYx8F~!L)(RnfGP#lYr6JZZIgWp4# z5PCSN^pTJ;Rz*yN7E!8t3E2{{r20(gylMZv;N?at_D(KFyINMBwf~;tjZG1ypOajg z8W(>KUT&m5!1E@O@N--Hq35D~(~{58KecaGvLE~JMf<3t=VC2MRjVNmrKC-#g`tSG z1I7CU6+~8CQU#3}J2$vh-1xXI(JRx_S0?VPd!TEr<}H`)96cyq>D%MO_8mL6Z`CI5 z%c-BuoA+6CqwSwYwH~#7`PqE3$N5XsE^4WW$$_ z>)x&|RGTqRY~9|2lNXZfiuKJJslrSX5u391^k6Mg1&eZ-kD{4Wh!NkpPVlgRO=lfA zgYQp1DZ3zzR=|m3!8HBHT+4bpn21zV=~z(8G10-C$YdL=B-}$~vKh+5N-34ZPK#F2 zPdzaR%HP}Lj5ag@$=ifADbu1Ss=t2v?kkj8p{Z4@waTJ1~>sM95`V33KpDsdc=OM`2 zf}&UQm~-a}&kW9;%e|9wRUD1*St)nuU0?XicI)qI_o$)P=y-!JQ)lL$D>~#jcjwNX z6eM${la8w?G%oQj$u9QsvanUcG#j(Vk2m*JxaqpXD+M;^buJmp>j z&kseP4!XYzbVF{DqF#Y!$bw}vW)ynAXUtG$ULS!TxdlE`TX{mSy>PR6CMy$4RU*fOV9zGD|v*=p(d&7NTiAhMk@ZQ zBbg7f8Q~u7=$~du>-X;Mg@mi7IQ)x37`Nl3YjfvX)+Q&Td+_q-0OBi+gU^oZ9V8?x^g2LK!r*qoAynM zo}>Sw_RWg=aXM$yK1%E#*}FXUMt&$IQ4R$eli)7@S74HoQi&$-^4>8;#qWTjOgl+< zpncsHZ{8;t3D%QREe_IaYdiHc+QBBUwxbOFzV7O;Xp3tq*4E+;(XVM9+Cz41+iUNb zz83G4c*_=+eH*+B3%}&M+WYqX_4nV?LlJyOd-Q=Q)%W$G_2XEvu%G|YQxQ(Mrmm_h zbvnUeM1*9ixoms>V<}1c$Kt5dlf6+-qn$=4IyNY3`v$Gw257CdH^khS=ApetC%t{K zcj&EuhZVh543>RsysOd4=G_wSqlay;w-)cg2EL;``q1c9qK{Jj5H7Fom+r|1C-9RC z`h$$gzHTAJZ?c~oNOj`RYk#sOyeag1F`e^M# zK&DwLns?JG^i{#8uj2ic=(9w>CHpSce-RA(K7ip@0!C>#?}7Cmc<+N*3T_c>M<2k( zPE^pBVA}p@^d`8rKRW#hknN8?AGVMF7cTF`$BL7oJF-MIFXDM1A#{U~4~Q5k2Zj=A zsg$);=;C*IhVJTVyi<&Kwf8jH#JjI^ktsJC|5)EI?4wvera9;bo*l@!4gVJPWz*lk zxzt7Oza{!C)^D-C?OUPmswMl@<$_M@Z2kk031{k@ZR36QkG8lIoKmog!E>|+Jgg?g z$3pPl53|_V2sYaedJ_uo8{_|kZ-av_zliabePueWClPj|1ACIHpg)_yEPvgzUBKgOlvFtFwiZ5*ASl&Y80bFa`sJ$cmGB0~LIDOrb zBJl87q?$|`i-hjepl|SPFm-SQ??{Hm*vHIJVu1~O*S>z>Z9ig1S($NiICmL-lBK*w zA*T3alp9uwwX~M#NC59)9aH<^J!e{-1pkV#5)8)dD}#;Aj_kTT%JQ21&C5t$mb(1t zc((3$hP3@F`IVJ?{tD_){@(Jd6oCF@!xZ>GK1FTN`oO3i_G5I)7zodVZykIB8@?&_R-bLPmMoGxUK7>Yj^ zM{S=vwPV{~mL3^7a>n$0&b#+m9h=o-SWHacuSR`b@P>8owqR}l0cF|9+v&|BKgGwd z`wmQ4{XF!3*BPx^)~S;g=AqrCY2(W2y13$1x%@*M2?<@8$$m~9D$@TN+ucHJ=IBGHkAshW+ zeop?r;LMqyuANzdx>a{@wDto1K-Y_Yw4CVH*J&T=ONmZ};{jtS*3YU{Z1Qo@{}LtE z+86sLC50zZ_ei(S2tRod@B=@QG+3GFp!8i4?-cS3+RwuHP9aZ2J&Z=gSJTuZz*?Vr zN~fvi=Y=Ok;{a2rD8P*%6{Ga+XAu!&$9&fzZSbHjU0Y9V*{VhJ@n5f8(56$5o~sA+ z?Af|+kDgtgF$sl&$~B7|u%vURa^<#HEK{aVoybeZnBF&=oZU6 zeN?CB>Wv3mFKv7vqH)JoKTDG=^Z27bvDnexh~{s-5{vnKiw6u44RQhG1bQCsd{m?r z6f*^eA3U(2!!>C^!O^&OIm#41bkL~P{NprsxYMZFdOvDs>PNm**e~$L_wU7b@Qw1h z;G1sZ`wYVb#x9r59nwRCx5sJsSd2(3?lE2AItxW~VrJ@W?@ zHOoWYyECjIlGwVV2z}j^={plwq^GZV!JjeL7k}Z-;&U3$7{hqgUjCEpY=1u#eTFRR8FSXta+agzhARvTGgt^>|GWm7(VnH-)TdajMJwxx@_pwaq9pJHoI5& z+n%^GKr$C%P}Pn~AMCN+$R@PMJDS%sTmV5_yeSa6q_TkyF}+NI&^I)UFf4EKKFi)3 z)qX$Q`SW$vt3SEYCa%uvj;AKlC_?I|cFyQ{`U@Ia{gBj7$Q1Rs`bW)Hq`UX8@lli2 zJKWr-g@y6we+@`#z9?pSXcz_>yQ%3S;ttT)bQ1Fxfb|SI7Xe(j2S8Y8HG!zuI4L$W zjs;1T5kB}Q+^W$Sc*aG%KuT{6blLFX*`v-5hAvBf*|qhEk&FMDzhJ@qzZQ=i71inY zrBHVVq;8rPlk8UZ>eaIsh~KN1WaxWz=#cvLp~K=v$AyJ&SdXFPtzRGB;FFI(OIZHh zn!bIYzj)@j@of3{ahS>RpVJ&6JvVqm)IiZf-Gcl?T~iz@?Mq*=GW`TI|MdbDEbE^6 zckRkn$$~fon@#Ba2yKMOsUo$X$;MZw9D~&_#N~m{WP@K_+ zCwbkF*9+&VC?rYNDXl8l4uJ4tg(12&Vr>7Y&p!U-I-7G~$Dl@ynr=S18<{NGFQ+Fq zjf`wM@w8N?!s3yeyLQP>X4n0zjzI#h;DKRb>|Bi+J-XKfo0WuzIS#}&1hc4zkcqGc zCV-38i|r2wfZZoIH*M5t(2fIq>UB(nnwMTeZJQ&*+uKOlTpr@I$`pZdzSvv z#!c&i_dIFi=8m0WW42i4DY3gh8r-A_b82~P)}EM{17km5y6r&2h7*@`?|$Gw)4h`> z_v%S{Q@4+xe{nL1@4eu^4;A{julOE~LEjMH2MGFq0lj$;^oMUcoQxB?K@`eR_}7C4 z3o2F)T)62<{G2IqGnj+rs%+q|Tdn@|0iSm6NYv0nLzh9jtysZNv`ZSDoD~lF$w2?4 z?_qWc--7<)epycu9two(+4Qm_PcPoIRr#e%GsE zcNm5B%6A-hj@3e>MBe&o-p`(SPg@TqfbVBM?^qtNI-u`yf=4d`mSk{%|8s&U3yrhkN<(E_ckrWwERQN7^cdLLalJg|11I<*J#Q>eP009ozG>$rw7uL9i2b*tU>ik!j$nGrsOb zzrKC@;rGqSAEHk8T zyf#knBiU`sW-Ae>eRs6~Mr+SR;4~v?-U%4VRb<`v~MFVmZz)F z$^K*5aG?gQwm=Cz3JQ6lQ~=g73Q-ZpxNNw{I<@N)J?z%hY15|O>fgOvt5#h)_ukdJ zSFhf?nvas*?hfE<>w1+NJMO~wm;ALhFn1$Q|_YfZ?IH1QX*> z;fMHm9y~+6gZjF?3l6id_*lKYfulWqxUh%(X5h#H=nLAsJHoQW@0`T%5Hlw%!?4g9 zGnz#%tyir_D>Qw*x<$*_9-mlgDUU>7;7ar*;_)Fv0KF{*#C)}#M-ccVHVEaSqu2^Q zTBrY6yaV~fJ77pO&$VQ$cPtfRtmC=?JG``$ZJL_SW9Xfh(jmNa$kMV@dy;!b*HM|=dMc0E zIfZQ^nowK01-(anNb|Y}^NRcRK(lcEH0H0W^J3+|02fxUuv^!z-4-tDia)4pw0Po# z2^0DFi4)Zo{rV?u?BB0n|BXrg`}LnN;q<8q6F#5776T#4&>H{VqEhUEt-!T-=cZ*sCC`KLL>a+M@2LaYT0es!052h z*iRxF4;hq`{axe6pL|jytXtd7O7)sGJG8G=vu3UK9cp6YB|pDf0oA>$`giD4uBOu9 z!?2O9gM(e&!W(p%)U4U8NnIL*ySWAi*K1p+hQOcX>Ni1u56pnj5VW=ktspqb?8lS) z1l6k-)Q8e=ZY1h#OrD|6=BKMyUsb*OfToeJBb)NQR+;aIzPt>TK?{tq67(HLrbq8< za$mSNlNwhK2n?J#e^Q-VwK^=E!76R)(z$vKJ}$Zcz=8dhs!r9bwSMqZ51$G=Np2Al zF{yL?`lu}RbBDI=ux)1V3ZP%g0hS4hj#MP1N0EK_zIeV5YQR!KdZ_WsXPBQzw8L5t zz9q{HQxBfO*f8s%pT);bo)R7w->)BE-w(KRW$uJVjpnif%j+#Yx_9rf1+WY?p_4D8 z4=ZnzQ;Zy9HRDg8T6+4_tf$GR&n1IZ8%rnY2Q2uLr3QGTqqJDsq<(<+U@~dEC*U_` z;n+|L1w(NIjc7NZZT@xZm>pak7T&E@?1zoUjjPruqUY%N*46ws&z5=IBz1$T8C4SnQ-{4 z!=f15n%bTLd|2pW2(@A`e!RdSvT2vjML0w>Slgk4d_}_{VwhJ=Hk@z>3+p>7EX<09 zlLN5OWkfm(I%qLkp^$NH@Q^xfH=sbL0zEKZ6_eC%{CNNH2A$%&cInbJzEgv6zOH^~ zPALB5gerSuEK3G9s8FGAKUS?@-wG8rJ!lpg*^K_8^$zsL-NX;DCyMz082b*usEX(R zx9`2XOCian2SP}>6iPzsSXo!Q+tOKU3#g|xL5Zn_bIXiZjw z5PrItTF&jc1y`6Nz>d%YkqlK_s>u&Rq#V0!$WudxioS--?$f)^&&cSWl{InTz_`vm zdX&sunmed&Pm;N!+ca~=tkj}qiXTf#${*gfi}Saulao8N&l%CBi};_!q``Ts5+W>XlVC$axSxHPWc>GP`%rq#tZ`N^)_D z@@YwNa!R>0uCb3$hjxzc|JX;lg9qpSt&iA{hAk~S$x$!b0(&W5MIW`H6(WWVM5=Xc zR6NIgYtW`!gLu{UZzl*nJ0m?kJ*#_<7e|gNFROcM$dGChG9>FP{gyB>CB?&?i?yI& z%B8bcE+zD{`VQ%54H#V9 z&+0j}r0{htV4fB{@Cih2=aiHpIs_*<`--|&0bW!l7N_&^-bWF_+s;rMM|4X|TVatF zTKY(~^n$W1o}N7~J!47si|?GQd+NDrHa>qujgxdTVNz8PxD7b8aqBD3P8m98B=O0F zp^(i;T`Uq#LR?Q|cO>BJbxYsK(qIa*_xMXvBx3SUvqN6)?>@%{g zAST{yuIQRi3ywX21j?2PPz3?8Wht>Z*VU|^+}wgwjuEeA;B)LKEpkXiHRyl&>wb?+Y&e8 zh{ghmgAZW~?u&x>G2u8C$#4t03en7rzd2Fto0L>umV`fL`L*s{&a z)*8KJQlJX+VtAkAL))2#HjQkZ&`R$`h_T>{AI(#jd7~Wf%3zLWE6b)# zE-#xrxoq>ngPWf@a6o={(bTDn7C%z3%%5| z*3c_1F)?{xc|}?It}bTS{e<|$$6)0$9!tcp@_&6?oC^!LY%VHtaq+3ZjFFM~LuN)R zBw8kY>LpzjsjZ&)qRt4uNIk*V)_mi{p~=Z7k}Y!%JhQnVU%FbA1-n0W+o6JjZH+vB zC{b>9!JE$`c-MqysDwil_f})k{DOyzLdMkZw|Kpni@X~Z%P|RsH=CV)si|o;1F^A< zGn05`)Ng-1*Ayu<5rcwLp%QBecSlP%TNoh&JR zXU~^5uv%q#QFKhQxs;8vtsb7*HgFl|rBZxX>Mmd5tHB5$9Z@rWRac9U)uOdBj6F9d z0dKmEQyvq~OwLU2*I#^hoGC14NPOJ5aS@}tPfkf8zG}qP7|%xj7Lw-uwPf!RoQi`x zrFF}zoK+JZ-ly1{R2?4PuPDh3r_7Slf52qPw`XV=eCIjJijq#z$w^>d{VlnenlZ9# zU|ZTALEVwCKUX0WJ!C?=y37<=d*gbo^4CrnsozC++iJoSh1uxe>v~u0+G0nY`qxMS zyTQ-j3k$iBqd7@u_M@B7e1ENGt#A_*tF+>6+z%g5&6)R#^2HAu_K9yRzewdw_;gE3 z;zryDc5H-oXR8YNwc3}643zH-4KKk@S#94vdmxk3RzfFxO$dBhSlsO4&8D#Uh9QouF6)Dc{zG>I< zi~APm7bqX+7ZilXj%0o-`zx0^g;}uZST;GeTW)*ZwDws^ZG1EOZQoE(SXi)iT3NVH z^q^;=l)pUNXMUH_eeuM{l2i3E@xcxvx3mxJI3`GjD?l}kh|&T(9H}&84&n@vGtJ#g z&m_^ML$|KUmYC4O!TI@v7fqi(BtJiMe20kS;n7xTR8jKspegZ4dBJnZH- z!wR?V%Ijtp;?&G8Y|)F5T?DteMp|=YQ4$WXk>n`KLgegCLnJDay=%))acfCS-q_}%`AMfv3w$yCNMuFC^o6^2EgV=CQO%SIr6m(5mXuBq zrPKtUSCmg*wWKI7i(!jur!HPRb=smuXj3n{r{pZo0uOID@(_Xg&WhE5oo(ddgpw~m zi*?7gG%CG~$d-ep9`4fxaqk+JAmheda<0AAWqr=o35DrL96%(T_sY@KBXd7!X!v06 zkSAHRQPz>ys3(l8vELy7=G(B$+4>Ib3h1?$E$nn|^%x^5b0&*IryW z*7xy6uGI@K)*couwx^x?4qdlyXkXh7ajZu={hI!Q?T~cnX?Cf8^oTu+-+ua+jeAD0 z(}%`ZSC3`sOY^I%v3iWQtX1;GSiKMJ2S&g()*Qts3mW7p#_m0u6E`ukqbwdfw)N1p z)7#^cH~8p%?vvTo#(QJT=*?xIO{dz%o3~h<;pnOD=qJv=d}-iziwr3DSbYsi>Y5Ly-MF|&HjP8@ z`e|`QTq(=T#3H;?c)Rj9_9Z37C&c1IEQoq@?J34SP84suhIHH-5-E0#^$sfDMD_X% z_jlvIf~Xt$E^@~YNz`|JU++Mx=OSj!RbVwVKnCN6M4)=9& z4GB(+4-OiZ5Eb60wZY(7?&cmHJt(O+@zW0e##fLJR>0KoDu|Adt0RZUqwK4y^wt4y zzFAXQX|c@IOT+yAx}@aVZiuGb=n1iLC}#he9b~1L*Ju?@T~fiEX2BKXeDq=b-G)aS z9h?;qFl}0OrMTUd9NECO!(4MklkG;Xsw=SXZ-7QCIst}N=*Gw<*_+(u7CvNSY{MB8 z`<`i@ z)UcBcQXME!=mXhqf^1!Brw+Sh82XScCQ16Q&$Q}s;}9oFTS{3Q<%d$6O`M2miFlZU za`U+?;DumVa0d|n-);YZ>~_)9#_Bwj$A+~HESNl#Jx%z$9^ljdfMz$zX7*tNCQejd zu99CaEmeA!ma>!0a2+<5d`x_RZ$@vKc^O`+ikEw%bayHKy#c-?dp`PkINBrOZ4s;} z)19MIm>HLdstto}jWUI)4kseOF>lt-sh&35H7wC*T0c=7m=)lvmliif&z&w#x2-P7 zFqxkT3J-Ln_JZzw(1l+_J}bEmT9fBgYfTovlY$$*8Im6uSU7nWwYfy&g<^naI;R>~ zHaszjD_o!?R#%I^kKhW|ZiuTiuHiRT##7-FE`e=oT+^SrfUURP*0r$qdW26CAQ2l6g2^-b0gAMMYI?{Zci|;{Z!RV)EA*^G5Z7vFJ#K%>4 ze5~)B^o;5#?4Ttli)+;oR-8W~B_*rJA_}Pyc%Ye%wn@W4KLibZluUh_1w&#kk7AM= z1LU}@;OJ?INwT*}kcaL(K3=5E$w%Cr47Gv$sNX4eZ?Wexbw7)#-LG86f`ejU_iXdo zeFeb+`4p<}-3}vIUDBgny$)u@Yfte!=Evh7}YH`{P7%tbwi7$Hpr& zT_fReCr9eqArjrn9qnxe1qGR@r6no9^^ED>9n%x9j~xz*$y zUFDubJoIvZytH%~e&4#Spr=QP($PJ-`(stzW0X{O#l2(qo0**;uN>IJ5s+6G@WOpV z)vebOUy@;t#rRXlE6(zX;FPZ*P!>$>BnD2pb&a2xQqVCvIJm5RZBo*Jfy-0V-Qu#= z??Q)VW~6t^D+~^q++ou2UO9_1r^&XF@B{*4!+m|coB}#^98i#$=qwr3J`9@}i9ku)rFhgDyaBh!4C)2_X@;AYishQ|B;dNt{zzl^)PqR41f3aV;xj z1I8rA(X3|c%e9l!6HKr#6o-?pH^t$NT93JnG@w~Xu2Ga)MCRP^B|qBCg@Ew8L*OqV`a{?$kNb=1%(ke}<93f;c=HIh@2TMwEi6y0DbO!U<&?`Kw zxJdb~s5msNFD8-Ns4f}(iY&>=mZH3rbW?3o;nd^G?+6j-`R=oEHneRe~3?8IA99^%A3SEbyr9 zJ$6)q^HZ*L%PVJyx4^pvW5x!2T7%*Erlu(kr(N+Pm{yo+vzwCMM8s8{<6Jp0QLu>R zylz^*7nt7Hlw>i10Q!$5lDF(*ilT)Hlb+2Lhl}469b&99^2s&qV>h=c(O^C(G&Bh0 z^1$PsCnx3wCo;AD7WRVpEck>bGFofrLRLL3TEcAzfn)nwKUP`(C>-p=8ceoaahUDr7gp-W@_Mqs#~a`S zdczVy#9%^gih08yD~}$fA4KbqKiI54z*BQve+%|lf$eR(c=YJXKQ_=0{n$VLP_e-u zVrQe`O}VXbH^w#jl)&(wV>pM`D&BGo&U6xdD2Mmp@b_>&=awOtzmIx~a$QoM7tlF| zvwM3DdB8s=`LT4sd#d=#3i%el0~UBjgLp;W$KfXc->dh*-LSyp@U0sD=@$5F==2fj zpHNP>z+WS*;qd87jV{VC8T^=Z{n-rEyMn`~DmBuN`mvz@BIxUd8QE%k!N1O`@qdf+ zAEn}h|6;=m;$Nq5IQCsp?|aIV^!_K{SL9n<4jR7lq+G1`;qb8>?!Z5z;op1+|BQxz zQ*MbrlfPdYN$;0}&p9QcgMY#Y|Da3oKQ;apUyc5k57GD4=zrOgKKg5=Q!(gZZN{kg zFS)JKp|h3?4CRnpiTyLWOF=*wN9}zGzxY-Qe9!@&(coWf|HMw~UhgUWfsf=)GiGb3{2zZ{lBSe@kEU{_ex!(~;+T zr6B;42ByW%+Myb|b~Kj>3ep8K_<&WBA0eXJM({}|*ry2W?^ zLx8`hte`w7q&GVBbR#~EhtZloL9+qZ@Hzcl)C;;sgD{afu}r(&{wt@CoU`I_ZM>=Y zo=P>(v*N&?qud6zT@aOOq7OR21D!d_R~-JHlG+?!{7Q#K7vP^zQk&z8U&$LeTu^3+ z8+d;szD9pr?T`m3T?Tv{=ih3FT?YUCIlcjMF5>#f@%;-Gtj+=dF5o!^Kk)M(q67E{ z=J;gyj_H2p{GgmF4}Gwv*XUu$NyArG7=rjbaz*z8himxg=S0m8 z|G~!}R_3_Y3tQ1L@OT{BYU--7-K27aWt z<}S4h*cyEwjs9|B8Xu1i`aV(=r@!3(6Nhv9!V%~bu2e+5SLHjrpHevghrnkc?~kk4 z>7g1_y*Z-H;P=@_3c!ONScTs;{27D~K7q&Kur`qA5v5-X{4eFNxu0_g{!erKFXb8z z=Xn#IiqT)gJ5#NwMWqitC^XzMMlyAtpCN2wba$FAtjD}3WHV<$2YB&A_@+nTL+>%;EE5b5;lrl^T>UAhM<|H=w_R|E0^-yF{U z8j>6QJJsG@;Pkt4eEgJWYvUg(3w}yCT*V&Q@U=?iWr%80(Wyp7twrRZPG z%cvK4ydOVP@nKK#E(+j;PyMUTccsed7Wiv~cQyRe&G0c!16BGImo@p7fNS%h%JImtqyHR^N94!Pt+l56Oj(2@^Be)+2%>#U)^f`ya+iB^) zv+iJszw;>mh5gb1dPCV0TX1}7jSdK_hyL&yq>epve0|>=R_meH4_QY?MqcZud?osf zpSXjyTQl(F{w?i0j8m$gneZW}$Lj$-e@>6KHt@khzD5tJ%1j`Ko#dC@dKGYb?esRg z)N{?MH7j!Rx3mxG0XqS{XdE9!ZcA7zhTThdiLY{}OUQ`sABOi$+v)f2CuEJwUUL$9 z!~FuxS9+-rm#f1bz)s7ralH#y`vLYqT@Sb-W1R>3j{ZP-)!y7ee*zEvb3(?d0O061 zIYv+RQth`B^3W!Hr!E@4-XF7!N+0+y>ED4}8DZb7ti%XuM!y+8O%GJBO8*?}6Q}P# z(!N1i<>1Guq>(gY0)!KEsS$l&4e@BC>ejvq5SPuXl zbv@vUyp!Wku2q#SF zA<6-+;#)A!@1zwYz)?=c*9CC>A^J`FM)*Hz`t~ob4~_U(FCqO@@kicP<*(8|hk8fa z|D~)#e>LI%!SzkWAKwiB6X=^`y<|K}t#t73MEa)UkNTwxbR@jTTp1#$Rv=*4HS8){qvxDH-0=uki7{a?TlUvPe>tN0Wz zaefd;0DeLj)!5H9yq{J46Y{(!eBKX)kA9onB&QFwetVV63FT0)8uw7YsrVx&HsROk z)qZ=0_giy(vJ)!)_-6R8Yj)!A^r_!e{82QJslCvn8m-@2;FElKzim?G&|E%RzdZB+8bs>{SkHun;J3r#0X_ruTt>M_Va9Z5H*?sjCj5whz|VdJKE@l- zZPpJeeb{TFOmM9qRQi0pJ%YXk{`t<9^x;PZ(R{7Zcj(0o=*4CE-;MOI$f{mA{BwuD zeMSC*x7XpHJN)e{V^QyY9P8*u^p5%KMe!3uja{nN%vcIb9bpL8Sbruss;PW1VZ|05t zF)gQ$dgMqwc68?0*T;76=0Eg4>({TJcfUa=(`O#qH`V^5{GEP;F;dDQdAQU+29l3} z--MZOf@Az~e1pqtg1Szo(rJR9CBLANP80mtKfvD+b~WL{uXpfs9G%ffry2Yl3^>8L zU%~l@-8C9q>g}dS!fz`7;c)b}{w~=aDT>~@M2Xkzb3uw|=^uKgcR9P9;0D0`)G~Ni zpUNDw57ElVcvh%AyThNoW3SSlp`30D=Q%2#N*%Wk=JlYA?rRl3i{R(%13CP0tfidi zZRrb2=nJil55sRFq$R#oILTJUe=X$E@Usz3@Na3XYxu_oHNs`78T_3*6;AxefS)L- zldy-ktzKD#N199?dUmt%8Dwm*aG7)x5Abp=WNhf8J$r+$wl zU;7aJrrnj`b}Qh=!9%2^;=g8(;_wrIzuOFc)}F@cK+nYQo57E%-?1a+ z2Yq-LVkPezmHu&+AN#q7;OFeHDr(<|-MRc@AJsRaS$n3AjTU_)_e1?rQmlB4x4eb^ zw|Lgf#$X*)EtAB{w6HOJd=fpVWefdB-$-Fx{;^DzKesZRfAo#iL3_r%FV)iUXWU=o zeKQmkVQXfoKhgRwK0!|pT%R6ol3`n4~r=*e3bjJz%VN^y^ zWz{4PJToM6z3L*WR*uhLoZb`g+oQOwR7+jY@IPerF#IOHW6%gEnW*@$F|4yb0)Dmy zohJNaZ0{rS-(f48;9Mpu{o~}uEnA>dQF4AZr_u*GV^ZZm%4MgJnU0k)5fy{u9r|Nk^CHfZX^7`BjBLxj0oUw_yo8816=tBxc%>N(n}Y#>tXsF z&RW2Yct>YE>8pzfxWVN`+Bt^Yn&46kxK7FE{%@oUMls=wIUHZ#2*<423~m6NeBVeH zy$WaJIlc@y`Mr@Y&}71A&{Wh5eAVZ5aZ=&Jza99h&+Fo>;U{posz=1XAHgL*JB(SQ z9ueIC5pb%PtkuK#1aJKh@HYPdhtYnR4wrM=e}D(IfKz+Pe~WZ!M{vktXQLd*cZ+nv zX$217#^I2^f&8{emk<>$ss174Zy=v7(j`=b?{U!KK3k+qmk2T_xeU5YiA4ErloHTs0 z&5}jXFKp8vSYv} z``#R%$NgA$(Bl664nL362i#?M3w$GDL9F)!KMHUIPNALP>rE;=-T_B$%2TYXy56Cy zC;3QGStN&RcJx2m%kcr%OBgToo$ME_x2kj<_KPi(-x6n`|KM#A9(xt<|E;s{r4~RC z%<)`s5_%uiIT=J}Br3RmB*Tf7osNH1!0~KJbQX+Pj%J7zqF842?3Y`3De!dBrAtRL z46MvEHSREWdJY@(eR2z5)@AB5@%lb9n(#U@wzb4rzb||Ie{}CFe~goMU^o+>uj+zu zPQyYw#@hEBsW0R~>+b?viglrh9NsuDx{M?_wX|on9<0WlE#X{F*?-4JeU3PFKb>>{ zA1Zz7A8T`bT94AHF<&Rm$Kw*GGWH+wjC>Hi6vDp)SN|fuQ#^-mck~W_hE)=MFvo=* zLVfR{f9RZEq!hz3UlcH30lq?hOIk-X5Y?$O%r)$HtFk(ZXB)I8zgSE!*+r1Zwb!F0Ec6&xO4cY1UG!_z<0S~M=juq;=zT0>!nDJ z_Z_~^;xgprUG}SZ_8$PB!*yAOAF#)9e5|;N<2XE)+Unmy>dbWoS|A+MXtU#iTRsL5+1o*h=7**#QwRZy9~ z%j+hmrTRc5FS1Fn85oj;&*5BN94<_S7#rbSUL5Xn1yf#gxL)eXzmsn5C7UU!wzOV2 z`AGOp;c!!VE?<@I{^opeIjZmjZFqg!nkm_kE~x36 zwJI~RB2>5i8|dj;E?=%Iv__{><8g}siw>P`^3UsaIf#Ql#+od~C}}$k$YjXt6TtJh zzFt`xPoXRYdU>@g3p0uYk9fGIfuisCalFQE#W91Nxo(Cxr@g{G?vL`8(j9Y zLCxsXSpK{@zP$mls1NCbWM*AejvL$kJ7_W9ZWEUS#&sG@$tl_%eSRG!ozv0hi$89kOkP*)3B|un`yAEl897vs%x%Fr<(DuE!gx>+B;d<#^V5NB3pXHau*(hs#ReVwS8HHodp=g6v zR37x;us9obQ^l3G|1Y>wO2hePxCRy1;}y^)vduX%r2M6!g08@Rb`m($x0B;V+3K}s)A%MRIt9h|86NkvXA{X;8`4wpNQ*_S62F&UB>#qP6)_!6?RIC z^pcD_h4sek4Ro2a@$RiSyvv3QJJ_Pjdl%(NKObZn${92jWsgV-`@~UJ+9^<3)>=SW zTtcRmMT%LIHqj8J3}zJ!JP{mjy+w7iE_?%3e{+LbefVS%Jzb2b9w+vqhbF zuMPKwnAzibi}q@ypCQ^JwMm-7`EnJaGQIV}PG@ORD`yvdYl9>k(7IM=9a8KVl`9_* zn`yU@c!)Pr*Q}{*YqJI)RGa-b+RoBWy+E`Lt@Vtz9<(2{lo@vTx-e~O%AWo(ncG|~^rM3Y>oD!)aLpE!jJ z@gVijLG>qOooerjGm3N%dsL>6lYAVZ-y;26t)wCyD{wAC0wwrDx4;Et_}yLn3MumK zBWwrZ^&R$tl~pNgt;$+frMs$>Zh7#mT(*Vu#zEIxNY4!M(jOO$PR9`@itaA07Kv~9 zcnC$FZm2<5p7cX#J}70FD`=TP(KE#Se$1ZL(|1QY>{|JS9(oKxY2PgcpUA$QgLM;ZSCeaF2+{ zh)9p9@TjazVO^`v>)Neuzb+t0zb>iO>MoI9tHJ};_K)b39Tndx+pU|kn}@sP<{R%8 z*v-9UxSN*tUBWH&IKdO>ibaD_ z_bYvh!dO46&(MBW=b#IL_N`TFNyoH}v+-hXsYZCt!` z!-l1cHreVN&lfmKpxd!qi@tE1#{0q#SyN*8Ei65ST-r5$sD(z-VjOPMHDerU!W>{B z1g{TL8uFwFwAza!;RVnnwAq2uyveQFJk(^{?1undT@XaOp4Fk5?g0&&5I%Y(W>7041_r1-Qwc2)Cdaz-b0NL^INr;8Cst zL<@ED=b-6|IeNeSZEidGjeg?(4JS`+WO+)^y?g9AUhhs}wK!ciVXwGXW`y(;?y3@h zVxo@zlSI9sXFm!0EK&YZc+Mb7LY1!4K$kSqc)5Ekl@AdaBg9Gj$TU)XotZCk?M_!N zvlyk5YURckH^^QQWo*%@|K>4YjT;A2~1b=yp z&<`h#J?%e;Ao|H40DnCU-XQ8LLAG-b7cLV#T>O#vGb_e} zKi;>6r;Z%Uh|RSN9H8GGNUUnWH4_qSsJAD-X98)q`o9?*Qaqyk%(!D;^)4=qjdIfK z-?@14otV_b?h$OQbkNDolzl2S<*mB@EAsPW&8>aYl9b;SU6zs;V=j*`vIL`Q#0a-^ zb7ddBD>#K$Wq{v>6JF0Nf%&i(s)rR$GBD(OGmVrLDNGiJ;mKYrYV z`7>)c{d(wVA9j`E9iD6(se{>%BbA%1-N;{m9fckZSHjto$_(nqZuWN!Z|j$!U)+$R z3h%HAZZiFE5Zpw8dIlPFLtG>!N)>!gfx~)3%(vA`6<^XbWd-hFc^`cz37s;%1rH`N z(F55^vcy%wS{Ysy(j3w}@ZCd}ALdGo+0{_GOLylU9CapGmEXleoKJDZ7rdDdw}9th zV&m^9h3thpcf@j=X^kOljm-p~xFtTl(N7uFDgTP~&Ko) zzdw2Ejn%rVKfQ76hG)YOeek_+^u(noe9GRE+RI+(7m{eAr=b($GfAR2`=ys=i1Q8{ zoG*LX4zmOE=I;MHew1fdb>8g6*b~5?fAGLOk-f#lLF7bfdLz9pP4a@Ckls+8EXeL9 zX2A|gbRr37$j#oWmwM;&Ww@xYAWFj*s@Dv3j6FWi43)6kVUWGv711h}eK-5>(%XhA zFI6XBAYBB#1^n4sdzO^V?T8oc3X`Q_Pw}4fw0|b|1_6o}FB`T?@%){4o@SYnf>XYj z#=K7S;yqGk7`E^HVcmvXMkg2lpI0rtz5(B?AG2Z`_N?oSmv05tsGw0pbmPkX>dDm&@vy=jo1- zDkG}Kh(>SH-5(4e37`AtS@iky=f$VbpI7$a|5NABt1`r#sSE$x+=!V{T1wJ#_2qM< z%*JAZ7%2aw(I%AxRg9#@8razLV&Qq)3tBCx=dttWr4U|^pkrf&KT-b6#`4}O1>%wT zbMPttiSp;qH$umbp8tda;F1f=zg%^VR=^BrmLzpz4 zT93B|?MYW`?uz&)nuIoe0UbW1o7u8WjuQ00R_gL)afKq?QW`cX(j6*_ah@-(7H`A; zy3q~B0_|BK;B{cv3YlW{q8;W^}5aZ`3DZ>Ya5=7MzUN(=ge=!s#*hN%(%{EEZwnDE%<8Na=@p{$Xj{ zVxp0O{2h037qbY?u4MWNlB?l{jyeBVTI%?C%Kh7j3!w~Pwt5{P!#Hw8i%OB z9Z`V?g#kwTfehJNeBi>P0(T)3gWO$k*P;S}P#hrxfa*gblZOnMLtR-Ai)E>-56h8? zqzTeWX}@$*a%GsTJVXzjhu*{B;pE}!(aOUO$;er-7_1A%>%YNH!LGrrg5ARK@*}QC zbQ>a+xQ!8(3j2gtgmz`D3|BWwjvO*bFLFb<$jpAvJ@LfT%1GT2}RI3E|+e*L$^w`tRVz|sYS27YJw}y6(-OJkL4elH}q&USqEPrR+uzYiJOl;?2gX81kVuuWg zi^Z(O{WR~HN2U(vn$?18B%=Q1KABEq}#pCsoY z;P+?n8$$1qd&fD_e_Pa4LJoO4a+iBkM5bjc1G{S>!nj2}vRzDRsXd>5p`dW>^96;I zxMVLCj)nY(A)S7rcxarDt4qIrTVn&;JhODsfPqz2s#w{y@ujNpOOuiyW4iO)s+*+x zP0%fjMp{r22eS%g_XK4(tI$nS&R5X&Ulo|7@CRk2E0R@Cgyi|%fGeb^hR@_g@_j`- z8-Zv0_}J%9p{}7EgJbP0e}eFsP$lZv(~vjK%;q{zXjec`??~D3ec<Qh#bC7&o{z)0d|$c4z_@O$YHNG!XP2s(TiNa z;=V>$Q`tj}FyM)2DR;0qtp)5yf;qk12%7^f^;92LUn-+CZv7h zKO#Mm?kNH&uvf_Ig#@iAA&u{z-fmlL`-m=?${DYjm&-#@t=^Zzt~w`~2EoP3!Prb9u$(-o3?)0s|bC-&*RXGi|`9Q@x{?G z-2I|l#%!uoY&-WD8SGEpHV^8*yxWFq_JlH673vAPu|L<$|iSd_1Kl*yN_hlkS)U(lDFU0isKx^Ys1PD|+g6U~x8E_}>=EoH%3 zX1wyl***B9+|hm!y;BzC=1MPp@PYFC`t?#0U0-bbymo!9`imHeUu$uH-|ruMfSTX4 zf9w1KcyJP6L$O*w6Ko`6X}Va5=0D1-ro9crvsaoavl`*3=@FZC39={#^J_-*+z+G0 zR!{cCZ;!8C`#8IypE~E(Z*Q=Jx8@WC3_irhDBF5X-aq_g$(*GXyVG{Bx%}4f7kl^J zIc(9QvXxzrZ~OV;u-C@!fA1MxtnI^fPb^!fTsl8-s_g~c)v0;QS-SGp8r!ZF15IXg z(cpf$5gy?i7w=WwVam$MBubND(?qhK{bc(mp2{~EdJ3+^I8;xk9 zzX`_;)JF29U)-U`vqJtKnunx)>y>pIH?9-kls|j3@5))%FR=4WXjn3@du@8j$l;?# zEM7Hcf9C#YzW!kB(f$KpC|h=>%|M>k+4Q#=tk+v1OtJgkV zeInfN>G?+!TL=CxZSrzLbD%3-vHn7_U9hG#F_dctYGY1B-e;tXqYu3xP9I$4#{Zgi zfsEk+3lt5BQK9(l)pliF;xEOC-f`d3kN4wK%Yx?Y{6_iw?d!_db@J(b`;?j>wl?TN z$i98w2hD41>rdZgkD4`a@jq*7)-)`X7SdSxUrhCd}vn%)Ug$k;CXo)XnhhTX_v^Njz(t z*(Jp5a+tA`;j(k<-E9u}Z46?&g+ubj*tJ2cIyfhE3JdLEiu5wNNN&!aPSGKe-Ud%6 zPq((Mg~*Pfv1wP%CN!Kqiv>&kqx~3v{tMPG1?<6nclXxaTiTw?jWq1bAn0;N4Ary& z!^1Csio61N(3QaBssy~zsl`=u5P&gP(KUXk&xBT!-77t+j8&dhURB-`d?p1~g;a%B zg;kjnXQ*?kbFOo#bFFJt=T_%l=TT>@^Q`l#^WGF(7g85m7glGg3$Kf) zi>!;PYhTx)u47%Ny67D-2^izfMkk|lh*OC3FyA5VCi;#G#_6~+H7_dCz#2mN1;qaN zg^zMIiMk+}EQv|9b7ICXUNi;EYf4@myW>KL*xh3LL1b8{d?Q79GUURJu`iYs9UuOy zaNwE>+?A)NziPhKdVfEkX3F{#!+HpCR`U&|N^ z>xDjR55wpOeZlbd$x+#H%mjsMYa{*Di<#P zIDjSnG(cL-cGlM`|FgU5)8%`rKC>NTCw5nUwtP<|=<0-jDXGqTp;P|w4@L>I5X8b} zF}CT>RjY0!w;qyZ;u%w=%l;hopz6 z1^9S-2DJ+Cxp%yk>(S03rT|~hLv2Q9&wS}3izy$L*S1Yo`0(@|{VV#VcTOA`lIh{$ z6q;fNa52-mFU0wvKxWD(6`$m1*5SIx~V z42!dTn_INJdc@F4ugss=u&kud%oS6n_D#Uq#JC=Tri7%>)}lQ8&cI1ohm`|`!-o$! z{O$f{-+XJ?)IELE))!8jKR)NP$uH%{XJo_`(6$xUp?cuQ9_U{Xc40bk`%H7UHlHGQ ztq&Pz^e~@*OlDmuztxo?6?0@KhHs(CNt^TX*!c&G`UjWxW~^6n@PI`RlnX;}Q6f`T z5Aat!nce6=V6{Ry=tYw#-O8_K!BcxotoDuet)A2a^QAPax_V9@oFoqP?elBCFI+@X zD6^NyhxN0-RSeXb-i822qrinevx}^1Y)d`bj>dcyHBLD_(eE#aF8) z41cV=V$#S-12cN3&SGJsW{s~|_4uHwszLkK1V4X?O<|SqKNq}ag&Z87^GQWqwEQ4L z^z@2iYoD_%7}7C9cSL?ZWbzi}Bjw{Q2*Yri2%PBnSPi6nxybkHok(Yq=)wyeZGrdW z4cTE%3ysC?jfpJ&mG56+ams^UZ>)di<9bD3fAy7hulG5V&0g$r|KkZ#Uajb4`>XcD zTH9ari|ADQ;fEjAYI#~}Fdv*U;N(u{@4mUki}zdJW9tG2YGTW#0!`O9;9{wp@_>(BaS)S`d( zVta5J_HKf)euH&?IP0ENJ-WaE!v*c|HaB$_Sq1zh!yr#9ePPU)7fOpu3rj{HufD>r z%sw)vtguvB$x5-^RFS@jS8D`TqyOw*}9 z+~s%`9$ir?#e1^c$qDo!`x{Hfwd(Br5?mxf;A_egeNz6%eD4f zdLv)Ya>WXxK>Gx=UqB!K2Jed(CHIRLmDv|Bj@27^BQJtc-Gf}@P_Q8D(nh3BC8iflNh(=ReXpKy3ipJ;=L(}V|0;_ZU4~lDQ;kD?z3UB%K*hK zT{mdwqD|ZM1*IXDBjN2X+`o5GT6!d@-S!RZcLXOL4hy{h(Up6F8vhFT55X+bQ|JT! zJL6Oq_ONLt(?TxXT#1Emn)?u!Mg5-}sLy|5!ErWlPWWSsj&_|8w`IkJ`j^&5tY3M! zTkV4t|GyTpd2Q$Z_7qDx<&`=*JUYN7bisc%>dhCt`;U!|4-}XFuPr6JLU~i7V21-} zC11*h ze3s#}37_Zic@>{?_*}!st*pCF_#VIffsa@Q%Ao2Ds=oN&Rr@~}{}bHwFXZxdi9G@N zgb7loV?wAgE}ncs+LZG5{M&rZrwFn?W*AhO(%H;DiK9j(_PLOfJh=bBftD29vNUi& zUQ&wqNkhf%NgFp$kY5h!GVT5Mr*;jJuFR>FUA;^PI{A6X4SQvyZ>RcjFITx^{g)xr z>aZy7wS(MWu$_kS^gZ;kH9VX4l#}M4hY24A^Q$neGkR+9b^qeHww14o`TV#bUS z!)MM^zG90%|6G~>nQn8lVG-0o!=fJsi@bB)+PYmVWY>3+5RXtAu{OPUihiC&^bNJf;T4w8hzxElv& z(^nx^U=_Z2Ad(@UC7B#u$Ce0%0Q8q`72xh~vc(@?$<^go*@e=s0RPGZ2}07)l3UZh zma0&}jBj9RWq1{S(wpLB_E-DVtbU_vyZJ;0M)>#zMZ_hBwr}ItrhS{xXg^C(Vrp=N zC208MUR^CgZQT^_1asNJ1o=2S z&FeR9{`%X|;{d^!YmY!lixGPHe4|hIWdMGm~-4yNN6&mdtH8`jKdBHAD1UG$q1t%H9!=sHIgS!V^(Ap}((@IN{l>38H zBTN%aUzQIj?7DE@>=~J(Rxe#Y&%oMBLjI4>uc*0fRrXxg&cVKi z1tN-jX}{T99Rs0If1D6*{3~C*@ZhNn%ExS-=*QM6m9}4$O5N1^|IxY8XS8j(IO~2V z@e5l7>0fUQ`X}IHw8j_s;pysq=XwLudL>GHuEaSSxn{}nCC)ArD>i%Ld3*^gh4L9kE>bK`pT=Ru6@b{0s@sh}vv^Hq zn#I`06d3H}>Kf?Nwcp_M(BQdP%uB+>xPAd`{Mr`|Sh?|)(0RIVqy4Z;x9qLOX_g+T z9)Tulqb?MWgvq$$z&&|D>n`^#s;`ii5kEfJZ zPFY>MV9vsM^UklVT61m9oQ1{vqH^-2ZkgQ1*g4R(t0f}3Yx~R3zg{ytxrahk`Es9#6~ZpR*lTj!w>X39cF6yLKM)>a83*ncA-P zlo5ff)%odT&8aIZ*RL2j?3ri8t~G-X4lGlaDF0=p%x`^U&jQ>1wdnH@yjv6q{ST%) z7_>}M6hP3h5*$}o(!v)l{Uc>th~DTIa^~2vj!MAJ^4mwW!5p|z~J*4#siFTbMml5G(o} zUbi{Ry59OsmS7cPUv~G1jYr-$56Kzd+v;z$cCebPL8d+vx*lFAW*uH6WOcI!S^Z6YtP4j@um9Rhup}#1In64Z zwMvIQ+uE$gG$Vdj5&PSv^v%9>k5&>So3JpH|7#XM9(yD{$ScKG#rD z$PH_Bsx_K(9Ab^UW{tGAAuw@mjkQKweNdu{k^bO8Ja~VY-`v7iBHQ?cKvMikwpH(+ z($DIWS4dU-9X~U-(1DoQ*!ZJ*gPXgD1FrK=DJm*zl9`XSjV3c6$jtxIGV|9;LuUTQ zBSEGPEo2sNm8}L45%LOK9X5IxtRBY0de2|2=tZ5U&83y-c37u(vdTuQF3r`Ym85<( z7_EAIElM;em`Sm)j_Hd_ckvr;f}}-F*b%Z`mS&f;N@kqsSD7%VCmArjrEfrWXj((BrV)1RzCUWn@`eb;J9%E@v-%& zt%aU4>^$hd*IhuwN;j*<&{(JNB1Dkrryjp}deK);W0cOZ0~Uek1MJcAoZj_wr7u>i zK2-Ab>?n(82_2OGD)*ITI#$E<%)n-!v|TJm`V%LP(!e8G z{Fc@Vq_Mh1MTQ#3CRF4_OZ(j_^4w$DB^roWeShpBVQdPauy zeO;-0qG!>Psa-O@>ipA&MZs~MySELI&Mkgpz@#x7Uhki~|MO3tPwN!ae%1K5=l1TV z%vQdfyQA`{ZduEiYs1b3xA!*ucCNOja}JA5s=(%pES!fO8OrU5tF{&bD?;m>7SBi% zgs85IP^Y6U#5s$;Fq(A^@b?d}Wr}O>tIHxvrBs*}Q&t+S`XRQ7qPR{R{l(?0pWBw} zifvo`I^@^w%8d5D2uDu;DTUNz3d z$XU$g?u|rGqw)^#hOVp&oAr^c(`06xJXyIjc|v%|wrwHem!{xt+kyj?8^1}6?PDX@ zNVZQYQFh`E;HO-1Wb2cJga;Glp+OO^+P1$EA)6n(6cqldIO^4K-iKNC+xoWp1n3&h z_ArWQ9p0w5L@uPm6<4RphkOw9xVjZUce7zm4NcBqzO)0&XIyOq08^~P!I!dvyR9jk zFeI?Fc=HGO!HID>b;m0$UEBOW+P(uI%4=zR&s%m`dI#ytf@=X;L0A_gp`suP zw%D*^5~E^bPt;fwvBX59d%eol#Au42NxX>~)2=3_c+;D?Ni_LPxv+cqpE>XD0&4Po zx&Qx*yZhF2X6DS9GiPSboHpjD@aUlMz^J~Hhj%lXzFwYVlmcVTnXxHTUto!`**PcH z+@C&r)|5v}hussE5*u$0iZ^%bkv+gPRDI0Z-!NgyOOFqa4h?7wXI~l5tX|Xm@yvW% zhp5Q#sCY|Y)Np9yyX6kGw!$`6V`hNa6d#$=f76WT{9JO2v2KR?BP)`nCDWzSIIwr0n$$s)HoVGz%be5WbzVrW=TJUNdJ?|p1)ZH+Ss&_G zJ9>639n-;a?1He2rk&?sN<-S*e;-*&-R|bMCbpOMYrQN&^e)z8WcyT7|EaAG0p1mW z*9+tNlP7fvuz8s9Nq|+tAJz$f9Q%=71ji;^3&F8^6{d}EfolUkQW*>+ZE(;YpKkc{ z$7c*a)9_i0&l-Fl!RHV@r|>zC&-?iJ!6riX5F^YUafnI{fwL7>5IB3T`we-(g|Pp1?0?~IVP<`DEx zms#7wXaiRSP1urcD$Ol1g!qu30l}RiX14k5b9v(&J$rN)w(UMyBlwZoeaqRo`^Nk5 zXH(dTuF(xR}Kmqn!l=H!6J2$c*)u+I;9u-|X`^fshkm(2Xl;Y~RVX>sLLvMtug$n>wVmOYkuUm-HMm zHYBW~Lu5*NN(XOa@SxnnaRDkn%tkoRu`T>P){ev7gME0hhThAnREQZW=9RK$G&hmg z%N;TVP;jQm$NAhHe4g})G@FNu&AR4SG^668-RCi7n>^XDcb65*@K zC?5D*|4;w%qiMs=cWoap0M889)VGAJzY@)wRT zXl2w+wHtRMfzEOSl~x%8`Vd|n5*gT3>0J_7dAR%=j5*6 zI?hd3103h%Aq_8Mnf=Eu<-Mxmze$e=Or!Zgh4yxb79SCw0N!kCrg!PTD2SzF6vAxT zlxP`kXOF*lYCn8Mzj7n{)p=G<;uiKkw;cZXz=Nkaf9~>=m5*Osx%mK_v>E>o@_PKA zaCt4iGg#)MQtrXp{6PI zGs>icYmJNVda#qZlaG(Njp1mAkOfbCtf#RhPY3e~iy$IlBx%oV7*%Op z#Y7$YMQaO3vW=e8o>V=Wia98h(V5m7f{M^vlsSe&c5-yhUj0lO=naa^ub)hIV%~1DbOK*soP)|?vAb?9w9Zs zMudP`n99gxoR^AmUXh0pHVZ-Gv>xDif^NPe*Itax*H zfAjo|Q}c(Ft^9zWs{gd@(r&8jy}uZgF=9kcMNPlb%XZ`eb~^e3hh!eA;u(Ws=$NTBWPiIOnU$q6h)NzC3ozuV- z2Xtn`Zm?CazdgPB^OetbV?Ei9wu$9EW|{MbE*;b3k?A{o4|1|D{9mt5nfA$`Ie)px zzZdPe4|T6ZJ5q$6TfNn)%p+ZiT1e~Q%?h+j=hLP=;h0;Jc1>n70kmQnA0K$Eal^D3 zea5exc}$v-JEZcSA6JjaNKH>{AK@1hmE3Xig!~D`X{F=u{mVUzy3d?Y`qJ_RJ^Wbz zsXc=ZCno2QKXhd6jL5L0+~O_kD(@biUNSf}J>1_ElhiRjIjLj*r0q)vTO*>f;$pka zdgQ=_u?u>T!mk_A^szoj@1q+;cxbR%g5dt9z9=NB2Nhye0cjTY)U}x~T@pRiV~H0N z0B8~vmx1ThAIzgI-7U6H^H@%9Q-=w?&(oEsrFQFsek0Gz9Vwu`=><3$H(`5YSEKkwgH{OjaI@Ba!4@?T~^l~&SEX& zgkp9akTyE&rQ!>AcG524A$qo3)2m(uSf4N*C%3pKAl>1m>LS^YH%vw-7R3ZW%HBFZ zqRUJC}u*3$(r6hTU8+?>DQL#}S)L3Wc)n&`m!c$W6P1(ICbhGUqAwiGd6n~tb z<;dVQD1d#%vJcH#)RzZ*|J?ENA$e&j@O)(VxNGtJJ<_|QbF!Dnlk@sm#?RUhJHk!= zHy>7blS$imSYl%>fo5a4U#t=t4nZ&JrZ#;o7s>6R=~5&c`KTq~kq(y0J^{}J_$gRA zG-}Aq2TO`)KKRm(*Z#Q=ANK3~C7i!G{~o3==X;O8!kh5LnAR>+Fa{q(UxRjN!~`nT z(8YqtGX%ea{uqnUx6@c#*qlYT3ymlBtmhxx`J;BrxsBcs zPo20RWtf=;0^&< zgv&fcvQzPP>Sp%yATE1n_KVUBh?H*L5uGA~e0`MzbM9*w9~vK*pu}6Fd;$d+ZJkA% z=b46EdJpXn#*yIX)=5{OH~P@-=pijEc!&eh0`*PLR}ZB)u%Xp##SZ7}?c3SE)e%Ey z&&I`BjSChpmNOTloYJOu48zoH%!gr_3l^3*`chdKNE#;2g?&!ptPl!#6qdN1qgvXQ^c zhHZqtcWoo9z+8l%Sn9kcd+}aUreoPxU&+h(aW;q#2k|wYT=QUVW9=7x_5;B(Fi_MFDd*oR*?l2Wixvi9<@Ax$IHq z&o@9Wo_0C~ACb+_D&{Xna4<|8$u#i`f@M(d?(E=pMpjidY`{aH8-^1-6VD@Yg!YCB zZ!vlaf6Ao`jT4UQY?c1IifRU-cVifnL3@DH%kwS(hb$CLW6tLUe)QXVdcEk!?k95U)T z^g}G>U}EB$m6V~`At`$Wrr53%J#@w*=MM{5)LvH3*6{^=-^2Xhv#TBJSTGCW-}4`) zA5=J>eLz}1d?cU3v9^FuDMaXG1xv?r+fFPU`WWi-0x=GO4yrEVX(>k6U8d}0lpjgn zsw`(|NKuBZ=P-wp4_$D!mmgC*+VL9RGvGbgG{k#K3~TwGZn>291rj}paa=y=7%w4_ zSwly=+7U7s^K{yyh3YklEN&>Uh4F|qR}JDt3|^4Q8Ge(VD_ zSRZ<=v75ZZp+LIHP2tELtG(wdVle4FgnjC1v9yXc1T?jT$&*@zikW<2=!t??B z>ebNB)2wN+*Vy2X+E-0NsSW?71UJ6*^oRg!;Z2bB5#?~>`gbcTh<+0M`=6^P#W)Bp z!H6*!(lXe_G9qX^)WP&d!-;S)dA2ufD^lJ-i_#n9XStGH`0V^Le$BCA>K7}1Wa%qc zTGKx|Ieh=fQM-FjTaleUcI4%~;}7(g@+Ge^ug$$5OJ`a9)-j{__g9vETA8;bXW!qG zl1`*`o;^Ba${Rx;8~yN0dHK}ehN5v-i?Jpt->4eBeERD2l6To%=M8M#!!LSAd3$&R3bR6Ev=PB z-ihJLI%k#ZKH?m1yFaq|zW0&a?pt*C(0!CM*l@;E&S(*XMCH3{Gw2q$$|(mN+Wq-= zyiahJ-~PVO&=&7&_glU1xj)hK{(_d}d+z7C@6&qUX81h!ss8)!Q2#Jj{gd7Ieb7QJ z-gn=p_ZQva{SmJB2|n$9YxvyvseEz&mh#>AXL#-pZ&knhKI+#?p85@1YiqV2u}7Ys zv`_6Edk!Oq7o8&%DW!SubmckEb&GbL?#u1m?-_=A?i+O7*tKR`60YkhQU>J*LYD6k z&*7ZjS5^0QuN2R9luy^`zWx#SedC$i?&CSSPtSR!isvw%BY#jc{MqcPxDFeR$bBqU zxB(8FWBo5Zm+gWB`l5E-tH5)e;J|eO$5D6rVvl;)-t_KRQ{V@US)-p?kN5QyccGn& zJ>=bc$G?b9OnVRNY41VY$GLQ^c`riUKvwO(u8i?qw`kV^$3W>5_kDd&&wYb#40}mj z2VP>2V?CTAE_~D%#B(^O_hEx^T{on9uA_XqPWRQP-1oh9-F6?((S3T(0H34=zn=Cy zckQL98_V7n*FjZfG4krV_YlUpdRaU-)&&QC@jk8_dV8)D9IpE+VzagKUG&0;fpg^K zlfOppZ9UBxv~#5t?<0qsILAtGL#()uevHv&F{Jkr=nj4^53*33+A~dia%)lKme8)~ zGubh=4Z-`x&h@+)Zmn%N-*XdcTs;4jzjpJ&P5v7H6pJ}Ck?LkUUq*TZyNlJbWo%l* z+Z4agQdmUeB4rJ~#xL`KaLU*No+O@tb{GZSq48NUIUz@r5soH*s5Er!kK=f#QFI&+ z&zBJ&-CO_9JYOg+SSu|8ezXX;A1wlA!3cEC2>8(=z%mi=qeXyd5%8l$z>gLIKUxI* zXc0gn0)Dgz;YTC*lCNTS3dt2eECKi!=yC*n42}^UD2_vL?5#s~D_r*`Pg-VmhclbUEML$@Ie)2Q*1LXN5y?C z4B-#khK3_$IS^U=+~?t{W%AdxO*%Mb0-3J%>&fSReHXR}iN|6~_X>UfYWa9)AUmZf zNuHQ^RE0iSg0YCka`z~2(MEY>4jU|BsnT84=P6y$4VFJ88TH_d%a<>v=Nt2-e4|ye z8kMrn`QDOhWJq~kr}w6Gu|eIsT@1Wv&G+>(8g*UQ%n5=G(>`C3|4wub&`vFVHXqMB=sxys8R@X=B_5d;Q(oBj>@QVav=+YDE0`Zl9M zY*H*0|No&c5;oY7&;pCO2k4lWQSnpi{P5&=SmS*$JrD^g^L_o1J<#9J z->(jZdHD8s*g4rU{LPaO&t*YtHLi;i3!12NK~0bSige*RhwTSHCf=IH#21B$(i4dB#(eD8dN7j>alG;;TqTWHjLxfP9?FSnwR`?A*I zevd}2I-ZM0bWNjCb7w@PkYE~5m;9!N*9hKmcTGpHZ)^BM;v)G4jfYr*u8X=yIS!uJ zF&pF$Lj8iwEFn)y;V0zs8ppmv%KW@Tj(s(9IX?lKwtPMU{hwLjQCBNGk0{6UoR?XV zc;Qg%=aaEA&%|snhN*j6JTx!wkf?}~*S9J^*+K@e2pF)~c+WFkT0rLR10=(Pa3Whm zAU~laL6U|iISuE{mu=u?6QT@h_ zE*hM@_mCh9yNNvSAz^*3Lvp$&CL|==a)$J@noSWQA)!fTYyW~wOF}|o_r3gtl#+Ld z2^kU&I9I#iv?XVns7-}QM%Zl$L=TYUT=sxZPG~Z6D6hJT+p7UNDm^bg%$$^#lG(L= zy2%{2D>275Oan3}5s=aKGu3~FN5Fe`*u)$7T1))r9^*t= z2#j)%GAsk!qYX7T_@0_;&RFSl0s?@sHPT2DU33|M@jV2qfD7YKkkHSODAR`YH?9$Y zA*BP8(`XbR7%&p>z0|kGcyNP2mA-Jsplk02SV+@LaJh9Ge^>}bhhXq=85k%gh$Vds zvhbH!4^;0A_lQt&k-sE}g<@LZhjQQ}vzaKU$Hu5@XvjIkfd=KP!8_8ot&oEUi;CB< zYY7u#LI@D8qoR+S)vb+R(_=#OX=ArbsZ@~GImbAjz~iFLNcX|J$xu2p^#dG`DXY{( zLIq)^jwkF&6g7=dM82|jHupBN~OLySXw#~a7{3T4lzVw|e; zl^G>dzIf3AZO^6bc?)IFyVZE-=j-d^2Z-u07Tz-69ruHV=u!4)ko@i`zdAfG#xz*< zkpwfyC1BL9jbGdCN*lr%d;#(Fqzp#`5rl>_(GG0COE(d;LkJV4`Vit?R{23Zen1oU zH8tPBByMl~$}Q+y(hjpBu#|8JKn_Q^$tWMCcUi6D3AT)*fM$BWM5Q3V6b%@Xo2(jN z5P$VhR*EQ!OtLf!Go+9lo~ES`53!hvgoql_qf2^P$JCCgmhPPs9EI-oX7982!y`k2 z(fdOp!{w{?@UYbOvvYIq>V!3T9yajy4i4%Z72PQ`*xOsQ=|Z9VtfXiXZH1o}79j!- zTy(V|cuL4GGKUM%#U6{Ms=U3ueFIThw7lI#^J|W2Jv(=|q=touM|4a}@6toQN;O7B zL`Ox$1mFdCV_d^RyiQ%Ra&oh}wa3#$3rX}fqD7<*@n0~@YPFH|pZ;7DKFr_&LpV(} zpFR-`OX`t_!qp#?O|@JbVb8|GnuU_?#R>Q$fPYs7#VMoA;plo}H08J4C$nJQA+whXi8hr_N4H6nP1|liRuFP_1Bxh;TGF7^0`^OuAAVtx?=Ve}RpM{#UOOe{`c3=t3N#ox$4Vl6j;L zkH!fN3ncf%XdA~U#=^w}F6x6}wTszqoZMq^i;=Iz=(zfm569W`)Z$Fz8Uy4hjwqO>Eo252wD~mVjUnE%bWt#8A&oJ^pzc13R?U zu6gVA8cj}Pj?fnd6J7Ex>XExC<-onwyw1%>Y~RYg)vU@5I4?ilon?BMh0X5HU-JL} zx!j@2q3%K)F65GtlqM!8M?fdEg(ya+Y1fnG(#J0{zlprt82;kA(~1`#E!V^%Yb{^seP1)2qTgE`)8XBn0*p9!&Nmpr@5Krf$kqj(Z++UREwUFzMHZLAi}K zc0tand8(F`y(OG^tsZT`ITGyU=nJWAuYQs`TEtJds&n^KI4$W9j-*!dN$REzA$G2eL&B;0#J=wGvDtBeH3MaO|bVADYKZ zC73Z%)@s;brxz=xu~iyPqbskMe&ff;Y9i=#Nw-wrMy(e4dN3X!_KDhuh7lS)nDtm2WGx(UT$OIAPt~(Jr2T`wDe6;HRS)~1 zT&HdBpxF&I8_5Z!j&7>%`n35?mHHu>0x_GpVkZHEX)Zic!mdFAUNghVYOS!rxh-&_ z|B<~=J_?MbZo79wIPX&bTowl{0l%Y8aD;}dI|KpeDSFv>Ucpf73wl; zrq}--eqsc47JYF;GMU;i>q!LyG}94vlK$qR8FGWRu2W*L2R75}wl*>v0&`q6Yu!dJ zE1%oM2W^5TT9}Wwq#4E4K-|cx=$q|U@XLV)-&mjnnTvaiAmg*utGE|OS8y+eUnX>0y@%(;dw8FoBK|>{d1{qr z!|>RFwdT)cl}%z=1cUIEE1Fptyilua(oDlwG_Jt#$&jf}r_a&mwaBOBp4DnCpCOm> zQbNQ2?t8!+GbZIK(}`&k?6vQ`r&(>aIqgEgGt>o->am+@%^9W+(=`!M$$)z0ie^Sd z+txN|mQ(=`20j4~=#c~Yi@7mYFuG^68uiU`X_Jnm`8W3W-UU-awEw$Fr_s4F=e_qd zGpDxaOqI?b{P_#$IuNuh0A1l@)1B7n>bXb$2D%5&3f*(*~32RGbM# zv5X(C8OZido5p>41z;NSVwc078b6_9O{pkjMgN$Fe*#ap4Z?+|&0@kpmq~SdG$O(| zQ+h#~f|7&z2aBEGNn;2xD;19BEOTBYwErTtX~xr4lN--gHU*kQx@Yj9DBGwUZ9MPB zNU=2zohG%Z@c>>!a5mdrU`uexBNvleq#tX>iCO&Gn(~^dNXXc+uEXO`0~Xaj0T*W7Bw^5CH%#9H^mCzstTt??>2Nd??sb`th!*s9Do5 z07>#x0^%H90ZW#Hhur)`a#E$(P=qKUno{*pL2G5UQQk6bnq$T^`2puRH$9{$TyPOk z(?0c(#SI?HW=|k)G7x=ND?13_S!DMF-8I#he!Sz`Nr%Kkt6;k6!NBvfLp`(7J)ObHx2%YLkSO%Hy`KGsp zjhN_`2@4nY&!izflUbBswu;ABxF27*MVymy?|!@vveElwV^+hp`fb?aB?y+_449EJ zlwUlLuMo9uMfz-l=zizryh8#af**REti2DPDJ;SW#f5D+3`gg;ipN*D9%pm5co4cD zuWR+YZDABwNqkE(fF_6dWtGa+#-z2%Fh^Uh!^=@Y~oL!*RJnV^lw(B zdkV15bwNsX9eCyLP9eZu z=hSW#b91>%6AL0m4RCusAVvqRRMyU}mC8T(Rx^9Dxm4Z=ewa#sh@2TDhu!{MKN@qI zU8)Sae+E86cVlz-1`xuoYr_9#4=bC1l4#B)3%tobY=riYa++P8lnXEnvjD=GhEixy z6X`8Y?cxs+e!PU+n~3jZPusZ45%yCdw35;NEU=(xdJ5mb=1|Ktz5zwS4v>V-LM_tH z1rovJl3lK{$Uf{+V~`~c!3#lhs?bzuB(243!Zyt25^4BCxeMp)Afs*8iD#zkUW0zz zjppo3h;jF1MxWPm`T~WMR78Fs%!|tiUwU@|-tDiw8`5%8WLnU29@O}QbcHHr%V1O# zDiq02n{FlQy$^aOSqmhvk1526$UtOHc$5FaycOTZn^jz44myz6^I!NcE117?33D(9 zzs@_5oGb^=l<2+OWq@OX;GjnlK}ywaFDTW_oBz^yQ}L}r2?`w$9EE_R*bN6LfVgH2 zj3B0*q=)dZyo9X0D<+rD~E7br4hZ#0=7@tv*>gRa$oV$W^&R5P!yU)3* z87I|K;m+c!EnDOoDxdmAK4?E5w5Kc>=)1|TqA(01gSDpycs`^{RMulvyr$|gsXNv3 zwiG2r@wd-8-~VR*Zz!|0s;cn_8;1-SQO>WNvt;{xl;2F3AlOnx`9ZCVhTH+{(%Dli z_PzO1f5)R(o+}8%Pw}NJ_7uuizId;3BT9B5Ab-~w0~A1$*5#8uOe42S{71w=0}xqk z@~6$j26-Y8@Iwsv4UVo)UrX(C!S()uJwMPzr01-L#?= z(SlU28iO(@JUhdtQB12>qu4DKpX0B)ss{O_3aZI*5UG}SxNGNAnS1%?&q8n&w=}y_X_GacVm7*_7qjD zP!Qulv(H#Rs9|FzOKfRVd8e}BA%v&xX=zt!RR#b7+c0PYnqT;CwYrjj)WSDhsm{g9 z@ChF8FVWW3|GTD8r^CJ5FOhQKp9H|#IVN01! z`L=tyd|od9tlKV(L{%s{V_fsoIBkAPa-GlD7wb1t zzeeDard0ziw2bQu3zt-Vanr4nzvd|*Zb>7Xnx}#8nII}g`Bl0zko~=z$7PZif`y<# zYc9zQJNt@9*`2R9yCY}v&33+-&7_D98hg$_Zi_O+SgPqERFJSU(6H%z-Oi)fS9U3b zsOj>vq5$k@!Z#Cn+^|qNkO9o~wm_K5b4_Ys9AImx2r85>vhzjsGEKzc@ply^^d${C zw?(=cPtZ}*KTv^tZxNAMfvV8-kS8%rvpD`4e)yPHI8zM*@7r-lxo+I4IJA$u0uK%N z7%CCFw^I3VBetXi6)0%oMxrG>Ag72P0$go6gC)BjpoKd{s#{;Ro+WrF^9fG*C#`AY zF4{w%)-)nL;4F9{9}>k#H5$|)A)46!23Eui*lDGRt!6hHdSXr4X?B{gsKt{D@Xiv? zJ2nd?gT`xWKtn@u;|aWR8gH&{XyAXZ#bUGqUI6`z>e1fOB$mxWmC07aex6a66O7NMC&q91w;zoz*WZm6tcvV)n)E<+DkGXPWhDPi2i1}WJb`riM;uGzo ztaJ2`esg-!M=Sti-`Ux}NaY8`&NuB-*6B0F$}Y0Z(Ry|y!bbxmQ$Ieoi~xrH8<`A6 zbDeWQtUb1J#}57$tJ=X8$r@*m>$2lp{@D(8f=Vtgw`*lrRM>eK`0>e-3x z;$`X)v{rlYC+rxs^HzAEqzG@Sw%=ADr9+4aH!>@=nF1d%9>FSRinvLFR{%|^dX2ej z*|a`Y=lI@J&((Le-Z#yjmsa@-t9b5IeJ~c--1Oh{$fNw9!-g_8G)bP~R4u8S9({x* z4j;zYu5Lj=}vNt|5mTLsB#JJXHgZU6&%)3sdNO(v^FaISh&|2T#pXio*t5Lv zH`4~k!rrqsx$oSM*|R%;xpCu{hZq~u{eg!zS%*G^B5$EBsWxrN>Or|WLcy{))HET4 z06wPC*4a-wbq1Vtn(sP8#~N)LePoN9wtVk%r}*AKqOH(4M8~6~Jy?kjzcSz#bz-Lh zEv`Z~(1J@;pD875>(8&U@>9-h(ooQrs%@q%;P_TH_Z?B&g0}oi(3Uy&vd=+V7Hs3c zfwnHVKAKghEL-sFSnzb{;6_yE0|0RFsh|}7j zjxSQ@pwAg}arpsy>5B5M?x>eMg{f0$TU{)#!yZizEW5LY2-8fExlVcKhSU4H`r>aV z^h^E?-JR)Ll_9@txT3P7Ug{JBifJw*$KkMsVEiYYqVBr%%MHHBQ1tH=`X#@epfa$& z7;Bea1hi%Op_r{pssY|EUvCHigvjf?e6hzb_5MKYpc(iE@|r;eScl3b@Vu3J&y%a= zg~|f8TD{wQnY>K(Ej2Ecmde#?wf-LCe4h={23%aG_knnzW$Wnkn5ZJwO!?N)Q`+k+ zlCL*>B)#M8ufF)AGsCHz*(#f)&o%nIFQuv`_frW=u*88f| zz+ugxG3$NEuMbrPIKY~xEhQ#|VF|>fNIr59+bE_Ulv16SoE=q(t+2Bde2E?J+CA^m zxDucn^(>}AdNItZVuj2}ogTm5Z)v~2_@(Q9Z=q#X$$TBH4F8Ms9V`80GFzNVgZPUX_ zjy@SHqw?U)p|wX?nhcze0%x*iCEJkxGblO2j~S9tjcSqp#z%}~hYzyDBl!sNbr2V% z+Fv*S%C7Su{NO(};<^6oW-7lo>nERpP z8~qY!NgeVdy^UT5z3L+=$Yh7$ZatVq=f%8yFjNR$xqR_#P;dmYkO5f+qqHTNDdS$4 z=R8utUtH1#sS$MgB^CdER-TtyJkgm=^=aiB76!NVMIzKP#(CeCJ--{pYV5Q(iuNL;tM2j_umf`GEW_^Ovq+({C_+;h@RYefmoG$3^EQ zji|}YpLEyJgL5avnYv~4!P$x%9K)zgaH($qE;IH824=_sbVoQy7a&(VK?srKfgW*h zLYbow0eL^cR5XuZ8u5@Drsnf3o~0pSvvrmJwRPToYpXJF$ja^jo(tIMK^{cdO+c*S zMEn%3dkwkS`lAErl1WsU)JGa??egWgL}Q+fJ^<+#jDF&ezD0e*AN@i1*0b>41?vnDCDh%tBg%`2?Idt7 z+;zp;nRb1)h_rJw?4k!zbc@9VirT`J3QJMXQT&b1S;bF$;GAJ)9ocApURkd?I!JzT z@x`$h)~%dZ&f}!drFPC?^EN+Oe<9Om%apUiLKo2bF-iA*Q-gX{eH-(|SY0M{4@py!W8zlEFUH1KQC$=R>%xYeVWUiO15HUk{NwcTSB#Hs{;z-h*w!>K zLAr)5m~Py&d^fdCJui}q^&P=ouv;Szs($ZYeaGK0vqQT~=0);O-1E`do`viJ3xd!j zwWPN|Z2WqWw4!myfR>;Y@l0T3bRCg&659(wa3GkVes5zje|oQTkW?bS53%8Kw~3JtuXcs5%UvP{2Z&H+4AnN9Ij} zkMhF!%=KKKL(9DH0j7=X2gji2Wz$aUnxOW;O3P>GL) zfZaQ`_%HY_8^pd+`Zzkyk*l1(`Lk;ppOvpvJ06jK?FnQV^TK@NlCqCTDzdB?aS6*X z+0>W$NBp14zQ%I-uww+s()w9p`Gd&wdKq7dFY_G@%09;k`EX--i{~h2m*#B2K~_LU zxsmi?IAUHu|9Io)!&~+r*m77Zb}JspPG!4!>C#OnWfu9*2KBRPfcsY#%$ij)FQC=MfU^FxW)EMmHaDeDzvPq`!gEs!2P6Zp-aY%;2s8d} z^4ilH zNn}6#fwNOEU7CGnR%PcUm6H_;wuKXQ|YT$rJBbWstqA9N!g(aqG&!FYck zWrVzi4{oL0t>?ePC%01a)^j%>F%Y&reRv2bI1$nUWT)s(1GZ+1(E6c2ZAYdF5J5}Iz+}U&E0q6K zP7KQK;}tk2Z&7*S>8$4q#|_CyN%7iSIAj?*EADj6Pb--`vt(wFc1`&OUGaEi-h#Tg zvceZ$C@hPcHz>o$F=hX%yEmYh%BurAmCW5avm}U(r%ReFQDVVIUeJbf0HeD#le<{3 z)r-wSDSRN~h**s!kZJ=kGcDtT=O!qpQue>YDd4+8h_g>)--1@$B1Mi8tv|o2!RJV9m%q5k( z1RS9(DNygbON>G9>-MNumAgQB(j=f;VcSl8$WNE(T~{DPuQF=E@!D9PCGtf*2CTgeZbE0(T69}*=8S=&Poo+>Bk56 z$%f5NpF3~_9jX!z2ec?3+F}SYd%4!JP`9*-1lyuJ=&AEs-=A`*qnmraPV?u_D9jzRbI7BG z1NV(vGJ5QTEl&wQ-6+uauVNky6-bsWiLx2GRY-6|dWibrJ&j*gO`be|wB3CmUBN!g z@3O0mo26y&#V0ZLPmo^s78G170)5dACNm{#Br_C^v~4XJ1hYmb1V2mGrv~@#t|*c| zXW$4r1X1)kMN^-uK;wAn{p+Z4?m9Mc*2BJvKJd}<5;8^;oVx($42mTr8R~9bYlt<% zN}0U0ty&W;R@rK?N?%p>)|$9%@!_2ZC-o^gGzINlvG^}LrQr#pg*&qQ`ttP&14g2? zQ}_dYX-@M#3j{Ci0}hF(#VXhd88Pp~P0UJ6uCY|moj9s-k}$B$CT23+!d7hcLEuF7 zRiM6`h{S|ZOXJ?w)x}GM8CiYqR8>GYv94B;eDl~4S4G2*p-R0mcL1L*?D%BgnF!il zLhgE4*W7u}w9aBR5F%EDLRw)}w2~LXMcQ~~4M768*W!~4#~t+r^$LnNN_!mFPpz53 zzhsY`+*IoBL>bqeOO)CCnosKJL_iV#tesaqYX9%90|g}EtiR(ypbIJSzV0O8coBB~ z1hGc$P84>bOi+dW9*tWfPE=N2yajnf9wGmlW}k|5)tUP{ZR)PkoM{CCKnC#>;iim6 zA28MLH-Tf|*KF(CNQ&2H{p=8=b|3H-HUmC?VD_Ehats7qYv)Dad+$8r>!x2|dn?f8 z13EM|`iw>u%Wd`BtgRtz!Io$%8~TAV(c3tnqG%2p%hGY2)X{nO4CyDw@u?5@_%|Cd zljlh>3(}iqU**b&l|+^tR|eu4{sMSj8ayB0AB5&=4VT<7*wZI&qEBS&^77+5#dqtV zOHB-6fziHk9qKxFt4mbsqJ8T^a^iHU0Xcz}bIu~unJ~a!bzJ`L3>iG#AL}0r=#c+h zd{gJXRkVAn1|ixd(FJc4?d${M8SS#*Q$>Xeqb7Uu2NrEE)ecuI33>2|HQhRD{U?7=;lo;2dTDR)gHOm4{058! zXra$_6|yPY$amzkaz7!oa8YX;1DgznY3@_!(Wh)ecl-T574rMHepi}lJ&njaXG1G7 z7ZCnRhDY`cyuJIef82h}@q>^@BnK9QzHbYdhyP)(`~#T(;MVW=RE<$?!Gxsf@1n@A z+>Xedkh{~h=Jt6J65fn#k1id;DmMCSp+Z<`nhq5LgN`Xvd}+!=ctA^4B1mWwB=Iz< zH*!FpK@TP3*l^M(4B35#@N+gtx?+M7k~0-GAvp|RYFJXTqGl$^ zW05$k4twUtu(oUr-^V{;$*hz=4in8Md>5N4T{>`VYtVsX+mGWDAU$zxJ9v)96KGS) z8;}XzVa*idybbc2CI)&<|DwSJ(}jp|Qo-?uQ}Gyi-GwbuC~5N8Ua4KVE8!3jkX<4?!msnGek(0Ro;uQUn$IgFh`J~Y%VbX$q!jJO`+d=`1yaGi8t=(eZC zeO3KPyWhm|p69+|b-v)b|4;XQ=L>Wn0U4U^Oz*$RvJC0+n?k$3$$!v(b!*@qNMNJT zk_5x+cqT)>NblYh`ndXlZY7nWKEQu)(+fJ0x6o0@R+K^J6Ua7@C(}gsBx-DOriMyi zb?Nd`MwbWKq6W_HYZJ|vsS;lk#iRyn|9)0$zkcaA?Do8_J+coTj2hpS08lg?NFOHV z5J7}LIj87P+s-;Y3koEZZFfRX>}4xFS44K{fx@b)O;wW$v!`1+bU1kTJx@F-?>l(I zuJoSRw@*dIx`}h(gsAF1@3Gwr7d|ffBI#S|09RejH6=uZwFUQPwkW!m=|260H}S8o zi6Z5HZ9leM+A8=T@{7vRFBRqZH$zNujM(AD10PFb%2Q0Z2K7&~d|DqoM>lwlW+--1Kl;sU?Lo;P$gnu&4S12f6dw>o8xSE-qgSC>*@WIFi z9FO^*1`nJ7IF3f_iw!ydhO{UNZXqEnd6%svIDNp1jMbDhsD=#mv_xJqG!3Av#%}GU;iaFEA4jtbsr?ai_ zm4bq>{FMIV#`RChe?4bfZtgS<=I3p3Nl6)eFRRFi>7C2%3B3zLf_nr6R##NcpVlv{ zAg|lB51eo1CYk4-USOWGdHC?n!#(uYa^iMqftQ$|g?Y@-Ee|rn#7z&#(jHS;-pFyK zwr+ijOKshI7nhdCm2}S@u7Q=C+r4Hsf0`8z8B{hDTU8Yn4=gX{7o_Bo=~k$&&F%Do zps^3>@}9l|x*{;A3$~5(Y}Bi5Xpc0wlt3RFv4%Cn(Ph%4iQ{8ZQ)8kEvMi<6w2Cg{ zW+$blM1(4`EP#>O(sP5;dv;8TPK!*nnN8&}F%yQg?bESiM6{oG93m%4N3uY6{S&c4 zJ@ON=3}2SsRCINE-#7ie>w@)xUZKJMNcRE#$_wlH;k>vC#ZdEY=3Gp7KlyDAmFEZyU1;C#su{ti3wvU8QZk7ZAO2fduXI{A|Q z2I%6RR}6H~#gy-_=yj5pw=c4qcquwx)SZL>q?TT#f5QJQT*|1@Llwc_SL{-}-FZgn zDWsdf0eR5{^Crv&A>@RT?V2#TrUfVgin>M28?@Pj$trJk_Ld`;Ju;Lf^5t{ckItuO zNv9mwmOnC#|C24B%>$)@@;>`FBep=>e$D>vh;8`R+E@7DjV?R_bnWv)2@_v`FYiEq zZ|s;s1Vuixs}VW)@4@F5j0m${Vl80 zF@=7x9$2rUHPr%Dp)e--ZT*vmIwSLvbV&xq?1NN!-(f#a#58?(^E>#dk;>1Yd~XQ! za($HV$0Q=rIzy}ifKfkm+YA7C=?zknQPBy208wjz1T+Md1{wA%%ftdDfP`^N&_{le z^#o;ptLK~SeB&_|?0l6pCt3GFQwe;Vh#drNAPqBsLo+rX5DKc)8YR0Lb{kH&m4jk3 zgPLK$f@7h_$!AzW14pu(>8$~gbRY1)2{_^@V}a`8z&rDy#VR0Vk_Fojd{E(hMLM@; zZF{V*PaH4hI=ABy!aR2(2wDw;}yAk;{_$l!QDqn5U=KQ|1Np$k-Xn%KD@OY zt)-c)fwx7;YQzo$U9}%2=ndyDdz`=hojt@hdJYBd_53GUuMbANH->2FhGg(2!xc1E z5nw2cT8LzaDvP}tEl?h@os@J>d-IqsMMYi4nA`I+&BuGggL?K13K!q{;C_7{-~HLg zpM1W1UqAfYxBK%?KK^X?<9+)zq-SS;#@_feJ0~amQ=a}Ag*-rSkAhwG8_XC8ip(UN z)s_V1Jy}dCkxV^IF<1=>lz3IMc8z-KJTrbg39B%kLpD?0*)6M{Ima8nsA7REj}LCb z1yy>=0`* z<|8zfHCW-N$G0D|%Dbc<&buF3wV4OW(SKb%6Zv=VK8FCW9QN^RC%)w`>4!U+Uq7i#E?LU79u^EKE) z0b$iI)Hq+0<%LfaVkf>ebJ;cLhm)ms&dh;N$U|m~bk4Q2Ui<9-Wcj(TmekMSZ?8YL zn}2VA8zVE})~fDgn#XC~R70sHveaarx;HW7yF8Zv#`=xo6WKRooi9jB?|)(``@lJK zrmS7~D`&s8ySy-+OEcS8xN32`V=SI}ug{4Tx>iFl9X3Z{fQ_t_c9QnIh zVzQ<2$yM;EfSIXbVy937u-SYq=EaDcrA;d^A+bTD0}mkyp^A9VWQ*d(E;$#JTeEJ5 zu3z@lCrY|zl}wykI%s$fk}zK@cb<|~EPLV`CcPp5*Gl_yzxstMlH{Q(4r2rOkGUTk zBin+`<~ZdsaM{g+^(WcnT<5YPh$7JWt){`C^Ab%yyGBr%*hq|n7`wW!2_uGwL+E9T3%)?>q7f*?RMb^E=XR25A73kwutVGf!3t8dm-*Suo zZ9p&Agky-6`XEUG5;!Eh24Q=is};^?rI$(%^k(<-AwAho&TrzRd}m)=;PctZeC{R1 z&&2xN4#&rjV56S2Utp`-^2@X9m+&thI`-)D{q}QwQCpTe_tF!iLj)v&%>wDxS_HUdX-g?fvX4NO&K%jniVi&dgmaQs| zSyFLeA|EKlBswoj<5}{uVWx{n%uW;RUR$D$nlTGbW=O{!f1i~vs zHA1a#S@#sjcDaNd=F8zmy2_UF<&Gut3bynLJH6@11JcL*%d#^5`yDLKZfD|@Tk-kZ9i59x(w*`9U&Dh|aJPla;(2H1X5*yR)c8Gc zZXpiIs}-DwP$vVhf(Y=0nczcgt8pTA)1_2Ucp<)z6ae(aIEiM9T zmuO@DCE8@EtKM)RsiIzs6~;t}L~95(Sqj$F2ZX!8YAU~S1A;r3KgU0F)yuE``Z>Gr zU$uNI)hiDZ^*VPBVCzM_ECu!Qj}EY32RMFl*UNMlb&spxDB~%%E7_E&BXuu>25ZVO z4GF!za{l8i{M;)KuG@BI_1f|Zz~5XB;?!&i)fZk+ zEodM5q|SU%&R<S9v{>Uz~x7rB}dAJvihFl_mwt@H`WfQwzk+seT$>f#Txx(m)n zr7ct!3rAh7o2bk20pG}~w@DkfF|60*-x7hex=xFEC+)ldGXhzS8D*rrozy=m*BT>~ zYmOJsuU)rJqxYKAspbVtkKz^HF5MW#C zq$SQixzcZr^AlDM8bZQHz72o$f|PHq!z z^giJE1@QQYjA&N!6pF|pbPLan&^2G_h=J!;=)^;E`E$U0d_l=0PNSSzxpGAHXhQ$j zJn0k1=Mw?eTWn?zK9XHyFA+ah^a?d@yKZ|eVKmrs-8vUw1dgE3UC`&R!Ttk%+tdt$ zr{dpfSLrP8Bo)l5NyQ4V{c~!tn(9t1T$;0OTPd5?s+p-x+;u`$-?7d+wfQYIa?2gs z-&J30CLlbS7YuI{#~K8y<{ctNZOAV|mMbigZ4o>A!`Ynqtdj4VpL3@u(hI47&si{X zJ|eBKcED9W;#;29>B#QR4mD+ndR5f>B?Mr{mCHFwpo?fMGuiJlT26i z=c!KET70O=Wp{eVT|9$j#a)H=idId-&oJm{up%4-^`HesYKkCrlHGC6PR|lpxaX#c z>p8LB7xBUG+vTo!OhcY@yyuYX^51F_=CK(RcdMfn?l7*lPESZ$d{P3rx-Q+ z$YL2d=;X}1P7WGq!9N_|HIt5CsG3;0XyN)bixyT+titiaMQheCTvR#ne!kPrcd|)# zHi_upjEf8&qji^{{C|QEdrY3|ct}cW2LFG93Dyru6aFLyEnxn?pg*#W87zo+LGY#R z&(dG|-sz}uI2McVKivZSv;%KD7mM#Zwt*4(oBpFV_)4m-ac*Q&{#+xlmEtvd*`IBQ zJMs@iQt*G!AEX~~Yu4Ub zvxnp_?AWQ(sgM2`F?#%GQVhv>mN}QvhyCSG;&a#PGpnVWe-{4cHX>OD z`TL*rdm1(WtPJZ)Nd9@*6@d}B8D^q6t;4~(Sgdz5;n%%HGl&hv-kqb>9t|%c50GcH zTGMz#3EYW&J;$^dhFX{BgYpO;cbQ^bDfSeG0b`u2kk+!3_MU}yW|Ry_1A=8`MwV<1 zLKI(+HCcRPE3jO?l}%sFxAAR@*>t{jG4}7e%kiMQX!$$3Q^W3Z-C0aeC*85G7O~E5 z+(~}%37)bbnpV1B)zA{)a&?*R`nxx>R@~Qtr-g|&YS#1B~JM)&^ zgtX0W3M7!a34s9VjUt;iioFr}@UHrA9&le+*Sj`CBmP z^kjHYpuxSl5-#_xqaX?fv+CBl$9Y?0`wafP;Sgf(cVZffwcwE%#sTg7eBl7KjrR-K z?;@436ZaoGhWc!R9WEtR9&#a(lO<&M)s_Q8wnh|~7=pBHqqh+R{yqRpLfiWjh>btc zI{;tEoXG>t@g~UR1B>4dc)v0}_c$vNt7ov!jBh0FC#WX)&KUyq6sf#RivoCGl<0%k z4mWPm-qgm?`nwBrPnZp-V*rz}-d+F$e438XRO(^Fc1~`cF-OFhn7o%&9Gp@%sC;PQ z+|e~FcdYvoYdqI|xo*eGn$dF$hn5d2n{rU>=UumU991|Zt2C>me94TOg%6BbU0S+& z%mWK+W-KW$!RH}`qo~Zy@L(!Ak3e@H1MsXEWGtsHJgGGJ2U2o3pq#3Sfm7%=#T2o> zIU?*jv8p*Dtb*OkyPgx1jx=7fb-ebT=CJapz`^ z&5cz5&Ef}f#fkNw70P(;CX8rUBAdu2dP~%U#*dp(uZJ5qVk|ZpPh=5bi^<2%f0+Zu zVzs_J;MkGd0<-zUbY@O+3}%sZFXXG-C-Y);XU%IOo2p-o za)r_?q6;T>H|3FbCH>HJV_ zGG1zpxjYoZW@h^Vf?KNHOKk+?6^?47QurlHzU70zMN1;}G`AhZe1J0#Pj?z3`(X`uFJ5gJ|&%fpO57Nbuzdx2@ zrt@cpWHnZ1oI%%Ucf)sI2+>vgZX}~X;u18&Y3a1&D0keC9{$J=m7YlE_Ga=6!sE*R zb{o8Fiti&ml|MW@d^GQ4JlC_wZGS5RxF(o#W&oxtT0V%Y{^d%{;I_T16f#Z@cI%xahr|WqANx{(_vI)+Y>qA`RCXG6Y zW`jt5M*jIJ{9P;tvR&fl1?&y>#sYCOo(Hmd3(zrYtv)Oo~4;wEw z@mB$Z=EF=F5`qWrD3Lmffx+!a?v-GSYsDL)!=^7}KT85SBH{^5tMo2dIw5^NrMEEf z9_FiA0XwQr{DOLFKw+q{;|Mzj1fHY%@a2yhj6rHzqD2bhT79thaQPSPpX}(7hH*#u z&=zrFuY;&`Y8+vy4>qpltIH*5^`Rr8gMflZ*%)kQvDc{sttFW|>Hgdbo-DNFX1YJK ze^-9RZn_}7mF+v#1*0A0+Ct3PLX)|2ZLUa`Yg1DAqz~D=9{t#rABv(Y>aI{Xi8aE* zK8EMxW!@tSncDc%!4e6{vT`F?R*DUNys{>-gGj;-ekktj*8`lfR7vq3!Q$d<_ObAY zHB`QR@Q3k<7L1-&20$fYa7~>A=tQ}?QIL!7XkvPrGor8{gW;pO>pmB@amJM;9Xk#! z;ddG{sz#66xs2Zh&uBkA_x$s9ES#@5W*nsTkJtH~N=V0y;*z1Yqem{U+U4!@{5}ln zLtc2kme!20Vqw;QJ=O>;99)v5q3T4Fu!Zr&QYVQ zj2ZmSlA#?tmKay^JI!Smd|J=K>z;r9Iq{PcQoE~a`N+|=LraP?I$|@2IXhqb{0rh& z@yovFiT2zE?>E{}Z7}AoVULmo=L}dlA){E@z#kojksUNkOte&A>1l}|gHt&+^jd$h z*diXg|GC=g)nZolYW`};(4i$p2|rjhdgRV3qlmu>t+L>`I&l)u2eEcmUHyiEJqVO9 z=4Fp+*=D{BejTui1wDp7BK6VCeACn5KFEo6G#tW~@8s|L^HrV`HyGc_eA$}n)mpYu zLOJtSjUt&dKWLOdm#uuRjz!?P$jlj1%h)26w+Mb+(4a^sTqrAb5X~Z!KYf}5cBZJe zjxHHcJD_BA?dq#;uU&gpbuE9OYE+5aTcW(`Dgo^;=l366eN_y*Ts#nSRrNvRa*~DT=^p@FLo^zFrRS$asnWyc5_p!zRSPed@}~Y{$ype}A%^SJ!2#-J;uO(QP-o8acq$FW6`6=ce&`fVH1x^cUS z{{>nCk}htMPjhR)KQsy~Ih$=@b2CBG^`a}*#XpceWpuS+S0(iyRf}n2by#`P+e0oy zV1c2@R#bcjjT*UAtf>{ZE235z++^y4x@ZL#ktJN}jFB!zZy(Dj0M|pj-~+Dg7oY85 zGi%wbo#F>xjNVF00>AX>o*`B8cSaZTNG_avl2<3 z4Y2uuwFit$oMict3X2m>g}uoo-dbfkyW3~$VcJTlRpK(3Xs~_tkABF=M1w8(kgOvt zTp9ylN(+=!1_Kn!{^2mYTbb^yg`+NM>p?ajrtODX^`YnmLlPs2tUXxVhhilRNko-d zKCxEXHYAa4E!n1^u}(|RS7QpLodc|`$jBj_!NwuYV^#M~={_l3{IUf~^yVk{O#V)qZrZ@XvS=C3D-x1ME@tXGlP z$WDc(cshV64XgQ}0meVNCTz~S==p2AKR$4y&<3#VsY^fHH2=`zJs-X~{krLE;^3jo z#OZU;DFx#+(r|tck2FUCD>bk@+~Fp{1&C7}R5OxQip59x1Y=TH{-*cz)ionwkh;99 z7^>LC*GG&m^puj{YK;w8%Mf`i)zWdb%{o`A4l!cOq!JshK(xbREZV)?SJa)&; zgRs&4($U66>aT>l>+0HfCSF}z)e;tbdifwg3y>zjk}w+gKmc-~kpS;CVGw5CKCY_) zi|YO>X-AnP?T|3bfvTqMBQd5m0p=V0JKSl%fvG#O&%L*4!Z?1xHTO=(KKHF;u6Wt? zSKX_O^I6t86Qs3br(Y_+OYBdEiJebYs&6+_J^z0GmO?rU0%8p5C}sa2XCGkLM`hoP zc5Vdb@Uf>wJ7?JgY{&vP`d=*xU~Tj#0<<*4>T2!$CqkI}{(q{}*0nOi;@n7?r>OJ5^G*+%|yiO`JMwd}^vH?uM9!wT`r=!T-7#Iv>H^NN4+ zciClcLv|F~A+cEd5P8xZYCBl}I4LjKm0NjX!lRIRoE{v*d5Ayq-Nx_O3r6t@rN4I; zvZ`aYam)_m^$2$13^w~d^`Q8U7gZRqJ+oPSBKFIiYLD?{PaCDPFjVtyXlzvOYV4&> z*Y?VNo6mad%{!kXcWyr02tQufS9yX7yNi1x(n5zicbhR9cgua1QyO=d2(wr8zqxuXJn;72FYX)Pm(Q(PciRrXKU$xg+8uwD zde7%um|BGBNY#YS$wM>cta3YbPjM{d2>U7)O+cG@7G5j9zd1;~w5A5Gg@tjC^eoJ- zW#n1-J|V`j2%~~UnEKW7-HWk1eD_AAS|cayCZ^4Sw80n|Hh16q^_7F$^KWmx)rj>u z@MT||y7i*&H*6E_wn-1ZpuNQ3-WN7EYfYOQUIb5^G+z#%$@<@|y}{Ca!zx>To>e%D ztfb-3f8L(o?ZIe6@uC zg!tI<1D!~<1zxbYL3(8lWR?H8Ox~$A$Pzs1;}4qI1xK7EPY_Z4xuLhS|7yv6&H1GI z<^f?L>Z=W5;KtQ39uGNKD$q`_=R_s=U);Cf=*yom z`M)7V{n_MycuC&7pG_X$S4lr#{!innmiK4!S57&nM#>Wca-DGhyhN-i2p^6SS`IjW24(Ragy&BG&VzDrHTJpq8g!QFgbq5(hALEQPEO7EnF-U z{~NKl-paov{+CXcMIr>Cd#tf zQ`3sqQKCQc7)>+UXY(4Zd_~;e+IMs{vAd+1O;6BXqB%G$!-4zEOHXK+tln2&r&ZD& zvymNZwU=rIdVy#^`Zs>6u2SRCe#FT=S2-~->ciZL4eLti)nRGJ?3F~h6Uavk&86^Z zb+^r%H2)g$@{zr_%%3!GCN@9qpIo)+y9*~xTJq3$7pO6_=TDk{OWhIi@=W>gIV(NX z_q#``CQZEXyN9YKN?hl#f$GJ|YPojnWceD_XZR-LUABW~@$1FkS^t;nSy!?9C8FIO zHk-N}$8D-K1DZ?Iidc4s-99_bPJ4IrhsERKabCkyjZcjUwd@dEC~l%W*h9+4@?2D! zmBrWqhYK>Li}(R&SdGT%sN$r0T%0ry6(psL_~?O!b2%gKp=0H6L?xZ<6@e3bN8>Q9 zpXrIt|0CN)8CU5Mkrq=W^(a`&o96qj#zmylciX2j{6n;TG8}nyZ+wMs*9XIf4*eM& z^D&sEk-zB$Fg(Uo5&g0~*AE=HXc1k$2YvATA+v@qJH2e^%%RK9Ec3n4Cn~EA`}g=r z-Hka|>f2+!WCz=Nae|2;G+1iYt|g(BUqiW zm9JT|hU#*1<3!~Ke>}2XL|p!y8G$cHd}FJG$9~pbTBHRJuso1^(-~Kz z0LM-%+OAZMyHu>CL@KI>yHZ!PWo+51Rbr`Fx=Q@CcQ3bd$KJihX;!^z6{}*)VaUD& zZ@=>RC!Z7{##c{*WSAlO-Nx)ex(j8^7HSJBePGs3%f@6y`Z zrF-`>^%>UjndK|??5V1)t=h9^#qwuFpNSXrnKL=$1YcFRz|BvHJ3f zefWF;=!2MhS5(!pj&;kH?=@5IUB0YNd{kGpg5Htjg3FP_*fFsWfb`+NBk|=I7(swU zAgS!l=}lcC%=Xrct?Fo&zx3A}qef z$TG!wBd=bg-LS?O#>qI?wxe;DQi4a+D=9pjdskx2N6l|HzLa>}i0}wA9P`k?<3?7$ z2HT6;8^b7^Jt1sLz5OaFkC>@#2fA9T>a?&%PT}BQmp!3`?0aMAN2jd=Pv14(8Cpx7T(vmQ@qdXF{B4xokTl6&%Vlp>$V32l(kGwYj@;hEN3L+ef)6wm8=Wbh-kDQ{9VU=D%re9n-8B}L(`GLaYWoqk+y(eJem(( zAUcX$j7na|t04`2l&zv80*uEOu#fuseB|6`v-x2`YfyiMC3*0BACev86OBqE-q@)1 zApq(<-iTTSbElv*(zO|aIw5@=0(rrzBnTVC>HM?|hQ-7nIymh<`=d&*_tfd{Z{hQe zYV}_YU(-6R+764fM~rGd|5o~}yS=Bpr?jdDH=mF9UyLLk%0D-%5#d_Cz|6~WAM%2e zc$7E{?G)vOGw}lQa^B~#onH56+34;wC;lh{^@I)96$?-nH|Ck!VEknIUBA#a%yt>h zM7++n!gibOUfUMiQ??guZ`wYzeQEpA)__LD1s|H7;laB%8-k(PR5ll*+MC&W_7Ho5 zJx$NjZ4HE3BqFv*a?C*PZ3W1U!2Jp0$AI zz&L;QJuuFnJqM-@%?4kc2wS9?v=x4T~UW z9`Sfo)#K3)9clRL$PqQ}2=4v+t8x9k@%=oWeraaxJ(7s#^ZEb&yQ%)&_`Cj3Sef{L z;t`*DJa;B~`gx4L0dOqxpc#N(WHwvyuI4&es$M&6GjgGdgP1~3EO^)H5#Ccuu>H|> zw~*GorT#`}SSVuSmv?Wq)UXn)1g|5VtDYbW8t7tD)F+IU#%ewvdEM1msb8Ua@kDKo zwAM3opsqMm3Ypy*L;Y)VLod}hK+WOb@^6jUv|{#Iaj{6o|2cD5KG~M?kH`wu`?WHb zZ5PA54~t=1&q?CMBr%qLdA;!w%^__@=k6MHLWHgimUBvVVz~OS`WL(pm+v?~O;4BM zOzE9%J#P%)~SAjXI9@>NN#<>#Km4-!|wmh8*z$l!~(|YTH(MC`hV0G zzM?h2b_uImj1CZ#M*zwJAbOwLQTC?)kh@#ZELQS~{3w4;y@$@alPBAueZ(L2NmJ1I zJFLAc>4n{tvO&Zzk3`Y066=hPVjb%&E@s=6G3;?MY>q{7)+Bv$hk?qqWh)YNUR5#G^D4exPfJv+*?m}2}QZZv-I{>x0q=Az%Bpcjh@*>T{2 zebuSC#4|KTa0BKl2{Vd7rf`7FXLFaXeY57>H8u8C$Gwk;5yCB|U?1xbJWa_t-V&Gm z2p9$AM!F)MQLvvKExa|G>uLxU7ms8Md6+PacSQ&9^y46(9?RSV zyhfxL-k{kB&a?cKRt}BPavw1!*jN2N_(0G+i$)S>6TV!_;J08A1SNDle&7@hh5Y5Z zo@h)=51bF!uRpasfX3HL{LoRsfc};P#sqc*5$*wg{2}AGHqw4Id3+%=CYT1G3}h0a zjH{cuu#UOJH&gl)8^`VQKEHkAjw?pojWTToPUGx1((X>0#UcX&_+atCPZ$>SX;~kZ z418Tlrzv&U3=j=vWlR}#P2H4^{KdqwwW7E2Ee~OPF6*hXXD^tHfR58&>xlwkUcPC4Xb5X7;?T9iCVoF(=Xc&MpcH%E4m2QAg#~QziL6a_cmZ?22 z6a9=|c`SQ=Z5h!HJWsTvGMXk4s1w>i${(tm`Io)oU#u>iO(;8l4bIfCXmHD*#M=4(mIrGzSBXTH+o zXo{nul$}NzwV6&%AS>Yjjch|*#zd1pU7AfuPXl||c|{cXq2=qc|4?jAGEt$Zt3lYGeyinFGj*x;mI$=aPGS|$iXH3tbee!_Q6eX@;UtT zuUBz4eE7EQ!|}I$+wdnod;f#aKKtPP&%E3Cdl}cJd&wY&H!jB+n-8OnH0^9@MbSn_ zouuKYbsTi%!9nSs82D#MOVlHx6WQF7C;vi6Xub89Crh3Y-zBl4XIM&-c#hB6B0k-+ zg{3OHCtog}Gfs-ThJj6tMH%DK}Y84VPQBBECrhq=`5ZUJln8b zOV755o^&>77-EOn3UF288jkAVK{BEr)E12 zkoCCm5{GJV!)(iKE5_9i*C<@maV^BP3fJAZ9>w(xuGeuL#uZ8@j5<*YLd*#ygQ1(~ zIT+8W@NZ4esW^luo=z}}uq7qhoV1F7a{@K%ji=%yOSB}YWe-g^CF$!#5Al+CS@ifD zo4xNvHv8@R5$ra2XN_mK?G}5tZx?%avqgtbF!tcb#(I8SyeN9I7g*_>Bj6>AQP zV`3It!{VP}7h)3T8KaRe>Aazv_iIeNwWN0u>(QLvxgaW`ocljZZ^CV_t^K>Wy2%<$ zLk*_+YA_8on1&imLk*^(2GdZ3X{f<8)LM;*#l=ky~2xKp*yWa~|kr%a_IL z^*_r4vflGi@AOCLzo{xIZN4@8x-t$rK`Kb4NS?}?< z_d>lB2bfQLZJ8!lWdeGp4|*n`X99XApl1SlCZJ~mdM2P}0(vH(X99XApl1SlCZO-N zC45>3{xUhM4%43JxZgo&V8+ij^bBEbcRJ?v;~P!|DInF?kEGyliFJgD*}y zCoA5iEE{*reKB!cv*L#gym0X9(vs31QHkqg-K*waG>7<6ZPo^K0I`2*&XI{IHW484 zf0iQ&Hz;~&rFh)a-aU&ZNk*eag-J$4Qe!E&r=O#B@G!XGC98Efdq~PZpGxB|h+kM} z?B8y=Ww+>k&MF!rmh-;G-do;(pBjngZE`Ui(7ZMhtlCIGZKT0QnhKNlKU*_(wl0?B zNv)9!xrS#Av%Sv+tK~wjb0OEckn3E?buQ#O7jm5oxz2@L=R&S?A=kN(>s-k7S!%Ya zU8qC1rK!D0K`(`flyV;JMU*a0q~(G~lkk$vo=>f_4ZKXuRC*-rc<0c*iocG$?7BYF z=Fgv&GiB5{S%9^@^)VK_^{t6;acc&oKc##{~2o6VP)^K+iD&J;wy}923xUOhC^u0o4xX`3eue z;j(&;9&nP!$4MS=k_VjR0VjFDNgi;L2b|;qCwah09&nNeoa6x~dB8~?fUJ{g^3UGy zNVeL6WRSER4GZy6Ii7PYARu z$>rUyTdD3^s1PooH&ruk{l|H>Gk4g)w}JD+s! zcD_CAw5T52pQG-u426~V^BWIb$sZHzUSt=E>~q!yYdgUEkOD&^tr^|Z(dQVzLt9FB znP0lIAufb=_WvKGyAsk}>67kCNNOddyAsk}3F)qcbXP*UD z>8_O0?ZG`8(!JN_G5eJN1&z_!R%T0(FgxQA*Sw}2z|Dn_mCm?Ve0r8PD%n;dE0Od` zR}_aTv@4!_Tl%Cop7ZeB``mrZ0L|i|v%V~?V)yku@ug6@_BU7U&r8WXami(uU4l!z zs?OMR|NXnCtKswaZQs6c{)meP4Y>H?0fR0&CwqTAv|qoW7xnEov>%&4?AnzpuN^j@ zDJ#ZSuU}t1cEyWjy?T|E_v+Q6&zaY{T`NbO`;=|d%tIZz-)6_W+yB%ogw%@VXxGZo zu9br=%F(Wsqg^XUyH<{NtsL!IIoh>yv}@&P*UHhZmHXPYaJ7;5Xz$!x~W_oYUy9THml#Jbye8Q*>^PPy2wiDSl0q>IKj&2?-VN?p$G zZLVVj=eRoI_$DfTCy=556AkoSfafL-{O`1X|DASELdgP`Wcj#+y1-fBk}PmZ7Puq} zT#^MY$pV*TflIQ$C0XE-EO1E{xFpMD!Q&`)Jua(XUJ59sfKm!5rGQcjD5Zc>3Mi$3 zQVJ-gfKm!5rGQd;c3$fOP(;WsAY{{=Tphae>GC^GD4ow79hQ;gOf2T;On*`4fEp*$ z_~&ZRhvVMfxb3-l4~TL_t+?QViXN4fJ(jOrxqQXSmFMI(QO?WLS9LN9s`zK?AKJ8j z{icW3|K-?w?;bn$?t8~D&DwZ^&rrWoqS2$WDOjs>t7rI(ZQFM6{P z^WI@&#(1o-@xAtC6h`y>Jhle&{L4-)#Vb1qyC8=z4E81mS%np-*h-P#oiac3>`&y0 zMFn{&b6ASe%e)8)`U4)6#*H+Dhna@f4Xl67(n#b8L5ZXS9IpnB)LXRDVM?5=oJ@Ri z7I_UK%rNd!IyC(vKj42g@DE5wHZ#^mW!Z0CtrM#)%18Eam@3Z=xJsW}K>wcil~9(E z(gl{0(gDlBfBtmMN@-SyO+{I+L0L_kKWW`Wwc;ynK#6N=v{`JE7=K#OueyzXjavGp zI#*HlYf$!PZ~{tCR0yO1DDkJ@B#%hm@~;{4SpK&0KCHi@w>3zApuRX)$u&P&r~Wus ziLDJVGcx(9IUIISX)jU&;SkSBUN!TQcv^A%a2ih#&w}^NIIxJr($@$4Eu@^Wtsbkj z$jge;3?C~F=w83h7e{df!a?q-N_|C57xkP9#29@Qi{K@h*IZ7SnL& zHj*)tzkqO(GK9Oes~f&2DU`GcgaN6DqWWP+d_b%?0dPoitT;`8q#ls+3|ycGz&mc9 zSpyzbudM%0(uKSI;ecR;qbzDv{aRCxNSU|NLtDTzcZCmt)Fu9KST>C=rO_swSlYwMAT# zJBrH=4h6wYPE)V65NL`k@id{D6s4GcM4RF@x8E1L6nZaFrTG6_4mm zuzfhlm{c$e2P>Y*&)^|5o~&8P^_kGuV0-mSQrSMf_s0V?(&^xQ8Bf-d)a?XM)}t&F zG&f?V$e2{!LoJx~-w{n)$0fRw8~~~>YQvo*c};Qscv8uwdv~-Qengw%nfW94mib#8 zWzn<+4zgU$aFEd(zK3Kt!EQ!VKMp=3$aqp8`EZq7WqhEXF_~(c#ix|F)JZ;EqfGuI zeZsrQxPUpFV*6lTMOONZOdlj=%^EOuCTK9+tb0G)06ZzCl|NuMix=&$d*DelRnHKQ z0Nz>gH1(CqPwF}FG;7M#w`a#QApZb7EggpPn7Rl35Yj$SgXtw@?%W3ZCZeUKHz_XY2w4V2O^8OW2@~ScJTB#J!ZkG?)U1Swh!#v!S6es& zVwBWiq-rfBTjfppk{M z@<;K#HBy*~rVV#Vd9vtAJnD;2P zgWN0~(dz0lRO%DLlJsel zq!J0GRtYSdnGX5Mwhj52rSr9KB(+VXZ$*2ei2O(OMVj7+q)$euP4bsb@*c&PlIPR- zW5X^_sUFEbxmVLl=f@muC&))#X7qxw2)KCRREMG58M&HD1_$0wm5pA=Qf zPA+68A)GWip*T(bcGBGPAAf|MY}kTWfM<{lF3aZx&ntvT{&7M(YqVEfR{ykx>vfFr|&(OQFDJ)=Z#+a|WsAcM07 zXuC&3p3Hql$X~X{3uqi9$8Og6&FqH(p4k>fkp?6Fq;|*@RP7}c-rEaxK`>=o=!*-T zgB`pJl&i&D0xNs^DpZb@zr>SlVTo3NYW1@a-^it|)?6fc37v89ql8a9g+99v7m^p$ zx2ZL#9Yu-u0hju6i!YRs=$Bi1-*kNAR<1$;QC|d5yTf^U0qSY$_Tx``2)PIMu0oA$ekDFzcRFQphskRx> zM0ugUjLM3*e1@!di!NrpyV+`!E`*2K%a?Rv`(#{+3wQ~5fSd43@rmL!;3(yVhC9Jj zS`6jT)E}3%>Z1$Q5^B`PGC|8EZBVI_4<#MR_o|cwlRDsWlRm@+#Ebr}G{)qT&p>+( z)W_)9q!0bd{7`Eqr6dno#Hv3|KrBv@bg$eWi${>BZ`MK5 zfpP>k*GlrqZWQ&QP0_I_CSOTBQDbFa- z1@i3c;Td`8ze%q5_JVXtUa({k?ueC*GUXaXFu=Lwp|U)NHXfkJ)_LfuRsk4jY{Q8u-k z#WOxQfq46AY~kP|v?)w-r065K>TefGrkt>-v~(ZZ3eXL8E4kQ|cc}uU?m;_C0?KZY zJm&2sxdatXvga$NPxhemBu`^$76rsaHp&N2Uf9b!Y7BT~)+3Bo$tNWDztCqMN!y>KT)_FjEd>VQS!J3r3Bp*|rt+wq%hq+k4wq zA$5&^PJ`elkq0$IhjFy}mAGl^wwf`cVCOzVY^4;7mJs|cu%qq-n`fGT#FmRu>U%pI zx(RpCs8d@c-voqXWiwangy5YN9*~yuBDb2fdjl{K$2e*Hw3AOa*6-xuJYuJ@LAX_$ z*QRb$x8v8=AonklUgXn2JKx+VUqqtfD+k(Y$>UPjkS^P=zSz(MS@CJ4+s$-RGNknghHVaek^j_%?GigI(I|3PXM;O8KQ0%iQ5aeg{*qQqmbqpL9Y&cRKL~#)MHAeV}jJ{7&=Z zf#3h^U2(nQ?f9~C_!V#ZD|`t3zS8ue<)gml2>!$ypW*Lx9X+!G`CBM|^XWS)l)v&j zm8Bzfmg6?4>tAe3vG?^R+s)Yj zy4JQHdte{HTt1Flia|Mj>j2oAk>UxsG(6LhOitWl@SNS^UWl|xz?F?SQ32O~8vgRj zFN2!+Ynb@TE3CTdqIU!$)OVTj&i_|m@`Lqv()|1JR^JaC$Zq?L-A2Dh zj-1*;oT#5Ta%40@!G5F{^>xheE0_q?ET1l*j{z2N~(Rr*WVTZU-}r3ZyM!m z=86zYFI(_ro^E(ZmStD>pQ0?Whor7i)eqsEEron3Cpqi%IIo^~<_m;juaG|st(^vZ zNK3O!t+4*}IeJ{RR$6~?tGMCNWj2o+hxg^c=|ElzPV|eyQOwQ=oFkX$wC*hPm@@O& zG4Jii=CI+)Og3E9dT$rCqmLa^uEpoo%C+*-YEet&^Wg!yE@#*Yh5bDXfuHXC-i(K3 zDag4^%YP_Y{Rl$6e5qKp>8PwScF9q`)GHR_yZ3XZl`d`Q#g?kiHyraSiN-Q7TXFO#c<&r|KwoN< zZH#%rA2j;n@+wRre%W@^Sk?ecjx{Jr^{+3Kn5gj$-p~2c2C?Xx^FOh$YFk2)>OYtz3OhxP51)gAh8okor{*JX>ZkvL> zA+^5n3RIY$;>3?#KGBcT?2W!y7r3J7#rF{#vCYK!O68`MsoE&^4V0mlvm#~Dq>vQT? z>2Ydq_M$xF7_!YKH1b3v5_;dtUa~lw(8v>pi2zU`XzawI?4>3ayA}hB-HUu!>{^5< z%kmaw^M5VLxjQ=m3&LLP%FA2AIxNXX2rwrs@&J8lw#CoTzqV*~r%Lt%@TUm7Iv*O4gO%%i7di9O#G-EGh+u}M!4x{ zkCM<L=3TjpKKH+#R8)NYQ4lj*X_^qwSnY>5XvBRJUt^_7P1XfQA4 zSMV$9tMx=PZgX4!M^?Q&vO&@(5El~;oR*D8#lOggv0>gP6t5Xq!qJmZCc+v!d07@v zLZJ{W%VdRN)L$rf`=T|*eSx~V;aXtT3|h0Y!AlR7?Po33>JK!du?wevC9x;rnqX4> z8j7awY$#CQm?PshD;vR4P776ywD`Iioh>-*B6gAYDT=1l7^C^-IWlf@e3%pXaJLfi zhxpJb49?@~EA=BNl5vmvmT`|2m3YTrw>B5xD5o(aApQ^^6As_xy`Cb8?R+zi&@-c& zaD23Ofr?I|wI5VVdeh!&qP6@@QCFL&1%PZSAEbcb(La;1f2M+ZPqySM(`T3!(~Qru zHu8Do;K<~5FH#yS`2xPcSm}d+(}pbhp!77O)&he6y&OL64vEgj%`HK)4@HK^U>~*w z4GEtm8ugpC47tBJ!v;e?I)or58lD2+*v}TBMdJ{s)Cdn8i`i`v9tu+LQtvyXZg;aAF_NKt;!=K(XjExE$UgSV z8od0DpY|qD`UT}8J;0O@F@}LpMcJAJ_D7&(FK)&*EQP;ej$=xp~ zzVN=xlCDKr7Z&#~@TL`Y?cRBE_K@Pre+|56VA^H-Cn)_RBCc_}jR*0bK4Jf5-o5hu zw$kjh#2Fp4%KFbsOv~(9Hn=3KqnaN0F}t+pzH&z9ue?U)HatU;3Cg#wh*e zyYZm)PJR0(dXq7&->Ru1CZ$C$X6mOcvuL0ysezJVnfE&P8ov z+V;d>+f|P}#_r1O+$A%!OXpKPE84}xw5#~C_Tm6eg4W&_9`1=zPsMn`uYS__^htG0 z{kwL%mSsLj^a9Oe)x+XfeHC!l|r-+y>;i^X_>?cw+!#COn znGeL5nd(e+wgjvmvb5JzEdld#wv=?1Sk@fpRrwhL5pPsnk|)m5Fee} zV0<9)PLyO$O!ZL%#3qLyggYF`Nn(p}L~I{Xi0H=Dmf847V`kJ;pL8y0t9<@E1HR#p z025izzC!Mm#b`?$HdETOoXP1@gby5$!g=N&Q1OUYhj_1<@zBEPDOt{(809sz6!=sA zK}~_)X*TMxuJMF+kKR#^6>ZGtzA{;-p$KQ&>bE_%Xvuc*jQRzyU%YMG;zf@==AEyX zo_QHlFv!COpPC(IyM_@any`Sjt9iRd;8;Ij{rqtQCN9&5+$mcu$zT)EucQ|1sMI-U z`Z_xP{t=2sICHnmSDwM<0^}4Qw`G9uBo1}@kalLXC>Cm)>)&C6Hb1g?GaG~z40po` z_7cHG1G?nJ2@_s4VNzMR+h)Pc_3;>%FOtm0IJK^wPgS<7uh6o^Q=0)(JcYS3w=-8J{JmgT-YjvlQ2X z17hJksvOZsr66IEyvE(K-vaKH_&4Ds%i(W12si4GSOxOo=r5OStAHoLG4u4}3N@KJ zOJ+?XMM$G3BNn1xX$h=JS)fnl^^aj}XwInbZB4JW2=k3OWH-2FSdy8p1w0%ag72~? z4@W5MJ>{=z5@Z72Gy`P9?%QCNoW`!HK3KhK(v+LKZ(p+LF^CDTpIlu%dD5y?lOQ6C zASzO}d~=7WA)0^j9RrLx4)j9rGbYOd%+X4ze1Y?ct>f2^;P)C+{wzK$F`D4ZnH;U~ zoN>vokrlW8^`_X6YtY%8^OTya333v8#ilPLq%%76Nyhy~CVZ1_^rfzU*(^(7e>xcY z!Dhoznsl@#`6J~^M=TmXe6jIq(+HGh;>)7pqQ*ZGC3-Z~H%4w6Qi9u&Wy?XUq+PSP zF>p!EG4yH`llrMP#|_X~)PICdW;lb(7Qt`=7=BX|;em*$iJqU>D@WPON7*Z)`%zJP z)TrYcQ@DytGaBGk%_|JGL&FKtuwn(%V1cHsSW$n!x|Mah>n`z+hLPeQcVR8DiH>Ar z0vgb)f;C5hJIxal`7p#p-GYXgFE%oa3}R`eAD_}XJ@coh84Q-mKfutEW}40Pe2|gh zn{uA>N9mjLx6)7Khh%!QCad{}e2O_^P03s5-;|y(k@$BuHX?st`YHTFGrfhsubmBr zfV|aoCWZV%r?CZ70+@ z_r5qJ%;*gKoAPhhI)982tTC5`MojDc=T)zw(U#Qnz~dbw8+gFYbc?Rm_^=_A>x2mw z5<|lHB%=Kl}!2@EjOU^5Q8h4WBvooO4n*PXN5*?Xlty-lV1tP79FLOuH*(Ll?*bt*0NPztJ zx02sNI1q6r`DRrT)jNn)Ai6E(-1I2Vtl0oenp~saAty~*=mQ+MD(8;OS(<9VlS;_c zqYJg;>JzAeX7h0Bz=mCOw5%xg;)YVKp#BZyP4juaxKe}GX<0W}VWf|bXvyjT6AsCY zHNSX+chMYm+7PAMtE$&Dz$3nd*$At-YP>G~j@7nYnZ^BUeVjM7IZ-=MEU7ej5 z)3@D}pvTj*ugX@{khP;7ohQrs!LNQ0wCy2j8I_yJkPoN`uSCgkh-}9Q)aedq$=w*% zXk((H;S0J4bHXEDN_u`F;-w^qvy^-c@{;nEn@e=g_OjT{Jld5~oO#zQN7DM0Gdhg% zaJ{qEraZXNt-n9q8D_Vuy31LrH0LovUL~B$uAjF!K=|qifb(vF_V53JOs*bTon;(+MyGPD~|k12D{vpmNf3bHW*oeWO4=ijV>t z#zdzi=NHoaRz50^_%k<$;+|(z?cV_FI)AW#iY;(HUu@m2Vggx|F3NsBG*HeTS)##t zk}CleZWh(71AnRfRZu8VJ-_Ng+~z=iHQR~+m|<(iS25Q6pOX9EV2(c|_j%&=rwrGs z1pf}Eir3-j)wZoxwInFkQ)<7y6H_{;D~k9&Ls2?+RFsM|uB4}O{>Gx;pLqQAqA53X zrL;@W#pA|S_v%u(CaT@q8?yPZf$rFuBW{J8#2Mnt+s4k1at$14Jer}ia7@N_RMiMa zR=1!CRqd$5NvPIQ(ZYhdX4}Ix*3qN$4qS&X?l601Cwqvdq^K+`R7+LVP)9~5N0_Qy zf%7uLA`nN>LhYS193eVS)mV6lnxZOUj!vB&;mQ>)pvV}_pftSc;>_+~ikoqV5*wpB zICF7$wsmnuS7Txo1jR%tIMGp!<~&Gk7pplqk5(g;D9#;f+jeRY_de@V?GDwYaEBHh zt=hTbQkcU|AM9#$G!l$;t1N=yGd|!@Bwq~l@?{dlVDZ3%qAs>snf(;lXJ zFEt5;{DQQ$L?|Vy8KJ~QF)Ao2NvE_Ugm@H6t;R4Oq{k8|)vP~^fihuFM{HXS#J<2o z)vjoP)vj_>d#d8Ac4ZYyyFjz|P8-fUWhzQW7nNspQIt-ZA`;y{j%(u;Yj1z|-P_k* zacN?1-)UD&nR3OnzBwJ(;aRcsT;spJC^jO#a_%D!ef{-AkIWs=Ew0_y z1A7Lw;UHgFTf4n&82Ev=3F5k4eCcc-9NgZi1ZylbSV3>s*}-n_;6wr?IFxC@TO;D_ z_V@_mZva3Ag|~A!+J%EXOaKf8ryKxL2@d9(orSk`INF9YyT*fq71a?N9%r}5Q34j+ zh9QH9IEN#SFk)?j@&2G0&TxKfNH7aw)@uk04#6R+g^>w%dqN}_numlSdlpIPHoYHi z3U7n(U?n0xC@4Mx#o-}sP`>&vtm-?;J?UJLRVnXmS$iU#B$dmp1c#|{-NM7W#i?Pz zARS1_r$%;gI66eKV2~<=>kjU09~9Ky$sIa@R)ZV-Su2!v5Q~ft4vvpxL6o%uRF^vm z020`l8No@oIn4;rAjVRE^{U7+I83on0tzm-YKOsRIP4p3`lEIlk#~U;m?7xl%(g9u zwd2FKr{O2&L)*8uGYl4ajCzMS3KvK6p!0!_1xK$VH(HZUi{*(}Js7$!-54zhI z`GEK=Fu_X!0fEoPr2zq8l%_0La$rbcCOon5qOt)OmbRN~?@}~$^upq>>qDw8o06Oy z9TAz*Eobtz?c%c1a@dT7kZ?UA(w-TnB)A={q(ex!y@SiqHAL%x*Sv&~Fnb5L-Fhwa zMGjRF+2Fp{FeTCD5MD&q6C>?i5bAPpy9vtP1)!qr_08Uxnuxdwkq#L*s3D|Tw(oZc z$kqOh1r``0mpA;G(3>28{I&6SeT()wW`c0KPaNzyu&(d=D<4t!EFUi7>qJ}8?ipnb zFE(Bi4;Tm81X06_Xe`^5j%H8&DGL=eX)LJ?OKJh5&uTW0Rc&CmiFUW&Dq>rLj1q%c zi1?bl#A4YVfq^B&%2sPrmG3b&g6$xSj=|hID|C4Z8I3AgfwH5R2N{dm55v<$;TOgc zS5LmSjdq9^q=p!OHGchC6s3>nc`-3@J@}0fQWKs{U#1M)KqDy=Z`@G)Uhq2z; zm}2Ci0B4)NT>A*)qPFnYWMh^qYrkV_@^Z~n6IHHBN0#|{zym2(fX*OGvdooYcV;U_~`@Hqg zs$qT}(4?^zECQgd(y$6DkNQhWv_-kKC)Z7#+P~klhWq+Wo7S)Y)TwGr+vqX7moM8r z`l6W&#go`q_~gRHBS!CDUbSaTr0aUNAG1S!@cSK7O`S?9keX6n>Wm({eA%8o%a)J5 zC}{58y9{I3-E-6tV}*Cm9;S|UhTppTG!B;Cbo$AFvb-+K(i8NR$DYaK%{;zG_#R?z z8_)!wKp{s!83}f-J?e= zUWkL7zF^p$b1&iS~-uC+I zx83^sYx`W08^qrZe<=ROx_vz15*Buka@oN(x4!=Rt!oZ;k8s^BhKhGsHrv5)p3wWF z%(`dxjgW6Tiy&L(LThPxX^bs zr!*c7J^_EoRdYr!2$HYStOKStaNZj-FJ~&b@`JB(yyHaS0@Rn8E3@c|i z$_){LHzmb8sB9&+zNx66@WUvi(2GBMq*U*W+x!=?;e^V2tH zMtpnn_Qy^36LP#`zozc;qb$gVE z3hU}}Il@EZHD|a>V~fM%@ZeTMLgTc^aF?nba^CxJ?cHp3WM@~~3ln1$B_{F0Sa;{h z)$H!thwm2i2W%Kne3>{ZqS;2cwtPB`j2Dmpd{tqjY<6Xi!je)Pb<%PzUY~ zdj={XOk%G`MF%-TPuS%x$$@)xhFBMA4-M;voua|vCn;=nA0TJ9g9m5H zwuWZ2y7)P9vTc@ak!_`I9XtfSW&0U?h#eEC+$gM>(7Y7hv;Z$>Dv1^3i?_Igbx`YI z9B@IiXC2%EW&@Au8axax*SC#}n|(d~xl1bl@{>CTh<39=~j4fz6PE2X;jm zs>Wc+J;g6Ug|h34q;j<*Ej`tPb1zg4Q)-xQ^N@^@tSKk5!{0oh-T(3%jv`UN`KzxV zdFY$3nQiZ~WqX%B*EKQG_h0-R=?D$);)>KmL%Xn1F3`M-%ViG>?P7RwUTky*7%V0_ zgI@?fi^@QCMP(R|QPsKa_6&scOZ84s@&&)5+|?yC+!5*O5+3ScOYjl~{sj-%hu`?m zkIuaQ(LZk#kG2~S-(6G(FYFn5`ZVtyn-$A@ojx7fb3w3J)jfVd+qUTi2??w+JiLE- z@CosnNX;sMn}yfD4=(Q?9?mKg5(?6kmnv?p$nN@I&8h zU$(cZYA?CxT8TlEF6&8*Vzlj3&25U2-u<*VMztSTU`=qr? zYxBsPuT8nx$(ZxzDX+cxNE>|WlNhPTM<#bHLtVO7>g(^HwX7{;ZI{iuf4#oa<&KIj z>zEt~JyJx%&q z!K|)LpKqnZoOobLJ7mG8=qY*%hZ}v2GIGIcg$2)RPw9I7AbqC##Z3b<#53i3#Jtcc zZ^vv}-%ro&G4bBZG3i`i1e+`~n~i$U5>Y9h@7|4Zd%qQ%uYKy-1ugQ0MNDA681liC zILZ$D{FL+{7LZ@V?>Gu-{bgbr+b~8c4Zj*U9=g_&amIG*yFI#JpXU@`LZ2uhn9|xRVcSDp>~bNjW{CE|KRa` ziSa%7gEZe4e-N#r{3nYB>>o;pv3dy~&fAZ*7xNDC?RQmv>!7qBrUPCUn%nz{?8yBGAp)CZU}KQBKmC0)1E5&?A&@j$#w0ob8~ z7Tg^jLn|@qdGMktmn?8%dNkH&=`>Ew4!KT3y%pxCVjzztqL?&iUT#u!ln-2I9Ct^# z6(Tp?o+6Jr$KY-gv{9kFYTjb6s;UF`^qQpn9^marcYT=|4V3_i1mX< z#0CckN0g-ohdb;MI_H;0hN^9X+=6w>;<1zNy*neiugZF~i*&VRzvaYNjJc*yWzi+6 zUHfB|3wj8?9OO8R))TRZzy&pgQ72BwV#-E-+a*eUo<5SVH{Kqg{&J!5j&@jF*RTuI zy93#cBHw$N@*o>Pb2#l>zxtFgVp%9GGe2H6o7l~g`kh%}6(vju? zq`5`=0DD?(OpzT)^Z;|v4Wv$+U6EE=vIB>f7sCpZGth#jrDNVO!k$uqRv%M!)DHz~ zfHANpB^ycb4S*;MKI%WxlQyzvX0MX5MWJI}V;2nSTb!SgQfZI8$`jHiskkC3WyZjF zf@WQIhy8DZrl%zLC`t}#>v7g(6~#w3>x&))fH1t zMJQ}?Nsy8mlRi3R5c|xn*ErHA4RWVll98GkS}GoK1l`b2dD^V|Z&0RNuo8`ZGqU#% z$<3t|QB+Df>&^=OUz5y7^t>UA1vp+8g)A_Jb}ox=8|f-gS9WWg&_1W#E{sb0l(%o| zj%F8Qow9Q|zA2fGh=k5;ey8$p$~(v9V3Ib3x9gA@mlGdcmf0>RtPRIKF1KB@God`w z$CG}%TrkT@q9IihM))+cPKrsQgPqOCT=|hSLkx6>^>tf$CpN!x2d6{HY?s}kyt4t* z_lu+5ZR5-OU=Z~bGVahe>n63p6&c&Utg|sxP01`za7MSwjms+u5dhDztD00UAf7&B+GKQCE1dDlV!Qv z7&qK7ZrIphz!cM)>AiOndMEVWTS5q_KoUquNC@T96E21HyX2A!*6{z$$_CQzyZdtA zA1v)^>&%-s^WMDodv6@?&*QRU+K!Vk#R(y#Z?ZRUuBx(gO43|eNzXgKkIJgEQCU{0 z68S;4xy_Swwxw(2oSoIW?V7$5U4+VVOvm74$7F9l)E0@>B!~)&V}s~hh$*u^5fQjX zJ!>RUt5NWblNcW%bU0j$lA~2!rzr$RMHjSD^e|CZC?cO4nO^>r5|# z<@ze^q^gQH>yk+yeSC2Q>Pi>ohO}K{b>i9}{3O;(<8HI<0eLao$bed4cCjO{)pdof zVF|Lp?~#NncB|P6%|I)g!7$@Eu0=TnEx;xQg@8^J zrnOnw)}pnU71GC%v`LIXu3B6b#MFpZPcD3etTgEWB*$%fxU5vI`L5}nm7U2e15 z@HqD2_mG4YY5hfCacgv_Q+9!0cKuITcM6(HJBgP3r%MkWDY|Njc26m-FTG7)ADXWy zkel`K8FPKzh8T%rAl*=)2zFH}HOdgp`uzU&)6eVu^vYo0V6pIn86!>f&>$}|Dwa#> zA(n@d*Di};y>mN%Arc>-0U-qnuYja~wi#6JNwH1Y-}S%j%k_7+m?r0kC(s{auHT9x z0igjUttrpADPp`my?jMyGT(#uRr=61Y7**4ulv5@&lT$UF(F>QyL`v^mW9~=Ia-k~ zx@!tH8Z=Mx9_o)1wQgBraFcxpAL#2l64!h9die=ApBq}8KYBnf(HfhTnL5R4@QG0j zjZpVfs-sO=t;{>?U=Tm#ZP+uuo+})EoUHze|5zndqwAxUsuSx3wF2u7av( z2~I9uOxex@M{2$p5$5YEsK+aN`BrrbRVp4!bW0r+V;vsvl(?PFd(r(F7q?D>OozL8 z*Y~REnWxzpwxBUPyRmEc&dO*ZT1aq-^GFmD5}e}1OfFrt;a{djNOVs~Q6wZx76eUd zd`e4sU|3M!#=MqjkBF9RweU)UXzP+FCg>9si9U&9qC8QsxFjl=NwQs!yD8br9eNmn z@&R`fpdAAAEO5I`h7OQqW=)bElrrLjt`P zuy^Uz_!Ota*lSDa2Tim)307;~P;m2_cv?$>4N-4QrClmheDfk=6&0yoMP}h9U3%m? zJ!)S`W*n{AhY?qAwZRmA+OH7F(DcTp4B(x}-pZ6s5WAOBg3Tq(v~wWkZqkMFvYI8iYwx z%#<*i@Funt7gG=tF$@8n4(TKrOTDGB&t!(G!$v0z50WB@p$r3sj%kx@AwH<3j8+h8 z-YT{jlc+GW25(n7C7%xh6)d2uI*e)NI`3e@?p2uB*oRlkQ}T*PXec+a#>G9mRMC*7 z*LH7J%q{k%;SB}6XUhmKl7DX4?%2egjU;n?WA7<5YAS3`q{aE?8$yBubNp=CTk|XE z?(IE2^W}pkyr6tznlJ?RMwoGmewx z;fp)Dxw#7(b<+!BKJf1=jq)h(fLy_*r+3O92{9RBFL(9y5bejS#L)d*U4C3ic&9!+ z`;}Hi`smCBo%_^}&J?zGzLk_TY=leaS@fRE=F=`K!xf4G-;&@>-Ru39wH5gIuHH6| z>${M+k8C+DP;6EUL&K|eHsNypHH2D6PdosKmd?0~RTL%A^7cr+3d8XC#+ z&Lk5g1MZVEq^H(w4V9EEc7Vwe)?&&0!-sW1IL*wykg(SVe zMtGW|6lTanFo!A0W^gBf)xe$e(3b)~F|}9d;_)aEQqh_u=#p)0ul*~S;FL|2d>U3! z8xK(gA?&5YOYs^-h#6K65wUjCc|7RLIpGM-Q})szAjxAPPsNX zxrQ3ET$QgVxupf0iJC5G3icqiE&fUu!SIc%pMgIt&xwuBB*_44v=-CPi9^xc-cJa#Qd<30u7AK#Y6{2$Xii~e-HDnYS`Q5Hgg0pj5 zOp0GhL{M^qk5bfXBa#QC9O|KLj4H|t(K!2=BeRNQ-Cb3If}kVomnavS`dVS)^$6s+ zq|P<@A^v7R^G<#5)F3y7K03UtI$!JI8WgDyoa@HPr#ns6j+!RV^w9}ETwGMdfCev5 zkAS3LZh$&OrO!2}LNapVO{v=EY(s6-j6%(bvXv!H)B319=489NP3^ld)wh46vceRf zqZ(q!ZjM~2DV&kN&`B&_R=3nOdya>y|5Uke>O!Tm@xT@F`6Rbpjbd^T{Lh>VG$6CL zw^{3LcHs!|4oVgqcd=j*=KdM-wAPNGu_?1S3I%r@G1Fw$2jiTvQc%9 z(eL^{@pq2UQez;Zx-MWa8Y+e9Z70E z;BVf@o2@YIBAbrUiq%=99hS|Gi@EgpfvHoS$tv3X$O3YV%$rAtkTv6W7Q+AjeIfmU zxC%KL8I}P9w%3s(_Rkh?noGYXPtDsni;Oy2x4rE(a<;I!x$r(MHY$oS?u4KeDh%wN zCYFOn@`s@QHVcv!^2mU8n9uVn!f*Nq?_%)smgEQuw18G8ZJ12X74gJmPs&urz+lGCEN6&lfC z5r6gzTk+mvQQU7oFOCuM$7SpnVTT?s+OKZIsV<_p#r~4xVlHJ1VC#>I;x;Z$91lJ_ z4#7JaGS^>fVT_JObB6*F#{5rEO<=x)#=-oF7A;h5v%+Y#fe-ji+IQa&zoGlC_9C?l zHW9LQQMcp(y8P=oWZpq;Ixl8j-P`HdK0f#0Tf)s1$@J2eGjzrE!bEY1pDW3F_H(lT z>w0Q=nV)u6HDwC_@-!Z8EtmA9+2A>E%$E8}IcS*pW*?+{V-RahZ`j;}O-mECyd@M< zb1OtSbG$Rux-|7sz{G?S;vUFxls+4Wp;K9Tcn+jmv9Vb);jpm8BsMrpSSbajKTyNM zxI6wivHGy+T&=+62Spq8G2J|mbBP8gbkoq`?|o1jSFy`)Y|%{b{Jcj~7GzAUt(zL! z{Gxs=F{yduJy}zyc`LXrJx#=IqLG_CXV%f(^}$$<{d*b+4zV`9#er3MAAh6yNPDUC!Jqn_EOo^@NR`X)tk_j_6 zUpzWmvx`#t0e$&!Ou$N0B*&+7hOZOW@bZFD=^3qMD|$X-OwZYAh&lw2QQ7CaH4_it z-4UmrP}2Cy(*vidi|qGS6c1WlHO;p;d;6H?g#$A8!lX~6*pr#)@38Z=tJ5%BO01@3 zVG_wKI0Fm?=7+{DM?ZkQr+s#8P$cu8eRXxs)aRG*XLjA%{|Ig4Uy=KfdLPB8EzhjI zHB>z7{5kQT_DNvw-G$@B`cBv{+&H)K#>v z;?DJ$5=#5$+n@joQlDU0A6MjW@wc^r)UXaJeO$kx`|{zcb@Jzbo5!S>DB#oAvrsWZhMovgNp!#k}fJGCrR>OCy*b= z^K!bw-uIZuwb<7z|`wxt5hT&M$km> zhk+16lF0y-2qy5bhl?458(~zgp8YI@J-Ys+h%{{+8l*8 z#UOz8gAR^^eYIGbmsr4ttHNQ4Q$2=(O2feri#-KB{gl{^YJc)NNT`G9x1J@qSC_5hw4< zr8@3MACagv-RwiWTUi~Zz*q@6BpNOPJDd)3+8h3 z<5Mb{JSzqSvDbKy=;qP8+r%?Cd~|k2qieT;f$XquSU1XpIX|dYA2Y(OfLo z(kzqTf!?!hK?axUeQ8Nhq-sg+_a?)^fs+@iUFo+$WxJfco-YexeFgpZ-eAQcakvyu ztq0~K6TL+WrG{0-LX{`&CBS} zW#Iw5J-u7Eah2?TJg}bIrgv=%c)bAl%iqrh2?vF#>wPXKzm9$rct^Ss`}((N7UrnQfOxA+Rz_KEC}Qw!??T6&4cV@fG;PV|#z6E?5kqasD&)>!wmzL!uJROMUY4Bm%ot}f^3%v- z;yIYMo;aEi*NteWZluQ-^jsZIUZzK)#M&*NR|e8uJGKZn==?($=>&SOuZP(6*d-Y7 zAN`=hlXrE`;xAAyI{Y&qdDXh_d-iljcN7M&GO_lOS3rJBWzvVh@C550jC?4DLPSBl znWY~EMDc7^jL6`pK$Hp7yCZZg{bmqZa^hG*Yz6&t+6Ge2%0z9XB3i6{?6ax>(qrcq zGV#zwvVf3g4@K8wmx1va`C(U2xeF^1`HC$6%!jX9^Fw1VXZk#C8-Vg0xfd@_6W#`P z6OO!gO%VgUO{>6+0I8J0%S_vY1)rH1B@~#1!IAdi9$@x=PbNT+%ZMKo9y)i<&_`~* zgQQuPE^#Y|&7B(>j$_LjYQ~ycYZ{i#4W&Pt#?~}EK5P2p4K?ywztGv|o|@9n{VLaw zT)N!%s2I)4r>x&GiXCLetCU0D>uC-#0YRO+cf><_`KdJ>ujMs(Ej>v} z$$NM$ahk$ltW)TZ?6s)x_In>ghQ9#20E7$b>!7(w1MvZLA!G!B`xK5ZRt)aL_Nw09 z`~4U6AgTZ4_DC{_E?q*teuQoq$*;LhpSXFG6y0w7ZYMbN9a7`$G>|kdqh61Yv2^E( z=RRZaBm@`+Ok~*{5vW84>P1ZvJS>ry86uFEpAnZ=PTIe3^27sc2=~NU!VUX)?b@*RCnHu4$R^rR#nE;mC>8vn8Z{JwiISqLFq96cl>5)%Fw+YI*mSt z0ZPk%wD#!HU6a-z_<8xdM<3-l(o#NfIa#rG`SSi{gWHc1vS!k*BWKT^UAx$O(wZC9 z%a*KPzhqf8x3;CL7k6pt;td-XFSXme$_K9@^^SA(@;BE^)GbES$T;#P+9n%iRm0XR zBYJ2bY>I6JX(Y1*gY&V0lBtX2d$OLy_6xb2o=o?1lboE|>`u!`!K@-rr|n_ggqyFI zHPL@Gs_ciHW;r+~~p4nPmY}5*R>&@5c%~cWcKH8ZFCY^b*sHTi> ze2xA^x_FI{nS1i^Q2NqPjYm+#>Nl>^Tf}_zjn$Ds?wX+_W$59Pxljo?*|R9uV9-J% z(Hx9{R4lN;07alhY8ET-WN=L&p&gWNPQ7dyT zmP9t#qaz}o!JQD+<=GXGYdWnd6dCl|^;HOjEF$DSJ!ei+uenIO_7YvS-cE+5&vKgm z>dMtuTDtthexTRfxlhfTO9DwM8M@w1*QCwuIQawj#GI$+&V8D?ap6%@s=fV&?pgU7 zXg08{lsi2K4}E$LvQ$PyO|I7Z4c)!!wbxdy7+6*Y-o(f!D$#x#%wgL7L-6DnBqWvO zZDGD233iXj18FdU$B3a|m_(H@_mWh@^*T5pOx&uHMEAf^=1^lvf_u;i zvoZetlL!Ao-;>WP?AK}fh~`I0@Xk5Y*TnjUIfqzUQ&KVx#d-T%#@cM9#ZF~p3GOr+ z@dS2fXlVlX?Y5WSJ$jb9oSeef6^)-b;zjb|^YeCXoSCsatM3d|_q;JN-X#-~Q!+9} z$7&;#eovq&zz4(VBjVH2I05@7K}Dq5bfARkhsg%g8Ab?E0e1%AC|0CBCkhO}u!+Vq zTMZb-2%{M6V_AUjhB62aJId|N9v^dp}NPp^H_N$CO{tah;Z}bjPbASdHd4T@t@IeXbXL&*K-lu`YT!ky5Hiv zt5pOT;9D=X_2D;=PJ=(X(bg*O^z<`bkM?}3ZH4{ypGoC&i?2v^Iv^VY3>{VhXL4Et zi3mTYzFkD4F>t_Yl>Bv)nE<2U0pa@3k!&p?(zi1qXPzW{9+_i5Le#3-{on7e@kB^8 zqP*6%%sxYSYCki(W!*ZZs%GM({re|PtWkl{i7fwKhWHuin1&x{bqE+8R4U2F#s6!% zG45$6x<-%a-KpK8KZa zAIoupasms?lFK4oERJ&~+4wMxMYv+BE4l$*#m$>uMKYK9(k^j^j`u;eCdFt`~w82uDUoY|V_jrlnk z#~XUE$!y@OhII2C_QJ&Vk1X3bDSFzXy&EPCO3Xo)G6A%wiV_xuZ=j`NLvCn(-tC#B<*0hrwi<;PEJiu{k zI7@lC`*$Jq&Mso{r#DG>0DW~gQgr<-nCN!VR~agZ-V7v`-SqQdZaq&A(`R_nL~I9P z>FdqYXOW1wisbNgE4_3O_PlL8g5fIJm?Fqt#+ccR_j|yH5-O`^zINDXAlcyYgw~1< zr)P*e=4_Y7QYHflG$MjLsm#63dIMlR=%Sd8bm(drUV|{QqX{HjA%;{qu7hx8$79?H zUqLvdrFhfI>dIm~vHMa|>*HPAt!ic0vf?BIM`$+pL))21Q~uE57h5VyLqn9FLx&C; zI@D7c99G)3<>K(6dFBZFb>A4BPmB-#bTPjCi^wz)5YcUQMYk21w!2y`k2or+}TvPxMCVsah@Uh6EV1$;Im0%{5y77rK1{a^mSIEP;j za!FV65C4Lb3KX@%trN)Uk^Y~5KycOyjB>X2qf#rlJE&_qS;{E38 zXv2;R9gTSZXjzk6U~*tUa)3Pbo1`jrpfxza8py?-i|Wh;S^Wd8L40S^nb^Q&|DfbR z*IK~Yq5`b}LDoQJ^VYT61?dpnKv<8ir zQKM1IdHycf6krL!Uye5wxu<&uBnIFw#$fm2lY-&{lKlLV0+M~&E^)WxBK_Hg{xzQV zVvaXNVHXE_(FFTdE{?wcVM*qj@jG{t>PQa22^S;Yz{-rb5&KUe+&?+q#b^penN947 z#-F=NygCjbrGVXq&vkK;u1C?lj4n=G+g~Ed9bRi-HN>Bn!Ik6Cr%25`DqI(?LyOX5 z42zL`2hx%^TBBA0@2Ip86La7hA$72jAeMZx8XL#l zoj!(P2FDQR{oLBSU-QM4ZGWlk!h01H`!wPD#*Nz_U1NWI^&>lWJhG0hZt8u z)nt_{3C(iI}s5rsFRN*1jKT6ipxMhqRVmw{nBm{Q~}2ZuPhW`ssSjfg4_2=Y^T z$CO7#l*ed2{Q?5Zq9X~33`=u$3J$?^#jh;~P*1mm2ge;exIH7Lthy{F`#o+EEeW)y zB?ks22LvXORo2uDtIFM!T~r~j=u#5t?xGGfM?{rGMwUcHm;*J=?vW*3aH=TFtG8v0E2-HKy2zSk&J!A zSgv3rCH4{Dste;tBD5R4qvJ9@NbX%Q$%)*FX-ig;MLkktw>U>H4ld{7i{SKaN!}jT zTa3!rI>|*vkxM|tO=FpFplf=xyx4bOALIPML6xp_mK#6BOp$;lSXqV`efeijuG%Q~ zgkCKJ{ru^(!nfeVU`AFFaf7Q&jBosQge+&;+hF=|iE`^&TpXd%Yg8VL z$KtV`(p}iql;{B!Sh)*61jpbnjZ>oLSE7J`03~Fd&Qo z3e1j~G-55mJ(JeomfAlhb$~6oe{atK56=Kk&p;3NKu@mW?yV};lJn1v?3a?#Z{)z_Wa94W@8RJO z#D}M6z|Ut9Ae#!(g_UbP0!<~ARcpa{nm}`PS!85cwK>oWe7Cl$vcweV=~YhO-kO#= zXX>blvu95nH5K)D`W-pjBAX~%^#4iPG7>ZN{C$bdKvWjSz7NT0{r`bXCOhq8uF%ia zs?6NH@i|$U5rN!yTwp|IW~cFaxtVG;{rvw-YPX$!>7^?QH~qxUxsyBVb)h`R@u50> z=gGO9C+gi0HTaNBF9o0e_awQ%hI97$lk(Lb!QHS&{I?|F0~d-xngDRTcUVwbjfX*w zHO(c7u$ttKb?Grs&c_cK?O(^mH}f%GEh+ouPTKq^v3J;*0GA>~7I`^|j2Fvdg7f4^ZZF3tgd#;{!fN%uU15)APgnI@a$cGzko#jgEMvldHdd4Le`gH-4+mG!A4yM8md_AN$1MEb8g)BZ2h%;H z)>DV1lq$24&HAJ~N3v|#1$y25N;Ge`=4@z+th!Odo8oGwpDlGhOVaCk;o2VhCB2hc zQxU$WxA(hl^sj5gwIqF#cqFnoxII+SuN)Z z)96pNE@DytbBBk730LV?6+Q*T`eu2BlG0D@w{p3!j-P&GN(_C(^X=RAr?|7*)|w8E z44|D%e&ts`IL1ue=wI;c32%TdPLRNeOw`I0%|z z&F-hLr$cw0QLE(E*azDCaho{iL_iFROf1B6Z1};Dxjx?EK(bpQZvYVYd2s13NbWIp@+Mj<2Mh13yk&c)(_pH_VF9oaiga-v5 zeT@X)9jWWVIv0^)JQT-+&boFw17QKNEUDUvFPEswg`=V#U_8~(*sOs|b$M(70u~+}{<`m3V0iwOn1K_xCO zVn?EI95ckiGRc%?7;F@1Cvb_C-*~yjceHnKX2eg8o^Kesd^dovyvn%aAI}c-{jsyf zlo{L{aI^5+eQra>IsZLVu^_YjjnSUoim<94TlUtt*^|X_LuQ8folTB-qKYU2G6IBm zt`wxs*{u_Aq@=ys&kgT!rh6nV>MEz7UCvMYqS8$qdCYWqkcOVv_=+3ve68~;K=RD~ zohHni`*duS_+C8k%r6{X7Ja(A=Sz351oY;cy;;AK%WmGIB1jH@njUm22bCU<(gxH! zIm~fD!!U$W*tYQND>O_th{yvZ>AA>3D|&h37sJ<>xpB(n+$#!Y;Es5YU8Iw81^23` z4BVdJv76L8egy2mkLbNmpFxJBRrJ`Ib9?#OCAE7(l#a-@ZqC_c@jj zkzclVT}{opy=D1O2~auN!F&JU9!LLDv6>=c5t)85m`YiPvEp`1k>Y&3@mhfVO?`6@ zq+xOT*}fx2J~w!lkB}q3)_%Wy1nv)%?q~fDsyl`Y#sX$U;u(yV>7a)7kIl{;2v2;jK&ZpTF7|xl=yP zn@^Lw?z{W;!W5^Cib)1}XZf3~{+#Tod;btw`PoX5GJ=;N`X|W-xGStRh)xJW>G6D^ zZ>{1GIlcS2`txC3`L-P}wPly0k7J~bBGF5}|yOqN?7Hbk8&Ou`MT1S1}52~!!5A)RVD zCl43s5iW@%ft+wlpmE!{yUhS6|8=W;k$pX#`Y2X};bey}FeKqw;SLP2P6aRoOnEl; z#gNB>^sN9HR7Qo>#*oM$KEa2ZA1jRK`SFv;L?Kq79|)1c%$eNunb?vLct=CnOJC36 zmMSvnV%vOqXL>^}C#ofMH#VIzmWdf;a?0XPBv>w|KO;MUeGQ$zn6xsU#JE<0GIc?V zF#iSG9hxIZg|Wqg@w{UX<2$oiz$n_j2Z_uuz;Jp<$avJjh*ho7QE@kSdawLMMT(DW zb2Ar`T6JpAY(6k8W=Tw1AVbMlrRcflW>;TZ#R>V&htBY-9>(+pTY+@hk@m|teM;4- zBhpm`wuE$J4_bMuDm4TTke-Y-5@j&%3!6{}5v}9}?|C{I zcq0x1K4-D9xEQwPCX0??- zn7kMg(>W$OHb!y#b(cw#TwcFDZSbI$mT9+NcbzoJ6~9^rwG5s%ytOsCwUs{^6B`}V zIhMqBj>R2hID1S}TV)g5az9QRG#EG1^4DD_PIP^p9LKGL22Hzul|AU{n8#x23^F4Y zNe*P-YP1!6I|ormBRs0fusD^$aylNdu4|Fa=m_epN9ZX=04)zdd$P^SF|7ds3>YXl zg)!7@g-Jj_{IS*oy*Z8$orcL51(ZF8f?=)6TXh->LOhY(QVf%B1Y>eYxQ&+OnF^AP z{47@REimd{(6n*24(o}+t*!@OfFpQ31u%LplbF#_^bTba$u%t2Bq#^jgr(R3I8h7X z29sPkS)3MF*4IfmM0X16%CnxaqjV!}K}S7#`lft~Dw?P-d0%P@80G0@5Bhd%R#`xG zG`~^3TBy*4u5deP&!+ph6)9%~VVekVP6LBV?;@~ZLT`Ux}Cd@I@X5*N_K zO+{xM6B)`0;(1@g3xdlNi5XMZoNcbU`o)O3vw`iytLDo%n-zQ>$L!wDefu zM1(Xb`4bAdOPFU;CQflXxZf$D?+N1N6xb)!r6x**{t4N+NfshL0-kpPFQiERS&Ir| z26$GhXA=r!L$_(n3g+f#Dg*p}&?kWnHEPW^EmMflv3Z!gwO#~~cQzj3VoZ$?6}%aW zMl$!-fhR9bKS2HMe~&g*XMN$5*$jYEPY+MBh6a?R#tMsTj_i5kjf-i%iiArG{vOu$ z$-dsz*}iu&nhi+`MYi>o1>c!d;*cS1gI}K@N*bRi>snN@B6JA77kUsT;*eGF&+#j&O_+7aq|$*Pv2mQcVBFG`7=~` zqi0RR7Hvd|U%17`G~Cy#xtl33MmdZ=`KO8WfJWiK9@heKEJK<*2k6yoWky4^JNi6g zHrNic_}wSje}P`|98=&(b=U874WqnCfG4=V=v=i?4DGqYP1S!I7SiFU2eF}DYD?Ca6 z1(rJf$tPaNCQjT;XVFLh1UdLhz~mOuaZSsX^`>+Fbmbvm9`H^eWJ?L=EmHr|ikLfL zm=GC=<30;9&iOA;10hx~&}JPHYDJ0b;y~VinRDr4^3VC=OkO+~ znmL&FHqi5;{Z6OBer-t3w&L(>BJKJGva{{oVI@u9&0fh5xx#w~^G@GJFZ6b!?=SWs zWSV;7)Zq7c`u(D~&1D%$lM}o@OYiLaQ}lQAuXp(`8^jsMcu%pZ{~)tlLxh}!viXbC zeY!DhOdQZ+x!|GRvcaGn2*>hsz_ROzfdwu<9S0HR7G`4RUI(Lrj&QqS;$mcMhN&i) ziJ2(DWjt1+!c4`;DYPaYMg>es7=vM92crTORh-4#8k3P^fZ5i5HIUBPd6oA1w23U( zZ~rIhyLo>+Y56M>JZ*h~PJX`;*?ZHhK55;CA)i^<3P1m{hM<@Y{Kx9?0nyx!h1#M0 zHnrU(UdwsDoZl_FZQ^RnIlD*-y?hSo_KD(rL_|l4;t$=-A~KBAwa2f~y3gxL>-M+F zzAvinYC7^}9jV`Sfh_r;itc`l49o8u&A(#glc?FPpqA3R6#UoweooWFVcj4kswl1WS4kB{f<8Na3S_pfr7pT}b0rr*%$UHS8uxmTZ| ze-Ak4ai#)`y9ll82|^Lpw*rQ&s5s+suFtQi2>#+of{YV>M!)ot@WzQ?7nWj6%CMyY zI#n?7dIOI{7)FCsZz&YY3)l*_!);hkX7~_|o2Q(9crt!F{qq-e07n!ASEaa8W@Cea*I|^FjCfEPFg-Jy7!r&v0LOi!@e1~jiVO(S zYOohj&35d2giAlaEuV3B2KRZ#nFrVS+jE6if41zB&&K=Y54|r2h(v408(|9Qcp-Bz z;En&fAmq&b*FPu`H}t{&{nKruI!Z?l|4!++O}}%n&Fw*v!N(716oZU#MKbsU9mV^% zOZ~s73{WM%CH3zf{2yva2K-J9NuS?2_@LV2uj<@@S#9%wTI(>W*8et*+F9)1Z&~}Q z`;Gj7RR04H$b)~U-u5Sd=iq%Ne~6X;M`ls{hHj%}<7AWmk16-R;I7{#)4xwpdg%eh z?>EAOap3=e%19H_KIlBu9uE&KkmDWwR0kH;W;XogAmiZB-yTPn z1B`;dx%>~tr2ieC%K;>OXee#3m3{T^9lcND2Pgkz13nltes|3NJ?1AXf3F2=fb;xd1#zvIV%Wo@XSx*FQHWu+n1&1Jk_DZOAYs#8kr>!e(dg1V4l78qQ$v$v^KKE*FhF+hMn;8-Uu?4yH%d#bdr~d8Ig#t6| z#mX6rsPF%@sP?R!3}buI|D$5R6O!3p1(ct~n|9C^8P0!M_6`iEgf{+7`M9)TR)7#a zX!kpWYg=>wJ)qRXZOGKg6`#FWuul4Phj6K;otq75qw#DP6sJh12?xL7sNxy zAsrt&UXJT=#F5*9n|J^E2glj<^CS$12n@$9_+BGHE!bxed}Tw37nC5Fy)mUQGn^KV zOXhNR0{o8%A5M{!F@uz!EhtK|?m4#jnZ#tT<`OLVP-?Y2e_-FX@{+*=4$v27R21~) z9#idb^dYTCILg6B@O4Wx$3Y`$Y*q;CR0e-u_4LB0GQo$->TGJq~`m!Qiv! z5W|L;PDHZ6dT-O&bU=zbw%*9Uts@Fz#vkF6>4`HJpNw4;b>_koq>Pk3aq)@h1=0CN z`X)VboMfM&e>-uU{_P3Gx=bV8&c1jydQtR~FFi?*lCEc8IvcYndK7IXR(j+F{q_vW zIeC&kdj_HSXxoeTz7+c-mf1tH1+=qS2P7WAbVgk(ET@K0XqpOmX5yJ(aAdJ!*vXEu zg~3j>U<($AiT~y>9?m-a=RM6urtre>h(dE%QTWGBVOalCq1Z<+*Lo_u!xPzE>@sKA zSR_~(@8_G9mp`>r?v%p(On*NzjIQk0YYsr`-APhVcQ;k-#xe5i<{~rx!rAxFf5W0y z9M`)}<=KgpOvw@J62cYSwV4(tcf*tgQ}gnsE|_9)cTSvXk8?33)M2sBDfCn)PgPxl z5zR+{0uqCPM~`E)hnp1h3~wExd@wU*x$$hSn0;Zck1D`qifBT%EG`xuFr%UPkBE1P ze}iw&O z2`pV8ZZPv5I9SQopdi%&N>?HDpKks}{?tyy#&qU90xr;xi2DI98u0P2$mt7ZWo2}n zT=|xq?_?d>+s*lSAt&dNnw+=}awep>A&Z3L!-Br1PIq`;^ zO20TCpSY~?oyg;+5zTRVCQEF6pKfthLxR~rPh#OtI@6Pk)hv2c$Pe-r{ki1CxUq{o zGeeN(Q$I{WVq9Z=d}DolVtsvLUD;SV5qx|cG?F9Q8>@bW0pJrNePP^$)g_9cSsii( zXmz3|$O`99*fK(9Vq`v1Bq!Hd{E5XTHUabYUE$O@wAr_b+3a@9ZG=zRr5+n>J6)Qj1s6v-HTt$ zRJx0uGRnKxZQi}5M_qZU{CvOq#Kii34e{|bX45mKPdBVx@Wb8>UUMEH3Ebyoqrw=q z>EM={nk@%6MTM|(^0Mdey^Gl2*Ab6U$PlJ7SduzY?$}u39i*R>Qtn9KSOXF^BlKh` z?~e2h(-O=D7^K*DHi0F}lYQh~qQQg&GyLGXD8J4*(@JxyEo(% zN~h&?_KW)0r->3UBnlkiP{PrV8)h^#%n)7|&MJfE#N=#B%m}V-%s1v43mU3}Gb|f( zV&??9KPie&x(CjQ&Dofk8C=~^fYbSnj?*!-1C?iyS;kIROV1oKmOYP!56DoldtZrR z!n@#jci1s~qzGjeS!07evlA?u-JsWR!tkd=&S*O54&oKfq z|0Bz3^h+@SkT1hEfxt-C$p9rVM}cd2Eo4a?7I=^_kxXJEfqfXeESaxW1*_fNRUzc> z!z29~mJbgz_n1)X8J{sZk))gYYSS~~64S!l#`r}J?;c?e9nsq>-m|pA17L)LjC5~e zYEDZ;PYke?mfEakr9F5~qeY4UFO#nY6w<`AdTg?taww3SD!3>P2{wE&9KttB~DX&t2}3BySPp6 zv%u!p+@S1giqG;Ktk3EbF;9~}t@8q>lI7hOyJSxG()OFo``H$_D;uK9td2s(^dLxK z8EHnjBBcbD_0HkEe1=tQ*x}~pr7gCGJGWhL^bY992RMgYi`6QX+l~e?X^D$76hqe5 z0{W&|coT9u7&6NSzHh?183&L{_AK(qzA1ZK_Oa|6rbDvfyM3TTrv$&FPdWeu%w`Dm z0IZ7WwrDzxeIl}IvV|nrI4E7|xK?UBv>hrN27z;!9>SC+Nhxo>I_NbWXKcQc0@doRJ0m`}M30XCcH8+M~M0FE%d85*zDR z%Ud;}$h6IZ@wB0uTh`Qp)#)a+yIG#vqgSsUsdBTs+MHHBFm;bP+-x?5M|24a2=Ma@ z2nb3^OHBz12=wy{#C~cTaqH1!P3>QkZq~Sm6DEgsna$zX^E$EXywU=FJLPG;ykaBuTk0Dc>bK}+3W{Ep;^h$J(EAHrBJVTSg?382*&|FG*Bmq>m& zX7E-Z<%E<78K>AKU@bQ4;4U~B7|$?R8{1>cX5bPqr1)S~1&?poLsQQz!e24lqAkw6 zB`hwUz7rAcWYd!Oi7FFoU=t&~5g!?4;oV~s6V3F;ln{64koo}}_xQf*=mhgFveO(9 zE7a_Lf^Y-sLqzw$EI+T*6rT`7B2nfhrWZ8%hJ@7RW+!%55{n^3my+t0H0Y_8flmz@ z@^o|mbHq^fSVP@owcQ`9>+u*jXU857WB;Z52M2hJe6_5Zlvj@{E*b6b+asZNXlZw@ ztc$a1-$-T9;Qe!lgn8^C!#gQ!Id1ZJP8{#6YDk#>Jt5!EPiRp3@#95q{A7-+Rpta4 z2fWiS##mhDX3LG!8Wt`z5U=>oHn;K;Lv+7)1{fDyIoHy1?#eR*2X?F3dU$hP-R8qv zYcK}!vae)Sh%MNHJ!!QvsKQtvNUPUinnLR3k3`=cl_P)rZkHTsSJ*;d+DUA*dOxip zww+X(OaA5=xYbMm0K%he!W29qT7LI#7x{R$Cv4e8U*1VS-M`;{U>8Z*i89FB^PXQr z36wG|e0MU06lnEkqfEyhBU2=5fx73DHNP4M`NtHz;h%?`oOyqpy+ug1Pw^^C^3^5# zS~Ou06c|6W+EC%z&sJw=VgJUvT~*HV&CloAH*&+%?Mj@K#us!&mUaO40lEBp#JB)W z3P+!ocv<9H)WeFb8AdETCBN#fwJ&QRvlVUK+`0MV=}N3;ep9Qke^glIUTCk;D!A^- z!eSKwjsnZcr09V;U=ZfC3CMQW8P7CHON?TK{Y65ij-*WOiHvMm{1vH;kgrK)vN2hV zoEG4EPXSq_L{C!35;m=$I(6fhq;hXZ(x!QiyiLS|p$MqPh0X+TkG_SQRh zwsuNeLT`*6+sb)uChwBcf`VV>bLz1&)ih4CWkkx+g8Q6(4UC2%P!BGr0}+S zGp$G&N(x7hre~Pk5@g$HgHycl0{VO?5VI*##w=5a=*b3ic-65eY=|U#P-iS+&+;)j zGBWW{=~#j$BDfkC4 zNt?)GmbPg%-H_uyDi6oL`q7=f{$5~GE6KkzHrBp$+nt>s^P!`W)oEz7-xXp}B-OCq2}6+$YIF>J`R2|Kz?Vnp zY^V3dTc~ji<{$Z}JEudLQ9npS)=HQfw`bMDO1CU8L$XxA_5@T|^p|C)k{XrG?K)bM zUqQx<9m{v8C;q-+TK9era&OIN?Ynl$j17MsK?c($NK>^8^}V~&(XtB{r;%|f+1u~j z+1@E_DgP2`$y$Ye@hN>OKN>A|KS9?tsj2gd#b0Ezy4c>r2Om@0m1x-_*0NBwr5s}7 zaYYUKUpVT>S`uv|IBN7zIxUR14_8?}@ebPTQ_#NceOB;iSCf|exwU?gQ%v6ZHhcHY z&!lnOE)t8!&@F+U@_z&<)m?H-`d_idh|-i4^!yu zhPs|M=n>zhZNG zrd!3EQD=NB%o;&q1|f8?<1jJWk@f&oaO78DcOmav(#Yf!AElyxOM0G&4bLwu%+Ki& zlR-4}t2LPVYf=(w^YRM|3d{+?phR`gCC`#8sUKC-G`gtJniUnBkPsV}mb&P{u6(|m z8`;vh2-Qvdi1rB#&p*(&=|Fx?xR=WlYrg$<%@fYru+I4hn)>c53=b+Av}o|C{{b!*4lhFS0Qv0hMBw$S7Fk^r)5*u_70;F(| z2Z_U&Dd!i}{slq!U97elF+Flv?el6Y`wl4Y*iT4dL^wEv^d)@<|I|4(EsoVVD$Ba) z!LINY{dCQ87q9RfR;>g1ox_Yqw$G~FIZW%kd=2qEG=%h_j}5+C0aJ*hf>8meA@*4X zvCqa(4hAYuahv>ndmWAO7)TH~DYc%YWJ?n&)_hDeXaD0Z@j$*~We#LGHit2GW>a;> z20ofj-|^XFMo z`t#@M=j+eSoqLXbxG&BVZ+hqa1$u{gKhKWMJ9iG9=%IINaumF?n^KgydA@V)751L< zzj(_ppZtplqU=ADrSd1`B~sa=Q1&6b#}HQbA)?z5N7+k`dREt+k%{-7O{ssl9vG3J zwt_uPzo^I0uPtBx8vCppTU9ldeYh`Iy!z^jsC}d{|Le*H(D={&#M^?5Vvib?Ex*;K~!g@Wc za^0wr-O0Gbl(N#4l+v=v-A9h9169UB(pHlmVsH5*=%azqEGn_S3iL6RQTB^|{7?^% zlOi_n4-5=DaerKp|8H*MJ=Uz@0xOM(4h{+q2n;n=8bbpEgF^ga$}LIj9GhshCMM)$ zu6(d-5B^WCmQQN?fa~F*_6shE2ru>z@bo|?haec!OZ);ncliayCQk2CFg-EB-%r{v z=pyZ}`A=_Py1ffoD(;sTLwBi?=*VQEBs3oyNgV_;$LpDNb)a4D(+}d6U8#!?{Ubt} z|M(35Ba#+^P({BYnl((M7ew=~XeeEkY*cV(9OMoPyia+yd-uoRB{6ReZm@Px>H*b~ zdiw0B&bP$^nzA)$k;R}M<{_i)4G*-VsJ`vsJmC|?seZ(3c7SANJE}mdd zh*#l*?S!^h-g$>EBcu6CZOL>QcVkiivM0+(uUQl5oC&}ua^#q-R^Wv-u=b=gy{6q> zgXb{;W|W=?Y!vHkc(yKHkJU~j8w(^o1RTyYO$c2uo*&aRt}?Vd?WMHx(8_U5JLs1? zC-Kw()%aRlC(R$pKdJi&HMT1Jl~SW zr+eRV=zdcESOsQYztH_)JOx8QESY|#=#jUjl(8pI{Zg%KpI6u?bMsUfi|dgrEE;nl zcw0M^WQPhI0#8i)v-MiO%PE$1HauzDXP?ot)5h+_!z=bIJV87h6O-c#HUk;lx*Jaq z*&t=1MVXJbKU>2hi8aogDiLWbjVkHSnrKnkoVlZ17MDf!^A{|b-_T2UNV9d)6-~>`_EL>wTCWPuy+A-z{&W?AV-;AH!Ww#oE1 zSxBc5?IinsE#5wfXmMzv{GT}3k8W<8L~l=_Ure^!4?AATRoW*L?UesV-Fv`ERb+d> zUHA6w+&!IhobH|;CN`5{h9M0z#392tWEg@-lAtKaN)QnR3}gWbu9D2IBD(s-#O|7Q zMOQ^#cb~eZRn&ELfiAy))$N`@a-ZM({oeOY_noeLZ^d&?Rh>F@>KydX#Xn`?oNXMk zUL!vf?SQo*YD8YzTJ8=M5Z;97qO!bC_ODlyAL7lYsuxBY?tqBXTr8qcg zBas3thSI%_Yq~60&}B^{89x*u26v@gPw5Z9ZU8GtwtnnTGYEA%)SDSo zXx|QYLde7SU*xKLFjKR-E0?#c?U^e&v?Q;?opQ?s+9FMFS9!X$L&NB^9d5;D-nRCw zYipm>iU&RTmCo3?fkcU+0JVkxut-?JO!mVEFq>DnK!D9YmFKpyBTO!gEopJ6>InUY ze*IW=@JmugI;Z|i2tU>}yEVn;E-|PU4{{-pkR-8MyG_)Ekm@&+Y&xK*p9$Kt}WFRN}uh5Aw;KD!> zKRySV|2XGf_y3N*#0$aFpN90=^sjR2{{|I`u-l%oLoWO1;x4LXUY6~1$X1NmNGGy= zeg_fL+$%;1m?ZBpX?*YcG2>moxv|YAIidfC*?0nfV9iYM0!!)Sx-oUNO(T2u8Yety zS=PZk`E+{vB{Gigdx=P=f5@0HXJeF;+@P8z+2Q4KzG5Bv1?F(JXoVSsi^ws!ehcH! z_-Z|o5Fck67kc|x~QPX|x6q$a<4*66Ui%?`MpGw8A`1s1#A;Z>`Qx*$nfU4DZjsAMm) z^6f5*!!O}QmY&@3ib`YDbaI7@jQT8-#}Nzk53;Zbtp&-i))c`|VqJEw+ZW8~6$p3M z>4WZ|Kh`_w3aE`v@9bgWP6J-MMk}e^W=qIrHJZ&TmCIrYJFR}<&Kg7JC$2~)ktr^Dic z?VZD5HcY)?Ya-dGbW1=(pbJcda)SOgNj@e?yHzyN-2F&b&*+Wm# z+h%SaV)6T(xsk?5w%?20AOy9OMoshOxZOFv$;~q(xlU{kdHval!Ge|{n`e@_Cx^~1 zIQ>Z`yViWkl_sMpWV43w!$MXYLS)w2?xSxns5O~1Ii6^Z*I_mqO)f`IXuPp-w$__# z&h=`ujb?`z3UECgE|Zamqn;d%$y8f#`{?e=E|4#WwNvq5s#(gxiqV-qPzt^|0zgJV zx(uKUK72<9Y8yZR-@rjv1!s&;E#Z$q(Mg63`8Def046g!^Xh()m1hz}!q)`wV9 zNJKbVvY`dk?yf^T^no{pU6!eXKc$O?wUh)RT7%UX^7ic;4Oi+6HbcmxZ649+G#J&Q z7zk?en4}KcIr065BHxGloVo0?Tayr@1Ze&*NmF+;ab4y1tT9z z)i{#QiJ7fJjLgLX7sbT^e;#Id;G#Js<|`KfpPL?1uoXK#e1jS<*?JNm#_-@{z4Y63 zZ890M-X+(D zp;Hyq)Z8%kZ**VN`eK#UmL2Pq%qvZF%FZ()UEJR}FWGz87#ID*uQzCQBK~w*gZ@9e zDJgL{EH*9vY!-*(Kf58T`>GJ=U{6mSSEVnO=bo@r8Hyg+uB=pYUae1lt-;q>Wty8O2NtuA~ zj>c$Gt8`(EHvUdI6LYc?UaQ$`4#l#I69KEXCVq4CaHAz;c`;>vk0< z@&aKK22Ou=yga)wHx~8T%waA4lTy;C)i{kLscbDLZdzt3Yc!%eZ%7WPNN@?EyhWYM@S z^xI=U6py;ScQBY`(q$XWHjmFAj`(rL&Sa49A}*sxXBUJqi$)dyHNOLx7`*uW1^*}G zrBm|XBQY#%T49y{;oTY^nAIBa(JT;jX->d7sWCQO@f?c%kom$LAn zf-C0FSu|_iEjzZaU%g=7f;o%k+`Nvyv^K9U7WOM={pP?>l{uEJt;h@2bvIj`+2skV zd4M~&#N!eRRaQY~^F_lpQS^~rwNA6c7}WW7T`hqisZ<4h{t~NAUs~FEO3Odito!ux ziDhzl-HlJxZk5!quWNO+wb!U*@t}}7>y@v`tr~k( z*Sa2gp`{BZg`K{jwy-|eUunqB>sEy+&XEOPE8r)vWaYFNIv1A5atu0aMb}$BlM@SfwrjqN73R;#FO1cfR#ug)A$dYxcY3?Y)EQQ}=-+F- zJ}3Y4dE0_rWRy*wGVxntX@|-7nEOK-i@+$ky5EGXR4}__Of2lw60#3AqG2DJtki0$ zKBb=CZ>3V@49CWlM6S{s9IoCI|)*g>7=im$&B=!tG z881gLgB7THN(b3_G#i(qCBO|p%|sB{FD?h9YHh!aX=W1^V?NR^+kT@~TMQd&NKl#F z80*n;`|TuHerU;pjiXw&kK0N#^~rEJSxSkgcb)V#B*-TfUnwZSj%f~#SQzW&0^!LMy*#ool}$$1_^{cQ&64s9j1@@{ z8b*kKAR9>>NoaO3Z8gM#5wM9$|l;%%gU2B9Jb}ByLlFv*wg%i zTu9~~3W<-v&RChLP!N>fPC9nfE;ss^uyr9jX zmPAeGT%)F_gg9WO(B-bsivFd=SV;(KL9Nd6=bEzImd;wGpi?V#uv||L5ra_>wUR+d zQA@OIr3LoJbb6&=kW{m-&k~2{Wa-Tsr9q=#EPPSfSsfbZhNe&PvN6$`nBNzc4Boj< zPKZ0qJqkkR)m>G3ok|tU4pw`uR}FJm=?S&g9dO2)V);uwH`&(R^q4hLUe}Z})>6Sf+P%agJ0 zg<+v{51%E+qLR$o(pgzLmuo|9dOb!AC&zJ;F}sYI7}u+oY@kO@-HeDqyfOvD37iu&P|Bz`TCU=QH(T~08N3SP zVFiH}teRjQ-QqqvG#i;|Y`|RaAo3ImO~uQdj1@?Xzc@#d*cEl7XDf z{UcL`$1kHlE?1fQ_&wv6^yr-(E34gBSRD@^tDa1 z;-AIm2C~S)py{*nxjnljE{kc&B=gQ2_Kgtoj7}@mV-gMdg+{$W6`yd$%w_7p{B_sO z960gy)l0t~JN>x<-X6t4yI53JzIjS+3|M(gv0eHDWYbJu#&lqNLS8l*qYPtZ5=r!4 z22Kngd})V06MQgI;A6w;oV5OzuoupHu!2Dsif7JJ`45d+=RJGkIrvXg z>X^_Aa4IL8RqK_t*c%Q(mRtsEZe;RS1(daO04Lbo$JfDE&Jr8h03o(RB?4X%z=`00 z0@DfuPeg&s5s88KgN8rjKF~4cgA+KE&&hM28e`d?9Hpg>Kj|d(nR~{MAOFAu;xM5p zwg2q>50HMsqn>C=CH5~#jS>!?ou$^mFNPKWGl3U|2&bbS;RClrt5z+G*sE@>vPYJw z)Y<`W&ztx5JTl`rJxmWDCj}mt&qJS|=iXhD8_fbcZ_0{h0++XVd@c{O>(P-$s$idD zEZ3STf^srQ0j7z;jxtps)IEnu+T{H+1_P!L#CGY}|AdSAIpEe6kPcdk73GXs15vPU z3h4n8An@ILNDpkJf<=P#MMcn6Ef~(uz1_I&cH{mREy7Y^+mX~ts|j08 z-Gw+qB_|P8%EjgLQFcNIb?-H*)BSL>X@X}>V;~zzp|pQ>nn|<^QYX# z+qW8TfAd99-qItf8L5?Df|?Avsx_dx(^m>AP~B`(&}`J3O&~QB2oO11l#+vF35H&v zPsR@kiYBrI`;=oa=E1`QdSXdwnDr4yGR~UGCQKZ0d2|1sRJF>6#Rl};N7ht!yGRJivK zr~jBk8rEJm=LvU)W30_EkM1YtF#c~Xxex8_#H~uC8-r>>_yZk}b@xYRuu5Jd4$og}+Qtc)=e*RVIGOsu~GcvfyzCK6kRB zQ02~qvG-M~cu^WH>9_?|dCXTZhMx^T*c6c&7se2g7ZUbdi_t_pU)SCkc1Gwj`k1Ss zuQ9u*tUg~@-(#_z93#%Y2CbFUzAeqvJevT}Al&|d>5UA|QCgMnVdx`$VH z4i|uq2oV(=K*3&9lxgI`X*+1M0pVP{9>=ysX z@7B>O{A2mR@@03d^Eb=+XoY0@OO&_4v-0ogE%^Knp<9skLVPNb(K%1>ZV~+*%j=t; zzJe{$_qZ-CBTCj~`CJQqIrhtj0Y39GmQUocVBoH_+Jsh4RG!i~kE;AphqXSi=`}lF ze}3o&Lolp#dJSIt;_DB85FQv)mg*(n%O72vtF_w9SuU;7>JRHGn%2MUmfka)y`?^j z!{_=N{pQ85?FN^}X|M;)R`2%LKcs6b^8DR~giLvue{>{!XH;i`-oC|P4({K2I>KmMp<;^#o!;t=8&Z@%*(@oG!D| zo5VR9OTKaD=D+{jAblQmb|sR*WOU@3PtuoO-fMMt_F4q+m2Ruv=b!KlJ#(Ws7BU)w zQH!roG`ii6(1Ry_OZ46R-p=8K$y4He{wUGBYe2h2=4nP%2Rp;^c^A+YmNQ8x2d97I z?ZWJt$QA#XVjMQbq5P(-pnd5ma*!M$2kAZJY1%8bpY|e83r)w_&2bh!F1|<((UF;m zLozYQGpTFj2;>=#gSNV$9&L4CNzUg`rOo7^fsoCyh0jIo(?qO2)i9>x6X zK&sYS3jh7pS6>VBQ|nKq)(i7b2@Ad=nGhSJJElj$=eAn7gRH0X$%giI5Tax~X;%&O zQCRtsCUaP_`gf>-_$P8Jop*}PBe$MX_BnO-kT~)bxfS{+z=AXjXp(K?>d@1H5@!&4PY2 znNJEfpJr>!_fivtJ@3J0eJ#qm>f*SD!ci;USsl*9wFw3aJ|%84gSd|qH~lpABfAwe zyV=cg7Cx?=&BAmQE0Qc7lKO}R1V0}3m8(Ixt|e)OIgZ#7^dsKAuna`A*<=VcN=O6P zsW*H82XIO(2Bc@09@F~?Ohw1Sx8%TcFjXCS8f8+3NRmyIU{{l3){>S-`t>S^m6XKt z>iRq~W68jV-V=uThANlN8aAPKzy3>RJkqBwkG(GFRsUE^=JlCX@@rxDfPTFu4)%>u zE}c7gY<i1~NwF4UJ$Kv&wRdWYV?A3SRl8&!I)>!X6`P0YJ zzoqY>t7O5692fL&0yqa5Mayjw(H7BTc`rs>2-)+Sny&zd#+9eVBCv*_P>Q2GwWCa%M0DOp8Ul9es=ugu^z z36ao~El)m4uX}3BQzZ1%Q)JbXC|ofDva*SgTXKzVFrj?>N)O>OpyjD7J%-CbmPdF@ zYizJ%3wE$%dLcUR!@vOA>!ASJhv8G<>laqW|JCpS*@; z(YZ6r;+iMhvS6?!koWza%U*BB4VdnZ>bh*QX|JuzsG_67HfN?4mdAD6wJC4g3cZY4=XAh77pQ{p*0j9R#-GFoSmf=Phh5V znC*GNNOpE4oSQo~H#f|JQ7Ha6EJ!M9v$D@m8nEjGp48}yN6$$b%(I&v!X1~)_RWje z=uK9mi)H(BH3A-ngO(J)ng$5t4O&6PIFyK-Bij_^gt zmIsVBv~^{DG3vj=J2Eu2y1!L zZWD5JR+T+>vgq$UCA%#`*nduhN!>4z_s>oj}_Xe~GsD^n5N zGfd*cIi<|&%so%es%eR2DvK!Rl+^B?Aw5%Mhdf%_%91mG334KNVR_+1Vsp^tv)c7K zo!+jud$95Aweh=Lk0%gxdF&<~$+4JhdcD(T_j>#RkJpYHy+&*Ic>G~Ruo-mNqjtJ* zBGlutYc+^y33vkTfE-b8Gg;_Kw*GVl1DVY2R-Y^A@!Rz*D?Pib;kCexO>c*`b8DS! zUU$G(W;bc+NsG~`Wz|Gcz95QX1#5J;k0aB#~Ng?87(BP zGub`79=STbUT3$V8UZ&N&f9PEx}d@6q4sW{Rjw+7sJFsqF|xw!Xo?I``YyCYOsugPkXo@3q0yqgI9i(lsolds>a_u+ z?JC7FVYHIC*5q=slD#&$EC$km$7X1~14z>)w}F&Fn}Iaw^4fsexW&kzsL%Cy{T?8U z0a2rCS1I1VMq`YdAbk%@PzoF09=Dd;t&G-6*=klLIN+=pbU6CXb@G-P+g{so%eq;M z=3s|y^*Z58wtYhEdv;>Wi*10_%(r;Z)nzu$m{LG@$COq(`lO#PsS0sZ=q9!u9Z|9pmgPriSK{4=#l{Pjxm2U@<8PD*|9``-&*@ypaBbR$lQ&!QWJ zfn*loliAzT;*2A#jc4)}`PkOBg$fj8w%)|%!*JGp>@azbJa?EJOTBUUBAaG#X#EvE zlKPtTrAGt{=_|M|xz!~olCTM}O8OR@TmrPg@!zUD(OxY91Odj5z{Zdbhb(ul#_5iv z%k6e0lU=&BzghZ>a0N9yL-kbu44ltjA%5ic7M4_1_v%?)RZ{46%Xd9{@jD1gWY}Cm zH*wgAiVQBad?!m`gH0BR*y55+(Khn)aj^XWTu}+e^P(79-@bn5RQA%iBOm-vDi8RH zt?<;!)CA604VMhI1Y?cUHEajR=82^I^n}y+lJbcgXfauQD_P9{(c%r~KvLO{zVjG; z_p!%F&ST^ZZGgx41_J*RoO*pn`D&m7hV=Il3zmmnN-DL5n3LzDA|^D*^)pEpg{1As8-Y3!+Yt& zbmrc}v{ooQy!TGBBb8W92b1xu;SPMlYBHV<7O!M|tn54bP8siH)-sxn1F9`Q(H7V> zBRdp7@o{z)fRN;C;Zj+LLHP)m!*MZ--O*l$=kj=a4O#TmE#%Jy(o9Gq0l?w7E z&HI9W@j0$9XdZd%3*z|VbLIy`P;5oMe&nm?YcIf#?L)IOn;5eoNn>kkNT9iNjjgvy zLiq2+i@#dDm~Nv*i^-o(kv}b_Mf~3>JP@CF_4U_ZeU%trr{4;`)W^j1I{l7*`#LeE zJ`ue1yVrSJGO`6GA8eO1+6RFaaIq1I3x=?#EimrhKzEQ6gNGmmd_`$n*NJWP7{yt*VrZA6 zO%mvjOQ|_kGO4}|7nAR^8G*fF^8uR;*c*#2E*dc|>4{`3B%-AJp1yyzP)ASFzmn}s z@bBuY=~NQEI`tHZlMtP@1Z&r;ufB_{x|`fcueqBpz3VQz^lo|$x$$nYN_oQ)EN_9I z^HY!=^!>#`ALRR?sNxBCw@Y}}Ze$4b0A^1@SNY$78H`(@T3W(thM`kzo(I3(IKh$n z8q@(< zwoNT^2^ak7aJjaGafbDec%|Gk#Y!=__~6`wr0Yof0@+bSr$D$^Pqr1&7E(QuzI0&j zLH3%yIFfXwQ;W!U+6NJ)6p?N8_(;;_z+9L-cpA@;U>eWk(A+~vaF{-iw{&_D*^1nr zqSK1Vo%99dfxH$UntOnBLEcEj+Hx=YmJxJvA8sI+I!{&tHc(cPO|O8M;2SF!NJrB9 zVd?!+rlQPP#`Jr6HpZSRgymdYf<4E>v~UHi40g=;yxq2wfJGKE!A?VxS!Kcam4iZL zS+u;a$}Ga5cLNp5#DI)6#vF3%uI!oUT~p?CGz9IEX>{#CgI>3?#QdCWqGfIvsPDI|yT+qc zW&P@!cBy}rC5lFeru(vUlG~kjo4RX<RH)IRwr|67K5Xy-Jx1dl60+R{0!_BlGl9en4@9CM2oP@@c+=YHd-ddy4~59xeIqx~Vhb?=B> zL!!xKCThVf$KW2LGjR_$vbd!Ki#IjeA2!(b2+!;6exFr6u5ZD_g1%wZWmEP>{ByRA z{e9Ws!DX+H+R(Go@4t8YNLA_fL_y#2I=j!Gjyuq=$|-FZx$+erIr!^oqf}+va}XJ4 z<}z?IDSoZ^t>R5U5910O1JRY3z6_W_CsU}o;K^!1#FkZFa zT0S)#x0;*l#{y6Jv+d5RUc-yK_qUD$rbaXY{G+T5y*dx=RpqqL$@A!~W9ysE)_8bo zxz$=aHIl}LFiPs`nsV&P2YZTdOzB@Tw9cEK@2wkJ(w{!64~rzXyl+9GOF{pjDknMZ zrcOHhh^1pE&IAoqPM6Urk^TFR?3(LQI^gHt;Z9`3_A2AKp%kF1 zm+n(|;Cu1nV{f7rhplqrY=|1$-7xis1QT6mbRlG+Wm++!y#%vW?99oLXCdyrwOef| z^pML+YrC}t7uUwC;EN|&*r_15FkV$W#+Qr~<`#4+OqN_zToq5^@Kii=Q2Nnb2s(4|pPpS9%lNC$))i0??GCOey*Y{&#Te;cgvgaqJ*LIy! zl;d$ouI!>I)!n8i^6d_XC#Q2`JZE$|Tr{O??G@2%htlDTv2Z$0fvHz(IESSLSB14= z2EJnf-&T}$J&Y9B}FQW-1ipTqN@Tf1r0K9A264)zU(@hiI3n%>cHui~I@y4&CS z!mWHuEY4f3QAa~D#FO7RltNX#yEUobJ>3^9?iK!iw}a*6XK!Mms9Li)ulUD!V`m`W z!3d#S^^~G)mjvX?NG`ItT;_6PclMmcVb6hN+P{xpBu-(Om1Io%x+kr z6jM`FreIO9V6v-MESh=g){>)6SHJnm-b#^0cGo8OJ1sr7&7DafjrDR(Ev;X_YOg6S?YmYXx=AaGP)kZTPE zanzOZkt{u{K5HSf48fmP@;aejyjLbgyuu9>+ZZ2;h^%m?R+)ax?9ZblPWDO6wAkX# zWT{f~jWO2M_)~VygMXNooGW=z+bRjzuS1#V9GT2CrkxTNV}+rfcd`DRj+{M+JZm?v*Q;>+6uPiBNl6G!J((Ug>5oKA4hPZc z^2!3?5{Jn~zR1$OWrXW`ozCH4&zweSk=?Rc(&4P7-k{U6w0eys-lIoym0C}TQnDHJ zIH##q>DOCqm)lH^l5n6bPp2aehbfY}$!fdS=wy!^4))Ax)V`uOJtOIGLPIHObx3P* zB13ZZ1&ytUPKQs>X|creV#TJ_2|lNzN(XzKUQdn3i(lOooDgkyFV;Gpfz||i7~$RS zbovDy{*Z+MyBmVnX|K}RoldX2#_PqeuElNd<#gJ;-WsS>IbW(#09e~-Wz&eGUC-cCPMx$c65}=_+`#!D z=PD#NN!)U6X?Z^XD=%#e&Kq4fsGp)tCm^`R8R{=WCu{%zhWIt~qvU zG49y!#a;+sterPw(EJ(m@BHv);+#8U(0~8;pc!-N7i&Mf6AuT?n78)k*7x-D%zNUz zIrAQERKq8$Lghvq133Q?honE_6%Tfam}MdnmWkrnAdxImqEM{Fj~d4a<7!7GeAidT zap6ICf@hH0k|@#E(0`E_eV+w>fLNZsPk*Q(T0Dr+e<47khYqnT^}}HVwjV_3UxyAY zJ_O5-FT(`L_8Hsv@833KJAL2)eT9@BAVas$*tUN^9+M#l5-&`7VG6!8rc7prwI@%X z^5T>i@#VN$p-}RDq@KW4sRN)#wfQfgZX~$JuOo_w{I?u9K%1iM7vL`>@^5)59^xKt zxuxY4F&uBI8G`_tq(9Yi%VjlVkJEo6z+TcHj*qEnVzKn}2Rs{FbJ=lXL_m6T#?bq2 zrmx;f9DB=Vln=dc?Y28_zHcakdx&EzeI4N$QxSudZ=+xADW6d~^!}T-Z^Kgr_s}oy zBozpwNnD2YvC4+I;YQrF7b2^{6Q%_vOoZG{fRcb2Demlv`+5SqXpz;j+eJxpbd}&i z!62tO>{e-x%fdKNHmj7TeNU(@T=JYQQToy6gH87GiXxlkn{O<(qKa}@XZQL1g~jEi zor`^5OMgaB(POWTSv)I(C8@F8rcm0qg_gkJ z8NLa8iM%Y9Wm$YymNCS%>mivI=!rhB}a<3#O#@3qB_H z^J{d0O0qt1A^7KGFLJnII^MRz-=!7sRpU#9HVG{UD8m7c*8s{K?5)paRf&!-_*w9F zB3>3*S-tA$s#Ql*my=E->7SwK%zjcj{v!_HKN_1OQ8cG00hgo~4WvBtI#)(>bEB1= zGXdqGOsMsdIDnP4Dpe(CKal^BW%SP@NvG6!{v-A~FV&ex&U++WcJZpT){?__1n3)j zgz$Oi#`s?X*bacbmLj>5y*3Rto!ZYSl!)KUYU5lHIzTp#R_h ztjg7q-E<V#<7z*0 zM23&oqi7$BehYV`UpDwTMpwOt!&Q)5CCN38N&{|zY{or#&bXkK(ny}>FhBdIEXCo27v-M62uq$F>@Z` zf-@KvMQqM5j!KQh?-0sLdWC{zIuBh!{^BtV%q}X5^;gGfE?Mgr%7UR@`PDir{j5=n z7LQ^{=x0`)oCLc3YiVv=-9J`Tls(YkA%CGuJUW&n)=O{@Kavzl-xf#vt3%N3xG6wj zU!Zqov6khg%r0swim3+CkDa8vb8i?M(0a%XG&`j3A1y`_Q;@uk+_WsoKre9;-yl^C zNwSrV#AVg;BzBm2gsH{1gC?Ybe0dsl&|Z{2g+0Hh;_pWRUYkP9KZ@g6D*PT%gv>pC z@FT2X9-kByxax6@!Zi)oRk&8;+KlTST#w;;5!YL|jN^JrijNWa9+$vwK1Y_PapA^? zrI`whkqTy9RWRS9Qe1}Xa$MKox(U}dTnBJHf$Mj;-oa%YcSI3?PjM95PG(*?(R>th zhmMC`<|7I-F4OC{ijOGRy$4}WI_yK3z0ZC<+1X}RM8XP7+U+DxvauU$3}^@Hl~xB{ zXFowU5I;T}9-~L@yN@1uOnA?OQ=PQ?tK`b3J@|W;T=@#@S03}=gx5#xTnh0&LK+@= zh(2+4r~olu_ZP|h7X{%(dh2oeECmZCD6ai!2Yi2>K>hWKO4baiwHZ1wZP82fsba-@g_>eiVSt&kqe6x6~Bf-(G`&cJ8s8-Sh6q39LJ7<80X4BF9}4wB(y zIK2;URz{Fv^!}7XzQ+^(9L~V-mfztmJtTZiM$$tFWy{Y|Qz&0b)Gj`tvZD+I!CF9k z;GoL>BL^1|9;9}N0@Lpz7NwFNPQN6A3h(Z3_wN2wQ|6uGelb^I`dKQ4j}Z_f8q{1Y zK8hzYco?Kf#9}KIO9el@{qE(%?i6#$9MYXWi|C6H{)DGb9L24i1nw8*JP4?YftUcq z0xs!wKm)crqPFN_GKXb_1;_35S<;>P*hF2#x1=}CIawG4;4|}Mf-2!T$`E(+=b!NB zpRngR$5s1NFIA!HHO!Q7-@vu+TlY}-a=z`9FBcSJu@_-S-(#hbWO*e#3SjLAgYz9E z)3O|gL05P`1j8^6m&<{pyI#M|2HSKtv)$~TP}{GtvW&j+L5e8P@Ht1+7sMR_KxO6!XhRxPh16TUj~^ry#5 zPA@rga^~Yb>JxE~x2SY}k3lV!`2ja66Go*DvNrDe>3zwGwTFXwb8KxR_$WTtaQ@Va zIV`=GlxD9o+i_y^?rZW2auRDEUa|WAHHn;f=W)xHmX#M2=I0j{l$W&yrBk`4{G3T; zOIudH`s&JQ*OpDni8*r5);ryKMKinA%q+@dQY3_Hy0I|o)rfjcL%ky0hI39FaOIUr z*QLXaU9IFBSgqK>^oiAtoI-3~LVw_OE5wQ*C!U)d&nYgNRoEF)nKkrZN7^dcuD-&3 z&+i$&lGoC1x5wiXD=H?&;|MxpXvL~wd*}-nt2&5uj^YsZM{`kkMf_)LE;ippCmgG+ zEbr5Ed(XOx@-AJmXh&9XCHM`3# z{Rj6RT08#TtGW)FlDDdP$F_ZxOkKC7ck*CqV`+IjCjbjk-_@5Xcw2av05F?N3IToiEl%G!`Jh zNKr1IQA;DQRE8y^_cRD>h%Ezz!Bedwf9YP>%Qv{T8=>^(tCAHtaiuU|VvDDDey--W zE9|jEaO$A$S+QuhzLO0bdMUeg%C8D_E1Law7x&c32K|s;KRhVbnqsBX16`}ilr%#7 z^s4mRM-Q2n)sP?TJm65@^+Rd|tJP|<)K3dUb4DaQHhXeNe$PaJ-m$$VXtnrihTb>1 z9`tt`{YWZSB@|(_lyyCPIJvR4tph|MWOOwk`jm=~9@w*Xb$wl3k6TvVd*JBo858fx z#ozG8sZ-|Dj~aU4bi=)OKl$4OJ2$MZZz%3vOHbdqZ$Pu_j+4L9{}z!ab$LV$jw+^Vu*-2^PcLAWa-A4E`YUAKDySw5k)w1ifF`~`XO!@rQ{zwDUS#OfN64Z;6lNzAFRCP^YNS5A~C>3htGAp~p+yaP*sk?XxX3%ArlP|SzF+H%`PozpQp5h)}&?$8_DyjiJ8cV*9GxzYoBKq zVRvdGd0yC$c&F z1OGlzw{Fy!Idhvwt$X^`jqiWGW#NVen@+ud$A+eLKki)b@vYzSc)g z0~teW3{w{7Bz6EAogan4iVSvXq4vp&V__AZlRe13dG4Gsqt?}-&?`1{>$ZLt3Vj;c z?^y5itlx?3H{9|5sZ9$uEZp+-`)~mW9eAvlHuCk78|Rpg!uFZSxgrzio!R1vG4bHC z(rXO1tWa8E0zYbrN{&iPRJD<<8Zs*hwu(6OhH&}2d+1MJzJsL%mI|501C|b{vFk-| z@z(s*ijHOH@v`ITvg5pL@QW8LTjKheY)_r<@M8!BXQ6}>?D9x0IlnfkPim7d?CW;h zqy?+08z&UkM(F8b!rgS>bq}9cyU*$`?|R*qQ0!3GoW}0CBfDpRGidqxh4%vQ?cr3R z*v42q04kra0!>&2nlh_E6IOvHtO89~1)8u5G+`BJ!Ya^&RiFv0KoeGhCaeNYSOuD} z3N-OmU}v_HC`z}!h_~L7Zv9bk0tp_D;JF)C3>j412s;pV!#&JVc(6;rn7_5lxmb!b z7clL>lusOtbhz)Ego7ztU{=XVlvJD#HM;cKJ>Aw!xZ;|!F=LyWZ@Xp66$=*CT{os_ zO^@f^zRIYaaUSg43vRNzw}c(tYr59l(%3L?us^xq=i0Gu+;VX~81Hs;W(KYqrLpw@ zYm1$?*OzYZxouzr7@QH5mX|V$JHMhSC;bkde|wYPKDKV%tLIgVJ_XU(%Jpx&u}*;X z+zxomSKQ3-7(u}tj}hQ8lEEW$?h^qXBfw(>c#Hs#5#TWbJVt=W2=EvI9wWeG1bB=9 zk7yIH!`l($ZOTu#=_tHXDBla$_#@t!=TJCC^HPo41+Smpv*8RGYrZMgEGUQ%rGc3j4T;xK*+#{*J`xc zgwPR1burJq8oA?qt}OSfM()+fy&Ab!Bll|LUX9$Vk$W|AuSV|G$h{i5S0ndoPWR<( z#1EwL8Q}Qrl*T8M0k%I;-!{A^rLd8Pad< zmMv??t`x~t!xyeuvvBxTL|jRp?^WBaSFdihy*i93IT%wuYa3G(7(*=b7-9h|Eg4u^ z080yCX#p%PfTabnv;dYCz|sO(S^!H6U}*s?Er6wk!;+0q35-w)j8KL0SW*ZoDg+f3 zf{F@3MTMZELQqj5sHhNBR0t|61Qiv6iV8tRg&8U;1QivcI>1gxPAJpcSa*=go^^*j z_y%Oy$wN4b=iUpAB_-BYlwcHrjvv!G#Ploj;YG&J`N%o@$K#(p!-kN%24Ank5K=U0 zWdAE_Ft&^tgYo4&tfU4I-MgQr9=&bj12x9McQ|4gLWETqTgKq((68N?f0Bwfjw<4S zAFDiLw>*%Lv#C(g@B++7`N$<7x#T04eB_dkT=J0%41(f%0@v?wy@QL-u372+ zl7&j@7{7!{G6A!QEBC$gIS0luKnuYVZ9km1b`^Az^PzqwMvmRJ=&8fI#GC57_vq87 zNB4Rq6+pHTz^p~%$UZj_01>8yEi~rA%E}$`Tu4nz{3m^R^{Ux(XXCqS zH7RQir+!T|^sgkihiFnm){(JWH!oebWXZCno43-tTf@>jT`K0zr9bT0LVuV$x1tNX zBib!Hh!%Het`j$Oxuffu_t!}Kd(>XHjGlPtFg>yCy4oJ>juaezh!o(iW1A`zLoVGW zaO7|`oEebR#I!s7DseTm$oclKM=?D{}C>XH!X2m@y2@)CFzxm1yL_wo$4Ew2^j0ig{f zvg@J$5!M$jT>0IH1MeDHw|n%~yEd-6`L@N&R$SX_>)2t38jij>pLY8tKuKNW*|G4! zW5K|VMDF7GGq1j3Li5g)G&Tf3gsL0P)nrz z7c~C^I)iM@`@_M5dvMY^|CcoOAE_0h{_OXwnP6at`0XXz*1j)SGRvJ8@5>T8u_Z(5 z9Z=8KV!xz&?-Q=2-e^Pg_-Ciy9k65gz)hpp?%lh#=knegeo3>Ztf40jhLcY|`z3Xg2#QUYY(D0Xwy`XZv8?G*5P*}OR)*Q;DB|kxZ2%E0%nP^k7oeQJHS7B8 zXU+cAuTFGZTC@9rp?LkMNB{WlZ(ch|jDPF4l#c%;&`909X~p%MH($SE6FGfHAo%vX zeFmI->c|H$3|R>I&0seU(f_C8VHoy)FHINFefve@`&dyy8~2l~sbg>bk~U84b7s3T zN^ZDhOCV}$hvO(F=RQoQ@#1t2EHf{K7|CF{7VKr13u5?y7iKFbTZSbC+5ZBnr+-ONlBHM7TGGe6e)@)c z?%6PXz1O#E!F@-M-nU>E@s6D_W9+yYGsx>d1FQD^q2y=#gFN_Ga>kFZDdDdKew1@; znKdQ4%P*J_Q}@dKplHLW-@Nwjqp!b9|M|CW*HLtk+2|NX34OpVSU0U$zG>6)6`RCOmj+B54F$loRlySMqznzU$?-YoBMaUk?pO1jA9;O^ zjW;j`7Bd{5V3??cQ(<*^C7UK9@^Ha*W57c($0+T$3Noxwc~w<;8*`Mt3ydhpA2o8+ zsQmn|Ny*S5Lx$2o#v%z7l#4k_@Ms?%iwJSf=!y%rvcBy<^Mjl^LdKHcK|N7VW-z{5m{aw2NsyFVsi;o)xd(KW5H^lGAY2~LjZF%VMmQ5LcYSWg( z5Ai!DkIIazIwnzuqzkGEkgLWm7pDgygbno{_t3wQ(2|Sbm;~0WQAWGo(dF!wQutCB zYb!qpY%z=OZTwoYop@CNP2@{W)55;z{%r48`To)RgOes67EO1*ip zDu!SBz}38}-0(L_aXpM!-J7FAy$va~gXOnk; z|CvLx1m7N5`xQ`VQYQ;N4T79S8S9KB10_R8#7f+8+$uzVy1=6N!Bu?_1A42@ZwC*Iat? zZR5%GSjsY+BJG47I2H&;^%k?WRc@!|&2c3!P6OhQ^w3G}>%Fww-{^NIU;E9we|&V* z`eMU@-8Dd9O1nml7ac{p`ZZlK4SGw&;>^|>Uv+wpW-EYsz_#37iCqmK!GVmHk92Y3eyGoG%p zoy6i2bNXcqSKaW*s#V1cSDhfYoLIRCGdSJx^1{NOo4JLTm(03iDJJMXty8kEb(;Pd z^YS>%&%#ZY0w!jgHoEZ0bP*3im=0PHK)NzxDo@4mwUCkVLI`tlx)370uj}?VVtDuU zN8kP9BcnDH$>czKrrA*(T)6O>`+m2Z3?*LJ`|1W_c&C5e$v=Y_rvHbNX&aBB$6gQT zF56Rhj7^c&FjxsTYosL|7e|V6+tij8d|QY_pFVJa^g4LvHgasw@<$%se39BK-~67> zZ$Es0J?8{K(tLU=PDyNb$+;u`bF&MGS+Pj5T{T2GlWBsnooLK&B%&HZ-Sof6JP>J= z-b#81E2x{yJ4NOp{#nI5X`%8nCVYj?Jn@mZ_(MuMApGV;eX5b%EIfKJC6TgJV*}6o zW#nDO;u5J`f@MMFwP(&Kr8>b2lUp?SSYcLbBfWcns*mtAsXe=F z*;&}oW^G)g3Me-)Ehy-ltCLJ+18aU+izrzc$u1JgYK78dB>e~;J)mfSQ^Kl%-9qP? z-OjQCtJP+=96fuzw;*P-#R|OQ^+zpsI3+A7bGpssR-15VNfC<+dzltn0rasfNA1}~ zB}Lixqn0ACr@&^h>-1(i&vp)67()TLY(H~S87Gg?{zCH**e+*4VfAi<-+A%u@4@yV zi>GXjC+iPd0nVtUlwBhGg^}=bEfJnLb&CGi;>E{nYQ)blA>GCbBS)E)^S0|N85>L| zF;lh%+7V_5*cGJQ>QafQEzdNaxpMmvN{`UFL)tRGe=U7=)hhbxTIT4a?P54yq*$%G zPPvTZSb$z>M7f-trOGq^R2r1asFK3V5_tr%rq@ew;K6Q3wP`sqj25cq(AE~HizdeOad zro!6PRjI35;Xaw^A;SWiY}**r0VtMp@6ttNQ7jtG&ohY442pCR9h8?JjmA)~50fL~ z5u5cz2FMq!wn%&=&u=g92P{8Xxve!f@X8p;lNZbHyxfui2>J4-ZMrLJ5%}M zAJ+=24zE4?`19mdR4_%4(~{#k#NDxu=j2@ut+LD6~afHj*#A>D(;5 z`*sU56dppRDCux&sc`yu4$C(MD{yzy!#r;WLuR~CRifOA9SVft8i08R02pDz2o_e; zkbG}&>dO{k${g}(3w5vHK-jtKxUg{-bsq;bAKS&Cxr;(I>74u&mBS)EzB{Z1CO#Pw^ z0;sSJF5Y-miDR=k4tbYQ_neZmZNW-l!%r zZL4?tyi3IVl63B8_qEG=AnD&yJ%#7Kt1WLrYJPfKdS3YeI3jMK}mDnE*Ke{&zGPN%oT^ z57zhIw;@mcAniit(k8OMEAi3M^b_Q}h)hP?_hQ^&<3Gj@*0l0SxfD@HVCB`Nq}z`i z*-p2n?uF}+)c)hg@gp4k@u`-Ur+yqV>^SirKhEoS?@urAc|9|WBp^xPbxf$?OWwk) z0!NgWKTzN6?)7=<2Y#xew~_s{sVn^$)$@tZKB&&Sb#L$b2Y>2Yc5vCNd?T?u<4zxB$)ducIXk7H@JUSKA|HLz#}c(@atZE`d;s*k4AGE2l#1I zY;mu1t@k$Q+XqH6l2 zYk5OM?|p2XC6fTJeb8QD8lkLMwwuJp_6Q&Hx$QE>UnC=~6AJE}sv(cxS#F~F(OAGA zO6`wlhl(AJ;!t*6XbSn^g;GcUU@E^;STXgfsmpCJY2fRho4hO%a%g>yP*gF;4u7`m8LAKH$+L`JJPzQA6=$_nS`e= z*!YnV0Io#Vv1Rsd@L~5r3|n8aNE}x(IuJosqEekwYSm`78s5f4pQutv8jYHM0uOd7 zN!cukDve5$+MzKSRN^AC5bss+Z6~y7RItt=H3QSQC0?}#j-}=Fcwkm*m8Vp~%~lgK zmqal4Dw9^JpQ4x4St?0X;(?@jR0l(}qRN015ue+IPvN&61;VGdO4L27kq}ghk}69r zA(>Juzmt%w3@^nun44{_@ZxKMG%0p~7t>((ooQBs-4zD}Njtsmu%kWwu!)t6BTr4#Q7kpRV%HWkH(X9*!9AIkA zNuZ()V5iyuMsn-|scH{0dbS-~E(sA}Z zn%<9O+vy2Iit4>IASsDrGORyjhVy81vawbbIv4@-Mo*ZB=CF>Gkdcx&utn9LY&cNfxr2 zLe%L-UY0>HQrN3*VeNa8*Z?Cd{`ySj+|(8WMTv|gly%G*%C;|o`_}Qo5^=}6QbN9L zGOt??r~g*A^&x-o)xZ+OUkwxZ6_1BD%W5$AO>8Ud&jQIGY!yApR+8aLW5a~<^W~?c zRI!O-axO-V5hA7CR=Ggbo*F%s^tvyGShu zAFg!J=ftJXG0rhsx(!G-R7;0MW|B#VvMUZAq>Y5mG2&8jsk$Bu@WjsyA(muIM+C4K zEgeZO^*Qp3@2k%{sn0v{=df=B;7bp{nRR>*Wb8ehg869mW5k8}Ng?7qda@w5;AFw@ z;rPlepeN-EN~3~YB}{z$RQVC9c<9h_3`3l9zD&#T_OuGOU&T#BKbfE7g*bHVEddUy zpB!AMA1uOcs5JJ3t28#!(*?P-%=z*usabjVp+lwO@*}6j$Ca?$0tF2}$G4mC6wVoF z$Ky$`^E;|VrA2@h*0$eMt4~fOW*c)Ny&4er^a*c8=;IUZJ-hCEpiir|ZEXp5{n{33 z{HcHy^k+{OTs0-8_v+|~cc*yR$ z>CwE+wF34unO|^qaNn{09%|aSar(pk#*UdXZH#u8>Z0Kp(9lb5uYs)Iq*bo_a4p1$ zbkU#^R!JK7He6&&qXrItYWnOa$M@=&j*|NI9i!hRnyvzm{;Z(jCu5|oZL2;H?CaXo zZcnha)vrmD{;7={H+=}$O`8Jj9tH${*LN__2@0;YY2Kr4%M_a}p^g2a9{uvxyKcC> zs`%dYwVa62#pXD#7$de=GhpLf4uP(nQVf?1wNhYWf2v8Q|VcMRw`QM;Mg zbHLStJ}D_(9?Z?Thdj<+z9%R5!7eGv$LwYDc*|^ljemHX&Gm1HQ0gyY%*`y!*g?$( z#9y60U7BGx+o|20j^iVxye4)(iY?OxgS^JzCsKYBF0|Sz7HdtwCnIE!!ckL3)1GFEk5_ zJ8al-)HsC9E4XT&^Vg)S1+;g6e&e`Wpz0dNnf${l@f8d@zTIdy^B_7%!`Ez}M34<@ za5m`wpZIEuk_Bb(599LqYm#{m5Y~jFBCPS3;~Ok|wbSTlromX{4F+=_2X?33g9rHy zGIsOpW;EnA5$wT6D)|Kq#AKENr8R*_S!RuFUYcPk%>cV`M5+)J7!6gZKKv4m-tN6uNIJboG*Xl$|Xir#)+!#s^av}zaS{1Dth8l0wY;!9{0DL zhYXN^o~it=MZ;)xK^|aog~%%y=A{oje@+TUJ#{Ry%s&kq_SYg)InMzs^8S`-^sr&b zs9})D^@*zb&*dZYu@{UMrPz!z6i~xLgGH8_`VJfR_oiW{PXDaZ@i7i{!R0`QeOHN= z4j#ZN>sBC#tiy!0Nbu|TcLL`GS8UTohl8eaR;hYU`Z+i7ytNN2>9f;8ykCJ)QZOyV7BT;;jPKT+7!|`{{uwi6fB?-r!8%X<; z!#IEW_?}kZT(ETRa^Jxk4t9|`rXH0XE&^&thYb@S)47m$9LT+=!E)1-1m6ISfyZB_ z3vPlj#q)1MhaDdOIxNtser%M-;~gF77vAYAnc=t9>aDJ^lqZesk z$*eu2*k6~Yu#&f@fF z^5NIIeB3x9zlx*hJ8yp9F`tT?&LcfPr(e&nGOQ&&2MfiG?{p&L3zNRG}86Q^PO-0s?vCrUt>5PeDJ_oqu*D5?u?IH zmQ|(E%BVh#w_K`E>#Gx0m8rw4Nm>scfN#~8t;4N8kH$Yu9=tBzE^BXjR-MLMo>iyu zhNJ40N<&p;>hN@)RF%dTUUg}8c)q--3Eb-Q+@^nbq{$m!Rd)ZHRx7(^X}#rLvphP_ zw7fNw+uh{x<=x$sQ`5X`4DDO7hU+cP3&#Kq_iy+!4}RbF&O;w=d*_i4^3m;|H*9bF z=l#w%KlpW986M@UWmJ{M7mf!%eBkM}UbhFH_~`GrKj_&$Rh`B|-|kR`4#!=80r!q+ zJ#^)cX*9glwj{-E)2hR-W@&Y}9(=nad`%v@{#RYL&OgArjTUct)&!25f7QX$`BzmM zU;U^qtv7yd{?!C7(tvL@$>VEts^?>M{M2dF%Dx-8Zobw8zRt6nq}9^6`B0NQzPzhR z9=)8q$*b8T-WJ`in>sJ`va3qttsgak#;^LczHoi{ zSQUINk6X{~oJO~QHB0NOzyA)`&DZMWrPBy_x=p)lKGy`kFYjuSM@ysA;g(f(c{TZ} zcC&_bRG-#cU#d^5^U@pd>htLEb^hyeu8DkWl1GQ{%m2G6=kD{mb-L!|++7|WuC5FE zeNFhLr@foJIG!gmcjT2;cFody%e!WIbe?H>tCsDZ_*|1b zzPzhR9&b9Tw1Xb}()jP~|MF*5+Cfz|pxGn8W+S}yL-&8HgX7lUs^EFp$2*pJC%#q% z&l^8CPpV4m3)fc$-g&ClU+*+`w4?t@o3H-vLA8f7Pe;)|cwjR;@49=h5Noywv4foveKMUtJy@zAq1}%TqNS?z&QS z-m3M#>a^9@gPP>g)98An-`9k1dfL0mtIOwZ^7zW>Zt`k4x_N##dG&Jt3k>+bumfB^ zx7&7Ky{IaUufA24#utu`XH{vv?SIYi(qvV2T3`ICOM53g|2>cHGgOU(H{6<~_14*% z!1cBN)#vfn@9NX)`gJ#XbQ#}G9=)8q$*aj%x4AW;qx!Vo`ci#bZ@Iepuj5~pe(Ugc zzEqdi7k*9h=!&fVwLb^31jb$59*obE1okdh1{HX{*+|>hpNF57npjg|Ew0`>k3Y-uSy^SzR9Aa(w0R z?|I$2`R{3~97n&SJapWA>rc(gaoaUrCu@>dOY>joa`XId%Jb#<-Q?BM>U7>+`I^4y z_Tg^yv1WO^^|5AobeVh8RkOT$dAj^`y{U=J_44i}uU?+7{QgV1{~d-~Pw&3m|CU!T zN7qyR{%-iJ=lL%%bQ%4ZyuNb&FEBLRZ?9`QO?S_SyMv|0cpKVO6AvvHI>+hp(BdM8 zqrAM@cxZKRhC9bYi;MJlXy-VGLz3?p4^0qYE$_fuB}8ds0Tfp0>#LR2g-STjDz!gN zRaX>YnUc7bHdgTK93}akDo>Cuo+|%KT#oHZ2@xu80?rvV+PiXPlC~%b>;7?W7GLbd zS2`)D`qLDET3-IwDd}Q)!YRqmISP+Y0u%75n=oBYF}#bl@>q?Oge67%&w_O?eBE!P z(Y3AxySec{k)Ot)UWH-(4&RbTO^EfOYBu`8v@s(F^=Z<$ag#oe=JP=J!F~1nK_kX= z!n&f}ecM;P=xBQ5)ZG4~o+83iqxuhOtOm&^s!uBTlibwCQvII_NC#U7eT|d%dM7Vh z;`pj0Z(6dk)SVx?7#X3HqLN`Wa6<5hEv7gr8X+Ww?wL|a$)FK@JrS9g|ENY8DA{(0 zbw%y_vfTxql;ozWtC%J>9t7Ill-yxGQwJN{TY$YB1h!rJ25ayv*hL`M9@4mWd}u9e zOoRcuizNmpHH=TQT-Ywelf2Hw0loV2JKJI=h0=`X&9P_) z3rvE7Q{GCFYQ-K%GKX5XrCDy2W*oxDQr0}3@P$~(S=Of5OsO`p7$el9Pr|XC2@XNQ zS!Uh`qh!)Gor^Qli#u)ELhs93*t_?_EOzten@=rn-Fop;Z{8#!zpWZ+y#E#H#JaY| z5v#7VUt6~mZwz^Oae4ZpzC%2YO5w8dqVZvSNJv8C*k~FP5ibjVsmYC#>VwA4#eST; z`V|M7_2cA}f;i|Y&1-c*rPf6rjeaX8Fgfu+j49QZJWEcp6&uT?M1Ul${?8(|44h7? zQipw{_z^D&Sloym9IgBS81cR>TRIh|XB2l#If>+pa55 zf8~DT$W`+HJPu1Lq0FxL=EHXHnE~Zwwh@c!J;bBO2XwPPKPAi zVlpk?B=&JS95OAXL)fQEDfw*Ojo#&itdS(3j zZ)sO$yN1+77VDcQG)v8sMO@&W=jcM|(QlRQv@1yHt`uJ+m(@J(HMiLNhuk7JSO5#q z*Vl49AkFi#g#BjJRkiA3KjWq|yXMFTdGE}KXuJHCnS*u;+0FKDWAihms14^4Gw zxVhl)-Blo$%0Dc$@%YOkn>Ovl-)Em`KW=bdAUS9b7BX+aMi@Vq%W+j($N_9@|8nO& zU=!mdZUFg#VmN{)9?O^Y)4Rl>B%Pfg&Dep3^YX{%be_5VN&qds962PO24cdUe(GuoodYV^-aXCmwj&2bq9;qO826X@O=Qpq;Od)Bu6C~X9Z{^i*-5pTI4?V zZXI`Vwb(xLfOaqa^<0ti>PI*opL&A2|Hq}7JGlb1N#le5;w4?H=vW1=P#DHXEM&@qMA zbq}m~PG+PrMKwac_-1k!jU$X74bg`7v_5$qKgfQ+WA3QlBdw;_UW8^?TedS>2DF~| zMEA@_jqs>bb~s1USzt-)ogatfA9T!%Tk}*OD_f@{`e1bHi7(}M&GZ*nzcHsnQ)rEw zm!e<;hS=O*uG*&AV|^)F5Z8qGVHgK&c0x>}MBpJ^j=9KC9R=jo)~ciPPeEnUITTi7v0zU1|Sqj_9oIDW@Mud`rizXVEB7h9vz+6dXCu@~l_UAkmF$IeTup**PJ zI_tQh!S>9Pmwvuv*=I{x>T^Y^N|T&QmG)tvRuSDe)`srD=HyhPH#so`XD8U;$*m$S zExNSsHw9xOuR}qmx0Xy(RmT)~IBGLH{Pv2MDI=Y9?Kz=P_Vt!&Qx*dcVy5F+1i8kr zaUj@Iv5!3{jfCt{aiiKDxV&(4v-mbF9(oI#t1nLG9ILEa(IjZdf~A87n@oe*&zg-@ zYgRnF@ZMl{n6w=H9%&E*JLRfg%5O_PUN~2J{859_$yKfB+P#BGi;kql;Jvhgt6sV7 zVS&%!>~VmQP~8S=}gDa@+KoG_|4nKs9oUl8F(H+Ag**g{{{a(Iv9OBWFn`cI3|{ z;%to>nteN9xQRVYxYw!er>wQQ>elut+^Atqzb%V=Z(85Ei)zvCH{EMm-=(wbn#MVQ zlP%%i<7^pQfvb(=b6&@IzsMtRBswA1EPSC~Ayc0F7L!aJkddWH zW%%02(sq)ODz35Uw8f zgHfJHs6=*Xl`mmowYR)02JT%LzWvcr%l!-n%S!|MZhmy=j=`f|@Cyi9GqBI5p;f(- zOzOKQop$j6XI=Mqy0&jAiPUgUmtOo*mJIiFCNFRA-mZltQA4XPJ-2toC6x@V9>9L4 zKeJ!AlQ9kgXH)I#{-4nUTK>P#Q~o&D0`b7zkyFf;IoQ(e1Ve*d$4t=AO=#_Ki-9=! zsIZT4UNt=xH?QnZ{!q5hUfG`o(ynxe&Ox%i`zFUf_=sIS*i#KW7pXn~(T!Fq@Brt5 z9>?}{o;eqY6Ew>tPH-;Jt&~i~@?w(aAnDsr zD!GpGfoD!`XD1x&b8#vkNT{NWP!%xDoh{tzDh`+Dyn#9wuyGu;4vl^1a5znRLFA?b zz+rnTsH#7;aNa6>B~63Uu%)A0Y3fj}Pke_Mmu`(scvOkI#X+nz3DqJ&T=nKo7`Ua#?QaNV7=V2uZ8%Z3 z8XknYn60s2K0l13U^N84%#AF+SrHuZ^1wcCJ;{a4`L9ca?%Uq2eM=*^r(i_;mIgD- z=>xhfZne;5q}$IL;)AW%RRz<~x-&lIkL!qNI_F$aH9|TX<@Lr#Bbk!f04g7y~@!0C!*I=6p3L^ugb3*1+lOa=6McN zNvSNfvsx(1;Oz(Ojhw9cOB|YJ09+0e*Sqq6q%qvp`Mf+#bC!0p6&ydGyx8z7oR5Tu zYwnU{D*uNohcpJR(oW@NGMbFkoF-&deVSSFMLAjXY1psuU9j!4>pAezd>VEc&tF9b zQTVE2C+x};6;JFB6&OnM1WN2f(xAxH4j&Z{VWI-^IB~ZxL12F1`&% zX1mgre>-2S#7V>FT!j}LmHSX3)go!ia2CfMT@Oxp@;2lFB-Q0KJOO^n? z<)a?mKAiBvK|x8cF0Boc)T%?*?Uh%~_HI&mx#=}6SJRN{ioK=Dp)cr~_At(5mQHCj&hh;1U+8f(-_P7av+1^lb$A8Dkqx#6SI+Va8mzMquR-U}#b4E|V_xu#Risu>ae9q}CPbxJaCqE!ab=k9CVEG|Z3Lx^8MT=v8LKJC{hCpL)qvB#yDxMrzJOD-?k z-$AEHaShwG%iYvGb3jIBX2yW@R+|R2zpqi8^Qu}0xy|?tb?0H=fSQxTF%V=4yXGfl zCF=bwHiIRS3uGFb;d~aS7EhbxkhZZO^77aZUyy=X8=oQ5RokP(vG5*_Ez6pP%{;>; zlAa|bCGy%srinA1&$1b08o9s{C!w)0e!-?cvvC%i`vr-~%X8Hk_JxX%KR@xo(;xT1 z%g2YNJA5%DV_nX#W*o3vC__w zJn;?Z0QNd*L2b&Hl`y|x^ZRV<%NBm|cMnuc)jqMYDxP)t{@F6N2)1EQa_t+t>SE)5 zTje)4DR*N}li54utHH|0^vJyV^+|VDcM!ct$(}!7{F?btbj>l&v0+>je7`YXUgAp@ z*PFY-!AG#IKhY8#_oCF>$fQ@d!Pe_w*?|$>Hl-~Wm{VjI4SKqcKp>77b zJT*U~?mBLNbnrTV?1Qa3kE&Pce#hNPKWwS(SX=z0FZ=3w_0yXN819uRoXpPTCGKx( z9eCB@l&EO9FQC0x=FQ^&OZq%i?Z47j{@k}@1VaB$lDnHXAMm;Qw-c6%u^Ef(~G%}f2bs|9rWTs`kB-s8fl}-?O9f92j_2e`WB1Fhp?A@S}cqUa$6jZc~kJS5=FcOPD>{MGmYzF`l0!nd&JXJp!>_PRhI z8cje)RSDk5IjPEJ0`_3c-&CG-=AU0wdq*o5VU;i)+~6 z7xOGM)zDM+=Xnq>k)mcXrV!}}Pgg!${2Y;lb7g<*j(&}`aFEz*1!O+Y*AZnUxyn+D zLI?@=FDEB?N@Q+w<-W#@-7Sr2EYk15zCEfyO8*rA@cs87X z<^B^x>C?)5=O1FA807qY2rZxm%3RUnyzacNmEn~aXLNy9J@;BVLC;9Tl)2J%cTS%& zc|K0JmJ|8t)3=`0isU(IfnMTm`Sd(I=UVA!H>xzu6Vrf7KI0T*P{~JDV-RzgAk;^n zu?df+lEbkvd{!vF`3C`$Sqb{DdZpcA(!4Sa(&5f<=KHbv_{ZKTy;dSUm_PO!e%Xfn z%lsj}BCd?jCp$|^$&Qi|XX1GLlQ&<<=fC4`eVjl3ivEtA7@vQI^OOjQ6(xofh6IcN z2{``FmMHcS`>?&`--@l2^=V7EokRc=+KI8=JNw$gu$X3?#el3p@ z#pxcy1k)@-J&sj`g(Swyf`v%&Nn;S-AW{h*St)0V;$(_l+C&crAncG5gi| zJS(Foc=)EC74XrVNW)?Gv9ow6CiuhEKP?yyY6I0dT0#b}H~5Es;T*Id|Ku~wxOC}K zHq}8J;a8I_;Lrw$0p>A=P$nJ_sO9Hjf{4hNv~An&UHG?q+cx_CQsuOol{Qn3X!$F? zaN&XZcHn`ofEufv8N?4CQqfUI+7a`I16j~lI9fu9H843Ogg#537!Vf9aWly7C(#k| z8Kn^+=A^`)&%YqCGzT~>YIkVjs7m)D&~4#SU7`GpARf%qkndv-#3ON(Ge2giA=>Kj zqvS~W^cgdzm$Q=n`%BoOmtI=L$N>4w*!=Ss$BtDtiJvW9`uXxX&o4ir(n5u!>uI;uCu9^(7wBR06X1tHOhe@-@= zjG~{x%1`{kv4n_}@B<5E)7;Q-f%f!i8`WMkB;XDM?5oNi1it;RsMHyrQ-$(l1HBX za?xJeP5E`s%$c*H5OKYU}VZrL*Tpk_`3VEnnz$fT%TvJPe$Po9WOC+D03nrOa zO^rP22eDbMC^0E@cboU;&dGgp@TitbdHuEifxTWFytCKi`}+S_@WP-?&ELyvR>a8L!$Pwg2v}| z)W;d<;Q?`(Q&97OT*XfnZN(773d~6Z)6CFJ5y~ziOdSE~>KP+qLMT@#gj_W_;5hKw z=Z?NM2aeIcmwu)+L8Y2UCn`AR#)Xfx2Kex?Vr0WfIy#iSduYh5OBCwmNG z&SB(xiF%X})Gr=q zISU9)BK&l3oPUgSovHNBp+gUry}^EGn@KMc^hTNUn`@=VfByM+={4z>pKdk$an^M5 zHp#``+tZZ-_C0%#w8yfA+N3>uPo*Dr!cYhFqu~oxeM}1skQU#MB{9~7qnLDg7Q=k0 z$G?BD-SeZ^v}0`AA^D8cB>r=21^fMmW930WKr%yZ zp_%l35~7?Zvwu)NIXRcEn|tOH`lGWa%s9pnc|M&#!2+7AB=yK87} zlN^;?oIKczZDzl}Q6}0{a>+|SLWm%i^;SBv-qX>rw%{b;pyNqxH3M-X|jB5XGIycHLsRAECz)*6Zt;d$#w;uOBXsbVAO~Ui8X$`=8IxZ_%p( zKm0;yhZfEtU*}d^J(Ed=#sO+oK!eH8u`)ivjxu(b9b{~NDQQ8Pe~&L?NUJ{c=JxLG z=+U@Ay;$kH@;b8R)^+(zd5H8YKFRmnb8`obnmH-Edp#bGkMjBmf^i#g=g~)M8E&+V zVuC-XCI(!VJ47}gFiS%{%J9Rv|NVZBo!@=shjUlNxqa>#?4lq#%(+5b=^PHaR*J)& zE5ZArX!oX}?;FZX2(=`EG2vms1m{wb1ksq4-G*dmp`wR}9U;BKLN@K5_BI*#5zD>x z`KBhV-uRNF7Ksm%j3(kgtMlwEP261m8qMf^C@i-7sHRO{O9K8!0e>uX0)C2G!O+G_ zW0kt7*^|FF6JF$BMN|2}Z2RvhoF4;jUm^M2v~|+&gGc?>-%}7fhcwZ^p4*M`q8R z`}mt}TlDGk;281PGNtFxyl+m78Su)iMGP@M>sFD~YruiH|p?U#@`{T`&U+n{U+YKnVs8=gX(i<&+V5P8A2WzG;mICE***hwUt4)dCYTmaU#m8jyyw*lN6Nr`YKM z=leYE9A=S@pzgH5O?YE?R%$SH9lp*?jbujbl-g`HrfOgVgsRT2aYrakJ!>-&wN~ml zu5{2F@3hK(d-9bhpIScd=$vO(bckwGx9gKrT7AyBM+8f5o{G2ckoVo7lt`PDQVJe^ylfE5tH(KS?e4eC?cdZ?A0k4C(mv z;8Q({i^Qplyp2bQD>=XlL;U$6npsuls;WGiJ{EX*YRd z>sIA^v3qfGF^Yse=uq*q^a9TNGpn)J*+$6-qT<`|`L~4l7#xin%30b5ECrjnjpi0Q z83ryVQ4}39H`(cw_AzV8g7||`=g)6uYnnHYC$pvgvm0-qeuw=0I<+nN{E>AN=%fwC zp(L@X*keajdgQo5McuaA?B*Xfk!l$*2h|jy^#*fy9|2C@glKaq+db z!3j9r$Mc256$L<5*iy)`-cLmjUCu7`*f;(_7%5m(5=ov~aVB!@hx4LGFJomRSZ(?w zhwnTs4dMk9J9~(YP+VV?mqNvF(mRGZunCDMNz=_7zGO8LXMsXtVt8i=@`Q7llPRht zAB`Til%4AqKIrt65n=mN*m3sH+*47*hwd!4erz88aB%TtGG*zhXt5y*`Sf|xtnF0s z@3!|A(X*u8m8;5#Y}OCj%H;@`&e#PsnsFYqUN)4Ic+!{PQd?d-#J6G}U&7w&Su1}L zj7AC>w)k|^%lqa;4PDC0p4%PAro8=C;?n&wWc8A>pm00$<7)b>PO$Uzkt0Q7@s1rT ze;1>TnuxN4xnJuerhWV8Mh{)VE@bT+cp#F@nD=EoXBb;X*B2Kb0Nz~Z7l3DGewMn6 zXPFsEysx6xF)=e#t<2)OI-{4ePr62pEg}()k;n7c{LQDLmUcSTv^H73=v0&{hCjFN ze+3TivI9lp_tc>L_6gT=lmXs644dJ_n~bDT7eBHSaEhy5sS-1@jfTggM?c4QbgeaV zF6p%N!&sb#y(?-!^b?cV?m_$Kei%)bEViczlF80y>r~8 zfP!~%XUls=(hW+>*X(wK zp`7Mz96?C_jKcL3+dOlCoqC?*LO36!DZmAuid#-87F&EI#*4Ue8Sff>iZ;XZ>K$1z71`>Sc zc2fOO87?+r%h#NY+PH5;E!ailoCEX2b6+8~h8sB#U`z~Ks zR8)ySx5>~mANUC_pf4Sm$AMbM9awYF15WumHGct%GbDiiI4~nY)GC7;PgF@2O=z5G zpeMTovk#V*#I|K+)82~6{j_V`_>8mrdIYweMk0qzE*&}zrY5TEtPjcFxi6A0*xn`M zlovsPhGd9YBYPdU2ax@WFUAb7CW<7NSnVrDil%d1rx(Ru#t#7ArjkIx$Xz1L-4SGXxOHn<4ZU zwf4;rK?h7c*7w9$^}Nadtc1rR1_JsiZI2OJeS$^%X1>ck$R50Q}+a*fexGQ#7a1 z(;uKW#>EU;#=ae#`&GNS@OLIGJsLrVt^7RV<%9EL#x7+)kLRtb^G`(~m!!d5Pq%6Q zj`OryPAl+fEXs*Tp)S5;N5)$%Nd~^GC*GQj^WD{UH8NY2>K>>c{^U}2A@ACY9KDz3HxT0RBzjM!c7Kb zEwI|sBhVj=SrG}QNQ~$DM`dcGN0erRU)Z;R%C=qy1|}-abI6Y@j?nwW3TM)F`m^&C ztEkNu07eJcxWUpqwH=6vObmr@pGGn7ZM6v}%|IU80 z7``+a){#e+tqWKFJX_q7RqQ!d_aG%4$Ia<`FmKw>x335->Uiqzad|y zYG01pprgE{1mClz9C)(^-YYPQ6^)e5?DGZ*$C7IuCe32HMJUgZ6ZHAn&;KuxWUxEMs2H$2_4l~dyj@E)nvU2gL<&T#nXSn+o3`%xFVQMUBu#3Hrl$U7IQ>yuNp4>utXgR2$0u$&=tSpRrHK;l>=k6;~0Bzf$`TOs7X4 zd*HBrf7H^0&xb9UM)F60)L~G2WgiXChvjHW1G>{D7rz-~JB$pu`-mJiysRqd#m;dJ;E4xrKI9mkXmN$X8! zHBF=|SMS=jntyI$)4J0)(SyTgWlugkZrro{v*FZ-AD-eLw3!%JG`xxNhEVjj8wxl~ zIMreci}qUxgOdy8Wx)#@SuWowvy|N^OAl=tk`03+ zMTCThQFNi}CMMG)oL$X3v~Ys6lMv6z$1yP4XBap2G)Z2+o+O{1I`uUBYW;fl)#<5n zzw#L|^Shp%IB~?6d2!_nrKzCx6Z^y|R{F;#VZDQ^~T22B$xA`GK29 zm-ocQ51lZZ=%ynIzD8Y)e08#i*Q#3>m6#ZpP~Q?44Vn_dKvO-PCTmFZv{q#pO16j8 z3M;Ieuq7t4FxZx)l2?zDhwW@KZXiXKB<4h5Uy=I6nk|GT3n~1{AXG`-`C7#PUAloK zzf1gU)nb3XtK^ce-erGQP1;fHLV&TnavP~d#vdiMY>JagHpVAssbI$#Z5GB`{4k6B zm_1Mw0t(3tgIUD9a**Z1q0@&jEZ*uy8K#-+;el2RHyNyQpd4ToO`^$a_A|FtXP*dW zpWGjNn7=t7Q1&wi2nM5IFkwc^6etJdU%$FM(A_nFn?r0*ONFc+rPtZhY{GR)Cy`#t z!*WB%ORy*%XrywL?tPtns^WPc@NDLdr%|3k1*0fe;(0ma{|-+cf{S?#zW0@p*yNz{ z5u{XM*U17h|GL5o*xU52m$0M5Sh^QjMk*a%XBog#bv1+sm_Px=AjKp)w!=x`_u-;;uCStL}2=X}=dKStJ*~3ab^43b_L&s~h z3vJ_gO~rd9kmqwUd<}rVkYKlpM!_U4^Cz)_Io2e{N&%J&PW++Trrl`O3Wt94;W_PN zO%P*COO?q83TRhSBA=9Bo zMCP9K^acT%U0c>PZcl@#J&6mOs`gF&;?)$EPMf?`?OkNuMA$f(9N0VY4$pb`IDK#R zo;|DiN40-9HCtH4GbKlS%{f>a*Su-dX3d&5ZN6dg%;y#_es1Ps=kD7ciMbBYN`&)* zV0acX2o+k`17&l77;6lqv4SNe%z}Ng$}%pLWt4K;Vljpk3W0@miy$qtnhO1cxy`u@ zqYC4a&bNV3C(eN_zv4s8=czwgK>gW%axbO;Cn$fCdocxvDF8aeQ9jMVCj=bQ4B$Y8 zTreF|MA%8mU+87G_!rU{MhrGf2Ejj;LJ45PP9L&jzM5NwbbGXH6(k(jZpM#bwDQy2 zO@3BMkTms`e`(c<&r1tNiv$y4`lVl8%wVb(fM5wANiLB#qeI;2H`bkvqgRw#nDtYh zR=Uy1Q{s=6dO5XHFH`NI{)MI@R3>4IRA?lESvGOagg#y<-O(nn4WT%zKCR4I28&#& zp*#?QPG^io;KRfo$62T2@);aX80G%{ssy4EY{#fZ`qAjpqE;WqDcU~MpO_h zHlv~@f7BK6j`VUH0!d_&B+S4(_M38=Tq^HXLKbm)A%bqo(=XxY>M19B4Y#$OId*G& zVN6U|a;ha6jSX*Wc>8&ytV~s5=t4j(TVZfayt@JAElky|i?)TF)qq7bXk)N;MxDP& zuCj$W(>U+Td+hJd=$cC%{F~oa*}ANKcI@RxVgjUhY;zy_j$AB%&^E8!r4aYnOTC!#UWBGm~C@r$feKisc=VMra&9kQ^o<~XDwTXP;5!SnJ2E+2Yr#+p&n&Mc$Xmb^Lf z?3!F@{xT(ese0++#nXp|9URWS*8GTxhev!koY>Z0*($CYIQWh4p8283`6R!9NfTgS z$qSWw94s`pM;Z$y=rQVVK%r0+9B7tFfJqW~`@rq1Iw5_z>;fwF1$abI;c$=7O0LQL zAN2T}W3+7GV=NBauy(3l|RY=BCxN#| zOSlmd$3kZa-{Dbi1^7Y23_FaVBw?b?h%mQc%jrWG4sj``l{MKhU6>X~^8}1rib7F< zncKjO^v=a?yZ5z+`B}{-bAUB4D9~UvnvBE>ShCSlR{7r^Y$E0WqkjOJQzR1n(1_ao zWUI+!q}CuI$S7ET;h%mO;^3hXsKg2QPoDdVgq9HhFA-lQe93ZI->)bljOLKAyfu(2>eDl!R${-R7IAVt*=4{$ zi|QpNLF8%}mFpKiAO0!7^Y7!_hLs;yEtzJwO(=_Ev^vLbp@s4cQ=tSEFbJ`-_P?z zu)wR-gu&;wY?z2ae_xFXsf%g)%y=wcL5~E1WZ}sPu4oZVfhWYLB#S4KnjU1Er{|BH zg!*P-*DHicBlD+|Zl5$w!W+_yzo`)5R9cAohHXF6lr(6YeZp4M06_~Wq#kKjzbO8* z?0eg0e->X!|Kk*u{zY(%Z7Fd^P@ znwt_-4E#FzB`Ri^IX0@$Kw|{I+L48U)-VaiCluBJD#)u4H$S{4sg)HKR%5ANZ8>YR zY&;H_EGr?)OGr4wa#Hql2^&?yz9x0~2hUL@5W36?9Bi?JO(Jvn$3gP3JZmw@*X1l{ zs(#@XRnDcTFmpi*#*ghmQXwgl3k3s}W1&}Q6Ar0DMw6~1R4Tr&1kv9$!MglNvO@JE z8|iwZ@+K6uApo5OGl>le3a|)amNd=>of$zExsZkmhTuYUR*L-7E?)rgU;)}t&Hy*@ z8sT(*3B6DGfPYH(mXiF#Y1QfEG@^LO1~!ruf*xM?IR=7Mgs{(8ct)V7bFqc*7%K1$ zQ6U|!z@??>#2%P#wwt?~2b-6eUo{)@a!~6LV3lyRw3L>V@cLf9k=w^t5!bW{U5C#fy>#Z-{_og(Y!CaC?I9n%N~DRT zD+K!Z_{$SlZkRjwoln1A_vw|J-0nRFpM8sm&)(b~)TF)YuxtK$y6UfUcOA&tEiOMj z-Q}mJyZ!XLcG2nF%0UV~JfXYi`oM+znN+KLr%v7ZXTuw-Ufj6x#Z_-8*2+ixmOq9Z z-D3bLLOr`b@AYeb81M7L592LebYXCUyNhqBdi)|MERJ$NBdcj+1d#=~{0*ORi!-@v zFlGT)L;t;l&-L9KgW*>^`;7L>^=(|mGIh))LTChA5EUHcS0~;U7icj=CImIMBmn71 z_*bdk{uPjq2o8y_V~eu{8tTOc#}petzFB$9rnqHl8KW~khrza zT-q>rAlWyZb=vv^zaG5dl3J&I{0>8`WQz4i2g%#-kjXMXe^a5j#Sfvf88F}Jp=iP3 zfvb)O0*JpZVU0@Y5OJ*1oPOe5!h1oy&WdWC{lryg{UPlz&%Q>W8PT*7Z`xX6Utg^Q zuXQuHZ^j#G{z2#&|L57qKpz%%8hv0_dl`)WT^oB$C@G|tqF@xUCBRT92aDMK!fXn( z23XMBgN3?K%D;EEF}4xgm_^>JL4Dx`sX35b(QE{f| zM$l>0=GMG6LmhZ?1yMz&6~?qI^w08-sV_xXA_@~Mh2pY=g{`%^%&T%*8HPPV5#AY( zp;QELV<&~Ira79|!eguv=7p#5a^eM99|J~^L8umTtUeh>o+l5H6@%i#R?nWbnk!p5 zdh#@C^{m;e!{P_Ak!%Z_EUs=88{3F~mg*N+-1a1SbzDlfmNS+uo6#|w?PHhlw=cUR zzi-(sWgK~Ra;qjyTD8o`5a*~DX=!NdP&MTPs5|PIlx*T13IY9pna28=`~%?M9CEhe zW0aRwf7#V$^LSz#-BLn3DZ5IPU9=Or7{eXP2wLdizQR3#iT(@5oLZ{&p2xv*KJ#6C zI}1U3xt9hB726rJ57y$ebTsroH&9CYXC$&St;WP%`W1e*-2tFoO5Z{Pntcx>A%;jp9ewEUWpzP(Nu7At6; zdnNIz7k^YNR%#Jz>9uR6>^J(4vo)MO*1?6E@;&#nJjWBo26*7^n;L~Wc8h_|kO~E} z#NEhPqI#02d6S*S$8s>dt~LvD%kss%QIOA|httpnLz)DdOu{|(fVLQHl4d~1C7crC zY;_vB(X8-A7xoa7m102FDvA_W>Sz$}WUAdvlclVm4P8b!S6EWH?I-dLvw@&yIiy=7L7(^2-wy5a%=ukfz8&;dZVO2eN@C^E{IZYvg zSXkRHo)~5Xhldo#`bURh5D??aXz(yP%YV~3c^Jvevo%($~zaf*(o@H}R{Vp{m4%X+=5d^#LW#{qv^~fdGhd3@B z!T$0cND@9FM=IN8@h{L|z^H~lI^zZ+O5nKB+tDpM#Oo>C&>a*UllZ7Zs103e9`9a@ zhJMW^AjVxurL_^&?&eEF)W=#8sqkl`W32&=EX0@`ZAgia3JZu$Xej!FXwDq;Z}`}+ z#vT-7uNBpBPdFhB#6Z8oFwx>~m{B`Ep)k5ZO5NH%eBz@CD!a05SsGJN33bMWLwe!2 zF)xb{@}bHkm1AHZ+0X9vVj(O|YmGy0F1B{u-xI{`No4DcSIwT59*eG$cG!P@?eB}}1X8FPpZGSs% zLE2#ZOg`Ed3Wq_oV)T!1rA+?VA0OZEk%1pRx%-=r{rje+m<)!)$BrFNZJyaSksfzG zWC~2U@BQY@4!+uDUY|Z`S<&IGnvx)PYaiK~nl-RVzZ?Y8^7^OlUnypI>}wgy9tKUt zVhh?A@!CKUl^dE@Og3HLZ3tVUysOgu3Eq#^-Xky+LqcTdZ)DRRdG-<|ne(KW{Z9Lm zQl1}P1jr{tud}|pr!Aofg~0ny@P4%R9z7U{jE-h~f7`=;UqU-`yjFlQ#qxEF0sBVs zdk1^p@EmM@O5|lhaAw0V#;@1&pIy)K>-8Mt&}#atKF@KlKELMkT!-(SKAD$?(=F9p zUhs7|-sL9qlt`~)<&|EC|5IhTGeMUQ{|AnhNBU$A0dUk@9?w%W$hYx9hlANcFF0<# z;f)6z9X`0=l|DHVeDlGd(5nauJoF`Ko{^)srG`S$=z2^k~!u+_+ z6aRhTr*L{zKKtSi3<2L4f483a@>A2R+xe-<#q+s_r-uLS`l-?Di+_q%Qy_QX<;6Em zUbn;1%Doexed*Hm+><|^{PfiaUC({fyYU1@RmjmdeR8BGcTfIsz18LGnO=LY$;Fc{ z?YYJWU%n-Cje;CKpKEk!aBkB+a-;cMwV^;t`=$=x%(_FPNv z`P`Eax8tM1@x|XQ7rcR7j>1nZlh1@0cubD#evx{giS`8R8Svgu_4#-NkQKciJ|HIB z)Oq2S@TEk%x&oLSVa>`}1tC}!ypcBH%YQe1fBxbn%0u}zxN@-yH-+C<+yY#*?I>4W z%cm`SFbN|)4P5;M zgg#=~CLg!AW=c<&D33BH{lR$!dx;z`!FtVkbhlVrX+l5Ka1$!N7rSvdkt0;NyqpxZ zoMi8N(owzVbHP}P13ciTxOkSJ-q-iO_b<`!`MO4=PuK7H7%%R%xqmJLjgB<+{Tz%F zu2;*?u1w!cO`oO81idrqW6-Itk;6iy6a;qhrAnM>@!Ye4?^xGhiO8hXz5cj_HLJkV zV>(e?dMrj`=`mTwW~_XaPQ2BSFFIDX(U3Xp)@+R@7SM>XnGgeoL_lNZy*oaE_Z2}y zL-qaZ;Msc|Xa93t7OGxF$-nd1a(!(Tyle~aN=s1#4h~&1w&c{`gZIg+%6jxDJmw4$ zaYo2BK17YO+99@YqYAr)dhhC&qAXAj-9eZVcD`5$e)Vy$6M2%DSU%i%4w7sKojOHSU6jG zi5wiAKX%N<1KZ}U4~svx>IiqSym*o5eQ$+zbm;^7e!#aLG7vp>1ATQ(x6ujb9dW6> zvpc4fFxaM;#Dfm9*FkHm{cz|5AG1e(Fa+?pKAuzc0kJf=-;VqG>U(W2Xgg$8AH22- z4eVyWSW`1=tZ;9LyO+Ta;KI~@6XD&!LTQ;<3sJx_M2vR`(WG+a^mbI27{o%^j%_{o z(N=K-NhA%}S$4shD=xTx>eO}T1e9$8!{6d%`*UVsd=+K)ck#Xs=FejNGNkAr3ra^v zwu!J)C^XM77W$)SiMRvTL{MfZ^i-WHl9t|J$JlqI4#~Pv!X81i!%##{ZJO zVGd7#cXr^9{89vIZAl6FgdzyrVhH&}yU&D%<(q6dZSYc9RO1 z43=bZy$)CHgxQLCBK5N#2iT~zH>kCaW78;)3q*1I86)E`zH%N>#2-&f*q3yFE-O|#?=BF_r zdK!H(dq85LUxTUi@=>%IysH^@lCKycAON^^!W8ELdbSySCW|6N^ z<)Ok>zGyZRm!?}!jK4Nu)FXo@7fhaVaMXZn@TLpnc@ zH=hW-2TZ*+y2E{h{k~vrJG;GIyXoy-S@8SEm&#U+_~X(}wl_O7Gn;=%hn<)H7_qAC z5@=gh@x5`Kco;i2x3Y)YggPb~6eyW%he$NRV)Aca_cqER-!j$?c}p@cv<24npbTr? z(FWE+Ez-mOuaF8`d=&_+A!<4QicIHCDvvMVm0qj*5@8*Ai%oVD z@gzwvDPbpq*eWa$|Cr4s1(;}UNruW@*lzX%yTW#pjxY@|hv~{&4QV0!i9JEyAdle4 zxi{F8yxcLcN#$5O?8nQkjFq({6HHC=f)VqdfMEn+6GHP>Y~H-0@a@fH=$YNSPng-w z|KYGfjGlaZQ~c)YCr5tzku3j_9VGj)c-#CBJBjtepsImE28vAGWZgO&XA)#-& zw$%9JI$QS5<{6_`?{RIT@!|S$|Bt;l0k7%m`oQnr=iGZEh|CEga%Cig$c!L}DG4yHO~}9)m%g9HIGHn)>Lg(TWV_G4!o+ZlC$&wt$pszptSGz|9{`}eE;Y9 z-oBEYb@o|%?X}lld+oLNUaO_{2X2kmui`pkjtr!cFYDEK;<$qY+T}{O zy)Z;v5ln=Z_ry9P1y9bn<7U}0Jt)ichE{dkwhQ@Nwy9kB4E74)OSaX^WidR6RltTm z1&6?qwjb3=*F{;eKN*7>c|F8^(?c~A_|a_OkE0;)FX1o8EW100bT_uvHZER#PzztI z^c3SpRN|hCL)u+qTdyz9KTAO*#C=5dsWn&R+=6*R`l7AD;NSwRl*_3uTI@#Dp+sLe9 zOnTRqmBwvmmp@pXAFX^mNVGilDZYn3b09w(Yz-MV0`0=bHW!)<8KJ6L)entgYEi%l zBEdDktSwdqVu?Vmc7O)lgRtWO)5!~Wh?Rw-sGibW+jvl1w2BJ{)lAKm|3V}n*f#$% zza_@0ZH{&hHjHBM{=tW?&(*d&_0BM?!1)P`>ca8MYh1g=HeI{+Z!PWer=MQtdH9KA4;931=Eoi|KczA4ajm|3m7lqG z_3AY(@v6GKPOq{+5tnA9YLkNuU$(yefQ3Xr|#Z8 zg}Ry{NzHBXE$IV(0d;b>hhpHv@6Vt60XcNUPvU2Jzh915si)9R$G(`0g4}}8esIS$ z)W!#J348-h<^#}Uc%u#~m@4@P4mq3Lf+1VwkPESc=@Y~%A(~6$*$v*j$~bXe9qWdA zh9<~=JIMf(l{iQLXydQ=Zv!QmLe?u++wXwaJlo6J-@C~jAOA>y+W0|_1Y^b`(>lJ2 z+#5pF9Wp3whg>M=kC|##Q>IVX9!;OlUG(4L+4SjZmFd&-$K>_tlh=E_{K>Y;U+>7D z+I0C#EGYh}$y?jEzoo`(7kArvmMiDcPJFi&_h{yC-#(v5ZDqdgJj#{xY{x2XkI~+r zKHYQ8nl;8|_#qnO2kSELk9qU{;P>YLK5yRd^W{%bQ^Eko|3!SU2c`9;9a}GDOxu1j z$EQ-I@;xu?n3i#2`;JSUrft8}qe7)h6?$CSKCP3ux<-!kg6D|O;*4tW0B&loR+%nP2rNFtP$fI+8Ucsx?G|=gi!=b?a99Pwp6K z2?`3EBl7o)25RPFv8_p~`{K!GS($4h;}h+Kd4)DeS>ZYpxB zNs^lXxgL{AsYU!{sYnn9%$J{Gy)0Qv4s(l6k3DR z@)qBd-MJ6E^MZ|Dy1YY0lUo@>#d0cLH;KA*olb-$Ir62YcX}*!on&^RL&Rh-dmzM) z%xR@J8#|Hk8CNl}(O~X3A4#rm+|Nqg?$cbY_sI{xU{an<3{~shII$*6jxXpnHOJ%* z+YW0HT~ExvGhaj+)1OOQ^l!?k z0W+;Pr*Gy=kVw@1r5*A(04xNK(DkfX< zkL7GF`Nwj$mi%KmTTA{@jx-iL7KQW?g^(FLkB!owff2#F&g4x*eUL9@%KqLg-^2cq zC1%p5i!ohXLZKoYuPmdj_~$bDIVH+~mOwc+apCH?c2M%1>gmbX@Oj32usaR7`iB^r z{uDv8Yt28>7WG@4X1w=x!zo%jzI{qVS#|}=-j-$kkunYvhA^GWYd%X`+;34DUxBiG zyVee6x#2Wl!y2NjLZ$T+B`#+F;L{T)PAuEAtWs^Bk}MXUKQH^dL|N>fknx1Pl&m2N zm+9$bY&|dk2pfdLko(i1v!RmgYL;c-0D%gke)EgpU>eE6n0{Br~w`B;dn z5v;~_?)R0gyrI34f_a^I|JU+7y|DaIy*$O^qjSpe=uwPAu)iqK7PPB83WN|_^`;NR zIb=G8%yaDVwRktJrlj$ZXis`Y-fGv6L4euOE_HDejdXUQ%2syRqOa{6e)8_((tFKbhT-W>`98iV!@uScr5;U&g;FoN$m( ztVf?o+3i}b06&LKnmoDhgz>XZWangbd3P6^q^;E_po^=7XF_QI-m`Cw9_8j1aJokM z@~Nrwr#DMk!Tyz>f~g2Gaz&ak#<-Teb@s|}f!!YdN00BMS8bm?Vr5J_8i7iENrJd6 zzVDiy)3@#U0mnc==l6E8U0Pom>u$r083&af?3N_r>nE;mfv0OkfrP24DVq`IXcOYz zt-H!I5%Nx)+9GxICamYj$n`vINYFP;^is~NW666+372R|4X)#$EyV%E%Gy3R>3_eee?gEi zw!^P|yD^7)_pT6hAl%)fZqoq+8aG*M?LPl6uIG0J$zJdIG& z4fN0d5I>{+&OQ^Nht$j^;@T4JH`$g!@I{;>Uj#)G!>GnMDFwSguID_^9(l8j7Inzy zj+Gr&bof6{xz8@MEB2M0qOb4x4qDhL!}R6di@NG5eThfQJfo9Vo z+BDXXWN40BbpIelM}$jT52uKb9Tb^|%({|GJ}e^<+Lu7Rx7F$T9+_#1gK7zGaiY2Y-YU0HFNIXJ(r5}kyRTqTfAXg zSgT8RY+njbf;z^&@OZm!>qaw5@b2hQ&1&N=+hJd*fNzKm2p<>4f#Vc80U`!hf~N&5 zAX0_~i=RS_<3~ue#F+c+ND5=8c3s4}=YbeDB9OcbBw@;~7eh~6d#udK&k(o74HnZ| zOaeyYMP=|J1Sh8qfv=V-PZ!(4VpJ$4ml*LUq?A>#*c+-D<3_ZHjYHhe@IQ%hR z={)%MtwF^lCBMLMY~8wJoA{U)>v#0b<}Hi)7a%QW@{x0j{fzdy(dg1go8HWG(r3bJ z-A786&#!9dsD0X(ax8uJqOy7i*A|IyXq%~p97`c3#*xcwMvrHC2G-h#i1e3~Y?ch) zS2zZ=k6)60v`NHL96w!G*xKMqkseC1svMcWr3VOg(0~43dSm!_)=P9;bic4oy?$WX zSG75PVyRhMD9|HB`Lq1i=)rAsXdKzwMe+;1Z+T5~;H$I;H7(X(u-%m5e{EZCuX1Ns zonF2A$~EDxcNl9j|E2bgAMi1ITVyZLJ}%^elp$x)-n?4&m$xpTP~ezzNSW7@no;(h z-dff_wRy_eFSe&u3ypFsZ1Sh<;#Jv+L(bN#vn?QST9mCblhhOFO6p6|UiM`$`6^!5 zV!Z>M5a*U6an@tSn*FLaKc@b4Z?RW&l50b{6=$zLi$|BXqItWUCDl-bAk4~KKRNgK=bkAdYD$Fg7_Ul zTPZ^G!EK23j6kjVcR9kgs&pHHk*`PH1RF-jL$j8=&%|I+0MDs|bZtY%ZRPzQBWi12 zp2>a3ChZ_aZq;^B)K>M(Cc^U(_CR`~uW0_ma7Nx}p!(=SJ_TXsJCzWvYjdsIHvXK- zo&@8wQ77ziy{x~>N$bC?2uzr(8Jp#=<@c#?n4t}5TLYXJt+qDGSv5BL#f2?f2=SIJ z#?NkV%I~;MZM6yIbAk5>@Rr8M@VL^+B5DNdXuWd>|2Mgd?>4>IrMBJ#S$D)3#u^Y~ zs1oh^GAy&nvgUM_64!I^nQMHU>W3%-h$rBN_yV4O@o@@fj3e)OO&VW%_Ypa3>?u8d zlGlbKh|bt_QeSr^&#ljd{Kk$WCo$`!5yr(*5$Fl}`oH^k* ze%9lE&m8Y~>a540ng3qWzMcyo=2EZyc5RA7TKlDo+c#IotQr6Df~O1Kej7hN9=~SI zuy#`>wHq!1xAz+MW-sEiJWEXLVR&5wWW+w3OUF_)gMu79IU7_7D)~bR22-m0`$rrt zKA|3s2=I@POcFELC}NO(MpYIR{S6+))~OR)G`+^uNsNJ$kDp=hZYnv!vZf`ULAT9s z27kMUv;&K#P)pID6ok|ZJdBpJvD}G~%%!>6m}i?m^TTX^EPg!8!`0Pe*1zQx{P^Gc z)8l_r+70Df`|N4|y=INKkB@hu)9-D1dfV=*C*E?}F~dF-ofoA&0eevFKi6h!$aU?58Tv{-1p56{YgfHCXa5 z3jVNDXk!`K!`LK)@MALqQCKO)oo?M1R*ikM;%&zQoG)~Id(ph~Hq`cm(N)7@YWdiR zXxl3`-p+>$C$=19QKh#H8~o|ThYv4`yEx=sKPJRR&h(D8z4+!rwrtR@pkIfHCA1$6 zediB43r7S){&$LUY1>{xP-wFkWr_C>R+S>L7ZaOq>lf`>4*N_P9Qv@ia<h$t<)AI%6y1%Kg!mTEHvq5lz1nyNuqD&p z@!|#I!$N_6eH$<^CH=B3#II;p*amwG$XMuezzD&Oyi_#zP|7t9n z)@vIIX)hd%jOI6G2gV}&P_VjiibC0OL942~gXk!7%$&qo>`{;hTK5^48OAlMlwq~1 zV|@Pn9RS35Z*Ovv`X0TAlT02}5VpU_f#D&wrK_?0py~hqc-6{%pI^Aps%MY2cYjdE ziD|k!n2r1Vvx0A4IG88=dq%?s0uwsng+Iht0rkQ{vEvOc7Lr~nB~LXcrT>MEte8gx z7ndK-%UW~tGv+`+>0f+pa@^G;=MhlC4tfk+r&WKP1A+cT|E*`ucz47slIIHOej@$H zyNkN)6#Zk(mLWxkfgvdH9fVmS9@V0A=aWpT!f;-~L?=Q@%L|tBLY>`)dbC%K4`uusF+!~FK zujGm1d&Yi?Ra~d0)_l$#^2K^>@YpxkT)M!gAGOKAapa`cZ7Vtl-&g;T`i8UsjnP;1^5VtzoCD*a3(~&D-1d=VJLWZ5uwjiv4YJnzaj&oDCnAdf16;>J$ zI&p~lFI8;3S2<>s9y!cRARV1W{wKAQ5YMxAv}(1s_5Qq?d&hnvg_2j*dcM?t#cmZyVoCh>wKk(pqbMsmums?e~>qmS(sO#7sXI9qiaBHV6X=q znlf#}DBe0$`O+_o#KYBv_-UAog@vCbg zi-q{3b^QK>KUT+Y%kI#X{bCV~nf0-lcI+V9$g1?QCwl0-srzD)&idCA*B(b@Cua4S zDftcBpFs`@H}nQ>eFQ?JFl9m*jW+5Pmq0fc$R*tE31>jEcq}%HGxQfbk7%D&RBc#1HNZ5}(HoZ&O{!h8+M^>?vVpxX>_uwhWItph7D zB+bBrhx(}jBse?8ZJ}kyp;FOxkw^p5oWc7Z6K&Zb^a-B=S!TH%SJud`896-Zjbod- zQGJjlw2kgRQI2Aa^5W@IWVg8BuAQutHdw>SjT!9k;t}nMqY1^crpR7G&Xn=ZD*q5# zz>qnGmv;?ISuDijlscu0Cs3KCu;>X5c;kL`b6QMjSJvsRLr?bA3u(ZFX9!D9$fmIi znxvncbTr0Q6;mY!QPCM~vzl$6TN!q&XU_F6=^>t7oUglnkw-*!;Ks(M;2M~TSsJu18GpD;2w0kPw6M-~Q)cgveFvPwjz z3>c3-kaVf!_k1N?Uh<{Cjt^)QnVtfh>2ebSIvBHc_|y?=PTZi2XA}j+7|FW!snK}< zM!5+QO2JS_zPMomU!ztw-p1JRqH&Ml7P_G%k&xl!1<>~s*(VeF_MIT2Cidxrzm2!Y zjT@JtEoJk>P~I;iWBhn2t4;V^^`6Xc7%VMqDH~>^hsBoy#oI0n1(W`hj!bAi=?|7? z1!Qahbr9>-A#=C`chP=ym^iHA_`3C`H0-e=I(%ySiXA&vq))3>V^ODh?`i6x0sXsn z>90Dq%gO5K8`XDkrAk@e-gWBKO?-dV>Rojc6YFkFoAlkJ$%6;Uc@chf(+V{c^WxXC zKSx4-uYh;7&jYEY8N(8*T+t&g45kxK{G)Bm3PXsOJhx4<4tHa1=7!JYHb8*=+_u26 zFa6xMvHGIvGZyjBfhGOBufMuWe3rfqnUkdq_Qar^;A6v2_~bu2!zNv1lRgyJkR%xg z)Sur`4ahWB`FW`FEZ?Eq4$84nd(CAE=NuGyNmJ-TP0tCQyO1+G@F0^Oua)50`UMr?L zpTUJh=j$*($V6Hy!r3+T@=TO{OIgE@qAYZQTQKbR8_l>wh_YrFYX+5!_XBxveh=?y zVEf}Xb2Pu_EC36BL%po6=)hN^OeT(6Jt^8izB!b_QI9h$@w{`vxxrAg>}AF zh#z#=@Sg%~DLbOmk)NZ}fjW;$80a8aN!}xS54H2p9PPug+#CDqmiQNuWOEkr2Y=ak zRzyGOu(z`iKj^U4c?z(lhM6w1Ux3cM2jb+M7)f>Cz>luzcjP_a&zS)+9wCJ_3}?>J z=(%A(px{KY56rcUw@|L=T$7%ukYW%}JimB$^MmREkspo_@OxZPWKeM%+HuG-R%b(ZE1#I1>Yt_4<>f9bV?n!kyEBXZ;qG58fgC6Kq!_G-!W(^xJi=lRT>939pN7%-HvEs$9JG?uqXtb}!g#BL-oB=(<*{D<=T z-=SO6q_n2}ua(ub|C7}JAxZuJp>9pH>DILW#kw`^|8(pBlr`|*qg$~)D)>%~Gp(cZ z7YtXp{9Iy@3qb!P2BA|t4QiYS60Wt+H$n#JAW?2VV~_Yd>$KZEa1JYl97tj!n{EA* zU1VM#3Ny?LtX1teaeEM0T?17eVZ4Vk&^rf4$H6&-pe*KSRhi6?#qthgxL1^ypTHKo z$4sBbKfM{~&NBJitXF9VF}a;+!FHy`YwLJcBKxt<##XKO_FwyJBU?T5P5ZEZwxAv& zUJ{Oas2#E*ggS+NcUrM2U^a2GZiF_HXSMZtmKgvttJ~A>}{@E0c^^pySyl z(Y>4K!Zv1g(Dw1Vx$H)ZjI32>SdKV3r`=H5Hmu>_N1bwaIWR8XfQqmI8Ye3^2Dsqx z9^zwy5ay+NVVgSu@n2BA2R8<|v9j3{!~}M5>$)BYsQje}7BRtXcVbIs%XKy*K|Cvq zV|u@-({LW>5pHq0;eOWX78cf?ogKiQ?c1sqEY+_1R^*W*yUkrCKFAi~Vvl#58?BR) z^3*PDzF50TjI30V^`}0t_v=3LrVs&?lfv1eVr#@w#l_1XfBU(hXFWv~*6H#R43!d&+`*v&m^Lj$Ya|&-{ScQ92a<~Jln?(8+{&(9VW&JFV2`3E~0E< zErxv@vb801yvcrBwU#Y_i$u!PMcL18@MS}y%*YpteemeN^f{Q1?(oAMgJ_js;Ww`I z?s>wM)xm+XJl2HOIi(e7T90FF8e3SVG;6AU!{XStdEK&0Y4;Jub3`h7esy}PX63CL zzjb8ECvYo81SU;Do25*f)|>W2)~e_nEiWq%J-egureQ9?gArJ49u z{ESX4t8{R@B>rFyUQa%EL!zEU_Q~y~!~S4XxVnf<7UQ+WB7<#OEgFmG_t{tMDjOw! z*1{?FCLe&LEe~#LKcGSb*0QPs9?&>-R{U|D%-Nr+bMxmqC91Oe?55wuSG&${Vt3hI z{zA+aV^~9+`&-4vi^-y=Xe0JwgLX1oMG=lAPC541%Tda~HR?knjT|}~gtMi=7EfH* z@`Ru;QAtz`{X}-*)m!fy3eGd{oafIG&8{N*l?C9i+%CqFb6Mh+N$)Q`cx-_9BPUy| zwbAYHBj}EWUnmYa5%tl6^Mbe`>fw%t)M2jvesm|o*wAG}KYixKZ;bQY)Wx+_M? z8o4)Jf`Vx*8~xm*a61P^dBtJ`Axk?wD|7l<#c6o90=J4N;lS>$eOugFIR<0s5WCK9 zvWxYYIB6A28SAbI&Udk2+*7XnIix=uE3&Ds$>4vAX+30$_Mmb9)J!tuBJ~$KwJP(l zRH=ki!hXs!@zIt^*ar;F6CT2!wc?84JGRbcKk)7BjZ`S;ow)n{TzIqZm9}j1`UmIQ z*?4c7j<)y_cIIy&L8(F)#N{tL1j-A2VVW+^-DX|IllvctKYnC&KNmOIv2SuGA7mf# zQxKjnu+h|xeafbYPqoQ>1`ENUts&k+3ZD?RntjSGj~{E4Ys#+siF;BH$48qb@1$a& zB zsae?u#zhz9ERsW%<2(hM%5SK(qjGPEaftu@$?k6NP1eVl=??fsItB{dpL9EN){tzX zTM8io7LNcWUW%~kj@a-BVSitU-`EM9CCz6`eiSR2JM-Wd@}KM;#~f!5|BBsGe8&oe ztibKsW^-987oUp_*#8L;c}vAf@iz9v){bNw^IxoI;)|H4Po<94Wus_bE|2|NosT>i zEOj@iDI^McbdE1y2|u609Jo1LIPlhLzZV0<2-Ylh9}8Of<%6-}h0e3@jQ!BI06ZYd zo{J~t`Nj<|9*hg{ZscrNT>&*%{0xA)#&gH1>6~5p_oI(*EOK=}?7rBQMLfsphtI`U zaYURuam)B#^~d|f(G_AQ8@ZAt9l%+O{GSzLV}_`L zJ8B5(C%JINgs9IK1WYz#X3a8%V>)h8ap1V4=&sH{s z{i6NK{>36d$X*t!5ChHUx~*HcPE5Dy>A9!}(ZNxZ-f!qUX2S6ToR^2$QJeB% zkcz|M8ya(-X2^|do5nE`pz(0~@)1ee=THD>?ZkEQ&6ksEPyBcmW6SxhZ&~cb!Apih5E-vJ zhdZA;DLRS!i^j-)rtuOB`-}Flh+2KPlxG|_6x}d^8l&70@+1~BwSWAjMiA(Fm-EiB z2Ky4(fE{0NWfy47e|-xRbqgK#ZJ|A@SWD#jgHCj`<)tNdPklj zqc+=R0X7=hPtn-Nb2i4|gn$|&$_tC{sVda&cNd7*1$Xu_Wz*^{>_btB9ftk+tN4K> zvuD|*IXf7#^`q-cLZG)C-{ja;((O>vTc!pJ?_Oe`3RyA)l7!pkgRfATskb8KF% zT6ybEoDloaw#k^MQ&A_Kkc$U?7Z1#2uzz)C8-r*Un_K+c%zVD{yJvQ-W|!EBTi=VD zlMe1*=h0fA{!4+WA31qd4g{g z764L1p$l9pFfWYlAlodCw9M|Rx{yDE!nrTFILn8AKAm0K{{9Z-#MMsV;a%7W0Y>w# zxnr=A{+)~rFqpl~!eBSec`C92e8O0{oi8@_I5lbE+_to@V(0BTj5D%Gbl##bZSy3I zAVdQLw>~*}{c5qc9TP4iwXe93n8t?8VXZT5?Z^NhD@slx3^_uP6MEaUg+nP& zyV1eXUeV0GHdFkosGV=sTRXl34anM;nlhYG?0QG^Vr#kvp0DyG|CcA9CC~fK*hd_E zOJEMNk4^R=3ukdSmGpEDNMv z?&*R1cSZAa_^OB3R;_yYaEcf(VgzrsoNr}Qma&zh8CS&`tSR?R9mV#qw5}D~R%f-C zv82gB$bK$#W?j=>nx~D>Ui!o+?Te^*DfKwJf`%gljK8NB7APLhJVR96j|FV-l&xF) z8;w&oZyqE*XAjvret@x^Cw$ohwfT#E;t+Ga&G$?h_W{eBv{qbww@t6{6EoW15iNB2 z99Ym5Yh{{S=p2)?F+jJxm8f{#wgN5ANV4KlCD0#}SeT5r^SSuy*q8OV_!s+*-4pjC z9-S5sJ;W~`@~fhEZZ2B^!(_e4e6h6+tbnd;Gq0_k6kWvz@$8Lb4<1st7V69W(oUD6 zA1y5_o1N}r#4)NsXQS!@b?GGnk0NGi$dh|xSZ8hjN#!gW)fj2=(%AKDU*k%P`)XEU z(@vJ_^%I-#p&eg4L|iSbqk$<8T120RU=dJN&eU%K$PuU_j4A@WL}MYV>b-ZI;SQtt z*NK6w7k_Vxw6?w(x2m-Gj8&B@$OrT0$+|Ol`m)1=I2(EP!#iT)<~7tNeNA@~yhO?q zd1l=bK;}&>S-mbX7C+r~bPn{FU>qbt8ZL(N+HX0m$hD=~igF>%3a(_!W~wAqp3GND>b z5Ln7dW4}r;njh;I3!>;)30>I4(j|bbK8xz=VH!JWGwu?A1Hp%c_rz7AI&&8{=d5Ib zn3tIMMW)UgfhBzKA!R>PPOm~Ti+;Ex%BE^x&sZz^uYaoKvf$OHH1Yns?01c^=j@9w zm^gDBe4(7bloOfwLb_egh#lxfsj!g`lbMW2*{G+-q(rDVbD}7#w0xfiUW13Si0xc; zYU(q;leo)s{IujQpLP-FwqC2&G=Lv@<5*J`d-8fUCBMZMfwZN&8uw<;cQw=Axg7#U zyilgid|r!(XnhA#wq4>+jtDWinXcjVSRyF#G?3Nq0!M}t6AurL39M4R{DT5b=3uPs zkk&LP7H5ud1{3yGkO5t(CoZJLoPu=Q?S0uG4;TgA-4h%4ZTB_n!9$H-l@?={y*awy z8nKqu3J6;7y*z8sL?(9dcOO;uiA!(j$k=_;wN2u|_MVO0MVRn&cV|ELoab07BOVDF zcI-Uy&6bYJivGQ-{{U0*ctZ2xdlE*?TQF@T<9k<_gk!{wroiO|ez1?06ZwR+gH?X6dyfOz%sr;0KoQKoDT-bIGH*I*;fE z)+>0#gMSoaCvWz0O{TfxS$@#V_zAC#PiF5TJ}Lg@SN8x9K6r2CGT9B^zFdRZTRa=J zB>%lv)nV`7QLy)DJ@$ylmNv8n38? z#zZA$g_I$xqht%9{$Z!+ZZ8*BS~lS=@uo<(>?r^AyF2IOchtZtdJbgic|4pxoA2Dk z$yQIrjq#`7-D19N}p|)4_ONr`~mW7>j?61|?yXViQ zud5LCLEuiHk6a49W#phkTrYo4lMMBma$@DqMZb%MyOzUSvrUVaeU&Vpit|`%__GCw z?|)l-3)fCrxYv&1+M3iK5^v6H@ly1v5_rW2cZAr;3GYYD?`6EOaGn*zI|_J7gV0i; z1igx#VEBV2?@Bzd z>s09G6tH$c7!fQ~$TRt~6t@>*plDKluNO0Z&u5Hr zobR}%^#Jz{E$6?{a6OA8jT%SWHh1sBAK<0*Ixttf%R1+Vyc2c!usBEak6y1nPm>h9 zJWs!_cK)VK-u|8dn!%s9{yP#Ni;@O&qSU*k$>x;p|4%9Tv4qI|Ejh;Ry1@O};%_Lj z_XW*0G%_&@6wdXpZSRhD(bb1+do#WG%l1m=KZ%M*rxD5 zoBRzKg|c`B_fmpE2fS@&f46_6f~WsBCogZ#Z#>{{Nw^|r{`MQoefH?@NB|8oo*eEY zl#+Uxu6km@9uvfzWpG=H4`sn-7wj0^SoJedsKxCpWXBGz-|08%pIXcEMaYrii+)CG zx}Sxgcx1cQdG7oVq9tp-y82r+#x7Yrt67XVuiX@9nLKOF==`{G8|n-|j$wq2Le5c# zG8XT$z78&BEY9v}fk^*xCW`XSI3w}P8A@l7(#~Eo8RK__LU(ay|eKfJOaJgCvnGYUf$3;$;GF!!OOw3oV)7a zpm;i((kc|uD-v-w6ZuM%tp?{APTt2n_c$#tWjJC)ZjlF3zldL)@n2MAQt1Mp^*#%H zCi*!07@54l^b*OSm^6f%qEota-$A1M&w~gR_+q`C#t+^nqS;=#KUYL!d{Q~D#>_!= zEaTwdthzd-c@lk+or0(x#IjbC9QS!$Iu!>U;y! zOzwaFWE^AX7I8}25UAgj4<1!Tyn{|j-qjm>g*sGo_VIA2Pz~-1lS6=SsVYHf$UAHA z+A~qq!TFM5UOtumw+6Vd8HVs<)%G|WmV255j+C!tK?;$3QTB|>$hWKav#mdIvqSG+ z>Rwx~7qKzg2>$VBdIxu?7~EnCI=eaFOANL3z5;%teuVr7HWU1s7|ZY?>4W?}~m~EiQaUnV{t!X3LRs z6@2wZJw+~*ms^CudSaI9K5RK8x(nn_=h+>roFh+(h(2E0}EBgO&*HHB=3S1 zkHu7-?(pcLh`i+Q_}37KagGGX)EalCRr_Xb8xOBnyGD&A^-gadGxm$jjI91Wv$L}% zH*Opiz9(sWT3XM+`#w|mzT4Ve)cm)s~W2DeW_UEHe$cSs5husDUTn6;*J zXBSsoKdImo9@Z)~#J^g(fRxn9n_ILmU8(YnZe3Vr#>})5&23RXG>X-TOsYfe-j291 zcfog@-)Ej4kzlBP?*nIYbx#H26h~4pDB0A==tz%9tl`|FBQ23H!w@(KP{sBcEu2lS$pT5a-s?ENpyP|s3my_p} z1A&(O1qkf&_#x{l-l0e@Y+*pfu5A`hY0%;QF|!k2>S6 zb$^G|&c7|2h`!h*+RMJE^Rn32*P+N;@x!>dJ+gkme zF4?Ab`sx~*N(vzrq~u5zh;4R(DdHHw{*f+_8H-B^sUp78CsL4<_2R3gUE3&1hhZZi z04s}0z@5*;utKrv&|Z8sWr}h@?|+e|bF^5Wzi6<5w=a^GZrvad%s6JYE(@Z4>D7?) z=KmGm%FEHvI?y=ev@4W_;GjB%cc}k{-PwVi`kg#mH(}shDboGl@18SuZ0?SO|IGVI zo>7m!zq>pg_X}+e%pG&@p1mjNKF3T$XNK6Hu0cjz!*IssEt~>dZ-5ukXi(0ZDkFvh zELQzKSF{uJ3u5g@l+NnVKC|oy$F<^{wWi9csVQmm7c3xLDTdB`gT$3Aad~4$54a3) z>#G#!jLs3bAr?bC;)g*kI2rvdxQEWNPd?8`a^Q!Yf|7d7IhHH>GWU~eW`3)UL!Km# z_(R-y^T6&&gBk_zQQjxn#{3ixTz(YY$DcVVQe^A$c=&MYDqyXLyOW~sW21l8Qp3A< zu5E2La&$d0<7b{1-aVtXHL6ALOx8y%=gUnAU6-eer_3>D=g1bGtgqHbLRgvK+pikf zi8i$j>9F69qAoKYU}@3CG2_t-hw>{Md)RCfhy>*M5NN7|a`H|cqahTbQq!V*)j&L% zDjh5vTzBByK3XXMY}%P6U2A*4=y#C)EZo@7edoNH6jpA2g?e2U?ro&C<(c++4+9@O zQ*J<_phXg0T_q+0f2H%!mwi7!!{0w+{=;Qj2>)WpmY#JyJ?r$`GDHheGwb(Rx^nl* zrG4tptJZYj@KwVHHmzoB%VEf^gTa7M`H(=|nc(Yr#*2)@>K1L2a)mb(X;bsDKq+dE z16pLjJ^^UpxM5+D?J`w*{#9 zIq*g2AGHHdI#;;P6>dCys8ZXxZ|0v@;x}BI9LwFY;q5;CodH$n0}t_(88Qo=84&?b zdSWF<(Qt%E#Pk`fk0FGo09nREha3Zv2DcOeV^+krs2|iMVyDt@{>lDfysNf>XQpKL zs1>MveB-k7e5ausdG!2-v-5QPU-EF|$x~(DqN|7@#;=|W9=?T#^YCpvT)QUkNs$b+ zF)nisGFExV;A%1^(dUqL$g~Y!p+#}Hy?n5-0#DB`N8c^~yZ6DyDlgLDc9xid_mDWO zu0u|NAfva02HWa8B!=7IN2l_6{-AW!?17WDFlo zxDFy7<8ieg+NR@zt*PT;8+gUS^6R06A`Lff@6r*|V3F`i=bBXwhm;o+oH^Os;%GWI_|5Cf^+37d7k$5Wbn)zk%MUsTO z7d%sE>h;Rj*0)uIPack+m>Kd_N_da%{(%vMoh9%bPeZXnVWZF^adIJ{wH z4z`|^)v89A2ih`OlrjCt-$o9&8cNLq6Z#G&IN*~+8S|s!a4#tX1wV;0Yz9w9ZmbxR zSg#s}+XW`%#Q~g;2OM|^f*fIxjuQAI`H@%Rx510y|FszYNMtTAjz5U-qFx)k82wSN z!Eb}V27lCR@Y~=x_xO|PN40{^9|f`D?ffbD$^57|+>ReIGeiBZIDgbM;t$5icnR0( z2bTz53_s|61^ytyi}uR5Iv)0GG5nzOmH2IN8~&A$;WTXNZh49Rm7r7N*WcRcj5KE1 z={Keogo?p-`XyY_Z-*Nu6>KuEGdY1j)s4C8c;G**%TK|(4jIPAz!N9w$6Muqjz_77 z@mgLx#KVZ;SqJ!45hkrko((`&KkUIL4poP zd4jJk4ljm3g3mUTe+B*s9#rtK2!BCB3H%XkfsVf*p#**#ycqsSzRa-f75F20c|%kY z{+H;FwBr|bOW?P`i{Xy~{#WrQ>TmH!y#~JxZWt%7D?UnV@IQiuitC`ii{wAxYLnt{ z_f0yy;HKiE?xymF=NNy5ISPZV0 zFW4^1C{ty<)!9?U5A<}CasoK)_1%z%EjD?^TgVBOKWT)VP&v%fX@(=Bt`1kn6I?HE zhhzM{XRb;y^o^%6E8)x@p1;JLfzgA*3}nj%xX>{~3cO4)+9*mJ@}QH4Af9;`Q3P)& zevd6tF1>+7M|!=0>-aJA0>6Aqc(j`~ z{P27coHY{Hb+`?GL~*!{{#qo9%2d;)BK*`x=31a%$1mR&(ob+5e}o~`w5gDOg6sHg zaKmD;-`JG@0=(B{-!H~o9m*TYGvDY@d!M3@UndCa?JytDsMy5R$xW djRLWxP2= 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°B>$1a_E)2TNd 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
)h|%AKV|^diN*yXZIJ6Jk8TR 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 literal 0 HcmV?d00001 diff --git a/clock.yaml b/clock.yaml index 66c0000..da7cef2 100644 --- a/clock.yaml +++ b/clock.yaml @@ -162,10 +162,26 @@ globals: type: bool restore_value: no initial_value: "false" + - id: media_screen_visible + type: bool + restore_value: no + initial_value: "false" + - id: media_volume_level + type: float + restore_value: no + initial_value: "0.5" + - id: media_volume_overlay_until_ms + type: uint32_t + restore_value: no + initial_value: "0" - id: dismiss_feedback_until_ms type: uint32_t restore_value: no initial_value: "0" + - id: morning_music_prompt_until_ms + type: uint32_t + restore_value: no + initial_value: "0" - id: next_ring_override_active type: bool restore_value: yes @@ -250,6 +266,17 @@ sensor: step_minutes = 5; } + if (id(media_screen_visible)) { + id(media_volume_level) += 0.05f; + if (id(media_volume_level) > 1.0f) { + id(media_volume_level) = 1.0f; + } + ESP_LOGI("media", "Volume adjusted clockwise to %.0f%%", id(media_volume_level) * 100.0f); + id(show_media_volume_overlay).execute(); + id(set_morning_music_volume_on_ha).execute(); + return; + } + if (id(alarm_ringing)) { id(snooze_minutes) += step_minutes; if (id(snooze_minutes) > 60) { @@ -302,6 +329,17 @@ sensor: step_minutes = 5; } + if (id(media_screen_visible)) { + id(media_volume_level) -= 0.05f; + if (id(media_volume_level) < 0.0f) { + id(media_volume_level) = 0.0f; + } + ESP_LOGI("media", "Volume adjusted anticlockwise to %.0f%%", id(media_volume_level) * 100.0f); + id(show_media_volume_overlay).execute(); + id(set_morning_music_volume_on_ha).execute(); + return; + } + if (id(alarm_ringing)) { id(snooze_minutes) -= step_minutes; if (id(snooze_minutes) < 5) { @@ -336,6 +374,19 @@ sensor: auto next_alarm = ESPTime::from_epoch_local(uint32_t(candidate_epoch)); ESP_LOGI("alarm", "Next ring override adjusted anticlockwise by %d minutes to %02d:%02d", step_minutes, next_alarm.hour, next_alarm.minute); + - platform: homeassistant + id: media_player_volume + entity_id: ${morning_briefing_player_entity} + attribute: volume_level + internal: true + on_value: + then: + - lambda: |- + if (!isnan(x)) { + id(media_volume_level) = x; + } + - script.execute: update_media_screen_ui + time: - platform: pcf8563 id: rtctime @@ -381,6 +432,37 @@ datetime: then: - script.execute: update_minutes_hand text_sensor: + - platform: homeassistant + id: media_player_state + entity_id: ${morning_briefing_player_entity} + internal: true + on_value: + then: + - script.execute: update_media_screen_ui + - platform: homeassistant + id: media_track_title + entity_id: ${morning_briefing_player_entity} + attribute: media_title + internal: true + on_value: + then: + - script.execute: update_media_screen_ui + - platform: homeassistant + id: media_track_artist + entity_id: ${morning_briefing_player_entity} + attribute: media_artist + internal: true + on_value: + then: + - script.execute: update_media_screen_ui + - platform: homeassistant + id: media_track_album + entity_id: ${morning_briefing_player_entity} + attribute: media_album_name + internal: true + on_value: + then: + - script.execute: update_media_screen_ui - platform: template id: next_alarm_time_text name: "Next Alarm Time" @@ -457,11 +539,15 @@ binary_sensor: else: - if: condition: - lambda: "return id(home_menu_visible);" + lambda: "return !id(media_screen_visible);" then: - - script.execute: close_home_menu - else: - - script.execute: open_home_menu + - if: + condition: + lambda: "return id(home_menu_visible);" + then: + - script.execute: close_home_menu + else: + - script.execute: open_home_menu - script.execute: reset_idle_timer spi: @@ -474,6 +560,7 @@ touchscreen: id: dial_touchscreen i2c_id: internal_i2c address: 0x38 + interrupt_pin: GPIO14 touch_timeout: 250ms on_touch: - if: @@ -508,6 +595,20 @@ display: update_interval: never data_rate: 40MHz +font: + - file: assets/DejaVuSans.ttf + id: media_text_font_14 + size: 14 + glyphs: &media_glyphs " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz[]_{}|~°▶Ⅱ■»♪АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя" + - file: assets/DejaVuSans.ttf + id: media_text_font_16 + size: 16 + glyphs: *media_glyphs + - file: assets/DejaVuSans.ttf + id: media_icon_font_28 + size: 28 + glyphs: "▶Ⅱ■»" + lvgl: rotation: 0 displays: @@ -596,7 +697,7 @@ lvgl: height: 120 align: CENTER bg_color: Black - bg_opa: 85% + bg_opa: COVER radius: 60 clip_corner: true pad_all: 0 @@ -630,13 +731,13 @@ lvgl: then: - if: condition: - lambda: "return !id(alarm_enabled) && !id(alarm_ringing) && !id(home_menu_visible);" + lambda: "return !id(alarm_enabled) && !id(alarm_ringing) && !id(home_menu_visible) && !id(media_screen_visible);" then: - script.execute: enable_alarm else: - if: condition: - lambda: "return !id(alarm_ringing) && !id(home_menu_visible);" + lambda: "return !id(alarm_ringing) && !id(home_menu_visible) && !id(media_screen_visible);" then: - script.execute: toggle_skip_next_ring - script.execute: reset_idle_timer @@ -644,7 +745,7 @@ lvgl: then: - if: condition: - lambda: "return !id(alarm_ringing) && !id(home_menu_visible);" + lambda: "return !id(alarm_ringing) && !id(home_menu_visible) && !id(media_screen_visible);" then: - script.execute: open_home_menu - script.execute: reset_idle_timer @@ -660,8 +761,8 @@ lvgl: - obj: id: home_menu_panel hidden: true - width: 168 - height: 118 + width: 190 + height: 138 align: CENTER bg_color: 0x111111 bg_opa: 92% @@ -681,7 +782,7 @@ lvgl: width: 118 height: 42 align: CENTER - y: 10 + y: -16 radius: 21 bg_color: 0x37474F text_color: White @@ -695,13 +796,42 @@ lvgl: - label: align: CENTER text: "All Off" + - button: + id: menu_music_play_button + hidden: true + width: 118 + height: 42 + align: CENTER + y: 38 + radius: 21 + bg_color: 0x43A047 + text_color: White + border_width: 0 + on_click: + then: + - if: + condition: + lambda: |- + return id(media_player_state).has_state() && id(media_player_state).state == "playing"; + then: + - script.execute: open_media_screen + else: + - script.execute: open_media_screen + - script.execute: play_morning_music_on_ha + - script.execute: reset_idle_timer + widgets: + - label: + id: menu_music_play_label + align: CENTER + text_align: center + text: "Start music" - button: id: close_menu_button hidden: true width: 34 height: 34 - x: 54 - y: -28 + x: 66 + y: -38 align: CENTER radius: 17 bg_color: 0x546E7A @@ -757,6 +887,148 @@ lvgl: align: CENTER text_align: center text: "Stop" + - button: + id: morning_music_button + hidden: true + width: 104 + height: 38 + align: CENTER + y: 74 + radius: 19 + bg_color: 0x43A047 + text_color: White + border_width: 0 + on_click: + then: + - script.execute: open_media_screen + - script.execute: play_morning_music_on_ha + - lambda: |- + id(morning_music_prompt_until_ms) = 0; + - script.execute: update_alarm_status_ui + - script.execute: reset_idle_timer + widgets: + - label: + align: CENTER + text_align: center + text: "Music" + - obj: + id: media_screen_panel + hidden: true + width: 100% + height: 100% + align: CENTER + bg_color: Black + bg_opa: COVER + radius: 0 + clip_corner: false + pad_all: 0 + border_width: 0 + widgets: + - arc: + id: media_volume_arc + hidden: true + width: 226 + height: 226 + align: CENTER + value: 50 + min_value: 0 + max_value: 100 + start_angle: 135 + end_angle: 45 + adjustable: false + arc_width: 8 + arc_color: 0x43A047 + - label: + id: media_title_label + width: 204 + align: CENTER + y: -54 + text_align: center + text_color: White + text_font: media_text_font_16 + long_mode: dot + text: "No track" + - label: + id: media_artist_label + width: 196 + align: CENTER + y: -24 + text_align: center + text_color: 0xB0BEC5 + text_font: media_text_font_14 + long_mode: dot + text: "" + - button: + id: media_play_pause_button + width: 52 + height: 52 + x: -56 + y: 46 + align: CENTER + radius: 26 + bg_color: 0x43A047 + text_color: White + border_width: 0 + on_click: + then: + - script.execute: media_play_pause_on_ha + - script.execute: reset_idle_timer + widgets: + - label: + id: media_play_pause_icon_label + width: 100% + height: 100% + align: CENTER + text_align: center + text_font: media_icon_font_28 + text: "▶" + - button: + id: media_next_button + width: 52 + height: 52 + x: 0 + y: 46 + align: CENTER + radius: 26 + bg_color: 0x1E88E5 + text_color: White + border_width: 0 + on_click: + then: + - script.execute: media_next_track_on_ha + - script.execute: reset_idle_timer + widgets: + - label: + width: 100% + height: 100% + align: CENTER + text_align: center + text_font: media_icon_font_28 + text: "»" + - button: + id: media_stop_button + width: 52 + height: 52 + x: 56 + y: 46 + align: CENTER + radius: 26 + bg_color: 0xE53935 + text_color: White + border_width: 0 + on_click: + then: + - script.execute: close_media_screen + - script.execute: reset_idle_timer + - script.execute: stop_morning_music_on_ha + widgets: + - label: + width: 100% + height: 100% + align: CENTER + text_align: center + text_font: media_icon_font_28 + text: "■" - label: id: snooze_hint_label hidden: true @@ -783,6 +1055,17 @@ interval: gettimeofday(&tv, NULL); return (now.second * 12) + (tv.tv_usec / 83330.0); + - interval: 250ms + then: + - if: + condition: + lambda: |- + return id(media_screen_visible) && id(media_volume_overlay_until_ms) != 0 && millis() > id(media_volume_overlay_until_ms); + then: + - lambda: |- + id(media_volume_overlay_until_ms) = 0; + - lvgl.widget.hide: media_volume_arc + - interval: 1s then: - lambda: |- @@ -879,7 +1162,7 @@ interval: - if: condition: lambda: |- - return id(alarm_flash_on) || id(dismiss_feedback_until_ms) != 0; + return id(alarm_flash_on) || id(dismiss_feedback_until_ms) != 0 || id(morning_music_prompt_until_ms) != 0; then: - lambda: |- if (id(alarm_flash_on)) { @@ -888,6 +1171,9 @@ interval: if (id(dismiss_feedback_until_ms) != 0 && millis() >= id(dismiss_feedback_until_ms)) { id(dismiss_feedback_until_ms) = 0; } + if (id(morning_music_prompt_until_ms) != 0 && millis() >= id(morning_music_prompt_until_ms)) { + id(morning_music_prompt_until_ms) = 0; + } - script.execute: update_alarm_status_ui script: @@ -1000,6 +1286,7 @@ script: then: - lambda: |- id(dismiss_feedback_until_ms) = millis() + 3000; + id(morning_music_prompt_until_ms) = millis() + 60000; - script.execute: clear_snooze - script.execute: stop_alarm - script.execute: play_morning_briefing_on_ha @@ -1164,6 +1451,152 @@ script: - lambda: |- ESP_LOGW("alarm", "Home Assistant morning briefing failed: %s", error.c_str()); + - id: play_morning_music_on_ha + then: + - lambda: |- + ESP_LOGI("alarm", "Requesting Home Assistant morning music on %s", "${morning_briefing_player_entity}"); + - homeassistant.action: + action: ${morning_briefing_action} + data: + media_player_entity_id: ${morning_briefing_player_entity} + music_only: "true" + on_success: + - lambda: |- + ESP_LOGI("alarm", "Requested Home Assistant morning music"); + on_error: + - lambda: |- + ESP_LOGW("alarm", "Home Assistant morning music failed: %s", error.c_str()); + - delay: 1s + - homeassistant.action: + action: media_player.media_play + data: + entity_id: ${morning_briefing_player_entity} + on_error: + - lambda: |- + ESP_LOGW("alarm", "Home Assistant media_play after music start failed: %s", error.c_str()); + + - id: stop_morning_music_on_ha + then: + - lambda: |- + ESP_LOGI("alarm", "Requesting Home Assistant morning music stop for %s", "${morning_briefing_player_entity}"); + - homeassistant.action: + action: media_player.media_stop + data: + entity_id: ${morning_briefing_player_entity} + on_success: + - lambda: |- + ESP_LOGI("alarm", "Requested Home Assistant morning music stop for %s", "${morning_briefing_player_entity}"); + on_error: + - lambda: |- + ESP_LOGW("alarm", "Home Assistant morning music stop failed: %s", error.c_str()); + + - id: open_media_screen + then: + - lambda: |- + id(media_screen_visible) = true; + id(home_menu_visible) = false; + ESP_LOGI("media", "Media screen opened"); + - script.stop: auto_close_home_menu + - script.execute: update_media_screen_ui + - script.execute: update_alarm_status_ui + - script.execute: reset_idle_timer + + - id: close_media_screen + then: + - lambda: |- + id(media_screen_visible) = false; + ESP_LOGI("media", "Media screen closed"); + - script.execute: update_alarm_status_ui + - script.execute: reset_idle_timer + + - id: media_play_pause_on_ha + then: + - lambda: |- + ESP_LOGI("media", "Requesting media play/pause for %s", "${morning_briefing_player_entity}"); + - homeassistant.action: + action: media_player.media_play_pause + data: + entity_id: ${morning_briefing_player_entity} + on_error: + - lambda: |- + ESP_LOGW("media", "Media play/pause failed: %s", error.c_str()); + + - id: media_next_track_on_ha + then: + - lambda: |- + ESP_LOGI("media", "Requesting media next track for %s", "${morning_briefing_player_entity}"); + - homeassistant.action: + action: media_player.media_next_track + data: + entity_id: ${morning_briefing_player_entity} + on_error: + - lambda: |- + ESP_LOGW("media", "Media next track failed: %s", error.c_str()); + + - id: set_morning_music_volume_on_ha + mode: restart + then: + - homeassistant.action: + action: media_player.volume_set + data: + entity_id: ${morning_briefing_player_entity} + volume_level: !lambda |- + return id(media_volume_level); + on_error: + - lambda: |- + ESP_LOGW("media", "Media volume set failed: %s", error.c_str()); + + - id: show_media_volume_overlay + then: + - lambda: |- + id(media_volume_overlay_until_ms) = millis() + 1500; + - lvgl.widget.show: media_volume_arc + - script.execute: update_media_screen_ui + + - id: update_media_screen_ui + then: + - lvgl.arc.update: + id: media_volume_arc + value: !lambda |- + return int(id(media_volume_level) * 100.0f + 0.5f); + - lvgl.label.update: + id: menu_music_play_label + text: !lambda |- + if (id(media_player_state).has_state() && id(media_player_state).state == "playing") { + return "Open music"; + } + return "Start music"; + - lvgl.label.update: + id: media_play_pause_icon_label + text: !lambda |- + if (id(media_player_state).has_state() && id(media_player_state).state == "playing") { + return "Ⅱ"; + } + return "▶"; + - lvgl.label.update: + id: media_title_label + text: !lambda |- + if (id(media_track_title).has_state() && !id(media_track_title).state.empty()) { + return id(media_track_title).state.c_str(); + } + if (id(media_player_state).has_state() && id(media_player_state).state == "playing") { + return "Playing"; + } + return "No track"; + - lvgl.label.update: + id: media_artist_label + text: !lambda |- + if (id(media_track_artist).has_state() && !id(media_track_artist).state.empty()) { + return id(media_track_artist).state.c_str(); + } + if (id(media_track_album).has_state() && !id(media_track_album).state.empty()) { + return id(media_track_album).state.c_str(); + } + if (id(media_player_state).has_state()) { + return id(media_player_state).state.c_str(); + } + return "Rotate = volume"; + - id: reset_idle_timer mode: restart then: @@ -1322,7 +1755,7 @@ script: - lambda: |- id(ring_controls_visible) = true; id(home_menu_visible) = false; - - lvgl.widget.hide: [alarm_status_circle, center_tap_button, sleep_hint_label, home_menu_panel, all_lights_off_button, close_menu_button] + - lvgl.widget.hide: [alarm_status_circle, center_tap_button, sleep_hint_label, home_menu_panel, all_lights_off_button, close_menu_button, morning_music_button, menu_music_play_button, media_screen_panel] - lvgl.widget.show: [snooze_button, stop_button, snooze_hint_label] else: - if: @@ -1331,16 +1764,24 @@ script: then: - lambda: |- id(ring_controls_visible) = false; - - lvgl.widget.hide: [snooze_button, stop_button, snooze_hint_label] + - lvgl.widget.hide: [snooze_button, stop_button, snooze_hint_label, morning_music_button, menu_music_play_button] - if: condition: - lambda: "return id(home_menu_visible);" + lambda: "return id(media_screen_visible);" then: - - lvgl.widget.hide: [alarm_status_circle, center_tap_button, sleep_hint_label] - - lvgl.widget.show: [home_menu_panel, all_lights_off_button, close_menu_button] + - lvgl.widget.hide: [alarm_status_circle, center_tap_button, sleep_hint_label, home_menu_panel, all_lights_off_button, menu_music_play_button, close_menu_button, morning_music_button] + - lvgl.widget.show: [media_screen_panel] else: - - lvgl.widget.hide: [home_menu_panel, all_lights_off_button, close_menu_button] - - lvgl.widget.show: [alarm_status_circle, center_tap_button] + - lvgl.widget.hide: [media_screen_panel] + - if: + condition: + lambda: "return id(home_menu_visible);" + then: + - lvgl.widget.hide: [alarm_status_circle, center_tap_button, sleep_hint_label, morning_music_button] + - lvgl.widget.show: [home_menu_panel, all_lights_off_button, menu_music_play_button, close_menu_button] + else: + - lvgl.widget.hide: [home_menu_panel, all_lights_off_button, menu_music_play_button, close_menu_button] + - lvgl.widget.show: [alarm_status_circle, center_tap_button] - if: condition: lambda: |- @@ -1357,6 +1798,14 @@ script: - lvgl.widget.show: [sleep_hint_label] else: - lvgl.widget.hide: [sleep_hint_label] + - if: + condition: + lambda: |- + return id(morning_music_prompt_until_ms) != 0 && millis() < id(morning_music_prompt_until_ms); + then: + - lvgl.widget.show: [morning_music_button] + else: + - lvgl.widget.hide: [morning_music_button] - id: apply_snooze_duration parameters: @@ -1402,6 +1851,7 @@ script: id(snooze_minutes) = 10; id(alarm_ringing) = true; id(home_menu_visible) = false; + id(media_screen_visible) = false; auto now = id(sntp_time).now(); if (!now.is_valid()) { now = id(rtctime).now();