From 829bf92a6d7a8cb93851d953f8dfc9a57cd7d4af Mon Sep 17 00:00:00 2001 From: Baptiste Date: Wed, 1 Nov 2023 17:11:53 -0700 Subject: [PATCH] V1.15.1 * Added BEDSIZE_220x220x300 for "Customize Printer" section, Ender 5 * Added ENDER_3_MAX_422_CR_BL_TOUCH to precompiled firmware * Added ENDER_3_MAX_422_Z_SWITCH to precompiled firmware * Updated ENDER_3_SKR_MNI_E3_V3_Z_SWITCH - Fixed PIN issue for Hot End Fan * Updated ENDER_3_SKR_MNI_E3_V3_CR_BL_TOUCH - Fixed PIN issue for Hot End Fan --- Configuration.h | 25 +- .../ENDER_3_MAX_422_CR_BL_TOUCH/config.ini | 417 ++ .../firmware-20231101-155932.bin | Bin 0 -> 191368 bytes .../ENDER_3_MAX_422_Z_SWITCH/config.ini | 383 ++ .../firmware-20231101-155433.bin | Bin 0 -> 168572 bytes .../config.ini | 20 +- .../firmware.bin | Bin 231096 -> 230856 bytes .../ENDER_3_SKR_MNI_E3_V3_Z_SWITCH/config.ini | 18 +- .../firmware.bin | Bin 208320 -> 208088 bytes README.md | 8 + _OLDER VERSIONS/V1.15.0/Configuration.h | 3445 +++++++++++++++ _OLDER VERSIONS/V1.15.0/Configuration_adv.h | 3681 +++++++++++++++++ _OLDER VERSIONS/V1.15.0/_Bootscreen.h | 80 + _OLDER VERSIONS/V1.15.0/_Statusscreen.h | 50 + 14 files changed, 8107 insertions(+), 20 deletions(-) create mode 100644 PRE COMPILED FIRMWARES/ENDER_3_MAX_422_CR_BL_TOUCH/config.ini create mode 100644 PRE COMPILED FIRMWARES/ENDER_3_MAX_422_CR_BL_TOUCH/firmware-20231101-155932.bin create mode 100644 PRE COMPILED FIRMWARES/ENDER_3_MAX_422_Z_SWITCH/config.ini create mode 100644 PRE COMPILED FIRMWARES/ENDER_3_MAX_422_Z_SWITCH/firmware-20231101-155433.bin create mode 100644 _OLDER VERSIONS/V1.15.0/Configuration.h create mode 100644 _OLDER VERSIONS/V1.15.0/Configuration_adv.h create mode 100644 _OLDER VERSIONS/V1.15.0/_Bootscreen.h create mode 100644 _OLDER VERSIONS/V1.15.0/_Statusscreen.h diff --git a/Configuration.h b/Configuration.h index b42c97a..980de5a 100644 --- a/Configuration.h +++ b/Configuration.h @@ -70,7 +70,7 @@ //#define HAS_SPRITE_EXTRUDER // Creality Sprite Extruder //#define HAS_H2_V2s // BIQU H2 V2s //#define HAS_ORBITER_V2 // Orbiter Extruder V2.0 -//define HAS_MICRO_SWISS_BOWDEN_DUEL_GEAR // Micro Swiss Bowden Duel Gear +//#define HAS_MICRO_SWISS_BOWDEN_DUEL_GEAR // Micro Swiss Bowden Duel Gear //=========================================================================== //================================= XY-STEPS ================================ @@ -95,11 +95,12 @@ //================================= BED SIZE ================================ //=========================================================================== -//#define BEDSIZE_220x220x250 // Ender 3 / Pro / 3 V2 Bed Size -//#define BEDSIZE_300x300x340 // Ender 3 Max -//#define BEDSIZE_300x300x320 // Ender 3 Max Neo -//#define BEDSIZE_400x400x450 // Anycubic Kobra Max -//#define BEDSIZE_300x225x380 // CR 5 Pro +//#define BEDSIZE_220x220x250 // Ender 3 / Pro / 3 V2 Bed Size +//#define BEDSIZE_300x300x340 // Ender 3 Max +//#define BEDSIZE_300x300x320 // Ender 3 Max Neo +//#define BEDSIZE_400x400x450 // Anycubic Kobra Max +//#define BEDSIZE_300x225x380 // CR 5 Pro +//#define BEDSIZE_220x220x300 // Ender 5 //=========================================================================== //================================= SCREENS ================================= @@ -338,6 +339,18 @@ DO NOT TOUCH UNLESS IF YOU KNOW WHAT YOU ARE DOING #define X_MAX_POS X_BED_SIZE #define Y_MAX_POS Y_BED_SIZE #define Z_MAX_POS 380 +#elif ENABLED(BEDSIZE_220x220x300) + #define X_BED_SIZE 220 + #define Y_BED_SIZE 220 + + // Travel limits after homing, corresponding to endstop positions. + #define X_MIN_POS 0 + #define Y_MIN_POS 0 + #define Z_MIN_POS 0 + + #define X_MAX_POS X_BED_SIZE + #define Y_MAX_POS Y_BED_SIZE + #define Z_MAX_POS 300 #endif // Pins diff --git a/PRE COMPILED FIRMWARES/ENDER_3_MAX_422_CR_BL_TOUCH/config.ini b/PRE COMPILED FIRMWARES/ENDER_3_MAX_422_CR_BL_TOUCH/config.ini new file mode 100644 index 0000000..0612033 --- /dev/null +++ b/PRE COMPILED FIRMWARES/ENDER_3_MAX_422_CR_BL_TOUCH/config.ini @@ -0,0 +1,417 @@ +# +# Marlin Firmware +# config.ini - Options to apply before the build +# +# Generated by Marlin build on 2023-11-01 at 15:59:32 +# + +[config:base] +ini_use_config = all +ini_config_vers = 02010201 + +[config:basic] +assisted_tramming = on +auto_bed_leveling_bilinear = on +babystep_zprobe_offset = on +bang_max = 255 +baudrate = 115200 +bedsize_300x300x340 = on +bed_maxtemp = 125 +bed_mintemp = 5 +bed_overshoot = 10 +bed_tramming_height = 0.2 +bed_tramming_include_center = on +bed_tramming_inset_lfrb = { 30, 30, 49, 30 } +bed_tramming_leveling_order = { LF, RF, RB, LB } +bed_tramming_probe_tolerance = 0.04 +bed_tramming_use_probe = on +bed_tramming_verify_raised = on +bed_tramming_z_hop = 4.0 +bltouch = on +busy_while_heating = on +cooler_overshoot = 2 +cr10_stockdisplay = on +custom_machine_name = "Ender-3 4.2.2 - Marlin 2.1.2.1" +custom_status_screen_image = on +default_acceleration = 1000 +default_axis_steps_per_unit = { 80, 80, 400, 97 } +default_ejerk = 5.0 +default_keepalive_interval = 2 +default_kd = 76.55 +default_ki = 1.54 +default_kp = 21.73 +default_leveling_fade_height = 10.0 +default_max_acceleration = { 2000, 2000, 100, 10000 } +default_max_feedrate = { 500, 500, 5, 25 } +default_nominal_filament_dia = 1.75 +default_retract_acceleration = 500 +default_travel_acceleration = 2000 +default_bedkd = 305.4 +default_bedki = .023 +default_bedkp = 10.00 +disable_e = false +disable_x = false +disable_y = false +disable_z = false +display_charset_hd44780 = JAPANESE +drivers_a4988 = on +drivers_a4988_e = on +dummy_thermistor_998_value = 25 +dummy_thermistor_999_value = 100 +e0_auto_fan_pin = -1 +e0_driver_type = TMC2208_STANDALONE +eeprom_auto_init = on +eeprom_boot_silent = on +eeprom_chitchat = on +eeprom_settings = on +enable_leveling_fade_height = on +endstoppullups = on +extruders = 1 +extrude_maxlength = 200 +extrude_mintemp = 170 +e_enable_on = 0 +fan_soft_pwm = on +filament_runout_script = "M600" +filament_runout_sensor = on +fil_runout_enabled_default = true +fil_runout_pullup = on +fil_runout_state = LOW +grid_max_points_x = 3 +grid_max_points_y = GRID_MAX_POINTS_X +has_bl_cr_touch = on +has_standard_motors = on +has_z_probe = on +heater_0_maxtemp = 285 +heater_0_mintemp = 5 +homing_feedrate_mm_m = { (20*60), (20*60), (4*60) } +host_keepalive_feature = on +hotend_overshoot = 15 +invert_e0_dir = false +invert_x_dir = false +invert_y_dir = false +invert_z_dir = true +jd_handle_small_segments = on +junction_deviation_mm = 0.08 +lcd_bed_leveling = on +lcd_bed_tramming = on +lcd_info_screen_style = 0 +lcd_language = en +lcd_probe_z_range = 4 +leveled_segment_length = 5.0 +limited_max_accel_editing = on +max_accel_edit_values = { 6000, 6000, 200, 20000 } +max_bed_power = 255 +max_software_endstops = on +max_software_endstop_x = on +max_software_endstop_y = on +max_software_endstop_z = on +mesh_edit_z_step = 0.025 +mesh_inset = 0 +min_software_endstops = on +min_software_endstop_x = on +min_software_endstop_y = on +min_software_endstop_z = on +motherboard = BOARD_CREALITY_V422 +nozzle_park_feature = on +nozzle_park_move = 0 +nozzle_park_point = { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } +nozzle_park_xy_feedrate = 100 +nozzle_park_z_feedrate = 5 +nozzle_park_z_raise_min = 2 +nozzle_to_probe_offset = { -40, -8, 0 } +no_creality_422_driver_warning = on +num_runout_sensors = 1 +pidtemp = on +pidtempbed = on +pid_autotune_menu = on +pid_edit_menu = on +pid_functional_range = 10 +pid_k1 = 0.95 +pid_max = BANG_MAX +preheat_1_fan_speed = 0 +preheat_1_label = "PLA" +preheat_1_temp_bed = 50 +preheat_1_temp_hotend = 190 +preheat_2_fan_speed = 0 +preheat_2_label = "ABS" +preheat_2_temp_bed = 70 +preheat_2_temp_hotend = 240 +preheat_3_fan_speed = 0 +preheat_3_label = "ASA" +preheat_3_temp_bed = 90 +preheat_3_temp_hotend = 260 +preheat_4_fan_speed = 0 +preheat_4_label = "BED LEVEL" +preheat_4_temp_bed = 50 +preheat_4_temp_hotend = 150 +prevent_cold_extrusion = on +prevent_lengthy_extrude = on +probing_margin = 10 +ret6_12864_lcd = on +sdsupport = on +segment_leveled_moves = on +serial_port = 1 +servo_delay = { 50 } +show_bootscreen = on +show_custom_bootscreen = on +soft_pwm_scale = 0 +speaker = on +string_config_h_author = "(A Delicious Man)" +temp_bed_hysteresis = 3 +temp_bed_residency_time = 10 +temp_bed_window = 1 +temp_hysteresis = 3 +temp_residency_time = 10 +temp_sensor_0 = 1 +temp_sensor_1 = 0 +temp_sensor_2 = 0 +temp_sensor_3 = 0 +temp_sensor_4 = 0 +temp_sensor_5 = 0 +temp_sensor_6 = 0 +temp_sensor_7 = 0 +temp_sensor_bed = 1 +temp_sensor_board = 0 +temp_sensor_cooler = 0 +temp_sensor_probe = 0 +temp_sensor_redundant = 0 +temp_window = 1 +thermal_protection_bed = on +thermal_protection_hotends = on +thermistor_01 = on +use_probe_for_z_homing = on +use_xmin_plug = on +use_ymin_plug = on +use_zmin_plug = on +validate_homing_endstops = on +xy_probe_feedrate = (200*60) +xy_steps_default = = 80 +x_bed_size = 300 +x_driver_type = TMC2208_STANDALONE +x_enable_on = 0 +x_home_dir = -1 +x_max_endstop_inverting = false +x_max_pos = X_BED_SIZE +x_min_endstop_inverting = false +x_min_pos = 0 +y_bed_size = 300 +y_driver_type = TMC2208_STANDALONE +y_enable_on = 0 +y_home_dir = -1 +y_max_endstop_inverting = false +y_max_pos = Y_BED_SIZE +y_min_endstop_inverting = false +y_min_pos = 0 +z_clearance_between_probes = 5 +z_clearance_deploy_probe = 10 +z_clearance_multi_probe = 5 +z_driver_type = TMC2208_STANDALONE +z_enable_on = 0 +z_home_dir = -1 +z_max_endstop_inverting = false +z_max_pos = 340 +z_min_endstop_inverting = false +z_min_pos = 0 +z_min_probe_endstop_inverting = false +z_min_probe_repeatability_test = on +z_probe_feedrate_fast = (8*60) +z_probe_feedrate_slow = (Z_PROBE_FEEDRATE_FAST / 2) +z_probe_low_point = -2 +z_probe_offset_range_max = 20 +z_probe_offset_range_min = -20 +z_safe_homing = on +z_safe_homing_x_point = X_CENTER +z_safe_homing_y_point = Y_CENTER +z_steps_default = = 400 + +[config:advanced] +advanced_pause_feature = on +advanced_pause_purge_feedrate = 3 +advanced_pause_purge_length = 50 +advanced_pause_resume_prime = 0 +arc_support = on +assisted_tramming_wizard = on +autotemp = on +autotemp_oldweight = 0.98 +auto_report_temperatures = on +axis_relative_modes = { false, false, false, false } +babystepping = on +babystep_invert_z = false +babystep_multiplicator_xy = 1 +babystep_multiplicator_z = 1 +block_buffer_size = 16 +bltouch_delay = 500 +bltouch_force_sw_mode = on +bootscreen_timeout = 3000 +boot_marlin_logo_small = on +bufsize = 4 +chamber_auto_fan_pin = -1 +chamber_auto_fan_speed = 255 +chamber_auto_fan_temperature = 30 +chamber_check_interval = 5000 +config_menu_item_1_confirm = on +config_menu_item_1_desc = "PID E C10 TEMP 190" +config_menu_item_1_gcode = "M106 S255\nM303 E0 C10 S190 U\nM500\nM106 S0\nM117 PID E TEMP 190 DONE" +config_menu_item_2_confirm = on +config_menu_item_2_desc = "PID E C10 TEMP 200" +config_menu_item_2_gcode = "M106 S255\nM303 E0 C10 S200 U\nM500\nM106 S0\nM117 PID E TEMP 200 DONE" +config_menu_item_3_confirm = on +config_menu_item_3_desc = "PID E C10 TEMP 210" +config_menu_item_3_gcode = "M106 S255\nM303 E0 C10 S210 U\nM500\nM106 S0\nM117 PID E TEMP 210 DONE" +config_menu_item_4_confirm = on +config_menu_item_4_desc = "PID E C10 TEMP 260" +config_menu_item_4_gcode = "M106 S255\nM303 E0 C10 S260 U\nM500\nM106 S0\nM117 PID E TEMP 260 DONE" +config_menu_item_5_confirm = on +config_menu_item_5_desc = "PID BED C10 TEMP 50" +config_menu_item_5_gcode = "M303 E-1 C10 S50 U\nM500\nM106 S0\nM117 PID BED TEMP 50 DONE" +config_menu_item_6_confirm = on +config_menu_item_6_desc = "PID BED C10 TEMP 60" +config_menu_item_6_gcode = "M303 E-1 C10 S60 U\nM500\nM106 S0\nM117 PID BED TEMP 60 DONE" +config_menu_item_7_confirm = on +config_menu_item_7_desc = "PID BED C10 TEMP 70" +config_menu_item_7_gcode = "M303 E-1 C10 S70 U\nM500\nM106 S0\nM117 PID BED TEMP 70 DONE" +config_menu_item_8_confirm = on +config_menu_item_8_desc = "PID BED C10 TEMP 90" +config_menu_item_8_gcode = "M303 E-1 C10 S90 U\nM500\nM106 S0\nM117 PID BED TEMP 90 DONE" +cooler_auto_fan_pin = -1 +cooler_auto_fan_speed = 255 +cooler_auto_fan_temperature = 18 +custom_menu_config = on +custom_menu_config_only_idle = on +custom_menu_config_script_audible_feedback = on +custom_menu_config_script_done = "Script Done" +custom_menu_config_script_return = on +custom_menu_config_title = "DELICIOUS COMMANDS" +default_minimumfeedrate = 0.0 +default_minsegmenttime = 20000 +default_mintravelfeedrate = 0.0 +default_stepper_deactive_time = 120 +default_volumetric_extruder_limit = 0.00 +disable_inactive_e = true +disable_inactive_x = true +disable_inactive_y = true +disable_inactive_z = true +encoder_100x_steps_per_sec = 80 +encoder_10x_steps_per_sec = 30 +encoder_rate_multiplier = on +event_gcode_sd_abort = "G28XY" +extended_capabilities_report = on +extruder_auto_fan_speed = 255 +extruder_auto_fan_temperature = 50 +fanmux0_pin = -1 +fanmux1_pin = -1 +fanmux2_pin = -1 +faster_gcode_parser = on +filament_change_alert_beeps = 10 +filament_change_fast_load_accel = 25 +filament_change_fast_load_feedrate = 6 +filament_change_fast_load_length = 0 +filament_change_slow_load_feedrate = 6 +filament_change_slow_load_length = 0 +filament_change_unload_accel = 25 +filament_change_unload_feedrate = 10 +filament_change_unload_length = 150 +filament_load_unload_gcodes = on +filament_unload_purge_delay = 5000 +filament_unload_purge_feedrate = 25 +filament_unload_purge_length = 8 +filament_unload_purge_retract = 13 +fine_manual_move = 0.025 +folder_sorting = -1 +heater_bed_inverting = false +homing_bump_divisor = { 2, 2, 4 } +homing_bump_mm = { 5, 5, 2 } +host_action_commands = on +input_shaping_x = on +input_shaping_y = on +invert_e_step_pin = false +invert_i_step_pin = false +invert_j_step_pin = false +invert_k_step_pin = false +invert_u_step_pin = false +invert_v_step_pin = false +invert_w_step_pin = false +invert_x_step_pin = false +invert_y_step_pin = false +invert_z_step_pin = false +lcd_info_menu = on +manual_e_moves_relative = on +manual_feedrate = { 50*60, 50*60, 4*60, 2*60 } +max_arc_segment_mm = 1.0 +max_cmd_size = 96 +menu_addautostart = on +menu_hollow_frame = on +microstep_modes = { 16, 16, 16, 16, 16, 16 } +minimum_planner_speed = 0.05 +min_arc_segment_mm = 0.1 +min_circle_segments = 72 +min_steps_per_segment = 6 +n_arc_correction = 25 +park_head_on_pause = on +pause_park_nozzle_timeout = 45 +pause_park_no_stepper_timeout = on +pause_park_retract_feedrate = 60 +pause_park_retract_length = 3 +plr_enabled_default = false +power_loss_min_z_change = 0.05 +power_loss_recovery = on +probe_deploy_stow_menu = on +probe_offset_wizard = on +proportional_font_ratio = 1.0 +quick_home = on +report_tramming_mm = on +restore_leveling_after_g35 = on +scroll_long_filenames = on +sdcard_ratherrecentfirst = on +sdcard_sort_alpha = on +sdsort_cache_names = false +sdsort_cache_vfats = 2 +sdsort_dynamic_ram = false +sdsort_gcode = false +sdsort_limit = 40 +sdsort_uses_ram = false +sdsort_uses_stack = false +sd_finished_releasecommand = "M84" +sd_finished_stepperrelease = true +sd_menu_confirm_start = on +sd_procedure_depth = 1 +serial_overrun_protection = on +shaping_freq_x = 40 +shaping_freq_y = 40 +shaping_menu = on +shaping_zeta_x = 0.15f +shaping_zeta_y = 0.15f +show_progress_percent = on +show_remaining_time = on +slowdown = on +slowdown_divisor = 2 +sound_menu_item = on +sound_on_default = on +status_bed_anim = on +status_hotend_anim = on +status_hotend_inverted = on +status_message_scrolling = on +temp_sensor_ad595_gain = 1.0 +temp_sensor_ad595_offset = 0.0 +temp_sensor_ad8495_gain = 1.0 +temp_sensor_ad8495_offset = 0.0 +temp_sensor_bed = 1 +thermal_protection_bed_hysteresis = 2 +thermal_protection_bed_period = 20 +thermal_protection_hysteresis = 4 +thermal_protection_period = 40 +thermocouple_max_errors = 15 +tramming_point_name_1 = "Front-Left" +tramming_point_name_2 = "Front-Right" +tramming_point_name_3 = "Back-Right" +tramming_point_name_4 = "Back-Left" +tramming_point_xy = { { 20, 20 }, { 180, 20 }, { 180, 180 }, { 20, 180 } } +tramming_screw_thread = 40 +tx_buffer_size = 0 +ultipanel_feedmultiply = on +use_watchdog = on +watch_bed_temp_increase = 2 +watch_bed_temp_period = 60 +watch_temp_increase = 2 +watch_temp_period = 40 +xyz_hollow_frame = on diff --git a/PRE COMPILED FIRMWARES/ENDER_3_MAX_422_CR_BL_TOUCH/firmware-20231101-155932.bin b/PRE COMPILED FIRMWARES/ENDER_3_MAX_422_CR_BL_TOUCH/firmware-20231101-155932.bin new file mode 100644 index 0000000000000000000000000000000000000000..d07157787058e421608a813198d0f6cb6ea689cb GIT binary patch literal 191368 zcmd43eSB2K**8AtWnYpk$tK|?gaBvvBp4FFg@8uIve^v_$$|->6#;dV#dSkd3=}-QRc4ZX#HH z?&taZet-Ou&)JzXbImo^TyxDe*UVgVI-*2q-c9r)-|&#H{f)uUWE%gkzkYK$ns?V( zqQ4iBG6c6$)#hd8aZ~^;~|4QOHtVdznI#FZB|`k9r7su!muq`n@x!op0(V zGY#iU^!ElWq%64Dz@xshVDaj-es79bY4E<)OUm@VdxPbMa`36BhhJ3`)G(HodxI+s z)}kWdVHW55D6Z~vyA+bb`xpling+M^>3u@Mf!-wUSg*huIt>f-AF#a>4X1kzEHh|O zOoME%p$jQ&hwpT+U|{er3>tXwavC$S~drHe&*t=PQ$|FOMLG{ z{tPe*gS>(=ebyjHOoM#i(jW(_&h#4Mxh!&dHFvhd(gFyDhR=b*+K@M0>)RIcrZNke zTW^zTe`fe-kIwdg)!!OF?Qh;U)nP=rT|q8ohL4ztKwEzM22H?9N{VuQMUWax%fx;! zzu3q0ds8hfl-Em@(W0VI4Fir7OAE!Hsp6q^WciXDtfM^0EY$i|2f0NQb5V$xEG@)W zr}B@OYL-C)L*9*i?*bk;GQROh%8P=ZjlDBfc8c z5jCs`b#2NDrrti?mlaIEq z{riX5_b8no4Y8kU6=Lfe;y%T@_M;*0yDxyF8NS;TCi&&wDF1pt*}Adc`UrpS-r#M? z4-`3iv|3y6Po|>a9jnTMe-y02d&frJuXSiA_b zJZ(&tH3TCyCeNBH6el2UCO{i|&euS4zqIvenR|lvWQ?fb`5KBtm2#BhQBFf8eXN{X zhU$lF;RRa9mD_@BGV1AL5Vr?ej*bdS6~Ze5>LsY}>T-0nqyzxruwvvhOlrtGQ}1II zhy6uCE%OVNw>8T+oYp0I%w`xj6*{T8$fU0kRG6AH35v38?sc0#PPC4SB*1pU446;scHG& z%hYcoFZXD8)SpbpAJxZ1*$GX~6_hF7JC+91)9t}DH%5So+&jYakRtZndVN`N0sDI9eLb8e7B35Vjb$M+=k*>o`OzLO+3b5g^HGO2XdrRe zucdGJmh>0CCH)e)BdATz@RtQOpltG^WkK!avS2G`53b%)7Cepdmz8xYK>H~vP!uGp z1_Fmyye`u;=w>?+zLM@GUmkg_xrc+61HFc;b$m?=+I!n=n4>0st8CYOwiL8H`x)(F z+FyFLmzRWYIYQqOY40uE8d`XS_TSb}&Jo(Xb7cCarM2l8ddOKfZ=H zerssL5lDh&YpCb7G#MIVu@-Z4nZg+898JTO5&kS@Y0So(HejZP)}gU!ex?!S4F)P@ z2C7?Gb@nDg%`#&zNueogeS6W5b+$RajwzdimusvFLu!_d;Zmh;u`WPyQjG6YS{I-9 z-yPwTYL*e-4$KFYj%Pr(+d)7J(;N-|N0j6)_fh;z%gTuU@6m85YVa`v5$=xYhlnqh z7K|?Zm$a_vbN`a|-Z!M3xu)#3v?h+z%Br-o0d-6*1D9g$V$=Fb+N5)-?VCf7Z#mXe zxjOAaS@3Pq4ok-#EMEhiUM4~}XJ8fqALw{ohQ70C0?4uIeVg$+mQH-7B=sD{mwIl( zIKJeztMO4>WAGFYr6+0`O9Acd(cUh5w(nR!$-2}#x?#cv=z$ew!BgytV0q0^=v!+~ zErG66=}%R>Wu`!SZ{fpl`2Yt>il}xCu3mk*H-pYC2IHUsT2Q4QB`76j!Sf;qTY`=| zP}7ILFW#w)ZNqrCk(sc3in!g7nyo?e zrmaD7Qx(QuTIIQ(bobl7a~Va}<<=tW8@~0nsrfrGV`4TgvxW!}l&x0EPs&@&vW!XD zT9n}{u~AG*{4ez~Y!PNeV~>HfVs^x=*h|nGY$cTShbxI=B9nq?)#3X6`pIoC(a{rz0ypm+Fpy?VpZ9s^5YY5mqmdQO+G zwq@Ag^7*Y9_L^n8p}Dt#Dy`28TA2mREzL6eg`;hx<4D|O@>5EAKZVr$^p2WkbwMU2 z3$s|wGFTL4JnWxbpH=OTv|jS?Vjt;O`A21HoSVQ`IT@va(akt)td??9q?oKBFDQqs zaXfepuGy&#b1y6|YIoR`=k1JxN@CWy?LlD^0gL`qZ4+=7{EAs3_XeRCFfys-X;)si z>wO1$y=xBi6Yj0SXRhdPKG1V|jqxI^#bI|b!7rqSrFJc(=8COF^hOO?LI3I*uu=kRc0-fZ@~59a2(FQxTPO}XTQ^jK?_o$e)Uk!oAf7Sfj98=Oz9u-n%JS8&vN zpsk>N3iuVQ&q|CT=&YLu{B)$$BORjw=_MqUrr$DvdEUVMTsFj8o8hDFP4rs;mEoI@ z-;MxUPGYrFx~EVZwoLEXg*cwFiI5{h3KOugDFIrR3pl|gy+c1)x8%$6BTw6`7&~LSi1rHYk*y29 zxi@Z<|8IHwi*erS!K1CAA0DAx+8U}kqIWzd(>M=~EeWl_`-AdVe19i^xNU1_!x8j? zeQRj(k$YjcfBQUX1;?%)->H}p$RQLHhx zyu}iM?n``;%<1*boO4EXeOqVgR>N0WFle=VsAz=5Sswq zHcL4kVa#PAZ-H_5*=~c#BK>T4x>y$KN;e!#-ZiP7RsI~wXxe5m3?jS&lzkx7)T82j;e)4rqi zwoIQtk~@FT1`1uXEWLR`ua4mz8l``*?!@tk%W^!jL7@1za`m>#~u8hxNHQaC@qiHKf=xxi`}Iv!b&>dd0_ z9*^8$+6@W@{cVvsrd-E&fo;Kjjq>VX#)(`9TS94Igc_{bZ-uGCJyFoq7+GLyjNCAP z-_Zu!U;vgxZz{J7b|z?_e+sQ2;{J$WBE7rV{b=#2ZYSQ&sryl)W*OEiq5rjIvV)jU zbu;2*C-2}~WnV_O0AhZ+bAn@!ZDJtJ+3*zJP3!S1%xC8DJ__+NAOy$p0l{>9z?>Ql zpNZDAB$VVjc*Pmjmmrs+@ukt1BLee@Ts)D}cR+4x(m8!L`sZ=lN8pOFnJM5M$pKDU z@7c5LIq<`Nf)V-NHnIcpmd}k=jned{v4vH19DB>fqkR6{?yx=CaVoMn^?Bcn5|aJb z4Xk3}EcqITH*%9{R-i0&>V9Tnnxapc=!2x(h1n`WKgZ-xz*81_`=PYuyfQDU>21@` zciiGIJFJeg5mKj7x(0F`(QtFr>PRf%8e2YB>>4HW%``>OWdV;DINM~B{jrSr?H|fF zqCM}UEl;BljLkes?uj0cEHoXDSmy6WKTPqpMRHA4di)!hf-E1El$Vi5WkTOf%$gGI z@@Uu^ZTVbpC1$>a$J4?pLWY4}S{o;Gd8iWRwKp+gVlEC(Hhys~mMARoAUwuA3Al4(uots+kO!O2*7 z>&dU@d^etBJQ*v&DRYOodC$-hvLM|lIQIA&?#%I|g3_(g{HhH5Nh!B-eG_vtm-jOj zCc)XT;k-S+qDM-%_qb5YwiupReY%sxw-G!!M`Z#J_aN=FHBFn*8|4w>618<|&v445 zh~QvM(eS-d!NDS2kB~!nCqgRiJmRZ-oQJt-ZzV=D0iW&9HYPiG#}vmN&^IeuG{$XH zIe7V(5#~FTXTS2&F{!B+J!em>uO=>LAMgVeD5b>qo4P+!9{7W8_pHDc^s` z1Ujl}1yNHUkS*en?4nrJ8Z`A3?>V_f?3c^Mf5=wx3z9zA%+2od$A zeD7MVEs|ro?BaV5YMO1l-*_w4hJPK2$by5;HET6Qh%^%s^TYSJ`%gu@mQ#^BJo_zr z#{@v`i&FX9W79gg!1bmX;O`T|(}CB(*&?$nM4VtouW55CERHkXhJrKQ$#{%-CW<>E zb1Vlo?ue|g?1-$ieB$DjpALf_4Jgs&I*f~=;UA8)*aiYbq%wV`o1m0-!I^G-!2y@M z!Yf)F2P#?RhZsK*&`JA~(rRheI7s$S8e>*TjsGB|X8HZRT3H!+LzJ(nuKs3>fShFdTXHV*YF#rAxU$*{MQnSXq!H}r)Z z4L3#`heDw~$e-1gLO4%N^MK{=cD1AVb+lZ{W=@*){)Wh<|yy@7}&Q(H`yuvOTbU9I%>0dcg!o|oEeg_ ziHGDxS|A;2pJKnr$2r%=)4v!`=bU@uX&+ye))7zZxGF8f6T|u5RcUMEX=koV+Y?WF z^QyFtcv|Cl8l|TYa#rhlTH?`4%thus%X*~CuEWv+m*6ODu{8grk^MdIpz;}v{^E0v zR6A<%`y8Gp@zmqt_q_yY%|3qj$I=eGUv|OD+8qsVjQ4RN#)0_Y1jkxSdQ&v~ew6ms z`RHMZhrb!vF^P#_#yrC|aC<%^>66}aveJ4>&LzksfnFpjjwkudsL@maaNV66^ zAH!$?hd+vPGuVsycZ^}A^S;ip(=pjG-La*KWETSFzW}4TXkW_t3jp_uEfk=0nX)a* zF({`jH#Rp85aDzmm#)p9*kLGH6%j49O-U+O+_~M+BC4y+9TsQ7 zfU(B1LX_+$4hlrMeZcFOTM`ZbYUE6WcpuM7_UAi~fu>bijQ>rWF7SH4cL{&))f0lG z2hZ0J@pPWrwy?1EXiEMseI_S(bK{zbAY?lC_zDKnY69|OWTtoJF<8zIKWc9ty3)^> z3LSStbG=8`J4&=5)gegHuxXez&sSq#j2N9B2dOtY1&OOqakBN$4x{Y8X-ysnXV$~A zqwtr9-lkU8qW?xeQ#<)_=rO`Wccc9ly#MiMM4$R|qMw9E-;|>qdy}r=FcJ_C4Au>W z`naKqJhcUP+Gsl0sn3jt{}JVjX_~Q_eZiXfNoKKqRpxWhLtPm$TU77NZ_>m1e0)IP zM74z$@6nTaR+mhM^u}>Hj;ffJ2R^ovsYxtV#i6UIerjfEIG=I0Up{jM@bvv4pF?x zLni2z9OWN_0)D5UbPkn;pA)meIT}tKO6+A4pOc9>0dHLcNxe+cL0MOFT+VfHhjNtj zgP%bXyOv;6YDp)?J|WrGiwHU8Rp>XYq#=vbN2tXg4fp%>&6L|3<>;_Rd2l!yzBxK5 z=P2!O(Xi66hu+#QpR%R>(xe=`J3h3;v%1BBs=Sb=hN>@WZ z7vyDMc&T?GlQMhq1v;K~V6QYc)X@ohiZT9Ort(Q; zmYBG%B}!j*2!D&-*F*9G& zVKDQ~3>WXDcH6@y4qEosH;B&woIosmias!6pU8uiN}^x8!X$CZ`5}$dBxS1l96LzZ z4=}b+SXzea5(T>Cx{f@mNvxGwEBv`D&-8Iq?ucAx;guAQts57<;4zYw&T1UH@ zV8tsFh8XPq>#tBK5oerB5o)j!`tWnDGDVy|)0DHYFeP_Z#}p^kCh5SPX7xi)PXvx% zkCNOEG3#?m*6>A{m{bjlHO(u3Fq&Y4nZA@cQ%Gh^SL6hfBA1vTl|{PcobneR)m1TB zcmn!j4{TZ57u2S;PvZ0oawm7B(N`V^uJ4)Kn)CsO7nK;~v+=RIm6 z$_sQpbxwB`wlKo5Y($?F;+cp?SE_GLmpJUT8@Y5BQ63#4LNx4;!d8u!bL~knzO!cJN?hJHF1}t)oU6*x z_@BfqbSQdi+Cf`V2eXeUVCofF%1ZI)ApJ!(U4P*~73Bes`Ux!PY|Ba6ETv0(b;0({ zN*af_>p+z~M7A8Lte3cuOFY)^x;{G~{G0LQfhsZNMf!oNi~O`UKw*7ypmLu~Y2pGG zq~y|6TatgOX9B{6z(pw?6b_5Gi@%p=i-+ag#Y6J2_#2G9?K16??2_HtyR%Eu5E6t0 zuY{92HqkyO;+AHnz7Eu3?<;?kpTT}twq>QnO4_-4Nz?NrXYQCe>yB#8E&p!K32Nad z!1d+Z*SHgMpO#3E6}~4rX7+{mr5U##vd)6f!(nTZ{k&^`uaRT&b1qRo382B)EPnsjXF%9TWMjh(4y_L2P4e)P#L5&1wBgC3v~@FrGYCoyM}Y{p7? zLT!3)6*!=_pMxC>xzVxhkWJ9qAlYD7Hn`H9X))Y=6mRQ^X!yve)*(tSN|O{u^LZc| z{>`X&8k^gXzNR%9QPX8AcjdIlE?0KQl#VXcJ65N$d5qV$$9YZHASAaWaG>hCQZZ!R zLf4{pwf9A--o^*Sl2R!xRCE2jz)Mx;kT>n6%5~CeO_7hjSy$Ua-qkNvzEqWlFw6IG zm08iUA6F7HXb?7Ihbhz5Ah98r`6y&7J&=NxsV49eR<5g6oQVOnG_)TrHMYD|1zf;h zD*cyCQ@v?e`>4G~SFZn{yvxN}mGZB7j9*L}Mm@Mi_p}G|I%@mW!v~uCt=D4*HAHe|{aaDc!OXV5A~pAWx8CSyutS19z$aj_7_R#v zbGt0(rR=JlkGDU^sXlo8sMp}O7cvpV4%Ap9_S1Uh5$Y?*S z{41nS#5f<5idf4TK}LEk4YQ+TZK}UomFb7@i4PmE$v>XhU?sWs~PKFcSAL6ZE#}`Oz}rQt$Zb} z#d5K}V{(Ql?c`LHkR?$?%S4G1jeaHDI6qSLNHp9%T6h9{2<=>>%C*X`m{eiE81u%p z`e)sExwDWYlDhz-f)!$=S#XjCw`VzLNJM!hN;URlgn6FXH|->qo6J$OR4>^TJ+wkJ zd~ukL(*`L`m(fN?Gq1|0UrpU7t=G+jR{g36V-%%z(b3A(w_|;Na@ad9G4}&1yE$L= zVhj#D{Lm55|0>M;7rv0$oKSp>>qi{RnZ~CX((QJ|=Z3Z_c$dy}ePq2{lz#E(VVtX1Scw8%79j=cw_92${)u?7dc4SpwgjTgB-|iT7^gjACaC`- znm6GhW45b#Eb{nLp}-aqiLbBh=f1wpKL?bL!ZC%^#~|^XV$wRbrE6W=Bcc(ryLpd` z+HiD_3}^FQz^B%ia1Bnj)TQDa!v)J)ITqDpg~L0nO{~a0#47Vgi6B(C9ugihsx|~; zMlR-LBO^-eAk!;C`o(O&E^D;8F?@9-c8Pr5zH1-G;5vg#?P;*j}X)wuT#N1 zAy}C?3;j%XUBp!G#oH@3=re7Z!t&Pzyb+U?mwxP?CC!4indL%__qSLdb-7)3$(Y|- zmE?QL^=sEhu8&>LCakfQWR3_T_7upG1P;WD< zzb5sUp8R+V@T{3zx`y`37H)^Vn&hwaWA8&aP0w)F^wQsgf6(9b9;~~)Tfi~#GubG9 zLesWNUSOC-hGNy_ssQ$O9c2U!%ZS+M?DssMZ%&>kFy% z^`gFiqQ1YY^#$b&$D^_y{p7_%Wg`or9wF_!n&W)VpQ_nS3nfnag*C@E6?*DP?@FDu zce^)J+Ewzr_8uSQAP-Ld3>19_99*Q*x={TsP=AGMe(Psin&bXN<=un-Bk%72cHXIV zyGl<{e0G(0qRKl?<((UQV&I)M#yfWqT9R^wC_nK&3!dx%PoC3i+bBm8!4bv`nHH9p zE-R_G-3rcJ&65QxPtbNq+t_ctO^9>mYMx9V=L~^tku{4-=_rJBTWYHw1f66}Km9GZ zLVwf$3BHgm(BEQE7R1kK+LljMzU2Ood@+41Ut%?9mSU#}^-;c%0?HSXPWeK%^rF6h zqCP59WJ^%it9(iEC+H@$PnAqcGBedhSE=lkhh4R9@D?M3t4@(?-og$AjVdVJRcs?>n3kS9RY=BeuN8s;{!_Rr;-wzxjX>*A3Ywsf+sR)1Rjn3WU+m1C~N&?oQy?kO>@W*^7_ULx{gvAMi z{7`N%NzY=AS`M7=M2IyI;rC}M-g{U3-}1~-IDN6g@NZST<>se`n8fZNM9ezin{6K=WqC@?LOVqIr1Bv1elq@_~!Fp-O&a z=>&g9$A^&}bt{(Y{R#awvsWzT{fGL!Q&%kA8v4)* z56K@!)}q8eQNnvuxBQMI;o%qDhhP1IO8goY!0*O<_;zv)M1nT=stK z7ymo8p^VTSJnU*co-91XjAd;ap7}-|>*!S;#>V=~D_F%fjFmIyBgQ(nyRS&&D8!tE z{f)MK=~udY@HDoo<1@43PYV4|a1{fi|t6DmSoz}DfW(sIt5th^q5o$^8;ofPBhAk2Aw2isp3mjHS zbWda73CtrZoEnN0eufIamph6TKt>$?Gx=Em{_91F3jiyi{!6~P)VuQipfFuAqKz{+M_$)J{rCa9I!48U&xX*`C=7%M1^@%zPiloXz9%=+<#oq%c_hLo6XDH zY;+wWM?0_>9S25_;pc^-^9H7xK>E1+TY#uT>#llU{FI659G&{b!VZ7wES% zXE<>#^*gTDs4+V-q`M@20eAYaZK5L#zXwK4E%|+fw>aroL93<&TKj5k+JkKIMJ_F3 zoMUKrN{P!``>ghIyY{!~#p#iWi|OtdJ&)8ZFUS1HE|17BVLwmhSK9v~B;i)-8&EU> zXVbs%+~N@@CSOkRPM8Aylze8s;-ib)gh zZrHb=rz|*6-y&5~4#7`ud&*1x(eNzvk#%Vwbi&VMHjfRYD`e|Oa=OB%{4GvT{y05{ z(L4Wkvm9{L|l(pCWRuB*-X>TSqpul0_T0(-0gu?OHEg)YCN@R{_sCwLg-uqEY(|v~UvD zuorYV5o}+Ck=#iZ{L4tD`$5-ZBwy6bY8SDmXx(xH#&Q)}W!;i)7b|Brjg8%0sTTbx zmK>H!F$%Cox0kw%3Or)`GfF+4H4^OdkQaTn#+BAZu4}t$l>cCaj`9x8dl=n-oQw|Yh+BLH0T@4()SUY&<`vAT9f`OA?0FxRt#vqx}Wav}PE_|!DU@-e;dQQR%ts_S)3 zJDYu3F0P)a2t4B#vOmDd(9NrvecRpB-YjsDebe6D;%bv=OQ=81Oh=;Q$BjiNm|3;e zcKEESLe3oT6k-;O>?aU0%#pl9mSwo{S9Q~U)La!akdTjoSY@&fMd$edH} zR+CNkQ0W%BgY&NYdS_X1S#E9RJf|0)j)ui$!983w{Nsp(m1<|TIrNK%JKedZ4ekS| z)oVZC-Vs^odRxwMq6Z$D;c{;hFmq=39$*>e*`ehqGhKzvuruO*3TrtGD?3_HX9n*J zDPQ50B=U70obqbGSJx18ecFZX;%vO*-hr}jXg_cmzJ`N{qWdTEwsEMMp&pr?^&?s9 zctXDA2+=P(PV`ZYl{}-d*uXD4k5la#IA#3_<=1s%{3?XE3iwqUD+s-@WcIozw zcC+DcSV?8HA>Kktdo=tZJU4Kz2p_(Nl*Ag$)0L(8Wh$S-ug>-k{WV`an)s0Oq1p#C zC%ogud}&L3xV7)pf>Qi?7d(Yu>wchaM$`&hRVzqU0`<9E9qsSDnHH1V+{PvVc50(iZ$?1Fl${l3Ki1#bzSF~4Np ze&6cEHTKr~&}Un?@3lTi>nwe&weL@9)W`Ix$KHL6+f0Pcl*I41_7y!`ir?*(PvN(A z^*i{ruHJ?-JZIN7I zTV%F{5w}J1;4{MHr34xy4+_(GF7yO0FeX(bd6Di)mW))gexKL$TDLw(}m`p}4}1rq_7{v&F{p9W!GnWQwhvmG1nHHHjB@AT&L)jR*Y)Z~oTnnEY0%YF zhI^Kb0C^?{s;5I{nVc894s2rb{|+C!(Z`7CM#qPd7276uQTV;UNpj^t5oC{1emjU0 z+5jEdjN$irG_t8_bdlQ#m?59}X8N{ujT(>Ht)&bt+x}T=rGN3o@S7SE}7))JiZ2o|I)0v2u zaQWByC-hEcDBSyM>EZy@SzP`!e@kSt(R3f31CFUVH>!9iQoP@z@F^6p8cU>j)tF{L zxSv;fLk7r%u8k88(Gju@)^Otq^8=hCji)8|4KNPx3Ha}EWBnmckM+k(kz7ZHsAnZ19wNo9@f%VWS#bsIKCaD4TwQ{XVNa5amR{L3K+sJc9G@ zzXzz66;wU)xl9NrD$P_`rl0U)mbR+A>ZU1|@fT}0fe76fXn>G_EKS1vl@TrXQ zV#JHJ0nUyOMZ@jAYJHVj~Rr(qcqa5&4TcBcq z;;Hyjrt}i`0r#I|x5U>Uz+7<|+DyC1?a|jC@FYOe)4OAm&L2*Gw-DZ1{ZR&eBEEo*njQDiM6b1zD*6)m#dk)ebqQ^%Aba{ zZAz)&XmHc{??udiV_KH_WortVTule<<)1|kT&3-)E~K(>*NCx&)=%}MiW|DK0b24u zKp&-!h!lh9j^Wr8$8n%qaHQizb3H8`zHwv-^FHP&uSd%kXZyIl3>rdO*L zP1p8j>jms*{xZrXY9hQr6X6zf29m6au!}Vj#=tLHy7V6b;Ra#JtCezPY?o2=Q|L|EkPy25BVJ%Mj74Dj{=Z25y{tz&O2j@|Xo;zO|;{yC?hmXqk>U;QE z?Xz{+?e|xa>woK?6>r<52)`H{uAda)<}inF(gIKBNfCAqzX)-hDo=`N<{;+Aj)0O8 zUApu$wXL%%@2}iRZ79)JooTD}+p8O}wxWH9lPb5pdRqKVufF|C8_UCaH1hryf5VwE z-u7x@c@z@(RE~+E+thit)lHOL(F4_aI(v{HA8n5JE9D3Jf7l`CYq$0nADN_BQj+{# z)kde?JsO@mOt3b-=}1>~G~7G7P@bf4ngqYFDM8ImRCDu=2%F%yD82$oqFl}azSYAs z0F+Fx8HS5+)+_e{WwaSNMge^#PaLB2hCa(o+Kf~`?t%L4#s&$;c zx(>{t_Mk>g1t!j~=_mIc#C?~uSZNX5qSS~u;JN>)|C*Tq~LSxoQ- z82YcSKRmo+moB-zQ`)Udf}aS>W>zp}_WS!h`*h#;kA&L?G3viBN|~N=_%?M)tFU9W znVu+Aux2x$Fs4J+tr8$ljYFpCQUGbx833sVBoD}ofZVHF2e{vj!=2MojD9V}Xat-- z4o5LM0r|^u$N*MIo$!~?0Fq$^M`p!Hcmq6XGCf9&$WAF$OLM$x4#8|sb5^T4*Wlo60a{dY4fh;rYXBjNS%@`Imav{oJo-=W5 z`w=fuFLR%8G)t1F5FzQS2WwB7xm=E4A2gHXa*y#;eEOS8@uk7RYJ3@hUl0 zM+Io2>4_^v#mapp!{ei3BOMh_^0864JvJ&-`XHsM4-l17qn{D=c{`8-YDk7Zq2u8u zK98ox=tB-Mwixohg#ChhF{4*x8upC*Lk$l^ahihnNu!_1g*Z?AHoQxKw-b2tuEAS4 zjyHc)loC9h9$Sc1c2;!aOxLT1wjg7+!1{}ZkB(4?29FJL-B8hh(_WnOBTTe6RJ5ry z+zkm+A%H`L01g^b9ABsqr&S!Ng|0PdExubO;YHqI^h%0}A`kEY7x z*Y=a|HQJ`f?}NPBzvqTV+yl|}dy$$J50m{k_h6?n7mw22wM;vsBr-WlA~)5(y@G+} z%T_qvY=>73cpn+(5%rCx{GSSrP|njH5Trgy`Ek6QsqqZes)X)xNHgQC6LAqT#>!=y;6b_zQ3lq2XWjH}yH-zm*DFo>yu3LM{JQ zz5iNkH2gWfT0r%CCw2hq9`1ClLmx8ix(Wev#Le&lroNXN2PeG^Z8$ZX`gJARGb^@B z#B)Jn?UKh7YFuSf3=C_BRHF1Dj0Nk%iS~6B^v2Od?7Dw{q}X09Z8YyA$A|ht$A_-; zvO}rptpx?}jO)vlxE?0G7QULJ;ngGEbpH=`7-OF4)?;;%o5r(nv%zpH~%F63tf4mG_5-CBq}sWkuT9Yox|!(?VE8L8Ec+q)LrIThZKG8{I{ zNbg{um%)6?;;93zLcS2_Zu&T0I@5pp$?Z=P(QKwAZx&eWU=>=nRR&NR-xYZ%;9BJ= zQW$1cML;T21SW75HtPL!v&EcW5ZEU19=ZmqtzsoHuv+@!#OXfVpp3BjwUuX{Wfs4D z^vsjboKU3!^PPGZ6h0|mmkLIiGD3t2UFVL9xDo!5d{@?LXD%bRjwZ;ph|jTSb!swrLe>WpQ$VX3qX*Wi0-Zw`Oz z9+W3*bK56qXSF|vzB1)q3H(|zS5Y2j1X6dt-KS^na+y5aPOuBil^;LD+`Rkf$2&;g zhw#odqfaRZZK$i$^}ft3_`AF+%T$^6_&Qg&T&_LaUW#=>C#a>=P&uVi$|#$LPswk; zjXN5+$7HQ)eX?~2qdbZe)|eEf`m;sa_jCkMtwz1d&Z8_%A^0uC&d8VyQK|b^c>Y`A zZxSFU#E9>#;G}Vt(aGXQ(6OQ3UhLHuIPJ_W>E~Bfrz%TR2K)({aNC;d^*I0Jg*xmo zmscCnn-hK5y%6j1junv=xi3$EmAaMAKSndIYzKZ?E(m@2*YRF1w5I|ytWO@^=%gzOIs#8zik7%plvT((ALQ=Y}>#s zYTL`*(ALS_*p|f?w%x_w)Yib?+?GCeOPpXOX@Rc^THPWu@a9FV<_*~@ye@l%<5kIVPvX`a^&(pY2Pvgcq8aHBBGvp;t zK~GZN=)0mLI~tA6-0yaLo=lP){9YT*Fg1J4p%Gh>UAxze(U@e{?M<@l_fp#x=Wlkq zi*Ka1zaKk7HOrDDdK;6z!w(K8Q>-u&u8XL?@K{rGDul7Q)^%D6s9tP;h0P-3lyqw) z&Ps6uE8X6T(;Z{WM2mGT#b#`_S2|&F2D(}Jycs;Ft4aV*VZ#)*lEPY=t)emKCyiLo zV<((lgBH1&UCbfumWa{tpXq7y0_>DwG&50phDqU5zZL$-Rq)-TWAJI;3jfQi-~;3E z8Q%)O^(y!ic6Jo(wHsn~%Kfx{~huulsDqf_v`j7^9xo(Tn*0QD0 zUNLz1IQDC3t95EElt;{N3Qx>qTv~WlEf2;@iN@w113!aZP<#=N@)X$VJ%t%jjGxsB zG0%Z3bTq>o{TAK%%IY-jVEZ3oIUjIq8;vbxkl#VoFTX6*{)Aq|SEg8#fwPs+JK&eE z#@aVZv8H_uYX-%t>WEb62zT{59jA^=ivQ|y`K9cxUa#$Iw~F-J0L1zawO-oh8^4va zZ;pN?8KDu{)3eQxq~;=g@d~Fw__~&QqOyxpNlcW>d^&@@yni31vUGBU(m-p_erpXs zy{d**wFcUA1>f3p4_yU+ScQlGCVWNJepqnIOljb#FPhpH*bh-DDOV{;FrSL|7hj0)s=2fddOvE1Jexo-fnpvZ)n4rWtr*|S&o)iK2-bb67*ar)kx*^z9H2`l(Q4Q zm9v-ViEn&VPgXg#vr(J74yU#7@=cvSdr{F!lJCr4PFGBHrL@n(VV8!UW$PPjmSsC< zsX25lMRW8VThH$6m1j6jYPvC=ZsfRnZr`VJhBHe|7vkvx$Jg`wF34%lDQdbko(>D4 zUbFA4Y;dNj>E3v{m!muLZ_8Te1ey*TNUayUK)QO}zGnCZ9EYKGCMEP>~RNom(?F=^md7l?t;tQ#-6un=?O872>Z9;(Sf3F}DttP88D`3N_ zVW%2)(iOUoJVLNWHPzLf!%W@dP5Kf6@&8nDv$+PJ(L}$VGZH>LKz|zssHD@o zT%43yx}&k)mKK=mr0pQ_c91QUvyDDu-GX@_(BdKjDb`Y0xM}1f`$|#wkoD!x10z#88oPvY;jBoRZO-E@MMe8FjlwH zybD~j;LAb$L6hoAAkC!QceD)#-2IiKR}p1H0JcUsPNYYLu? zWLciY?UBU#vvdd3$sg4JGHG{~cR2i4oLGDuz!xg;og(H=?)l;HPew@Yg#dqW z827eGZkrlg1gQTCB!c?k@PA`h^e<|vGE%G2w9_=ti1#R3LTLP1lscj2=OT7Iz&D_; zu=}Ymc?zq~2Fi2XG-v^|_vot_vy@k~pJ;zkenpxmmT1w&9}EqJ&yS|9&^T^~Z|as4 z$t4z~J~*Uv92ADbX9u;8n;b*ojOgw7;=>FV{mqh!af5Lv{151?md_*BgQnr|$v5fu z6sVlj?(hh-As$ZF04qqx{{pk*?J|a&vT|DZv^Q9Tn zjm6uf)TYehbWaA>$$QWi1{TuRlhjUn;v|pXADq5(OA-sg}bA$@Q zVT62YYs3iL83?lx&OumcinR$;uXwqC|DzKZ3)6?f%Fyrd#f(DqUx$_m`<>ex8$3)Q zT72zi6F zkTaw}{r?N`lXh~6d_+FS6^#&%4@U{d=$Q#j8Z(sQuxSGe}zQCj7={)zb{IHtNbDzkY$J6!P`|>6=UC(vMp7C@G z_m2EMHQl1tLGMDnEmy=-TIGAkAy0A5@_IG>R2g1(gm342IZLxH40i3|O!VlzI<0=0p-!cyAUGso^qnhqr zvss2`d5m-LC#sO=tLen`|3mM6vF((~nX8Ux)kWn(;MSG-#?A?`@r&y%s%G*3t_zH8UuultS-*7l{$+DEjwk(3?ec%=2> z+wHwSCG>ud$zFu7Szimy{}0giEZ%RJKYzfmcwH6~pev$U8`EoG`r&;H{Xr_7swX?v zJZmE6a(k8z{#1;jOL)6an~(eU6K4*3BV1s)>8|Ctr$0a~&YumP=w(u{dJRshS{f*i zBpQD)_{x=|gWIog;%-8{=uP&z#gRk{T@NJmMsI@eQIz7)c1*?| zaE6aJ&j#Ll=-x!*pZb`|aeRFZBt@*ZCRxYuGxN%V+gTA`kTv_+c}~ARe|~_LrBvM= z&F?zV%cV@f=uJ@AG@WrRQVpYebE`~ay3qvlALM6E*P$IJBEUi%4mg7dZVSb-%$G1G-+oOKh&nczD z))VpsrM9<@^2b@$`x)XL_Mu6?#Xxrt% zmwhXCRqXb#IC~(wNyB{DRW}CaJ3G;P_{LksMcCLz)i$2gbqwE@n&{65M3z4fzw_1K zPXjqBG(DN1(0bLvrndUb(tx@X8K^ktVId35Zl>WqXbPIjGO<*aWp}d;Q-N(_AYH{H z#PJBK<=rVKtMGgro@cq;TthP8&yHE3tK$~v8fuZBruGcZD=@#SHmLgD6FuSvJn`>W zak!USZ!-i;B~MYiv+}750q>^3bgE_0+7z{=$^L0bO;vxV`KjgF6PTnzV4n?^YFf!V z>JIrk6(7neYMf=?si3#*5&}sooWSAUjGDtEhg!|VU$cxat%oinYwCexj8^m$rI&uA z)ssA_sFY2F$`saN^{ju*WygW)zQhpF^>o%qhhnoiJx!S|9-2SG~_#WQ%JE#u*py3^4(u!3wXnF6oN z4qI&3MGC$$%KAwzQGV~8?I?%#y*whg==&?) zJ5X;SR)=ftbhYD+uXboiS90F?3e0P#E4du;>V%@oovL2^I9m(axTRfv^jt`tzcXP1qJA3Avx>YapoKclNscowUx zQZ8zPS^9+D~s%p$zv_* zd{d46gnl!Wemj(&FNL6INioJ9zLQB-;3>z~a-rX+<1|d)taH|ZXPD*5X!wy~qL|74 zUNg7Wwzi0_-D%ltVJZP*0*vVzm>PWhPlMYP>Rh6JAq?yH+%S9qQzNUFFy?}qUqn`6 zMpzROP!IhESdUC`({j8+0X1(z!u=rRzd&Fd$rE~E8)bN(O3^SMoYA^nmV^~K{0_bg*9 ziTLX6J(dd4^8b+bCh$#F`QPxpS(-F0G~J-I1=6O4lokmTv@B|Xa!s3-RTOYb1;?;C zMO=zFLjV^Xov{iig3J_A2UkdIl>((W;E3CpA}CNCP{Am;+|uQ4N$&Ig-2`48=lMU+ z`@Z>n&dt5&o_qH5JHP$Jv?|#A0p(F)0erO%)_gc*`ADLW9)ypmr?Y*`(>M7TSSZ;B ztHKD?wU^C@mR{#nmV9klT~XoAJp+8H*j*BWY<;$mMQU0Vp-{FD_A0uBpzf(`pANA! zXHSI&_!3Pgj_HxF9&t1)kAQ_Frp)D+YE9zjmLewGj<@dzKdkErBB7ROhzFvzT zikT1={w0#XyDaz-r7za*F>8HhZXS(q4&a;P@o(;n=QRfLZ&4WwV_z)N;`Q(xYi&0B z^yNQynb*J@#);&7nmb1LC9<{}D~(lYIqN5NA4&2Gp$VYbpMYPQ61V5QVi1;A@~J)*nq=T7=AbCYnTLi<}Ipc5|7SX z)Xtc3oynSx&RKMz>j3gIBQG0*4uS9sHlNkJC7pqdhOUzQI}hTUh~f@C$&zi+sUpH@ z2Js&uj_!%(Zh=Pz1FVVI(sbY|ux$y%aG+!p<|%?Kl@*p&1{zA> z@1P*TLH!7S2X>rO(+z(IlH;c|RcE z2Tg6}%8tfM-Vfex>u8L5K+tR?fsfp5h8+?5p4R3dzENfDqihKk^S$s6u-slVD>n(A zs2aS0)-Lk91|9~|dl3>n*5({vQZZ~@iVn9;^iK2*=KG7p-`}Hp8;N_bI?4A1r7vsl z!x0Bu70!YeWbPm@kAwL#u>mu&%*FECchjC|^jP4}kL6&?WK)HeDrTe?wM5;hj`W_% zKkn<3cR+i;_&4tveu>Cpzl_mGJuex0B240wS%05&W$+lRaWh1Ayo>v@Xo6>^ zxgz{rTi0O^CO@y!#KcZkKUiKX-9)|vnAD&m$TGc|Lg}1q;Yo<$1vLp6{CSnNX*9!H zmM<572+=HI^POA<|Bh7TV@DQw{~2Oz+V0P2q z8?@E3`DNNn%iy1thJho+j(Tg-FzNgN4t^_8)hcLs6JhaIKmdtha7`=ph@*ASW};RJ-9 zMR%`<dy>$eWVELb+S50vyO=v^BS|l2 z{*|tyw$L?g6G=Ai-Wby5uMgSspQ5HRy>SjxY)c~sT9 zUE3Gx@-^Q;HQN`Cs3z)=_T%jf9o%H-`)x<8;T1jZsGj66+Gy9?P2lOSn`Kz92oXpi zz4PIt^c8yQRSkCdMtfzDdr&n!|D+D|jJFkg->d=eF+9?y2tS7XHuUK7_rBNb@jw4f z?@u+0YvwP^m`c2%F$?axy=VS>JnQj9d;0u^q$xr%FZNi=^|+^9eOmY4<+QrUcjRa< zXwz1WHjc|`sK3h5*ReL*Jhm!*q20^ahs13P*1{{?*02-nalh&auvcgDs61K#l=%I~Rly30OETkCaz+x*1h zSP9M)?(vrT0P7eNBnVr;$ih@jo3>SrJuQ}AZ(>Wv1S=L_f0rV5mZ1jsNh3fX{t33`s_-bhCyPA1K`$deO@T@IoTF_d;HfN>DIbI=r<>qO zZ5r>NC<`yiy8N;5mwcD^=TJU8t~;=Q@`z90!{qnP^Z5jf8?}Q0{qBEgP#l{#qi1aJ zt{Qt6!|*9?(B(Kt>#*Zqvk#sFH9v-|qpXd!v1JkPlgfeH89fP=*5(XfHaEbR?z5NQ zl)V;y1+A?H$S>%9E_jjr#B5*A)ZFTS;KYMc@7-_9!aUggLyA&M-iT#kmU{c!ZpfY= zxSPqD45`Y+u2OHRr`SvV1q`XeI?bXj{CHn(`HL6a29syB z_Zzg6WG7U%3*n`6j5$pBBjQ?dPZ$7ZP95to2aWKCIL~yj%g>bKOj18{0MeHOR>ro( z!GLmrUq$GPey?%bAd^AgQCoBB((1Nk=a^XRi$9_#sPE4AXKWV`lJL#?7P{(+`vxue zKbZjQGHc>7b7ip38K9E7qNoqG!&-oHq_@laFSzLB#$MJ%Cvgd?MiH73hbPD zhaMi9F7i6X+D|XqmLzfP=*^Q@Zb2h|f}OCSael5fXnxHOn|@oagR>NkZgbkNvJWW# zpivc$tMHr(kN-zif^C*zweY{33_V?AJ5!`TSv6@m-u+V@#^qrK$4=N_-MRc{IB(!q z)CpEqz!Lj$+5AKD#{q_)3<{LtuT(5~Np4B_N5n$1&*52ZMVy5{7G?OciV5u;qAfKIq$k%q67#({FrqTe zmtOu&Hd8#{6d#xy=Zr(<5+jQBYStI-EmyxV~P7#*St_p90b-=ihy1*Ui=d`F`< znub+a>SU~g`=izt2Vy=7I6Uhmz>#62PY$WHE*t`1x>nl|H*n01>41IY>)P)Nx`-wo z(vFl)rns;}73@+jzf(2xLnG<@Ud6(XP_mJm(lVgRzTz7|oN3S?KZxGz*FkW=zCx$y zK}={?41Cvqc3gJt`ypd~cI^q+*(B9Mni1*8ZxfHeS|K)XE77(dw3pi5i+}RjO1SL; z>>~`d6S_nC{0t2m4X(=uR-IN&+>1@zuv#n1Pl*`Hi|agr+!mTKb*dPW1!IJ8wcZZK zZmue>wb$JQt&~wV&<3&?S|>8K1fK+yw z^LiU__p;jH&EOA)hr6@+KLNgGA-pIL;QuJ~=bu4t`61cEy!r<_(fQKbLwF5HiP2zCvkTGLRX4fP>{|ZqvN} z2xEK{;T(d1Ue~%bmU9(<}KVa z_z_>2c)_p+1_QPXXMlhvb&0}^s3S03!|b}l37rg4&6bplyAn@)&pgK1N-A!X|J3#T zq=XaX%Ul!=Yu>}VL*(_G@(_hYnf#%P!uqHsKLIBQ5`;Sv-q7Sk+*JytBk$;<&?P0{ zq#Xx$1$KkBFiJ6#Zzy)c*+#V_C+OiO0bY(px@VOXE&>0GqiZ+|&I_XaUJXx2j8)4m zmg-|Ix6>i4(nn+GLu`JIel6EBn(y)gm#JA41}HcyI#0(jPw6q6{;2A;leJ=f&w@`Q z2~Y2d!AAoJsGVd5x3dd-EZ`19T%0b@GpEsibpIpn&*7f@GBb`0oTQtDntk2oEQCDI z4tR^bJ=Pk1&<3pPQ$T*=&Zxq-ss+#QLt6wV6a0Jg?M^2;NU)H(+ zbB48(M@(z;fyQKTHXez(Ta1<48q?Ro7qwsS$zGRQp4d3RZ*9FDX(>IGZ}ONq@~ts< zp(rG&l5kFB<2+SW_yT=bl7;zhhm_r$?ls4*9y4I#Jnv>NG)Zda)oiXgS(8oY1+~>8 zPd~yF2n=&zm4(wEE^AJ&O7}eUot`Q5J&h}!mO&JWB>2RJ7V^3M$LS(`L>ajSJ_er0 zCE;dqdP`nB{yx5BZ@-x6U+A9io6V-t8Ux-^K35g=DLdG!~-b4HosV##< z#xbHj4{J_@eF|_q{P(Kvy(4g%h$M^}b>3ZuDf;-Z-s-tMxrAF}pTN z4A%KEbw^b&p$;&{al|L zCD}oV48(b3Ox_wi?NL#?M8>g5s~xS(Pr=>0qkRTeuqfzJJ6gYgN8GLLcX{dkX_e~7 zUasE=&z#!rQ#MJgb0qjdN9*(|3+}M z%F9Q3Zv+m)t`~*&@D}VO;6z-Qq)RWqQM6n0JoV)tpa%vZje`+|1L1+-BL3cYLS(Ge zXa9(dL|fm1mzi|L_w$sY-|-wt*ZSbKa30dU3?6Eh_pZ=~9JJnff8{gi2}Au~0jp`A z&^UjLK=b7=0*&`Bgtrh5Akh3cgs>0cD8g<8b2DH?UKUE~r^YnE%&j!KzE&KVG3+qZUt~wfsfjtBbQwv3SUK?doQhy zP^7=7e`S`pKe*{X2l`im69DS#PTxyD^5On+z{TYu_qU>MK%yGl?L;mPZX51ijXGM0 z7R})A-Ot!M2p+?a{~^?m>ezbKBh3h7c-+$(v8Bf94Vx0cu?Mwt<8W3^E7~!Qc85&u zv?HtzzkdB&=#6h0EybhT;LpkCC_ey7qdJm@J;6l~QesDg%UVG2FgtQu+|jU?(XHP% zsRG|57VC}^1nwK5d1}ee(fh^Cv#xRC=EWV;o~B+Yc4kjeY7HK+sow9oi}O? z6ysYyJcknmNo6+D4mKSn-WJwv0iQT=Q#rgt;RK1RZ8jS;yGN;-H)(h8hc!<(Pttw^4Z%fbIyu2CMOiJ&#;Bs6s&X zVJEwQJudeA3a~p{pdbHx&~bEnB-H_yyr=oxy&5rSdc6N>`x|RN-~?8Op2P5O~7&Od-kP*;m%s*p0x6Rdyr$N;%?H;ZD@_ z2~`i=o3u9_To2ap=U8_H=T+ezy#0eprzI2z3Lq`Bx@b0j+GcH~G-PLpld!NGbStzM zcPb@FQ|7YZL=I7SU_a?24#j>z5NIVlhp$cc(#$CQY+2*2qEzQxk>n`8_ zt8MD#`@?NF;6BGw+niHJ=L-xE4wyP1z}N>=mU`1`C804|s!>jP9U0Y3$wp9I13U5u zZk{xtWBa7nY1HolMRkuJaAJV&gKYhUcUcPXvfOj?GDG=ejiYR%y=naTNO2uoT3lO; z(RkpVP^bd5#SdufcUpUKK0tMoWOh9mn1dCa7|}VIM#F@LNv4wyza%V+GCjF2m(xdk zr+qO_D`MJi2EFwJf*JNyS#@(-Oz2Awu1%;PJAN~2hQ1;03Bqoq+lz1#WfHs^Hr2qD z*7f1C;hEDh?H$R?fTyTV4-C=1Zt8h-)ef}l(dFY;)7)a9>y>0n;fKjI3j9RiEw%yt zSI~cYa88aVr#h#u|FjsCEUsG~n8?+k1&1Vp<@!d-I|o!Joh}Z$$5V{GxVE$|$CP^1 zg0iUGzo~ODcP$EGTM=;eH0VY1NBjbwNP9yy=pSk;)t%ZwG}$c}FWTp~iePTvatF3migBGOVA&~bCQMAZFbXyL{7*g;K&0VaPgXF%+`pyNJ~$Drf` zGMh&bCJgL@%^Nwjv~E=G$ja1O2C=km`6zMe28tz>?3UCzrs!gOX>BYYBl6iQF?qB{ zpHs40++0CLI)6CI#bdH%*QW3_68f@*1w9u8 z#*8-&rQk$;9$bg{aTogN673B9&86Xf%;AY)^d|$CdNdD6ZxI^nfce0)!J%=r3_*{v zT91{Y$7n2upiV`cp2lD5Tahv~#huR2jiyw?hQp}}58?czK8TqfJtmg<%ebV9H_^h1 z=zDnT&j%t4&}( zZZUK%RUtQuSZMG42{_4^%8a@i)1fYZV&bu{5>wkwa5Y_P47$>cT5}uTJFloZEq>gP z4xZfR?^2kD5KN#GzXzSpI3~95g8cto<)mn~io$Y{gx33V$>0W7Q(}fTA;C^n@V3x+*T>gIUr>Xfi&Qqx ziT|e~k}w_i4(w2Ueo<8sBxWOA_GJ#wVdrV_#Ri03>mmEId9!Or)H3VYXBq9Q`y=)h z%bP%_4o&4O82w_DdzD0MWSB${AS#%F-OS+<`9sQ3@6cu7k4DB~&Z@${B7_}m2mO%= zZpaANVJFUR_4aWOU6zP`f=mec7h|X7A~bWCM~lG?JJil>S&Lf4)@T*_!Hf3O{5^s; z?Lc@>Ya2gpM%8A{Uia`WIy>$uu2m|VP9DWK`k5hBkZ>4w4e|~`U2cd}R5nUx=WCNn z!PiVY*$kLAjMJdn-J<~2IGk1qYl|k%D{uq?_Ov(a&HwZK8^)T-fz2A8=`Ew{QQ7i8* z?3FJPk9oYkb|B^}B+l?(`jKR>n;)RK9R4dQOPj|`KFu%|e33!G&5ilMvuo4A@krzg z6eD@pnwH4_*s9$P`O=&NOgKREkmlSEH1C+hSg#E(f)&I=r}=q_N3suAG^Eq< z{T`;xhIqnIdNfQjhrh6&Va&}rysCHutSyJ{jPAp!#76LPq7v!2=y11ouep`J1AT>W z`=IW`#qWScHeojwx4!Ns*t+ilHDYQncjoZN!dU^54P-+nK@|=|3NCBwhVmf(TsP(h zY*yVl{HqcJ-4{x?0PlDNc)O}%P>(kNk%=Gp4fdFQI5jz&KNX4T8)ft3!3U?hP=2+| zPT0HH>wwRfk|f^@OJ+NGlf@MeiF=&IkckPeLmx;>67Wpm_7X? z+L#a=c@O}00@_4;DKqf?Oz<=hfDWKBC)!{i{(nFqT0ulQ+G}Z#6`^~R$?a%Kg)WmI zl*v|40(Ttx1A;J0wrHn^3c{x%VdcaL62RMafY(mFDFPPV+D5z)I+HHO4|?TVnp4!b zgrktmC$vAoGoa1`OaBiN^+dtqtI5!}qd7+K5a(+FK77|k&)BD~3sf~$Qx6>#chx^< za<}cQe0kTTw)8r(cu%jTH?ISSho76;V(^7s{B^5effx5m=`CrTZD!!_6_y=?_#fri zyRoY+I}H5YcvoiIR`J%b-ED8>)B7*u?~Anew@b0q`KynL$qm~UPDd-}MH0AYknbR9 z-?cb(J5QRfZwqp}z*`f9mnC=-&1aq!g^lW8Ds&v>_*OheM$2)mG*V0XrP>g1;)_3D z{^CJ(P5g^3@h?Jts-sQX#l>oI+P@Ozel42p4^-Ngq}Q&f)V-NrD+r4v*3LYW&7nTE zqA*8&zw3a>d6k|U$K9>9d3ij)HZ4C5@AqQnUS9lUSlXbDxOE{Mw z`x4-EM2G7G(3#y0pME6IpeytMqJhYW)RN}Ot=j-kLn%S<0wk+DD&$9;*vAJ%EV%ZIWCZA}GtyJc z1HFv%wIq6L(cYQ>aaEy2A{jF6Ki$Z8J<28+{u2IIBhcBxSpf@nn8EztQFa+%7G$lU zw0{Z{AAv=QPfGAI0NRgu7EkW7BCTb|K>h{w?|__u1LZgAGmgFFdAVZqgUqmr!IzNZ z+N?D&Lb`DDDYRoJ)9k=A~f$UtTq;KzNWQzx%c+#Ds?W$3sVc+m!Y_NEk89B$wIf8Q7 z_RV!4f*0{|$m0D7{49s%IOzphj^V0Wj)XFBhVLp5cBeZ1dg#zb{{Z+%e%DRKy5LH; zp8q}y%gmt+wlsmb*= z-G!cCpe{vU%?dAtj&1=1pZeh!YADzr~f^Zi!SgP8~aGI+iT#tKqyKYP0S9KTG>K)uH zF*jELuV*dzLb?2H5kXiTF`#Wz6&5jqutBcCb&HbA&%nFo(4rrQ8lP55;x>n8@H!f3I;ZQRm} zb65kRCT@So@EmNPigveE;6&Jc(L$8-no=Ej`24wLcK5am=YVMjqWOqzP||SSs+6H8 zA5sS4{#k_`O)KKhilJmx_k%lcz?>hAx!eyyo74FJ0rQ>qVOs099LQ1;;DE~fhf2Nq zINn{7FVI{chj=q=blv#>4)4B4c`ANvArXp@O!c7Qc@=4az;QD>q+Hr&fG;~hX zcQg(twl%));3C0z}5`MKltgXMA z+ep(LpWBf6+ke8`1{crFY&~H<r@E?u$V z1fcW8F&MMfJjwrhT5Oo(-tYq&taZ&I$W;w{bcWyHpNty45B~Rp z;62cBOIBZnWJ8PZ3}2G5<{`z$ zVxPRh&a#XL##gys#wEt0LoXu>nsUXm#g?AnU?^*X{w2qzGTmLPcbE$)&2AIrh-W%KD| z;;CWy{jAdQSE^~%L+Yp`BlHYNTQMTM97*w5-Gh8lK@pv3QS`FZ*n!@iFItfLC(%|% z8rik3sF2xmM{W#uQdt+`<&qq>8}|fvIuyoX!dQHvs174m*JsLsMrgFdW2Fk}G3LuI z8Q91hkvRb~=5l%q3kgjb=*u&zVGxa&fL#DG2dvW0_D&7v5FP@3!U)Nzx8lqL(#kh! zy7&wvOua&dYOJ93dO>0Wx~iDYer%oDCdSg4Dk$9;H9^%EIb}o?&%a-Xkr(s(jy52Hmkcfon9$#Kj1T zJ6ekC{tQnJ@R6o-b-wD43b)F&n3vazw_yxQMB^DIZyMIXZGb%g4(8Czd6L#dVx$4R zk`}qa^BijP56Du>v~{;avO!`s3oCGu;tco6&l5E%4iYh{FRXCJ~*RSxGyRQbEK1^!CKzv!rLX$g?KwO{`OA1 zt&o_KDUCxrbS04F7BIsLI&{NvSNIKfkcW?7z;(@Wf(BnoBq7c76qZjG3u~i70JaK+ zpntCIUcQrfTc1EHz7PJDv0mfblIkOw-zQOuo z_)2iV9AN>rODWh>VF6S+x%?*U!OmxxUg44GYE9P!IGD%;sxcM>la}JX3L|0Jn6#l+ zxF=c!USzMZ54=Gm-rg!QEmuPdPyOB)843L`?45`k%_VQ_v%&94+M4TgK)%^4Y>SvU z%U|<+1P!*}>oop(_|1o3Yt(2;^nSFVKEi6dh8uEuhEGO(b#xixABo40(&8D!-xytt z_&UTpP@YqZ@Ai{j(H)4tD;}S%#ee7T^Vb@!R4*{gh=9 zK6(Sbor-U1S4z;n{Sfg<(dmdU*W!C|Mg-MuKjJf^m59F*@zkQ9wD?BE4~&*0z9b$G zD=wse*`M@WpG{c%ke8!#M_s=@*a5jT*P~t!Ii;HY9&J1~A?m-3pvMJy44K zc~MK=D7OIHwRHYKIE^pE$>vevQE;_~yVH2RLMcCMDX!|fiB{d?YF!`&djk3m5}=_~ z7VH$gf*)90k`}vCwPDqMCo*<|3QXP(ijWx#U~MKc3TYRZMJxm;K*q zFRQ^^zMtki;5*ItOSlWo_ad$ewJ3um+Q<>MREqhLR6o;Z*{DL7f@aku#5y9$8~W5A z{dS)Fg>%gC+d-+QSL$rLI9jt0<78}h^l5RyQwV_{8_zcWSscP_m4;9on8{Og>$zaB zkQqsNu2=Y7Bnj7>AbU1JXQ&snY+rhgSa6*lHf~9%H$A&PFcCe!H9{1s8~a(hJO|f} z5jSMziFpy>N_iaK|2dKfE>-FW?uO^og{bb#wTi+`fP+R@x z$>R0NWw5s@gg=@#d8;_Y$&M~9*V^h_7mAHiEAX{d-Q#y+R(S6Vr0#%Sk~Wv@RI&!k zh69#GAkTG#lB+GR^xcvAdPEQ-DIcf2N5SqZ_C|!!Q789RXbQ$_HNvd}_2$3ge}j8YyHkMZjAL%_ zHu*7OWiELq^BliTepocaVvL^3kE_Dx(lq%oiDWuU8+W(qhBCuhZZ~G9&dk`0&VPT; zX>nac;rVkb&NdMD~(go;Q!j6^xAr(l|qX*|Jy3Onu_Bs8Q zO1$~8@q41#$HKY?=O4crVurjE%HqBav7^s6ei4fC)+0io6@ItEM)#%Xjr$_P_OQ;~ z3wTa=`0Mfh5SsP2G(H>aVMP1Dsx-b@%=6{CdxfD&4fG)g-e1Q$n#ahgfMix9w*0?o5xTCO z(TH$k*o;|N8SX}X!rI=^Z!+y6L?6()`#0+MF#^VEq6uGn6z|lmmQvr%2Bx#cpN?}( zz&nQC5WyQk7^2R@9+JkJA>B&lzmGs;o;}#*@~t?=;@jbhfukA}DNKnACv?Ves#4zo z9k|#tna;=jOo^|(rw+bfjW6K@`GzUCwX+3?biz{B}naI$Bx zZ*SI~n?a+R5=Rh?TKy{;m2u1tj@77^8JJa{0@j((M*}0!Yk({-jfZ9y=J31fhQPf6 zW~j4jsP|59D$XkyQ8A*@jQ7`zseEOGVj0x=JtY&e3z8R-ji4b|>dQ$e!O4<#HI=^~ zp*WJpKPwU)rq8#5E0_km*>bKvgxVuya9cyaqL@+RH{ulYOQ4wl4vIOqC9{R{{ydmE z?Trxi)8k4Iezxi4IksSVh;b;v`!y<#_Wy?f00|fPCGQ}%_kVTJ$$dTXUc4uopKN9U z|3Q)T2)9Hp(F8h-`9EaR?Vxo?_K;tSHh&80IS{a?06qrh21g*xHQ-+K!0$oAP~z+t zyP0Q!m&>=d48uF8mS<^{d6wQ4Am%yf-A9B1=x6i@L!)}_n?c$)Psl`l^jBPXlO6ve z3o(8<8`mVINZb7bQV;gZSbkQ-FO&ZnuwaaO-g;$ve@?r8 zEwg8sE52_hdVpX3Gv+L{tr!2>Yj zANYc5`+)YvG5@_U0Qt*UxzyZdvah^DS)wb}ed)#6d?k53#6?xG6Qze!`L^iZB}Lp8##BltO}=qK z-$(b_N}RBQJ+{=z*||LnGx(i2U#Ayyp0op8{E5|qupfACojld^E~m_&>e)Ac`~t?l ziBoQ0x!_s&QeHX#fyH~5te@oS`e=1JWP{`9?_Gjbw|@NM^2+iG6JHovxs)W)!&h7K zAh{N9myM2(u>(P?7nWCVErSNm?SgQl+$)?H3&GVfBF%I>eIqJM%5K*er+>+ErQq5Q zjOKBph;JSpg_hkT?Ontc>)Iz{=KG{85VKffa2_9%q|`jHbo?rI-1Kp%}(Xpf-EOupUIBLu=d&;ww5OT*?-k+jJODOK5oB0QAax z(i(2}qF&(!aW%C5dWD&oA4J8yAZ`iGMLT+h@v;LNlv_~ydg%FdhsG~;U`6!6p6^*u zkd)#HaU-zmtED<`4nGGgX18|$aQYtMK6Q_84VTK5A^!)E?{vi7rLIKW?mM!$9M};6 zpU1l;Vg=sRsB^j1oOlP-f|aK?G4{Q8%+=~5OFld)n1k?@`en<~l^8Ks z^Nww9ZU)Nz2C*Ln-xqIgI1I}in!!aJW8bro?A@!;0vgW_37W0awDWTZFpib&D;GVm zIFBn^LVg2!g@fP+OjrQj+Qq%X-*6wEk9*9MuBdo>+2S7PY2ZvQ#PkX;g92tO_8Z%3jl7q8)N!ih=~QHMvx9OywQOZ=ok z_oXF&?BX(aSlAOTL)%kDOMc6e(RgkQ6Sa~k(ripd|L8U7J{)hBsW$k+=!FjicD=HA z60|bJCF7Uq97i=hwiQc2!-g$LaZcU4m@VBqfAqJcL1p*6FP8h2`S~8KR`4&9;UkSn zu>}Vs$Io$6$uIMQC(X-wJqVdc59~uR7J41zkqLIlC&aW$oK#i;IW>QclFGjv7JU)$ za?o+K8txvdjGWN&>Dc>3p0iD3h*=B{m zg?C`rK>Vp9=!u%4(Z~YZONAZ<0vLPKExB*CnSd( z@N^JQiFh)G&){hvo=9Kv2+kag>G?ZRb`{kD_0;%cuvI8)wtB3UIlgS*Tf|Q%EtdD% zbo?uT2i6W~@>XZU0wXHe!w&E~OCVDM$Br+E5SD8w;Wa;ygpXL6b^7}UQ`?eI-z3!c z3AJVsY4Gh=wk@Js?NPp3WXAv7O5S3s7wqlg^_q=3E&ac!S3Bwje+Iv**B3Z{F)Ew^ z=1cY3553<1UA+=fuSC?#rPeH_dfcsS)9P`T^3`IpGPve)eeOeD4j_DhAfS)T&9E-> zrFZ*AP#>AKKKi0<7WSk~;3ebyY$e4rXa4c|gbh5YWFcmgVnNJIJU^;E*DDF0P4lnE z^D6CmodUlv^U3E2^&RQHS)2Qyetl3s=z=fo5xxY?N4+;#$y-9bm!s4yp<4G>%pS9Q zfDihu(M$dJG3uFzzF&qw_3Z}S9fteC8XwXQO>oRIjO!^u8= zvTCR`BelAXQy|q{Ky@wBo<~vZ7F6OnPw}B`!<1y~7(Kvy$^daKfVhvU)<7a`C#|hv zVN8@tGhwaS_EX!4Urg<@d|{se-H&UiZo{>CqT^DkYFkn&bi4<8OX)3r@l68w6n!xJ zp9XG@v*^MFbr!@bpz1C8l;`s@>{+zd--*_f?n)K%x)p)e%3}PJF3Uam9~rlSc6!oX z)C15_MGqXp44NSA>SWB*I*O;2+pYm0{cYHYt!s)3`(?6_01SdXKT|NFmcB{jKi!jG z%|JVCisO*q8c1cf%;LTea zZhz)l>f5sBp`M{tIli|fX8Qb=A?Tw8;7b*{E%{-=2)R(1%Z|8ttqq2b$(=i0bc0eOJcEXchje@cc`>vT0g=wLX*~) z1+Vx`%?AIfW<#sFrUImKG?9+LKz^ghG!}{(OpkC)I1i)qWH^uHz}6nvR}S_}2LH46 zH#P5w*Zeco{1|F}G!%wyJA343`ysx=YhNNXFd^iTpyv z_M*RqgIb$^*}h$9FU@}ub8|QDX|Aq8Kal+Zo1a;M(>h^OmQls>jq)9f(vjmD%@@SN zaB4*Z_T_KFMlJ=h_iM4YhLbAJAhrNjGf9YD0vQVVNsej5n^4ED{Y=}RkU!~kZNxvy zzDCA=MC*dec3(87WoWP=2K8gmVRswBuMtv8l@+V}D#?3$1)hgW1YeyJt@8^?!|mmW z8>qz%k&KAj7(N3m+P<7%5sfvKN#&I_(_H>gG(y@M!5IVgN_}IxpZv1sSKgGEUQ1=| zg&ywVz(7sId@cTSe2bA5I;4)|j)-7@#)a`z1Uf;N)<-%l2cYd<09nm&xt)A8r=tBo zD1ESlWz|_P+y8}yuN4z~vqSIQ6^5LSv`%O}`~mcNnJW?B9NBwGcbwMH3+NZl4gM7V zo8x`-PyGKs<0Hd&HI2{LQfz!0LF0yn=aks^q{qkS?^^6%l-T%O4?2Rz=Xub{VPUOi zD`bHefF8k)@%a$>??Yc5!T*07A9HgC`Xe?zu^lHiKDUXqzxco@ouiG`AuZojnGP?@pufo)|4JazF;pl#`B+da}93)4{Fa;+7`%1aAr z&RwlN6)5Kx_QBJY+S5R#06TkF7@@VS-!EGBc54UPL-77Q{(p&Q(7YqPZkB&A$_~1& z1Gf2>u@1xnHopy@46f!sw$am_QLR)QVNd}M)V`$(Gz88Y1%%5Z0duM8F^eQcWJPU zbklwb&w9}>1>mP#2|SXuS@~mo(Qo{by?WmVjX7}-7PK-4%S?fF>J-_~brM$mH)thh z%Is);Nq2iOPKmVT5r%VCosvhG%^B4R4S2F^B6+R>->dLpREBbV2sD3)hiq=10-EWs z;7}(6b2r-(po{QXpY}d1Z(zx@PZCbKJ}@(Va@J&XD~;#Sxc33ud6SWR^styQu!S2k znma9S@K2Ewx=xt*M#HfTzA@ZSG&^%Avsdb`xY+J66(7BN^6QgBK}TMH)aogfDeN~b zb85M4L~BgPR@_2*^pB`EO*4Lt%8tH*J*l4vG-3feujYi1e z$Hd_+&DRI<4fzopGVPy@6Y2~uYNNQ8DTE{j_9XT79O`_+^j%{jTDd&z3}lLlHZ$VV zCzEe%s`-!YPScR1Oksc6ecp@}cyoQMor%X>+_GCB!&S@b@Rc*mMfxT5#ZPGKNAb4m z<84)=Wp(hE$EZRy+6qm!y^zWt4H|gf&>o_8QX6R;V{M#;aoiK}2U0b--z%8I&;asA z1Ub?dP^(!)kozFU+?ot84Fn5K!BoBmn(q)2{?IB1_St^$*u?N^w6Lzw?Hu!CBTg(3appW=@?3@Rq<=!6AT03EH(>Z5 zqJuqo3&AmKAfDTF?laL`-wpb|W}y+>%5L!Bwk?EQ6n8hOU-?Yh-Ar|xZ?*QeTJ=L_ zIUR4^YF|$!v{{(-eLTP^AT=9@d(v^R;Q3uq<5xaP{M?7pKkMUt^gR7TwoCe44Y=Qd zP@wJEfG86QZ_D@OyEi}hr>6Yh=xSyC0;cG_6PutX?o$9$ZUQ%LFks4!(0}L;m@*6c z4>29A)L+9D=yQD?hbt!mS8#5dw+P&CGjy=A&qG&&Y*(xpf$6`|@1k~Co2O%JEr4JX z0k3U}q4A!*G}{+QLGL*bn2N6A9zb09@T3 zPK9+q7BGc0JoT!1z=SOMitsGfffclJ62@-j9tC`?B)tC?@8M?$?;q9Pn-F)Zjc^mP zyWAD;+q)ol3gG@PkiVqzW&6#|seB3~<7O_CzdxGEC#hEcT@f~UwPDzI(HtWfpTN%r zO}-o74ZJiC&?-$o275Qa_C-xOzk%%;zZi!k?}9)t?EcfVIlc~b^= zJ{{otxAFe}H~Rk!;QDF63Yycugu|ESJNcW*y;LU`)hXMPjXKS1%KpvVNc&Zt$^s}o zj??Gz60{CtBXZ^bU+puP58uV>18>mwuTh_`{!4xI`R3*{&n(!XG5M*Gfk4kl*@Y5v zd|NQ;xu9!|C#g5VrD61Z753~jS#=mN6Z^`f=f(%ktu#+|VxFE4iXqZf%Y=^?THC}k z=@oh08{_9JDuOK*9yEd0^j-uZg(IBC2vQ`r@=4F#Jum2 zVi@HY(t*a9?CBw%g=Z*gb2`qqp)Z#yY(W<^vO3W|Di?SdzaH3>0{s=LJMHyN`^~MV zFb`t*VL!l?^RSGAUy(5B#@0zjZLT&%9XR#mQB7YqL+V>i-0vuKawsME6i7K=GJs#B z2#*5;Q{ZcW;#BbOD4h^3YYm}{9t6VMnLNOFvPbn1HCwCE^KEUgk+}o1vm457Il7zM zAi+*x3nM}bdOafC0Q)m=LUCTqoF;f-m|??xqv~iH6v%^xUnW0J9EdwAbBxHL<=wKY zDI$!IfAtt-{IFufEPY*F7r6Az0kIk1#LCa)TXrkLRZ$CCFf96Ih*~lvYQ(h0H@)Fp_XZx^km!=sqjt#CHT-CmkDH;_V zRGH~pl(q2YZJkbI;&4d#iUzdLsB?}@EP|GHe!h1+^i-ims!@Hp{AOuwV|pd~y6MA* zpuwNV9dGQ*|DclRx#307!!9!8TjYeb^%Zhr+n=g~4Pt&rD9?K`q=%&Xx9ckdy0s+t ztg=0_DW)Up?)5o?}q*zlSg;Q!p8bS51U7x(y&$_9rc^7 zoaQf0KkfWySxNj|VS=!8!MT{zM7BXhH!T5Qp$N0w2fhN)O$#pb6&QOye8Q0L(3whY zfMkqJ@OqSGMogyyy^XwKoEdvkSeO$|(4=SP>h&Qi;XGz2AWy-UAshOF_9L=Yh~dOB zd(lUBu~;9vL3JH$-jPN#m&Dt`grOy&x0a!|($QNq3s*(WErw2}{7O%s&SW$7*E+4g z5H|&LPolO{f87}GrwdvP_0!aN|9q{*Q2$J!{+T-4HX6LxFC;74eg^eqV9V7lc;e+u zvQcRf;eE;91fTG#snHHBfaGOi;Zxb%w5pM{jm7;krOI{>@@dlY*>^dgq49iXqP&;z zE-dU*nMS65JT#TS4X(sFOiHY;j8z*#mZ6_w{*<7Px&gBo#tl0;mn){{m|2lImElil z>;50|J-&3Ti>E=ecfl@5S7@yw*$iO9M(knAmA*cByB1hV7x2EAmji+gKfsHe0{TCu z>&Wms+J1*ML}jhSKjBml;s0IG_%^a8^Wkh&jh`EX6MNej{#|G=mUPTUYp#*jp~tR+ zeKO7BrbuiSXH0cqj&uvn@V#-kWimWdRw1oJsz=(9@w8jxX%pjV{}wTO&NB9LTgxrp z+E#o6e$TC5NuwDUa~6Ysm`rsf+kI1&Ij%un1goEJp;d118r(#WTlom~)l2%wB(q-C z41ZRtanRBZ8trc}uWt*|-B-A~8FPy4ch5KK^NhA6{(BjGBKLF1@oAZKf4a$bprs@} z8-_%zfMVpYkXrLDzP|?Fe*mrocy&lSI^H51S)P0KSB&~{j*s|z-NI728~)MsjazbJ zmg@RqNDAzb*5dRob`)!e#AQ7wX?q%G!a?X3(A@huoJDgScoD`QP*{hR@ZxWj~4HK!)YS9OwsA15}S|2Px&8KO7a2xKb z(1ttF21B0S_H|)$re*L{CpWkvg;!M?e@3hY zoWG82ptV{zhGQ#}%`@av?ZIzFdnmu1$S=iH#BD-;kU44V_$A~=eoK;&-xr`vYF)9G zCh-M(Ox4ZMWo*K^c(cUOu1`Y*`!BVR#+B%3Y8zx4u;;uGx91!Hd(Qs+kMM(&3`jOl zZ^9YC@cm%7xZ&TDOW<$cO+Mf#E{PZS(SKNo?j@X#><0-aYPrb9_u}M=|;_Ha;?!rsBl!j;9J$4Px zw*Ll~`ZbO-kLD0RW*QhyG`d|wmXj^QlH6%1bw%d4a+hOZL~ z(NButmf_1W-|Uu!@1q25T(T|ROFpd67tufD?{9CspAO;Q+MH9BQ<>+pxK0M#;2(Sz z&4MPxTPoxUwFSOewnJU6@-Tc-8(OBrV*ptl8}rj}rBvJ0RE?TYgnn`gN=qbKuTBwi zWP*S?nf!$+LWbri%K}QeTUfV`+V5u)7_t$&WOqz;`V@6J6R(%aqj%tB;yMHDp>2$@ z{X~M{X!=BW;(+%S7Je_tHqP7vpU^F}*O4B`xT)i-nS!gh9o)mapdnnZ-+=weG60;X zu<%OsHu)jNfKNy^9v0q+vh{QZ(kCjrg>h5_v$!Ixj5(syOFWH)PD6sR(_lQ)J_UX8 zICN%-{s{|DL!Xvl5O6Pe=Q%DWTf2p8uzDk2vfN%zd{6B2eUEh{Cb!=T4ZCD#ddpU^ zkFywkMz-5l>{2e7L!LEJFJ{*wP%7QRSF#iL3!;62p?xOx1r4ETm_3f9QU#WLj2xU4I@B5)kF!qv7E$LU1JuvO-Rj?5v9J@y-4;#v%^AjdNjQW%0dH=O& zZwTv+A0+@=FgW_PZ*{YLO_V*8>5$r);VwR~X0uzz z|4VxP>zf>f!J8dJgYz6ev@`h|F?W6nHFWBdPjzB{y^zeXe3No6#PSb>zlQb9G5K@| z_*wWAu1|^ZTFGA@{TzJ!9_2G!`A9I7lK&9$_&CJyi^Cs;{^-eBx22f5_}c19T%&$x zam#UM@jJ)a7iNlfo@rY-ku_8J^MwEJVKu&opA#*QM=39a^$5=){0-qHgx3%P2=5@Y zA{<2c6yXDe|376P!}q`MUa>5x+)#XNZ`ICA?Yd=hEZ_O~|2@LJ^xrMtonEd-Kdf1E z`nz;~t?m)sW4b4F+j|Z#&&1cz_|$qOg0|?9J`v%6s#{UK%_&H?@P9~~iFY{&hsRSX z@|&0HxE0@TkLU3U{&ylYBkYaG{j%(L|4ZC2-_!m3Nb?Co24D#JkZ|IE0s{H;B$(hC zKON=oxm|A?|82u6IDgfI}H z2hXYa?~h-Z~0t} zbWJ^CPc^A_xc<5L_2;%3qID3$9q*)YE^}K-46>%5uC3 zp1In(AAPf_=kryoy5D_+;m^qj&$%wn(9)(MZ9mi~75{p?54@q{_sUIp|2@toxVHC| zH=24@th%;$)|;-2vk=4ZMx>m*D*1@(Vyl*e>~~$)#-`{l;@mJwD|01afMW z|8fo|DnuSX7Zs8t>(1%;tEGo=y+K-o>uhNiuD41L;<{K`f$OW%eYn0NEyuN2s>RhL zFU8d&FTyoNz7toQya3nl<(hL5;c4Yo+$SnG;c8aq;A&E4pM&K#Z&YTSWAV=_)rkG0 zG6Y_ybbP(S;pw0<8MSgLF4St9ay71hQpVx>lyViW&nTnucDXWA%jbkL9AC@~4?72* zwm1~;z0m^1M8bKv8X|)blN!mvbxAY}SEG`NuXihHxE@ndsGLYLuC3ujT$xA$(tN4t zwJU>|Ya@}fQNbq4XQ4YC6>ycK-MC(@cH;Vs`qNp4KPX>7n!3n$xULe<;reg!Yg`XT zPM>A@7o<~2^G)OgV*Vt3j_Zx`XSlvC1<&gE>hLGHH$*=~N>BKGT-SvUomC;rd-p8l zuF8It(k$*pnxoO(xPBIG#`Q?F5!d$UPF#DVuj4vaeFb0rQG6NKDbjXaUz8e<+uy=l z@wP0w8Q1%x&m#V~yaCsT<)=`3uK1U;@VYNC4Ei;??kxPt0sa6F!P#J>Y1QAu>;%WT z-lF*>`A+%{6wU5HLQX=bS$|1yaTF*}AH0?@vXAQ{CN!`-&ULn_f-`(|U`g(K+!=Tn z?Gmnno$EItH}@V+q1+;AnyZhJ?`h&^7&yyN(v(W}4D!WFY68#79KcC5ejC!S)$%ik z2L?(wgUGJ@A><^@*NH5DUkl|?+uS3J6f-;q;92QYGpe_=l-4~C?SLHk`Woh2lg$jX zcIb=Y_5Zjm42|>!MwuO9&lrj=LGV&l!;fH>`z`_w~R> z%=jl5eGxdF0eDFcLM?m^q*vZtmr+}juTu=8Q$708@c3*>J0=S~;gqR&41%80-~q7g zgol1f4E2F*NfvI9ERZe9!c6ezSiZlc(JSby&3g&%M?i~^Y>Vh;@)aWs|Aao7EVPEr zt)(clO!IkC*D@Bqst<-uc>gx&c3Ef&4-bq(x>vN+FNYzMZrcjFfouU~_~jvs56W$d zM7cc^CR&Bcur^;0EbfosG4S9gZh)LSw?l!xqUy*#r9fZmP~(C|ro{TCEIbje#+NI? zi5^S-fOXV@Zg9j&j`WEN{n62y9brKzq!!>*X>ATs{$o*R@_}|0tV(m65=-uEX9|XL zg^+XwA=5ctPx90-=>G)H1zBot+ZB+G;{0T33|9f!Tuh$IjF=Qm;roi3*QIGG{Os03 z4zgOvg&G>@^bW#^VH=;sf?G5|GI36DSMnr%i67^fK9pz-=4hH0UC^WRa|1jsSoJ1a zyM#k>e`sNL2@ghWffn(~&OU~Pyg|dHKL94UFW8s= zRBZ{FJXdoE;Tee!#e6}H!q`nmTgiV7;jTnuUa~(WoZe)6bQk=kLHcxOyB;#-vuOR< z`cn85JJW!$OaI1P*c#6f4M`(W_I>gUX!jVB*!nKmT;VK_EpuVh(k#_g#HnC(_HP&9I-XUPvhuhP3`UQD)(FpKO7uh1OAJ`I-3#yh2a!_ zXE+a>VFN!V>bkf-Z-K23KaMn;@PB2*b#V`3EN9>!9DeU)VKuG>J{)!AP3t~ftNEy$ z)`!n;jd`nN+BTy7I}ol%xEo;;LX6gKc$esGqVrNA-zS@7%$6$nWs?ehDaiSH$na(G zdGGKgi^VBvi?ejQ4SsjbbmCxq-_4#DA7W{m8YDK%P+nL@8vAy7vyi` zKk4bi$wVIy^9+MNRa|yIB|YfyI3P=@Y;yb`>hVcn5UBActZbtH?I#)di2ALD)PL54 zd_fn$@>zziSRR)O*_A}nQ*b9p6Ru0>)2axoK+&^bPOyKD^PEnvPf#PwQScj7t|*JqKR{L*j3{d8Ra3-{A-eFFDWaRu+KumV@e&>{1!*vCokHz&mT+47>1X&|l zgU^e?H!NF%Cl)-RnHz=QRp8gqJbZxh+^2_L5z-%#yhvXm^&$n46vc9NDpEGm2&BB79rIk-G}rT((_0MklaXJNPj^3E7G?}{YW9C4ER0QA(bPUkmevQLiz>L14tW@ zD%zQm1>o!D+ZB3vI)O*C98Zx`#s`_ol2mV_lBj zz~l2RD3yC}kv!$}_atIpyvCo^MtEe5UsEH+*cdSeT#k!ETTt||BTr!;CM@z=9HYqb zd+!kq)_Mc_LF1Fk>)s)GaZurMLAg7j=$5Ji%ae=DD6uiT1toSMhoWTU3GDy)wZ5bXIiJR_ z1bwDe9#rU;xj5v#19}mV0|e!Y%wt&pcpohpf}9TqU8pnBMikI47kTl0Z2hM`rS7C} zy$=45bv$%;F8E%?HYGC_$(8MQg z1VnWSL5q~>hyFjjp5seri4|PGU=G4&GKr)VCETB(4dEB|Mc?$xknd^a%S1kdly6*+ z-onC6s;e>j$`+#hhNJeWu_qyR3gMEA!k&O)oT4v5@lMQE>#>i~U+OEt!#Vsu4?U_d z=&5h;J2oHRhMF)Q!N6uWLCT4c6L*&aE;l@mB6=~cI<2V$o-b4QtsS+OHs0Hdh-(iz z!1sh+Jw+Un8I(N{#4aZZZYqC0(3AZyi+rGUS;VVRp)zhj4086)w;k{jimN#sWX2yBN?QKY+u}@V~8R znzver4uL;x+;6TYE0cadEy~76ARqW#)U@_Pzw%*=67|0b>GlHd0o1YswV3#M_4nJH@JZ1R zdyxBWE)LL*x!w_Bq1Vz6-mt8pgd4_RgnkS4=PBtql_fv7{X%`jg%K>luPvZdA6ZCL z-;?paQn{O=7qON$xgkB#GdqVgvZd*b8I4Jerv89Si&D3uJW&h%f*s?oz_nHKDL_vS zM3z|kp?4E|zf-b%S4*S*B6>lQ1^|=cN-nWs0diNvQb*IEZ0d(DT_x^K(OI@Xi#N75 z+fy2bHeM1um`lZ0rtf1!GDlPmd6StSs9(@Udc@+^968W)+$r8Xqu*O*9ZGb_PN zKCIef&qm;Ff|M^8Ju#wXO*pkV0r4#}P7Tn-$J0JB5q(HDTEz2(4(JRQuCSdqk-p;u zE&;Xohg3T<8!Ax4`H*HuR>M#{`#zMiV`#%L{Q4#|tRZuMDnA!AWAcuEp$B@e3t{)u zFZ?Yu2LF$TE$C6d&=^f^X4-6AMk74P?HF<(bHA3?!#~l1e+sZT{ZuVj+=s~OQDJVEl%C#_`NVB z!ru2=pRs1*ylc-;zjlkIl7Gy8;g`WC?2TAU;;8tOp@DwrDi7o5MQE+K@b2%h9>DKq zChoQ~1W_k&X2ATztI;q%4F4BKTwjXF;V&uIp4K4iW2#r!OLU3K&Z($>E%Z9>MN|voX54IFXtQv`?Ki@Y z2i7kl+Z0NDyB>LN@meHoaR~i*cwxWLfmtMZNk8_|*pt=}%^Ja^B@&aO!CH7u35O`7 z{3FXxikAR!FJhDuq*6Ozp+w*P6h@WSWr9?4b8srRQF>kZMY@gK+8 z#LTS)jv<9;UYb>L~pbcLWHK7?jUP|%>@&X$?630+>7iHcS^BRv&{XKvJ7(-sB%50D^>Kd3crWEQ%>uy zv#zpaLBB4^m9z!)NAE@%xG}axjB#4g>}~EOSH5$v}}T)IGFR)5Gc;p%eE~t;z$f2^aA0 zWA~L7bl+PlbTjZ*GWW{)N2b^-K})LNORh6f3)2}xucy$E?yVWC_3BDfz3MuBVK$G` z7@!-TDIH(=+~9+s^#0A~;=c3k>8ng6zZ)HWIcf8|<-jXC1JlPce$O6BN6XYR&M@BF zB(g^1^hCqdo@98RtMFoXG^*=#c2yuTVEqBxS6y;jbKY^ciPJzkS?;Wyo@4lHk1O6E zx5qI3xI5J#?;eLSJ+A6MR)x3-O`NWT=E(2a?Hg-=W|+YvwG(Ssfp$N}z0CN&uZsHw zEAk^Bwe9iJIQ-d1{Lic5gw6~EE7BRf-4CAt(A`GVLBFsoppKu2awM!@5*B?*N#lj$ zTTwm30hdJc8gT`7ty~74-`yB5hTq~sRMMyenq&R2{fBKo-rRyWk9ZI@HF_KL#`=X^ zthu#_R8#=Z;{8GfcySXX{F>^Y3OX42tfKbG!`^28NS)I%tAST6t9*Gl1kh|Iy) z_M-puJX5gxr+2VL8K)-MhT9+VmD_H#Zw9~k3V3^!z$pFjs`n!>%7xJTZe|)hv=y;> zI+c@6w3hz}mfO^~r9tM%@Y)h?D#ocElJ_FuWUrr2Jcs=cz-wN=a363cMT7hU_{4tU z4SzmiTpl7c{Bwg*wRQ``|Qy*`Lv_XULLti>_zlwZm$Tu1LN@{g1 zpPV^Ak4zkGDhSO>VPCEC!{S!T2=suo{^TECaWS;>a>^onDWG8Vo4~gOc zX?X|gpwrTlw_`dZ>6Qp$6zkwkWF;bHY60UT?S5gbG>)16HPBr116FDLQvAub^tmsvp|j5ytS8}T{j*l&>w>IYb<_! z7aWUzpq7!ep56|BOnm)tu~d3|fPB&wp|mdGJVGV(DDkOOwgA6Af(KW>@D|FhK-uTR zBFgTA?I*$45R`?_4V0AynmX?0GuUA$aWJT@&MXW_ybrM|6{Vj$%#M7|*THr94s*wS zBij(Qu;Byxo;t~1L*hr$SipY#_hdtU7sjW~f;b1*^Xu^&eBJkmx4Rv`SLruGjv|w9 z5?5|ajLM3}~RtJd&ydu*6Hxv@7eESYA{}3~3-%YI?J0+zpX{_ISarl5d z$}GvFviT1JjQ$5mq|`=b+rAvwIV_+vjM78#Ayz;$8hY5!aAr<{;vi|#V@wzMcoq>e zy2L5A84zO%JJIb0ZAs%;4?9Wp&45>)NNP(e^?U#6^P>oovuyru^pq`H3mHv{ zs4yaSMzoV_LV1!28QV2Zwk*RVFH7oC%+NU0B^llv`|>t+YEB)aU%VvY)Qu%duR^ji z*Ep13W9M|}rciuTzc1f@YyR*$?b1B^&4$Zg_4&pT&0Lx1%uy{qwnDWK8a}n&()osY zlMz3r9OGZzJ*KwEKHa|4T=f~aGAv(-GJo86hz25rP`OkuW_Z5krU#^j4+v%L;eM+W~;Fjo7=pAY4y ziXZyetwxS5gdeR)kv+wRm|{MXrO6j1TG#_}M9iv>9`Z?;3$emT&zHud0aqUBWx(7_ z+!HL#!~H7g`d2woTHYwGHdb{g(8JNt2PFRmGT_0s4s~Zc%FzBM!nZ*W@cA{~sGx#e z5)`)=F=(9+9m=Vl?)*|U;)_-KTb;u!@}P2#d~yk9r~{VgzjxBkuj(#=RYpLZ?rc^i zAJbGPoHF9R*sno*KZ1Id_{ygu!jJyd670(jTLAm35uJhJV2GXc4fHLC(U*6SNT!!i zgIIMD+9#5V5aSQ0S;9<7h5f>H9n@dagHq!gHu&$*t#Qw;O0cP_bC$Cc$VQDgP4um8 zu;HYV3Udj@ZU3Zk{_8F<;z~JM^oo5^E~Bv&-O5A*!yWy)q}j8UtRk8~aQ2 z4n4SiOVCq9ET%fBF2a3x&cCa6)+w528D`nUf8t{F_t<|U+Kp}5$@ipVRvQB6ee3IP zMPw7kmCqgSgJw3U8NqY7Z+@DI-vkNnN=r7M9aM5nhblSUaA{?hsJmdRPqvE299|hH zx4XC%`5Vo}p5aGU6l^rJUu`nK|0QI?>_VJ9nxoSJolO5WS1m?iCvk-?{?;`QzYl}1 zZ~amf%n=L5V0>gQo}Cl-;q2@2mEt^|&3_EsTjN1ZiORh5?y-n#Drfpg`m0EZ5dpuBUX8tx3(C0P#TZ1u}a61pd#Ek9ze7;$2G zPSiv5%;5dTInglAQ(?&S7!AeV)y_$VLhl~u1Ve#0g%|vJr(j13>9F?;9XArAu{AIN zPak*FR~A-3>D%Kp8dNAb!JzOm`r$YWP-2SGEGZa+wc%;VF~M*}%5l+4cAi7gkM$V+ zEL-kydEXiq@hHNh$#QfP(?xSgu;#&)2RvLxqB-rxwFJI8iQh^i!0j*o5%-4w^Lz8;~gcK&T}cR=20}-vm>w8BRT~k!K+K;3L>;{DLj4;oBlJ zN@P9c59`aQ3jhC(|A?6vrq!s#{a?G(oz&(Aw6_WAF{EZBvNOaeB_w^JM*iwBS%t_U ziKlXi1<^^*h`z;EpB2bKOm%BA6=mTKz?$?Kon^W%9R2M8uWw3o1l4%0QGGDOWG_iy(s` z{521WVhfOdHT5whWOnID)`(c~)4rfn>HwV;^M!EFzww2T^%FWPB>6%(g|j~7^ZZSc zY+#7=En39!InwoWs_VNr)de2C{v@cbfA~lzfci3ccEH%snP8y5>UKm%vEQId_#y#w z^Ppt)nZ-YRgyshR_a$A}PcRpVi-NJe_iY+mM7eR^eUXvnV$Y|#r8+Rb>Mwv__$ML? z9N=^D=0cK=0P8lXiv-x)LGp6ATGU~Wr zm?GKc`-O?o0ZXbOwnC12GABgytHJ#G;TtbS8WRo1WI{BPe=fWPwo6*T*6hPnH`)I~ z9$S10qd|Qknwa`CFb2uiAF-fuLz*RaDJ?krhSNkOC?#<}ezFg#0Bk#c|Y__{x z3t47E`DwNrbNLn0DWq?azDF{)Ki;b0-w(+US&`ij9VPHDW&34(Z&<{6D-m#US5RFe zdmWsGJUV0c30H8&q=<-pLSHx$mQS#&Ks|(q1mTG;4R3!(!!LP<_L*sj-;?jm!1fD0e)!X6N)j;Bm62#k-dBFeEJzYo%O^1VyX3{Qs}S{QB~whY zu6j<2jP*cC4Rl0Y`$Tnvy@Szz49Y6+RJ8b8@MHplLUbPT3waU7{hiNl?}M+5P5F85 zSNjx+wmIK_xgXM$enB0NXo!+bJK_NL2`d9@k@pT*98Bu?4P>mMJDrz@*pW%6MsjNK zi2Opg6phmBWybx<%ZyCnzm8048w>8D2%A2!DxGiYBJ4~$J|tfv8w-k$sBI4;&aR>$ z`8chuPazji=PRY1ooJUnVR5H+kai&+n_t))J=&3l^>|#Ba}2?{@T56<7?|o9_9u*o zE}iTvs1yZB`_`AJFwg5p7lY@s*EPDnBtFOKnBz0PI`rglkmgh|>jL=O*xAtARVyq2=8YnvAm(X_vv@Wmj7DWnY>t4Y6YIq@Kph2R(XY z2Q&7HXA$mB0V?~@Yn=bx?NS^_8aw(%b%|W<2dwYHefwHg&Er``J9$%x;r7fgifzR> zLo=n*J^Ft+MHl@9yWa@A**tp{AohLm8Af7s-UXjQkI{KM^nrUunVu`@nxW6AF|6ws z-UyLS8;w#~-M@Ng=#Jxk`0><#2E31RRq;Qdwe{7%_=wq#{)+Hz;1}+S*nvAA4JEkO z=O=r(wqnBnI6I4`BK-PQM*{cmNaobUkyXgMEaE^f?+&TlG*$~ET9mYhlzMm6 z&T2BdoQsyOZ&!DxR(su$B8e&0S-d7FYjt!YLfh8u;*tg1#iey)xQXD)tD)_$@GEC; z#?#Gsder>``a<<=Mq1yVG*6DGSFsYz)`>XF#>xyunWOH3QdBpU`JeNT`?vY&Opweq zh)Z=1;u5Xen8n+JXw4|6{y>d}>?4?76SI*K+dp%|E~ZA-rvXoQySUJiGk-z8!67R@ z>ONvNI#}3Lh@IQT#n2h>_dMPvo9F_KBZF&a>Tec*O{CQ6(#s|?u&0bY85bGjL_NkQ z&8NFjPFL>SY5wYSijI37&g$Jh`ksf79z@c%H;C66nLf3`(820m_>CQle*|ZH+Ih41 z-S5<1iLQ$Z8@giG)sP}&;zTk5I~wJPJ)PL404=f6tng$zZAuzLn93gGQ% zO{Oa!Aok|%hp(Q;4CH@4nm!+Kp#Q{C`coHq+-n7-lP8HQU8XC) zgC>EZ`{?EAb!ww16jF?w8n zsnXr;@SGhL3{lt^;@z4Ec||FXQcHgTr}S%#9A8g$&xUV^#Yi+CBY^kNW5i=-jfGZ% zL>HsswgGD1b8pFSGEX_a4UqFvUov2Fr+IwO96kHmwK|Gp8;vOXCg3T}d}a;1pPo&O zq@&FrAeDT0q210y2d7W?7+$rK`SJjwh(^fg;PD9T-ov_%Bn#X7fkOX)p@VkqWWESF zyb+4_^Ae}1z+-}rZhg3(`v-OemTwQK zxNlU$zPOuL$~5{<`dms`P_@)m{7mrT<&)yWyV#jY$B4J|T%~)WqWRX$fWSDA6tVt+S z_7GIv5wBI^hdjn~eTwn@7|DY~-;>N4!D)K5H5)#Yqk=4=JCq4qP^K~6k^!FlKU=yx z-coAKUiU!V*T(C9LDU%^)X5vwHu-Bg&M3UBljLuFglyIa+M;%;JzC$;?X7~GA6Po( zr@6!h-U9Y-&Qk(D0FyS_!}2ANR;s|^W_VrnqrMExE7Lf_s(BhTw8s?;UM+5aRrKcL-b6y$^@YVQ!_+~~-VAS^+Y^f4-&MMiIR`cO5BbRDB z+UJ7z1nPNuIMxFNdD;$3TDqGk>Z{*Juu0!S-$7%y7QPJVTj-mxHfo`%3#mN|&0iNJ zwJiU3@MvF#V%MBcyGD#0Idate*YckQ4DU2gIQ}f)cVAzkywPm}A+w2(wPoWgH-&f28FGSZ)4=n~0kg9EpEasa z#Pn*3Z{hP1{9N(q^jM{eI%W)~e2w8Fj1u*)4O2ARTf#mG=hF8Kd>efiar-ooUTYC~ zx&YsDOK?>_+gr&hd*>*B%iPJhxNqI(-S0x{EE8*47Et$AGbUzJzDBpVFG;qxfNA)| zolRdX*bC8W9k`%TK^LAvT5E9$Ll%FsBgV0#adxz)LSrV2J8@Q# zo{jeXp($F>pnAcNEc!_e9|j4}DL?Oq2Ay2|mDe zCakQG`p^e`S<3V7No_Jc;fEM@(1-9viZR@D?8|EyTD1}QSc?iXL#i5DMFVjD$53o# z#(Kzf(VRoK!?vPM1`01m1JnVx#`c^k&;z8kbS`-HPGpEbJ&mVPVIOqqW4TYm(?>Et z2{ew3zXty3j$Y1RtS!H>>dhd}(_WkmS~+{m7U)vw$`j}5>sHt8savCO4PNBITjRN? ze9Io!Cg+}YBlX{`qqF$e7{6mkeEVaqf&lupWC~#U&(Wqsq}fWf6kBm>T=hOAgN^GJ z=`$SD^ot!cs76T7`uctsym%?UMjp((cfa|++*w>sPj=B;vB-d{hgq{Nt-=2OW;e54 zwtpDkCd&5n!Y?96-ADU0jO^8t*~8%XLxuAs*HOgDgTv%07RvX6sMMYJtsbZ6o^Z3> ziIz*gMCtifF+oTEDyY93aDJpSWF5wK9n!5xzec(Swwi^ot4t4M!IOD%cL7#FLa3l7 zt85am1v@D!%#MBwtO-vs&ezN`&u|B9gv69S6(i&GL>IWk*C8s1%9L4_->pU2vC+)3 zVIJ~4TN2GEOZSkED}6M*EX9LdT2-}d!b`pNtc7t+cpMN_5tQS7MwE5|ri=C_ntK8L z9eXxf*JQ_g0$r2i!o$%sf*H!G>CwmF-A+Jv|G)Z&tI{;Qo|TByWp#yt1hIoxm>>&+@wBfD0y9&O63`* zcRy>*FkEj(1Zh`Byq9S`<<70v44zHfYEw&PHF`D58VhCm-=J)TR90oE?PkW#@jhRqV&rM-JDVN3jGB1VoIS^e=G3ED1ZLxT7H)4+OO&V zg0ENGe(R&%BJoRA;W*tdtxo{bv%4J<3tK?Klz2V)^V8M^vGkr zBtGkZtv6q)S3Ov7a^y~_UYvMgf1QNhT68ne+jH?5nRVr!mfKP558?l*w~GdQdje5b zV!b^T{%3EE=GV%A4zeXu4!4LTUHg-Z!i)z zVSr6u4d=sW^)K4U>y*yrt`iRznhVWMry>n zhmeRyqVwzkFY7V9PvV{b>o>+m?)JfNyes^oG;*ayDp2NK)l8!rlsP;`=*x;G79PR9 z4EHNVf|Jt1-{C$9_vxYmZw~=(UzFfsl3~M@FAl~aO(Q}41cSOq28#TEZDP?i@J_QI z&^1G(9ODg1QjXDvgdUdP8Zj15(e1%V7D^*I+E69E%{Nr_B#&|t?OeE{nt3*p?~YRG zQHFBqeSx98XPJH!yjsX#Bgk_5M@ioGz7d(R*LfO%QTF+l<9$i|{cd`XQ3nMuw$Af7 z-aq4Cf%i4>_uKG(Dc-|B$JpCE8}a^8#A#k=oM;#>wO48w-a}OQaEfy8- zm#p75`0ppbq)Zb3cBmY)t3kfEL+eq;{t(q+ihuEBd@(rxz?Tgo(T!DMItTFeDxHRJ z7e7*IzPM%nP)R%HCC_-sWoO0V8suy4-1IW@$Q z;e|KERiN+R4k!wUdIx82elYw@f#pl+MZ%M>$UHx+VK*rA84o#gltGO%t@p;dBD z`;U+}Kw7DVuPyvO7EOljCA37Uhw@F3)|6m%IUo(%aOvn9zzqw=a6iH(gctV0%UBX$ z1wFkyz7sWf?3S4@Q4SA6hMSg$6vptwe~F%?Umml{ebi%k_+dvMyxH0v-)4SJ{ez! zwDw46gXn>!$U}Ovq^D7}*3tf?nQUo>a&ix2&*alXx2}RNDt@U#-`M4|zo`QS);W+b z6?9lEUnKa8RiIhc7p>iCPVs(YUu7?PFlV;TZs0y~V}A)!Sw{B_>>jWKh4> zIJ?RGeGjX<=+i(_$g-PT)pm;=a@yZ#Z0W@K?=WjWPwA$;x6!%7ob>q%VgmEIv&p<& z;{GXG$=gK`I5}z*NseDR0#b2}eM@V!ECJupz`X&V5XC)TC$8Z)D86<7`D{Y@Q{qt5 zQ{pg_qA_cp;sDe5hM1{S9>}mBJIk;Pe=E)zn&X$4HPRQ^Ge9opD+ z)g2Q!gZ(MgY2xIs9iFR}*1&Jf1ziUFYJP*9-t_rG7}Ep4hJ7|@6OBY8>!6Lwg1Sb8 zt7ZjP4r;Z8Q#Z4(Vx>pP+K=yKi{$XwAh-RVdVv$JA{Fu*)I+px4mU*NYW}8mMn{_M zGj|`xleoDFIQKL9&34(gPO(G>Dj?y{XBB!KcN-^fOt4{vM~R}&O~iwxIu8K% zE=S*D^`=YpZb7};c)hz&uUe{Cfm)5a&325LUfGyv`}0{@LZTHGD2=iM&%H)PpO zXMR@qB%GOyTq4e> zvIDa1QDFu+B{)e!7hTyzUq-MJ@X=UIz&OPE`tR!!{6DX2XuPg1|F$mbm+?)uc!zbT z&F!D2eea??Yq2SyW{y(V4@>7ls#LZTNM+x})t?9l0puWd?%&Pw5Ao@S9$MydK zJ=Wr630$dNEb1WpkZ|Rt%r3>M+5dvW*g{|_-TSe;MtBC1vCvD;{g-_IH(Y0Yhx9mz zFPBvMXzNzeqt(h98U7hpR_Ptkfr0g#`@p;-{tBZ7ay7Yj33?{qF6YzaFV7>r^{1Wx zWtXq2y)?<8w>QmI^=Z}GDJx;kB!YU5KvEWaK4SdKeOhHrw~BW#Cf>y$=1HgmGzO1f zy&=7w@-@wMq0G0?8-%{vV95aPz8t(OamLDcLu7GIR0`Gb$56Yu&&ysDYc1+-nmc!n zvQL}v4*E|$mp7s3Ll%gI;3TBUsn@nuR`AU5rOisBTWUc?9Db!wmvkGyfr-_*D^&YK zQU>fLQ2)-K^sq5R{cITQ(;JBVc1sPsZnupCjghb85z~ZPE#%N@`ckn-N3AN*>f%)+ zbn<6-a9@x3ul=|0hoiI)Z>JeigN}N=R4jz&+%!36It#Nb?Vi_RC#CwhdGb|bRt=1v z6JBwrhH2c*gZRKnog%0kBY%!Gpjy>lV=l^}!v7YCow+@6EJZ45?qBkAq8Ql8U6cILoy z^5Nd+rSJM%kexE{R5$JqUOIh!8a#?OpA6Qb^wB?;}2>;@}q`CFT;;u zHnaBp!*k*121g3nWLT;2y!@0Q4e!!^@@_M`e=whXGQ4o}qMSEmA)o51e2OZ{wHM<{ z^=)RqA1tGo3@?-XQMt>Y_Oj5aq&AN-t`gD1=nmmcgb9`Sdtz?{-?BDy0dy8bb{3*6 zNToy%Ydq?{>~qZh-``Tk2_tCkg_xK1Q3jT2 zd52~i7I_{qEbx>$1p2Ez7 z?_7a6kT`?NdUi*40#3B*PLh#Bs_R&8Pl648lH&$@j+320 zQiaE{CxqCDu;j41J?2j&kxwU?fi96xg}uGn6!R&P$g7Sp3|T?LTeS9gg5nFgt=k#1 zq`O*Yigp>tT*p*upNIcHwI$h3_NgkH@_4S3>3_@kS(UmD-W%g()t!gI-+Bkh(LS_V z!?8{!)>3A*qchW%HJ{GsDIRTgu7f1A={7d6@Q2guavTgeq~(q@oav0tlG!+Y8P0f8 z^r~tWmO4?xX^%It@&~i*y&J8j&)gJ~cF`zCcM3XPZD?mJQUlU`SkEL!$aX;E4RVCn z@oYa5_N}TcNH3C|DvlxDcSJ!ZIbSoRERVKo;1e_g>=|NTfXBwLa5&10UFN~*?OtZw zd|;1CoJ6BS0c@pVSzxev2=3VZVfeqEE@>8L8m2pXdu02g!sIBlAd1J~tQsq$h@5~0 zIKG~^s-6yLE&z|ns z+*XOx8TH^qn4OWp#ajQ?4ZqGf36Fzz{6~^p>V2=YM{OccD$KY}?-4|Z{VVjJ-tw?h z-ty6Uj8QtzX+}mr5$9gYn-tGG zGg^aOrSYeV_|u8e7*~wxA{eK$rMxH&5}I6x7G5r)i|*hBbx>ntE(aXhb+GE6AOjR1 zz&eh3)=_#A`4xT{_CtT*GPDJmE{bpa2Il;Eq!I0zkj+O8MIIipVACNBJetdtP*`|nN1tJ?fCm^Od07H_f^ zVTY$TZ`k3-R6a5QOb)F`xptALlg>EX?8~~UAQdUXS^5(d{Z`2J(16de6gjEHHdT_d zTFSB0oaB)i5B$vua42V$W1n?j zO@?!bqsn9eZU{#9*!IlNweN=4F!`4goh1DjUcakW(YHoc;moaj(PnZ_bproL+HG6S zN8J@(S;>@crf8aDnp0l#TurWHdiPdfH^y+c_nF#ftkdlcT%*~<*Si{_m&6$E@jx5d zq2UjQ3{I1lq)yMds2vlm>!;hR=D^Rg>j|m6iT~QQ1-fCyxlGy7{?jf7v9eE`%5c2l zlb3w#o#s?PtIw5|*>yKBmnqQxyW~NXWCEUFlb!RfCXQm!PV!t3BH>#8!G#xuMetp) zw>OEoAY6vMbv1VZu}julE(l!Y9(ZxMAY6)y@S5PjlOLgvm)VsBSqtyzn@RaV92+ZJb+XVkHJgX1wo|MdCRAkrF(q=8Jb&YH0$xeedz zqW7D9H(49a_1=ZmtkYH?cQ9ipmh^J#Nzw6MhVyxmIZDqu>M ziSvyad{w{%&EK^FRzJ&H?#OV+VFUDen7sACzi41OP6$j<1=fDK^Pvt#ikeOHvEfoh z3oo$#u{I_zcT0nLOINn5)HfDo=7L9@3Ef{tU+y^Lp}Z{LvcNdG#rWG z*^NYaCL7oD+gUa3JA3haJJP_OLw;polV!$1q4Hile-r6M2!1$mCAkmrpGgix`<5D5 zc+5L7k6vniMi+Ll!F^cL-$5)+B?pcCjtht>W5~WSZ%LW@#PWhLNYJCM0GIdCpUC8Q8;NF?3wV4dpJ%fU`;+5pve(Z>{?^Qq^bcb9_lr4~L#3rg$y!4{aVpSKb78$8Yb zeFv`4Qr1?&ytSBYS7&iVp>xNx>T?< zKy)-fiC#G*0NA;FKcB0ZKd`89LzMJC;G+%^N4@Z1)e8;N3R75k1wPp*MyE#ALz01lHKupt1>3Hk`$2-dJK+LZ7O4Nc?OG{VRHB@P`|(Mj(p z56wd|=7AFYfPo{O>#V!@QF^Z9iclqjPK7r-(skPx^W((7g!o^yF3CoQU}6F0U)#Cn-aPu+D;LBHLX>Gn|rYaPe^n%ohkQ6;9DN! zL-xTL^j*c|GWitJ|k~MlYnXNkNG`Rr)c|Mgd1#67~$7 zlKQplnalYL(j>WX0$>eR1-#3x?!+66Qq10h$9Ir@Lk7j&oyRn4ZKQ9;`NA`M5%N6M{J z?Zhb7siprfh{ZZUFYF5oP#2BYx43?f^c7M!(m=b%@cR^!qkTwCnSHZ)xQ8h&sY|O# zn?I&5%`(Z6}HRXf-BgS)6n?^?`u4S-M#O|NH`oW?HU)oXvTg3y> z-480!W<@9A1L#FUE<^Rw*u}=JphgB+UmDIx6OZRx674Y@m^(l^pL)0h+9r17P(r?Hk!752|ms$;2E23C(+F2$;? zV~cX@BpXzHEUE;wRuBms$`+1fz5=*YkNtvlcO6|HppIt&_XK;7H^s)4(PvwY?HP_? z)=c~J(0$CP8)_R0Jg0ACMrPRcj!aPdndH?MzCzU}vU9iN*CzAsF5M5O96E=#j_y;e z3)=vzklTLTmEoXYiU~W+?3W7Arlcc9`v84kCX$Fmb4YVbbIcTq?Zbg9a~#8MMQu6g zD~(GoeDmcva%{Qt^X)SZ6}xlmbf73d6o=V{)$Xug5HkH8_@5|d!OPbLp$n0SOSlYB znympBbY5jT#BTS?^qqC(z{gGYM2rK~3r|+C7@T;7D5rj}*h%9{^GpikX--WRvTR=oBfK9bbC$nJA-*(KUye)V~G>(gB5p{FHk?(PiO0cM`$@b}Od2S{i zQ3W=a`s6w-_;S<+!7TBg+2WyGf%VbWE#NDiIGcJ%#c6kBI!uR1b18vN?Xbq}iJrg} zaZHM`Y7p~xSE+;OZ<#k8u=E*OW=$yKZonCxtjE^{>0O$KDN}dN=ccrk!+wi+z1i@| z_77j|H|GCc>DSYUcY%J;x6^k>_P`j!VWI-#m+zNb&I>n1b#-(OCHjy2It=7diu9ay z0f#ZMXXk}rl*%zuxyr$EADiz^-!yF?&sizY1(E6=KbS{XN%{u^dHyct`AW(&d@#>X z>-jMDe6a1#s0?ktFZBv_%^axfji?;Y-x4ptX94y2>UVpjcJ@o{oQ({8=TG~xRm$_M zl;`jNL!J#%p3PF84+rza`pa5m*nhe^$G!kx`ny*={Rr55s;rQ;=$UP_M!*pRUGN}u!9mRhnXaKT;lFd5T>Tl+bl|0X zaizJ0|I!cx-3G#6M8#qsgT^d*%(@`7i50NRFXYZc20`!Dy!8lMeZ|*#O~PcPc6IxC z#57R?;@p_2^TNgWE=@R}VFutTR@alFsY5B%bqcw(CS9SLpU^1-z0P!9UEiZpeNRaB z{V87G38}t;brP#@wYaN8Bh_~p8bH+B6{5X^bO?3m@4@f|=u=TUG|pq+mRFyJF3YS+ z{wIB}mHas(?gx51@Xgl@e)DgoeyaJ3&YypCdA!_rC`V&ph|sDt#wnaHyJBl0)~mF^ z`qsqjt9$3?^(9N+td+ibVf>q8V;EaA;8NP5^?VD_H4A{#NyjLeAN5W$UyW3Rqn`g30RdpHU2zltQ{|8Qy4&I?`9ijD->mY#b(hY66XB2wudHe(BUqScf6SpZbgmV=; za{c_*&6B+MSXUR&4zvzjk=Cv71%^}94xIaToA3A7QA6G#+_~1T-QTN}WpkhPG3w>; zqFLQ5Q=b>u=-yscq7pvQABTme32oj2kDcd*+K`&`+KRxr-)4dI=qAJnD@4@XUU+7? z(@k-L-t#KT%DnO-X4E3vd~mQ9f!3r%y;m51;jv2867Ci(=L{omGT&4=*H&W2 z1PzhzU`l6QTGtX40)c60g)~}kYl&GuOqNc=%$SWHRu@6sJ$UVEoMoE|uRQJ^?p@5+|Xe4{MC@{K^d1!%WX zs<$XqWRpKDYb>zkTi8Z;uDk6#>?^6xL#Xqac%6uZAk~>|k#x=jh~+8u^`4gfz9E(k zKB9|=PNMz!>FKeU;~w09ibOUU1h+EaNTQ)=A18XshJAtX+5}v`pOwZSPy3_5_4D9! zhxXzajH$WDTBC?t@v`mZ`7!8H^(hliipO>%xoc^z%Wm{OE5Vu7^CJ3nLmTb}p{#ij z%Fc&(NWEtGBQ9B)i9g|@QZjHPWBf`JJZ{NH_PW{0`^?J59I4Jdh$zzQg046sDp2kl z@@V$A*p}I&!Ya)5>AcuXZFr#yxLNyI0vP?~|!ru&`uYNvAf%XSxL^%7nnf zQZHWh#AcZ-J0!JqQaoDE8XPslJWa5_W(@m1te(DOtaBZ{V4dxwK9*(1l3x3q0=xMx zv}dmj37z5XJ_cIj2Iml`797P>o=xBx8XR){7SxgiTZ~mwYsWkv0b?`j8_^T$6H~fb zntgrnCfiLlvc{X>i&f)d8%yjo^X~?i)BFc8|KVNzUoCLCP5pmc%`}+$zgjegTMVcg z?YBww&bqX!Wv37QTrkh}YC(-T+g?){6}SCam*VR6{S4kCpuc}a zI*9f0NwrLU6!dpJ=ocUI-GXOZ@q2)Nh37O|?s~^u(nTkq$x6sI&I|qEr!?IHK0%cH zMa;um!d`SO<$C`R)x{bS(ZdttK|BX*R)zFEPXy%no~yrw_TpHXGe0S_b+Alv5b{!~%)obD zU50k0$67DKH!)l2f^8mr!brY*GvS?7kyy(s6JNKzUh~gg>ZEvXx3ZA|Ht2B?wkLaz z4_x~&zdzlpUK+$Ae+<%@$HZ@_SD@6x^|3vI;g{4uCqadYUs;cKl2-UA+lX3^k^4i?x=&R*qc}(bN!|9yQ2N!^`HZ z!LrZSlLgA{gJpk{=P)yk55>zlfD;}-DY;ZC*5VnPEP%YRDR`P`Bapj9&F7wxp$d|Qh$%`g*4~h`h_UD z9{qj2m(iTgqgZiF9EXonmh z-yzwuY>%vLCcJ}fxHPGSMptfF=9wJNWoU_w??-)dmT8=3y;lE;TV9fWit>@P%@EHw ztVIVaifg60AS`PHzGA^4C#&iN@ZZOv7m$>fo^b<#uG3@X> z@iY9=16(nh@CU9>B27o4bI8^E>T|e%1bK)*`Zm_(BHRx-idc5PN8B=;jaQ!uO@Kc%KT`w>Pg+^D>r%XzNucGX2j27jiQ~@DJPmwT z?LmqaF~v`QrwC%^9{lbMQ;4|M(oD{}bkjkK5HZS+7$MU8r3b&jdvI^!@9hT*@qVbE z_+(VR?%;=bk0|Q#_s)a4c%OhskFocTgY9RC8dk^p&`MO@rh^gTm*E>=`?{P-Agd-C$d9=pnu+#-OV|$x|G$K}oB1Zry*StI`yH#!+J`eSXe49%qpjd{ znwoRv+tts@wkzhb+cjJE!ori;9uaO1lbx~`_3-T}u!M$(YKs;=$Irq4)KJSg;nN7t zasG4*`EEW3OUfa5_CB8N^}isN8C7}m#-!#FyR1=Tga5h4bBM33MvgY*X!OhSwz-*Y z(;=ZCDHmdupe=B8<7d*B(B|NIKn*X@D;~$0AcAw;ew+!qxBU~_Cg4o4ckoQ`gKIZN z@27b7#X&qf6jXl-za!8*ADS3-=LNMy(;up5fpyQhp0#eP(K?<5FOd@9MaM!??R7nc z8lP;_4X$OTFFHMj=brir1p7p)T^o>>8S5B+PQ79zi~Cywv9>-F0be*lgzNX23%#uF zA)H3K+q8}caT=l2jP_mwR(+v<9opN3_V7f)8Pu>zFYoT_n7Z>sXV@U%!PK!r2Tlkh!Y z;!O5PjCIi>Dw|o|3;8Mh^ZtEiW8Fx!U2U_(+g79PxmUG) zcm1_!ySa_pHrmlP?MTWwy&7eNV!jMgy4On79Q?MvAfL=mN*Ki2=`9uDyJ}8Bf*e29 zXo0hz4h>-A#Fj+j@I7q=ejrM9)}=8mmGF#vv%d`O(i$slIq#DJlTU0JVa>(t7GP#6 z(d^1fEuMk3SVWk9LAiZjpDZ<-qw%T48IZ>3oDhYTy)2o|fHXeWd9~8$%*W_lik|?N zL;psD(b0)v_*nlr?MA$ytIsWWU@g+wlG z>fZxnp>h3>X924OWMB@iGq{+<#`Dc{tX~aN7uJ zz2wi&sDnSkI-FCm^3xGljc72PbV56w$4N9;Zv5LF`1apL*vWUFNr<=U!`Ey0vr&?4 zGKN#02hPwL81PfM5O{qE66p9D1Y@)(&^ef3kj~Qs=V#g@2>#X~FTvk-gg4F4CGqO95rUlmf#&^zI;xE_^qgC^5c z{U64th&Xk-aS$tNm`{8s#Ys{*)-c|4KT72tLWx}#4tl=jpZ76I)?RtieYOuljpo^D zJ!fN;pM&3gWiwMU!@Eve*{gyoJ|jSQZ#gJ}JFN@2AYurxlfH4k2yV+Jud-+@cr7o% z-_xr2Tzn$YC2O!Vx!Tyq<08XM1^%29s>J_k!E-`>gt_uNBgL}08>@6VcZ2nMz*CEV zk@Q`!c^>jzZ+Q=WcfLfUDT9_%TP|T8Z!l5uc@Ox)l z=(h@e?f@-AYjlqFL!6U8aqmVCE8;!;o7BS@=;2qb)I){T!%IQx;n~1B;ZNbKdsuFr zRGo}bjtDpT$4GsA3+s2Bg~s>TF6yJ)FpPZvOE~tP7V2dodMQtBqP+$EOihXmp0Pg! z?kKcEb5Wla@6BoShAAIzEwB|>$UBKA7~}nX;kg2e2r}3>MI>(-hH?6JCHI0)< zJkN-5#J>-7ByNnYwA&?~CsVe{yK6r2HyFcw&wpdoujWRrH4kv3g2KxoaC~+*S-%vE zvDbeomM|H0=Y;m)GZMY?rC7$C15a>Ut+MQ-IAeE3or$;AGy11Ni4?mt9RCGeM2RR7 zB`BXCT$`mCX85LhJlpkJpHe=shBiPS0`y^=i?R_Arv${gPP^i(`~X(@5izDaw{LKj zkH9LoVU<7NQIx&vyyHTW6a%;yQ4BuB(g)*l{J8rZsy9$j+5}XSrf!`b7 z^J}G5W`u<=H1~_l=n16wV@@Of>0|2w-9-p21jw!p%#`Z-!t=0iyi~v3kmVT{ufIg9 zf2OUkV7{4ZpI@24-y5%=R!xQVFR0rPult+9x+hpBpzgvz>?HDc&wQ+{n4S~SK+9Wb zby>MFwh@*QQoj6nd-GbR`m*C|aMmR)cvE3v9(2Fh#t}Bq*o&CPg3j1q) zDmvrEv5;mEf>i92*4J^Gd=&6LX?KQWGhm$(>d_^XuJjPilp*aG<)|Y;!noO(M#8$Z zO9TTS;^_b#c&FDX?G{#1#g~W!yT!fIZjm26DQ51zC%z6d>S!gN6Z-sg5{RwBYy632 zwEmi1(IRH_Dw}zdq5E`B_*^OtV|KB<8U(9Qf<2?PUEc(SH??DZ%I5uw0f)*!(UfV z5SAxiYkL;nN@iMUZOn|9dS8rjY8k$&{=#>qC^Z5!9dVGuf=rwgZ>P{Q&Q?^-J_o;Q z;nDF{*0=oayQH!kJjsBMUW^|gBuQ(_#t3Q&I(DT=|7jGHCFqE8R@Y0orNaJlU$X2v zGvStKe82p#FPT+XZ}eRa$F#Sk09I))$-)#aXotIGp4P*I%2)4A5C? z@s8F7!Sg5hO}tDM;QUU=A&9RS>+w3q z!i%NxZ}ANKZjq(aXBn(71|1>zhOddw+C0lVTMf?6VQrYmmI^p|&&MYRa0uSQ(>6+e$D>C6Jp@q7l*Z@G42 zR2E+){dx{m{aHv@gTmb+Ga6nGH%5rNn@Cc#m*y0E8*B|$tYm#g-P6FWk6WP!1xYKz zzvOxhHSKA8RMMi_)0@b6`j|vZFO%4f$kY)*E8$RPTQ#@QdKM?l2SxUpgg#lKd_2{x z?o+7$=zVFK5=X{LH4y&4 zPbxJ9rB;x|@Qy->Zg)q9$IJYp?#>4%fAId+&;`OOdlyP* znnF>;Vbcl1Xb>HPs1roTR#8!LEYwjpM{q^d(iW;zz#?wodaE!Zpj2BLr7kHHZ#$XPBg|EAw^bo-KhBsc#C*(Rc-Tzsg#X#69ZwfC z4(S|{nmFTs68G9q)+j4x?I$_KcdO}cdQmmrV>jB5%V+hVxE5Rn<(5`R7Tj9X(x5Y~ z!|tJPd>HdO2>bJQ0(=bwrSteHL6W57v$Nn+(J3giIp33|D*S)1RE_^xWg7gyu}qtN zyn*T^T5Vg|?F?c*5fD@EbG_20r85QafHJNXdxge#wM?&l*ro-=pVCM<`ON;pGM2B3 z<#Vrylg{%jU#ECprkR%%5!a{?)KCyShb;^u7sMd)8(78b5RZkX+pcCXe64*R;ITPO zcS&64XTsB7s!NgCPq4F?oc6nSQ!A@hyaKKuC`#1U6If)wTpQg++lr*Mk`t??k?pQK zLO$A0L$FcF>Y8dNf7Yp;m$`lx|N$Eo5U{YP;MkVS#Dtesh_IMd?8BXYgpZ|)gHsi1b2^zG``1z zN*mqUa3*eJ@1m=`v=%R4uie+==UA`%uvVQ&SAg}p49^jGy7272u1_Hy_QO2d6aNzH z4>TNsF_fWe9Lqo#%(ds8cdwdDbVPYX%$4Wq1>xNm9{0Ii+-&H8%x3+O{!_2iI9)}h z2)0(z?70DBYMyoh+5=ie6MAI`euy}w4frQkcazW|et^>&)jXBeJXWq*8I~y3FNB9$ z6hv*tS+ORptmcui@zkK^D1Y#JR&y0<)+iu(fSMJk`D{?*YYKeWra{fuGOLU-D;z!2$0r6$bkeb3eJ}4?3m$ye|Yh-2}x!i;`$KhLIOl(pcRZ?8{o*$6oN8VQC*Z z->y!L48et!S&T0@6F7zDj>esEXZN{acSWF0t@!>po@4QR1kVY0(tJXD68&}0bP`Pq zo!nGNuYU@A&Llr8*=~|zN%n0X(onh~wZyZT3yEQ}rL1vifL|c<2roOGA`e_g5|31G z@)X#!Ji_aOfEhcU7xDbFyiI|wym`ob5qW&bGY`)Qo(hK&x2c`tooFB3Rep`QVbDUQ z6>b-l@KdlBo}to;;aAaQwg<&mm{rOtnFeMpZe-@bucsKH<0)N zv)WhKNijk30Q*ATzdjGB3~JvLIlhY7owGuVf$RyIGkbq+WhLFk(v$!6Hv{C)TztXcZTg8F?6zK29JH|OvoxDNSXn|KijqhXl zWpYDag#5{_=~FrLySrat{$#1W?;}tju!rSwX?!|vKxYkfn_zn${zD2!xI5tA@Crvt z$zV6Qyroyn&h+f5eywiJ&75I;Aek(jB+vJonT3|V4TTqzk#5&V;i2Y#?mW$(t@uplyZZT=NpAK)wSd-k)RL42d5pv)teomYj zIwxL$O>d1aKTIdi=WVLY^oH>cvPPTf;wNW1$2try(j0|9@uXI9lpmhNlMGHLW-`;i z!sc{t{Xxk+fRF+^X&PU0nB;CW@I?^;?c&_S8$@qfk;!?3Gp&fUhn1NcL4}~m{G!2t zT0V#5o!L3WvDEnyNlXE&_iy0GEUHmv9)V897dkx0w(@%=0(LB-|(zp?Pp2j;QaC14X-}Ftu3#1F#h_%IW zYo>GD!_({JF{e4u)pm&92s4k=;|oS4YHeftyl1=fM{z$sKTBe4oNo z&1c9*d4mk6B-Qpr8%ZljDnTQV7Fs;CW8xhNSl`ehH>7$<|^%d``4QT15-fE#zv{z76~TNS^r|#zm4>B6((_@oF89 zRaF3^!)Ip@)LS_;QnYI#(gQBe`MP3NE^pLAEWO64R5U4L=N&qbmzUejMDKISR5&n zA+24cHIaC9=c&LaUB<=a(^F zY*4&Epl5PP|HL_T;By09FXev(X~Q86R1--XjbYM8`>AJDl=IbA4N;Eq;J@O&#nGya zkAqy_aQU1y-*#(J+~%P8mjIJJ(wCq=&&}x1N~3e)NOmj!7$k_OWmMkwR=s@B-X(n$ z&%uwCAE(gYA&|BFdwsb@} z#Eq5l>_#12XHN$EexcIfFk;O~lt@l{Yvs>g$Tqb_rX2yT4XPMDj^0w{wo;3i`oC$R z^>-KcFWP^j^dj+v376c9cv_D{hun?#wFtWq-b37%c%DIc6JZ<0ArO5TUB~P2o7SXy z>+|{PG@BeeIO{PRA&5nZF1XX!G_~RRYblBrP`Wl2MBD zpYeX<@3Z}WCUKMLd64*?7@hY)Wrg5JbPVyzsuYlw<|_!^TE)@+(wb$E0$peuVIK+n zaU^76b>+0bTDh3$?)a`!j$(}0ha{<;p-6i!6g@W|sI*;{_DiI_OHMlgX^(}VJ%>Kz zw0}@(rP}~`Ud|xhln`NA`gWqy)a_dvzKw&tru6MxWgjn%JB=ZY`9_T4MBusM2sD;7 z=C5z%b#=gv;BWw|su`6>^xQ=~XZQ^Pvfrz;wNniID}2Ry@ebJoh!pFQW0%XZ5 zfAv?q?vXEe=+eTEi+FRV#(qw`jrp56C+_YzC%(yW;UQql8}}VOa%7rh6GY|P0o;8e~AEiAgr&U7lhSKui{O`0c%V|^Ov_1YL?FKn*ww$*ApQK$Qr_Gns4*ip~f0NVB zm(z~=le8sr+P}+br~XOWiE`Sta$38bmUNFgL@Vg!F5M%*@mu6afH(~u;$ri*I_fMg;Hwe9N5^qWdm{KagY3@*$?E_=0@4E`Y=UycNBa$Rc zv#^ZiS7r7T$R{V4c_@}2r~HZ>mS1J5>Xv^p@(03JmbzIeVENU^FX6lGvHWV}AI0*k zE#=+vXCwdDVMz|ASx95~HOMbXx0c58Ymnc}@@p*aZu#jBvrgt3HVdlQmz?&L-Tm?H z)o>hZ8{KGL>?VH|-EY=lZ4aL&oqPM>xdm|k9q>{mp0v00_>$Kh#`{D(|BL6}@H~g- z20SBp9>nuUgy@LowC}1^q2AlzZBfFo&sEl;-oD2q`Ab?iM}YC#f@)yA-{7C*o~zD@ zuffgyZ35&2m>jMe>+<1JqI9^-{|b^+mYSdCm<{+3$*o?3bi?z$oPy_P zI!HewD(@VDeD0f=wK1O2sQ(9{O>~DRvogOI-j-#Z6NIrW=6Sgc1wX+tfvpmFP?U52 zEJVZ)I*9J!GQGkMmJ=SXg`q6wAvq^Zayhb)Q)#L1ma|PP4oh;mUaTN$w<@!Ta0Sbm z)4rUf|Cn_0V8~`2tx;JZ-6Plf6WVK*Z^K)J8)NY~?W>?+wW=cud$;VK-|e0}3VT22 zN-#$I?kvFE5WwQS7df35@k{Z0EPlU&-*I?W;ED6DEPJ(c)?-!FPMr;U&*kb0oZVnm zj!#pD;x0T_^jyhCoC7uwoLr!(pp(GFf>Skd|HfU5^O;%N4Y~?$L~%oLHRb0r)u%Vx z;V0Xb>4tSVCutNcsxE{~ljz6UAc1^oD@}h5uJ;9qHwH`OaTkIqNvqHJ?|4oz;!)5# zD;wgra%rhH_10wfI#^1eKqV`{L3{wEy-M}u!iO;Tf+VM;Drk*YseEf>>5zMij(}5Y z09Q63!sAWa&PE?v=;r2&6qG z7u^Er8f({i^ltbz6G96i?QT*}9$&Pz2L8V*)TZ3?amkv^qtNmV;Y?Qcr^3BnHCoP( z*KN4~o;~d${BDg2_vvonP_qH0#iO*RnfzCpL%W%;n7htUsGbZ@H7N1#=8(7|EMejY zg}<`ajOY&Ur7eZn~r;@d$R?uO6 zMav=|$|+8w&25a25EAcso9J5}c)1OFLeqff>Ae;2kIV1S1+G6Wzmx86W{#AG^os75 z-@nBBA^H7Nylc=VD(6GI7vr7I>ku|7-A}KpfNV>8_je6g$yhuAB3`Ooh1f z0^+O4MH)R+$Dm7eg4UI7Liyb_Y&7y2^~o3&qvrzRqbNbr?ulpcf5xA+k3^4D?Xy%bgLlB`731%!*_#gzg3r_d|EQ2rxSMVuwy(yF zt%iLSTKSak6LmC4b#W5JgF72r2%Vu7hmz}d64hPGd zfV?Tlt76(wz1jFtd!8->D4rrzwu+0-OlEd9E05kwyRcD zM{i@lCzBTo4qxTJ-gdTSq>TBzSSiX*X>a^azL)FLW6Wv)xN;bvxL-_f_ua~$ zVmdjDx}7GS^`aS8L5&`9nUfmQZ9BWsS+wSpu%35geRRK9 zSc16dy1owU`+ZtJcuqq+t$Cu$qU(79Xs3<%&KVz+*ZvXV0krsFfOZ(tt$b2$FKM@Xyxn^%z5*7Zs|pS2%G>aLec)zR z1E_$?8<78RvHWF~F0!KoxkA{rGd}_t2hHavdY(?)w^usg-G$}`{IEm3`FhOE^$uv= z#T@_yk)+{w1HJ}#WFdo+IJB>qe=($6XT{22R(Vag^0Cue+n|p|utw$2s~q4h?pD4H z<=aqxT+goZY0e5{2=$>0QQ$6JcPErfIxb( z>k-Cc|JsV*Pawd*`6CgrvYx)FNMgpIG0&Z@ED{#Nmml^bT4%KH;;b-}H^N>TdiYFe zv19RUnLj)SRH1%h3Gs37-CxY~%!v}bmQjLZ7$tZO#&>cxXh4qa`dn>4R0E%=xMf8N zsH#jxB zAy*!jw0qtZe)MKIsNR8)@*NHc9q!oPrbrp`t@ZJHvZGu~Z)z2}vpCGg%yo_&;IEbQ10bLDWH*VheaLHqgw_XN4 zV{JtU`tnxL{HvzlZ-1a@1Mrq^OtMVz!{5#Ai)!HObk4mcp!c(vg5C!|6#KCH^xbTh zC$m}hpw(;GEZ4Ou6A#tQ67I0y>8Qglssn@*?e7=UVarrOI*>tV8Yr)uajK?ILy9e~ zB8WR{)z(y794LRzSKDj7eD<4+PtW5;@oSMR4HEn`RyhsPRL_hf90H8{K1{#XWsc+zV>}=WE9Jdt0+%IY6;7 zyGZ#YztL(^gfzW-Kax0k*QAX#uza;~*W_I$&E|B_>ihi??<1%EzTNx0sBOD?3*?Jq zvh-G*xin_-fv5D{iFI*=NeHCKCkj90if;5qaR#k>qPYn#bf>ukfTy^8z!tudZ483F zZxB}n7>n+)U*dOq3HTXJJfpk&BR#xQf;rJ6WfQauodVXTXhIAi!_oxN|id zfQt?{+=Sb~xJI*QDDcT4nt%UNHvex)H=GY}%;FrEDG1kNU%c3{n0-Ae{0exxgRs}3 z18sa_4?&U!`W*O6!dr6~M~c23@|rycl>RexlS^L5CiG`M!j@#BRn9g|SLv~!OX{v*dv6~-g| zCYb{=9+qvD*ivDtc2HzDvYZOb zdxCVcQ^R_!;9p=Vu11OqNOZkSsc`FjP>^mKo&~o~>YWn3>%+!IX?em+=Qe^zf=z-q zq6upOdjzKhn*@)91Bd4{ie48_r<3w>PQ{%i{P7er!nW?Vnb3 zO@XR4UWq+^jmis{YENEA3=6T*8W5gWL$%B2H7J zy_TNnhvK z6r25!+aaqi%B_k_{xrS4mfssvq}Nn!MXyL|W{$0&T>;Fz0P;O^Z2dicQ595}AH!Fi zf#Udab#3azTWdBo^mOoJ2fAfBJlxS9X@FG#xz&~O{zP+OM>vG>y$y51A>4rZpgEzl z?M%=U7K}T+=i&Wo`F%3QBQ3>`!+XB`J`(TaW;UVPn`LI^QCDL(|aZN9dw1M|A6E|-js}QoSCFDg5uS0Cy~|Q z!V3s(2)`oyjL?ekBd7@2S%nvZW^Yhj{dQtuqc^eeTlAg!O#K}7lVsy@HJ(clZbjID z@F2oG1Umxl(Px1dhvI!I0%rmg=KaO-P}Lyl^$e{Jir0iSbTe9(e}0k{{-UuHoDI*x zUG=gux{d#(rl5{EMw!)SNETUb4!d7m6Xk&a9AC_sM^UXb#PgC>AqoOxM2XD`d6Mm-XA zO7#pyJ=w^U-mRXGFUzCJ8rsl5R?h%dPjVnCv-~jRLTT>q^eVIBz%hOsa7ftaEdjPj zO}*`Vyn6P#2EUW+skT?W+N{O~>GXISaq);d?j<}y_=4c`Ex^aj0@$Fya~huC;7RcL zDV~4F?~i8yZrPkn>^3KlcE;vJC(X%#@My>A5@|-J)Jbt*cz<+kvf11Y^#iVzy-gX>wp$Z@?}RReJ$2Std3<=2k>%3I+I}3A z9PF364@1j40e1<#aF@^zkntsQ(4I>t47=?pC~7YAD1Mn>v-2?fb(noiwC`uX_Oow2 z?0dbMEP>_ylzor0e{c!Bj6mPB5EjT|pu#f|p%ftcm|}xBHdi*(JDN8O!ch_EeJ;@TK=FbOr~_87D%Aim-OUj2|#(dFXfacBNSeia8zA z81&008Swo2VMMOPh%__qkTUZsVKhr|8oMc-u_bFV(%qTT(u;9`;JaEF&Qcvks_wRA zEZr!fI$*!(y^0xl`oYK$mghU+kbJY!Q@-VRDOMNJCH>jXt+1Smz3l#@C$J2&m;#x@|Fr_ z9h&Sj5gky4@8pZ-Yi0>CC~k%y8=^h=v}q2b&0rho4uaO3;+P`YX`4g0U}yZQ4RjCo zb6wZDc3ih}E#b#8)t-EUxluUPijbG5GwUYMiOo2(f(PQBgfnY0q}I-ytK{E(nna0x#oC~n8SKJm7H#on;rp(tm*ga(|_3F8R}C+fV|f*$yr_KmH|X+)(Mnq5it;-}u%g zhZP4ouBhFs@)*Y}axIPJryjhC{3@28BzQS&HGol+qI&@vP*P8>ij_n?*@%+VziY|8WpsYIbS!mpPx52= zsVBF0YQ~oYAHq1YnyutvWn&rPv^6;W(0Q6_Mhi4#M{KN|*PSPd^I*-eJI8y3L)XUZ zh$Gvh@ucmGmZ((P*-DbZj!IO0TPabv1Suqe#%I}N4nZ>G<3!ga)qE6da=;~PazLjl zox_@xB&S-0fcROY7urf^t}n3OqJG$;Yc7h@24k&^M_7#TE7siIc;+K?;{9ekqxdcZ z?}{uX@Vik^rSEPb*i=BiVLhvZEvU4igj-ws?d%1UPZ^6z*X$ zBwr!rrxVv2`NY*-zTzLq-#1K9Ncoq?dP*GdfOuErR`w;QeR1U?ncG2Q1n%4f2{v4@ zxh2?G+fm%Yr@sW7iba*wl0EtTg@tknd9Xu9ZINbIBg012J`3HWh~l!2>=s2j=x=$v z8wK)X{(fgME8}aSf9wma^Hdh&+nb$|{6J27|4MzguVX4ngMMcxNlMbZXI6${@_o>2 ztIWaI&9X*KPWzO~pSpdWSDD}&;2$aHoL%`XAPX{m+o_ztSArhGnK;VpzOnN2ZaMF* z%tE=h#_YD-S$U{s`;30_3hTpmQ+a(snlMh5CN#vxkXGvVA@%sbOEp$;nP=tO)bE6? z-Rf~w_CY-pW11Sy%JsNYAzGO5_1Oy&ulrwkUyuT|A4JXSZ=9~_kGfNrz53Q+HFSoS2^zJzS}6ifKPLk**$BUEd9KQX-;3h)7%`} zX|4#-eU4^hvM)FB-3z6??rJ!tx#KvWRSZ7TU!hr9ZsUe?z86bR)og)oBp0u&xVC6W z@G)QSb>M4WxIaJl{L`h+=iky0@0-%0*_!G(d?B}2Z=V5f#}uvcnwv-)nY*i|D!;e^ z-qAdn;6u(7iZQBZBI>R1W&>VpvfEzN%gGz@A8&N4L>5)!WLey2ftidEiEFu8kStr# z3gn?BCTVl-0*{7jk=L&*k#^-Ju=hgnX>TSZvL(tR5SH}Iz7_rp4^oeL$qwuy$YT@a zN>(0+7Y%pNt)wXa8X`_E>`Q_Z{AjS0@Q~rInwtDL*?R1+pv0+m%G>BAsc$Z$P0((D z%tKhawLg=;4~X}KCEVI9JmZBX`sVLzHZU8-S-X3o$3#2!0n9A}Eps`(J&gG$Tud-W z@JX;qJ}xQ{zX{=boYC!o6~em_@!Z={zZU^9|Lw1_E{LuH{6aINOI|S`js-9C0+Uw^ zhzXHfaANuEQG?gd@p;O;f^DO$|h4mkjrqVZ( z#Y2)g`5v=o3rpO@)0fCokjpcnEDBVf zGNa2@<;}8%%nu;ZLXzQyy@X?CjQJ!}I@2>z3>JW}1#6@^^9}Vsh^uIo?OT=BmUi>F{ zp!qJZcx(6vu>?9`WO` zP-~h$w|W%xvVRbV_&Livg596yJmekDV#Xq7AH~dh(@SM$gpPS7Jt%^!=(w%Ln9;b= zol771M4|Ef^pj7f5}a{!-kpi?A?=-XgYp+xc7?4A?6?u}s(Ol3r@0(7k&Gw ztmQo6DLzeuzCsTQ-!<$z=fb!{Vt*jyL#cjBtHYCEj`*)6yM(Ab=vx2jm`t-xy&x-&jh^P8xTP#L+t?@HBKy|C+fite>1 zyZ?bb?jJH{P{WSYUf5_D?BO8oeXvwx{ElYJLYirYiu0lYn361HT@S@$2mZVc`%?AZS1Cj0m@0C*#(rtZHvzF4C;1 z?vggVmeB`MO!}Lsig4-JrR1AwFR=SxLK4>gPS%y9(INVtc(-(m6RnRhXn~AD!G)Jg zXl1uN)g2NQ+bo=x3$c`O7KnrKTB*S-X(Lpy+0j{^k?$G*3+N~e{)>&j5Z(K;p^cCY4TJ180@*@% zf!RW+FC|+Dr%ScjAG5ZQEd+Dfy)5S%K!C(eB5j0wSRGo+3YqKF2NJS0zq@0py31>I zNy_!)wgEE8s}`L&ZlU=P5lzEok~RXBudoaioQPqk7syEvmy0AMxQZLPQINlh4|K+5 zkD^v`aTteRN@>M7z#01xmZrFh`K*0$mH~~?+Kvg=IIh8YN;=_vD%{O#Q(F2nxp0!P zAi9NkoW+1QrL6bxn^@8r<;vaHp1oUd!tK3#ajXxG!Zb%dN|h+zuZ0p;s>+feNT<3+ z(8A0zLB&MYB9#SadAa{TBh5JEmG}oO!YImXC7lInMI4TeCFv|=vixcbq{rm^tpcr| zuY!_XY_rgdwFtC6 zuE&$sN?a#s3OuV3=v+s7t9Rp_*2t$=UsvJ%3p`igNp=f&;JM=pS})S9=d^!SnT&eZ z#H6l1htyTq*QYDVS7)kIy2;IHe}bg0VtEsGYnX3D6>D=&yK47SIFIgtju^F(+Vd6a z-ikI!drjDfytm1l06%k><)o!x>PVc zwhwr$C8kx?fc>4|{3@(S(s25qjqunVY*lD2d5uyV;7j=Qif(OK&hoq~%(3x4UnlHH z*j#p;YZ6Ek;SH~pM}a)ocgrK4vR)B*-&f2o%5})0NH{BNL?r_cb;*rLEm89GF2Ol{ zL)@@OKq1bNPaJ235@Zm&7QJ^R7My5Ood_NT_%6h?!*=4#ZZfV3C+CDi&#nGQd-3w|*j39}$|lzR{4H@)IjL4_>8sXb{a z{Xwh?aTjmSby{7{2?sgz3Mct)yt)~_=6U@7j2 za9P?@8lx6A6!?&8?2dI>-!H&Y6EMOj4{{leC;jL*$(E9=7`21OK#5axWHe{MO;1up ztYK}GaMRKfo$YC0W50M^cnR=R)eecf0{j$r{VcNGCh4o~sV1GXOF1m_W7L-&92W9& zME9w48Gi-;8Gofo@QY7%&SB6h>#IG?XAK7Ze^W!QO%$Jmuiv5~I!z`y!Bdm@8`I>q z`z2Niod$p>uu}5bN>PAzp`8Cf&dGAlNpeo&w~S(Sy@8zF`7I<77(FGt6kDl35ZBL; zV(SI^by!5=D1R%w>Wx|k-;dk9B@rVlu~vB2JBY3Dud7qQVT_ETyb&=zLhJOg>T*a^ zkoR_K+ink<;#ie-Wu)O7yEI>zC59o5^8C*D}!=SIKKP$}fqo z%j*z76JZ4ctqsZE_e--LuBr{_N_949LFkw~mCi4&?A+ma#U{<_D%cbI&n$JtwmLcm z5p{gHbSqka>AXfQfBz<4=YOiC&aZ>4%Uia|rMaMhDIeYHy}|q{Fx|1LH!(x;ZIRKi zl@#x2RmAhYHrY1k!$rjFnh)Kv-^7*v2OY{RoI>5h$O>Tm{p|F3KUrX^Dr5htY$eL> zQ${<|^K_1_n&5d=(zrs&JyEh1B@=Io>;TTU-N8;k1%7z)A^BHv!jMBXi)WD5o3TL@ zZv-!KIZi^$;V}SD23usyuxAynJJ~q#GrD5%vc8D?>Fp$i+S!`n+LL zQB6Q+=v{}gO&lobvaVp~R?>YAmKLErqRY`@z$&a!wCS|C!LBHg%k$)2#M*|Wn=TIL zG*Re&@(j|-ODh`0tQ-uEwSYVZh+@yq!4Al|RSaOQ;44P?bvX;sf|SBlX1_Qj zl+5ZsB5d;#9_kL)_X2L)0k_$B{)BJc&!tllN3czJYb>6$cSYfUM-K&)eO-65XB3|9mB94tjZ9k;K4x(TDD3~gb z)Vr|f&`aLMbJ~BZ^o!-VXYa#!Jbv+)pmcu7X+Kjr8hbM6M49gysf>u9#&k*jm1f{z zYI7&({HV?x^_Tia`|XmR#7FXrV>+~`S)#MG4YW^kGRMg;zWG)Xv#YbC5AKX0Q^6Sr zfx7%9z?%ma4=fz&QJT2c_j$4(X?H>5&_9k-`G#~piTnJ14&FB1Kb-69P}_j<4Fq>w z#=d$$PkD>@Y#6>4e@iSG4zCweJa@(Ef^q&9;Nb~%1?P0C<{GPQio{ENAPv7o=BM%w z%)vUe-9t}=M-Yfp#T#K`X{Zh~|Flpcc8_9`rgOejH;-B0#NKtffYE=%!zS%j;)P3c zl(}|)%|-EOXO08>g0#&xSX|zb>L$4gW#+^adm(eV&~L7iYgB{Y#n{&$MR#A z)sQw1e4!78B{yc*@E7bd`vaM_4BK#97G|`6P~wk&FY|nqW|V}Ja#Z(-JZdep1(^K# zMe$rGH&pQM&DS(Y^~K|saFFMC9e*W1UOn=znx`O3M{=6b0U1hk*dWl1Kf@ZK%C|d2 zo~8ZbP#H457e2rptyGtKfGghxE=@vF06m2d)uI1oyznSp_5sF|#+BeCuAfAQ5v&u9 zv=iS*e&j?d-KjyI2K+!8<;Q|oW0XtFy1X8iz-GfEfuHKSxNi)i*av5>C^=kMl8{rp#O_-x(Fj`>!P7G(p~{CN)a6 z(V4({S#4yAktFWvl%Je;O55vrHf%sc&w-okHzm#W8@LwnUqR0I-v}_c$zq2L4p-wH z=J3n%PRXq1s6+taQ{rHy8)X>+dXf>A#1Qz&Rv1leEH5Ni+Wd zXY4Jf`Zr+Ys(`eDpMczW6d%!iypHjvv8QpTIU)EaI45|23vu@&97BlWA=;aHlim?A zl9X#)QCuOU*KsQtSER?OK@Xg+$H{?C%YN}o+14JF`CYO?N97U?O#FeUjVm2|3-3W+ zTc9_k2DZ|M)HnyWz?LHE$?6VPp+52l;)ji$eR#i=Zfy}i?&wYnd*Scmf77iJtpIGe zkbD-9%<4|Z&f>09DR^!d&iLCm!UtaV0(MH|GG_`B?~Tq;l0Lx781L<(Sk$rAv8`l) zN0mLOdM#WzL$%kZ_Rr-E#FD!{2%nO(!$ugttxScy8h z%w1%E)VAdG8B7*|SFoAl zeD}#YT#Uw<02=3_7zwS$*^zFelbPpD!p?f=eS61TZ@(V=jA6kAtQ}tpudp*A?Zrep z&|ZHXS@CpVi?%7^scrBWg0{t@ZAG!RDfp72qh4+p^tPD2b+T3}iba7U$0Y2#Ma)9G z4ffUp;`x9i#rU~!2hvZH)01_0$}uXC%W~wvcK3Le{$xOsX(V5>i@YOn{-XKg;E%w< za-;;t(Y{)$s331Uw687+*ljIhP2ej0e;GT-BeHgWJ}lu4#C_I~NR-OZ?goE4`)Wax zeP4Tj>Ls*^?h_K^ekb9^5pkfKH2lLuh-w>+fMCM!>f`>Zr>rY2I@9oUer;0 z;+U5N%*#Ka{r>^8M9OWPU`qkCzT5&^ee&#sMylw`Y=ZW(69gpD{0F3SyCA&M!VRMn z^AN`IU%gut7lkL=CSmO8F0d{v@g8&9Z`u8%ELTD}fI~kB2mK7bA<+?}N9o3WRNvXW zG2Y-6cZA*u^s^?75(bC*b8Q>@*;Y|Fi7i9gncT=bv#hF)8~T^P0%g)XzX94#xDM4=$nFHK;jxNuh!IR*R7-G(^95eU-jRHB#(%zuPX(0AHR>aymULYaG|{J&R-GH8IFj@I(LA7 zl8s*rnBCO%u*4n_d!Xc`gA-6f5BxfONf}ol?Q~W~Z@f(lTPQu=CZe=9$Wlzm)dRBk z)#+-9Gjkv^k4e$#4(e*5GZ>jrJAh)vhe$^Pi$$G=Ol!ExuqS8WVQT4AElGfh- zM!G@2&c3b%xLZ|s!yE2{xdS*$=oEY>+xG;DY1JlO1+2syY1Q%=-RVm>^IYdSFX_3j z2R-;CLUarhS(`K%f&JAzil6g*=Xo?=1uXCi_?Jt9zj>EZyT+vX%}!P81Kg>a&G|ZL zCCw;Z>VD2mc73T#Dv#L%EG=m-ykBr(XI(Ep?@+FL;GD{=OB-CX zh~q|Vtx>f_#_p?Mk=w@?QMETHOV4@Tm<>HRh^2Wd+a}jp=sareYTH@S9pS3gvxY;S z@GNWsb9GsGn{ZIN8`(8oY2!1mtWB`3b17l(RtXyYbfl*}zOkocGs^f^M-Ntp75U<4 zS>REc_mu{pgeBb-Hp!l@1~DswyzgvS2`{E3Ke0VGS~lbZ@|Rl5>X(_TLKiMr$DFF! zR1bMZ%es2KF{yT4eO0Kf9rk8dK3cyw)ONvO=0nNTOMH5MZ9S!(yAt0oAdVYqwpzI_9~RO)Iw#BDp1MQ~vqHRh#l3tj|B6w2FFbFk8nAE?QR) zY5j|L-XcpfEmg@n@D$aOTtOjKd{pkiXZd8Wbn#D+`3H*?=;wk@G z@vlMU;L)cr>$mF-6=+*^$akI#_3mvQ{Y4G+E2R*y(|*5OZ|dsXJMLvhitUQwSB@~| zt=z-%pKr$qj8TO8^s$byj$OO*-IWTf`=Hiw$eV3ilz$9k4z!WSaSMRX`yiy{Qa|v1 z$X`2_tycKMth3lg+s}%wPD8bYc7R;iV5uKrx1g7=g_^|<*bB-+FXu!wwnT84sF%}N zFQ+vOb67#&HjC@=d#D3tpqD?v9=ZzY&Wbs##DOR~z0+-jhK6+Do}=c8KZNoU~^o{=J*)q81f{S&T+S~h>nB1*1+bt1U-EgP&o*_ zxX{@($KS!5iF1E{d4{d%XJ4d9KtId<%E5#UGEKb;_th`TKkO!agmo6fN7m5_noq)t z?R=E>M*u&twi33G+Ddpr<@oRq+v>+2Ka@e! zYXPi(jFA~_nbX+?FVoPzooKDJ`X7h&WLhW7!_DH)5#`_vfj^m@wkV(4OKW?r`%-xS zzg-0c2O7r_uOSV0{DjZ`VBUpV!a8SR<5O2nJ`)n{M8g!L{o6XI-3ErYzK6dsPhFhc z?osH47Cq~Mc5eU$Ddd)dIz8NL1!iW&w{}BFvqIka+C3Elv z7sdO^5aIo1@l0p4xHO_5$TDY|30Dll3|^g2Ff<*jV=sey+QlS%LGfL2g#9m#k+6Ra zqYEyyD}nj3V$4`E3<3#XXdDOs1n)=tQSWaS6Xkv^?beU0F6+m$L8%{W(2q#?|9d|q zymx6|@>c%8?8l$XcOW3m_hdHT*PvG~U{)t$cKo5Pd2hkp7iU@0Fjk)VvFN20X_C;Z zC&MEhoATeOheb}Jc^Lh6tlnV4x*nb309}LKd7&FL+wJ8@#dhyBP#8p)oo_%omAr!! zeX_;9gDAJ#^|2Jy-BK*IoOHia53CaVO7&2FP_inirqq??D0gG1y-h`!5LCI1h;xQ@!OATwPpnKRbRSG` z?DCFcu@q-8om_drYcOqDxo{<!ycC6B3@av zT*^yroKPD-E5pNQBngU)c$~Aph6W3Ik(Pz_J{}-Re>&Ml#MdM3Ufg7RDL>_izs@*_YQsOWm6Qkis}2`$G0uu;gXbQavl3$tuVk3+}rM% zlVQdj!^h@4YB4T4bY|kO@ zXDqMuex#ntox^wv=DHHb*M?qp>FmPU_UX%K7mW%e&zW8PKDfW+qeksZRR70i_M`{Z z7k}11xV*4_x{p_m3iO>bzaE?%CDQe~+Mn*EbZ@vQ)i2ujm*?J0DMkg7lA_;|Z4|3QY)JW$Hp4@|boeDI|Eo2-dmJAQ z?*W1~?)cYQ?eSqn@Hyq7_9VM`-v^;g&lYXZ<0PN6RjWU4_WTEF1{d)xje@1wi!}4K zhT|j)yg)nfcoOFMYG~RlM9Mxz3YJpEQa+26ORLSE0jR5o{6&W^2Y+zq^1kx@Zk)%X zb7Yl$6A^Fx9gOV(6Ydjmmq7Cy5sT`5wHc0#;{G0!=fSEC`T2qgR%l4OXR6RD-qtx3 zuy8}C*>ggB<#DVX-?9*IGZy{=J+=AiX3u8rh~to;_bou|K*atUSTKy*JM=i@=zX&h zn}XQpz`~)_)`2W`I%1O%`*mPWn%>yEuvt7D8DoQ7?vMO6iA70v?&;se-G1_iXh{Fm zYZ&%luVLsJP)N8#um1pTrgkR*E*0=w1??Q28DSVgA1!CtfM+HG@$|^=j=EEa_A5HI z4qYMH>PtafsDoq|^pKNn79WKC>)%mM0rE_e%OFn^?%MmSCd}qvffovRIvwpFk5bNb zjGwh?`S{{-fn;u+{SYAV8bBcDOXRk?%(x}yd^`spU}Vqok#M#Hj2^jC@;@N z?+6}*QiOE~O3(BlfBp+Vni|lp&-+4~R}XxKweZ+S{kQCWa2YbmVhljSA!ndi8 z-XXmS7`i{GE;ay1^S*n7PA5Ut>fm-K@tXvsxvy3YuIf3+a4Rbk9ZEy0>+g`YTIky9 z;x{TPc;C{XvfK)(-)92h?1A;FSCy>~DmBG@>*xBDrabjSB3IxaYF&#b+0LZ$s9s$y z?|Ub}`{oA2SRbFs{MXm&$*%_w$t6Vv>`s{YS4n>Q4B(V}fKWcpM4ZR?S>)41??`~u zsUG*@&0=Q9kNAH}@CV>!;wuv8m-nT;MRpr0ANf3?dvfCcmx7*80X^T(HV7m6ONVX` zJgm*=<$w%&c~bEx+jf-nb4Los_a!HI*O5Zod${?$3GY=A>1#*q>&vJKHwwOA>t3-n zV(n~49aNvPDBiZwmFMCh3;sUfpW@EXDH^Jf*#L8F>pVCHpQE|3~>K59Osi zltx{oaS)bQww5XvV(+H+)Ftkj7P};mKM+rU?Z8^Y!IB*of%x z>qRH&P?Bsvts~M&KjS}Eea8REhR3S74O-hN=pEqBg=-e=fm41}lE(J6Uxi=!_@zry zY! zKM=vNUGpl|RYbCIKZ@lV7#waZV>zw}@<`n*#s~5clZ&^Wa*QHiL<~{jYB?t0kMn&T znr?ppahpREsyQQl-5KI6cQ)Yc>X>hvg4th>-$xp_&GYeX8@L8PgoXr5;Vq0$oIn=# z;;6Q@0UmOz|C|F@368SekC-n5!)+SayK5FdLrc``?I>DM%HG}!EC2?guk`^?XBFxS zeru1m6uq)M@#9Ca!q1A44zBG;JiNJ190DmMvO1eCoE6(UAW^C0GKZa_ubknWxCkpr zv#D9E@T0zRE#Cg+&$DUEb$ENkZ?wU48s64|YK|)>`+Q1_-Kj8VX@Ks@L>q4WU!CuL z-u8%B?fbs-YplD2S3WfEC(JFav-@iMJNiS%6!;*J0)11GqiKepMV^h~4S_z0Bb~uy z2WR|`E7>uK!O6Mcy1Lo_y855q!6=$Y`SeH(712!k1HTIjNU6BfM$^CW{q zFi$e;R6qH=qI(H{Z6;P;1iE+`pfd(&3yuw+-RNpVo8AZ#e>dGR#KVmo*Dw@cpRXG# z>o8;f{lGnRW+okGD?fQtzWQXVczs|n_QtCM{IE7xqpOMZX^d*jLS;}_r*7kBq&O@# z!h-Goewg{!gY&Cf#ezT|Cfv0j5*-B9N;bKGn_?w7gJF}Q*J z=iHI5Okm745#Y}9mw-PVU3HGMI+Z`Rx z;5+lB5+Z#!!geXJzA+AJ}@rBJ|dVsjcIIH@l`5qjY za1i)CH{{I+-uWKw=Q!v~a&GuJe5!!t2UOS()>U!FBwJtPYY9xKPN?Ry@*7NrW{hUo zueM=641EI1QZAijeUD-NaL}593?=TOROP&Z^L-aqmn-o6Caft};`w!0hkbCZN?Wel zS>R8)1@t1gcEfG_tN3+~YA64c;wj}*yl+q^-pg{VG-2Is7~enXNP@Qx?f z1fQ2m$8>mSPdccB{&NTBn)IM2)bi$D_6KtHo<%jO)Aer9hqHQl6qf1dh^p=><+jf7 z8?5Svc*joHW*cL^_9#lvM@I?eZMWk}hodj>L;DA;n z+j4`7wxc+Q=wDkf&|EOcugF#U(~3W?;YTYod=2_t$pxILj~#JYikO1RPYEVW^@SUf!^+cKa2-VdV zPQbe=V!?ZBSdaHGZtKs%Zki77{%|hd&p;c+R|Y#FfP?t{u(y<5B&8WkS z{!{rrIzZzEUm%Fv$Kn))DqjWk5Gj5jV2S8e_+0{LC8?U;Mg|$*faAo~`KYtVskcYp;_wy+e!}I!J(J2k0=#_!p#z~6;T*!x2tOfcSiR8HDoXJr zdk&>0;WUyV^tZ=*5^Qs;6&B42Nh(Jn#JkZ#=o*>bE_0Hnmwo#5BPky*KBc{IEYYsI zHQqH~K)f^A(*qK+bmt%M?&HCov}ap>b3?r6R86wG(M#5SzQKB@`l%gMcP_?_!;{)V zZNfaw#2nZTt>_C_eXes9c4zDfojTvT@Nn$jx%l-fewBqKXl{*oEEDQI1}*Snlh`c( z(%81&a?Eep&RK2{nxG>rQ36fkL(HRJllWOD?f+EP(atiqDsDxZCdgk9rP3ts?Vwe+ zzq1s$t4aJT`?gp9_7eN{I`Zj!)51;St_YQ+^VQ(}g-Axqu2zMD%TU?|ot%Tbd7XCr z{}(*pH;IpQkW_w?_ypQ-4AUOdB+h_D05_D{{!nDj3`_kSv}+ga2JdQBD&PAt>8`Uk zn3n>=9#$eA+!&7FxF>MA$~M3HLzm#!l}=>+2!t)w{i?@!PHGj$2qLfFQwy%fR&DaJ zCCho>0v&2_bQqU6;jV&bW0l{bw(+cgume~(5_gp}9>+1RoaLJaSdX?5=fUh&`r^Y* za0>o*fx|BWxJ+el5`P4}@>zpo)+gSVogZLMt6_+0uk{(|z?@>2wTNOd8uRjKLkS6T;XRmbu%2e2Cex{04cIVO8v%|9o= zCa(Z#SnyMR^U@eZ;g(>A_UQy$Ka2|5>QH*#y^yQjs!c!EfDyr{l;^Q|^n`z?ULNcJ z$D!fqzW|#YG{=WS1OrXtjp6y|T~}|P?4;h_#CrRki?D(ttgBYS+X?OQyyHdZVE1`% z6jr%(^eZkIa_VzR2YPy!KyC=~QP0B;SseP3VmlqWNHTZ!4=b9Na zW;AfaAQ$EP=b|(Ij_o^V6bUX^XV;xi^(&I}@Zuh)RcxGkjOcrUH;rxV9>o@XGkgIL z)h18Ak5`!7CeN4J)Z+%UBc-#vZi#C?M&trUh)%st;-n7cW<@!zfpHy*Ektuf#1UbW z=e7$R^1>RP@=9AV^1?j7_vXP&{xGCy%Uj%2TYbE*?RD=o+YVc+cgh}qlg`)J*$?+- zP2wk=TwR}8-ADXX2h~ipI`&?yE)7z3hG@T{n*E^+z$w+-1}+k61{6vb_M*6q#tMF* zrzX|LIpQ!*y*)gnuwd#cUu7dnoIQ}28qWM~Ct)YQmf;^7V>*B0&NpK4SgRu@oXw5g z#%A%mjzcw!D~VGmSN|61MP2P&!%yNl_!e&!`AAP#`O3%d@7eD_I3B-k_`S{Vto})C zg2pyyOmQ}e)=p@ifESw^m*U0=({SFq3v}U5gx3&$MExB8NY;%sfk`{ueHV13fzyTn)<4LBi+Z`&2f`cgYpAv&u@VU1-s< zn6$qRo=cj=DYCS`n`rJQ$WKWS_@|Wlb$>Ev@e_wHS{DDBL*q;1O>)ptIH7T;@xKH6 z4e7KJ+>rO~o<##aNuHjLwfX%$NrEe_wzlV5cYeNv|g^ z*7z6~zB{kyb|L9u8;MCNZmn+fR6(-Z$cu3;Z8U0tQ`=cM0Yvhg7x% z*px|Nvi414W-uP#?+MaOtPaLu*GvMH|IcfFLY;@uuf8~Co=UXml72)~SAxzQ{#pa* zS%RhU(0SvGgTXOq5`O}nIkMqJ7iXkhCJ-vzKZ@c1a42PezY>dWBF6Y+sL$;Ab$!@L zYbs!OTC8m&16JoaIq!#|Idw$;JR73jF$-x3I~oGp!GS>g=K0V*IxEsS(SY%I0d4Z( zJ(c{1SQvndBoobRPhkhKv48l$WSM>^TkjSI2*K+Zs-n1VTSNTlujZ#MTL-rc~<&N^~57q`X)r0#H(=+M7E%s#2ta8 zgK6k{FPvD&w%nF{9$E|TnTd{+b(|&80O`pGZhxakQLlA9ih8dDbTuT{fipaZ;I7pb>t@BxHhFL>kgskSvu;2g@$MDA ze*)M12p_6#-tKv&wmtt3z%pjnm7KlxoV?8TNaDt%%MjdA92R;p|P|o2t_O z@q3fBNjI75}}u&rPazUS{6^=l{v)=H7embM|wd^PJ~A z%X?)R+>1h^UICAO@X2Vau)W*`JzU$LZNaoRY!_|6q{pB8{;HaI1Qb`*Grh@W@zb=1+$oAY{Ox$%c^KNW_!hQ%nF}} z{+*z#Eq=mUyM&i5%y!bF0{tg2nQIZY6Fhf#%Zug|V7QCI9E7g#wK-)C*tfg6uvXZ&x9ajl_#WNG>E{mSekzHDPRz#oXmkS$y&FcX2qIK$z z;AI$myK2CL0Ecn)oKF4?^z^=7MpJw7{3_DP+i=ml{PBzDR=nKhUB091+=@54&aaBB zGeAyRs5x{YviT5pl^ccp#)vJ_dhGuMvH)@#vNXf$){0~LdW6UjvH@I#cyYa*h!6!r z9>qNtmdTWLG`1fW-h&4PNgdO3cTL20SgGo%tdTar-)Yb7HB9Dd=>JhkZ?2IvNV}P$ zL(sI3Y&eP?*&!iIfAm76rrwwj&g&ESkKrP>h3*l$LxNUsxU}^#@&vF^DAgyT|0TYM z`;H13`Xncd=Lhht!m|X=%laZ4W|Yw?Rr8p{C-hCYH&dK1R!t|5(9;|T6rlN{~vv7qqX=9f3fI7vZ-ZupU0OG*`!4*ALx@&*G#=a-$J zsZaAq{IX(NQFaDdZk&n6199r_^TS7yFx!x1(-bG+T$ILa49clgY606BJc?Q!0)JBu zUb3{lllIfxI(+#ysPO#(Bk-_)*c&nRiEl*LCu5)e=uHvzQcYCdAz>P$>7c#Rzw?J^ z?=;9G8jtUTd?Ld2G`|QpFj)_p2{+8fMRPy4KBgfD`*&GP3`(#y7~Q~R7U36BbVecYDQe5QZCGj97NPKoxLB*02(-D!R#GPu}=J4TOy zc0_Ew+mpjdws!LO5}ynZX|O~6Kb{Ec`|j;G|h2t3^oi~zT?6Fk98wBls+%Vcm&slD>? zo*SgLUVs(7lg|obtUZJgW0-X@LaHf>s!Ow6>)E!flOG8=?%jwv+#ku=JG9)b=Ohhp zoXbJ05O?x4-ykSkF=}V;I5!8}&`!wGFxw(<`qs(!1_--%^8XrO!y(<_kh9oB{Y^kD zruJOKi)+2qH<8;JSa2JtnZGP*TPOHIa^D}3>oH-sMY=s5d;RT3=8~_b!ucxB$H99% zI_zxQ?j~o0rC~_;<;$-kd@M$MmTIo^ z8O!m|w`~^0xzzI)d>f5cKO~r}XwN{@HW^B92|i&yBqTF5nl}Rj!#7sLAz=zL5*+5Q zg!zpr^^%6v`bgM|W_;?k%s5%rbZ*3(Hw&^SCW(8p7{Sn5D7Nu()SlY?o&o50Oe2}~ zE>Ax8o|CZ((){b>heO_$6sUPpw^CazePxk!1T?kTo*(&)Y^cd@aN_G22r)32-5cF+DLrdnaIGLnp5d z_ejP-%3mTl(3oQAsBmb)KT#h9-tXBL_;b7XXbY<~VmPEG}+K!Mo5uhhyu~ zfI~Y$bKbzE*E!Ido&1me3%HCrId%b^SfkV4Kwok)?0lG*QFToHLd+rJa7wmx@(%?~ zt&;5tm_wcXaqM*GY^!;F%A*C=J2E)_OF+Zd(h8zYi30X>~OAJ{+K2>FIs& z9x}wIzd@UxQ5+SLt;nsRkml^Fe2zgoOh@_iJVc>%^0$a}nOB4QTat+yU^;o@z*@8j zmEqZeIruLRb~uUS-^mxE1tW1U2yP{8z$rUmzYb$K7FXN#k%h#oA-;b#-hU3RnL*uj@DdQf3?IszZ6#8vg{S+d9 zfY!lI$S@Oj_yRl#`a)6<6duvAv~)OdZTuH>LV6d)R^3yIbGe3lDnem*TkbARtG?Uv zhz;w!-fBA}+=SHlzE;fEMvTZyeK&wJr^3@upc-Qx3e21N%pu`6>mk89`;c&#Ba{xS z8bkc#r;jXSAvQ7>axae?(~fpRPHO?m^?kn-d)Q8XRll?W@&tHVi}|C+eK~fz^yRKV zij(diW0(As(`cD*Yci&O-N`Q&K50pdM%^7HUc;WH7N?yn&BkIp>H z)^O}1G4@vQS*W+Bg`tblPZWC!-YI-6V$=O`#0FL|Fym)jKKW)Q&as<}uFFT??1Vf$ z)#AZ$Iw|3FRN-`#;dCSz4Kpr(_@;_8pDh%}*rNWzFb228FziC9Z9k(C<&cRhkOA+ngYPlp@~eBb+%-sjhxqo_y+r+Y!j>wd zHNtMnqqmX`)K2)NA7`d{igN~SzGqH2mN1M8bxde>h`xN$=BD0rco zCuC#v9_vfTOr)o;dWou|w4NMLVPzbFG5ujL;VUZ3-?5|VgbhmKh*4jx6iYLI?|AO! zb8!{#!xF+b-q_NLb4=FV=g>Ci?z=b0uXzvi(sdc_)FZprwcsd|w+FoDdvVd;jA0yM zo)}+|Sr*A{f_2j|+-^~aZG1I&L~v4mrYITQR*B~VXoAb$)ROVliM8;be&9?q?27fL zVV`Cj8{3dWlCsX=2qub zN5KbJsFVszlrKJtN=Xzi@Y{Kz;yge8gTZ|YjlV&jF!mos+c*vFXKUlRIu2*qx@jI& z8Dp!e0zJ?x_f75JT_vfr0ylW^me+rwN?J!aqXTc_`*W7c>N@at6mQx6k#9zF5p{Gb zNVqN@6fd}r-wv~M+D=-BVXsgGUE~~`XESw@T|w9~4sqbm^Ct&XoOq_aj>+&uu5#cUq7$-}a^FAuE>y`y+_xHUpY`P|jpV2v58>^@zSxpjOG0&Q$-xWEhQ#WF z7bMorMwuI!uaG<e5c$fSjJ}i?PI-e*j0~GizEk*O#7>gQPp@<6fNh9-?Aa&P<>(g~3l zs7Eu+*Kk^wbX+H20Y1dFo=BX3ZjeF-2)iJ{<;8v0_cBGyac$p`))AJGrlYqLJ{e)U z0NJ(S_&+87pY*G^Q{Z*QaFR?3$83(n7tSAz^Q=zZ+E18g9jwU}3E7P36ALw3@~o zjFeCDUn3RDbrW*i;8vpar})o<@gf|;oN?vRBHV#6+`WLCae2jCkJ_kDPx1SK1-5#( zqHV#(Duk?AKF+CeuD-b_AADvRWRgN_71yi6`kjLq+Ylopk;G&U@QrOxBCew40^cJ< zqMtj22>hQA|Bs0htmpZOZ9k&_v7%Y zya4MUq+>P!9WxdBaYHZoP|y~=z*qGXKa%8LsjM{iNtz%I9Ia{n3hd?c+j6+rGKw>E zKwGW!DP++ecqCBi>;sTZ7~t>d-{1R~&k%Ld3-dc@X`lNH(jz%Z8du{i+OqU&2e(MR z$7c986RWSmaEez$=Z)5ZPW}_@K(BK{ItQUEAVojQa*9vrJ;k>LGD@*e5wV%aZ*!8I zRz7f!Gnn5x!rW*(#Y&V-hos}4ng7GZHqIV;(x}Dfv~#MZ)ly~ z+DMiOY82%kK`xoeJmi&|enC0uT%Ot*3cUuZJDpFX9X^EJ?==fES(6v?!7t!DD|+*? z&!Rphcv@rHg$FlpXnIk|H*5vsSq+ENdGSZ+n)meEEJxGkmz7^ zW(x357WmB6i_zddhu8nT?zqy| zKo$ACF{Pd2JZVIuhx&oq|Fgopv7xi~0^AL_3NXfXxTs&KpNQ5}wnUUp!zl9d=R_TQ zr6JN6g*8R&FZA3&*wLiteBfm-pMe>sZ#~Z!2P06f>rt-!Hq!bYWrc)@1J=7-B}jii z;G1#DVP_~B{BV|Ahm%aEUS^80c){-o%iOq{05b?n=ZS1~W+_Sid?Uylui4Jog3ynG z*Yy3OKhy(E#st;SO5})HZZ(@eazTXfa%RO0yOG z;q#E;kfPQ&LxH{lX%pOny0Y-#iE)jVdhP?NGt~z&rs1$BhlI((VQYtk#fHPGhlCBr z{o`+88hHzg{jLNpEk#bRK}VfrRtNLLS2aesh1nv**RA2NjO(}Wa>#H3v#E#n!(+d~ z4ebZ&GlGr%9qb?fD=hmv*!lkzR`EMn<9~(yeY)fSE9~#fJL12>{ytsizry~$ycY+q zHg=WJNj%Rt4MeLmITj;iY_GB{Eb~&qjGJ!R(R7!JeO>}=c3WT_r)?#^$$U;D?wGGH z%P*IyCA)Q4^Su0n19>*`=PJp|voac;gT@}TFZ8er0I4Ax_Z0RVBuk{@OllogPcOe{ zAlD+_6QcGrIi)(3&TL5iLpC@-|6c~O@P8PyTmF2Ie=nehTvfX5b$E=2@9uz9!|r-Y zh}DxfCKlh{2uODY`M(5Y_-_bQTsACGac_bn9i0{AHwHpLN_cb9;t5+ zu+NiRW~wh3HB$V#A@GZL=G?i=;20c_c`+X}6z$jgF~7*aJ)Kh#zLILBzm|b)bx_{7 zi+KmL<$FT;L(d_gP`6py%pYKkcl0aN?^@nBzlY~z{aNb2S>83jgXeGhWk@MwHfmEx zc0S;Hlxwm$@df&j>Sptsmc4lXu-}QZTxMN5qz(X$7A+2>s9&}0F~5ed&HYEfw?86i zncZf2{V9I@z-wkj-4S6t)`{hiAbE6NGE$AIi>_}lZL`EY@8!4kCu`b;{c9x%r?z_5 zR1ZA&=U>x#UQ9agF(w9zxNPjSW8)*$4YkR^G2v zGgxQjzK#Hm(-KQ5Li_tNIg>@AHk;6Hv%UP~zEFNP_=8bG(oXI>1n3zSrP=`Kv)~fk zD~5i6(0idtS%A=EeX-DpGn(`9{7s)iU1-j;T#M&_^v$ryc1i2u_v_}!XP**Sv=}!K z*G)Pe69;INUptVG`f>wW=oh>KN`l6nPJAm4zhw=OG~x5%w^8ETb>X)W1MgxsPO-g- znRAy$1`o-3){&-U%U#pFd|ltpW=hT1f1clqI;xP*j{|Msv5y9RXy}WEwB{&0B?uY# zuNS5NJ_m=-%iH@H*!BI_o8TCmE`hgu@oWf>JFw@awZ)G6len5KQpI<;lkH{52~YnK zydpZ6rt|43Sl2J(8^ah3WSiwYVE>4<%7KgU(kI!lX@)Rbi42z-UMQfV1!dGZqXq{d% z-7>@c)dh)Wx`llPJ(hH%MY2n_n|)m`NLH~^#yBS7E*pQRBT-;iNxLJZ8bPw!=V7v@ zz;^?qTDW*h$#z`F7SsD3i$l*BaQ2>OnNpHrpMu$tX6@%|`z5|_gh}w|cRTV1-xgM1 z?!bJ4T}j`&pdTmTe#^jkGxd6NKk#GUdHx^0Iq0Jgd!sY8rqHhN6kj6lk>5cZ9>Mh) zE{0hN8QNa#PkM_9$3=g?<3==n;UKOfT@lg~q5dGcB1EUDKKcM^M>6&~W-`Mu3-M3= zN&OQ2{hNieX0M*k=KowoeKcgP}&k3gO(k7X2FCtaV&HY zqSg5r*DnNS<9&2*w3_6Rz0hnHY2)5l&9b8Tf|TjtM-0Sp5#p{qACRlyKRg;T38(mH z`lS=T^|04TCo164^q(FT_b>hh?Bl!mKcEI({1lYtM_vwE^k=?VpyvXV@<-l;uM%2g zXZ;A9A#b5=-pBPZuJ6L_q=1|#&7~f^=Z*m_2R~Q7if7ASYm&SrQ#1AQ?qpWSZ2>O% zmtU&hY@&DYy#npRlr5lx_x1fxjB|$Oy|thT{hQE=Z}~Ts0Y;WAu<5DbNPFSyPVhdC zFE9JqvE*&yF<6<`wvzowiH9j$)PTm~@n25fmTwvv=0^^om_cqfr>bT^$>in%o%oxMdSa2nh}z6IeKfd91jd4GnU z(IrEBjdaDKrv>TeX>?Z?;9uUI1*qEI8xVVaIISAo6A^k}IE^aY3F_wFscSx1z1DY7 z`nc~Pn=XYsdQ$6?4P@KO?S;ncc^(u1dhQcJHdf;W*J|Z0MeOvqn{SyZbB9WQ6D(tC zex;K~o8|CY;^mJD(PP=^I4O?2J`867+;6lv;o^bt_#2I9qP_3L7@USX(MSyQknsX|BO{UyTNO!{n81B|)$ReV&i?YpS!t zRQ%t}f3pzXb%zj2NgYn<5?}^*8x(V|NOxHTO?8O&-hAItO@Fme3ZO-VvG5DV_-5BU?qegjfoh=ettRF<%roRqy(%EzhSu+etVTM? zKE+%8*4Fy+dh}x=a8cn@?lmnH zYjh5_nKacFimkd2qxX9uTXiqA=2+i4$XO;1$@31&oyc=fFbn>7T2n%MxP_(#NdIM| zpd11T-%5ad9-)#Uq2-negg%MTp?zYum=Rj@Zz&X6iV^xJgx)(Oh3S^*2wjHIPlYT8 zmEcoB>-ba{?}!!gWEOj^>!W zZtYoqM)k;2&|3c1rPx9Hdcr+g09^tKe**Vb+`R(XFTAT@3}kQ(z*N_OyGnTRF-LA~ z-^T66KYBEfzgz6_@|S?8@2$htm z*)uM`us1Zf@4?9n;}YpC%rT<725Bu?i~pV8qIGzX&La8>b>dF2A<7 zUHGAKJVxQ?_|m~w1ai!uV}Btm?SQ=3=h#_1d#(`Nqab7@vP?O(p!Wq0X4QtkIaorX z`mDL!xhKHi7d(099DirP%Wn$!H)a6-BO#|Y9rq7}G{D~@%%Q-!hp(+s1=(O+pMjt{fHJ<1YbV}6 z#{B@oD3=jpIYz((=lR=4lppA+VT_|^8)p|@SF8SCxyK{-k-pgYOaCA9e;IjE{+}bS z!TfjOo$~(}VM2?xR9n6uCzMlacg~b~Qk-MUuCd{=j;*+{_7!8KC)b%(_N~BlWR<}t zNQXvz)|AZ@vN|ALn1gi_{wGysIk#JTST^V8G-qfnm8f;MFYZ|<)!mF5Cb3g?HoqWR zcpOopaOF9YYExWO9MD2>z_&;(-G_r;&>$y0vMIrW+OFG@P)B;ZKPa?O8&cV+-Kfo| zPGTMKOzlZ^8Ej*!C#y|zOSFtzXic&#T$W_X^C#*POJKh;VXlz*JFBz9I-&s)EkZ;O zLWnkp8PWDAtBELCXHZtB6e*#nHq>Uqe%MQZB}~}$V|$s)<4lrj^+lOPV$U`mxJ_bU za${WzST9KNJYj^VNS)T*(5gaCDlw-qlvDCt;AoPeBTJe|mFdu{(EtY~*_Ca>OXe&a zUNYIApc-!e2#_R$UvHR$6(O-Crjp|$q!%lu7ju>L36_6RMyB+sbXmP ziNAi8x({ic$Px?kB1;xYSE>6jq)!$upvUKvLsK>uf z%47EVt|RurQrn@AFlc9i>~H*lzM>sNx(Qn6)zP*MI3q82!;%54Z0ERBN}!KrA6b%O zNin5YCsc1Uj&UVbhqSYjV1KV~d6Ffy7MCLlymP`tQfs1#btIaj9ZV+tUt1GO5-m#G zf|``dxi+O`K}}kvxc_{bs_uLmJh+B-{nfT-G4DkveUI2no==VXtwK}wlT$hMa(r77Z0zH)bDa_wLEMk zxQdHkFW>3vOIrabg1SYE~zo}XlvHw9k`TRvt*;RdyQmE zb0F7n>DC&8U~<27-S1l?aj27um()NbwqCcgXdiRU*yFFSsv456Zq?#aO7$7gCzR?k zq?#|LI<;omkW}xkA&8-=E<>u4`iKTyD^7WdQ%UWfeEhnSDS($K>j7VH zC7#JX|M;uILo!g8d_1>A3wWvWFyIfvQ)Uj}wO54?)rHB#Sue?3qh9pICqs)CDkvBmnZLKG!gapoSSj^ z=-xHDHT-vbe}kMkq$Oqu*FiI3Ep)%qe#I;4)%ubo;JpdZKbib%s{$WMXw4y;>*+2_ zWl$4SNm6|Z7yea)IO!$$0BAz4hs0d}J|x%ZA-T$g6fsxH?{ZB!oAi8Pmb*g1aR9M8x5CUcd*&8W77CrNjd`bOnpD; zEhe*rKN1-4WwVmKY_IpqFUfBV0gh9<6n>=FwVrHC#aJAK?O8yJuY1h$U6M)h;-O)bM_> zhM|&I1xEbGS(EU8&YBfOWBgj)u5(Ow4BChb>zGm*$etI?9V(Mt&1&>5QKdHtvPJ8S z@~_#ciL( zh4}uAf7P-~?mB;xzEJh=F!L%`Eo&EKYw7F1e@m)7#sBI5i2I-7E&Tr(Z~CwC3|B4d zf67noF9_E$#h1Fz;wgHjlw`fq7S!fAYs zG{*nOG?M>o8nSR2O-MtlhgHCT8$g<5OhEvmSn}+`KJcj zAq$ojhSEbbCLWS(W_(d2CAaWftb37qO25pv77{+t9^A0}ZK5Scct)0M0lf_RP4*QP zzQ+yi`~t*W5`56AUm=H22Gn{(g>U`LGmu{H^u7z*NSMXtcyqng!#MuBXuZn(;rs*N z)crMga>i`KktvGr&dwcupz)KrS$A%nX&9u}m9X15-)5i1YFUrO;`d5S_F049NXA(Z zRopVoDRIIgF zW!2dVFgq0b0_PIjt6jq)^NN>Pm)SlOlzO!Ax}kd;8cQ#f=h+zWu=l|aMep6A=bV~8 z=-cS6BuS>Jc^0QsJJ+@gFKn3t3k@l9@R1x#?yCdGq)Gn`&Rk^I%DU%ELs}UfRgi^~ zV*j8a9;2crb7_>5tVb5u8O{2V^%Y6h0_*yc9ZM@Nnqrfz>q>4n!b-@^uo80f;-zNh zX2wyni1`RLthi{1MdS2|%aT?ecRnNJ>#_dDvhE}BqMA@uSe#J# zq>p7cuXqSLst-X&bu&&Ra;rUZvQ!Cs5V#&gocl|Di!F&|+y>+Oy-#+JtTIRC7jIsn zth6Ea-M_}(BF2^=wnU80s4Kx~?p#X$>Sb2^Q#o?6{!83C@auAgUYuQFG)!J-S!7PL z=Gjv2T?jpB$cOZU0?^l zJJU>XX-6t9GcqRox{8I%Za})7ee6v2FyqAtwWRpSGJ~ZK`%oo!qnUDhupj-wJqqExM$8Y|r_)@a zJv!}YIskJS*OyF)mU#!ygZp|K)63t!zD#Sg!|GebWyhorz7JOKwYCoEoi<%@%#a+W z=U9KcaKI5gmKpaEM`y8%--e%>UZVSoS_3#cpr`a!oPz~E0|f`FPf3&<=<3zAMk!>g zW4I--ezJrcRSJ6OfZA4%UP$5&q@kCYA8?H+PAUEpcT+}&>rmPu#GiwwuhZ1l`U8KXQF4^Z+$@B!B+)-ayBW|HM9&eQ zFvzckZP|H(im}h4IZpD2{rpmYA7oO<1{drw4rGDXoNr)MXZg?DAcx3=Y*_a5xB7Lq z$Py!@c#>NqN|Gw`+t~3ESFQ~*ik0NAdMM5yx%)m|0?(*qb4f1RTw>LcShZA09UfAV zdPAGCjpE2qKH|L$mW$qnmSNoTw_7lko8+?%03Li@weKHU3~8R0@hs zUuQY7y9smP2-{mKKlRS5yy6{PmknrpaIZ?{)g)C)#Q)#c8avuaSr%zi;*_TVr^L}} z@}luW;2uZ`pMy@!V94RXPFoa0av;^J1r+)QlA5F$AD!9G?|q-n4En*(AGFgnrX`|; zeMA2FI>pxcKH8mhyOpOnY5PQflX_P z_DdIf1=f*R(Z(~KNBrJrWjp^s-%y{G9sJS$|Ln7pWKm^YlV8EicK!kRY5X@}&0H!> zf$VxaKddjs$!at!n5;z|dPt7odpKlb>D&(WDn^s&RISidY8Gc!=>b0*`s_8ZW~X(4 zE`f}D5%d+aurf2fX6SIX^XFjUu8gZ(nq5iIg|Ly>SV?x4+F=tidud0d1GI~^svS7_ z)Y5kNQY7jnOGrk(I`LTry=>LuLhcV@{8Z=yw8K6fgVs*MzYK4%|F3-waubn=13fJ5 z>v$F=U9%6uq7lhys|p!rO_3WmTvV;W9IY#u$y!puNrvq{v}IAoaF<>!v&bx4S7x}d zAJ;op(lwn5K5;(PF?-`u(_o1EITP7{`oNmE6FsNQsA!xmoNYWuE)b z#yt1a#!2q^qbCch*{>LVM#N4B!;&rsBk5WvZSqU(`}`8-KzchrLx7$S?gh|; zp!R)2ka2dr=ZSg|?XYJEJ1hv-iSH-*72sU^YKCzid!;5nE|PEFRYtNtq=#Vtkj4p< zHL`4^WqeHrR?SZWdzRCV`8G##1?0l@N#)mLj|0m@b%Yac3F8FX@z1N=Ehr2;|0VFU z0yYYw4Fow9>P5rNmDESnzGO>faE=n~Ozk336BRYVvc4$-((-Bc;gHW1eSSwl649Zp z2uW(H+-LZ?!FT+n`c#pIzcpNjD3l?ovV&jPN8e`uuW$44trXVdrv#6A2|_*yF$7=5 zRQ7?#H@kJ%uk$w*w6&j~+S>=&&?rl^nNh#p9h{NkN(Cl3%b)BQtp-89n&cg5?|T4p zXXCM#&8!I7F9v?DUFZn?)A*vgQ(Ys?ik29hv%_9qkk!P1_JW?0gDyqeU+{epj>gHo zrT3L+z|TJa;iI}`<#!xiX1>?785(iR%xj@%W3;U)nB-5KT~z|R;Unh?<2qp7O3r2< zZ*DV?)`P+Q56I{(E_+sp?syU>XzOicXFLphAOzcH_yCX--CqK7LD_`r`;^z(8NexN zFQlA{6${eXus6QRz)ZN+EvcMS!sco0N!9B>xxxO469+LuSy@iCEay2_X$F&Zra2;K z&XM->tnc=v_JdvGN5_ zEd)2IWV3CO2si1faFdbR-;QWY5^P!#YTQ+!UiFT}c~MMjgeD24W($rtGrAO4ESF@L zsK(pR@_U25{Kx*$I17w%(rF;gkqpFO^A)0QX>=(TZ;s$w5@T|8;)xkgP9}XK$ z?OvR+nv-gyYQfcZ9Pt`e-3YmYIdu{UNDjQv8tzLP&_y=&V>#GuVot(dSQW7Ld_i8Kuqe!o78;K@-}CWz_a-|dERiK?*8Daa zGhdfW6`$g|24k=ha(CM{k?-@69@j?aS^j&Ri(?fto#k)r8;5^afKe;C1dQeCzL5SF zG;w0pC6(NglqY}1NlyYNJvlRsldO9~ILZFj?{SiYa8hFzmG&~UcXy?qY4v#GU zoaHA#QtvG6V@7CHrK++WIN4Iw2KiF#noq*sWr|Z%t1Qqsdc1~9qmoj~PUE{3-=~S+ z9}YIP4lhe8A74wFlKuUY5T_#OXiX?f42NA3!KoB^Qe3=Xbmoc}MWYx96@%q*!7}TfdWrsdnwk#107z%pYzb) z58x7zZ+2El7K1I3nBj-gbsl5-A$$wH?{{6n`v!uAUFq*!S3~4B;9?(1@(Z#r>I<=eC zori^%MnK*QEvZhAM5B2i^u7_EW!hoCo#-w-#!?>aC18}=nLfqM*;aTeuuVu~CLB60 zMT~r+kcy-wQnY9i=n1Qzy_eTUsJ@^Yc&$C(w1pr>KRRte>nKIUxu$g_x-^}y80*i z-hpaoDD|_V_Wnu!FzoMB`sTiqd`#d#&nzaXym9$*+ec2F4JWubqqCwEfdSY^)-%mp zjk4pS?zthzuY8wL!DqaA@O{q*Qs_fde^B30y=d${i7OHH+lBhAfPLvmPG_bRTLw~~ zH%R^I4vZ^XYFp~e6Z4A_^ZWZiOE^FEah|`sPgSN{RnYpnEjJ8>x@&YRLUnhb?he#F z8Fgps$=+ZvZ@39EdjZ|5dFbaI%gMI^<)ti1K&#IWeDA&677vZolkopH8}hV~=9Bz_ z0WBnkI(kp?wFA@&jmuAa-$&VL9{X^o`s^7}7n<)0mKD(JOm98If7wfU3@gp9W+wPO ztR}8pW6y(ZL{JjbsM z>0Pm0o3OW$p+)}KKfhJhpyG}RG9{y1<~hmV-!C5xe%iQ~FcU`xSXiMth|!yNoVl`c z#f$z}hJ{wrx}X82RrE0vZgZ1Qoro(LbCi>!(xcT*_!gTAJKT+8`MRNhdzQZoyTMBX z*Md8Bt;NJ07G#k9Jjvty9M+jY3-m`cC|b!b7c=1ok+YnFujBjmPQxz|^N8k4agE}# zi#Nb}>yC8D#vGpm$vx2iezF36k{{W>tMxD^yRwwCUY824R$nWl8exGQPkTrf1Dq(u zS}*25Y?LtCdbbiVjP6HwQpXIGt+DrYZwjZxxJ`goZ;C6MgQvs^XWTolWZa~jc2_zx z{^W7!Kf#C2&#)iEsytqz^-Y+Yub?leU;4pQqJAP>4rW>gM?7D#PsZJ1fh0e7BP{WN zU%qG_bT+W_sFBsB*`?1*HnUsM8=G6j-ZfzEE$F6&Xf%H+o}NUnKR$*hcim z>;Y-GH&VskK)KKtZGq|N3u7xpYU3t$HZ^SUq84=gN4h5F%f=Sb&iu^-H^vUL)EWEKGKroOGM=!03- z>%W3++3nzEokl-|dH}0;eJy&x2<*;ix4G#nqx(7B1MU8|!aXn>C%V)FUtOgKHi5JC zGrt2GAmo>n+Mn8bXdj5}kG3aVL+u~SJ=>(*l2jjA*Us2)TA{h!61jbhOWO6Z zbe}&`ug#7xP`IXL!*WC2e3SgdS^ls7TTR1BBcb9fzpeEw|GfVuwCyu~lKcEaM!HL{ znFG$Lv`?m4qu#ze5*GE?=&fT;!lo&;JTnd>Qn9Q^wmqRPww}pMDxPH;R{t|UqMx(0 za+raQvWA(ka2AI(Wjc6(vCgRHBc7Mn$3Gtfe<$s*ZvdT|I(UzQ6|=;8I-QTMfuCyV zi(hZKCj*vCT$3%6ED_u8fYr*Ad@D5cBc59zu9MH=c^^C~oaFz4)~C}Cm7A=Pp5$Kz zH-Yh;b4VJZw{J^(>BWYwJ&n~TBu4ssXUbmz{ zRO(E@47 z1FvCJ%DITGC-^&q4Vc~cAbd5j#bR&{X#Gy~uY>&gNj_3|248O#c4V-+CtX|2^{}Ed zpL-HE{;O}@ToGM=k~bqp4c3DjgM_tyfjz~jIuo956zIfisvzeUa2rqx&AJn+gYV*(h4}H>x6N0JWD9O!DZt zc=Y-vKl#OR6zWm)0|CkQ*oOGJq+&gnux%LHWEK3`(wU3AUba1Yo1|eAq!Jp^7Nw<7hd0$se3!dK*5oO(^iP>_jKy7A-{NGA2{$c#u2SCB=0?Lui5JkuK`DJKY{BEF0yTOf8x5S(D#}F zo6FPRc>VS1T?p^S#p8+ue`+|cbX=LZ2Is;F%!Ow&q>90LLi55=k;se#%pl!2NZ;Oo zFxp%E2pjsF@Z5mwuef&LBAIaFnQwKT;R}N|WhzW3`GbCvCyzvX?Cw)#$`JCdpLpjI zgk-xyy3ktCmdX~%DCnhS9;jk`xH!xPIU_FiY z8O&I{$f+b5aYoC#aefDDYK-=ho6Wjdwak{V`qnB*!4rlt#jqxMnOUA;CmR4srZHBT zZx2pHOwda+)OA&*J@T?K<|xiUm=aEEJC(X<>DF0{_MdKc%9-Y$y=kivcZC$Zlx0;( z#mg!`#v0Hb9K$F<>m`rHg?k3>%niyGj7#uT57>Y`K^bdSvnHmiNQpWEhEdz0LkX|D z`AUJkQ#C>1R^&=tU*2?kMptuW_3at|xTy=?7QSwd$^92R&3t~7y-nG25O)4!u$C#? zB%)WtYefE*#m=h08Oa1s5%vDror#g{hBrVd$8^WA@Z855FV1F?1Xiak-ezPVUVp`7 zpXEcps8nosj8rPHaodc29wu8pR>eUdtw6f(8r^93M4ikNJrU)~jvjl-JFH@)z{aFF z*BN^~sAb1qW8z_zPI+{VZkT&Vccnb_nys!5)%_VM#ipAFnvZ#vRz)n~MI- zZ}|w;QsTI1>`e08HVZ1fQa23yt%G*UlWQv%u|<_wn^hlQVDrvaTJ4$#Pg}dZD(udr zfG{s*x|1a}m9VGcI|$n7g69V>`o7{IQjCW+r*y0eL7eakPZw1mmkZw(RjtJ-@yCq~ zY5Q=p_m}1-tZ?r)5&bsLeYW~#n`A;q)ki&wsEUhoGt)hWrHbN1SD1%p&fMdg$-UX! za)ntV_29%yRc9RMVKOoPkmpyhXOjzjE$xb8Wxjib?2d>>*c;;vKQ)sCsnj#Pb#Cj+ zRg0~iRaT5NN&eibT7$A!TkP>x+SH>M-!(|X=Xu==8QB9Yhf^~BRL;t!i(~7r?j1I) zdJ0|fHN`uuV_=zUmsj8XoR`K4jVT&WWVZo+X;_?f1zBw}aA{Egn@<{08M6*n!+wh{ z7TkpYIl2z~@-fm!Jkid1cE}Io1T;AIGfoAHo@}~Q236X%9Q5JD{xKNobW&B#XnWmf zwXA!hHqygPIPYFBu#WYh)lYk$-PgHN;+r9f&n@;Weq!N!4AP!I`om^fPWBO2SGh{- z-Z+yeL#E3R&2(*I)-~&jNlGJyi_W>Tx2B)%W+kadWnD&gW3BUwV~y5zXJ%Y3#$9>> z_Y-t*7Dlq)I)pgK>6Pj7J>OLHZt}HwH=q(W()9#jy*!-ZJq64PtkDLRKN`R<@gSp)HEh< zhn4A?sU$nt)XstkKTMooLYuK_ld<=(L?`jQYGqZwcoSL=TwoLY-h)*&wo$7sqa(Vb zBoB=~Z1~pjhLJf^)w-iNW*c%z`70>tHpVHvh6X%Twt0TC) zeRX~o6zAw;!%(9qfrOTDKNnLv7${bdO+D z^jl|Xo>;PW8TOxRq|5B$S*CB_yO1@2T_Buix?)iW!nI_Fh|!z|ek6PWFMZen_dws3 z@a2kdo5XPvH#ij7-5RU6$o=0^ZGSn;ZKfzarYQ zjpPM2D6#H{hw=Rt>Avs2-)A?5+Ka{em!5r~zni^$Fc>eikUcqRSK$bL<#2AKFCqRw zRmH`^M2UO2FEM_SC!-?s!5OxsVy|`ErfAvAl?$FoD0->#(#k|%iX_Q%ylP1$a>_hy zzZeNlJiK$T30O0}c_VTp{3lda5$6edu`Xq9EIgGZOJL8xH{U7Kob}R}T87$P@PH$w z>ah2DS$I_qjS-rQG}B_aZQK`C5!}H_29ii4v8Q4b;Lkya%-8s;ZAsN%j2T~3I&Fc! z_Y{qQ70Z3n>H_Cko!UbA3Q7 z73k-*GFijG8+khriT{1j!5%?7n+*q1=Wb6@^)6I z2WIwm`aZ(LPG+|V-Y=?Y<%>IdsEX4277!lyustD|lVO-x?icSO=N?F>P#-)LxMgOt zYaRq%r*NY=w>Oh3A}s!TkWYg~**-7)_+X6=@(;jo3X9%^K68J*^DOCQU>1p|`o7>h zwB|CCX=i=a{|bE7?&?aMdQ zTvtQ$I`ZPnG)K z>p$paq0`S`tpyF|`7>6|WMzZEs&>Qf^A|YrS`10;C-5%oh=a6Gl#`iw#Y5kd#ykmZ;sWa-1BGF2?x|XuTL37b~{XxKObwT2m%kMT-kHhMDk{ zq>s*(S2s2&-fzgI9^1T`DMxRgS?iKy>mdoszFzAZkG#!6o0HwXETg$KE&W|%vWHf&9Pl_`3n?h) zYFn9cz%Yd2p0}*1v}hq^w-{-xjn|HuOqsHQ*$};+ZlvzHKXnE zobqDdp)72L+?9ba!!hhSD&TeHJFi-V`Xiuxo_~OzkZ4wj(wxe2sg=%xsNDwwO^~0W zH|W#`9ZqT;_5~%@5^8%un)fp|&!a5{*MpDWz7zCpTJ> zxm5c!OR9Amc&1-FWx4E8>KO%cXvF#>xUVmfbjgzHg}sv&MRt4Ar{FF58`zm$qPuwX z8zB-FlFzwmm4vMYz<0QHmVH8usu}p_m?w2Llk>g%7&N55aW7oOKk^>k#I`P2dTirvD{_hbM94U>Pe@Qb-@Np(wAE~% z0(LO9QD%5eL|9wZB1ReGtKbJ<>j%(mkrMtf3!-E#A?=~T^eAg;qvll zj2m6Ymnt>O7OTY2&0dKP(7;pMyD+&;Rv`Z@XW^MCE2^Zww$OV z*T74=+LnZwkYrtK3w_CNgKvb^)BKI^!YA3g3Y;>Z<~8Aa+`9||pX{a}AMAzYIaf*! z>08q~FTM*}>^(DyQjE92zoIG4sw`2GULmwk$3W&_81}}E%TukeFH4tw@RIt{dL^0T zR3~A-gs919kWMkBH4b(saMz-}>TvhrGT?d^@6X`Uw_qQt#y7QmYnUDskuI!nalw_B?r7LIY{^c>O zd{o@MK-w9wjEl-($BbaI6y>!|lesE!7OVg*BRfHB^5LMYxChjo0waGe%0;$ghXFda zVq??PF!XJJjuxTcr`hP<4__@+@bL=Ug25=9gAoUS{E}1r4yvm-1LG><%705^D$*Dx zrmkVuZ=AvJw-Y;*|Nm>s8qWcy)_3OMT~iXMhVSGf91^eQjJ5`dT$ds_4v@DyGCi?g1@! zG}7qO_+q6bg-p7>)JAAaSnW%-%W;le+4E^)n*Ap}9#*zV6JLs&o@iCH`EYhcu%);l zCy5iVW%8tNyP^_2Kk@#4YtN^{v*9ydP+6eTvz`*-_3Rt6`uOs=?s#c@Swwwa^{M73 zjFCqpx(XA>HrCw%cFJY%i-23Gi##GXQ`jP$2(bk$dFO6Ovqz#|X}r;Rq;k_r@&jyY zFq&j|k}L-mT>y>d+hG}}v31F4U2&Xxp*>o?-A=wxkJ)2T^FUug^*Sf~XARKqK#sbc zXj5fMeMP;wnKLuU``h&1qS2j@6rl8P6M0k$(YI~_W<-!T_^~>pu2R&M>|A1Ip-%{w z>P&OP4*KyvcoK+$&svJ{i4gx~{3nB!u5Da5IHCIjG+Hy^bJgB<;3{$6_+1=W9S8J# zVjTIear7-4kxz6umo2}GLGa5UB|`Uq360HBO?ojODfGP786R`Oo7!!#8S0|>oQq3> z(|Yi1)a03)!st9>TNCXmiC&R`zjlvXt0fz#5l2|943=t1D`jDaHjB~Zl}Nx%V)M2& zKWX$I$p+2)WgUCto6XFG5;vqj^vu{4jw~In2tsyRnPWM~F*zwN3nzaom1uNdy+7N` zJ{Mgr-TYCHArZ8lUbZC#=fOeP4v{ucoO*$2Ot;9khvI$SV@TUF6Ov`{vjMwclcm0? z{u38uiH!Cek?MHI$uzKappo^G22hTA_PV#5TZ}PS_uWTGqq7Mx|&$1>-< zREpVtreQA1>Ge{3(7dPqq_&_rY;TD#pHlsplbv>^d5V3HbIIt~Qdw6~a!lFKz70ax zLtm|GCGCBhGq7#eY;Tj5c6kTKEcG>|YsaPEA5|Jv7XMZJ$In8~fpi^yizmvI*!Azj zZn;YwAK`eEPJT;vX|{>{?#Yrg_Jh?i&H#TUs4l|_HCYP_$e<=63v9#6v9f;@#`k^w zn(E_`fkg5BMd(N2b8iBnxJW$G>@TxFQi3V}LB~fJIndp<3@GOoGybsO; z!sFB@%9bRH1lB1xHDOdFACFA^7Mj7kHCRpAXHdVO1g8t|k-SX;Tb>HTQ$ma(0NGX= zACg@G{!an=Uy0g8V?QqAdd0D*Z-Hh1rt#HZI#WtD)yE=Jz8z_j!iHIH^$7Ddli6Jo zUm!rT93LW`YVgml7vFOGb)d_1b`=)^oEd~~W|}>xzG1S)+b?_Tgm)oVdBRhy5Av^w zwEXv8qJd~mldi|d7-Os&*c7en!a7LbRF+I=;g;)xQwt%_OZxYsCcv|{jEWP62w1Hs zs9x`5Wjl;ocNc$GuXf+a^5?;k&8wbfCoGa@|Ed+5OPF`(VF!l^`S>X_b!djf6Edc0vlg1i+6bV$l3<59YTWLz{nt>mRr-;Nn}-phs4KUd#QK z84GL7*!dp~j)1pV=qmN)!OymyW5IcnV|`3%)neA185rIn;cmhBibFY{2soSt;DZ)n z_7@<|BzR6yAg|pbb@vl&B9gR}iX-_SYD=mQwLv@bCOU{TfQSxyFH8sdTHrs58&y8a z?5p0`^o}tFoK#jrv>$j(c5s;N0e((Exo--0A2)P0NCfTnhn~klyTS5Db(Ajph_Y-! zMnqT9@C1AOKYpVqg1olhhW765CyMhlzXoS-gg@s5d%T0~OywM0gSt`9&}>U;IUbq( zEx5J2QwVo}PmLWf$8HVqs{^y)-J9s8i9vX`29-l{0TRqE1^S{GImq#C+CU`UZuDOg z=bIekp$_>B$9)jbk{`q2kW)JY-A|%DS;YF#rD!8uJ`8#sWLy7u)Im^@K|L^HxI0`lh(?FG96&$_VB#%tMnH$CKmZd=(u&bGF_#u4NflyZ zG-;FAs9<;+lUPhlo1{(N4lyQN8`30BBTYLfIs+rj`(09K??EH||Rw{|OQqYI{kv<3;^NbxcHEiPs@aYZMNh5>~O3 zOR%P}tQ>b|LsornzxN^k3gw>8?**1%g0!*E-8{;`O#}{w-sI#j3ueFzl0sL)*uuyu zgW`T$#0B#b(RN}r?8dDV9>aR{F<6;`gh8hq;@Pq zDwIu7_jL5H1#6Z@M_Q{M{-%8JFR&1hSqq(lAbdG*gtRwcTmJ@+*i{}qc5g@E9pn#U zj)JF-Ji~E3B-c-!S{_=uF99geae*QQ2$#FkEOhJpKZ^4IXb_8s- zkNaq+nY?w>p+$dj!`yVPI%>9EiI}Z7XjK<*Lvxn!C3gZpH%#EC3vv0dO>s3-i#?lO zMUWup)SX~$@bfE-{ZR-^*aK-#^>hX*%!Q6 z{j0{H4jwvCKe&TNBL@D4`G^N!MkyW|d*3;KRcigQ*1y31e;mHt<0FX8M`%7EMn2Y9 zRCIPQdQK~Uy|*GVtv)=P z^UC(ZFBxh{wz~_xOYAdo*ZWd27p7M4asI_!;+u}|vV1?n>Ux_v-Y4lE!STZh*blc@iR z_pFATf-Hx?vdH{ttJsj93vamBI;UnsO%P;|p3cCWpxmb_BtM13)NsVpX!xWer-H(% zo?!hE&jG|egZp!ky5iJaz#VK-mz?NYC+K}T_#D@pZ2n=K1Uc*pwI23_RUh$`7#cix z89x19zD4$|O7D7?xjuWF@J=aG9o6B#hqW6eo&J8Cfwfd5RzF7Uw7`#G8gu{I`1a_-T~MU%v38i?bGe>m7Ck<9ll~Tk-l}IX{~)7bfX)M-ahKXbnqz#<1{ez zYyiEM#pAA+5HpCMM- zt!d3fiXWVkp&~Z*b313De(KI|9yHY>7ybEq z-GkDdr4O2R9((Yj6K5_Zk_>IY(FYNO-Q8&tZ2(g7-#oadUK^l$@B`q8(HCTPh+dsVefm-SEC|@#XndRn<*x&KBy=1xU$P|tX zfdg7#UKB7-56qM9XRg)}=^<6}$8BefL!DgOYGBV_sb-mT1=D?`<1tG(nDzebR7lL} z?4T?2GsrcLk|t{A9HeN3He3)=umue$>2VKt2QYgD*^VWSG*U1EFF{Rx=i4I8smS}! zB943DgVl83eyokeZ*SWz))Hrk@oh0?*p=XT$*SP*+7irn;H!VM4Po_8J+{aGPHUql zhJXFcx}6Q4SYG>ZgC|bk2+MDcBeD9H@J3HO-_mA?o7>UbR%~hsXz(QHAyteE?C5!T z9n!|~bOm*2A8C2`YbTd$5`9$dd*6TlM}b`<+C6B*ZqQ%BBhg&>$@q?4+l@c8akr-n z=dudntuSrZxvT^;Cw$iiE0##{&bZ6TCulo{ciq1$ZC6=X0%|P6YB#qMvP#g4r;-02 zyQcj~NWgc4$9mpJC2P)7xm=W{9Ug%mjf%p~W#qZ|r?Xj^TqlCf2KIv67L7#_% z7l6HU-mU6i74oh3fe_mG46Cd-57)0+*RMD#+EJ|#-?E*nb3 z`(qu-c7Zfv5I*etrzVWDJ!>NNz%8*%myO!&gBS2jjDFG(v)Os9q%<>c4II7%Z^Mtc&v^+6(nhpwjRuaJ_0-?(acqeQ}k+q-v6{i4{EF` zM7uR;H`=b(H+U8nE{)Q^n`!q$AgZImldJ*tgI34h`X`NPqIQM2^BT!T!bUZF#`qNE zUJR0~*#?yfy$*e`J@vWOrk&ihPPE}~) zTuQ~cHZ}S4nLpuw(oCFf9z48Q`8Z8z{gx3&({bumlr$K{owye zbEIn`U5@X9vvg;CwZmCj?*(>38VHmKs>8d6UCxGk(}zDvo) znnPVm*~e{D9X{P&gy2IKztU0J@V9M{`hapU$ULr$i~PW2{+Lfe;a?q6slaoN6E*#O zqO57yo1H9+>@lJ&36=Gkzbr|dSk`C%u`EuvWTGtiFQR$kF@MZI%Q`ht7W7qu-0g@z zM-+klD*D`i@funuJt~SE2QYhA2d#{Wv%zSo#xBh-regj&h}3`ddRk5J<3-vg1iz&> z!!14)^uChK6cZzSj5*|h&m^XMXl|4l(lM$T-HH9X`_I>hn0sLt_xTRlkT12j?R+)S44lt!f_ceR zVP%B6X6ahz=DsvkCTTXNb@jqlQAAEJ_r&Pu)64}R?gd58p)nF26w4*H{552>}kWM z4fnmQym2w_`X^>ZZiJPakKbw)n*#6G+F8^Ld|wah z;E!2nkB8P+ymj()}u5zr`uYs zuP5KA)DCJp@!*R-k*I=y&QvpS6%5ZTEf`kSVC_ZoP`wg*0q=3S1P>1LORRjNt`g*W z{hjKp$$T&i)(0kpc0n(ae}Cw4N$cRF(+Vy>DpmG2j!5+9ug$D&VNV)gh0PfWa{NG2 zj9oSQw)L87R|sa%89i^tzS{9-q)K>ZM8d;vs{Z|JGiwg8^FxnIp}Tvag}oWYUmmFL zbN>;e$A5N?=Gybn>ygy^;^uU~Puk%7(lvH*HPJzNL)R9x$mM%ew;y@#AK^5V=X*ns zbFAqAW4e8e)AzZLc_#dOF)oK%_3l{)*-P;kAQS4Emb2pjyUlaOHh(!rZ9eG1-duvL=RdVsEw=gm zn7_>(V)_P;N^C7l;BY1mnwksU4rw;-9XH#I^H+d)5sT5ZA065ydy_P#lex&b2~+x5 zLRjy)t23oD6HI`yy8pS1CWF)qt_OMzy*QuFfv4A;Ef{W)L}iAUKNy-N`^Eq*uCy@d z$c9$q~LcI@ELS6Xl62(a>Bcz|J_HU zfae6%N5{KwhKI-Lo6ZTCqD{rSmd=cq2=YD_kCVIEVVO~v83Ua`pM&P0&!JcMmaF~A zQ;Ifr*W)f9 zK^=A2MdjdWi96Y<5oRNG->78ar{62MX`P(ws3%e~F-tq}Q7uS?gg)S?04pE`N?}1? z>(Gxkra7LPC38t+=F5({nWyhKO(|0xlp@lxL)$(yys_Z&cZIk0u-KHIWqN%NMqUD> za|vmVgx2{OAFth@-%^;);X83WudZn4({Q&XwRRy{_D3C z4#S=%m4ewjZ8q|o(>0SUK4A<7LkcI3JJ%WTe=m;z-l;|jJK)tlAiD?WRgow9ib|1V z2K9d<>Pt~+9Z6^3Nu@J6xX$%X`*;Pe4m;qm0T<#{fGa3CPMBqW#yCaTcWPVzYb%w) zGscKM*yPDET%EfcWBHm%vBuqd6&rL0qgLf0enS zM;YWRXL>FIrzAtnNGEFrW1MxX^`w(6fX6qSI9_S>*OTbcpS%n;kFg$c-j8;CzO}hEb0J04&&SE`W@DJ6$Ni+YL4Z$$hD^Ngaqso!;CHu| zEwo!Zt{0zF4Y6$MWlCYUK48po_CP0>#^w3J&x=*@;M^{MTlD9CL(UpOdY}jAnj4T$ zCi2(_sc<1++5=lU^n5qUxgDu`u#Zm91>W6gDV4U;D{ZD6KMS87*C5FHj>13QZ=6zH zzB5ToZ$_THnCBwzqX^xJZ}eiGi6~=%m?j0gQ$6lz>`*#qOFfruX)^{4s-_MC~%fAhzgh6doX1DDCX z==O$bIi_LYG(%W*>?cWkN1|5L(KEs+$xqJ*h8x>}k?4jUzX>$R_i%`|h%3ND+Z zILjls+8NTyEnWbRKh+vG^hhBa{19^?2Ppg+yZ#veqn@*xVJ4Z{xt@hdf(6MCCmFd| z7XEuDrD+_c-&~AgnklY=PLZ?_bp?gW-l%{~b!AVFyA;~Q82Js!fLo8d0njc0L>}?3 z!tec~RLTS1JcKL6aJ6?O!sTN4K5sU{_lV&#uYmAcF?_FAiFQ76CymNAUMW^9JXUT! z?jrOj*`DaZz6l4)+T&h<8d9pIxYIn}10P)^;i7skMNJZr=j~qlO%QWV_QoMRUkt~4 zV-V)WaI|*;!eL@~o|kB3s2HB@jmlLDhmF7KkIX%6jOmjP?Xtv9l*EnhzFA8-tOfMI zf6_nedSi65u5Q$g>iYeNzpmfmo{i_PvCHS#18-=Jf%!c+qx0iJdS)G~zRY^#dfl|- zN3JxbaZ?<(+XDY9=@18Y4CSdUv6SxWp52{N%wew#$)u8|b5}z4 z%oY?a+zZW&9gsG2gL~xsYxq@8xz<=uD{aywdJB8-n%;MyU)T?C1?xSsIj{gft;cPj z=)nymuUllo6?m#!Wy$u);NwZA{7a{_IS4sDDwP~$hYkpwd5WM~s%#2`|N2LvD6;|g zC!}R8jreCxcEX2cN(gsl1b*oIXmlya#@~h+-4%TZj_rP2@PSlyf;#rUT z8(?dX`_x45UiYvh%oA6iXiyLN^g+jqA>aNzq(`Pvj4hmzYzhDUkWyh9Ra_5xoh2FZ zcAEJ|eSXg40qmkO*XIq=7JQp_%&6(Ze)15kek=`oO?40ul@@zsv-cQ{moZ8^S)9Q& zYqzu|=yh&s5%x;SZmW7Xcbl>Wsbaa?S=^`ty4BKyf_hLXVF%=N5VsaDx>iV$ zi(Uf%PMIgkC;X2K8D^$g9@Y#VF>b~1;*+vNVyx>2W)Nhc9?2g&Z+Ih%2vd=w$T3&!1EX zdff;KJW+{vM`h@JPNqtgH3c1q=03|9pmSRdPA>UQ%dX)EPaXiRpjrJ#qEEvW!(X2u z2!7NdSwK)+;l5|0J>Bk8KFI=^;JD<+0@gHkN!Cmdn6Fo5P@QE5O3x5}Nq}FI*u^b_ z{eajJhwK2gUUrDNI!9T8QaE>IKDFnrV=Vi%@Hvpxsi=PP1B6rXEGY-xOzCkaVvoGX z{bP?5qbFUkcw~3it$nzA&TrypWG`6OZOS znk^mpjd4mZuxy$i%hmu=F+w-?#JR<77TA#PVa+t|ACtaqG#GN3iNEamOz{#WQKs2Fe}d2yOiu6ku%)f zB8|V^$r70Body|72{EU=QS3SL$ceDKJhG?K!CiE_RlYOWtubIu>UJ}naPJ1+sJDW8 z{HWas;ckNA>fr`i%ZAtg9(KEMAq-#VO&R)Jb+ z`_*{56*M;gEz2Oz5z7{<7NN8`-H>0ji*;r3C64~@({xnhNuDv_P%dizIJDoCOl|eo z{$KHXmx$j#yQI>oVbKCMBfeu%J1)Vy?Fj|wGyKz{grnmp#1fXi6VQS)dDgUp-LO5# z5`y}<=(H24#XN3NxBKVgzczY${t2@+{{l0@?@c2?$4dm0Cysr4DXn=?%SmTIGiqz% zV5yn%+=e_a_I(A*0xgU+g?_gg79nV@7SOkAc*RM^FLn~-cMUH=_@_?Bw>yI{o*DZX zbDYR;m`;P=puG~DNddxYtosE4GvPs_UHu++6c8j>O+;>|}w>x>9V$*%m z2q%i+6rT>^Xfd4Ni$pkbTq)40!zc%hDLvBjutuOn|8%>xKB8~k?kQsWP-rxDLl0^O z>=Mx1AiO2KWaC5~x?yw5&v#JV_;?`l9vY+m_KZ_c{~*5g+YP<&ani!HgjI-8{TRp3N+_O%b0H*W0( zUzQ#zmj40jp+HIJU}xQq(%;1zpxfOFPte^sWmt~zaWQ;qycFSA#PI9mHiTak!!M6- zMEKAcwep4Wdtj@TT5@Q717e>NQ#6gQL-?m+`04RA2sen~$HwnM_#rX8d;Bd}fglcg zrK20RK&b5xju+$>Q#D8Haak04djQGjc2* z0|f$|gB{kGC$N{$;AF1HJn%{ler!SCv1<^8EnM z669wBhdeKv;9TGWEfkg#2Zwam!7=>!PJbP)-0;`ob)?~tCe}%7T%Yf&4wKl|nmvQbfjv0%nUax0(j7vdV( z=hGU~iH#$t%;otofxepi|;H zH^vsI^VJhE^3LkBpk+%BW^s%E?wkx=aoX2NRg>3S2upH7-|Wow>|6ePC!aGXp7rg} zp_OP;?%r$E3Cb?h+?QZ)9%j}a+BbzY;f!jy zeZ9RXEXrDHm05pqh70TMfvv}kqus&w!muO8z)s%InG3`A7=x{UhDZ7JcnY=_Tf3Z+ z?jW4R{2UhhBEz0UKC|&IAS@F3lvqC|-S7?iE_O+d9}c_v6IW)K8D6P2Ya$Z-17v5a`lH*pE%* zGB6ICdbvl$Tr~fd%S&5>vegy26@{k2JegO@j(TNj>mp=k^AKb2eJ|r_glf(bF5jAe z;_#ho5_dhDmkzB3c|J7Kg?Q^%?l(tG5t7b$yR=njO+WioJmcrZ(%HBvf~2QyqCH39%$HsGWqQv%zBH9S3A~5NINM#$Kzc3{20OLi8he7!hq9{ z_kMi}suPv35X%o1YtZyBHGmIS)Zr_4*2m%PR`NnBX_L`iV+D1vN|4@yr}XHgj{iO*Nv9)wboL|ZEB?vaRcbs8nA4nFnN z2ESYw;go~n7=dwv7}c!fJOBn6smQIc=7DuB`iapRUf$X?UZ+!xs z3@9N^%g{V36(&-~Q%V}Q_qB3M_J+Z-4CS#9J8PZL+H$b?Yn=zfVHrZWfpLkkydN6TaKJbiD)j36gZqGu=85dE6UB5889jQ3GO!GeJ%s?g#P3tKl zPZI3-@T$7_{LohToDA$|^R;q#*;_5YW|$EL&*NP<$4@DV_n{e+iGL(7ZNZ+{OQ#~5 zUdnw`m}j2~9%j~oZub|MmuMa&4qW@3wk5niJ}%FZ(KRJ5wM&JI#od7&$eH&&N;4q4P)Pp zTC~s6mk<8L2+IWDVn5&?&WPrW)M(~SEb$(2;2Znz-?KD*ccfccrJzVg)X|EseKDT#CX z#;I-b*FYaX0$e!aAgfv07Il;gJaY@=w(?Z%L3#ZvLwadj(sGs+gJ>5v0`^+IigwyCy0KEB?O82_+?-F6K6lL4`YD~~py zozX80Fx|(_cZO8cE_Nsm$qz}qTq<4Am1duJD4OI=bOuY?*nt{`&(Zxc|khUcN(D$dnvpgViQFp-M9IYxAyWi!KzH-Z} z9p!?ub-R%z!^#(2bHR|!MvogNV`LvkB z6>y&`hEE}fCvv!@+E=wroa?V1%^5%*nC!EDSx*56Buzn`w_ayLSDEkC#qV>+UHiTAn4$$CTC5}`$$oc0~Qb1GYArUv%PTGp(*M=Kfpo!lT$Je9d)>@eQ` zQajholJ4)H2|F=r$EqBofE{>lGPfnD?LJ|#Ynr0a@n6@Pciq+xCUzMN>+us1eWEd&~3vD@*a@tv-ht~CTdY5XbeYo>qY zd8Scwl|c)*BuO4N?fTm!7@yf4iW z{AvE-Z)b47V_wqy|Dla&X8^VFDexfMf#Z8|mEqcgD-`zLtib(rT-bobCghPve7=9| znu(KvVIB9Ojq;`((CW5=D@xf#v!9CIDCk5;e+w&=gwyj+ z%37%B?$Ih+sP|a>n;r3}&s5kN)Ls6jc4m_bbbqa#a~VAf@r#g?s+J&qc!hK*h?Aro zV6YK0I`=r&GzT*SQSCxdO!YqOgL)&x^xhL(B=za-kc)#Nq0B2M<{X~e%o2}xOl_Ij z^7pU}T6xQ>9W$SQWl$=gVZJ{X_8%6#)iL#j!^ZcA7E2ngeB7{JJ1-uqC*{#Wsf1nq zuLjs;Lo25>{U%J_@>^r585*&|s~t;)W6+4uL1OuShcEow@ay4IfpxR`!%-)~vX&8l z`E4gSA)=Y;blnpm*66hpe!P@<0$L)P*g|%-se#6us=rW}*-V)FqY;1WpECpRxG1WB z!-(t0Mzgps8bGl5E?b8A^F(D_#dHh^rgGg7bx7BvwG!h!+v9faBp{D3usvlajmdl znz~|m6<|U%E@nUV0du_q{z!rQOSqHF_V74SQ|3A}9&w4}TeCX@TF#>nVD}e0%u9r2 zxn1rLy&v83v*RT?VR2if_6^dGObxT^hN25;e=tF>-bI2 zhh6ShJk;A?x(CMz>n7nbUH6T1>O^Z4-j~2Lf#+_S)f{4lO^3J30qG6LE%;q~oP)OY z)9?8G9Wr*#hjwN9+xI8h`^$`ijz|>b8tKrEhV@NATY;5Hms{$!Lvv_OwxWk~eS8D5 zHH&DqY&TX3nV?(m(i*+Xy~>M~X|`Ml%`xC&N0P6KRhce%3={;qRA6gmMH z1Z?RVHIPk7@mYoEHtcbH=7@?~Y7e*mFDI?@3OSq;#GD6x8xh{9W7bo`PlY9`tU?4< zQ?J}J!=;jYIujF8MXPS`yJCQ^vmh3~!2zo#o%#fIC*sg8U$HeY`JEcw^B&F+L@5?P z!yt=W@f+{e5m=q@&VJ}+kvk0QN&wxT-@hY5>DXfo(xnTqx~(^2jpurd zMi2Q1WN~iC)Yc&EAq88nIQ8>c{OL}WuGOhec-f)Wy@C0k)~lqg4w+9jL!a!znFWFi z;9w#+Wc)Wcr2QKl?)?vND7Xado0hB8MkWd69g>|KgkYI`PdLJ_q zBwiv&ME}o__>dr>n4NSJ5(wXf#3HP}5|ur~$NBU(VX@~{SWNjBShNBbCjpD2fW`6u z0E-_@z(SgPeuEVDK*W{5zB-Fwrf(0OD;HW$g$eSWC&d!uty-KXFBq28zTpYd2Vq_( ztzme3Z^BurT8Y3QeR#t&RbL^@ZNW)G*V~XXz1#65Sr<$A+5w6U8AQKR+0L5${UH_m zjy&)Ajz@t&A zU6N$*=o&G%Ucrtf=kTy(tV*TlaDUI!P%Y_jcx1`prgI)yWT~CXS{ETn-DEX;bcM{d z$&1tS&b^SuV2g!EJ=ja%NL1MvZ_*0FuG53Id9Vj7E4XZ%F7yYx=5eyYJqp?2qw*m5 z@_-c`Wvg+~g_iIZc6sh|u>Z<*I`fQym#`-mRsG%&ulkcgJ|vs^fMr;i+0_!>%w!qd zq7#%Z>R8yX3YD$0)MLhDgE9%mkgnkJQHjK+>M+5-mTONR^xT6+RX6f3E0sCe_q`X_ zpA6kj$TI(kJ*_{z@6-tc&Ldbq2gFOd`1Er)gLY)dCY8eqX;!)$Z!*R3ZRxNG>fiq; zc=D8@>226r*V>Z#*hUTVN@cmzp6rS*C1iiokAfl;qkj$#_a<*gTQ~ z1#}n ze0SW(k)PJ#MM7Bs*OUS6eSJNb;&Z=<)E?vp+JoG>#~aS%pHU2|<#9Jt{7g*ohV~66 z8({OJ(PjoOu;d%#D`{c;l1`EY#6c2}fPE$waDRlV9w(4}rn$XsVexTYM}{;KNS&tn z;KA1)r|lN4AUcYSGhktmX+Ccy9g5HncAMh1bZ8U;_CH@PL<`*fPe`s2&>C?OcP?Pm zsn$uo5{V|`3um(MwKGz z1=)*S3;Jy7uLc8@9h%#0uq)#V^6uh*jn)<6zcH5gcW6ly2fCEwj|#80qCEA(bJqs1 z^+alVjM07tP!-p>nX<}%lE%p_T$aS}Cs=X1Y0eutSnwjDR-_e8=!0qJ7m zlvMMv+d`~O*xz2SdCgfnSJ^CY!Wp(@O~%=dcZT?B%1&7e*G&8RGEpkS(c2)O`*T=3 zVlK?@qk%3dJfj2-$pYmqQwHECp*h6-j&a~Zm{5cs3uqd5`^Lb<#C+K~SJ($QN!9=5 z4CrxdBZUmH7Cq1u`aw%j0esYNz~Y>Yy=tuNw`floll!_rgCy{bBaNT$;NoX=o`Cd( zOA72HA9af6O{hEk8QS2}QyHA^8R;O3G<|(;RrF$NBR3u8`O2Rr;0;UgW zVbN?1wJ4--vmO3=&OkkJeh2yv;V#KEg`*p^WaVY14u`kEshwFajWTtBdhSn<&HM$m zI1fCS(L}X!5pD*34xE7fS7?vz3zQD-v*p8Er;2 z>j! zbL3GWszNrgnhes9!#|H7Vt0&`2)c@O5m7csl%V0U&i1}Ds$!)ju%CmDF3yCb-6}n| z=(y2$z2^jX+lS7XD1Fq?Vusd05ObXx`TY>DIAwJ9x}5Jr`{n?vZhs#!CcDfo9aUUQ zFkLXntOk#4#pA}|3)N>~lMVLdFa~o&&yd_)Ptw`=qav?x5OV3GMwf%}S4mD=08jMx zM}>QXNqdHDN{4mG7T-RvQ8*(k!`aZsPH}dw3HksVB+ss_&y9dk<}_r#`(+1w?uUUB z1)Z{H`5`_otPB1cEFt}Q7R6`EL|I=PRxIKe@tG}!-AwoLkSxHA9U+{~!igN!De0jv zow0FubxM-4Qqz!psnGH7-#&qF)4Fv6bRs0^HSLQ=Blhq|K3l3K8(gwfE={`pP2=Mo zwD(~$(};S}=>2S|U3(_WavM%ZF15<}1q0k7RU%0r75!$*dDMi9rh3ShMPdJJ8Z%s$ zOpk)*r7F7JNi^vzV2v;3{17jV!rBcw0}0^fAkc0hI`G} zn%jyKBG&2k8uC-X!}4O5M({!^%Q5(uWpqB=34Wmw^Bsl1nFv?63*uSY`!mDZco8XGLVQod)yQU6AM#+FZ z%oTE@^gfrh7oM)a#eQG)SqaYjNAomaOHGQXcnxy9!_p$!Xc{*$q! z9Wg@)h?*y;QiFsh@0F|Ap@SZMGvt7DrgpPW)e?|svSGYSrMB7qvY`OT$`j0CWP=Rn zS@nW`DOu<|V!77&%8*KyXHL|X&VI+J>?K`>BE}_mI|HKCX;+=F9(BtXKk*GZB|+0= zQsED0q%sX3;@VXp>(EM6@WowCAr9UR}NZ_OSLnW z`bU*)XombGxFs1p=|G$4K$B6`#gf+bDQt3ao~Ciu=WN5NM55F49s6hxCI~rB1-G;w z^!e2Bwt1sZdevU(Y2XLE|FFVRGeUW4Z{Y9bgCUldHq&Lf=|Ky{fy-L@moBa)(<40x zk3%V^J(5P^6?n(bC|`A;9XSWRi#&eok(_F23-HR@UpJdBt4*u$ENcYWA=i}o5G=mh`wCWOJ`ue8-x6p_#F;hump3NWpOWG5qJ6WL)4?Q zUGoCC!6!KBU_(%n;|cWl$FME~J%P~xm&61;#(0|hp0`AePQ7xq>(_%a=`DTEtQMlA ze<)P9s)i&AZh1QDn`DEXr7>~6{TTQe_O=rgcp8`bzEifupI0XI8ArOD*lko-unK*9 zL->@=(A3amXtc_p>B>R#?H+K?iO(7(4%r2oiH>20@`7ve={=Z#Jn)^QfPGWYHngwL zC!ebVk56!_8slhRdlAO&&tHap@1uw%&tbppfZwZVE*fX7#{dack4IDeJF6P-P!EO5 z2^ZfN7GM?*4Ui8$HZ=gVT9HTA0e!xuz{(*TY+LWSp$&RzFo-)ps5MCkBTf6-3NGvN zR#`GHO9@I#FLk9(jD{I$veaLSV_}ZjWS)yrR%e-dVd{`nQlyOn7D?|oVWD+JxEW>K z@noyg_A4h^{N%jR$FFQM2ZwTlVVMWopx+8g8JUN9B>vA%ZpB}n!MTBkV?%|tEMC$N zPmw}()_UXVp(DFcdxncceTu}hQaaMJtVf(nZoc5?2tefL^!Ri zAZ{-JqZyic+kOQdLW1D4W9KlBsbd1I^KxeOy$4I-Eb81)V9ehRd9+#~CUhh5QTfgs3NEJXbTJ-~GL+oQrHk?RMSx01~_p zuBuCvLc%*-6J`+U0tZeN!TRHxF?PrW3(Qo1TYBV5ia~D; ztMIvHW9MLhG}ihxFwqUW8x`=rIBE226__bJJ z%)OKBpS8w8|98wi54Q8t&wARGI9EMYh&&UF{dbRH%)RBeQD?@WFBT2GGtXJ(it`>Z zPWz1J?=kmUXyuXLon%nFG4~hHvZGkZ`1j65f|Iz)te=6We8EVTwdM)wT~F+rKHON9 z;)u2fRB)-U3~~YG6}e{lphYepytre#<}k+C9HCgAe35DwhqFC}XM#l83CZz~?IT-w z$4KJ$*h(R?V$6Mb?ASitaAT>-)qwZ~wpHc@*5yLE?Ulg*`774n8d>*p*q+K1c>5Se z!7+Q3y+xY>z1d^dC~L1X4t@L>PROyCuRC#C2l>4+_MylN9~7S4rxdh`DS*Y{Q&TSn zR+OGG07hSr#aLr(JnFPm)LQ8rFzB}0po7!I>z?++>h-8A7x1Yk2p)!B-u*OmpLOuW zM?AN>H5wWlZx6}>10CxDtyn+`b|8G5p1EFc2xwks4mi+^HnMo;I@$nv1h`M^)9aw) ztd=z?o1XR*>%*H$1bGyA7VVwc%(Z4z*4%Z*p)hw)*~R)`rMV+s3{gID@iQDH0^_j< z9i(iIB)yTP`lSK!tGZ9MDi4GXz{{{S03#~I1ijs+&z#bh*>kjZ>3$afPRDwq(It^6 zQR-VAvIDyMBuFt!>*L}V;dF!~Eu7LFAbl>>F;(95mFJ@)QtaJC)-%`CQA4XicVtk_ zq@&D*^=+EeBx|A?E25&apN6g^bKStsPP#*vt9?h>qD&<_$SU|53us9-2Q+PQg2Um1 zypohxAVH?O&&Jtzc@ykV1BUvHfH-M4i~pTNzW=-vK3{Y}UM|w*lwzNbJoZe>mA!WI zD*SmzD1=9B}Xdedc=dXnH_1EZ|t4T_Cv6_oNAXK9BrTBQpgqXFEU&GjXedP zP>MdIf3N6F{+(UwQb=X+qRpaH;P;d%j=|IY z8{ttEs*dQ(-|c8JegOYwKZJ#+wPWW9`bN-~FT!dn9hPP|y%h2XlGwpw!=ewIdj9LM z-EcdQmMcw@3l7m~^E%H7-@E5oJc)w7;umRW^bckxD?Ao+Y z-GzNZS9il2{Jz{E8!{^PdW_W>1HT$7mClI2-o+ik*#y`2AgO9MuCc&>z5Y|&&!@oF z7t-F3`(*moi7>@a#_dELad<`rVV4>fRg8L0_wqorU1d*FFr3FxUzFPett?U6lc?Kn z-0Lyv)w+ALXAjJ98K%*ju#QCd>&Uw6QVNeJ3#dSqE z?~X4uo9!&=)s9H}FRd?kM7m^Lq;<*}mXz<9DYV0rsMH&L_lNf=Jlu~K3h&@_=5V(P zJ`HsCuav5bx(b{9knztQdL7;`Qw;eQAJ9hGa={^C7ZRMX6t?-l8t3$RV(-WZ?;cCb z-s`bcPqpjpSVgX%r|mw?Ect#T?~Dt|HgT*BD>>_ zwoA^L!aHc)0{fgf)`}_CMGCE*y9h1+f&069;REnVXsxt)`VE}LG02Unw9=0e$J|D14TMh!#!-SWCGyW9xz6G|ezOhRW ztp`S5>BESL297JPIV~6`chR`vxg0i~`2=U)ju;4Tlb4SzW1Lu|0r6=@ zF?jQ*5M_#gnPs@qC7rlWhUuBExw!tdet4YE8R(suKZP4$8v)P$c&s-k!wnphO@@&| zJ{fM1FvVmTsg;xA1}W1_hVfx(cVGR=}hXe{U7C@O&82P9t!^kIaGK_p^XBK~k>HC=oaRIjB>*!!zg$5WEka!Q<%za6{oA>r7#E zkXWB=f0}s8C(j>Fp>Ux;d~4r{eS|!x=EFBY(g2TT%K5+-*&OJ*tT{}vLZRW$(A z1b8-NBk-WDro6Zu@YyE9!C!T;J&gTs4^u_{jHzt6zxETRx*zxGy-Zb$xMy+wzo|`0 z#rEcF5WQ>SS(|JUVhtJqWnOh*S7*OcB}W2>$%uh~#rQ@X)F z3aTqAx7(^wFylDP9YAy$kX!{KiLx2bg8%{C4GjcrP9|Xzyq4imq)Mh?8W|7uT>~@7 z8dw7j4e^gd6Q~9BK;e>{{0x3|<<`oo2P^qH>P9}N=*~*^AL1)2YwK*4rRDyN@cVzl zHA_uRRSo}OO+_90h_9>SEtbNfg8WD|D@3o=p{UxrDzvzaFWXU0@5||f+9Y16sORhK z<^E^hR$0dHs4eI7mn>OAsW2SsY&CUBd`wCCcEHP4x1*+UZ2bgs~#+`SzWDW zyrmx10DAI8R69f%YY5a;JL+!6+-<8XwUEQ5atqGY++$u5u1d?#+n_KgrMk{e~)7MR0*M`s0K_Bw3Ox8r&b*C)74rn}jSnBv&dn(_xR&T9xT+jjt?0hUyK0-u_kz^CD! zhWjGiK|~fMC#k9F>sVImBHoXCJfL1(1ww+Mhe+F|su~*AYF4tNrV?ljvQSye#C~P` z_KM0Kz++G?T1U{8X8Py-pW*!ST39d@b0r8=ZRTrim0QrSIh7CCwpE~_NPsfn>=fuv zSW#YS+qA8mH{xj$Q`PL&CmxB*%K7Yaf)URO1OY>ir~c!M8Nc-AS3Fx)#c!I#`Yk|q zY32w$~{1{$?-6135^e00S^VAbTyLIMt< zUovPSn3J0FQuKq37&#)iJ8Hq$so6T7(wFmvM5zFc{~p8g%WaiJZi*|mY`0OMh#-wX zF{YU^@Hrr04^&_*VW{&cFr8nQ=+CsMyc%Q7MzE^e$(LY0K)Z`=fJQlATk%ji1|zEU zPtc?#F49lHW=+D{{|=WGdF5Mbsjs(JJy0$ZgMWi;@*?`Yu&NeQSyd&0h^D7%Y9WTX znni;^Mwczb;6mL&RBCKx6+3D{$=sH~{9 zi}R0|4aPB=>WA`80Eo~p|JM#>`L=pK6XbUr&4H*FAG4#fqONvfZ3+zJ@t_LHD1;Ji z28BkF^4gmzCK99~!T*p0A5*xjnx^SQ8x^sfFIrYpURMLsI~h^3439v=iRXzd)A&O4 zB+D#&faq=+A7fmGvA40dd-{X8u9ROa=M*t5@ZiGD~s_Rxvg<54!QZRHei<71s=0BD$k`VpYKZ*io@E{=tem zJF{)8oup7@s27z7Ri`lc%$Y4!sc;P=JatN-5~L>|$e+ZB_W(^RBi0N+1DukR{d9^R zD#Q^Bexe>w0;g5;Ko!p{m1X5MiK%=VxRVsHM*qsL@E~|e%+LDq1-V2?t3g>&OK`Va zDAPqtfQL}2m(lAZ*O`?HCu6lhXuh*6?CaQ*W1m-`Q-d;WyV*ZAWv!&jDZ{ zT|~sy#EfO|6GgsJ3e$J0TW3p9e zFd?TX|L)8p%f?li`Id}-!-SYy*iJrqQO2Sr8EL7pd~w0*B9mpKslaU6xVk7W1FJ3j zj!jA6tQYz-5Grc66F)rh$YT{zQeY~`+jy6ys2IZ{BRNUW=VzL-b5>b4maHwbWc(jc z(z2$cXtmi=gfdsJD#=LZSFg@7XMkLlr`S?9C#EIaQWDc{PfJf+vMD(wv2@X*(#0v8 zQy1S3R?5={m)%li^q8t;; zTwPL7WGO5tD%n_AP<-oSi6y^~p+#9mmf~Ura#odWTv=cgljK?Mvg9$$%>}DV*t(5K zWwbCcGG|rRMssFKCNr+i$un;(v;cyuN?37$P$GiAu;6agqog1!3-!v&$;vK42W1vd zgf|+CC~6gzXvwz}Wm#64)^04!EJEv8c0qB;#!M5@8^9+&KXa9t>Q#_mShBHrbs@EZ z6`M_&MP`=2I*N$V##;Mfrd|b-zWdAImQgtCwcqup*jVqu*R_M!~F?IMJ*jQoNRa{&#oR9^O`Q<&Pvk zE?$=i3LA$KJRwPA9!_LCj-402l5DV>*w)5z0%=R6*mCS*N5T(cmlgyGL`&TdL%YO% zQ7v1Fm-Z{rhOePzi;}P<-2%yW8=6wuPiZNnZ?lEeG{M^6nVEYfIWFlR{bzgaqkGRh z&zzY%uk#ye3qEE}yvUj~sg(G|uC3;YLEZH;gfFMM8_ssxGQ$b=i+%(`%f)&TMQ)jY&WFW!7ETyhn-ZeH-<8~M&%GZ2nzJIm=ek?azkQ4k+nW;uBxEs zni^FUIrXs$15s<2L)Y6e$aCS4B2PKd$z-$0w=dk;6DlIV-W%Yskauy<23A~BJWv-ZIutRnT=XMy0A0kg3GRNd#~>AorBh37i%slPbL7Mut}8XncI)FbW7!9AqX(mWJE0{=j7Kx(VrPdi zW2VSwy*sC9O1Z%$BRA59)~!#1o1eUgf0(!?4+adSkzX%Y~hx+Wnxxp%me~jRm@CG1hk;>fCyL; zAP{Ox2SeRK)l;gyrMLvRQYuyq&Cl%yI)s~MisRr)$*RgnayY0@iW3|%JD^ALFbOM)peEcxdvU0cTVp__o>tb38Xc$&_=tMmZqar3%=>)%kqC~kP z!SQbU5p^K*R5hR;xdK$l5H`TgTe<^8W@_yV2pa#U->mJ5C@Eow0+WvEbNP(4BIj z({U6g3goLfynEl5_U#^)?{8i(5hShmvOpqGCS`U^8HSAFN@b#aY4@;fM}<>)d3oqa zIpr+<>JA~#Ob9cj(oPCfBvqqhEpq15tp1azBRN(KpFDZ8yR58?J42@{nRIcdIE^?^ zxFe6dK9y2Fx_L`V$QVe-!2o?@V;~rKJb=N52M5hh817odCq<(trTk^V(K!hdub>Jn z2o0C}4#m4?@K|o=_;){U^Qd&TR_1t%fUtO_q2k`#h?o`FIJA^#SGp|*#7+DkD|XS5<&erFuAGgCvX5go^CeK;Dkb%0Q#1hvc++EG8~sC!*N+8Co3?=i)&YU$(|ru7EP#*lWSJi ztD5?76XHJ7&ML!6#o7HQHy$w9JW=(Tl(i{2)Mgfkx>TGjrDmi;3EdP#;+m4#L3-6& zO3sw6+49r1s6*;H%)~>(MM$gEl99ECW{Kfk7I_#`l1W>kTopPxlFs6Et=WkwFRrm^ z6;O7kT%prypum`_UJ+T{?2E4O@Az`XN|Wi!3h(&iiOJzNa2&2MRvZnDx(X@|m3TUU z61j|uJ;7pE@de*4_H@8N3%-PT$Fl_<*l%eV{5IyF&+xYal*fE1NscM_TYL~;^fM~F z^bgij>9my|!Us#JE*<0atB`)4Cuq>^;60(yDw+Q_!|{4LRUAAqTE+5}9IAC3uS=E2 z(xtEO`o)RKId@Dt#!FM#m37VhUu5%z>GX*l{y;7ddCq76hE8S4v?n_~>cFfa`wD$= zESsgX_=f33*mFF;v9|uGReIZz%1i-Tjo(d z&EQ?H$8rL=4(0Nfl9}UQa!x+@uHoTXs%AzqoFi?@;OUsW-M;Gx;r*!F1HRZ(diMx! zG-uTF+^$j2>!Y3{&plu9$5GEKzx{31Q=^{ay}ecQMmJ!xA1nMK zZqI$pb?-ctgEJ^|C{Vdi$^Em24WiMzeq%#D1$x6Fn9F!8VvrVh4`C7Rsq7wFB|k}i zF451nD>gPT-H;c6J*DX>{MV%?YbokE;}K`vV%RM_?yKqO(u$+YZsmVGfQ2J_opB== z0waowRdKgx;U4#rJ!8xE99`zJg2_a{!Vz8wfM6=tlmpsnq!?Z3KQwyOdGn(Cw?FS) z^q}c%S~O-}c={VJrn1|LD~9qrP5#&v1P*E(?~&7;`3O>;+jJTN|9CJ&%L&TGG-W-_NfyRjRGJcQ{^Jk6dpw4j2Y0z~JT%xl~|`Z&kF?FMW-jquhOHcxa6 zwUNR}a3;L}g4$*~UZ>t;@hZEp_ET1Wc;bq!#CL6h;-FDbV7-^TKI|j5VOzDKUZ~wy zm__WY*rK^b=$$ldm%~F~N1UypwFEm+m1wUJ4U2n(G{eL4)}Rb@(h6tlXJO!{DLV$K zb%%Cti^4ufNR>=%lEF~4tgnwZbjs_+mGa)C?*ZJ|e#?d?+9-{0I!(*gfK4}Pqsz)x zrp|VPWdm0b3^+nZRJk^>If_42)d^*%p)6z#Wg7_X?ZwSKABBY$0(V(P7(92v1PhfY zYZn*7udo;X$d0a_?L*2+$##*YqP{1zl-9%aA`mRsB9y(Ag#tGy`#MykEk@ZJqr8#E zm2$mRDT=)zm$j>`U0QoMOKl6pI>$=34X`0;0a4XEkTGGxN0|^m08^wiw8Ab+4KRNr zr5mf1f^cMj&0_M_gPMisrf_eh0~TuR^sa0{dvk!CAQvbP#Bd3@+emFU^+ZXc2V{A; zSt$dsxAP+k7y$?rntX4@?kooTd$w-}!V+o>!KlQ0zy3%+U^@eH*Aw{A`*s@1c) z&K|aA*08gQ1zBek^=vn6aL+7fk-NDY8eS(^d<&Fs( z6yQvm&Z#~e?Tw7g>@eCkmp4Z`!^%D{T89P!G=goZx2v2HKx}T3eNTP3D>T$QI9vY> zKp&e-#3EQ*c63ootDKqK0MlV}2z_=NGh|i}3)YoA7zWMt-gV21Gwpst4sO zePkS>Lq3-g^1F;ZAgGB4bUR1Yfo6v3obvjC2-qGLwyz$hY~D)6kFg+vsR5va=xf->BYBFV`h zdl*K6VZd-gF#oTIUAJYUfaSI2x(1BwIUq}#39{rAIxvF-Ixmb#w`y4!lq|t@x^_OY z%$8@SR2s#hTc*?j4@P?SzY|)J5!s|HED@EdT?D-CZM;z6(gFX4*=l=BZaCQGVZ|4% z0X8+a0mfy?E5~oyavCaDiH3l`wM_v1yN)Vrt9b&M<5p2wO@0_oC1mXu36-IWifVM0 z1oQ%37skll(?J<5?>S&KXtE3nra)UeCK5wvqL^;-v`x+N_yKdF!3e;v1Pn4GmihqA7Jn1V*TE7=`BP zzRo9ms;XZkl|YU(x!ujo7Y@2mz(~AuVQ7gbW*gbu>J-uv4=v=1#vngkOxf`DL|3W> zKs3~K^KuW0yxdcX307@uk;L?2HlUTjSSyBx%W8omI8)uOL?pofBJ1x+poTk}xHVY-7r}3)8wSyve26bC7I14k)OAa~9 z6IL{ZITMU-1GY^oPPGj#k}Y7CtSpzrLu-|(lG?LEDZAZr*L}|1{qS)!wXnpy{3DyZCvVv6?fl6x?~WyN zefz%I?tAf)y}rX=JLY>bzQzB;g5A%2dFvz34Ej^gxSzNrdFj>HCr_T*o7~^@QnICG z?tw-B(|#bfXzzi1vnN2l%QGj8 zLAK{r`uIyZ53v$eEWs>%3Wkp$s5e2?$V?usO)umD!_mk~oD~U4Y_!Dfz}=do;qAq! z2cRzDzzZGX zDfNI}X+lX@5ThM(L7Etw#cxa-cB63DD!}r%e<;ep9eEB(_&4}%2oYebWh%)l5O2X+ ze3ao_P{$AsEdnvTz>bvJD?xJysvT|VXrUtBRB|uD2mKjsl!@E&Ve}&jpQ6KXJLp3R zW@?`>BgFz=;M@zNaf#0CBRVyLcG^Th6chdWVthvp4!$PyiC%LOHB{hVEQaFC#aZZ2 zg>@1T`f4#Sf-R*!Ru`YNS|EW%;r^|FI||x{T5R?LVu$6o-cDc_AP{q1#4-{lIvyW? zYzB47(+>;ee8W0`#czH$jyTA=!T5;#ww@60FbD>L@d*rhQ_$gcL(FWHpJ=TZE&2z# zBN2|}?+pPA+aXt|VAn-C@N5D3$S%}0r$7XeHu7@LnY1`+jYM3g5$ z)^+kc6Ymi=J=9RX4ZAZt(HPMwkL>Km^00^+!p)2RPJQ zu*8upxZFX7^Bu{;5{GHL*O4^Ncf`&+&tVqf0OUUaHe38>qW8Q7+rT85bACfH_iL2A z-~`3q`w9*p|A=Vr4~XWyK<4`n!(McVlHxm*T=*0Y1@EKem5)(!>7!&;J&eQo2{PAy z4h`V}GMnzh9DEd0`#qGr@lHy1eVok5FgkUdZMkCynfLTi@>6JuU)W0Km$y*tv34@| z2Pl?YN9N&cDR#t5=1XhHe5HnxCn_oSS~(?uT}H9rFQnKTmy!AAJTgyRMCQ~SO1_Q$ z_%s^a88qp4PN!-5RGQLnq%}58w*r#$LO$T8CX|>T+ekJYk|*E1-{2qV;OUjzJl5?_ zGpfm12u}gTt9P^a20k+-$1pwc@E}R^9W&c|5q)gUH8)mLJBR45e z?Qu0P-ngq-7Q+7Q;*O=;sgqB75Vl7Lx{=LJtZ6a_Avtpd#uSM0jy!haEacEOJ|!Y? z<6+SW$(%NBVxYIrFtVFRr#P$* z?ukAOm~HL84Zs)!KaHHDgWanr%f;_qzg}Pj+8!QU1=K0SRUxu^jG#JO>a*fYfIVR3 zkcJN$@@_AHp>j^d^3lhctb(Vug=xTjQhWd_JV_ zdkDh34cZ0bIav#+9)#{*eg^=*dOW0T2K_e(y$P`i<)@$|=qI3Upnm~<2DAo*L5A3x zih+lwLH`8m0DT4YGtjp|{|O3#z6n|c;=FMxlYF3N5PBv`fq<7G3_&>0jxh*y9*E_* zA9N{*)1MFejpm=g9m5qp0=fot5_Bi18pN`5I-Eb3aX08!pwEM%p!b6??9o=xZ6KC^ zCFnlTOZu7h)TW=`#GT`EIvnQ{p#K1|KFdI>L8TyA>uE0tEkc$bJsORJ=79bHS_ZlR z#PNAN=T_PW;<$WY0b+Sz!<2RLecV|Oth-jwwV*ms7wAFIRuJoo*Ahb@uD@@Ao&&L- zehGR5bSr2rs1U^E{1fON&;}6em(#cjbQ;8IvTj+XPl7%SGC-R^E|3Sra-0Eix*YE- zph*zR{WM5`J_};KahbT@{vGrS5bK!R!;PTVK<@)_`e6{atGhrf!$qJ3s2gO0Se7*C zI4A~c24N(UWv;-zK-0yzv#kFGV*d%y_dr3=&p|A65`>XW%Fe&r3hAMimurX~szNQJ z=>)FA{0ZtjdO6XvP{ns4X8qhe#9cq^3~3=g6<12o7ESPab;x|lexzkMwxX1j;Al}=#`ga zmP-Zj$qS&nvo7`*T!6px>wyOKn@H;&SO>SZHC@l;jiqWv4tf1^cjQ0$I5rU0fgd!_QxO^^$e<_aAF6 zI5HWlKlOnV&pFGVtl#&AACLHle_fxCjOKwp4q905xk^xX?|KS%ZEv{tI`ULhRxPhy zQB%9p>+@s&n&lAM)`58~`h)w(xa&?bevI!2dH4k~-g$)#@6X7%_$0n7B+p@t41&fT zM#JS! zEP$JJYK)-@Ob(D6M25qpVvrkj5eQRfx)dZFI1d2-MQ>69-`V`|FYzT7VDT!*?_Em% z5Z~1Tf42$87{2G_d=m5Tb{MFCu@Z8?u`Uhd>v!;tEA8!f`8qi+DEG?VPr!FWAx!mL;7&|0!WwRR=l0_3hD+1~!i}h}T5=E{3 z^nrz7rCQrStc65BrA953RuUk7L`)Y6?Wfh+&n_f31gufiYc{sMAsct|xWD(@-5~hz zeR%zTfBcfy-I+Uc=FH4FXU?3NIdi+CMA){Q=>PIH5BbvHBn(Za@tgko_2p>ZACdPq zo&cV|<9QFyWcmNo@It)Is-MQn-iy$K=ZAQ9#nZkH*ROks{urJBp5ea|{me68)crxc z+|Xs^Q+tX2rTF_lQATqP)^;ZJqtM-~O8Kew*RF z1ts1f%WeyD-1ZLXyu95W|o933;HOVOod0b7!4t9U^lL zXG-<=1TCaIxWvGtzVcwn>a-zmidSj$zA-?`^}c(86^07XskonCRUFhXmiBvsD-G7- zV&GwxBKe#N&p;e~_4DnnRxxAV?-(hJ7ghIn-(89WqH(l%77V@StiI$-z1*g3KbVZ*`DcOfeUSh{@7UeDx~* zh^cltBrxRN$PX0oz@fpzRLEbSZ$y17d{!HU`4(Vo;Npi&d2k^fwsx*BP1$O1P_~wD zQ(UWRmlr5oZF*nra+<>XXuYwzTo2QBo6wsq;6UqG3WZjn_Qc*V-XX!u*shq=md9Io zPjJ_UrJ?Ru$`y{iCwShF;o}M>L$?1s3+{4cgc}n^C{MTvYcLrc1LsTHKOw$a)DbnT z4E1ix3Z~vR+m{tgzx|n@A>|i%i1Lrff)b1;ttq&2l^9&P1}#~fq0+4w{Ii3TMgD!G z?B8fRKNw{{)+)r-JIZ~GckKtG+_#?tMKgT2DopZ=15y6fA+mMjko95y^gY2_lkYEf z^lP=Y;Gayz!P{4r2mdHogLhYy2mf}>(SdQpPTw0ty_@HB|6x-8lPBfBwjH%N92ni! zAWP6X=4k&0{-m$7-=HZD@~djwY1`0(WM&B&Jm{S|a9zqjd_(|+i)$gFgcp`9hAhvT zlw}RUNR7#}<|4%jNSg`J#{M(4klfF0{aWVkpgkEQDtM-r;!vd=<#?3SP)VOGr3bMFI5^)OUF~I$BZ!fN)qb@);&IR<6rZArdc@Exv4=f$HkpV@z%P|5~Pg z6M3;;!=wIWI{v6WCdy7|a;~sk@!q~Hn4WGArnxbC%*%qQ)0PE|_m&6AykxZXd5oQB zZ6yQaJP#>iPp{XP2MgF&Gwe)NxLn8Awxhqd-ikSD>Nm=E{U^)NmZv|V9H#uz zt6W|hy6F&oOQhUev^BKo5ar+2P|hLB-32mz(^76OUK$#Ig{GP1FXUot=#Q`9jo%uY zatM;3*&6D9B~6BgSfa(;T&^$%I!Dv+mI(h2W@*gEn>JvkhSs66S$?JkHiFhoS}_BM{-Ph<=p#VrjwX zqOYX&MxXgg+TXq=?bH=zuWW1LrM9waTiJj*rj~LnLk5>C~>xp~toy>91Oy zcD6kDrf7$yV-HrWflei+~PvJT3?CESdmvta{&O{7$A5Ul~a~P4T6ko^lCa za_8mvD6UC(iifr*YMD$y+u6edz4mP1ks*?Geqdt5l(WzSE6al?*pXa0_g)q553_799mLLwQF$o>XQQ*bZ#*iM-0${YWq=wwxm3GM&w{i&~b;> z41$;3Uop>Dtj7BVbK zOysRP-KtXOWJQcR)b^=eUP`R6=$IRGeYD&^Pq&PC$9^}UHyrLaumqOYZ+)cyWW{P* zhW!nn-P4f`p-Wd7mMg5J<{U_HL&%s(8bC(eOLTXrQ*FtJ8+WXl{vIYwjwrMQCBDj)T zDU5h=5hHO4xeiN#E&# zC}$0xtf*a1C5+O8x$&;^X#+D;&if!e*4pJK2MAlN+E%oOw5Rt37ZNM%_BFwk9JL;3 zFDOp|zmoM?i7^D7b>py~j+6$ZV>BSWl%&%1n}#vZ8TF@u*DWJSes_v=Z+R$Y0R?tpMV-t)UHvzy+eqWZ z3%)!DS~2HLl&732SN@Yb(w|l}1v4N~XFwyQ^vknf+CZf$vzh>Mzcd5dNb+flE9nxh z1k8RhT$j&$lQ^!N{fLiqq(_*1k~bR2$YhEzW3*{jijNf@)SZztX8g+Q}gxhH2pQ?(>&7l%NC=Vm{Rtel;X%##2CbuL^2SY0^Md( zu8T0{@{qUCxci+xgUBNNoxXIjJk*S_7;6Fp|-_&6K`Eqhv->MAii8s(1Qe z7mLjPclx*j4Pc5#GFpFXN(78Pk|t^!Fv9Hm1|n+rCn47`n$f!3#IE3#;pmJO*h-_u zH(7m4q{_k+a>`O}A7b>aC2}`uI=ly~)u<&yolROIix##-EKEiwQMO|2$KOp&hZ}5} zK7S;4;hqf?x^{Vb+mrzv!#gy}!IAo7Muj& zdE1MCU|Wo!79-ZSaSyi)n-}s9rZCw-20AtRKz*cWVSXzSy$ExG^^=jKk%Clb7H#j* z$aSXOXu*iTGqS*x>-aXX6)e;!8%8pY+6G3b#hU$Qm@3>43R_zu1*VqBbqkvg zH`+!5up|ajxm~a`(e{NW&LOh<>!snPJM zXl;8!X|4n7x~RSsxeSeuPP`Zqn2+S0Ct1B8a&r{CkxsDsH}FuZ7~7aa-jN*Or1hRX z%bx)~?8g|9ALt}I5O4p~Xw@k9y>4u06&=UkbnY;pe|2Bjp6oagS(5s!Z%!%6{_6%- zv2d1rjl&zc!89*W9y)O!vnWl`r%d%hQtrfTm7rf>@+aUa554(d8YJbT3C%#Kexc(g zhuL9uyb~ey8s*vHTt_tA7PUGOOSzWzPZhgH@gGZ51YH*Jc!9H1CfOg#h~M_U{C)H% z6VFrNfw7H8$vx4dkwvDX5zE5e;KK}GXC&7|rN_U4Da`UwNqG@@R3`Lo#H=aRu84-M z(e_XER$}H$dA!}=BR*2ZSSg*z3Su?#M5vP}_WV}P%sBQeC*r9-woq^w+hghJ@pPKP zd3q$X!mvFq8nW?_kB9nrXhfK)!ezQ@mpkWh`HjAvgfEK8Ipp;Q`-c2hcD}A#<1CD% zVpMSRnQqP*kz)}04pyIx=juMCn0KV0-|t23SsDkdvWvH*ehaj{ZsJFCxNCB|mpIcS zTJH@G0Wh6W#zGtwoC&^PH{+%U)?R;8>*k=I6+M}iJ(3Nv9v9#5;F@+aHznme zyWjtmQ)b~WIeFHsl`B`~mWK{Jn6m=yDB=}vA|N;4HQ&Jx7|E^Rdq~^Bi0||z5a?5c9MRS5>yzpY*UkZDb&AnAeaX_| zvX!@1tX+Q>;jd-_O*J3N`l}7Tb2YOzy(eqx^BkH3l)ikgQAE5!bD%eaQ~nltZ6LZd z!*9jt&W`N2eLG-vTw9v3lvmD-ao1|Ptq!96cntfMO7XbWkz2|uN#iF5NyWa~r_fPV zCy1JcfNT**Wf#S&)}U#icu&i<;*eY+{!6xspUDjBXVhFySv`D8W<{o9NKQmKv?+l( zfZX~O4o)c<=C0YP>bi2p!0z!)QTe&|4!*ybTjyobbEYsFesY32z&chqx@GId|59g* z562F{ZlQc5zBu1JnbOQwo8o2Z*f1j;kt1!%j%lDi@$kyq<9UvS4o2aI1-$VSItL9; zj6Y%1`e|%5oNnumsQ&7GI$$EgMVS#4 znH2_P4sjl78a!H>w}63}O{`=po<)q6anwRCS4E5|(QrppHC( z+hfx@xWKihIgrePvDv_D;B1k379vhDgKOHHN{i!EpP}$nUosveo~h!F$O23A#vPHB zmK~8>EFZaeW$75&qd`k_xenvvX!wWY?Y7|n5vfd{>LVznEjZPuFKl+XE4`w{(OktU zg&02(w3G6aw$;+6aggjMT4Gj-pbU(99L#?545Pd|kqcfuJ7lW*}ODA-^wh>_nfc#tg@&*8g9ot*fKhxl-Tn%~9U*A+T?YZn9JS=YgMEb<}3_?zpCyb7n}!Rvwb~N;{-O z6~*kh411QxcC}VlFc8S>7*Qa2=GIU4o;i-O~0%3;TQCLFF?T{l%vosd3cd z_Zd8o<7vRdH@yI8O%uQSLum)zFSuZ3?T&^wj>ULfgmEA~FvYRflHM8(zZ<38Iuku8 zk^Esl)!OkHN!8hkyd86J;<33(Wu!x*IywV-nQD09nDyekVl8C-jS&H3>4Om>aSx=o zuC+wNA4iStR6fu~^hcw@-cW1=?8_thTbY}5`KjvsHjOu?8jZ$uHk(>YCq}XvBCTB{ zl+;N{XxT}$jLRO7`RsqoO!hy)<{keV9{y5#UY6yg;(wu<88yQm$i`wD7Jy%k{0y zq9KgiNINIZk}_cDLw_l~BfTzB5*+6w*b%w<9-{nxyNDG<)M9Lpv}r-} zNsJay_=6}nhdq~n`y@s>@9P{p9n&4N9a~ySb`fCy2QZp*_GO&E5O6QqLIFCLDciCf zBXY_LV_VBG5l#+r>Dv6M-GTC}G|o?VgBaJSoFs9s2%rjbukMQ$Q(bNDwm1ui zjkT7QqGUg|Um(hj!(PYLrP1)O#!p3v_pz*Gf4=hw+O#T*@xN}<1zsKUF6B?Zd`yt^ zp!xbyp3YO-78P|IPRakJ&*TJcu3r-ogiPliU*T|CZ9smM%=O-K1eWtdkJ#HrFAg!L zBFA0OTs!D`M~N1uIs_>iHjT07g=*}xaii1YAPq*RAaM;TPPPHsVS;U%)#`C@W<4xB z3V&hrO=@K={yX?g?c`eMF~UQ4qyG=%{f|E*`qZBj{WLtrHugDd=0}+&_EnkBK&$j- z7~A!2dS`yC9+u?pVSOtd`C7bFJM+o-du;ut+Lu5|?Mv{pe5&K6mbq8~5OEtgI}!eP z?3(Ab4r41bPd`9lZ;?c-_e$?rR(YQ4n-z{?z#NSH#NkD_czip4dxvR`)lrK0a}ktC z@?t;iCk{*LJghdsa~9 z3?H@SIJbxkgrF2)YzoSeNUkG?^7ZG$Y;aD5^G6d0n8asfVot!@$Z*mC zleAyfl^&II9ozvynKAMSq^fr*Hkg*qflWt9wskJG?UYBMtFS7DT>W#5TJO>DkWb%6 zsjX2?L05Z6qv0E)BeI}8_?n=6_ccOJ4037OJkF8OO$1F@!7w{(FJ@TAQkWaTYORpY z)GEJIayds*w@|hkvR06nefEWcMNG>4>1XNKtX;k@_ST(&d=v7go-NE9IBU=QcXxVO z%6yu($45&TX}&Q9^`sI_Z$YlMn{^mU7Y?TpTNdj_eYyJXlKcd}BOmJ{U@i}BtHr)& zZm7Elwh?3er%Yvy${#Uty-CjXYwZ>M!o(FxPFqH!?ejBCZ5hKU?VzgwV=Z zR%PzAVg!Q<_BnI&HQfd?@62%VPHKZaWa6MPr@Tgd2H*r@VLo_Z#Ga1_tByp!cBM(; zl;%;5(!AZkLsP6EIf>{fBp}wp7Mg)r%$M|XMBTGl;d>vTG7fW31b>a|7#PR!jIW! zHQOR*is(E_irSK$8b`)sbY*{JR2fVvGfFL^g9=ebMtR5DV<}fBKqls6mpf`9%5$)L zc;{?aQ9C1y$wttu2+veJx-xxRy2N2$+sLK6i1NrN5u#x~IQ`csxY14o*26{}&s?(UL93FPqkfFc1xgJT3o8Pl?G;dQf+qxdZa>UrfsTkzBpC9+s-r{u?eTEvo!w4 zq45tyPt4kHOX_Btm_nvOk)^B@e-6^0SJU-po2w}ec+^i|t!7(}%VsHE+N%q8ZC27a z#9htR_7K_9T-6|PA(wb$$aQUYK={7#cyqNF@*=&t`W!#26Hr(SG*>mrv`t*#tdv}q zYD@CZ^h`mR5I85LqlIJQZQ}3c`QkzOHt~QwCjJIvW4lawl3ltxdv|te8bX4Q;FWMv z_a@47B5rA88tTzH>@($W@-x_5%C_7hv6A*`y`<@XoHKXNop*bU=BEF&<^;7kljjEW z?Q7f#xlc)?-wHnu9W(#zyV9JS4_N2Hzu=%X$$rMQZ@|bg`8j7X52-z8TWZ@4SC=bu zH3{9*Ys8zL2dpNJE8X2Kzgt~=McSFFzsW|=0jm(lm|l5SPKDN(9%ztev1d9PBx5cp z$2GX#2^gG)vRTrR(Tf)o#Wi-OfoUT7C;i~bO%b`dngIu>1iX%w&T-6-B%85Pno#@M zTMY`R{pVmaLT+?y7i1G{ZIo=V;Tm0O&a@crL5jEISTuZSLhBHv=cQ>1qxm#|xn{yU zi_IMZuW3z2)O3N$T?OUXg{p3uwxbvIPS$B`o22z^aavP*pX8PXnyarW6GPT5blqoH zxi3l$Ha;MhmPu)$+H0=~yijcpdDC8~S|_d66#M9#b+s+zUHwAU3)N`|vwR;`n-wkl zVHGi>4Z>#Z=484WB{t+TABJqD2U4&K)C69@Dsi=nGckakhW4SS#`YJgfeYBnr2mm= zsy7Ym43&FymH018yIiabDgD|e>BV$n)Pq`d|ELjbRbfH{>NH8`bQim#;h7Uw(B|_i zXcME$M_3=jw#@ymzph$5)=@=ej#Ji0=$?;1+FYFuO4bBOt_OX-{#J8n=W4n$WyAAA zRc9YD9kzY!;R9_$)@!j_86r9JzF!=4F!Sv%No_;kt=Ib*>_%X}?FXwyyRn9~HoCFjr1+yBSG^S1V!2pL zF*&2O?c_w1kfl*Y%S4G1jea59IIB_hNHp9xQFIJ+2<=>>%C$NrNNxc}1uMi#v!EmkYR_}dk%;nAlxplp3G*z|H0wB(o6HHb)F9avJ+wkJd~S@6 z(?%&xm(fW_Gq1|0UrlY2*6Zd%tA4@3Sc}qn>1bsdy08{LKIWa3nEM`;-JCDD7=y!Z zI&=i|zY6p2+0SG)Clnv!x>AmP3);NbZ4UKTrSWNobh};gxuLBJ-=;I&KS}R&r={(@ zbZU^zJ~g1@a%S`SxjtUhLO(_q?}3KWK*#R%aZ60_%51i3M);69$g?Du`ak{7M+RJ0 zT^W3T($5_}h%@X;D^Z}!BBU_=HcLCjKNSyFYUdcymOzxbgc~6W<4Oj@V5Y^`g1L^NV{H}7##8;kBo z;T*gd_|*CmuE5Ebxm28!xM2AzN22<6x~87ytPi#!s)Pj}X)wuT#N1Ay}CO zi~LM>eZ*AZ#oJ3Z=re7(!tz%Iyb+U?mwxP?C(VPlndd@{_qAIeak*V~$(Y|!o#cDL z^=sD$t`A+#R;*{0WR3_T*6~yei7urb+60zKEG3asWZ-wP*ay_3UXz8*=lr}_=VoB7 zagx21_BsDjQh{^$02NYLD_cf2v_OEs{9t7uFoxOz5e{y|?JB1KYis z(yr2HwRig{1$j{NXK2y4K*7aoTNkOnh3c5%k5f^v{Rd@h zTpiUUA8Si*?Hd`(X&Txe@`@@2IZ#mXy8C5b?86?pOmo~HskD3Ge@najzL|Dv-LA3| z6rWwCov6}|Q)%bM{u5|tjnU2>gqEaKA<7fpr$Lh)pvf~@Z6~EjA}GR`A=AQ&vgM@> zwwpnj%V|=e(gb~nv`zjt*n~J`E~m-tOOzpyEwW~D86Aa?ZcAPD1865%Gemz2FVf%i ze}gV$3-q@blm+oqnzrR*l`gseTe_IOkuI^CGt00mgZe04NFk*QNvCunTLw_yzfm8R zDY7Lf>s7j>_!D$fx@JlyC7GG&qN_;u;zO=FH)xBI!PTV5wQpbt0dn?rvWL^na$=tD zs43s%d_QvZO*|hMq(vjzAvVCN`xo%7)9XjH5k9Eb6u~>)s%-bJl(+@DZe|I)fLwgq z`~IiA@}JEINZJCT{M!3)cPhePdZSnG@omSNFC}3o<{mz=Josb22m4_=eZrE25q>l` zn51VhN38(Pw<5$Ei17O|74JQ({cm{YDV)AUVfZ&H-|*-MyjYVnJoAix$XldUxFqJe z^59cR-4VStVI*ldJD8C0t(E(1)qZ}+yK$dQiih8cha2NzmEX0@;L~Jlv-y#vP)RU> z|1&UTNtq$<(y6`$_TSmFTpRF4;%^&V&(XZOvApM8=V>0^a_reygS_WruB(jSR@646UwuXLm=t(Kq%H-*NCn82~xuS}sY3FjGMDim;@vi%?5y5BFAQG;E1@XKl<4pXIPhqI(Wa z$1snmaB3)0_&F;4UhXhf02y)kPvj#*`>quwE&!~6`XBl7Qg6%mp@r#+A?1tq8PUET zZb~Os6Ihkydzkz~Xj8RER3h*kK8cy@aXHVk&RN~cm@{1y;R`tN5J8F0Iwx?lOxI-L zvj=6G^RAk+N4It8{zDVkbEbKppM75bt*7)>r?V$sz5{0NA(N{83!lxBHThySIHJP5E?-{eRrK^m74E;z>Sa|%iOuHaZ8o}& zCAGww=UgXcVP#-o^?5h@iFnnmY;K_|KQIxV6V-tedzrbN`PEdGG=VDVfMgDlf<$|j z%Trw?CE3lPhttySZfH5$8x2-Du+^ERL;GKu2v5XUjeq@QA{?1G0c!vK?4J<77+YI1 zTZeuDsQx(Au}_%XrJ>heSuf>Pb0P1-UGOk#dZili+Vlq7($Lmd8a|=zccJ~3whSlE zfPTjf7&T@`hIFT-FXT=hv`uw{;bXvvsinV<@D?W>E9ljXK*wO6O}n2hIme|%j0+51 zPAPFk$Dq|-Vb}gPy(B#{bqU=aqi27b6&0BO*cB1^6T0V1$8_3%5Rz~+J%=xzf^%Tw zF-D*xrlbrzWAI6N%9eY^B>hZh>3mCP?_3&BJ!reP+bk`)B~9T|HU-jkT8vDyM+~{( zGkB7#!RUHES|cqk>%ghVnGN06McDDgBTa-&u%-Vdr^Bk#aY^=c*JLdnfw$#cXDaZ` z@vXzEzPD@|x z0jDfDyWS#IQ3}B)ZF|ZK{)zBB@W{Gs5IW&!GMmQ+(iO7x136t`Q~nWePyVI$90Yg1 zf9PqsM*0AHqt~5euW>yk)BQk7vwb+Lq4Gud5P7GjY`xSm$ckq+aM*|Jwqhj#n3g!q zWd6x-$WIYDR}y5D#SI@DddZ@X+i3_2oOG?1>nIjjM#0n#zwPtY}oep)H(5HSAd( zPT#r~V*UzYmFmDpvGkx+ zhEaeuy1mS0RN#H$pHt@XtdU@shrHm~8dq8`xvKNBQU1MgI?B5>f5Rx>GCn!Vxw!7F zMqjKCHQGA-jF4O=RvTRull4KP%T#q%_Zmj}o#T@lrBT-c9IM7-Bmce0c?aXziZRXM ze1A#Vk8wK6;;emv!ziu7{KcI*Y|Dv_46{BTBST2+Ci&O+=^5lb>KSA~#obrmefQm0 z8}si7TwS&bdz zu1Jp9B-_nb2vTCAmx(ft?7Yusr+KL4bodUh*kV&6FMiAqHTpt;d+A6I`}tg zbJ^dGFCa9*JffTaJNq1wI1`1ri)e1j?!H;QCf!;3MpWn>na)1{V=?-Fb~_S zGo>>%R41Qt*Dj|ceP;_jS;bk_7!h?2y(w3Er;ije$_+Ssw;rE=f3B3kGs@C&-l0EE zchU7?xneQA)5mhu--PdAMD{?gqL4As?M(0n{ z&FIo+@4()SUY&<`vAQls`OB#OAlJWxvqx|@aS`}Gc48J|`HwY1ZpoT%9uQ3H4o>>qvC`xTW|QGq0}34*&2v zw*}mxTC6^@$in3Rsa{n{tj59C&b!%e_g!%$ec4pJkM%M^~WCY!x=c&WQUctmPoA>}X-V8MH5=bcF|y z$k%&tqN)L1U8BskX=k^KIP;U>D1R`OGg#RhuWd7L26!71nylwMa&(yIubA)r@Xj9%{_{%(Mn-@N}IsI}ew z1+Dr)D@rMXlZTU49grxkN~sR_g_^xp3rjot3~BC7wD*(!P95dYdV6br*>?B78V)pK zuv5Fp@+Xp$gG6tPK)oIv-^_ z;L%v@=&d=T_ZCcGU)tMhhJ=e~j|k44ai;*&Wn8JxaX+on8kD}SUZfNTwHHH@@4OcN zP6tPRB(qojK=vHGl3umT>A$h9q*|=mo}Ul^KNZtxZfkQ*hJ7DoIvQ4Rk|Q{Ju$v9v zzA7rCjqx7RwnxM7!%G6^e(;xTOi8T8JY7|WU#99w{OW9P(O>hq!-)?%AFO*IbIMy@ z%$K&rhdKsN6qMoDTks@)tp#u47gos@VlLZa+eGqe0@lyR9zOX1AFP9oxqC}e<;lU5 z?xaUf4zg}1er;=>!tZuFQVZUGB=ONCPvVc5LU@?6Y(az7esAJ`z%zko%r98C-@7_- zjlJVu@N5hBosI`+on?=94E`yN`g1<{=-ZESn~BhqlK9<@!QzL?@VmY0N&MEWeha_W z)!T43h_>0bMNDKHJRNAuw?#yRUWC~Qtq5}{48nN`x0$y^u0qI|I|d!xwn(n9Ei&K2 zh}$B0@XuiKQUWcJ2ZUKX7y1D%3no=2d6>c`)_!lSjdk}PlsQR*F+e5PyQU7*rV^Rq zpl26U&WT91!k!lR1s1;3rz=cqcoaTehK9t04WH`B(|B|T1u6M$MyVdwIC76O^E~B6 zF3Q;-4}S}x_7{v&IihjY!&`z;wvSj^1?i=YjB>}w&Q^^>*ZcBDoOdFpb;Q+LjysKv z0C^_OHM1eJOwRMY&6}9~f5M+_;!$F{-tm59<+iE46n-yol3Y1Z4B2Cp-;Uq}H9$u; zqj=B`ZPS}6Orf?xi*q}so6P^%uWdSRGjucJ9|ygU2-3Y9e;=7{VU#7qxyMjz<>p@e zK5{~KZ{qSx{1nSuBesDpdI?S6~_tDgwhV`a>YV5jUgQ-`IEgW`lIu-E}F8?b3 zl!56Cg?m>mT@s)=i_4$oZ;wnjn(n1@z!5d)dKK?fiuXGdK84~{V~G^68q*95_wg!i z$S|4GyK%|^IzqO=8g4mezMpfX@w8;qFyrtZgRdMn$q#XMj2|z+gCRrJ+UVOVCI@t_ z*jJ;+NV^E$?jsf(JUZT_`?7l2sK$1xt2iafrXOR!%PN5hP81wew?xC^IG_G!fNEJm z)gzzEgm9wLMkU3*2_Am=QyfpVuzuXEzlRH`dScDDdvS|sGm-KG)Q6u>Wt8V5UaSpp zc6=ZjzIV)ZOw)8HH?zxhzo5>It-~3|ShctB4afAs%QaU?HPOR=D$fTOMRd<;^J=KL&7VaE3w$u8lo>Xx|cQ!&x{ukOuTSr8S zL3GD(Y>MM(t`QvRIMG~BONXx?AH}?neT5p@etS(OKesDiH@i!&{_ob8s~6AK4rJ>E z>}UQm$|Y(dyg?J;mT(4=tckEoG!e$YFJ89nUjgAdVd=|Na#d`1z+Usd#)0*;7xq9$ z%{4kPWVegTja-Mj11nR8>!`}=nx>dj^nU37$QAm3jP^y84(J-)n437-3s@Q)d@bCW ze(3+PcjP?n+g%5>IO$ioE6Sc8JEZ$VzziCkK`najOjV2u@Le4{EZb}D=I3?I*JXFz zS52<{t$$v;Z_^_D5>U8dT7+A`9KcBnyoRSm*aiGz#Br)TEuvX~m>W9+N=9_qvQN~$ z&a1kwYA3a!L|aX!tLnVi%DVCHZe{YS^X?IVA zXO0o9jc+*ATN4crOe~V8DV!$3FKkLsa}(9vyhFk!_y~$GL6RtybAWI4*c^En_RTG? z!o~@A{(-BmZKM3+s<`SBX}f0%R*YNNJp0oUwF>g>$+zss9#!(KEjDA|Z%ET~h4%e6 zy7$2P^~lo%0)3iqXNRm0FSakRm$`;88iFcCQp;@yZ-U;+)<4B?}}2Urvko5J<=-dSZ$^!3YDzc z3@D80kaepB$iz#KX}T0Z8g&Lh>H*0E@*E)d>ed17^N~r6r?nKLUrR9>0jH0{QH)MN z!cR3`cK|D-9{5XW0Lid|BeQZm{4zXgGCf9&$Q~(GOLM$x4#8|sb5^T46>5%E&54E| zhn<({*`+n3%x>*mlo60aePuH%iE{7j9q+rK%4Ql~SXh5%qaHkb>5b41YrRL#=!s zO^vk=ImFm*$om}j3+|vyT$E|pKmIQ@Y>whI1@F@)K9P%Xp7>38mjZ7O@aA2Cx9Aey z{0UJ?@bq|WAyU;-*@H7(uNvBdjM)O~FB(2PP9YjSHpq2jWg|{|an6r0(cW0uskY%R zNSF!%94Z8G(2(NzOoce9;y^8QtwC!64jLxfdnymhwQYR$^jouWZoyZz*mig{)h54o zh72F*_>Hi0tauJWle{#3XwZdc2&Op z275=WENZ7^Y3=XBLSnMHYDSsM{M0H2d36LlY0b2=RoHn^edrl8p%Mp*B;g#6j%ZSa zFtBbDq{X&wVT#_D4;gk{rGPo&M)>Gb-%E{yliq|joS9Aix)SY~mD?ra zIV-Vt$zuw&tTHJEhP6W~QThPJg7u+9`?^YcyJsqP-M>3tVy}@lnw!Yc(ZSHs(TfA@ zXezi>PzcYs!CZ;!XVUB7t2q%~J>Ez6|8QTBuEDV{b)-IW!zHa$Bt*l5(QMHSt#ku! zA;H4Hj7aYxy`uIr6E)Y{GAn5h^3a1G>?xDgJuX4)b<+|%(4Uz0qPSgO!Trat#qIqH zZZmMNQ^(~0st($6AwMH&4UY!{u2r65 zg<)1z2Bcy|U;>w6qux(9TFm){fo&4+p=+SJYE}{htEJD5ogBn%#R!{US9R)XX32|( zPd)zAW2!V@zEkgA!YAd+Qo$%Q#)&Yc_w->Ax352t@61{)ZL2aI%d9;w!+Q&N%vh`{ zIH^|Mvz)FwE8XSM1)kO3+4Z#cj;`4LX`2sUS|UuS{t=D+7XQ1Luit^4c>(q*!(DK% z(eYgwt@Mq>+q0M6c)U%!^rpw#g&OCPdM)4e6Dt0@gL0;xOS9Mm&+x=fyJ$JhdM)rUW2ZrpwN!yP2= zeR$`Z!Ba{>8|vzDy(=>X|CCo{nX1wrTj%PNE41%)m0_LGgVxg4P&uVi$|#%0PRLik zNpMe{h}PojY(0eKU<`{rz3!BHR@G%24!gq!EX_EMkZy5O5IoC`EP{3 zL4cePBfe>Zlg3p>CyU!RM@9z*uvcH`v@aoLI zQDX!*r~0saAvWM0DI$D9F!mgft zDue6nB(K!(u1QBrbpBZyO{cqNEo6ch_PH^>Z~V9HQd`4frfPN%$$!MJ=s9Teb-T>Kn-{U#*JP{ks_YexVlD5j zZKW&v+E-}YgDu^%}4qUKRBFBvBG$`KBD@E(JV=4O7@E3TtVzipHELTCkqS zPB^;;J#sU*0~*|$x;09B%a%cV z#o*!NIHaMy)~U5n8Zo;mJTXsFY0+i1JP<1-8ryyh{0w$M@%1%IQ(&j}6y`)RepV;M zJO?h)(F||&n{;QYYSOeLU4Mk--0ar27~9Jszay$&etD?t2YMA>xnfNQ&JIHFTVJ>w z>)-^%n)W5E85FCkBT}Iw+%@ZToH{Zo{>#VZ=d!zIy>_t6D$;xS#QHC_UfSpDzmc-9 zPkbR6p>fLT`DRE`TQR;ah0`E>$x1y@*+pAPOq9xeI)lBu|D2$*bbOq)f!3h?#u|Qd zSq&X(4U}_*-^jTKFM~g*!ozVN`i>XPg(5a#!+#>PIer zT7c?Gw@yK^@*%NPb}}N{5lUk*F!Z@1-;uxbrGfPly9W$ zd3xd-AJx-UO6_dX=B~qOExdeFXU|_;d<)5U=C7bDCc08;@^ILtp=a6pmfGdn&UtDM zT}#m%J;ye%O#|{Ar%6pW#?y@)*T6M>EN3{g)N~=9E^vGU-*i?^bIwrHt?_hN2o0L1 zcVvSzO-=X4)4d$snSWE(I;YTd*g$H%*agxx=$hK#7jPuzdqRDq40w!qrsB!KLw%(L z#;R}AmJ;Rju@i%*EOm3({AYb$P>C;6eWh^!iIwmT2HTVXH}to{O!S(p&a8wDtA;&l z*h5$7KJqZWo6%+{{V~;-%5TS*`o~)Jr2^uAR&ler2A|PHzf?0GJ~&K&8;7Z+)4Nuj zlv%c;rNNdKnCYbbAn|^XEtIm;=$%p0p_$v6UWz$E+3-dhZ1%)JvI^7WMBDU{-iYvvg9u@=_C>oA9J5|0rf75o0ioR4vK&sM6XPWJY=GZChC9+E zw^NNR2Gsuq64Cmx@ZYg3`WH1-8L!i5x@ekb+3AvFFpN*z=4a}hfl;2Xg!?0)J? zpTz33khsQy5(@_{MSb|k z!Zzw%+BOz07#k1gMxx;ey!8o5f)t!)?)Fg&o32raS?^p2Kk(QdC#{?K)=Kz(pJGj* z<4B=*0gR+qkGqy1M90Fzqx7!pXjpTc>Q^S0!&d=Wf4ak}kH}L^=MFpVd|Ae9W63rt zwKcOO-IIZJay|OOz(U%3oZ3l0IL_nud&l+oee}2yzguvVQIjp?>_0pnzJHW~|G+X$ zBv8~|)TYgb?!1?#S6-H`GYL+udFCT}Q(Yw2n1J6U#zg#97-yI=YwIE#jRZTfj~VMC zKgF{T&rxHp33qC$*0~!u_S~C!Uq@tz&=J{#=XZEc2z8M^8#^MM2+t$@6rqA}3?ZM| z5itUH2EuHF3lJ8WVtqoZSH3v3?~$oXgxRCv8^?Z!uTvC(e|{|y_Bpq=GG#`{{<|^iDrmk!a?gaF@>56cT3-?-5%Wa1bKpMlh>>1C*qJ+?sxJX@swBO+a@8gAG=RpMbi;edxJBB zU&<@5Nbzp@nY<#NQZFz2qO5znY>TCX3ZMke6}~6m98dYaeA6XJ@0$DN>(zAcn$0pi z%VU&-KT)N;P)#Rxw|woTbZ_D9a()cH@D6$YrF2qQD(A%D3!SofDcvjHEYFR>i%aF% zYWfH6LOC-AD=wBZ)U*%X^W|wVxb%EEoyO4axw0`Hvn$>$8S<1%Z)8iVoN(#Q>rRxl zWoJBg%sFQ&H8O`dPD9+0xSuCut!%q(FGpVq&Hrzp?OD9vuyEn9Vad8ICO}t2bv9nMVIjApf(@(;it|W@kY473e%k{h%$SaTAV){JvP9kVD%cDR=q4x5lJ-u zV&tWZhex(wCdeNKkg?pqaR7-hDoi*Lgm`fsw7P=lt7>M2g-=iqSq3xcIJ>U!< zZ=Mgl4bZ)b#y<@*)8qIC8%c`TU`?`4;%BZY4{m2ge67{&XRmSk_4x|}v@C7aUD5pB zV*^~u6pY>kg-z2L*CN$0p*MHPG^U$KF#kb*+H@8AaV$d2ugPVOS7kn*59s3~*hk#XSEn$C?_w zAmt^B!D%_WM_#ztEvH<|`}Yr|>t93v9#C_TIq?(P8Cn+5*`Zilnq}a^3Q4|^9{ZXd^>{5 z5cTQA7tY`{N@tUpe*F|WmRT_#p7I9qbs|0?6O!zloX75j{};VgnTh?R9S^|@D#)bq zkQct?>kv+`)cV86*d?l(TIBYt(NF{e3gKcipqAv4$KI!LmO?oJot)k z<*v%z9u{X0WH)JC2)pX~z(QvaxQFklRi1;5ZB%XJX}w4A9jB@Od_ZLR^YFV+{rxzQ zqe9b@2@0)OEo^G5&n*k6JCT9P(;gPG!0cuk{{~G#Q&}dK%ChWkws9t~O%0^0c!W3} zLAAVl-4vKjwG4WjqV_b|KMSd;>hCN+wOsoH(^LrTv%ykLD}77d zA%Cm#eK|#qv+P@y^tN3>AW4N2INY02b9m%XtC{#~m-A%}&}C#z18_{X6?~%YrQbvO zQd{+HkVr?GeJV*Fc&JsS6XA2+6GldW31p+*&(2mzIrc`=? zj{i6H|K|Ti{j*U2HD6PI?E4BYPSBH-??pTNjA>)x))9KH_7E($f2gtF!#AI%c%qNn zrobaA8h$Yj`J9^nJibI&WE~6t_v=OYjtr%z(Vqs&%=J$LJ*}W$CQkVT%r7wsH>`+; zi{Y!TZ%+c00raCZ#=S$lO`e^87NGad8Bh{Dgk1SAqZz!=mh-j`1?IKWm0XVaVx+>dy!0q)j)or_&uLwTIIZuY@n<5d z1iMq1O>f!4o78-&k13*GUF5!pua1e|sT8Zo)lxw9o?Si>e(?AWsCOFb{e-Sc;aRM% zO4ShB0iinH;l)f>h2^1!EpN)##7lgnmVjoW>sYFxa8`+ynqwurB3&z5FJ2|?m(B4K zAI9p4mmu*HBwhkv#KEe)Jao&JpUX2);%8`8Z>)~AcpV7UI@02Gq|^1h_2Odtqw-{r zdR|v!Ptfmk((iQA^QF(AXGsah9ll9PR^q9^muaEjXX7+X-==fcgJziJ$wc_!F`}5s zz5z40*0#2ouH9+bD`BbtV*-rn3Yc1aXHSFM73y4~evJ$3_uMdi08=BYmonzU+FwLg zVMbUJ5m1j7-z@2uDQ;ShcPMDh>yU8&v1f)W$agl5g&!OSCrP4{A6U&W=2)rz5t@td z24cl!8m4i2iZK?xNgxRBzmHd?#DNrc4tat_j-xohLSKh8ooAa zJ6SJvbOW-q5SkXkrbSRgDVMbA#-am=8U!_f<3w?Z%V=0sTxO<- zIxIQ^q7Lp&N|nk|X54U35VTMgP%$dwcndA}X1(wCxoQ33%>4iF?|t+6Ja;)c=iIYC z=Q+=I!o}_k_0c0rp`0S(_)|URrgX z8n?3U=d+qM@P=_T%S2-*4Ss`k`_dZH8uLpx*7hIDbP3_<*t4&PUz#3xt-<=i5X~^m zq#(auHnM=H|A=ZOyLtF!b-wQ=>k|FU4_p+&bSDUZVLzcb0G95{Ob`Du`s0iXa7eZiVo*_+V`*k~vk$d_^npWTH#!+&DQw&;5c z(KID|1;Xf=_S{|Y$e@BX5j#l_S_QT({uB+QQsaL>RJd)gzB7v>zr;kRUY-2^=$Dvd zfx*A(&O%2A zyritdoe$a2R^&6Q2xF~PLw?o7nd#iUj%==tO9-DuRhGM33gKraQ@X41S-%dtxJz9z z!3#~HiSWc!!(r@8oBX#p;(|%M*%5 zgHOg<)6jx_QF|$4IoJDTcv(GkP`Ra!WsS?4u5CUpJ_#G*Cr<)aKU}-w=#qxDwTECG zK-SwkV8eaC??qhi^L5nT99%kURdCg;TY?YQ-Wr@a>$YGS?9^|S?XYi=ujGq`nG2Yh zft?sr`B`WWa#ZyBY83-!s=*M6KZ^m1+6(At=Wt^-yUU9=Yihk z;p)L!mEr4U_<9+>u0?$^QJ*Z-CmZ$22`bK%)jm#K__=?f>%^^e&EG^E`kNmQD@+^1 z2Ga%#yZMjUp{MGjM~-^rs7H=$aKXes)Bm+E(be=kT@}w!`fGNCHKy%hpGlTVUh^cV zo>Ad;jDs5hK1N|DdvEeFU<1?v$malq`vSlX0P;PM4&Kosq5-a1wB!nzmrQt>csalo zgh#ON$%C(9%9lmEz-vf173ZOzJ14Xg-P~tvt-Be@lCYLp><`) zatk*TdTTons(N0DCn_iT7)~=Q&1&!_*UwXJj0>AZaCeu&ujTXf_Nb^b!^hY2BON1~ z==~vagmap~>Uw2KOn4+Q!4MN3O!y3F(N%B%pj6_%^cB~?maJT|ba_ED@i?X|yYZTV zrAzUy#2c+mOP7OdvPHzr40~&12l;fl0jzGH!h7?S&`qoV~He` zClCUkwh7^Cv3)T1*%0(^TP5KtNm-uJBnkNm8ncr`__~{3z)Pxu(C4sds{m#@OzVn| z9V`o3oTdN z9)iuZBs>6*yCM${!Z(q>A%Crjvvf}YK8*?^>1GXVO#(cTI;2E#{4{<>iMzD9 ztmz-{kUzx;2RJ+k3Y!VBH$~u4b`>OoA2FP zQmSULCjNw$pmA9-oH2|BWFpPRF1jkLIYBM%$I@XTrOP;?X$X34e)^IR^zMN`N(YSc z9Qxh@d{f82w%0=%ac6#*lGDsytO_=qJHSkW-&-+!^J^5EA&1tTX?3MS3;DD0a(@Bu zjlg$jEFLc4mqsFCs&~qRF3r64?HL_RxtY`KRKiQp8D0_74O5DS8!|a|@|IebTNdDt zveTCZmX_&)nitKmD>sx`IPKWU-8S=u=Hj~d0+P@p{S>yr!~0>0@RGLD1An_&&=pM! zF=Lg-8f&ZZ-#bzzXT<1Bov6S%hV!RETQpD|IZbCaJnt6rPsTs=GyH{^84O<;(;71! z5#jx$mgH~MMcrdL4c~%YR&`7b8mc75@I5ig?^a3GNPBUj>0W(Dp&197X*2HRM>vh| zk4A-$ldym6nur$H``L;K&N9~oj906Fd_%rlU-wN3V=X>5&ROCGlQdB3-BNorFfLTp zGRTZ54PdnzHjqL|9wWs~#x2NP8;$hP=!v;t*094&WNILbhmeG)Bi2Cfs? zt1J9t<=R4_Bdmqz@Q842vJx~AVZZw&9m?=gn5hnhqQbq&Z0AMrXsoY0P{LRa_D=FL z)^|hf7z=lyN6&vJ)o^X_d8+6M@ z!{4gTFxmn7u%H!qi+mgV+(A3-%SML~)5cgUdLc`T6!Gsy;9oSJ%g>5y_~*qEkaFrd2GHz5mUnXG40!i@tIxhMJ1kh!)c}x&r#TVWO`WsvPd2u zN*sd5Jk#w&eHu`=<){zUdj;-8zFb?e2Hb-8Z6=IqQ-O?4MtMs>5$8A24tf(;>Cxf) zA0}gR15iuo_&4?tZrNVJ7y|gN19kpBi!nTc zKBP8y6!%pqfiWrx)(GkJToOqKZFzEn8+)E>B2i&cf*H8;)@69xinTKeU0R}^qrFR- zmSB{wj;wTR4J352-D#7bE%18EH2B_Sy)j5Sy<4#gSMZ=9#pC7u>OO>vpC#G^QJ z8B$*p*#=F&d3d@qvII|a@w6af!c!}r=0$cu_p${~&5>qYoe>Ia!V`z5=7$$?_eXR*7cJl) zga6}4#9aQKXfFRwRK*!l(jM_{Ke~xOERMo8Bu0hJaeHYRzdornl~Kz98JGa zgp49|R-vJBOk;Qx`g1!V0C)><1n?c;9H1KbYZhQWfc9TB&g(G-f*6MetU-1_A#}D@ z;{Q7V3y?33k=1x69whM{VR;H>Uk%Q7z`oHg3fD>&f3-|~F^Tj(hIY2v+%xSNM}J@* zWDHgHS4ST@`($nUQSxgo3SY#@lXQQWJYZ8EqA(&xzOhB&Z<5xOj+5aClYJF`tiy&d zr|h$zJY|c5I+l(TR4m*$VEqr`_=<-75V6z04MA2r3t>Lsd z2Zr){E#8WdayhqDtP{{R$mNcQF&iI9`TgIrnSNcDGO{1*a=W@y6sqGm1K6nGm<>vd zntLRrd}30n-C6JiBEoZfQg~3s0Xt{vz*##hMF_tz#4$LFJ;&2%J9_>J&pYu+@7oC75s6;?oNL1!=Id!SR0(O9v*I>1zC1wZU&p#fBYvx&^>nd%R_m3K92k(f#c&&&Rrdq-QzK;qJa)oD$y1 z(b(_yF9624BciY|0oC+vwd!LQUsU)rco=1NyUh)I2FAP+-u#(vH`b?301b4Yi@XcE z)L28DxOSj??6fT?8QO-ZMZjB#_b%WNzDd+^WwVN#uG}N#2Q` z2@QE32B9o;Y563J8FgQ*s)5~_=Viv82~F~(@<~HJzmGCT2Nw}86N|bWTzS2YUlw7E zc7!yFtzE`uqw_OJZ0y*7bu88Kmq*^gTMCQa(pK6`+^Pun#jqPd$m3L5>FPkT4>8IDp^e|62?EaYXff)G(J0ecPD%YA z&8g3A#yJ)IfSB6^y-OQT1W8QbvJvu6@rYRCtKl;1UqKB|iErag&ySBSL)qR+K!dKE zVLY|;eTHfMd#Wru@obm@{$I;+QMVm_%tZ$0H?`rsj6L8&u7rLB^$S8FaeoN9<5L<6 zyi3$?o%Lm8966bh*L{>*a(0bMF{!|#>Bj%IagE2t54Yv=(ZrVTbD4DjHFh{xV`XJ5 zGeYg|9Qb2BCTet|@C~fxyYLN7(1clI_3w(VJHs00!awY7(L8>?$l#O;QMgg^c9nwn zefOLN7||cZMd4+M!QO;R7IoEdh3Ms*#KT<^K$Ye2+a%&bi10gR=u((w$SY5?q~~9W zQVYyXkS{FpPqb@>OxXa<6JxqV&1WRO2@`!bAARD&`c31U+G#!dj_6Waml^UAJF);a z3<`N<%*M{^leo%(m841o4FJO1lCXC#_4h@C^CAbUD%KZ?HPVXlXaYQNk#q=^rm>A< z!5tiLH{WD&9<&`7pV+?z>AFatq`+yElQD^qYKauL?hGqy&H9!3;3N}H@;;~;}*{By{}!3 zdB1_%7pZ9_FQAY6n9+^k=BV07x<;ZbmnZ5Q0uhbv#o9^O2WA}W1Wv2uWUO}cL|`=z zr#V4GvV%1@fbTMcnjrMm=h9=Q3JaBhbUvx$USgB#s`&rQDQ>< zL`N=vqeSD(8nHFoS|&7kyKL^5`zH4rZi{Q2jhAMqS)cCa=eJAvtoIDB~s0k zJ`=Nige62_X0pg{=SJ4&@(zi2i>~iodHn53#*`s{uNk_D&&17McAD8U0^=3j^-wN< z6d_Cf6gG@sA{EKwn1N)+H-p8FBOg?8nn~|0^5{V|s`>PI8hONMQS+bdm!JMbwIKOf) z19{hQ{@#eo&l-mFH^q11)V?&(zW2y66pmrMvP-j%(%mhm%|_XYYtaiUD$=3UI+Wfk zV4oH+Y{8i`7u$yOm*HGX;)RsBG~g~C1jj!r&l}2v_A`IM*npi0a<0T`rGN}cv+pSW zTZS^jLq#Kla#Z7_H3K({Ukab=yKt)DFn%$(0yKMu@q3`hLuH}-Je^kPsG7ad!kR=< z3k|G~%-G9~u3skxY@@;d6NQgrfJC{oykXlK_4{k#3&z}#H7WIEbUwS}G11>z>b>qP zleYBin`!ItruUbDKd^Kut`C|Yz^eJ+Qo4G{-Zhs$5-Wx*=_Q8V+ik<;_Bf!RUEx+{ z=8v^Xt`ZATguvP1L!3xGvSQ8flPPfndtaNz=Nne1DsF&dk`Q3Za^5V zr?ieT_=%8<6>>Yf@*rmvgk4FUGo9;!Ohgb~NowU&v;@JKAbLGTIX@h+fCoXXMpWjC zZlW*gJeL&x{QRXfcBni=ix4mC?EZ9TvDXPJy!SGc@SNpCsusw?X)F=m!`TX9^VKUj%5lkHjzKxc74fNvDGILm zCQ#slp!+4oso1T9DI9|-UYAqM87xD)??!yJAg(t5wn6V9pzoKe^+#MQ1>v8Gp)dbE zcKu*J<%9Wbl=G>U>&jHx`9Jy|!$@MRcK$J+3w`yhPnj^yI z*hQR@n^6MOohS#sJh<2e!#y&Xx0gA$C}N$ySRK6zQLh@;?gspQmD@ z3F|$elmEG2{%1h`r!96J{M44o;djd6Kgi+hVsu6`jbR#}Lv!U>;Fli2%YaV6e!xM1 z9^)OJYYjm>p9Vw#65#xKNOO+Hw@n0&I;hZ`!2dFi@*MLJFZXVIOW}Cao9Qp)Z{P2k zP4Bu+U~ccGu6$>i_c2)F=LW$~i|9b79u#d@dAdc~-|ZC({B#xw$?=U`CjMO-p?}-u ze_sZklZ4wM#GfWy??xG{_&(vwi*YXo)O6+opB)6vSIFgyth0bW&gKMXRiy>5tx^UT zRIx#CRUiBqjrA0{OZb;!Ri2uCv=1xcpW8!J%uC4gLY(lFi?afY_6%>#<=4lI?qLp5 zm?$m*M?{aOYEkdhH*R&aoC{~mRk(Jza{1rH;H}6{=g_T`Po#q$qcNAq9vwL?Op=Da z2Gr4=Soao*bShVq*dHdm25p3yL+jIgl)n}r)3HdmGI3RNQP(8*VinW3%ctXeV~lB$ zbCD+^h_Qw68k);r5~tC%H3CjH`{r4@`!<}Jlgqcj-ynV0nP94D_NYeU0Mi@dgrGAd!!Va|jO*4$tXRszP_j6S^-RHGW0V=7K8CYm#s z-yeI-f2*GvGof*e>w1*=M09+;twDo-{t(OM)e#D1P}+AAg;-s4`F|uxVy_BLa+ju8 z!C!HWM7*S2{(JD1g4omJv{#c6vnQ8-aDN@QF z7Vl12o4gR#y2`o=yD0C^g841&VQQgA5 zA3p@3aY4Ld>MMph`KFEgdd98zpXiBgeKVB3fnuw!vkGS#3pR-eZwp3#z7sPlFVS!iZO);Pd5Okj~EXzXxB3^hlsn1%8VF-qjF) zNa08dHzw&6YvM=HH%`lxjuteMC~SlrI>jf-Yh+D%I9>0MWB@*%C$SuHb&g1cuN(13 ze4URa!qv0zmVvi-r4x9&1aHI(IRqboDgMZ{8276ILwudr!ON)W)H!uHyQc(Wl;$W= zsBd?}pJ#-z=z5uQZBrq*R5&9PJUdBHBw4KEdHlf$JNesys*0EGGN`?D%zEWZ?-8#k z6XnfBdGC~#tf1YwPujkMN_Dq%as{28=aq~rsa%jf43_I5lze;dxiV0$43uk}v}7ffW3seeE{9DzxstHOCBKyCMU-U#kOaJeHqvy0rgH21 z-Q%f^G;$k#-aQX3btY**tK6Q*buL)iv$PcB{xv1k0v!vjicBN z-c@p_{aCd7<$&h^RNgA&cQu|zIdz?-ZgUq=tJJR_b=Ts$DQWkYoHugEMTa|!mQZaT zmdmC~U=>+LWnC-3Yp8b18t{Hs(v7+?iL81RuuqX#13N2iy(naeI)4V_NIH1U*pZ;G zsWG@wrfx}oUh2`HhQ{p>lOT6qS>qO%0Zf2z-79T2m!&+1MZpJ@YkxgzPqgZ4=q?qvz5}vtQ2ObZp?}1PV#=qJ)MW;wOS?@?40fKg zM2kxhc1q-R@$NY`#QP3oPJo7NX}utvNT5Ys*vn(y-3Vz)5v0P@qF*O=`f2Qd+fsfc zJeliJ_#*LEfSFFK$6H}a^AP?IhxVU`BS{f@h%WEVt+&4< zCp9HH1Hz3=84U++X3(i~SfEZo?qH`vWw< zYJQDTk?QmyMg{d?J_U^WZJ5S@59Mti?4w<{H{$(#{Oajs`R$Twig2w90y zINzrnBDG(w1t@v%V97s4$&aAqhvC`%!uTv>fkOZvUDan}-wWj7`CVyBq`nxx~3lQ ztK)?C(_>n+<8R~JuBk)V?Q&Q=nuf69i4*V}XkJCQi29noN#CpKq_JF%6BHdtzanmK zPzLlqvXe43T#=#o(6tlJS|DsqnRE2}a={T_%E z$#a;Utg8A6>#^9P;~n7d?262R6i*O#$J_nT+rkWa5Bmi*XThFW7dtLaZ?`P%6|;a9 z{L!h1mmUKoK0wGgoIgl>RvN!L#;2t6djXZG1C0;RpEK(44sQzBYZG{86Q7Y}3fLQi zUW3m+^y$M`dvo~faLV&U=fozW7<}V_&Fb_)o6`ndc4vp}KQP&_UtzL1WGSWYZ_uM5 zc<8OcEchrYSuVgVcrSV&VDaRh_;)!gfVYyu7m?xUn@_+W{RZopnJa9m z^qOWIQfrS~Rdz0*_g4W+y%G5huwYWy8<_;{nl!W{;jULB;LI342up_d!W!i9a^$Rx z%V(0SOT%|kO2v|72Yc~(?)_82r8E|`*q#t60)d%!JqJ19SB=i)LzM`eV$XCWhfhbsFg!vKTSgdyJk8 z-^h>oW<}G_9#!)J)sZ~DHaSex*ve+I7bwS_30c(E!x!U>oN&-$9F9_LkeG^LErrc> z(KOUXedLZSiAR3FWRSVuYb17xvYHQ>QL9h(-J4J=I)yeVD7y0a zZOJ-bt@;>yjRW9`Q{A?pjt>Lc0h-PXXGVRgyV#zF@qWL&E0BaO-D!?=@Y9I`&Ewz3 zcpDn8yO4(Tp+~p86PWH**{P1=TBZUXVIlEuYvWMnqw4Pi8K|W)Y4aC~83ql)^f=i^ zsiKnq6tbyDA7(0sL!WsuX5iwsR6R3}*twgogpQ?D<3%c4ksb7sT-Sf0t{)86RXJE! zDOuxXcr^nZj^w^@9`A&|fWtu*&#OXVswdTv>YAz}tq%nepFdB=`=VfvgR6k?8_)4I;k9A^X0^kz0@<0R~ANK`JuGijD;@m?Xyn(+_NK6oG6=YzpEI*j`Q?1MW`f`^3X z6M%Ag%?3u9L3EqRX>x42`=Jigf9!jU&ci86*NhHu`Q0(#l)s6LWfXAA4pFiU2Tu8` zcp#A4&*uFauV8Qd^&nn32D}14YOb;18)(3H#X1izI?1JU=z-S%*eg>#a`~D)n$BE4 zH%2lLJ%6>Rhx{UkzYzM$cX|@S=kkaqyqU)D0Il*p>NaAiZgo^Q@VJ35S9FyA2fi#g zuWp&HWq#;r#Pa2Fvn!d0aZ@S+qB?~9+kPK3-gkp_`U-VA0bF_fzwGsg#t`YVl?|22 zPGu@_mY__FI!gYdz4L!nrW!xKK1e4Q^ROcbP+P@?xAy-EccYEJA1n_n9?f5)JSYE4 zd2o7tXTEbD#oAY2!YF|dY3K8qK(#aT$Tqopm7VulTs10;{{@y%(*Bg*Y z@7IBrOJaYl;&%IU@#P)(@@nK)*qa1jfT*-2@ZEtxiU+n1e3=7sUON8KHz=i1V#{$x zZh0T-NApzEnaAG&&-Mx7et9O-`g!|)%<~V1Xs%(Hs~%XbGtlD$uatM;gob>?T9zbT zZ{QV##iKb*q^pw@mVmQD{%2T(Ize@1AZ80FwuEp2N*i{Fq3?HH3Y&$DWR-ulIQdX>F$bmZ{TFhpPeW0JcuG;lB19 z-Ung%`^xLop13Nn(&+JL@+eM$ZPI`G|%Tu&gI=S0#7Z|V&jUB|*o?!S%a1^a04PyDd?NgZ1BDE0sb4s#WH1&xOL+mnI=tH#YZFX=<< z$J2m6zm+syX?@JBsZQl9WLI%NV1WT4un(OGUIt@afR*HkG|^e?K8L-YvTY$+zC!+I zA^tfiS)B{F+61Ng1R-t@jG4h#YYUIa%*}pSp6ZF$+Fz(tVk3VG-H6P#7ptdc*`;4)Y z(*XCwR#8kR3Bzhl)5b7;p$%UEHo`eG%g{cA_eqYBqCHbO7x%a0)B{m5(%Z`#4+S)w zmcJ@83n~5J7Tko^nu69+p|zUOTB<&#?gD3aUzUd2YrWiF2%D7@wj`+T)Ls`$sdm~R zhfq6BmQwArUJjx5u~PdqUuKx>#yn3@Zz<4Q4CJBbgyO;P)Eek(pw$vSjP%VO%m zEom|&glb9Cac_V%OvUpjQlsG(E#pp87hV+`Yftl4f~HMoy1Y=&ego)9`>7r3+W@5ON&{+%x}kEi~FZ|;}|;S=JtCVT7*U*7!$<`sSGMcj#Y z*@gQPphFE#BWM!%6qWg=DcrHAo8d18AET=GGSueV_yl`hXdqyb;$Dpy3N%^9+Y zV;nQ7jHLgjZqzt)KOilZv5?=LgRR9jm&!qV&m2Akc{R!CQ~dR9_IqJ#cq*AT^0&P- zFCGEbxH?Er58!Dr##APH>BoT5m}b!OV?^*{9Gj7&3;SuRktxY^RSouHe?kY$MmmL5 zo9mJO5~M#(XO2L>JCViNJIqGxlFj)I3Bd?FO8vPnQAA_hPPB1K+kq@^J@yR#aCb)IvzSM)7IR+d zK7e&q_67!gnX2;(Gl@Tu8aLZ!P@8$s21}Ewk&ERvAYcD2avP-KsS$N}5Oq))m4>ea z88}NjRhwrM9>3XX;ixrwqbB&NI*0kebd74Zaii+9`EZi@|GAh4Gh#XE5y_?YB~l}u zHL6Th`UK`eD!<<&zg*{7ZWHqJLpz4%@harUlpCNKmCbi!mBeV2^*S>6Yr548MD%UN5Pc=nvu3ARrf1FnL0|ov zo~`dFM)_lyFPFv`ivgH;T8!vf@atm#dwO;P=vk^`Lg>LhGV%*W`zO$&RM+$OyP8he z%D7=20IOW!e|%L-_#a;#z*pngnWw1epTj9zS;E^X-ceRP+6S$a*~su-u>$Rs5ERj| z;AU%JiTY}iuuU{#7;L5Ckog=&`;d*n>A`mD#~ob!#?l6(TWde&cVJ}Q0lgORJ0$S! zJ>~9shPTezfq`#~s=8XCbw`>zX{LN!Db{u=Po~-vLNJnxue}+;p30jLjzkCp?v0R* zQ9}3_yGryscC6=w%jJEuk4b0TsK=1*4wXrwvV54rgKDSJ0*}0270xj8iu} z8PH~B25p9rR@0Rb9`BM*d~3O=d0G=wej&G$yRZGYD7Gmd!}_Ex28Rc0WAy6ix|mAT zGK^&*=G-SD+eW^BK9bn2jHNzU#Er$w7#*>>hC2<(fT(5TG`OkL#kaO zJa8aY0Q`Fk*CS@>&IwsK+bH28?Wc{zU&K0}bEG#TD|D6rDKX2Y?|Mqiwpr0;r2nMD zD)nfRs5W)fh0*m0^tH|juY!}7#F=Y3_2-1`u%Re&rSzb(8j85N;3=OIdc;83>Yn6k z596D*nCso}5RM(vR~gc?p>_Rkv>(ykf^aads)K$-oNPao#~4`Q-;_Kj>wy#hgf)ET z{H(FmJKEc1HF#zP=R;dfzjn4YGjzyVw7%3bDX8yJS*n9LmDn=!sLC=b^pS(*cPH2r zg_cN&skZZ%uXzt4+0vY^udtX9ugp>wTx2;NVoYygZ2S~nY&jKT_~CJ!6wW^>o(ga4 zQ)GS7hxPPy7Q^yWV(_WS$74q!vG_Fl8MxusiJyjZO`XmYVZXC<{Z=b;#<{uy*T47- z)&o5T>;4}0>A9krXS(x7u^NI;O8)=DaHRioFpm+qn*n11;{j6u(*QF7vjI(jd4Pq0 zYXMgSe%F7;O__Bn>!s&by*gB`J%&_y{*L=cfKLIx>yO^7uT!EP7p*z|y`G<@xI{5S zQKvXKtq^H1`z7rt#H|2OovgS|09**Tcrfhzy3YJBVdwu(&-IAY0&q@i#dnOqd}k%f zeiPt!!1-xDzeM%s>nkMD&agw-uQ zUs?-#-bMQsy}I9eZ~u+2DEQw-J>RVdZXzAgX8`R0vT?cr&@r&--pZbiferUc{R>{% zF|c7(4${thWoZ0d_P;E{6^OS4@LRwt!1aKRfrBWMVs*#BNB7>_KNctR{usA@*D){* zp}DI^;;Zp{b8(H{+uh&!iv7$}`5WOkAP@0BL;So~82%qoJ>n}7zu#v+Gsm4BT<=rRRLeVLxKPF3^|NV?T3+{QMQt?UU2}@G|7MvD2qI z2HeQ~>z5V$Z1LMu48J0A@)Y*EiLXwv{GntouBVedxc-;_J9>7kA;hP4wgXSMilo&|bm`XD^&$ z!A(-|MUm04a8TfUx$XG>caguKESA_-lx1Oj6Rx%K$8oKXKZ@|HVt+#FVx&?=A36mY ztM~x^dpEfbDPM`M#NiVMdh~0{m&&F=X^&hd{;aZ)z0oNDe%W?fF zejVa$i7%C}E`(GiuEg_~;-XUt$a8;#>+8~dT%*z)gwGS35vM)s#PgJ-1J~)1S-5VE z)S}jHkxTLKr-|tZX^2k6b$ILoTyKj`LfP1;4bL|wt5I@&yprNbV{omP%5il_MqFo0 zBXPY!Dn)KrOGSv86bo^EJCcvrZCk$|o}raz!j1S4~Wb_#Y*hQwp-2WRgOz z6#bUQIO#~jju}=~!=22l;ApmKL6HvUmqot^CBNIBUYg#gQPPRXFP~OsPsGm4jeqZs zy18sIeH;A!M@T-iD}J&6hO)PD(jn2{590LlZ^91lZFn8LHnI==3;qGp-JyNFiqnoE zJB2LgNO$T><3UAh{65%0(|HC>a(<7*NBFBamB`-p&#;Zs&tQ3b7vh@(!HjHsnqoG;i-Elfh_L=iR$J~uO&3_Zt;>iFfzysYmeZyjJfoF+H5mQahb1Emp zx>B7FpRkh>xy{#(gdWVOV!sWZM4pX^;cUn*;=;Cw7P5=D@FaLuEPoQ#lc3YlRwMTk zPPqegGs#Y9-$;7Kaqu9tSm$FnKVd1p3Hu#r(0RM2`r`tNlE#I8>{sJLU%c9X5#og* zQI2CD37Kd25zx!TH;D^h%W`MR?N1T<|8SgWboz#_b3VMj?gTG^2XCz%oPo05gzysd z3`)MB@V5fX0!)?e%ee4W-eM<=6$EI-g zko~0Ob4s7yEycCOE$l7PXz~AAmk3)wvm?$q6GEGhuxTf{ezmbbtHs$W6CNY z{8p~ZNDG$AlKcT-MBK*}JMG*&F+(>X42uu1U(F4`zS`iQ15W$^_;rphWmR6#=B~$^ zCT?>r;IjFgD3yXJ$oD`a?L|rENL^vI^J4BzXw~!KlpVoysIL!oC4Fe3*=TRI@51{# z0aGx(ThxXJ+Ov6Yl(AeNQbK0=Eo%R5+a%bdoY)3vSH8SZRIOYfsxl|w+XrKFpgp3> zWZMRWdy?>Zv2`Kr^9FzeYP$X`+bzGC`Kc<8&?&7AZ{_X^dI!dr|-68^5^!+Pw>g~HtOF4SO<6-a1b!aH~2g4FKK_1 z2l+AVH^6DtH3I)cE8Mxr`B6y0coxkSIz6}X+R#SE}X{6yiwpfjS5^U#zo59~Tpm+Z!Ykw)L z{ssA$$DYkwv7e&7++pNPd$Q8O{ic2LR+aupv9q{-(OnJLP5!&yi|$wa{5tH-p<5#B zy$t8`AkF!2vV|W9dHG+1=kP6f`J_Ml@B7H<(4npAtaMgFUuRG@JWC(6I4zJXG;~=0 zU&`^3U-qbv`o4)BsQDPqn1eRNuVf0~!~T0YfFGje-h8zEI~W~#(1VC!l}YI$WTXAB z-k*TK5y`@SIo9G*LJby3zJ=&7`CY!&%3z&K~je~4xs>OvT zpbe1Gi2jdWgw-V}h+-PFX6WgxNUK0n_*tyk_w!)-n$FgyR;0Qsss)EADV)S^s|j+_ z&%tA9#QjqV9>I-HJbes%qz2sI$3OMBzk_!N?*G91Y~1(box}YNywAe@HN4m19>Dud z++V@H7WWr$pMm>xxZ81m8uv?a{|oMy;JyX-i*bJf>8IoVDBh>x{ztrDg!@BypNczp zPR1JCA@enot@u57zX10;aVML=+i;(Z`^~sd!u>|v$%1?Z;!nW+I=tI(zXtE)alZ=p zakwu+cs1^q<6edPT*)ZggEdMFPExWUq#hyEbEEM*6Z3}pp&#ve1h&AZ08s$@G5QBk z3a|nu11v&!5mGtTLOHB52P9PXO;AJNoEYV;%+*+v&T_bBgpE;U=b@A3np`Y-`^^vS5*`LLzvDn=Y2+D*QW-Cr$ z9VRRikEceo63^%M`Y_iIpd8dbS^S54be*kO7t0`VBH2btV|O?oz&be(;ksxI=G5b2 zZawme0KoOk=0A^TA?^Y{xOMy(tnQ34Cg?G5z%etZ_&d8;E)DpzE;1z3BDpht_f32^ z4Ji$NCHeS3Y7ORzieCa<2Kt|5Y4BGT(czoNBTV3}05}>)Gyr&+K*}#@mr? zi1Bfx!pQ{4Hg|2U25a~`NYM^Evx#^<06W=q(={_k);~PA7AanetVfDY#86o(zQp>E zr&SgcV!nu{baO$2GNv*w@NtOy1mx~GCo-Z`6&%L=$N!Qg4>1vrJTsg`0d4c)3>H}P zei%+O91pKDd>Lj8Jaj|;75)r$JOsS(PskBTz7FYny^mu?WA4N%U`@HRt)j_}IV~j} z!1fP`TG@|M4BB_lQe*~%0TDihP}ARwHC#XRF5#t4OB{F$_YtJ+G050=MHGm467dQU zZ@C=L7pH%rJ&kxVAte26JyCvFAorUN8Kc*U|>PuJc4W(r3BFal;rSVV} zgpLLDR;t0v(&IVRA32dtXpiBMbpaYF>WCL_IRpG6cW}VJ%fz@Ot&f0A0Uvmpi zf`=p<{65&Mk#`=2HSK5;`m-d7&Ehxg)$AiVE71xe(7c=58{KT1a)TXO0EH;ud!mtB zjTLJ^cuQnKt@I1Kr9wU{dR*N7^bGD8be&XfMVw+|KWy=jiK;dum)=IPo&`TFeRGLh z-KOK1NBf1Xcvo+Rc0xP&$)NBTAP)3YwkWpdaT-t*KF}Hc!g}fPdf2aSV?cjg0-A;4 zA6d<8-B3?7NR|A)ZuLUB6sx3%Wh%-lhu*Q;!L7%fD3RZ8UfsgOrwjN>2Uf3bs^ZwK zbHK0e7Z#!ns?ELbHC)=pd%zR_RLp805Eh7c*QX)>GZCA=mAeDE`~;01JKwnacBi+# z$UPv;7H@a@IE-wjU-$`{>UPAwSX8uGU^Ce(`sDJQ91Q;nXI)eMk3gq_BufLr7a~bt ziQ>Z?LXGZNP3dNdpbMjG1CSV)nJsx6*~jYmGFO z%W2EN)942G@3zv*(k8&MJ){&OXBwx+`er2fPZP28LNo}FmJ;jf2k z$exgNU46I@*^f`)(vdrtRBtY5t3eJkl3AMz+lC=*dNO4_hP}$9Pkqye$`fHOJ*ON znZI#V^x?BxzzezaRd#E^ODS2H0k-k$quQ-YnkW^G3Rp3`m;)b1k3mv)AE21_BYz^R z?0zAVoQi(1bcBBXN*CAn3;UA={I^LOoABKqY5vZ@ zU4YQ%u}Xc59rq+WKZ`Z50&ljaiH(2ii{o%SrO|OE=Uyc zld+?_XO0hFwTc>Ouivx4&aL>4#@mFX5!W@zbglq$K9L=NUs5y;VYl#1vScX_ndzCewqM&2lZVN zYYv4#mXBVeG5M5~lHrWy?6WK!JaO{(EIcmuxAhBWV11A-r}_yR|CIO1cmY2Jvmsqh z*#kSyHFEfoI4h6Xqmb)SIUhh7CI)NJsw3e=ZvuP-GxmP$0qgPKyRdrihmQjq+g&_mJJQc)D0R;ExIaitFK{vR9T>!z0a@kHhuY z(?1UxdR!P6XWAO@_B40^$AfWUbi5b)l3H##s1`}+h!g(?REq0_tPezUmt+>BupXxL zpL{s?wH4{tBy7;n`yZOA2;QFNA^f&P4ZaeKWnxrblK?ALY_RRpGP#(6nsO|xd?g8Pi#XTM`JC#eMUd*TY9=^Z%UFFns>YL_Cbt=ja^KT z;;Iw$)oG~BsSy0t!K;U&~JBOIQKct1dP%ZF0>pN#oZV_JjW zl?JaIxcdNfcaaSx(PQfY#NVJjKke6uS4KLiDo!V|Rzqbp*j!lziqv}1p+HWhzGwEi zQ#ToLR>mQmC%&Vs*jvJp?hH=rQHn?Nyr5*qD*9MOBzSXkrE#(g9)7MM>+x4%E5p_( zxe_m1LwUl+(DQ8HY*@5qTN`>v}LiUi35@S+}9!;<-f+n zk+s>TWmu;k&4j&UO$e)&P2)1S)zOS-!;e^2T$%o@rM&?=mj#VfrFX`(V(TYIeS_r* z1g+D0136Y@&p5Pculmg4necP7i8IiNO3Fy^>2S3bnoHK8{GHTyRru~fyen+~2+!o+ z!%TTMOy3TMs2x5E6HoH|aYEyU#tQ9=YdYaSHwJxOc-@N$1u@OwE~Qw;#_dTloF;2u z#NfM<^0@@#pXkszxGyoU0k2Y_Tq`cssiD23hF-f#w-)|>dIKt}1$q!`JxaVOp>Mtn zX1p?Mg`Z*F*b-&SW_Ri)e5SaW*=Q=V9Rbmbo`` zWgX1uXRmDM*bB1#+UiK??1&+rZ>`MpE#$w0e~TZ%_0`zY{LdD@Co-)>E2IU zgB`)65oTObH#-?TlEBwRhXOAw{&9Z3pXw_>0uSx;?w!bQQzy%Tf_wG-#bxlOp!I7j zBO&#qp|YC5oi5}zprov6Ij3}Fiz=HWtdjO|n~|W?+rxwE#?Y#NvCl*`MLMqvUG0T${vhAB@`Dcjy{YAoM?rY0NxOA75y05Yhe9?!~ z1jy@kskc}?@9-k^97vB_LY2+d#wqacGYReQ=o#B$a!+$_shxQUJ0G7N){##odqjwK3%KhM{dj5y_+hKNtjbq`@>}1m9&W6W|pToqjR?f|+XJ1rKguRZ` z5tes7u&*T@GHQ<}agPJ$W6b&SPGe~S-j_hPbfy=nl^eySwwYZjl(0kAFV`9sj(%az zKJcjr$EyhY)T3C5FAU*K9(Z!a$`*o8Meki5#Vymk$JC>aEHPi}9bT`DrOi@KA!?kg z2jBG4Ojh?;xP1PF#5C_#b>`tLNBRjH-VZ0T@V&dRw@S7) z4DwSV?xQ+TU9Lk}Rse`^p57D_t_05-TGXbfpoLy&iUR0bB%!<>@Y8h++bchGoz`7`(XiO zFOsH(=!C8WYm0_R_y1$*1~Ycl^HEZG;G{e#FVe&RZS##Sm!6=0R-l*d{Chsee6#z0 z(QWe=W!{|MrQ_}JQ@YA^Ej-UKzA|oipCOm9lMvk9*PLtT*Fs8ib$ucKHSE4NbD#XkK&WuK5kLj8l1>7V$Y(HYiijq*4F;x800SO9IWwMrD+(Q z%$Y}hEog;{up-*eKH_V{^8)15ek_J_0_xEQd&JoYdnEoWXv|=^64YrS|0rTK1(8!m zTIo-LYWQ9LDX{d)2Y*y%h+!?fI??z45O>T{1jlky9S6hjpcb%BhYzXz&}=z}3lnac zUrI5(ait}_hrEs72O8N1%HVm}dp23Ep>Mnst>c0<*3zKOS{_>JooqFRc6cXPM}{)_ zH)EwIU<(5YOb91wSD-bnNDPgqgFRGBqvPT54zJCsM#>2|4~j95z}im0m~!j0(FV&C z7a_(3>p3~b*$~<440A+<%*0ROLTAYcW#2Luenb*u$ogk3d=8@zX{^=Z{uhjg9RTXn z`*HsaKzsU8A%$iOU}!uJAe`)g$R3F7f9y!B>4XFwjyYybnOuh;va^O8$I6z_);We(^pk`)V;;N_FxZ7ojio#y=E$Yi9LaF@!jo1$UmA-F zpW>{?3*#|iCcJjZu}&*^@cg?8e=PuzKMK;_qcSFh@45`c&xh~gi;j!}O-Pnj|6|X3 z^MA2tE<b^pqek2`zlP>qAp0CG$gOfqZWqK4|h`hf$ z%P2~)=2Jc8JkYwyCp3}$`p_d25c}TTRszK~ONZE3m zWT8z?#`5{u(fM73KchnY4a$2G@`lW#`~+Hq%0g{G{6aF_+}FOp_Q8Pm zC^Sly%;Tg5TnK!!1@ekCoRm7l{}DJeTF#1a9m4+@Jrlmz&upxOubXUmd@khgi~bO{ zz}pG=e}+G*=-1&A#ML0KHwwGEZr>c1xp&e@HbH%P2>f3_1|SwK_X3!MqY^K2Wt zQxZ0VyRU%HoCLh9;cPpMi)cdAq<9HCh0+ww_ynZOXFNP>(M8F!#X_&=Qq5HdpdghMQEy*enH{H zZEoSynVsFr^17K;XVKM6Iq{QMr+l2J-+{f1(e5N~{ZfKPU^N@{>O;jr^^{2@7VD#!mJD zx%@}Sg?JVNu-C}~UL&ubBOt3MKE(p}S>bQ-v%-V$BS_kUySweR3d@JkTV)NpeJtw0 zbdy~#X#E+JooRz(Vor$4za8bEvpk;1oyNkm&;}^RSlAA20A&@8gLIr4VR3+xQ4!aD zl?5m3cCQ*!j(y%UzA>vUgX16{UY(pdusazdwnVV^{ueGY}D(!Rr=GRFtm;tt&@+|nO^feVfRi@ zdZSPizid4p6JGwsdY&=npdU^{9&ZLO>Q2nV3P{aFJ85F&?@b#M3R7-QFdf1Szl15AYsLA@TJbWSXEqOdNa0p;Qst^n zO;3&^6zCV0#j_pQ4@l&d8eaA`JSNU>eN4Q}HI|zQ9+?K(r>aO=-8zJ>L+F9Pk0=Y} z15<6os!naAk{e3FY@pM9QfY=E&4IvBD$1ME{Ga2G`>*k7-;l|*iI*AL#Q8dnP0y!` z_?k^g<$*XGYd*uAwlizs1@BM*df82izAW%@aE6(uxVg2=>QPKO5ZF^|^RUqA7569?;MLxENYfttdonaDA0Qlll z(kHqc`}v+Q)#qoxzW}<a>%dnfG)maZssurBZAqn?(r|wI^ z(JR2NWdb+^6eATnv0DXtV@<6pSmaUS+$=pmb+>2sPsslf^f$FP3mLz2!Acxwmvtp%?lX z|I?3p#D7xCZ`L>JoAhR8quN|5LDv^s{vH~|kCjh%UcrueNG?pPW2(5WZ zXp_GX1gGf)qT~?oLUtNzZ8Vo3Ce7r|Z(FCXEtVGZ7EPj+$HmnF_tFOwvBmD#6AD zZ_AQo{a!AmqZgK;USFf-_|=rR8#chV1E@b91s+6+nF~8vo3VjLqL0bq9>u8ndtiOp zrrHa7AH~So-j|6nxutge(OG8pg-ZCnaBzV$y?%a2d`ocK@AM)R_Fflu@v=*>~!Cc5*;7jHK~ zllw-fz5SSn+nDa?YVT?*wf1&)b8ZZ9>Ci(B(+ExCc6o*{xj;<(HbS-ND>Q}b69iRD z1NAt7&^6dr`%F%#V$|0 z?g?_;@OoeLfI(TKb13)rg2$mTQR2c6iIN>%+N1SNG2b9_1D4K&SL5yed^h+H z*rBXKK6nLO+EoI)b->Gy)@lUY8e$){XJB5rntpb~TeAHPJ{VwSDvy9EeA9l6fvPuJ z{5`UmL;Ri%)Wa?(%JDtt*l2+F=DQH0`chHfr_q0VHHNB*ijfVLx0{Qssg5JJ&V z8}T;0UV@+B1%nBzR8L#>D#AHSo;E`+8uEGdZ)>h<8WefqG{Qevi=iRLnFJ!4$?9sRmldVqad&(W;HY_7AqBVQmGiqBxxYJuIzEsfS!M z%{k<(h<%{|g(uMftASgkJ!j-WX(##xx`3B3a-W9wPLi(@aXJ); z(UISHBTopd?V!Z(O#SkS~+XoI>^!Wqhud0G@d(bg?6+LK(`udynNWp6=FOC$fxhA`+AWC(WMrEL%h9!i8-fZnI)f zrf*3|vFD=L5jf&G(w@R8Ud^AB>3b`r#hKIEWV9+nJ(XQ-l<(S*8Zj0Z4K`UH^YF*@ zwhphJJ-3B42C|{1{;t9qlg^o|F}6=5tw(wZX%uXQa$)DwE!aIDl*{qHSOJ=F--_;q z!+|aM;W2Si>F8FKpBi0G0K(=M!`u0h_n zIY@25i>SFfYlSy=J;CMQCv10YxA&^r?%)PyHD`c(-^~Qce2p_#X?hwZJ1CxQQE&6u zL1>Bt>_cHB7an(jUMRMEd(6O>9CLPKa~cacwZb9%b3q;$e}^nb>8 ziyTjQ30LdC(&i2}+=}o|6Qj~M9ys3MEw$=>;{(bngE_NhBK>bx!0PsccBNt`WQC)O z6_d2N$1%ghqk5Ba58>QV(Qmy<(>cglADlVbdO^G~a#1XWr#13Gk&`>!J{a@cExOjL z_jUcR_2#g8b%}bDqj#`+DXs%7E74n{zT{JdZN&D_4~Mb;#qR$l8#aJiw$!p#!Rb< z2%8X1wA-J9$S$|yJ710Tmq+Ebh|#+aaKDsr3UIUeJB4lqQWMqz;c7bX|Ay;kB;sAX zg?BF^5sgIWS>l-yziS`f>wS0s*Kd?Y?)Jnt{yFjj8@U3b7L<8&Iai~@`cX&Jrb6Se z+;?%WzhLF?-+FTzq1#X#lLMm3s-YJb?ksi_-UgZqOWI12D?&z&yOqm*4N8_ZW3h z0D~%p^?3hu;Cj5Tkl$~@`)l$31H8XYco^^3uoXGX+=sPSVD58*sPOdxjj1>nZGskq z7dvK!vMO*N`Jdx-zBgmVnB5fQdnddcb?jk%E|tG{1il#3Tj0wLexe&EM(7;itJcCc z-WK>soASlY(|Rz8_)EeN$Zkty_;@~i(OU_K`bN9y^P5oX%J4=nl^GInqs$z+%(Iu3 zc^GA8qs&(Ay3c2!%%bpGR;GKvf--iw%#)XuaiWYBW#(&3etW2%^r6ec4|*q0om@d2 znG53B@IvPW_|{PMCF&jA*SrhxbFc)@CPa0OlY9!*IM^?Q-J_ky{apHR*9Gy(b%>1=lx+^uB*WGb6t|(>DXOOFmXt6x8Xejw7!FH_RA_`x&7NI9qTY z9qhz-Yj5O4Ob1AYum)MqI+imR_hXT>56fAAoZXOffS>nSBE1~%d$Qcn(XZNQDd}i^ zE!!pS>gA@n6EBEDD8qI^>>oyo!Yi-qUuS5o&BYp|y>cGXjYx}-+&G`Tg|$UKw>|i+ zN1}B|YmaO@h#t5Wc}QoC^k60~aUFQvLOSg|tV)4%V!inPv=Dk>xZ3Ui9`UfhuLK2l zD4s7B8l6(U=l!=V1kJMCxa2uYmzM9H3!TOXdQCDo%~p7h^mW9jENA#0c1iGs?>vk8 zR{Bj#iY9Hb{CI*lT=b?un#l938+1;a6SCY7GS(f!_;0nOf7azV?Y%WsTP;bSZTD-q z&#JaqHZ$&@s)4MnL%_+gB0tIc%lbibp5k2B5G$leP#dhT!zMZJ#CQ6|zE!F-o=<+# z6hGzMx2NdX8hF&wx7qAmbCK(Vx`B(>c)47HzM+rOX>K4dVv#e73!dRh}P|8?aH{C zk2Z{JN^^YbX~%fphV#D$=YGz#8nM(5`ST5+0yLleq%s+-w^@}n8VAK0B#OGL?_V+H z7UIEDo&N&v9gn_A^>${-F*& z??1IQ@DKU^Z!Q0)TK@m_xa@zf$JPHsJyy29@tzcqkl^cy()a#{`Y!dD*Z$8z^#5Fs ztN#aj3@_tpz?JE<{RYTB7_RI<Aw&o|yxg9yt~jpsxwulqtwub&@MzE& z5QmFxVUv^cZJFXmnKSV62c5P=$sq2&O5EjFNo88XWcf){3f1uU@BvGE3qML~E#}!W zWy)lAd%ETz`cFMqZlRd0GyJ*WB%~>+*N%mD@XYX~+n5iR>7XJGz0z(-y3MzWlj^Ju zPyab7L&@rY?y?@%gsGn!5`B6dQ3h|WfOpl#!Jsj63>U=*0@P}*6|Hu=)^9}Qr8K1q zts7mrxu=4E^ct8J6dCh#wz+ z-W|Sr+gs?n{vF~+#-ADn|E+~iUmu5#;LWi_Eov{tr7h*)pACBgR|V)sf{w)Wq!-+X z_qGkRa8uLJN}_!r^L(nmwce6>T-&Bjn*Q_kNlERo;n!mpORYzzKy&)x0z3?J1nE1V;+Ri1S{+m$KEIhIfcD*y-JBeorEwa>Q522PJxQcjVJ{%BPx0 zxprZEslL_xkBKs>5%6;6JEC-(buB#fE~(8UoIBqyz@G`;M7eN&;Dq!>^v-Rx^o6F4 zpD%$oZC1)J@I^;Fzj<9#{@Xi_BfEc!f4jlD)w(@URQj!d^h-#MT;UHM^Qj`x+%qvR z%VQj@M0)QZkGS3snP&(E(CFiaq<>ZF0FRw7DYtPw+ZAb9u!UL=-@8Ktn!F96j*i0K zH??Bs!FL`FO}7C7%zfHYPcgg;w0b0q{5*4Z3vugH1ggizm9z3)6Xh3s-eJ71Zu0w5 z_WmdTd2cDkrMF*Ow6rh3XR(Ke@5Rr;ySz^5BL6GAv@bN5hBTbywvQi_(mdX}GUpDD zeozKsbCduTamAl%xuX2;@R#|v?to<1ul2$AUT%^>>+8!b4kg=ut*_@{jw5SCDJq`o3#H?D zm1Nb@S+9zA8P}BOzo+&uh-+dxTQZANt97VPW>;|+-YoibqOKC&!{oBMLxqrk6d}0| z^e9iU@>OcArOa~Ip-e~jX>>mCBBYm7q%9%Z&B6E1{rU8=UM>zC(qdN{&U8gp`IB(^ zGM^Q?n6%|QwDV);(?W~B>}QMOy&LSMpL#lQe!3BO;1}@0`lB5+k_zcwtY?xVWVt9d zpKFQ%&vKBkZ%ynD=|yst*2*1wQGbz@A|qaa}7Tu%+V$%@uHZ zyPF$44cMa$CsBCli1ORuozUzM2=4eju%Cs-ENP-=n#a1@PAK-o#1S!QLF5g_Syd{d zik^ZsCcd7yszMXAc83eEwhvPBX2pr7c5_;O%h;;yUfl~+r&M@CHDtypFKN7wtvcf| zO&aT3jYzkUdZGuXBK$awRcf7l=PkuacrY~RKVovJ_gmN=^$5k;;RYXSc^5I1{skSW zHwAv=n_gOvv9j(YvBRn}LVnBXROn|H=qmM&KIu<&Kj}|%|GCMO)!m%*HE)7+N0pbY zYWw`|#p!s9^M6_q&-_q#X;0%b;VU$igN}aeW%xx)EgB1rP2?)tPPxD@NGsw@!*K4U zyh(E2@v#czDv+P5`z`3os)Tjz zPz9j)-LNK4@^GORw7%OA&+CFXKKh%Nza3J@+ppQ{^Wfk(2r z{Opq?_w8NPjUWMg=5v;=f~l%YxzhYha~FFT8+?+bbBKk@*C=X~HT=FL-`a4D$?>WF zyHURz{M-KU?>_*EctDw08_+YINd7c0h#e6vPTE>nt+tDgLAxdsoR^?M;nBTA_Y0PQtY7+;25tyNcRF@X%XaR7_a5a}!>UO7(Wkn0x~hG#Vsuq@wrlM1jlgc4`OcQ7r$22U>)c?iv6T9% z-8Ill;>>pm&{%dQ`J9N7Sei~!r)S;NPAM#1$2uoYCSO>OvGS$9@7(L483v^T(5hT`A1vERH>kg>Q2jSzSE~vsL=jl??bFyiLjDv4r{kq-@&RLF0_kJ z1g85QnAtA22CA*Q+LE|-5%CRRG1@LZ9$ao~7e5c&1&iu-@!^mk7R)X@SqX__W^)o` zEl2%a>6ogewppIp6O)|f&B|g$+fHRNEL6t27TQ(6-8MU`IHQs`nO$qWyvgfbjEFis zQVL{}m3Bl+M-PkhnJE$R_QPfubjR}F z6gGJYj;}%@J^jb9PKV=q1AYmf2Otric>?z>cknvece3zIhZNs)$aWEaZ!9<{l>LZ& z`FQv0hrEvVDw6vU|C!`Kv~THvg$Ev#J?r?UzJnbsu@5u-9mHHyTcNez)Gq!IG-ut= z`p@R2S(% zrXX3nt?qWRz)Wb)?Ti5@y(!NlDhXbgOW~J`lef9OExA>^<6|P>0i9MY3Doz zpnR!?)o4L&U!G`zYre7#$!}$A=to3;CCh;>upCHc`dz7xR7Bw6b7|hPpcfGnpKOND zR9J-Qg=?Dh<)FKVlB^#(uFZ&01RO)yon&9}eV<|l4*}j?h;%KZO(Npe5k+n`_JU7> zirl{VJr?X{P~=_^KSccXiU{-yK^c$+EhI?IG>_>AxV-*|5!4?$gQ;=Llyqo8AO>=b zGZ~?Up5ZEMBu}>n=(rRjW)1m%)g9_HwQo7RQW$vW;sU-+q1@(4Z_#@+1NEmgV|#n_ z=64()2)V$q+_loPgi|AsgmCcB^~4V)A561)+t zVPABp;hPki#*=7-KM&-)4A#+y=pE&uc}T`QP=Y_6U=nl>DldN2E!!o+SHIR*3~e~l zb=wW<75-FwFToBg9#4m0;z9H){Q#c_!x~?5P>1LQx^k-NNyN6!1$3zp-%{mJL$@UT zP#*HqS|zw4TSOiECOT8@iNd!r#)%S6Ch-2E14Pc(-q?&7awsdpKORAk);AqI>CWv_ zJ)H&%|-CNrY5i(~7U5!cDGjK|}kiHyR?laPuTv!8GgXMwG4Q+C~!6->K8DV?} z*+67ae8s6;O}c~h?X0lMc*K$^#Kba0a5A{C-iLka;VH_eG1~<{B6}5(zR&jS#*r=! zU}y@(hy1Vt{!j6Z5&Y)icb!FdAYG_#?c{sV;CpGd4vc5ERUfMnl^VJ&H$~bV@;%Yb4w)2mkNJ4 zpxz*}+{bM7HXsMh+TU;`L->HfrVDxFJ;8+pX^=1l2U zy%X^bn7tA8VKMsPJ3w|(YIBd{^K!bnQtTdwNxh@%o96 zXFWCJ#>zf--Eh~IyL_PG-bQ&^OVrjKxOO2mArV~o4|In=`W$PTLu<`;5w-mHn37SV zT^xt}S%!X<@KT7>2Pp?ByHficMzK=I{%`l^834VoLEMPCsjqWU=M6|RkftKV+bzfS zHAt=lT`LNmt1W#5E-$|_ts-sOz{)h+a95Hm4RDy|*ka+EQ?V{6Ma1log7t+rqGcB( zcgRD@b%?%&>i!6FO8O@H9@?Aeo9KI~FVrX6!zyu)*i_7qH~e8WQ$E;8Vmu#dOfk@j zYcA{ZP%xHv9+rRwy9rOT!sy*vTB5 z-YMb0>}lr8p;cv#y=*#X)}#$nnDrNCvrD)qXme8&MIZmZvAF6p=4;77e$AbTWHjmR zDMYWE8&mDws*;-E4GQ>~Gn%T5E^{Mkp~Ej1Y(D?x1sA26zMICDzLCaxE)wBQ8ebZF z8f$i{aDJ-Qex7P4%gA(V7khdoZ_KV_cB-;hb7-xAD$z|fxpcns*auA5FK8EXHIGIe z?*r}$_U>3FjVou$vKJl5aP_ojI-iH`V@72UM-SjRQzO?u!)bD5g4)j{-zKeZkBVZMB+oR1HF1k_;g`L7zD$u4y_%_-H==;_oEyXp> zAc`okPez58kO^=d3U&Y!UHV=ql5ge2ji;Y+8G=b8KU84<~!f zhuxzoxiTGmFRGtlg7~|9UJq+u`!yEK6-)HP4Dj%+N34Hc-Z=~?hU z^o>`#MvS(@>c&-d&(@5b)N z#h;yE<-TF%`X$O8wcOe5kumW+AF(_ivpiiAc?@MF-;d`x!1BDq@`Qr%_Ajqzr&Ko4 z_O_4$y{!#XZqzkCUf1Ix`ijkAAL4ml`L3F^^C)ZQqeMHG_vKEO=WdqgKq8OS7v81- z?jCb^**)-UT?K#3?0(qcr*YqsxGy;TD(<@{?v01rasS@^@%-6`Kf(RH#C^BJJ8?hr zzWDp3!`<)Yb^646#o_+A@0GX@9vYAPmlF3E4$Z?o|3JL_&xcmxz6|&9GUm%TtoJQA zr1!0YZl(fSyS<#rzEQv}P6ppRyC0Icm)@^MEVItlj z)n&-l_&#b@fVSnDJJ+|8)%P%~?*qBMQ>?x?%uDsn57#!Ou=?P;jrDd`*x5w-b_VqK z<$zCI2a6r-y%^`3L(1}>p!ZQy=DV!#Q{)}^3-mVr%|jC3yjuR|e>PwF&1SjW4=6`t zUuVgQMq!hVac;-_3so zY>+;V-dB21@0)-$4(Y~&)Q^(^nu{|*AI^V1P@2>qjqlHLe|(5@n1uJA2le>hT^_Z! zLZh2Bu+{Xz|GzZHk2Wi9zk_Qg&0lY@DeG$#rH~4L- zywvy3<>7-DEpKM!zmUt{mni?ST>g2v{N?TQxrCv?yGvf%paYaPhgUhi^_TDHSA{*M zbVVO{0jb&5w4&l^w&QTV_3rzzBg}8aJ*P4?1l_*-E%!jrRXX^MG*AgFWXJ=Y} z6@QEQ#4m%j;7z(cg${1Rbi@WILv%pIqzvZC_1;wfsds?w9&bOi+ZXNDuzFtuZ$kNu zqNcAS$Hv#dW72It@!x)`^B<`5b-7M>-)41Y*+{?I6GSXE*4Ml0_jtS7R(XjAAew;o z%A0}P7K0x-3HPN)WPd<#*AF<3=mpwSiFTL|JWg<3hTk7c(m3QfupPL1HOkVyD8ZP{ zy0#%EJ{5Y|@$xhYy0qi{1@_3Cd5^%G=sN~gEyEWqb9~g!^V}fP;hx;rY56nSbC!k0 zDbdYd4jR(ts;*V(;GVS#kAOdBb}3EkP>aqN3oK-%%< zI2KeWY8Jo;V2Ycs$#>Gs|2sC1=0A%057b`xdWPFmdg0%TxDBNjzMeJEIvWts7;vz9 zOF9!NV|G#So|bX=vDSV!M-Oy@jb`c_e>5A zCT+KM{Q%24r%$YaC(NTJIBT=^whchPuMJQv70&#gP{PV*K}(a3$H0<~lzLicd7(b6 zhBVYrjv5LBDYkeW$>l20oW%h|A!5*fu`UPu<(05c@y;oRQS1tM?~VHuB>4H)4OD*4b^v7>_HUiHYaUG{65#894z1%g0^gYQ>ry4x`U&W-D3Q>}ACXSK+gd*xM#h z9>}F(Ef~+Y7x|7O-`6bP!9V1KzM@l!9Sk;x$U%D;)xjN@n3DqDSF&S$LuPYvAiZcm ztq*t$a6$*KGFSqiMH={0KwMw3KkWO7l6e5@y$b1T(Dmg1Nb=tgx*RkDt$&hQ!>3a- zUj#4mg0v$)3(HLv`<@+9CBCQgx6ocHl{tG^nT?4u<6@8vvNG}S>Rg6)rL_%+Z57~i z-LON0-C}^w3z_hWr_xXNsr7Y^x{6D?6yo{pP}gw42JgD#d)3SCS1`Yq?^Qb!Smc^8 z)mQ4fxmtx%H&sh}1n28gEn$~ZUl#n0s*`UDJ|2QsN6oz+%AeixvZZ?qrWc6Rr z!tIT)-@pn#-TTqrE(=%lxP7{Bg7TQhg>{`9PHtDA?8}xcR%$;=JzQOlQja7`)wXGp zPa^6KSM!iuva~Ik3yaF|@7UGgRTDkfIaw-Ct=?6=?27Wqso${jcP7fGqWt%vhMZDQ zt)&OGd}J4-4}Yq@86}sa<=5J{l+(Q_)(%&5bD~rVN*xU$8gpWon^S*-Lpic9cDea7 z?knlI2D@BW|6J5WyIh65%khO-f}(IdJYKEpm{m_Bq%_YJNFSVX+3KY+`lwyWb2WDR z1k*8(GQV3ZldIPlnC$RA(Oj!z?!-JzsR=|1S7hjEDK(bo^p1fl$IA~Gv zudxxV>?z?LFV&_%REB|aZK;V?6==1HwW`Sf67^gq*YlG=ey#_|d+T??7QBOWfVEL8 z5T?lrN|Q9nHXJ~lU||E z&vwQ$Uf_%`k@g_XMWVAr=e_j}+|L9~A%5VOSetj^e*I>|AKJp}20e<{H+V;9)|Vzv zV({gdtP&=oN2YgoT3abqq!{UxUY_E#ufz-bC-?fopqn% zJ>rMS@7LB*{Oj3)xLwSuy1$+!nw7Y^XrqDZ*o1gCeWUYXjXBTSrJU`_(-Ef(=QyHe zh*lvST?kxFxcP338__P+I5YNng4g}=qaNRZF0jbeSbN&i;fMBDtn(fi(;gU2f25m@{CWNgy``>rmV#&J zBisFjMcUrVnxt*{PDM=$Vr%m?zrspRha92cuaLwmdT;V@o5q4uPSO^{Zj6v;nD}|& zJ+zsi)phU;di{FP>rv4g-2;04_@+ykPy>2>SAt&u*}Vf}dN~e!A%O!w1x23ZyBOOx z4H^NJzamBn(cAm0d0@m}+|SrIRiwL~0Z)q(puoUGV%p+<5;Z>FXh^J4u01wZ!e37& zV4d*SPFDMEF=b&c*6>u6plBhyB@$vff77| z8}R%BLmf%{8^T*?ml$QE7RnNuw<5%&jpvHGQ zpk9LZeCupL`|SbsHr}v3C&~AFbho9bvOn4`ci7~%b!dA^r?&5`o`ANuHB#F}PP9!c zN&;v=q=zQ&u!0&En zd`D*r;O`Gzvu+1!bq1>W!JAeT?8B-@2U5)vf-g&Mrz|qi;aNM#S$UcQ`E2 zPFZT3ZCz6SiC=~D&-W3s#Ny1K2m`%*AulNU-+h)d5bd7jS^#gjl&BZHIYXGwa-M^A zIG$iv;dweSa5eK}xObL?;1lMQcQV=qtYc5KVXohgOkw4|75ryQWb9wkv7nCN;EhPB z{AJhH{d9Iz;_bb45%CFlvsBhhWarZ1@~FNU7=}^Z=l@lFGSqogN81KrRBJ+msxQP5?))cWZFk=iTe#D}PK`!$^-JY|%Eq$M=5B_I-pBf;1uSAX?f>+}EUxE_8m-suUJL7vj@n)i8duTUsz5n4pj5l*T zr)PM6E_8r; zykAfizS?p-`zC06_-frtSW7Po_{z#VW z=GCM9V!L&qqo0lF*KHxh6lY&Kwf<^vR$~38;|v{v&JeBOeh$zZv$&d>*1itn8r>g_ zbB!W({r&Nx+lZ(ayc? zTB6GVr>RMd7bioImVey-8tCOUfcN1$GF+y%K+peeXXp#39bKh;r;I@ozFDGSqR zZ%a;6gOY3Ze~72?J@JkfM3}Ii7gM8ZAN2Lm#yr63-S!#q={hU&tv_?eUGh52sHBy6 zUOd34B3gy#p{J%Vr1iJW9W!!QEp#}iWdm;eRZ^mrt~cK!+{nHPu~VxF3U6|}+^**c z4r%4xA@f=00}AyF3i;FX=pv`m;p0 zNToR6oN9uwnZXH;XW&6#yp7hzc)8TLpu|z)d=snB|4@KZ{jk3grz;|k4i1;w$+Zo3 z7|Z!*;p-@JmE6km`hWkBR5)Kq27I((`~V?I>5eRnU^+oZZ5sPeqnON~L*f7}XSijw z^X2wr#T*OamVboexFwla*>CW6hGW_%3IMA_vkb#8!8`3Earo{^@Ctrt3vf8`Kd+mR z#>MxXtMQK31;O)HToccwJK%gJ_@%`Ekb1n#v21#_YZ>dS^q-=%C7BC^KjS;UZ^WHz zr1O>bB!0SOdRYPzrKF!w6*6R(b7hG55cK!bBAG!JkJJukikKbE8M`)2fV z`a_E~ejYwJFQ+*oq6g<$*gb>3A%5FV$Jz#k9Ib@U<@(dO=pb)D5PJcm^Y#wxt)dgTzRS=X-8{k`R-$pc!@W8Hm@ey;l*cTLA?ci&61=qAV@zS(1LT0Prn^%S8E z-sNaPD_OVO+IT%IC=zWfVQoAV6mwR2Ua@4izynzI7P*dUH=Q0IX{7tFdRIEGvt%v3 z4*246x%6o34XpG{!BKsvbT5=Hl}kS;OiPqK+50BTO=UA2bC&{NC(2G^Wy^v*PJQY@ zBxRaXZ+EB}|Bcp^BxRaZ54;(TbJoVo{I@u#hxT~*<77IAwAU;4&GuhaL_2tKxvo8r zkBL7-N1-1?*-WZ$^%hHO6_SLKjyqY&wXxY0ZDwQzf@`i zmAaReT8dKFlNI0ATpM}%@{F?KkEp%QqMba6k z=DcXZT@K^XB;#C}v`yPvQIq7zchagEj(4e7aAzW7cZoa0WWZh7`9NBS{jd_xi|+?B zfh&8WWIKFW(u!;frsGK}p8OcTd~GJPwfSmLhxgIodB_K^T&3TJ*~x&ll`F5+UDMVy z5LSLN=(f7>yFRFbKdn-<^gx(vthF}a*{Wa}B21kZpJGpV_%V#YW7@NhXQwi5(F~IA ze(T>1`P*iXvZmr)(jEGskz{D|8*!bGyge!Ni$dZ%etv}Vxi&~Z@9>;$(HYla_eg48 zi+SyX{rR*I5!I13Y}QW-lJ*Ths1PxSDh1^r&bQgE!vDXz)%agnt-=3Ws`wq0Z%sgoUgWP=}ZAUpwyoSA6DgiL&mWmwQE7~XSGsE-rP%A%*r*ea<1F; z?Xlu`xd>u2N_cspolel@pvgn}l+Kr2q6)YMid( z(#~ylG49QQrq7lp&)Su!VmviyInFD&k+s}_mNg1UNYSzaEx(GEC!=KzTAmY^Gq9HF zs}F|_h?30J7;HyPJ>-`E7RhAr@~L1WUbr5XO+>>nj6A=NO6?4HXFbleP5RxiC{r%C zH=>atxV)~A@kp)%PNBJ@aVOl_c`k_7-3Z#$iT7LayA;1qn$PqDJ*SesU_|^b zgb_6$Vm6{@WI9BkJMof^ z77w2*S{wYhmTMiPCn#xYk&f1T&-1#!;rAe2Bdy%dL$_M$`5I8l&;^2CrVih+>mAY; z)E$V3)giJUP$DL|)|}b`YeIW3Ylce)9oL9h5#)^;xlBxakom#yhJI3iC!_94{PIT9 z+lB78T!%&=9d^>2C!MlvSlMWqzHCGsz}n0}d8&hCJR2E@nJRCMV|7LzScSMU(xg8mrPp;-t~RDca9xBIzh5` zQ~4$~ahxU>a%SR~6p@b|6*MiMBV9)(@BIaEKs>O12go9W{LpfnR5rC;jaIwMxbX}ls5*h7Ri^-%6VV?FL{5G^M>TS2mVXm&*Z%6XQe*8_h0fJlJoYL z^M3MQ^1dSH9V_QO@n7<8l=IG%^ZxK(@~)8c-YVy9m-CXYU_^Z1&vnujjEH@k$VaBM zWB(r5<=8Fl*p<+j(e11tF9+P<5p3Ty@2>@nUcO&HFYnhu#A(+JF7-X^ChVuf4m+b- z;)YZSN)w)er>uiqbR(0C>hhhf=BmLi&in=T@!SAOc{uaG1j(Z&KiDWJ23rN?;AMhp zFz0*9t;YY?+#38p=GG4Wdtw*=&b@+_L|(ZKE!ud1wV}-)Deu{tg0$DyC31lW*B%=u zNu*r~$xaHljksJ@1?blg!tL0>Zi(H(>ic^oIPnx^pd346|(di zp4R1_wFwjzx>ro%uAdPWv+^o)svt>Gk0i=tx2!2)`=RmZGwRT3B#LBBt zKA%0QO_W!o{7_b2oxh<|d5YS6A}aCL&j@*}yawg7Sb2A%yawe>th^@Q)u}x30-I#& z`;4GUyea9(s_%t&`=WYQQ%Og9{coLQI>gVTJ;H?bpW>DF4-qiF66q!2rH%L{8sHOL z@5XfizfJh<|01vZ1iv%!`yGB);`ddg_=uKt?5$Iw-8-YCflg}K(VlXTH{%`$NI~0Q-^K;y?7X3CZ zFWai#mf?B~mL8O-W(BA%qMG+nJEhMd=PtCKYD-qZ6@yIYt+F2lRcQbP8x)6x zxV$~BJk}l6KpGVHAnpTK_`aZG(xRiFbtm<$v{aTYXV@SJ{Xs4d-WYOSpc5nw3dCrP z-N8n;RY+!X!zFk}XUw;tqp94isBz+Ka!$M{d@IJdfyJvlC+-TJ6CaJbJ&U1@WrW9t z>k$F@FHuQWwN3cSs~l_shM3Fxr7|xRB+lV00vnO#=xy!(fP&lG&a?>_?}W=!`mT;0 zW!jb%;E{5h=?f1BN4Fw3=!PtTq^6vCja0`)8YTaYyV{jRcVmoFF-E=QF**v)_;~wL z!0$+#t}4mJ<+lo<>!JH#RF55P-{#>raW!gV=>>g;W@|BeJ~S%PWuFKuy=wHFAE|rp zBF;C2C-{1eu@HCy>%?S4ZON$ZS*AxZz@gpB*UVmLELV?(r(M+eXH!^Ajv|%=>*sY$ z6Gd$4m>TQ}T8HQ^qMvE+CB6~aP|(_n%cq|C z2|P!nI1ha#*3#8T1na%A{vO9W(oLZCR)=fazqwpcDQv!*K*Qb{QL-NH7c^)uUJu2J z%Bm!a@eI?z4vX1`i3Z`Z{@S7cm5X&v*KN3V$=A@)Zf=&ZNvAsXM=1~Ki!G3^Kg0D- z`T7%F|0G|3gzF*bAMu>lG+Y#aib^_OVbL9p>v&NtVMTJ2qe<2kUD0Pg&Zw&!>3xx~ zb8=s%YdIe}O#`YM**BH?hF15t4rwLc?&FQGv1eZ5>n6^zdlLKNoWKHWcI$2#+JD5z zyc*fbN_-bTw-$cPTHvv3e&LR5gtfXA{m*&S3654W%k!;&(hlM;DXXz|fhS6R0Mqfj9-%wqJ z{*lfYeG$`wAc-`zx9;z>R|dtO{5J*H1mHU+N#D+^-)UE+-QoFX%Wg}&7tg=654BB7 z^kPo6zFncd!?PRuY4NuH#55!xNl0FyaUtt6-IQo6l?#gd{rYw#%F>)%jW#aTFuQsx z>up?iiyGwKPEXX3f*LlV1{G_)d!qG8)g%?WB=?=%n`GV=xttTL5EQ5jGL8LKMGJgEfm*%$f-|;txLjCa%JX;tZySSg8mO+W?FX)z#(NXSeI3$2 zkZ9g2aW*6R);B0mu^5kRgh+YYc|AgG_l1)%pEO>X-fj*8t@LQp_D$T?VFA!Ab zf|hJswxjFMMt*d2FKeNPM||-$;WrQ?Yfm$zWOtL#o1E%T8s|FCiSGp!MVv=9uGZ4^ zt0MP#@!OCT{mNBYV&q>tkYFGrdz0XWpPO&7P>V3)jPsKX5p~C+$@@t4!f@VJnR?`o^nC@-(4tS zw9rXt&frWjfnbv8AxIe$Yn7mLc9hFQq+R3KsxdfSoDoI>gGfBMZ=_St+W5P_3PU?V zrpX1}alZtYZwWtn3m8=9K$~D7U~-_Nwq21zwuu>5qSpvZ_h&GfBDYyfdiIBIL%Ok_%p;SAUu(W>niB66I>F^-iNup8>t3qI^L~Ed|6mey4E@1=hnsNuATmP z1Ib9Lp?9sV35y4UMWC0LPkh++hJ!zjt4lqs4-6uJ{CIJq8S8^O`d97 zU)K$wvMEssjrn@vT2^9Z3w-}#@7-?M*`hUG3kae%v}j{s>nz&=FF)w57AnDmb63tv z)Pu6d6A6;!ld28#O}LI`wlKowZO8sW+E_$i6VLFWfQ8N1DVe^WAmhTF0%9IS$Fg_Z z1)tZzYTn(Z<7+|j6C6~QO)w1y)C5Eh^*-etf?A0(e-T{J5d0Yoc3kij`@0nlf+dAw z(;&NYGry?_QFt}ox~)$eyLZec53F)G?H#+-@`p3Qo-)w;9+0Fi$K-g>kK8 z9pv~I#TM8EXaSpu^BGv}STnT~wqdcow>L?cW{j{3BfN<4j!Xjr&+sdxIn!hPhwq16 zm?8we6Xo*93q0Z?eBh?Cym_GDLfJS^fodQOLe@HQZS;Ux9Oj116A-gt#Lu3Mz(w!3 z+zQ^FzSUIKANb@5&A)#Uo8xx`DNYT?tj!VCTeuNB;cwv^*xO^muYk9^340wm*v_YQ z5hQN*zkt6ayfuTJ*y-I7uc^v_+Rx!!H61)eX>UF&{F87BPLde{K^*m4>azk^Z-U8+ ze#dzs0rAU_%CrmhT!nhPLMeLE5WbrAq*d4}KOZTKa*RR!5_fxu@Phn&yf6~^x4>f# zQ7|Ln)kZn!ONMuq`C3G~qo-28m3$FKg4(z!Nk#r& z1&NpKVPCA^cd;C^kfR2YqgN;w^fC_##E<37FM^vPeI0RQGTGQD^Plq4d57SU@FBq) z(NhZmdjzKhn*@)91J#YNQ^P)YEuIm4cESAu{C3Ch&G;o4md++x>o16VHYrEjrqY$- zdPZ!*0$9MbaY{wao54prvOv$h2@QZOSf%hu``fu>c7?MGr{{9jhQ)fmh94e=PT&Ol zHIr0r$x7_;Gn6&3Yz#i#B-sfr5w3R3fF~XWd?YB~FKm>3lNQI@NUN`D*oLo~-N>0{SbNwM=)?SAcl5AVRY24P6{g4W7H11R zKccB!jnl=JmQ)8nJjW%=`?hiBqb;zokb7Mx?@u%rHY6v;wkPIf4{XBzj`^TDp|j-_ z&=UgQ(RCTFgYxxQdXBvGd<3q4maoZv`;?q#Ag)))&rP__k+1vUxjBBX!#waU5i1Hifj2q>x*3bB zL2Z?u_e^T4U~_D;DvU)|hb;PY}K!_`Df#`76>gq_aqCkO)5S!EcXq z@C$Vwdlj3Lt2@of6OqK6=%hL66CLIlHeH&LaZO_}PA01oV>=k%e8At$I4J(j?k>LM zE54a8)WU-!jjRz?AbBY9JW7~4mADYSdZwLo7=1WfNNzZm?-MvTX99-)tB|X5Bi>x==&Ef8e=a& z#QV^!Pk}aZS7;OW0AzfI5v4tsP8c@pF;LW;`55ku@F(&)o|>sXAq&*5tjI)@~H*Z zJ3a9Aqww`-7#CJ)o+%8I;XZDmMmwh@M^NT>B|a-?p02Xp+%fF0oo(>)J5fDNz;wk` z!_e}N0$HW6i6I^y#`CmrM7F+56?(EKFQXRXc#cfRF~&@ktqT z6CaLcusQf9L3dty|32P76q6{ag95xlGygcW&O6ici!n|F<5Tf_9TJT*jr}EA`z3!U zAu$CSN|*eh>_Yy2z?Jjv%BxuUcNr(g6E)G7ynve2 zf9T1|YC5Z2F%t5Z#QD9%NA!yiMKmL)2Oq^avX+a;lj^2w!f7imn+ctU?5~H*ZM(|+ z;=%|&T$!++`?+qgL)Xshh(p|^^(*VAXU$cGz-1*JKhz;MeL#}7mUMhmCsDHmDJ30k zb$p>!<_2Uio=tpB(kL9mn(Teqn!GBa8o*&qN>b~yLQwoF))jpvtE5k{-pIe;T%`D# zi{rF6uvR`sx`4EX)(zIsas1XGak!@SNbB$j?iGbf;P+fXHK6`1dV!N)s_+DBgJjK8 zzXVm*Ml1#Cr1}ZxS>^1Bko-CP$s8?P0*vUMeRyH(cGE9n?l_e-a@*VZNZJ`4|$OHQl%29ULe zH0n{$pX)#m;`|%8QMjetRoBbI}&zr_tYIZTRXXjyuvcsZYr;@6k1=zPlP5| zVhm}eo)4)<{#k0Vf%GK0uzs8twsmU9S(k}+u1;uwRn|QL*#ptNgs&Un50qdl4{$c~ zOV~r>**!>GKjC%jKjn21=&StDB%Pa=;W_!8eGtEWaAqd2i$jBwmv_#n28T|K9S?pM z@n6aQ>kbiLlHi@%pf=&-qCCkr(jOGhNPb5RL9r|LX!5__aA0*qx2YL6Qo&zQ}->1h2PoU2<`z>B>FnPX~=SJ)n1}UWbm-Y#qF6A_5`&JL<|q;(Pu> z)&|rW_wP!2U?upz!29q$hF=E~?Lqg!PX;W489&o>dAa_0HW8so~H=C%aQW(qmMHP&oGB=ocoF1owk+j3HK_ZNKORPc;$f<4X# zD>sny?RFzdHuSBzWM$19d%xi0zHaNl!@T&grS!tH?wyvUElG$wso9oYg-F(2yZH=o zFRo}y*4#=K4&1$-2FuhIctNi+gF84yn2J$dA69RJ*IMvZGh8-%*GfJY|8YeUDDozw zhn^2%y%&L*2E`-}68i(dAe z^DF3ZYMsiqdJCwHf_6c>F$mj2?Y3S_cP=Qdi%PiljIiAc>z1wGc{VctOojDb@x??t zt^>?{4A{F8-_FJS6D}s0BlslP+<-I?&j%yfaUSpffh12yg!032|CT{<+TrzB7ev

IH3(F7m2;XcmauEO;^z`+uv`;or* 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ϝpQQ1=a(PdRh5q%wCkkvu5VGZoaoaT<%VkTTi)dqce~W zK3%Xi*Ootxygo(P8NMv|RLP#jlv5z+T^#;qW28o}MeZ+0?)C6kvSxAN2AxwLftt!& zZFOSwAB>cDC(282ejaDmPS{wdb-zZ0imAKbd_U^^7Sd5aEkU~2NG^8svPj)GL+Zpz zUu)ob-SKxJOGCabS#LSQlLnM|r*$F9tnSZ*|G?(d@b2PQ=3gQI2az(|3PhVS**VtP zNO>bU@QTQFWH{;$2{wHHtS~wb#N=DG7O^`lf^uKD$sqsI) z)nsbZIS)3U%XGYt2ad_z%QaX^|aJ=4w43P>lMYn4rar|Dgi32QI*y>pJA7C`NcgUqy!nTWNP zN*j+a{vpKSe@uX^ZEeX=;CZ{C%7`(a;Xerdv;8+H^I2S5aorv%|4!VMO-sQ$sD(rV z*(-(Z+xL|%kQ;82m68WrZ-~*66p_whj8(S~eNaPw;XHVDkXYjX6++y_rLiO>8scBa ztX=9m$9w&>?>g=8_3S|YsU_Z~xSG_m)Y8sHspXK7X5iyP^btTFQH>Y)5!#v?YuNny z#w9bzY6m;%CDW$HL9OQ(xfQ*waW1VZz9ilfYfrMzNsB9)4Sk#B>C#ig&(gXExs>2% zd0R+M;{dKh!1Y&v@pD{z@ZO610fbR0Lq#}-!lHTSqM_x7daD`Js9C02MK{)H|E=`F zD1DeWe(;6=&GJb`gv$SLK>7P3<-dV>XUN)88?wtL+Hu*kD{iTI z!z6FZX~-=5R$xwLmVJVMo%pOPn;~SLf~3e;%v-QurzsnIr>&P|$KIaS5T45<+T1%A z_pX=b-i{h3vy)$kmvh45P>a%??@F#obx(Fdde#Nopfz+KBE%c&6(nCiIaFBFy(k%V zq__J+f`~)H9pQ~|Ms=b(5d4Hs5tn!;98*16Jv>$EnO31W*}7mwvNhkAWJt2Wu1n$^ zA>%4*OoL9TkU}MMw96BZ{Nly@;;xgQ zLd;Jl{Tt>~f^`t|#s%f`vC07Emo9O>{SA$f3N!>*9V<*~*R_y8K5hYTm%KjM6JIY&W zSH$FuZB4a6j@&WKl4?ygr#lm!TTG+f$R4L`#xYZJ%GAS~IsD^~Kl`)x>g$JtH@GDCxX^mKnQ zGqIxUn^ls!?e5Li2W^zDqU-CGue<$etB^`*kZxkTr7Ds%+wQKl_Sh-Kr-E|Z>u!=2 z--|TyhA&f@T(+*)COh$%mEDqV|1z!D_Gsy&Wt!EDKGm(}a#oYnNJ}*{@z90$s&}q= zWexO6`*o{N3MuR6?j<O2aR$dSDmw@+SseF zUYmdDLQeIP$E7`MC7T+9ImQdWs-_f7&R6dHy=x^dZSwRb)vQihm%F-nFEcUw#Evz~ z2IQN&W^pOy`V5_`A=eeiwLr}E=IRv#a=p8nQVh&>1#*?t#nk6EgS)_}8-`;Asl{pc z-iC5ZnYGTxsFUq+ke4d8rmZLyN2&F?qf}D=8a!MW@dc}%i!bKdjMgI9`ZkbttZS%f zTqWT><;0Da$w)6z*CBnKZL;+Sq#t+P^pNt%O*xTc(IdT7{SDH8W7EUK@?M|*y6MAp zVKUA@&+W?d{*bhOO#}R8t{5)XWcYPzVy%?aFWd{et;qX&uv;rfK;A-wK8(GwrWJj9 z53cqBeVfK3_4R@D%8U1@SU*v{6HeT2z5QouYOSQ2CY&g>mi9=_N>>Jm`P#h0P2Ly50;klez|-Hg@<8=?bgVmd=5IGTg13Cu8r1_&N{@sNO4&>ha5*XyP5Hf_rB^sRykAFdYr;p%8V6lZs`N|;>9jGuy1V+WL4RkrN$6_IkUjPieq<(_g49OVhs z&tVh}EES_X>rP8}T;6HDYhd3N%Zw4rlr`VC7oL@0IWAHH8a*R}SDuFjA8sfE%w;0X zWl@+1%+=P)`xJr1|Th~};E z2)4t;W}Oti+I9t!ulwnl+CJ}Hg7S<0aUM1^#lvQ4aL@F>Q{B7N`)_(Tt5jphc|6h_ z=#M__?a#PQ--o9T^!=g#vG3>8?0&fyDm+Z)Sge;0V16T7Kyx0=bu{PETz5TMK=U8b z0-C$0UDSz?YTi95xCYd)QmkPZ@`e3Fe|FR){>M?Xiq;sH;qC5Vvf_XvE}|PlFw9bh zZ4(kq3N5QMG{u&JGrMquN%1v%^Fk&GHY+N+X2B9+Z(E#0YTfJidJR~Eq+osMdSnzM zflOq2+C0;|BF9Wx4`AdKv6*kej_Ytu2kgo32Q_)E46{JeKue=!wRRZdw<3PRb?ulA zLF|)=&AD!DGGZS_Y_{PK71ztV2=Vs{YgS}%uy$c6(p;NnZsnR4u!_BoVy}%$uI%8; z|HHRG_uZub%kPF>{?2$^Sg&8+8NM%67^!3Gb-pWHalP-T?$--XuH1}qNP7zMXLg4F zDzqPS;Pq_GQVv5kzm$h0lE)6@G45ycNcqJ)WRW~-kcZyDT&I4Knp|V8c0}cB*h85X zVqhI5KD2nh3?3TO936dxs z{V^Q0K^|MVpVkvY+lH0vk$PcpEazBN;eFKD4x7d8IG23DW>}?wy;9Wtu?p{o8SRip z``+_j4?7qmxg2lqcY7Jv%L_MXN`rG9I0*{M(s1qYiERWKQOPJwC%2 zU9+p3Wsq)k%w+X!o5bq#NX(9z(KwP>6GT~<0Dmb6*dATEKa9s$`#*1n46(VLZwa*X zvB6!L-p&67;&#?FB1;S6x^s2gCxjbV7zs4?CW3i!VzM(~lF= zuZC{{`eH>j>4Gh^>sRJho&gnppoCzd{XVU|h{n=>pI}b?1(?z1#fha!6)}*pf~?A+ zU)xU#MwcjywfgUZy7s7`K9$?>PIqj)ZMw#mYcIqIQ5p&xme}9y9wg77zQne|{yDTJ zfZ_E6_czp+UMSDElh@_Fu8NC&cZZ+HRtNa=KAcs;2eYpFS)9?jgHD)-z8Uma;vy4Ep*~>>+e?{-LbSSRUIzwsi^}jBbNvLq)Q! z(6+(y+VYAnb9}OGz2#05G@NgThV$)DpcIjh-1LlrHUP#YINOWZhV?V8u%65x*XJ3}3@`0u!56x?n|yeI9-P zc)q2gE44DoUepzv0UfPlbJA*|J)`Ev!4uc4fKJRqXX87@lxpovj_i1L$%*S|-?(L~huiQVS zOmBCp&uSKb-ETY%K9{S0)w_gr#KlYFDMxATF}N#T%7mCcO#5HhO=Y8USh@l*O} z?N{6!FYGDZRLJ_WVQE!5I%=udL%MQ>szMxznRME z?KZ$&IpPdo8-aSau+1bnMlipMS%R=gYam*`l>!F`a3@|N>{q~^)?7iuIA)5p1#~XJ zuM7AgTTHe&U{9w%6a3}^Bh5EQ4nl^G?0P__Jb*LyT)W(2f@DNWbBraqvY>?>CvoT4 zAzxQXKBorK43bCl^RI^#qyYd6X=EdU)ygq*X^^{G%>9jn>K6J2@(rRcVH7TU7n%lf zEB8zEceG6?n^4+>brY>?$lg5d-=4RR!5UxcWfeilsYUl~15yoGsWTI9Y>TUmreU+2 zFoQ?!=|}Sm+rJ+|`Y^D6FYekemql@NFMl5`gP@?VDRyQ9b~q6(98r5~%?9Qd_80U?7fha3#NZjVJs z4CEp7NYw>>9vUkS*v4w-Uph!<7BZ}1qc$c+H^o@kor*8kLn?+W4Sfk2+&cxCpYRPH zBohyPRPv-Ya-8}*l3<@_Kg~ZMYUdy7V;V^d?EvidN%UX2!R6JcTUgPK9i5L{?OUdu zuk0J>TjmVE*8lUqWk`-v#_jRJ8D_&h=%>lhY&nf{_Q|j`*v^yuKdaNNVlo$=GH`|x z#6zEeLMD{XIi+30=#m;Vt8|sR#Tm;C_|6FHCDpKSqj$CQry!?Z4E>W#%*|@s)kZd&upYqk4m^|0CX@9MtTAXlz*WRB zYl~ZoWNR!pajQ}Xb0782WEZOQTmNXvZ++U7*E(<1BtbLl z4U_liBtd6;)0Fv*q}#535cjc1YWCqG+1vvcNmk@J$Zt44pnk$+4l5gG9alX9v*stk zcUID_d66rn0-BwJ-Qp$m;UNqib zNo_>9$^<=(j!{}a6J8`*T1AbwlJ&DeusAj(lYH`lZxo9&ZI`|xEPbtMJ^}R}mOu0Yh@-8R&vh+^m0#n~S&$u&jN&|G0-zD55C_(5tvgKYwpvR`a0C<99gL z)_wdtLV({5Pw6U1Anor7O-pqT2PNp@KkbVl2}$^2Ao&2=|H}R(QBDRe$bq~WpZXWoo$4wtQ8vZl^g9Im_^d7tYcI&4yXaE3>_B`p9rcrYOYgJjz|-#h;P<&J z%I`Y1qU2ulMrb&!C|L*FQ6~G^!aQHntYwx@dZokW2xCscGKYfAI?>o-B+E?3*1tfn zadFwRg6h;$I7QoF&+`qL6-j$2oVLaIC#0Ov`V~^nFB|W?Pkn=fK{_?@uq;j@}&DS}So$Il3gD!i+1^#Y-S=m^pZ0vLH(h*E%dt=Pl*+)-y!mieG z$Ab?||BH|^tHtvb{{QMBuFT-0g_ha&Lh+obkj|MRUJvNJg2j1-sqzJ^S}0wfWurY$ zOqX}vbd!+V{~Xm@67701)tKw1def7QGo!fX7+o@;W(!X=GP$YlcrMu?(U28RS3mqW zhDPB$Fs^}41Zj+nz!z-(!p6b5>_3tnUGUzNjPalgo$(ZFAPXT3fqjXS9-Oq6B-g~& zfV1s7>M?105ON7)>Te)G$r$IKMB0-2c(lJ$`;+|&HR8WTxorLkf%1sw`pj&|twC-v!83rZmLB7iJp#Zc?B5{*pxbcU)7@ z2U8$0**sMOf2`gj(k^(sp^M*(b8yUJ<}O%H8iW6OSm08_17jC&0}qnwUEwvxYb}-B zlGLXz)1;?Blb)Ipp-HygVVdN4_iCEtBAT?Vo1krnMBsK%p;G}?+~FEv)%gJ4k4E1A zfp?--t&#WCzz3dq(4-i13of$lMRV#csKY?oM80B-6>P>0ns)xR(6sV3_Gx9rIk+BQ z;YOs{7&-`fPD(NPIy?S$*mNwk$Nvo9pdGkoGK!JQf8%b#eK}<8$%4aK`0gNk-m*}P zPE)EWdkv>s8puPGinG*wST5Ans0($jUXSs@$mHQ=rx9;M{8Taip5UJ5A!W(s<7!B9 zG7!iE7N!MV&5316k+2J5*j(r*s3(teUGyxeQRgpl{llZ4I?i?4BY68mx5IPTnuSfs7=Qy)~~X^=o)&Gn!15dB<;_I?PL4E_K1zl3E$ zSc?Svo%h`W`t9@cj)n$#{@^EtgW)vfLNexY^Xr1N?xMAlu3z7PUg}`{%Gn6l;e+^zt_uOqC42!a-`FVj^kZF~doaRdcdPohO>N^da=!AuB zD^Ghq2kbPC$$v7{=fHrv(0EU@u7W?J^yahtN*|Rms5HyTjQ6!c`=VUu$cKDHND|kq zb$C6rKfb}yj`L);mfarWRU!I+FqGx^9(0z*T?)nc{3VlRND5R4p%;m93<-Lybw&M!RcYGKkS~Jq8Y{7h3LH3(i z;mqYfslfrGUyeGo78eR=$z{p+xdCjtV z4R>6SshQjrZKp||b`i1Zw7>NXFTSycx86qHlS8eHc6rw}>iGUk^J@8?W z)q1={>lb2f9!6hKzu2J{OY@X;|CxEoJn?*mKAHM+*uUJt&j+#s_~k2?6>Vz5$z#2^ zHp$MtCfd&KKyPes6?)?sY{;oMUK@<`2B88lhF_sKb`DCZH>T`CZ`=%VqrH(R^ajd> zzBn;*2l^rveesL`(igeti&I0?7c!wQUL3v>I33C+51PC{<|k; zdzQnlAM<)J(hn?z}#11??zcv+Xx z50M_g?p?PTJwSHWOnSYW-ZF+CgdVsSI37Ma+5;w_FHjGB_FsBnD>z%%!LwksXED#I z{i&^g+6O}WqwQ&}q4rntuQaK5#MMb_uK=@Vb+QV6&+jdfHcSN4^atFr0jV*4a!j7w zHE%Mka%=A?lyzRidGi;AssLP@ZD%XJ1|Nw1RqM)xQzNc!8zqZVttja z;V~%?l33-=iC+cIglQHqQ!ygtYxBhov9L^H(&8+O3dhv>1C?REq?N~b-y?Pu0I?<- zd&(W)0jive*CemW>SA7t0&ew{fHX9}L{tlee4x^dts@D&ay@*w2|g1ZOok=8YgWn3 z5=s3pfoXg>Z~*85l2?}t`{WA^`lP)# zb}f_VF@}@ZJFBf!A6-geO0g&;7VYnqa5%Gbb&ts%QQIZJPZ8G{d3pWiz%K^Wg8f`u zx41#%a3nR}*makDE|b~c!C_1=K1X#_1J^53o=Lhl|CP|-jRH&DG*jOP)xFauT&$Wl z{^EXqLO1PY^G=K8PRtoME}AdYPek8SU($Nbn3DP4$@}@g`9~xN(CRHCO5H+!KSKA1 z{s;dL<97!CCPFJh%W>}sG=wGfjkv!G{S}en=bf}_kHHCh{lc$cL%JMz2@4>A~ ztH93%RLrjecY$+2`?m-PCS{0!bL3^bT@-FiW(_a7b`;eC72zKKC0D7h@)z4nm33di zhabzYN6cv>cjEum@SU*nDx}}x+wng$EaR8+n^1~n;Z23)Bep!Obg+h(T^kEuKw0ks zEwd4CEn!7{4elm&$kD2#m(__Il=ULVR%j+Tl2#@q@XO%UB>DVOl;qs-orQlw zu49B;dpedDm%?@!^w;1Ouhh{f)L@QK151!ezu+z`E-L!ot9Eb=b>_kgqD;PXK2m8O zw&4HKVapOrNkQQ|0=FUs`{N&n$gVCvZrER5gB*>X z{bBfaJ{QmGM&caXoO58o`Bi`o&jwL(Vb6}K81wImM?=9??DK*OPP1~bJda4JbpoJkM3 zA-{unASV5~o1N5CvDOy5?iUrJyltk57NCRmGmjPZ_`&taTi*Rh36Z@wDX_=v;k>@9Kp^hsSRQw5h9T8G-5~ZTr=whxl~b;J$COS8vQY`n8uOqBlx_DB^Vl<5 zgZg}xVT`-cUoK0WvD4M9eIz--Quwps<_li6RbHtT{D1mR6r(?LTTWHdX-$cfN$!d5 zL9J137=!axo4w?v4dpA@eE8#JwXi78{<_?1*FSOD+UwQgbjBe@(Hh1dFIry?zjwYi zAfjFKT=b&vOWTlQ4DdNL*cHN%@CN^oU)doGp3AS;04ebYdmKr}AlZApxd}Vmdrd^Y zEpvZexz8q=)?IO`Pp&BKxhqZMF|CnXKEA;`Sy1q{tAIb;+;W4d;yjReX=}|>Jxm(L zAM*Unom`TM^_uHdu$=GG$mDLx)9n0c(|66JMap@`wcgdbui}2|R~1%_G*Rwd6`M_J zOS;A5Ew|}X7~c$};qx5yLQnQ2%R@?LoXcBzjWD*}a5vhp>&Xq48J0%tL?Er~_ZpjD z_0l+@F-7Bv?EGQ>%|g}{X4B)bmWGZ0#;FIDv8b&QxM2qPx#yodUju&mMDA&i(z(nI z9b!m8!&CmwYeCWHVsw;;wdosp*rW;lV={xv*rcsw(g)pNr?c+q=~53f?Hl(CLALq@ z(CU}HuN?d88If;+C??b5xqsV=;|$WiC-wbiamM6!)=>Uzx_e6jQHD&fNy+qXWonuY z7Shs4;FTHo4Xz(z{j4bQytvoQZrSX-QC*epx-Ts{6XQ-3%YO&km=#j?Ty-$I`tmax z+1qDJ2e9WpcR6|IdG ztF2R0m}y@3T%6Urv1ZK)vGbYq8=fz`-zC9!5#)_+l@dPtSnU7{iZk^B`5gET+`4a^ zT;3Ua8g{wXRrWt>x;>+*#OT-HgGlkeXTIdRj$&Tfyb34^`tYXM~MyX9>(_u(tXeUh|g}0 zv=^OuKJ^>}{oU*hgu^kx7QzSOdKZolJTs1;;ERnpSy9@vaIDBZ&Nnt@rYE^H?TH1p zIE&X>zf~#TSH65(Z2sQz>(7k!C5YlY9Tls~kyF}bdyf>Hcp!_jvDh=t9+FM~_H%g! zah}2fiA$ZS@`$mv0FQVu*D2P2?WHlb7PY(P0Y^&PZ4Y@_c#evU5t@rM(^Pyt|4D^} zZ!2e@i8KLcDn<_e+z2dC_x#bey5e*vYTs%*o0XJ~L-FD1^9iZWfqX)7OOqUx4%5gtedMYLpJ^kni_c zQ9kk{`l@5n-PgUBVX6Crn{s^u&wJcFKVdQS1yDZDcNCftdh4^c)z-W%`t`@3X?zUm zwYEn1P#nXGVZn>BwRQCdea+=9mp3rJ&7jl&;VuSxmY}z=2>zX2X}ZS8bx+9k>AK60 z-~WVnv^{9d-D(r)@#5*nW+Mlancd`e$17YCofFtK-8|eLb4?HgK2zo!Mq@6GN{KplP z-Z{kZxW~L5iF0W*j*7qOUFm!q+9}i;PmcV&Al|hMO0PM5D)08D@%glh9}GiAD&~)Q z;e!BsG;DT(X3e6tVDk^39AA@d24;~U)%S(pr9GE{mD=VeCD0b2=Yjv6(Z-9wk*h{J z2~HcnJdY6F&8VTg34V9sDsw!4suBo=nVb1(9&_b(S?0OBWZJV%>_{8;!pfnHb`Qq4 zy}Bcq%*dW*7sz^kHg$q8Ec;uZT$1eRY=yl9^n?pN9l-?cj#jdHek@eoD(hZ|J#M@C zf*W>x;9P$0VRf|bZNsj$zWbA)So^md%oA@mFNU7RVjgL$k&afrPBgcuVuML(c?Wyk z1j`&x9^^ZJFtaWu4X0Y5yoP7STIWD+s<@dRs9iH={$-;>DsriI$PY#NXleGenfbCC~mnw0XbvQa-egQyD1lNx0iv#w^92U{mom z<{0$kC*eqX_7e(Vy+Xo`)FKo@pL;fJZ6J{X!u9vwWd2+4t-4TJly;lV-oj>YGm|`O zJkNp)Z$A-Pe`7su6rQjcWM zhZWM^*eNXd`9#Ao>EF5|b%B?6*Og`}sXiEQhgOc=@H}f+?>c0=nII`iwVp@qJ{P|B zjPDvC)Wu{_R?fC-pbvZ{;KWLpRe z)QQkJ7=yF%p2rfczz(F#e(U0VF9k(uQ?-|2+fLNvo~h8wz@?hPXe)8gL3{1OeF)cL zTzm0*4=!U1&Y?P-b8n9o&bd;YbLB43{w2|s_`fo8#s$I)>S+Xx+V)I?j6Fv!&iN8J zHQAu1F=@~Ss4VX*h>Nq!+}tyZ4BvZ9&pa=jUZCxaxQvU+V8@JLCdrp>Zkokc2(#dE z&@$pq+LOaff@kXdUPXRnf2U#hGBVpChD}m;|TT_kB=n55gmjw21SG1{Qz| zDK6xE*#jr|CiJy2D3V8ChHOR!eHpaad8yf@_o+D2LMD4(Y9q8IP~H;lGRTq3`#u_* zWcLLg4U+z%+{B@#ovrc{4?}iEaqqzeJxNHw*2?0}^(taLzQD?$weO>Gli`6=?<+&f zCQc8Z8PkVox8w@H2~2!13|;vjy!8DFocp19gP1Dh9}c_^*(g1?x8x_k*u>V&0F?zQ zebVoOF-G=~xGrXCv_FQ6St6;+uKcojn^}5Z(z`HLygwZH75HNP-rb0|!XRyz716Vm zBP{IdSn{&yNU}@OuQc9hJW{!7C;1ZiXN*1`Ua*#eiq3;o^Hb2>-_yD})nJL%t$@ef z20QslyI_w(%|}9cl{L<90{;xr=|G0Mv>w-{aX`(_Oe;tx&o%c1^HaZqrU0e?u)w2| z!-FAY@Q~ky1EvA&&ZsMgx)MesW)}K{;!>SyZrDLT{u;>83iz?3Fa8#c`84Klw~$M1 zydRv5~|JcCiTDBsROg`6cr}`()6(pVqST4>vQ@irqUAitq~kEofw;$N|dH z$lms+<`#1l_I-CdS#>sflqJd4iNemk!N)RJy;O=dVa9P6%IWn|d(gb6{-m~`Ic#r< zS(;P1(aFxc(wt*|+qpVbwOHJnA0M^kr+pg^tPUG1wXI~qPje;?TyOgc@#0?Ztuae| zK|Tw*))XtaKZb25J(zz_!+JfR~wq@lE(I9nz`i!hsKg8Ys>0Ji zF(AJ5Id>F%>uN$CVJ)C?(w>)c{{}@#ft)GBmVF36^ZoLAq}GA7pG#qoJh!4@CO9EK=4Nx z+VLc)^S^*GM;_^Vfi?j2TRi!&^(68q`Dq0(Qz%|E{BA55QDTmIfdxqCIA7@tP4RqL zF>~};Yn&~bhc+q~w8}h7ik1{c*+0Q57H1XtHV&0UG*vm7r>Lm-CvTntlFJOkat~j^ z<`}FYTO4MT1?_FH%>!;#!rtT78OTlKn>w<`d<{M}($9-Dr<+B7Imh)6Jx)798fNTV zZNRcbB>txt~F@=_rAE#4LRXAk( zjCVMv*`_YV$oh~*){D4wC6kKD{^HnRP2Wnz>b@6aW3f`JaDt5=#rx8f7_0}q>9*rI zJ+ST(U{8i@)2%hm_~Q6VMV6}l9Ui($;H7iDmUsbG@B=~>q){t@PTgnxtLAvuc$~fA zJxjdJn}u;oG>E5MBsU^V^vU}O3*!U7Z_NW*$Ei=$Epa6xU>9y}!l;PvkS3mkb?^Z_ zc2o9c)DN~-JE2d_)(c3Jrr!mlOe4^3rST!!KLQL|`u_}Sqr`b!%nu4<(bxjC=BBL5 zPn`*i^_3T-3Fjsha=;PGtQ=o7V-~w#!0i!m1QeI5?Dun*EZZAls| zahDn~z7|5Cmu&C_OMq8w$)%kp36LxDDqrxi;zn~i5OO~pPCqtb>1*J~W>?O$(<+i} z|Ev|3OPF_m0TwSal3f|+Q$tIdnFN$XAlW`O_<-|WzbHoGfxp%vBQSW$zV1C&I1oSd z9od({kK;S6?G zo@Ce`6I#lX1p$M}jyIk$~eJM+K?&ByG|!#6X5g(OE_2L$Tw2k0M=wv?79 z{U2&est>in56GM7AhG}=Itad#h4;P|_ygfnmZlW>Dz`MfYfbU z;LZ{Cu^j%_{7-j-v7p@^>U$Bi8_+*06$WLyddc!+NpJqRSbNMr|4mWAHfzX+_8uG} zij#b!rSY_W-Wl%m-fCwmC+!{7e=PbfGTY)>I;8REz^y%yKx+s1)Hw0-?9LH*X)1$f zQlgiphvAtMR1WC{kjG~^`a+8wWOz4kSc+eX;p@VDn}Bq8A)m>(-&$wMFV(nVBj~Ma z&|7j7i?7~y$xqN)J_dFiKrH4vq~p%13fn5{TA3_h66sgKqnEO1gfLGrmenSzOWcX% zR_i3cn^7T#pQs(IGI8zi9j|2+AtNvwY=$Xg~oz|F*Z0|Et#via8l|x@QEsGiaqJ zgxZz>2ai&}9{P-bV03lQMgJDyR8s5CaT?)2Bn*788EBc=Be(M^d^vG|v^RjEJEX7`w*wXMyfaAcryF?!ZAR@yw9q27*|+Ft@U`GkPgA+MsY4of?qNP^36rM8{8w#CZNPe-x7+EQko&6yYI~W-c z(TLY|0zTmilWktuBaoz-kl0rZQjI=^cR8gl(MD^=vOzl4DTdT1X#B4n9iI=6j?W=H zTLOHFzJ(gdY&xVWo;ypcL1*aRZZ_i%wXUk-?2o5J_UECegyUpO!}|gYb%(^w=bPrm~EX46nAf66H1wjvNVQf+UDS16P|`gA;p@BsZON?4+im$l^24@xI0auV7|!71 zQI3_NinN@{q(U|%-Uxp~C}j+umW6J&jmO;>&cU7sq4FyaF2an6pAV zwpg$(2yt3b8X?8a2X-<&4cycg8Y2%Fq3w}5@dHU z-nu)OVBZtG+f*I=x#_cOl83~v$c?`D7~ko?(72NctB!p4_X#a#ktfn`@Cu!mhSQH3 zl9pUvp2PUQ8@$r|JtX0Q{N2IyvQ)lL6%p|wZS6h zN^{(qJ!ba&K6C8(SAxY_Ht+8VTg|To3ymk6m1k<8H?e+{!;90nxfi^`L2r$@|NJ1N zXg6@#7f~DIYz&K>6;|jvuP6HcBHD)9OkS*R8Eb>@!;06iOFSo6LZgj0V zbdmZn7j%lr90P)$=|-Y0G@ zDLt2;%CAH!#*{cvAvu(D#nG~oZ ze=S#<>3po?^U&8uq1UlrhPAD)4kR-Y;gn0K25VS0=cB$4lrmpXw%4-ABC*^D`A)cb zZ$XcHA%BRE>egW7=`iw)7g6*(Zf-UEJ#5a;FnYeBk}XW-^Vg7$#{_=o zqEm_4f~ORsIZuPHv5z!S7p5RaEwtfOh`~&$Moyc9?0k&u1#zvUz2jS-#+xxNv6_b4 znv*TrNc)m7#=&~Qx7%?x626_fUMMAOi1F<*?6Ae4cnMkXZ_Qbj`S|LGWu5G*rn)+sm*qPY)xj(yxQdxk zt_#nuK->&1T`HGmo#WXry=+Oo;D6-66A}9#DWpauJ*b5==o`>Tv{!yQ@?_Po&EGY% zb8`8Ui^|}ADyQn?qAUx`f87iuOT;)n;`3^=G_L-tN2_wG9!SVSiOJ5=x1KEquM+FU zVWeMUQ@3mb2YfwftX*NsS$%@?Wp(NnMlaf+(?N2Xb`n0)H#|{O&iKtD2KeiwS5XIj z9u^q!8-p{AbRH3xG~UnXH=<^ulGP8;JYpHfl=vLZyYHxMZ}RH*tO8#;n$Le&q}{oQ zw80sCPuQChe)Yo~o-x|h5AR%*4i6-DIwOz9T>UUB#0Q^ENAbT1i~WTh?M@SPq=&Tn zVUk(fO$m$Wt1+Wru|ismew={djxz~zF*+v*zvz4L!NRxlgXYsa)xl}#h3UpwI`w;u ze;VF5x@0XpX~ZDBJN$1=7+K4r(Wg6p@|4jRqBL7v>XwC={iGpQZqwo<7Y=w4vI?Q^ z5bAz{a*z1@pz_;){K5{zQi^{Gh=l@20R2t6M=4k(wR?64C)HvNuEv=F9Epdlz)iq) zd)da|ZF@EbXV-2F=2WA1Axr}PoH?X2t^7Q^iml3P6 zybSeLqu!{y(O4avQI@AOzPHd8X#t(9Iyh5})el-78!NY&a|G=QLGqf$rU50IdD;9D z_+AV+S&1fjK6)McVl|Z|_WY;WylvnQeS*_l6yH%<1l|vyCCG{ZmZRDcU%>&-O z;6Et&^UaXYrPbKXPjkIy5sj_}j4nI+b7SQTwy~P(NvE4lPs=hlx~3(Fd@|8Vd09T| zlSxlDGrd?I7Oq)!rP-Dc=Zw!6+wCWSs3{)AUK7O^SFW$zZdSIxkN>hWiItY8UxF5& z=4sl0JTCQnv|9TXegdr~&am0VOi@7>wux62|E}_N*VrIe9aa4KDua|e7tv|@Jgl$$ zHIr}A+gDeP^Mxfq{;>bxp&7-vR)Nld=NkE}%-og~ez7glEo&c_ndY95neL9yoZx1m zA;f1+buYs2yv%@yY*Qg;$0^?Lj?h_u34iO2Jlz-e3OXXc4Ku!A@JoalUkDQFPSF3P zInq8FuPA)RyZUJZ{Kv1Z3}JQbTO<`$#$&x1zvRX0Zy(L;z0tfPPyU@((`a7MS5XC8@cbmL z2;<=?D;)SLWOCl}lO<3bpvkISbTTH&2D8NuDa~tRuz&4D>`y{LXFjhJv`wh}@_r0E z!gA<+&9u;ybpB)PAv?nPLcC{Ebrx{PXa@s7<4#wEKBCb=l3Yp`)K%FyP(3@xomHk-q&tO${D~HpgIe^;Gag`hFY+jpP^eD}| z^_8MZOJ%I(7A)1d;JfH8q7KEUEpOT7j*}Qf*SlU2r`qZF-pWr_+_j0HY?%nw7R(qm_=lZ-VMK- zMf?=lrLj5PfnJ>5zVk?DjBPKt{MEhR-1521Z&~;w~PP~cnRTTg~;T@DnyvrQht}I!##sc2cs{2>1c~drY zZt=}eEmHXHW+&mlo#tqRFh_-S)FKn5LFqz{P^obuFC8QYR{J7)M(^Y;tna%4(xo`r z_tDR)=8vBS{Zk*aXu?Hi8qSIx<4b2O%r&RE#}#!!Z;DCl4m>~Lb~0JwPUshK`Gb-h z(=AhaWK8hHpZ(#|=rb(e6*w>wJfT2*^8eQzcyIt#by<>*80ZBOI??lG^q(;WPlUr& z%s;LdJ<7Bs7bDO7I&)1^Lgz80Bk7=YYDOYHl`1foj}8DcTEu3Kaf>n&+&i4G&#q^7 zGQLKv01R|N9~$)n6nP3gI6q_R@`Rd#{6Bokj5BY9);8KtUZ3A!Y{naAf!Z^zZ z{t4pCCTO$dBtTz?-Y_jGKelJ$PujC%_}}d*qxNLjbT!bM6Wz7WNK1V%NbS?>WuT$P z_->50f8^bt2GO3Qt^Uo(`5(hyjnFrq(Kdzd(7V2tZB005`-%o9L3g2UfU!TDtc3ov z7IUNml0GeLKPj9SRD+urg%t=V4tToh4X{C?&+u+mLrOc8MOh9MYrj+^lbFQ10NMO@n^N zRDS?_POv4-#}u?+tSNbp&$@{5#{=o0RK`!a==48-Uyl2w31Xi}Z0T`7G5*;6V-$0i zn_{H7pVYMY`|m65`MPZC1tw$Gg?UEf1#s!Iz=6ohac4OvVeC&GrvJL(;E6<>WV!+q z5fWuVN}hGYlS(6DhO8q6_as~-*JONu`YVMKAh)4hutMb|BE6LM@q%C5;E7mp8oC01 z9$|c~*yG+9`OvFG4t=mFR}^-^&ok0QKTs|btPPQD1-ks?!H>iVw0@u5GKOoGqL zU1ll2*8L`OZ$|ErXjr=fhllpy_rW1{ip^@|6~ZZISMkf{hdW`BQM%;9)p0N0@n-Lb zcWY6H=fYj^89lA+M!b4riERBSBI@(i4B2|&9L5wpD4WT8kT+*q z*IJKynJMX323D2D)<`*Ntywa}pycV+J>ExA4}QpAB*s%S>IbYj)NlUK!+1XTKkCQ$ z`bQorqEhD$6Ru5HAZw@#_C-=W=@?p3RD-(#^@Ml&K+4cPg53~}iHXzK!{=!kuf4du zVvu+}w;234fRTjMHn5G3gvXzeDW{mzMT)-#yLEO!-RoroW1r ziG4m%T^6%ouGAbz7;j&lqkkFd|NXoXCnEhdJ7C)E9nXpCnilOT$PS8rA{aPEPm54{v;3~JdG_!x7T zc7Z;uQ^XNLS+PPD-X{g$sQ5w`{8G`_f1`RP=3E!_BH-5-EixEdivK?hQj7P879;Ex z!rzCA5xy*hzX=s0+#!U&3h@YkA%ri6$Yb!jJ84#a9^yceX+fQK1>ERQvajy~9mry3 z#oiAac8b-CJMH0J@aaOQcq(@*N|J>%TSD~zppf#>P$t6rgz$k-I>N6D;l|JugkKfH zyF;`_?hwMSg>)q{ez*D0ooOYz&FL2<{;GnA-{Y=8)!_OcOIZ`jK#sp1{C8QO`LV1| zh9YHsXtb=WaW6#d`-GBq1#@bnmRx`x!t-TRa>ljvi$#ZTJ`po>-SxU0HrhR>JnBz# z4;{>$UteE;2T;-$Fib7(xx(6*%y%{^wwI?$>)7poEqSnB0*`KK>Zl#u_Slq@*V&pg zsTQ0P#n~NdNgbQr!6@rGuPOD8BypXjfpvVI#5IiV<>U!xA#Ig2lRAUDwl`U{N9Eni zgHxEUzz2iuZG6EZ_(YPqnd$u(AVnSh9q@42!`||XIZ@ro>v1)Sywt(I-oP+BxCXYj zMxs4{|FY;CwUu<5AZ>|vA!k%~9ET27Cs5f}2E{4x)gIFoxH{S@7X}U%i23Ut_O_)3 zg+VdA%ZO!PdAJ4@Qrf_Yb~5!lc-9il%kyM)QSiUIfs@y*!hI`8R-?;;WxGmyw#s## zg-2CKWW8H4M}BiBwKC`ftmR#SUjidw(?VMN4v)6~8v~%_hBzMBxGDGWd{CU%6?kpn zJ@b0L+arFx5N8L*w+!oi<(;(V?ieH=Or^dJ*b`nFE%Wp6cHIRpDKh+@KKcy)s;6V0 z=-XPY^oNbAL(9O!`w%DO{6Wku*nv5cKJ?3^`GeA%s)NjQGv3Bnp1Vkt2h9_jNoT7$ z2foc|G^;N{X66U7L7wV>d?#8IK4-;=HD+@UW~qnCH2Eg1=NzhoY~Edv2N5=g$ z=0L0rb`Fy{=!X6%x06@)%0$c#30b=;qzwvxb&;r7Db*en^}Z;52*1O(i+Z;x3h}!} zxm@U#j|Nyr4$l~jR;gbsg$?~w^jed69@~x9QlR%HVoyMgb5ZKy;GqH;dX90>DB4+2 z927s>(b>Sy@G?_>`pnbW?=|`MQoCfU4x+@?+r~1}*LPC?$^5L$)OTdP3YNJh-=^xn z0Mj%T)(q5s;u&PETU}j}eCkH^W2*fP1tv(o$8^GDm$ur%pjAZOg+n5FlI@f~EXogx z4fzE@Xt;|p>c(`k2FCZ;dJ(i*k?%}OFU_dh&-oT`NX00E&zglt(}cBy!OrwbkZAyo zn7N?;wxi;Dnv;z0PRw8GolVe=i1d>d{Z!STbyUk^HqEL}`s^C}5aXMV(Xk0y&KL_q zKRyNwpWg^;*b^9OOG90OiOb_Etr;n18(sSs=c_L@p%TBEE#|D z`Xs8)&l{P-14$|1N64vsk{vXrLEP1utz1)hgL<4d3$jaIB4&$XDrz{)c9?XDI(Rvr94VGe&L z0behU_MesiA}HQPbj+o|gW-KZOeh4+a|yQIcjEuO;an@$*d^~4^uktBe4BhWa!a`c zxqFLHR>p9*yYpI(o=SX+W>nOdpyZpaRCc8`Qu_ZK-&Ml+{{2&#}y9P9a(dBUIP9flcnlpC+8eNDJHVBF9o8(2MJ#Icbnbw zA8kf6qkBMg=x#ngn8{qZn$s}ban!45Kxy+?pwUvAJtIukxr<$}o^~)yUHsP%!s=ae zkufMPR`oA93e7<;wR~0o?Fhf{aryiR&E!k)tQVm> z=-Ik(6w-bK7W9__zlDy&CFoGn+Xyz|nUAN>$eHoQEX@zOx3SS>w{O`jpNIYZ4w6q1 zS1LkZ?S&qyjF)%N3GXqSc1(S5RND)QL-`0Ok*6=V_$~LX?EqbtnqjU|Pc9lO z*xRS=8+T%@|2Okr*|d9p?(Z+pCp-KHFczBe-+nr9k$GwwU8zF=v5;^U>WR{!M=(V@Vvz8q=A;Cl!_V zrJ^s=Mu29E8jgd0Rd+PK^?~Oz=3=~md`$d>#n;PbB_M@QU1N%3M!%5b3!N`)GWC2= zmJ8n6r9c?pijg*+noE6)?=<(EEV~rw$5Y1DG%p;cI#|v7qNT7hV0_jA7Km=!hM+mb zCxMT^`p&m93@adfL(U7Hh`j}z{3X$gAJDw1{-asp5&0e*W~L~YC`X@2JoXb<%kp+E zVsHE2dn*JzqOeGQ>v|Vq5j>SA*cjg{??%$S^?TvyZ(|Ge1aIGGX0ZZGy19GVoalQG znQyx9(HKuCE!)jN^3G-;#Zb4vE}>+*8FG!%0gw8`W-~NRdx1%Oexq5>%i8l(_X1NJ zaSVttBZx5~vTQXohzX1OCD3nP0zcPyR)=ShI72!z0NZ15xHIzIcLv4tR1=9(zLLQD zbi=?ww5j>**45T{@MuY6p7o`iXf!L&r`hgLsDm9|l5M5!t^}QRwN-5W&YQ%qv_&}^ z&4cG-ZDk32%uyb#jkS~|)R<$fm*7)*C4R+Pms#7rqVp=f!Fm>`WN8W8kWM1rDH76< z&fV6JN&nULE%>m(md}zW`#6bwwrX0gOEsA|uWZKwNL^I=Y%AWMV154@N-I*@;`v>z z+EQ4Jwx(g`GroC{XJrVXIl=s7y+@@t^4ahS`PZS#UcGIlX2RJh19x6;O}0$7in~|a z_CaGM3MC_7%5M*e;R#lsqQ%a3D(O?VCaJOPW7so2VEfejLGmOYC*EVe>`qIfeB{u| z?)3Z%=Ta)K4_7WEosuQcV&x6iD*;m|KUw54*f^)&ntNh%2BV#rLH0Djay~yEoI0$Y z#@rL;hsQdhOKB_tZq z$#%vjI>6S6eEmU2CxW#?GT|2Ya!vL{l!sgt4%=H)$Yr{Kzp&z7k-&qdQ73n4vzt~$ zc&G@^+L?qAo!N_7!nizGLqzaa7hf62v$L42K@XdEYos!nG@3ccO%iy*ei-ZA3d#U0 z3pDI$U*h=Dm&?qR48FgmP15FP%W4PhjnFMQcehA|nbK~||PP{K= z=VGjvFj)a0BqRx=AGwW=eo()B1vK=?e)6v_37?;whP415#lb}jcu0cGOupguwWul| zaB_T7Wdi@pWM!+Gmvp~umV2Uk=mX3Uwfbm=RlQ~oxU*sJNc$+s*;(IaXlF(Xdwi_> zqdw)bHvd}qs*CDmCTS$_&h<0N4bwOsJO+0LN}#_Rjh@dCBNt)*=?va;#79D znk@0VxO)r_dsL1xo~=th#MJ$+_%ocTQVwYju)d6-8ZuDmoV%sdGhh|L&epu5s+)il zjLG-v3o6GMrqyN}@ z+%Jzg=aSY->O~KGYJ?INnJN^ZgGOGTZc3BG1UH8GyiWx65D^IB2r zL3*wkkfcxcOa#VLWp%zUTvXKGt=M~YOh`5FZIt6Z?{5qjy}uJuxDHBgL4Olc*jmKq zY4&UCSl>60wxH!Pk|SeEyQAjn#zGNn-^ioNb63R<>Mgmek?&1XXGwQX;brgvsGiap z7#LDyQJlEWr(sR-A-C+>Sbb-}27bL{=N8Q8YeR&BNS;?Z1OEfQ@)kZO>$Z!86}6!M zt|Pk6@i>31S#0LTy=~$W{w#R(oq?j^Hm|JV1OH^M&aCZNz2pObj9Ak90c++xcwd5) za))J(WDTB4h=>2RSLPU>9n~Rr+*5q7M%4Q^iHWD@l;@I>-FW*)O{#^N{%GfT;7Tan zON-1r+uO$8N-Y+p-NN7Ii;oVE7 z6twt9+!@rgGjMbW78P@TtNy3=d-re6sHaHjjxR9*jpGzo#7E+M6sc!yr+eb`N&iP3 zQBMWc@g?l%&tZ(ejOz(pPvJ@iK9n6}zYrG#;WNYRSr-ofP&FQwL2;a-9O{H}twyxGuS0?a@f)02*h9n^F8YGe-TJ;v~k%YgEX z0XCVw=knv@>*QGXm)lsMIVcsrh&w8GsEkP!oL|L?X6<00+c21Vh^Wb&K-6ek5ggY6COvkZX)%yyN?XRT_z7zia%iw|Y6rILo6Y zuos{Gu4~NeyUnNkw~4B+e_Xv%Gtq#Ph-_akCt~{kR1FL#)H0^-&j}L8U(N9rXwdQd zU3q+?dA~~!?%yd_IO$5#&7?6HbrU+1P$n8>j)6%2%|}>1xq-@bGpGRDu4BWxE`n*z7DK#Pj*V`OL$!|lR-Ee zq8&#i;Z(*JtE8**lk=x89Q?viu)qdHN7-g(vY#n<>c`x|c*f7MH^xS;>J zqhC7}jui9v?r7uyRO5y=ST@}a8^0*xd19p;2~u4zdE-otH>%?v>4{s8G;-m)b@^Fu zj3cf`9@FiG&iGHhxD0BR5n8A-FbwVXlWx(~dxQ~HH3O}}N1cHK z!6^RDqMsEfnzoy(`Cp!oa$qfcj3`#%9cC}+Uy3%NH7(kHXQ0J^)TAq_wy6^GZ4cZw&qYC%>i)5+x}Cy_WEDA|x&e5A6ni z4-4Ec1!}dRf74-R3NvX|>2`1QF5{9O?~Ia2N}b@TM?2`->{gbjz1moOt$yfvFV*U^ zYid1CkEkj2+I|m>?wAG|-wo!y9->=W-y6f7fmWdn=yzuzBN!Pk`RLU+cpi!7A9O1O z&t#o}0`x&u|An_@!tY4@<#@KB|JkGeyu!F%nZ4&_@G2I}{`%-_hUo_10(#U~duiRp z9df8{gx^?4@9^6tal{>qaU8=4Ol_a?lQcC$wNBED>x9oGHa*wHYC8j(fk-{i2=yFW z8;5$1eJG|u=Kp;48%Z?6Sl^)^{i}5bo*SUvz8GkOpN%d2t@aqJzw8||TANFuy`Y&u zb2}z9#93hj{+C~&rB@v)!2jikSZHVd?s&vM8pE6nqh1Rm_4^me(H82UZ=nN^AlDWS z0Id(LEyby%Gtd#TLBl4cPrUFg;=-Vqw{WOV9F5qFohC6zQ}}M z`8c=qdQ8CP?Svm|CjD#AB=BZ1#%7Vlj0&TrDP$rHI^nk*zqdkOaN4cY<=K*~|Mb!s zuaE`L8hak}a)kCq85h08zsTRd)XFF0B=y$4<9u>S&@(M7TR?$=p9T|rBdHj}DmPFN zJjN`g2hY$gUCce{OFU}*t{`htQH&{&)-Pfg{5jM&04w!S;xlgw)L}w<7S{bqolhpq z-0KTc&aj?+1xX$36eh%(D92u}AxrL}eD-67qrCp^ebc{Ck~ocRpEK`Egv${YxBp^Z z2Tlj!+pc&YPnLRgus!%ERzovc6Kg$~XsY5MU;A zA=yAWkCjV-mXIo@C$#4XEx}Bi*s;k>EwPtcV)Fmp5+6}ZNE4_3*b)f;*b=jG{+cGc zKy+N#_+wkt{Io5i|D!FOXp5t0i+yN|L;s~Mo*QiouB2@h2mAox)DInWYBOU?e5!{`ds8i{wiw(kH=uASPBzc|yUQh&5(AR?D|T zQ%aI;IjvI`CtIhK#5py#4}zPGt8EhvvQCPJbrte50f({Xm&eWqH#3`CQ%dxL*J{T1 z`;gCD+P@JNjXF?W{WwjZyk^Qq3h;ok+9sNA3hHaIw_bzfE1!5XQ!cY{O)?0=wc$eiZcXB`Fwa}FR&YB>vd zCi7%O?oHL?g322@{C}6vb{g0rxSdx#T|2~I#3WHyZA(PS`s z15bqWQ#+ay44LhF{Av+6PBCF{{v*#c=LOU>_g&_3KqO<-XPu;v5bt89N~h*RI}dID zhdcPmJUi)A;%g|J$>(rq6@y--o(qXY>bakLXYyZq)A&9Onl{HA}VDmDs&Yb8z?$^f1Jn$~w zKr(W%z?EU?ttuQi3v?95hy8sp%E!TzLX=+|C2>S|16REv&T`z`eI|jw3q7W&8ws!@ zpkmU$@TBrv&`zB4PhQ1^fF_NfE0p2_v~IrBP^+MQl!t*(C1&=Uf74l@Ibxo9u^nrW z2%a=J!z4Fr80R?x?g=|R%0oV_qz(6@?C^G04j+KVct^5z2K410Mcq$=BK*!1spaRe zn~ZNLLrkrA9Qv`((=FUPJ>O%kB>u=FsU%mP<(cY?wD4YxcQ)-=w5{GK^G%eogR;Ox zNGC)xqDm56#c0#tYJh+=j8c@*w}tLVIme-#(D#S#KoUHfOWo(OmK66e$|QIf8{=8z zQ_HfusptL$-pp4hMH|M!xH>A8kH)6zEXD-zBB6=3C5r3a!X`jFM{Ize*Mej>J4<90 z&7ilrs6F&F=Qf*_;Nv|SOBxDN-$bbhIwGmC@}9si@@Zw%9#Th&^{uP*kb8?iZEtV1 z)fbHIfR~1y>`cZteqaNys}PT#CRN4}=($B&Z2rLAyuM;ZvaTE)C1^{mC_m-ZRTLLQ zb+XVpfek6@EjO~W51GR^FC1Z~e&ijG+y~tb3ncI=#@96PpRb zPT@(uO>E-^r8lzj&zQtkQ&7BMv$_9_{RA+afIo#fSQ6h#JaZ#)W)1rUT45)6()-Ll z@ca6RM_UT-)wT`%FJnm)g)nFnT;kj2OswTw`FXG<+tkF`*gDA8SBYLJt}ICgQ|1`> zzT3q+!hvToCQ3cx21&g(Goc;$?geq3iwmTuWz)nLGjU=O=1AC5PjtaJoF1h=rzq7W;5jB1E=#egxMp` zW^=eZ-Z5`>!Ap)V-$FC$4Rh#po=wxbs9-9rsq(B6?UZhIwtO0KAElj^f;Nqg;5ip)#lf7I-K1gf6q!Xq4rs4yy68OuXxle0c>gT zx1ot`We=F0B~EzMvW~4(6Rx=yNNtPMd!cxkE86zZ~l z!YqRQn~^u>5u)Fof*YQ<{BrSP%QVgE#N%dJ2TA_#V%VAIy^6`ooIWpMX8-$(7s9<> zk!q}%Z&p4O=1eBl_RsgxTNWwoa4=WODP7J@Ul0XB>62wWp$}gjVRe>rQF#R4W*o1qFjT03r2bdnu8W=dLKE*(SOF)=AiR3b!N#r7$OeT}elw@X{nLuc}b*!{Ti(8a-#nN`OqLr=fDpr2g zYD-YN(rvqqZE;cTHq@=LWG}%RBS^B}=e+Ms5~OuMpWXfAw{P;yd+z5s&w0){&wHNd zJujXtc+ShfDY~%X$%5S(EC|=ko4rOIRfe;(GoFC7WWbj%JCkE;K+bJ|A0uvFZuSMer_-SynQLo2bJb06om9TL@l%GfZw+sT z{S!1HuPE!jfw8D^*p<-L@jge^U_qTyO@;ggRlJ1`JCyI`RSm{Jy;hFM$C4Oj_DGwd z^`+KVlZz6Vq0M#An%}uyo@QA!PK5^N@uZPhhe_EZSveGp^vF3oD}#CQ1?Tlx zg=b}FjNCmv8>^Z-X*deoxHaI)vtFEqd)G(va{p!|S9x({o=rbeV7uq3#xsR=4Gzm0 zJyU7TTPG{D(J;HxQ1NX!7UtV+_Ukap;*RORo_&Vi79#+=BJv?*cH1ol;t{5%V{T5%A zb4E7YV*UQv{yTs@0TkflmhTi5vdwB_!^7y^>z2NXeQ~nlycw)a`N)HF3$Pc&Je?I} zX)hb28CGsxkHH>~DfqRE16ap$il?nru77m=9mV5pA+;>+U-IO#g!#k%L zbau9$zaPBteC|7VhBK(z*W_Kt93@E4sUE}IicjLZ16L1XUCdf|KI`mp2XcJiJfmcO z6>k<{j9u#-y`vdVgQFkfa9Hzf^BKkP`tU3#Qe?aenGkqlkLO(rY^DEb^eY8>f!!S+ zy@VaSm)^~3%5pAyPT7YQM1TDt-q68mahosFL!&scmGMWZ?@qJ5VE(LEc|d(?&=n{J z&v{pSUpoBAI~8_=ec)^rRpJc|oc+d65_j65BYkyvmv?wrIRuO0i&#GotoDA^D@@Q8 zjohj4f2Z7RYRwOhpEFz>zTTg=%&*44&AimZzj_ccV-Lo?KqFmngJOO<7+#t zH^U>tSYg-Tjb1+WJh*WtP6R$O^Hh#}F3uW+4X+vR4PpmgIlBk;Cj3=g?5pB5UbZDT zH;hu|)8h9B`Aqy(N3e>&zu0;4+^_k(q{B;KOMCI$E}XTs>PN{VS$Gd~y0hTfnHcR! z^Tl(=e!TG6i|3+aMX;a3dqSg2F7#Vx{EFA_i#YR;pFrOkEW?a<@tg@3YaF_5?2p4$ z&S91+H~b}J%5PcuB%TG%RVVMg=gRl?hRX+w0@*>O;?WT$+aKI$&lquJWQ?5X>CXEm z#@KwPC!_2HW4C)O)9HFPSMHtgKK{Xb`0T8MyyJKGP0oVg#dGH_9=xaUy}dr$XaeEa zdmHT6x2|*gy^oG$XFS^aV=KM34rkR^oFZ`X+<#m=7+4rMFs~dos0UjYww@YZf=nRijkH*K zWyoB(-Ajep`$XY=$;BoUa8%qubLSi`g0;pEM-0=Z4c-E3 zEe55=@g+^gM5EtHWPg3DJ^O*Lqm8tbMjuXKKLXMx^z?(?XwDh^7w^*&CI$aiOedeg)fx_Mr z>|*+Qmn^Nqn+Cedxt#6+wv7Ug6&d?}mptCDhwi4Jmqw?bHy<_^_K)O{{ydH1`LoD zX58oCUD=F%IJXuwG*xFW(Z5DZe=?YH|BJ);Mnqxm1*KqgSPwlNf8k@sM#JAe@h-mq zdu^uk)mI+B=a$U%?=O2Id;fen`ckPfkcvh>m&7}aN9|Z|8vxjPqObfvo$)4Z{kVVs}SS{Qf;XS7xXbZ{31W{+lOWa4`Sb8_Ac zl;g{ZkK_H6uOi1)*DVa-S)lNN%;mqS1%`&RHr>Dm#Uus`1AhqUM>F*Xe07(K%JH2< z$~=fKV}Eb%!l3bJ(V0K=?6bav?;-tL{@ltV&>X?m2)5^LJWcV*6pBfY{RiH$!+Kox z(y&RK&c73%sor|+SCfvsg?5}Pk+kLg1UjvS=^SqjDl1--vd=i=iyJhlS)7A{6~NEL!I#zK>a0f zxv<|ohchn##{jAH%JZt5!&6~Dg_|WjYbJA74o+aOnv}vvhKd5lKuIRy-Ikma8G&i7 zv|RuC^1^QG?xf9>Q+Qj=oT1sH<{2E5e{?y%@iQ$@6v&@%Y%Rtal=B0+pj+TEp`!(XZ?`^jv|!Yr6trIPES1y`UhO=BFAwT3%-rS+hIoh)fR@2JjSl%Yw}5t+P(NhOufJ75c)~`Og*x3Z*L#JI#dw zHMF;|m~)xl9KJ2H=IHmHdTaP<=W}S?^?~{GTZ31$R%Ol$C?{YsKXf}}`tH$wsa zf&Jk0eCH$J88rpRAHZ2SZwB-a-2#q&=M9XQBJgb3{V!|4uY=o6xNzzybD~QSp()gQ;g9ByS>qjq}l4l_hr~ta_|T( zoQ4z3W;josTl~?fbK_XwPM!M>zJ8ar@zgmXtx#A`cr+c+5#&pC*JYHVcwhEvTaEWh~q&+*P! zznN*3f^k|)imb_OU!*zhE_`$nKF>{;2syDAm9^GGfT%h*kn&4scX<>aK?C}&#AjdEBUi_3iF{iM=FmZ_*T;k@_Fq^nYC zW-2s`-JIsDM6*+FJj`9qZlj9NH7Pgh%}=>e@0^qy_0DBC*SlAtc`0|Ej^?vl;-9DT zgv5U)El7vYgxVVycQCvy;`MF!cKT!6I-=fg|ITo9`*Lrzy(bt7 z$KtVgcSZTO9o}fr8;Zxa)mz+kwGA!KGE;@SHx*psi$u6$mDd=5rVH~a^CyoP9xF^E z9vcF{V}Zv2^FH%@5rA{+kkf!%naE*8>vOTkb=^F6D9MEAN zU5j464n2y4;dz2Yc}3{c8_<7?L7SzZ$#N>ef^MQRDyRQ0C4Av12&Iu{TMZmLy-~l% z5BhXTI;g12_7MH#E;1JUB^kZA|LqsacsuSzyU7?s*w+C6JJ>V@yZup#4A>eSp)l?7 zqca%ubc#X0yr`?aq{y_StNnkN96N*2V5qaj8}fFAJ4<~3JEgY=JA-j1HtF<+jLa-! zcFwfiE2huL%lmKF*A;Awg45B#o~UnA)EkNTquXLp-!^p=M1rAiZv+*SqG0U+qZ`2F zMof~Zn}omw1ac=5Ol-xVBORg*c&X56$fG=ifXS|z%!ULdcxcE=K@+$I>|u9PZGE+9 z4s8#GcZNiqyHV7-KNX_Oga<>hxHshUs|DfrlX%S$jfSIQXEYc`ABlKaI2JZQq^S6t(U4r7_u;}jb1w=69 z^~Hlb{1RKST=;sTQGX~deBthHZ>YUm(1!9=o3~JXnaNZ}uJBHOw3)y1?C3>};1l8Y z$NX^wSfkwLa8EoPvdJ6w1=_=%=>Si-BhI5O6;SVub_GMCyrirIfHLa5vAAfCw0qHv zYEf<~uUKxXT3)t7d`?(;;(>6qS`=G^-QN}T1;aftQSS{cMmAfxI}$`wt3^Y2hY)2l zC&HakzhBh*yTj34XonE4E^jF0k6L>=I`F$I?vEkZT323a+q_xW0)F3iK^y8YU%oqWt0T~rf}`$O&M>oEGGt38KmLs$jk zq9fRai5|U#9ug7cjfu9Ncsv|pUYPJPlc)uMJUrm{#ziRnna_0jbI9#yFW9Q2q(t)w zdpP8$8o#$4Y!eEFxc1-{(b=A2k z)$*2TPl$O9)V?%`>bd5v!W9hzWf!xQ)eqWT8bbBnUSUBuclo1ed^jYEdqTl@tTa{* z&6WVlW#~yx)B#RF5`Qe6LQ7DA1b?CgQS4e9;c>a#%T=rs?zK^WJPIyI1vIUNcZa`A z^J_&`3Kt1CS=x6n3$%-3>)P&Ms3qp_>P@u%COKBa9U|%tb^1lIsRZo>!pNZm$`y(-d30-h6ak;C@L4K~??yxp*z+kl1 zG*WGYvymKbcca@wcJ~%{a|78L>+72vYHgOL+QtT=s(;WKs{!i)PCz{XBOxw;oY}UjD-MW z1Y@N$idg^zjt9IU;EL78#2lf~WfD_#g}v>iJt4kv)hkRDqK-tfx;!lJ3S&Ns`h6fq zbQi~0mQ|qrX_nH4Zp}_=M+S+HCFQsp2(wt>LhV>GIt8`$#4xExqG2EA zJA~wweI>&7Pq6N!BX$2zJwEsC#`Ivtg5=Ivbu7`V&Q3QcH0~+wnn?7rP*Cq4aq9d z(^i7TyHqW}8H{%GlB;QKtX#Exbz52aa$i-IZ$)`W#fp_! z@H`H8t);GIb7KR*=_G4ygT=k2#aUa2s@;|bkJI7SxSeiptZS}!G`VYSWNB_{bUR#) z?xq%3qi3?W$x-hjv}l9d;qkyx+tAcTUuNeH(EzEjh?0!i;d?Q(5JrM(qL!28tYw6EuLly+EZS#=TV%_3ta=2We5ZP)h^;UE<)7aq# z0&WK;(#E<=g6e^{%VOJzxCUqKh8D+W*~rpTvO!4O&eMlmiZ(1+)R$FOVc`m5((7G! z*@>y1=N~+Y36@8CA}nw~&_S4-M`d;xGDEB=-B2OgAe&4i$RSUc-yh+6QUZ8dhFyp= zZ$Mp)Vr22N9Gyeq?NndBnpn&cG4BqZR3J(COIRAh)Wnjn`cx<&r^g{|b_ZkKEYaqm z9c3n}3nF7fPj?$8%wS9|AX0pt6uz`t-d4-8!p=!rG4@%3H#Y%)T*o!&bull8oh^Y|kwDY+;Z0CWRl>LZSPMnM9W z4Q$~s$Rh<-_Cioi$*+(a_-P>=?|}e|8Jy+$0%1kZGgEPIK^UBps9QdVbnGk%M>{8G z?AcC5KKoPd3>wSQ73rT-#>aBTjAI!_Blbk_x=3H&{@y&*H<0Y(E18jzkx8%$NScHi zfv@EWTtgYz*_kvhB8Lt=)7KXfSs58wq@3(p(REUdNgk2~97<;7{0p3ZS4z?FGFrcP4=Apt==1AZEL&woTprVj@z>I51O%~}hB3)ATB#n6{V_!t| zFDq(lK!L8uMCp=qE-C|2j|!7{h5!=s8#s z=7d>fFx_=YN~&Q9nZO%m<4gxh!bsmUhn`7j*r9Od12tx}rY2HTGnz^UDyFbQ3@$Au znMmLus#II0Coz#{e<}|%7eFP}5Ys9}tW|lq_O_~d`u6q@^zYR$K$W<(qWexBLVhi# zukZMw{V5Ny#-%l3w6727q%r90150S_K}@>nNM9n7CcWhF6t!hxsnXcva%rSu&!Iyu z4beWAaHTLnBJ`G)41EVuCslqM;uhcn*ay}Ez^z5p5UMK zT!2A=6zWi^IkfjO^V8IzDYF&H@+1a4G4`jYB}w&~CslL~x%ym()b{nclH9`dWXA;< zFc~WpNwn_W+nP6|$E2fV^=HbV*}MDcN1oo@E61;)wZD}#x);0pUBwb-C22IuEc&5| zERXE&m3)+yG#Ct+NV()m^wlN=gSlUrht#qMgjo!zOvhB@%Ey@eZ=;XoTG9LV+iwSo zi;HKz0<-{oF>$0{T;ezPr{j6xQQE8a z7AD`fF$JrrpjD|kZxU5N6fIt*%7kB~%7kB~iu6xVMS6M6C~`7Wmsn$DKZf=3NFq%G zB$FvqG??N?MJc~laLPN8TuzP#kQ+1^+Pin}kji7|n7x>gpVZ_L^sAicB*$@kCVbqQ z2_Lsb`eX-AiQ?XsQF11T6i52iiIaO)_NyxTFbnYxlUr}&Re^#h-eGzF_x$_-os`Qp4oS``3FXd+B5TuUrxjzcLWXTYuNU z?Z*a)ywX3kD*tpMayo&cW+X@%g5R4EY5(b=UiKfB@u2D7wAQizS?M1l<*@31DCK{u z_2&zYCB%KH^j~k?z2MH2ALW0mbu1t8cguMA_jtdQ@BM=6pHA%8<$J#*?&5g%Cw%(+ zvM)vM)cpE^b9X<#X6*K3njfhqE~KAw&>AJ+PA5Kh3pnq|y z|5`FniO>H;f9s!3kH`h8WF*rm<7SzBJRxs)-1SSs_*j28{JEwDU)qHm&Ddjl`K~>t z;XS5bzWnpDclVgy_}71}cy^EJWLHIsI4W zs5R(XWeu5X?Mb<3=5UJ|OI?%0POdJ$7dr*K0TQR8Ko6e5P33`}YWYj@_Xf?K4#lPe z#0_~talc?ZiU0NEqpK)l`p6_c$`ieL!j!j+2208YOFzs1aKMW|j`}DM$&eUX)Ldm> zG8NvPcf;L#OYa^m)u)olLf}OpqL2W|)Lcmg)TyBaU1@u9&!F!1MGtiT+_LCfW?k)~ zz2++~eE%PZCi99uf%fan{Bv_F>>T!E9O?2Vep<ZQrov+ zX#FVvEf`9@ZDrGnhgk-o5elxj#Z)~46Pk28-h?`V52Me87OS! z*03Yw!^SzbVt9LlilCY-V*OW@aOFS?hN@wIWmO?zhR5u}PPeuL@(FvkZftw)DpB`P zv>b8=3Cb~62va?8!=Tr@v18w^ZM9h1!ck~pwK!Gp2rsVhzNs@l33wXt48T=qA&V7z zh#qXII_yH-d4(!Os|tJLa0zUGQ+*|Nkf0B$5Y1)6Q4|zX7YGfTLsi5{ZJSwh3nRWu z<%?5eNDKBvpob%Dp_3VVa?l2qc6ake&T_k0BJZ`@-G#f{0mA+kHAy9#R;E)^YhjO1 z>f$Cz!$ ztZk}(*A@(pYL*Ha&ZlYW zCdKilo>Wq38i)x6BVtqq-%U^yN;Rn6zk?iLP?U6Ah1x7w?Ls%zD{n#c2O@9wcZGey z_%2ew6FPt%U;s$PaRXF*#6QBt`VzU{<`A|rlMuY4ETB4G|FJ-*6fYB4cDcY6S|Bsr zM5$Gm4ZVEYm6uI>IkbT5TQT{y$M1>v%t*I8O3k zE)L!QNyQ<_f4R67pIjW0e7rcGfE>%qRFYNw=|Z@FB+ZcK6H56rsH98zWL#GM7jQwE zPr&8R@IV?Dr1@AWc1K;Ut+uh*BhtDn%)JfLMnq1#PN;>|=}=Bk>6yb5hfy8t4b+Kb z>a6Bg4K-BNuBssxjXiPLE3%?R=Cu1eyggm<*kvXqn6vP%y;y_||4;`tG|JU+3shG1 zUQ9%ua8C$p)JjviSW^TCEI)+RB%0X05@rXQqg-{Uu`)*HA=*BoGiLv*&R7aSTX}6s z*Qn0I6D!7)cG#ea?({>`q8j2r<;2SH34f{-8&vCItWq$X(UwE(s6eTbGT0#~WMl(X zQyijAUg%z+y{3+o1%^*n#R;X}<}xXy9{w`nk)9~1tkq|g20~m6s)wx+bmu%VL+xA# zePTnCfX1(3g9B^M6cZ!5)WnEO@Ii_RhI;%E{8aXUQYMACR&Kf;R>-9zCt9Uh4`}Qq zX}~L_CV}n*6=X(MWr`Gvs)|>*EX^JkR=ITo#$A4DZkU=5`e0~}MWc&VoSteJooM)4 zVJWL}j-#wvI9#?ykAPv@Mk-%b#lp*!u(I+hvO#6og;h@MkR}>bR#t@>kDxWD4Sv{? z1${JOruGTu9H^M>-N@x>CabpxEDFhoB?wjAU@WULKhZF=y9vzs~fh$I5M973Z;JD{ikF@1W4Mo_f zP<@z}fAolu0wF;JgtduQg<6$r453C(DwmyLoQ|--qT=_Xi7Z%Z^-PwLv|*zbFa?{b zlg6dP3oVyAJsx0w(1g3OiS>Ir0rrw8PDKq0POW;iv6{do$pT9!^sLreHrZigMoDc1 z!e>@*OVnE#SG3QH* zX)G2(5v#RJ;;7BKtmTw;hZ9q8YGzq9MfgmI3Ooy-!qlwE&k_ui3!Ny->TTP_k~Er} zc5apF*^o=kq)zxyh=Z|UfE5VFG1#SjBa9o1Vxq{G{wLULY}nv%V{nEe-~s}}MerB_ z8l>!@G-Y}Y;(A*^9Nc$l_s?ke)WpZ5N!H2MHC%*KHO-W!kg5q;jIH(}QU4B@#<7W? zU`xraFjvPtdTI0~Z#0C0s<|t>}<4_jYsC@&Lh zCi7f624)?rg$*WJGATbe*!*3wU{4G-7n)2UFhj6K9gfFpW4qfm!WZ=kV)J`n7*@7I z69LjfgkT8+e5)Y`OETG+DH{w?tVY~OAUIE|H{QHz6)Y6MUb3E8s$RCa41zzn>RPrt zVdnLqnYe3Z+rrUkPlW9gq&>B;xov3!4VdH=t3@tGzJeR^Qw+0eUk_fsfFWc-I@83X zA=r>;FiQn~V9vXN`Q<$LhJktOxCM8s3da%lf)&_bN-H*N?!jgOjEC8}km#eQi9Xl` z-l-*6ND`gF3pb5;d1oMl=q(+QqYVGNX#k`@X4R%zkq98XOvHH1cQdKjc%(quPWYoO zFyn$*9nTdOm=56?4V3Hbgw-2DU|BUaM3j;+!w%HSKbrt4JBvxPy&R2!U?(hQRM7?Z zwxE}dt_7RdfXdPqvRj%$ij6%S)+B$ypKLuC3xvaLs%Pu+!pP4jA7kL%7~zx~gYuV4 z;%O*Y3cKPo8f+(v)eDI`u+tI?a64UC&Dbmkg~d_EGL#^VV>Y(4K*QGf@tC@bwBgxy zCm0zccFMX`f~FL<`%$D{*d0y_Y`9uzV?+>2A{2wZzza&5Hz)&{3l++muMA}6D`w+W z%7AgYlE}_h%sF_OV;al?bI%i9@jmuJN69>6gc5mg(ZI~pl(-6~-_8CfqHBIdH0Kv& zo_8F3<1f;H_%RI>K8qKeo~D5%PtZWgcgS4vC|)k?C-aR5zz}~$=Gyxq>+ONCbvF&% z_5~W~_zN;p%BvxUsx-b#rln#uf(ixLAH$$Z>NiCrXurkE1{UPy_v*OB?XIb{A|7MYVXXy8L|`GpKHC0P67g>f4DV4TL! zj%#K(S~rlCNcbHARd9hEmNweaQnHZ852v@6Mw!Ncnnz{5lm(lBMW1DpWeZ!T z%XLLt6nKrJ`O2kypF^KpyY9B7H?A+e<<>RJmMq-HR$x9BsG>0Y_G0rZhosfiV*_hrXgqd%G~R*w@J-mG|AKF80tVnsq`nzGo8US_xrhWN7 zBM&`ZS~dY*0bn*E-Y5PoU;uCm&<6M#;32?T02Ui!%@GzL8UuU^-~&7k_-DX#fS&-o zfFA%B0l03w;zCwHJpeNk4FO;qKv;_KZXVVmKsJE!cmQxMfXkl`7}5NPamTVnj{(*J z-UfUDPz7Mzxg4&a+qfI>N5D4#5y15TEPvDj_&k8|Uk$h)@T%r!I(anrd$@C6E{F4c z8SoEFcZM}w*q)=?*?#QzOMiC0to2V4MfnM_;8={~@%03+aLfF581FdiQPxLnTnIA9dOcs~yifUg6XZrmpBx4#9v z31AvCKimd*3osAB<@*85S6>7$4zmFLfB?V@U|hxlCjkjSJpe0_Y;zgznHtQ-opJpK z0LLE!{1ng%_&tDe9spovleqIY+<-mE^7=}mhbz#_U>(;|$Wb8Y;6kF8K#IQyn)Yi9 z$ip<`K3V1aw{@@MJG!^+|LpqLF}8y%zgre4SXlA&j9C?df`=d{XU!3u1`8OZj^Go9oZz-~c zzuR7%8JG$AS-W5bR9u|$Ox*j}WNgv}(17uD+^ZgIk|54w#s=j=_>BE|xU)Z|#XzY&P zHqPduh-(yl#n&RUywMi*ZvKjT?|V_be>y4eiQOd@!ZmoMPu_R`(}VKv|HUu(E?W9^ zR@~p-QL~co4}WzozKcTUKYYXVFz$P=d+GUCaj(4o{q4E76rR+7@{5})ci8B7LudD~ z$8B`u{jLA9`LxZv=Sc7TCuZAS|MB}*|7Gq*`vWKHGk-anuzzsV>6dlOkJz97=4-ob zy=UwhsAvx0F93zhO-ls@y6VW^(dlq*AX8a+MP=2Bm8(`;tTu?RlLEYLK8UqM2ks~1 z7r#Kp*YK|M%wLc(_y!p>-Xi1S^JKiWUNPQ!yJD<8tr(A8sWUEKt254b=!_S)WBrX` z9ggdaUgUiU`HmrdeHWiK4n%OV3YI|uTX@0t^1O(F-{2i{#OIk2n84n_70A(|7}3{a3+hMU`f*tF{TOeGH#dLL+Rk|a zQ?H5V`tw-LaE`@|oNm$R95d&?0&Z0|KR*6}@`0kdxrFicWe%ZE+~~cF zI^!&y5&Ik5+5bOz?Ewv#9JWs=^#AwxFXAkno!?XGH;6OGQ)8LWtN(M5>Zep6DbPaO OYHR-twLU4H=sy7+G;N9i literal 0 HcmV?d00001 diff --git a/PRE COMPILED FIRMWARES/ENDER_3_SKR_MNI_E3_V3_CR_BL_TOUCH/config.ini b/PRE COMPILED FIRMWARES/ENDER_3_SKR_MNI_E3_V3_CR_BL_TOUCH/config.ini index 9bdcef6..7ad107b 100644 --- a/PRE COMPILED FIRMWARES/ENDER_3_SKR_MNI_E3_V3_CR_BL_TOUCH/config.ini +++ b/PRE COMPILED FIRMWARES/ENDER_3_SKR_MNI_E3_V3_CR_BL_TOUCH/config.ini @@ -2,7 +2,7 @@ # Marlin Firmware # config.ini - Options to apply before the build # -# Generated by Marlin build on 2023-10-26 at 04:39:55 +# Generated by Marlin build on 2023-11-01 at 16:25:54 # [config:base] @@ -15,6 +15,7 @@ auto_bed_leveling_bilinear = on babystep_zprobe_offset = on bang_max = 255 baudrate = 115200 +bedsize_220x220x250 = on bed_maxtemp = 125 bed_mintemp = 5 bed_overshoot = 10 @@ -30,7 +31,7 @@ bltouch = on busy_while_heating = on cooler_overshoot = 2 cr10_stockdisplay = on -custom_machine_name = "Ender-3 SKR Mini E3 V3 - Marlin 2.1.2.1" +custom_machine_name = "Ender-3 SKR Mini E3 - Marlin 2.1.2.1" custom_status_screen_image = on default_acceleration = 1000 default_axis_steps_per_unit = { 80, 80, 400, 97 } @@ -53,16 +54,17 @@ disable_x = false disable_y = false disable_z = false display_charset_hd44780 = JAPANESE +drivers_tmc2209 = on +drivers_tmc2209_e = on dummy_thermistor_998_value = 25 dummy_thermistor_999_value = 100 -e0_auto_fan_pin = -1 +e0_auto_fan_pin = FAN1_PIN e0_driver_type = TMC2209 eeprom_auto_init = on eeprom_boot_silent = on eeprom_chitchat = on eeprom_settings = on enable_leveling_fade_height = on -ender_3_skr_mni_e3_v3_cr_bl_touch = on endstoppullups = on extruders = 1 extrude_maxlength = 200 @@ -71,7 +73,10 @@ e_enable_on = 0 fan_soft_pwm = on grid_max_points_x = 3 grid_max_points_y = GRID_MAX_POINTS_X -heater_0_maxtemp = 275 +has_bl_cr_touch = on +has_standard_motors = on +has_z_probe = on +heater_0_maxtemp = 285 heater_0_mintemp = 5 homing_feedrate_mm_m = { (20*60), (20*60), (4*60) } host_keepalive_feature = on @@ -167,6 +172,7 @@ temp_sensor_redundant = 0 temp_window = 1 thermal_protection_bed = on thermal_protection_hotends = on +thermistor_01 = on use_probe_for_z_homing = on use_xmin_plug = on use_ymin_plug = on @@ -179,7 +185,7 @@ x_driver_type = TMC2209 x_enable_on = 0 x_home_dir = -1 x_max_endstop_inverting = false -x_max_pos = 235 +x_max_pos = X_BED_SIZE x_min_endstop_inverting = false x_min_pos = 0 y_bed_size = 220 @@ -187,7 +193,7 @@ y_driver_type = TMC2209 y_enable_on = 0 y_home_dir = -1 y_max_endstop_inverting = false -y_max_pos = 235 +y_max_pos = Y_BED_SIZE y_min_endstop_inverting = false y_min_pos = 0 z_clearance_between_probes = 5 diff --git a/PRE COMPILED FIRMWARES/ENDER_3_SKR_MNI_E3_V3_CR_BL_TOUCH/firmware.bin b/PRE COMPILED FIRMWARES/ENDER_3_SKR_MNI_E3_V3_CR_BL_TOUCH/firmware.bin index 4c13f5955aba6ac8934746000764ae3fc7bae1a6..3f0f5d1f9bde5b7e5ccf6ec4ccba613ebad2c289 100644 GIT binary patch delta 52799 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 XJ-SDm^4~L_S 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 Bed Temperature Control ====================== +//=========================================================================== + +/** + * PID Bed Heating + * + * If this option is enabled set PID constants below. + * If this option is disabled, bang-bang will be used and BED_LIMIT_SWITCHING will enable hysteresis. + * + * The PID frequency will be the same as the extruder PWM. + * If PID_dT is the default, and correct for the hardware/configuration, that means 7.689Hz, + * which is fine for driving a square wave into a resistive load and does not significantly + * impact FET heating. This also works fine on a Fotek SSR-10DA Solid State Relay into a 250W + * heater. If your configuration is significantly different than this and you don't understand + * the issues involved, don't use bed PID until someone else verifies that your hardware works. + * @section bed temp + */ +#define PIDTEMPBED + +//#define BED_LIMIT_SWITCHING + +/** + * Max Bed Power + * Applies to all forms of bed control (PID, bang-bang, and bang-bang with hysteresis). + * When set to any value below 255, enables a form of PWM to the bed that acts like a divider + * so don't use it unless you are OK with PWM on your bed. (See the comment on enabling PIDTEMPBED) + */ +#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current + +#if ENABLED(PIDTEMPBED) + //#define MIN_BED_POWER 0 + //#define PID_BED_DEBUG // Print Bed PID debug data to the serial port. + + // 120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) + // from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10) + #define DEFAULT_bedKp 10.00 + #define DEFAULT_bedKi .023 + #define DEFAULT_bedKd 305.4 + + // FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles. +#endif // PIDTEMPBED + +#if ANY(PIDTEMP, PIDTEMPBED) + //#define PID_OPENLOOP // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX + //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay + #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature + // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + + #define PID_EDIT_MENU // Add PID editing to the "Advanced Settings" menu. (~700 bytes of flash) + #define PID_AUTOTUNE_MENU // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of flash) +#endif + +// @section safety + +/** + * Prevent extrusion if the temperature is below EXTRUDE_MINTEMP. + * Add M302 to set the minimum extrusion temperature and/or turn + * cold extrusion prevention on and off. + * + * *** IT IS HIGHLY RECOMMENDED TO LEAVE THIS OPTION ENABLED! *** + */ +#define PREVENT_COLD_EXTRUSION +#define EXTRUDE_MINTEMP 170 + +/** + * Prevent a single extrusion longer than EXTRUDE_MAXLENGTH. + * Note: For Bowden Extruders make this large enough to allow load/unload. + */ +#define PREVENT_LENGTHY_EXTRUDE +#define EXTRUDE_MAXLENGTH 200 + +//=========================================================================== +//======================== Thermal Runaway Protection ======================= +//=========================================================================== + +/** + * Thermal Protection provides additional protection to your printer from damage + * and fire. Marlin always includes safe min and max temperature ranges which + * protect against a broken or disconnected thermistor wire. + * + * The issue: If a thermistor falls out, it will report the much lower + * temperature of the air in the room, and the the firmware will keep + * the heater on. + * + * If you get "Thermal Runaway" or "Heating failed" errors the + * details can be tuned in Configuration_adv.h + */ + +#define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders +#define THERMAL_PROTECTION_BED // Enable thermal protection for the heated bed + +//=========================================================================== +//============================= Mechanical Settings ========================= +//=========================================================================== + +// @section machine + +// Enable one of the options below for CoreXY, CoreXZ, or CoreYZ kinematics, +// either in the usual order or reversed +//#define COREXY +//#define COREXZ +//#define COREYZ +//#define COREYX +//#define COREZX +//#define COREZY +//#define MARKFORGED_XY // MarkForged. See https://reprap.org/forum/read.php?152,504042 +//#define MARKFORGED_YX + +// Enable for a belt style printer with endless "Z" motion +//#define BELTPRINTER + +//=========================================================================== +//============================== Endstop Settings =========================== +//=========================================================================== + +// @section endstops + +// Specify here all the endstop connectors that are connected to any endstop or probe. +// Almost all printers will be using one per axis. Probes will use one or more of the +// extra connectors. Leave undefined any used for non-endstop and non-probe purposes. +#define USE_XMIN_PLUG +#define USE_YMIN_PLUG +#define USE_ZMIN_PLUG +//#define USE_IMIN_PLUG +//#define USE_JMIN_PLUG +//#define USE_KMIN_PLUG +//#define USE_UMIN_PLUG +//#define USE_VMIN_PLUG +//#define USE_WMIN_PLUG +//#define USE_XMAX_PLUG +//#define USE_YMAX_PLUG +//#define USE_ZMAX_PLUG +//#define USE_IMAX_PLUG +//#define USE_JMAX_PLUG +//#define USE_KMAX_PLUG +//#define USE_UMAX_PLUG +//#define USE_VMAX_PLUG +//#define USE_WMAX_PLUG + +// Enable pullup for all endstops to prevent a floating state +#define ENDSTOPPULLUPS +#if DISABLED(ENDSTOPPULLUPS) + // Disable ENDSTOPPULLUPS to set pullups individually + //#define ENDSTOPPULLUP_XMIN + //#define ENDSTOPPULLUP_YMIN + //#define ENDSTOPPULLUP_ZMIN + //#define ENDSTOPPULLUP_IMIN + //#define ENDSTOPPULLUP_JMIN + //#define ENDSTOPPULLUP_KMIN + //#define ENDSTOPPULLUP_UMIN + //#define ENDSTOPPULLUP_VMIN + //#define ENDSTOPPULLUP_WMIN + //#define ENDSTOPPULLUP_XMAX + //#define ENDSTOPPULLUP_YMAX + //#define ENDSTOPPULLUP_ZMAX + //#define ENDSTOPPULLUP_IMAX + //#define ENDSTOPPULLUP_JMAX + //#define ENDSTOPPULLUP_KMAX + //#define ENDSTOPPULLUP_UMAX + //#define ENDSTOPPULLUP_VMAX + //#define ENDSTOPPULLUP_WMAX + //#define ENDSTOPPULLUP_ZMIN_PROBE +#endif + +// Enable pulldown for all endstops to prevent a floating state +//#define ENDSTOPPULLDOWNS +#if DISABLED(ENDSTOPPULLDOWNS) + // Disable ENDSTOPPULLDOWNS to set pulldowns individually + //#define ENDSTOPPULLDOWN_XMIN + //#define ENDSTOPPULLDOWN_YMIN + //#define ENDSTOPPULLDOWN_ZMIN + //#define ENDSTOPPULLDOWN_IMIN + //#define ENDSTOPPULLDOWN_JMIN + //#define ENDSTOPPULLDOWN_KMIN + //#define ENDSTOPPULLDOWN_UMIN + //#define ENDSTOPPULLDOWN_VMIN + //#define ENDSTOPPULLDOWN_WMIN + //#define ENDSTOPPULLDOWN_XMAX + //#define ENDSTOPPULLDOWN_YMAX + //#define ENDSTOPPULLDOWN_ZMAX + //#define ENDSTOPPULLDOWN_IMAX + //#define ENDSTOPPULLDOWN_JMAX + //#define ENDSTOPPULLDOWN_KMAX + //#define ENDSTOPPULLDOWN_UMAX + //#define ENDSTOPPULLDOWN_VMAX + //#define ENDSTOPPULLDOWN_WMAX + //#define ENDSTOPPULLDOWN_ZMIN_PROBE +#endif + +// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup). +#define X_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define Y_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define Z_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define I_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define J_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define K_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define U_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define V_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define W_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define X_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define Y_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define Z_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define I_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define J_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define K_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define U_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define V_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define W_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define Z_MIN_PROBE_ENDSTOP_INVERTING false // Set to true to invert the logic of the probe. + +// Enable this feature if all enabled endstop pins are interrupt-capable. +// This will remove the need to poll the interrupt pins, saving many CPU cycles. +//#define ENDSTOP_INTERRUPTS_FEATURE + +/** + * Endstop Noise Threshold + * + * Enable if your probe or endstops falsely trigger due to noise. + * + * - Higher values may affect repeatability or accuracy of some bed `s. + * - To fix noise install a 100nF ceramic capacitor in parallel with the switch. + * - This feature is not required for common micro-switches mounted on PCBs + * based on the Makerbot design, which already have the 100nF capacitor. + * + * :[2,3,4,5,6,7] + */ +//#define ENDSTOP_NOISE_THRESHOLD 2 + +// Check for stuck or disconnected endstops during homing moves. +//#define DETECT_BROKEN_ENDSTOP + +//============================================================================= +//============================== Movement Settings ============================ +//============================================================================= +// @section motion + +/** + * Default Settings + * + * These settings can be reset by M502 + * + * Note that if EEPROM is enabled, saved values will override these. + */ + +/** + * With this option each E stepper can have its own factors for the + * following movement settings. If fewer factors are given than the + * total number of extruders, the last value applies to the rest. + */ +#define DISTINCT_E_FACTORS + +/** + * Default Axis Steps Per Unit (linear=steps/mm, rotational=steps/°) + * Override with M92 + * X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]] + */ + +// Default is { 80, 80, 400, 93 }, changed to 97 as it's more true to most Ender steppers - DELICIOUS +//#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 97 } + +/** + * Default Max Feed Rate (linear=mm/s, rotational=°/s) + * Override with M203 + * X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]] + */ +#define DEFAULT_MAX_FEEDRATE { 500, 500, 5, 25 } + +//#define LIMITED_MAX_FR_EDITING // Limit edit via M203 or LCD to DEFAULT_MAX_FEEDRATE * 2 +#if ENABLED(LIMITED_MAX_FR_EDITING) + #define MAX_FEEDRATE_EDIT_VALUES { 600, 600, 10, 50 } // ...or, set your own edit limits +#endif + +/** + * Default Max Acceleration (speed change with time) (linear=mm/(s^2), rotational=°/(s^2)) + * (Maximum start speed for accelerated moves) + * Override with M201 + * X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]] + */ +// Default is { 500, 500, 100, 5000 } - DELICIOUS +// Could potentially go higher to { 3000, 3000, 100, 10000 } - DELICIOUS +#define DEFAULT_MAX_ACCELERATION { 2000, 2000, 100, 10000 } + +#define LIMITED_MAX_ACCEL_EDITING // Limit edit via M201 or LCD to DEFAULT_MAX_ACCELERATION * 2 +#if ENABLED(LIMITED_MAX_ACCEL_EDITING) + #define MAX_ACCEL_EDIT_VALUES { 6000, 6000, 200, 20000 } // ...or, set your own edit limits +#endif + +/** + * Default Acceleration (speed change with time) (linear=mm/(s^2), rotational=°/(s^2)) + * Override with M204 + * + * M204 P Acceleration + * M204 R Retract Acceleration + * M204 T Travel Acceleration + */ + +// Default for all 3 (DEFAULT_ACCELERATION, DEFAULT_RETRACT_ACCELERATION, DEFAULT_TRAVEL_ACCELERATION) is 500 - DELICIOUS +// Can possibly be as high as 3000 for each - DELICIOUS +#define DEFAULT_ACCELERATION 1000 // X, Y, Z and E acceleration for printing moves +#define DEFAULT_RETRACT_ACCELERATION 500 // E acceleration for retracts +#define DEFAULT_TRAVEL_ACCELERATION 2000 // X, Y, Z acceleration for travel (non printing) moves + +/** + * Default Jerk limits (mm/s) + * Override with M205 X Y Z . . . E + * + * "Jerk" specifies the minimum speed change that requires acceleration. + * When changing speed and direction, if the difference is less than the + * value set here, it may happen instantaneously. + */ +//#define CLASSIC_JERK +#if ENABLED(CLASSIC_JERK) + #define DEFAULT_XJERK 10.0 + #define DEFAULT_YJERK 10.0 + #define DEFAULT_ZJERK 0.3 + //#define DEFAULT_IJERK 0.3 + //#define DEFAULT_JJERK 0.3 + //#define DEFAULT_KJERK 0.3 + //#define DEFAULT_UJERK 0.3 + //#define DEFAULT_VJERK 0.3 + //#define DEFAULT_WJERK 0.3 + + //#define TRAVEL_EXTRA_XYJERK 0.0 // Additional jerk allowance for all travel moves + + //#define LIMITED_JERK_EDITING // Limit edit via M205 or LCD to DEFAULT_aJERK * 2 + #if ENABLED(LIMITED_JERK_EDITING) + #define MAX_JERK_EDIT_VALUES { 20, 20, 0.6, 10 } // ...or, set your own edit limits + #endif +#endif + +#define DEFAULT_EJERK 5.0 // May be used by Linear Advance + +/** + * Junction Deviation Factor + * + * See: + * https://reprap.org/forum/read.php?1,739819 + * https://blog.kyneticcnc.com/2018/10/computing-junction-deviation-for-marlin.html + */ +#if DISABLED(CLASSIC_JERK) + #define JUNCTION_DEVIATION_MM 0.08 // (mm) Distance from real junction edge + #define JD_HANDLE_SMALL_SEGMENTS // Use curvature estimation instead of just the junction angle + // for small segments (< 1mm) with large junction angles (> 135°). +#endif + +/** + * S-Curve Acceleration + * + * This option eliminates vibration during printing by fitting a Bézier + * curve to move acceleration, producing much smoother direction changes. + * + * See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained + */ +//#define S_CURVE_ACCELERATION + +//=========================================================================== +//============================= Z Probe Options ============================= +//=========================================================================== +// @section probes + +// +// See https://marlinfw.org/docs/configuration/probes.html +// + +/** + * Enable this option for a probe connected to the Z-MIN pin. + * The probe replaces the Z-MIN endstop and is used for Z homing. + * (Automatically enables USE_PROBE_FOR_Z_HOMING.) + */ +//#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN + +// Force the use of the probe for Z-axis homing +#define USE_PROBE_FOR_Z_HOMING + +/** + * Z_MIN_PROBE_PIN + * + * Define this pin if the probe is not connected to Z_MIN_PIN. + * If not defined the default pin for the selected MOTHERBOARD + * will be used. Most of the time the default is what you want. + * + * - The simplest option is to use a free endstop connector. + * - Use 5V for powered (usually inductive) sensors. + * + * - RAMPS 1.3/1.4 boards may use the 5V, GND, and Aux4->D32 pin: + * - For simple switches connect... + * - normally-closed switches to GND and D32. + * - normally-open switches to 5V and D32. + */ +//#define Z_MIN_PROBE_PIN 32 // Pin 32 is the RAMPS default + +/** + * Probe Type + * + * Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc. + * Activate one of these to use Auto Bed Leveling below. + */ + +/** + * The "Manual Probe" provides a means to do "Auto" Bed Leveling without a probe. + * Use G29 repeatedly, adjusting the Z height at each point with movement commands + * or (with LCD_BED_LEVELING) the LCD controller. + */ +//#define PROBE_MANUALLY + +/** + * A Fix-Mounted Probe either doesn't deploy or needs manual deployment. + * (e.g., an inductive probe or a nozzle-based probe-switch.) + */ +//#define FIX_MOUNTED_PROBE + +/** + * Use the nozzle as the probe, as with a conductive + * nozzle system or a piezo-electric smart effector. + */ +//#define NOZZLE_AS_PROBE + +/** + * Z Servo Probe, such as an endstop switch on a rotating arm. + */ +//#define Z_PROBE_SERVO_NR 0 // Defaults to SERVO 0 connector. +//#define Z_SERVO_ANGLES { 70, 0 } // Z Servo Deploy and Stow angles + +/** + * The BLTouch probe uses a Hall effect sensor and emulates a servo. + */ +//#define BLTOUCH + +/** + * MagLev V4 probe by MDD + * + * This probe is deployed and activated by powering a built-in electromagnet. + */ +//#define MAGLEV4 +#if ENABLED(MAGLEV4) + //#define MAGLEV_TRIGGER_PIN 11 // Set to the connected digital output + #define MAGLEV_TRIGGER_DELAY 15 // Changing this risks overheating the coil +#endif + +/** + * Touch-MI Probe by hotends.fr + * + * This probe is deployed and activated by moving the X-axis to a magnet at the edge of the bed. + * By default, the magnet is assumed to be on the left and activated by a home. If the magnet is + * on the right, enable and set TOUCH_MI_DEPLOY_XPOS to the deploy position. + * + * Also requires: BABYSTEPPING, BABYSTEP_ZPROBE_OFFSET, Z_SAFE_HOMING, + * and a minimum Z_HOMING_HEIGHT of 10. + */ +//#define TOUCH_MI_PROBE +#if ENABLED(TOUCH_MI_PROBE) + #define TOUCH_MI_RETRACT_Z 0.5 // Height at which the probe retracts + //#define TOUCH_MI_DEPLOY_XPOS (X_MAX_BED + 2) // For a magnet on the right side of the bed + //#define TOUCH_MI_MANUAL_DEPLOY // For manual deploy (LCD menu) +#endif + +// A probe that is deployed and stowed with a solenoid pin (SOL1_PIN) +//#define SOLENOID_PROBE + +// A sled-mounted probe like those designed by Charles Bell. +//#define Z_PROBE_SLED +//#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. + +// A probe deployed by moving the x-axis, such as the Wilson II's rack-and-pinion probe designed by Marty Rice. +//#define RACK_AND_PINION_PROBE +#if ENABLED(RACK_AND_PINION_PROBE) + #define Z_PROBE_DEPLOY_X X_MIN_POS + #define Z_PROBE_RETRACT_X X_MAX_POS +#endif + +/** + * Magnetically Mounted Probe + * For probes such as Euclid, Klicky, Klackender, etc. + */ +//#define MAG_MOUNTED_PROBE +#if ENABLED(MAG_MOUNTED_PROBE) + #define PROBE_DEPLOY_FEEDRATE (133*60) // (mm/min) Probe deploy speed + #define PROBE_STOW_FEEDRATE (133*60) // (mm/min) Probe stow speed + + #define MAG_MOUNTED_DEPLOY_1 { PROBE_DEPLOY_FEEDRATE, { 245, 114, 30 } } // Move to side Dock & Attach probe + #define MAG_MOUNTED_DEPLOY_2 { PROBE_DEPLOY_FEEDRATE, { 210, 114, 30 } } // Move probe off dock + #define MAG_MOUNTED_DEPLOY_3 { PROBE_DEPLOY_FEEDRATE, { 0, 0, 0 } } // Extra move if needed + #define MAG_MOUNTED_DEPLOY_4 { PROBE_DEPLOY_FEEDRATE, { 0, 0, 0 } } // Extra move if needed + #define MAG_MOUNTED_DEPLOY_5 { PROBE_DEPLOY_FEEDRATE, { 0, 0, 0 } } // Extra move if needed + #define MAG_MOUNTED_STOW_1 { PROBE_STOW_FEEDRATE, { 245, 114, 20 } } // Move to dock + #define MAG_MOUNTED_STOW_2 { PROBE_STOW_FEEDRATE, { 245, 114, 0 } } // Place probe beside remover + #define MAG_MOUNTED_STOW_3 { PROBE_STOW_FEEDRATE, { 230, 114, 0 } } // Side move to remove probe + #define MAG_MOUNTED_STOW_4 { PROBE_STOW_FEEDRATE, { 210, 114, 20 } } // Side move to remove probe + #define MAG_MOUNTED_STOW_5 { PROBE_STOW_FEEDRATE, { 0, 0, 0 } } // Extra move if needed +#endif + +// Duet Smart Effector (for delta printers) - https://bit.ly/2ul5U7J +// When the pin is defined you can use M672 to set/reset the probe sensitivity. +//#define DUET_SMART_EFFECTOR +#if ENABLED(DUET_SMART_EFFECTOR) + #define SMART_EFFECTOR_MOD_PIN -1 // Connect a GPIO pin to the Smart Effector MOD pin +#endif + +/** + * Use StallGuard2 to probe the bed with the nozzle. + * Requires stallGuard-capable Trinamic stepper drivers. + * CAUTION: This can damage machines with Z lead screws. + * Take extreme care when setting up this feature. + */ +//#define SENSORLESS_PROBING + +/** + * Nozzle-to-Probe offsets { X, Y, Z } + * + * X and Y offset + * Use a caliper or ruler to measure the distance from the tip of + * the Nozzle to the center-point of the Probe in the X and Y axes. + * + * Z offset + * - For the Z offset use your best known value and adjust at runtime. + * - Common probes trigger below the nozzle and have negative values for Z offset. + * - Probes triggering above the nozzle height are uncommon but do exist. When using + * probes such as this, carefully set Z_CLEARANCE_DEPLOY_PROBE and Z_CLEARANCE_BETWEEN_PROBES + * to avoid collisions during probing. + * + * Tune and Adjust + * - Probe Offsets can be tuned at runtime with 'M851', LCD menus, babystepping, etc. + * - PROBE_OFFSET_WIZARD (configuration_adv.h) can be used for setting the Z offset. + * + * Assuming the typical work area orientation: + * - Probe to RIGHT of the Nozzle has a Positive X offset + * - Probe to LEFT of the Nozzle has a Negative X offset + * - Probe in BACK of the Nozzle has a Positive Y offset + * - Probe in FRONT of the Nozzle has a Negative Y offset + * + * Some examples: + * #define NOZZLE_TO_PROBE_OFFSET { 10, 10, -1 } // Example "1" + * #define NOZZLE_TO_PROBE_OFFSET {-10, 5, -1 } // Example "2" + * #define NOZZLE_TO_PROBE_OFFSET { 5, -5, -1 } // Example "3" + * #define NOZZLE_TO_PROBE_OFFSET {-15,-10, -1 } // Example "4" + * + * +-- BACK ---+ + * | [+] | + * L | 1 | R <-- Example "1" (right+, back+) + * E | 2 | I <-- Example "2" ( left-, back+) + * F |[-] N [+]| G <-- Nozzle + * T | 3 | H <-- Example "3" (right+, front-) + * | 4 | T <-- Example "4" ( left-, front-) + * | [-] | + * O-- FRONT --+ + */ +//#define NOZZLE_TO_PROBE_OFFSET { -40, -8, 0 } + +// Most probes should stay away from the edges of the bed, but +// with NOZZLE_AS_PROBE this can be negative for a wider probing area. +#define PROBING_MARGIN 10 + +// X and Y axis travel speed (mm/min) between probes +// Default value is 133*60 - DELICIOUS +#define XY_PROBE_FEEDRATE (200*60) + +// Feedrate (mm/min) for the first approach when double-probing (MULTIPLE_PROBING == 2) +// Default value is 4*60 - DELICIOUS +#define Z_PROBE_FEEDRATE_FAST (8*60) + +// Feedrate (mm/min) for the "accurate" probe of each point +#define Z_PROBE_FEEDRATE_SLOW (Z_PROBE_FEEDRATE_FAST / 2) + +/** + * Probe Activation Switch + * A switch indicating proper deployment, or an optical + * switch triggered when the carriage is near the bed. + */ +//#define PROBE_ACTIVATION_SWITCH +#if ENABLED(PROBE_ACTIVATION_SWITCH) + #define PROBE_ACTIVATION_SWITCH_STATE LOW // State indicating probe is active + //#define PROBE_ACTIVATION_SWITCH_PIN PC6 // Override default pin +#endif + +/** + * Tare Probe (determine zero-point) prior to each probe. + * Useful for a strain gauge or piezo sensor that needs to factor out + * elements such as cables pulling on the carriage. + */ +//#define PROBE_TARE +#if ENABLED(PROBE_TARE) + #define PROBE_TARE_TIME 200 // (ms) Time to hold tare pin + #define PROBE_TARE_DELAY 200 // (ms) Delay after tare before + #define PROBE_TARE_STATE HIGH // State to write pin for tare + //#define PROBE_TARE_PIN PA5 // Override default pin + #if ENABLED(PROBE_ACTIVATION_SWITCH) + //#define PROBE_TARE_ONLY_WHILE_INACTIVE // Fail to tare/probe if PROBE_ACTIVATION_SWITCH is active + #endif +#endif + +/** + * Probe Enable / Disable + * The probe only provides a triggered signal when enabled. + */ +//#define PROBE_ENABLE_DISABLE +#if ENABLED(PROBE_ENABLE_DISABLE) + //#define PROBE_ENABLE_PIN -1 // Override the default pin here +#endif + +/** + * Multiple Probing + * + * You may get improved results by probing 2 or more times. + * With EXTRA_PROBING the more atypical reading(s) will be disregarded. + * + * A total of 2 does fast/slow probes with a weighted average. + * A total of 3 or more adds more slow probes, taking the average. + */ +//#define MULTIPLE_PROBING 2 +//#define EXTRA_PROBING 1 + +/** + * Z probes require clearance when deploying, stowing, and moving between + * probe points to avoid hitting the bed and other hardware. + * Servo-mounted probes require extra space for the arm to rotate. + * Inductive probes need space to keep from triggering early. + * + * Use these settings to specify the distance (mm) to raise the probe (or + * lower the bed). The values set here apply over and above any (negative) + * probe Z Offset set with NOZZLE_TO_PROBE_OFFSET, M851, or the LCD. + * Only integer values >= 1 are valid here. + * + * Example: `M851 Z-5` with a CLEARANCE of 4 => 9mm from bed to nozzle. + * But: `M851 Z+1` with a CLEARANCE of 2 => 2mm from bed to nozzle. + */ +#define Z_CLEARANCE_DEPLOY_PROBE 10 // Z Clearance for Deploy/Stow +#define Z_CLEARANCE_BETWEEN_PROBES 5 // Z Clearance between probe points +#define Z_CLEARANCE_MULTI_PROBE 5 // Z Clearance between multiple probes +//#define Z_AFTER_PROBING 5 // Z position after probing is done + +#define Z_PROBE_LOW_POINT -2 // Farthest distance below the trigger-point to go before stopping + +// For M851 give a range for adjusting the Z probe offset +#define Z_PROBE_OFFSET_RANGE_MIN -20 +#define Z_PROBE_OFFSET_RANGE_MAX 20 + +// Enable the M48 repeatability test to test probe accuracy +#define Z_MIN_PROBE_REPEATABILITY_TEST + +// Before deploy/stow pause for user confirmation +//#define PAUSE_BEFORE_DEPLOY_STOW +#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW) + //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe +#endif + +/** + * Enable one or more of the following if probing seems unreliable. + * Heaters and/or fans can be disabled during probing to minimize electrical + * noise. A delay can also be added to allow noise and vibration to settle. + * These options are most useful for the BLTouch probe, but may also improve + * readings with inductive probes and piezo sensors. + */ +//#define PROBING_HEATERS_OFF // Turn heaters off when probing +#if ENABLED(PROBING_HEATERS_OFF) + //#define WAIT_FOR_BED_HEATER // Wait for bed to heat back up between probes (to improve accuracy) + //#define WAIT_FOR_HOTEND // Wait for hotend to heat back up between probes (to improve accuracy & prevent cold extrude) +#endif +//#define PROBING_FANS_OFF // Turn fans off when probing +//#define PROBING_ESTEPPERS_OFF // Turn all extruder steppers off when probing +//#define PROBING_STEPPERS_OFF // Turn all steppers off (unless needed to hold position) when probing (including extruders) +//#define DELAY_BEFORE_PROBING 200 // (ms) To prevent vibrations from triggering piezo sensors + +// Require minimum nozzle and/or bed temperature for probing +//#define PREHEAT_BEFORE_PROBING +#if ENABLED(PREHEAT_BEFORE_PROBING) + #define PROBING_NOZZLE_TEMP 120 // (°C) Only applies to E0 at this time + #define PROBING_BED_TEMP 50 +#endif + +// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1 +// :{ 0:'Low', 1:'High' } +#define X_ENABLE_ON 0 +#define Y_ENABLE_ON 0 +#define Z_ENABLE_ON 0 +#define E_ENABLE_ON 0 // For all extruders +//#define I_ENABLE_ON 0 +//#define J_ENABLE_ON 0 +//#define K_ENABLE_ON 0 +//#define U_ENABLE_ON 0 +//#define V_ENABLE_ON 0 +//#define W_ENABLE_ON 0 + +// Disable axis steppers immediately when they're not being stepped. +// WARNING: When motors turn off there is a chance of losing position accuracy! +#define DISABLE_X false +#define DISABLE_Y false +#define DISABLE_Z false +//#define DISABLE_I false +//#define DISABLE_J false +//#define DISABLE_K false +//#define DISABLE_U false +//#define DISABLE_V false +//#define DISABLE_W false + +// Turn off the display blinking that warns about possible accuracy reduction +//#define DISABLE_REDUCED_ACCURACY_WARNING + +// @section extruder + +#define DISABLE_E false // Disable the extruder when not stepping +//#define DISABLE_INACTIVE_EXTRUDER // Keep only the active extruder enabled + +// @section motion + +// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way. + +#if ENABLED(ENDER_3_SKR_MNI_E3_V3_CR_BL_TOUCH) || ENABLED(ENDER_3_SKR_MNI_E3_V3_Z_SWITCH) + #define INVERT_X_DIR true + #define INVERT_Y_DIR true + #define INVERT_Z_DIR false +#elif ENABLED(DELICIOUS_PRINTER) || ENABLED(ENDER_3_427_CR_BL_TOUCH) || ENABLED(ENDER_3_422_CR_BL_TOUCH) || ENABLED(ENDER_3_427_CR_BL_TOUCH_SPRITE_EXTRUDER) || ENABLED(ENDER_3_422_CR_BL_TOUCH_SPRITE_EXTRUDER) || ENABLED(ENDER_3_427_CR_BL_TOUCH_WITH_THERMISTOR_61) || ENABLED(ENDER_3_422_CR_BL_TOUCH_WITH_THERMISTOR_61) || ENABLED(ENDER_3_427_Z_SWITCH) || ENABLED(ENDER_3_422_Z_SWITCH) // EVERYTHING ELSE - DELICIOUS + #define INVERT_X_DIR false + #define INVERT_Y_DIR false + #define INVERT_Z_DIR true +#endif +//#define INVERT_X_DIR false +//#define INVERT_Y_DIR false +//#define INVERT_Z_DIR true +//#define INVERT_I_DIR false +//#define INVERT_J_DIR false +//#define INVERT_K_DIR false +//#define INVERT_U_DIR false +//#define INVERT_V_DIR false +//#define INVERT_W_DIR false + +// @section extruder + +// For direct drive extruder v9 set to true, for geared extruder set to false. +#if ENABLED(ENDER_3_SKR_MNI_E3_V3_CR_BL_TOUCH) || ENABLED(ENDER_3_SKR_MNI_E3_V3_Z_SWITCH) + #define INVERT_E0_DIR true +#elif ENABLED(DELICIOUS_PRINTER) || ENABLED(ENDER_3_427_CR_BL_TOUCH) || ENABLED(ENDER_3_422_CR_BL_TOUCH) || ENABLED(ENDER_3_427_CR_BL_TOUCH_SPRITE_EXTRUDER) || ENABLED(ENDER_3_422_CR_BL_TOUCH_SPRITE_EXTRUDER) || ENABLED(ENDER_3_427_CR_BL_TOUCH_WITH_THERMISTOR_61) || ENABLED(ENDER_3_422_CR_BL_TOUCH_WITH_THERMISTOR_61) || ENABLED(ENDER_3_427_Z_SWITCH) || ENABLED(ENDER_3_422_Z_SWITCH) // EVERYTHING ELSE - DELICIOUS + #define INVERT_E0_DIR false +#endif +//#define INVERT_E0_DIR false +#define INVERT_E1_DIR false +#define INVERT_E2_DIR false +#define INVERT_E3_DIR false +#define INVERT_E4_DIR false +#define INVERT_E5_DIR false +#define INVERT_E6_DIR false +#define INVERT_E7_DIR false + +// @section homing + +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed. Also enable HOME_AFTER_DEACTIVATE for extra safety. +//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated. Also enable NO_MOTION_BEFORE_HOMING for extra safety. + +/** + * Set Z_IDLE_HEIGHT if the Z-Axis moves on its own when steppers are disabled. + * - Use a low value (i.e., Z_MIN_POS) if the nozzle falls down to the bed. + * - Use a large value (i.e., Z_MAX_POS) if the bed falls down, away from the nozzle. + */ +//#define Z_IDLE_HEIGHT Z_HOME_POS + +//#define Z_HOMING_HEIGHT 4 // (mm) Minimal Z height before homing (G28) for Z clearance above the bed, clamps, ... + // Be sure to have this much clearance over your Z_MAX_POS to prevent grinding. + +//#define Z_AFTER_HOMING 10 // (mm) Height to move to after homing Z + +// Direction of endstops when homing; 1=MAX, -1=MIN +// :[-1,1] +#define X_HOME_DIR -1 +#define Y_HOME_DIR -1 +#define Z_HOME_DIR -1 +//#define I_HOME_DIR -1 +//#define J_HOME_DIR -1 +//#define K_HOME_DIR -1 +//#define U_HOME_DIR -1 +//#define V_HOME_DIR -1 +//#define W_HOME_DIR -1 + +// @section geometry + +// The size of the printable area +//Defaults - DELICIOUS +//#define X_BED_SIZE 220 +//#define Y_BED_SIZE 220 + +// Travel limits (linear=mm, rotational=°) after homing, corresponding to endstop positions. +//#define X_MIN_POS 0 +//#define Y_MIN_POS 0 +//#define Z_MIN_POS 0 +// Default, #define X_MAX_POS X_BED_SIZE - DELICIOUS +//#define X_MAX_POS 235 +//#define Y_MAX_POS 235 +//#define Z_MAX_POS 250 +//#define I_MIN_POS 0 +//#define I_MAX_POS 50 +//#define J_MIN_POS 0 +//#define J_MAX_POS 50 +//#define K_MIN_POS 0 +//#define K_MAX_POS 50 +//#define U_MIN_POS 0 +//#define U_MAX_POS 50 +//#define V_MIN_POS 0 +//#define V_MAX_POS 50 +//#define W_MIN_POS 0 +//#define W_MAX_POS 50 + +/** + * Software Endstops + * + * - Prevent moves outside the set machine bounds. + * - Individual axes can be disabled, if desired. + * - X and Y only apply to Cartesian robots. + * - Use 'M211' to set software endstops on/off or report current state + */ + +// Min software endstops constrain movement within minimum coordinate bounds +#define MIN_SOFTWARE_ENDSTOPS +#if ENABLED(MIN_SOFTWARE_ENDSTOPS) + #define MIN_SOFTWARE_ENDSTOP_X + #define MIN_SOFTWARE_ENDSTOP_Y + #define MIN_SOFTWARE_ENDSTOP_Z + #define MIN_SOFTWARE_ENDSTOP_I + #define MIN_SOFTWARE_ENDSTOP_J + #define MIN_SOFTWARE_ENDSTOP_K + #define MIN_SOFTWARE_ENDSTOP_U + #define MIN_SOFTWARE_ENDSTOP_V + #define MIN_SOFTWARE_ENDSTOP_W +#endif + +// Max software endstops constrain movement within maximum coordinate bounds +#define MAX_SOFTWARE_ENDSTOPS +#if ENABLED(MAX_SOFTWARE_ENDSTOPS) + #define MAX_SOFTWARE_ENDSTOP_X + #define MAX_SOFTWARE_ENDSTOP_Y + #define MAX_SOFTWARE_ENDSTOP_Z + #define MAX_SOFTWARE_ENDSTOP_I + #define MAX_SOFTWARE_ENDSTOP_J + #define MAX_SOFTWARE_ENDSTOP_K + #define MAX_SOFTWARE_ENDSTOP_U + #define MAX_SOFTWARE_ENDSTOP_V + #define MAX_SOFTWARE_ENDSTOP_W +#endif + +#if EITHER(MIN_SOFTWARE_ENDSTOPS, MAX_SOFTWARE_ENDSTOPS) + //#define SOFT_ENDSTOPS_MENU_ITEM // Enable/Disable software endstops from the LCD +#endif + +/** + * Filament Runout Sensors + * Mechanical or opto endstops are used to check for the presence of filament. + * + * IMPORTANT: Runout will only trigger if Marlin is aware that a print job is running. + * Marlin knows a print job is running when: + * 1. Running a print job from media started with M24. + * 2. The Print Job Timer has been started with M75. + * 3. The heaters were turned on and PRINTJOB_TIMER_AUTOSTART is enabled. + * + * RAMPS-based boards use SERVO3_PIN for the first runout sensor. + * For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc. + */ +//#define FILAMENT_RUNOUT_SENSOR +#if ENABLED(FILAMENT_RUNOUT_SENSOR) + #define FIL_RUNOUT_ENABLED_DEFAULT true // Enable the sensor on startup. Override with M412 followed by M500. + #define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each. + + #define FIL_RUNOUT_STATE LOW // Pin state indicating that filament is NOT present. + #define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins. + //#define FIL_RUNOUT_PULLDOWN // Use internal pulldown for filament runout pins. + //#define WATCH_ALL_RUNOUT_SENSORS // Execute runout script on any triggering sensor, not only for the active extruder. + // This is automatically enabled for MIXING_EXTRUDERs. + + // Override individually if the runout sensors vary + //#define FIL_RUNOUT1_STATE LOW + //#define FIL_RUNOUT1_PULLUP + //#define FIL_RUNOUT1_PULLDOWN + + //#define FIL_RUNOUT2_STATE LOW + //#define FIL_RUNOUT2_PULLUP + //#define FIL_RUNOUT2_PULLDOWN + + //#define FIL_RUNOUT3_STATE LOW + //#define FIL_RUNOUT3_PULLUP + //#define FIL_RUNOUT3_PULLDOWN + + //#define FIL_RUNOUT4_STATE LOW + //#define FIL_RUNOUT4_PULLUP + //#define FIL_RUNOUT4_PULLDOWN + + //#define FIL_RUNOUT5_STATE LOW + //#define FIL_RUNOUT5_PULLUP + //#define FIL_RUNOUT5_PULLDOWN + + //#define FIL_RUNOUT6_STATE LOW + //#define FIL_RUNOUT6_PULLUP + //#define FIL_RUNOUT6_PULLDOWN + + //#define FIL_RUNOUT7_STATE LOW + //#define FIL_RUNOUT7_PULLUP + //#define FIL_RUNOUT7_PULLDOWN + + //#define FIL_RUNOUT8_STATE LOW + //#define FIL_RUNOUT8_PULLUP + //#define FIL_RUNOUT8_PULLDOWN + + // Commands to execute on filament runout. + // With multiple runout sensors use the %c placeholder for the current tool in commands (e.g., "M600 T%c") + // NOTE: After 'M412 H1' the host handles filament runout and this script does not apply. + #define FILAMENT_RUNOUT_SCRIPT "M600" + + // After a runout is detected, continue printing this length of filament + // before executing the runout script. Useful for a sensor at the end of + // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead. + //#define FILAMENT_RUNOUT_DISTANCE_MM 25 + + #ifdef FILAMENT_RUNOUT_DISTANCE_MM + // Enable this option to use an encoder disc that toggles the runout pin + // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM + // large enough to avoid false positives.) + //#define FILAMENT_MOTION_SENSOR + #endif +#endif + +//=========================================================================== +//=============================== Bed Leveling ============================== +//=========================================================================== +// @section calibrate + +/** + * Choose one of the options below to enable G29 Bed Leveling. The parameters + * and behavior of G29 will change depending on your selection. + * + * If using a Probe for Z Homing, enable Z_SAFE_HOMING also! + * + * - AUTO_BED_LEVELING_3POINT + * Probe 3 arbitrary points on the bed (that aren't collinear) + * You specify the XY coordinates of all 3 points. + * The result is a single tilted plane. Best for a flat bed. + * + * - AUTO_BED_LEVELING_LINEAR + * Probe several points in a grid. + * You specify the rectangle and the density of sample points. + * The result is a single tilted plane. Best for a flat bed. + * + * - AUTO_BED_LEVELING_BILINEAR + * Probe several points in a grid. + * You specify the rectangle and the density of sample points. + * The result is a mesh, best for large or uneven beds. + * + * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) + * A comprehensive bed leveling system combining the features and benefits + * of other systems. UBL also includes integrated Mesh Generation, Mesh + * Validation and Mesh Editing systems. + * + * - MESH_BED_LEVELING + * Probe a grid manually + * The result is a mesh, suitable for large or uneven beds. (See BILINEAR.) + * For machines without a probe, Mesh Bed Leveling provides a method to perform + * leveling in steps so you can manually adjust the Z height at each grid-point. + * With an LCD controller the process is guided step-by-step. + */ +//#define AUTO_BED_LEVELING_3POINT +//#define AUTO_BED_LEVELING_LINEAR +//#define AUTO_BED_LEVELING_BILINEAR +//#define AUTO_BED_LEVELING_UBL +//#define MESH_BED_LEVELING + +/** + * Normally G28 leaves leveling disabled on completion. Enable one of + * these options to restore the prior leveling state or to always enable + * leveling immediately after G28. + */ +//#define RESTORE_LEVELING_AFTER_G28 +//#define ENABLE_LEVELING_AFTER_G28 + +/** + * Auto-leveling needs preheating + */ +//#define PREHEAT_BEFORE_LEVELING +#if ENABLED(PREHEAT_BEFORE_LEVELING) + #define LEVELING_NOZZLE_TEMP 120 // (°C) Only applies to E0 at this time + #define LEVELING_BED_TEMP 50 +#endif + +/** + * Bed Distance Sensor + * + * Measures the distance from bed to nozzle with accuracy of 0.01mm. + * For information about this sensor https://github.com/markniu/Bed_Distance_sensor + * Uses I2C port, so it requires I2C library markyue/Panda_SoftMasterI2C. + */ +//#define BD_SENSOR + +/** + * Enable detailed logging of G28, G29, M48, etc. + * Turn on with the command 'M111 S32'. + * NOTE: Requires a lot of PROGMEM! + */ +//#define DEBUG_LEVELING_FEATURE + +#if ANY(MESH_BED_LEVELING, AUTO_BED_LEVELING_UBL, PROBE_MANUALLY) + // Set a height for the start of manual adjustment + #define MANUAL_PROBE_START_Z 0.2 // (mm) Comment out to use the last-measured height +#endif + +#if ANY(MESH_BED_LEVELING, AUTO_BED_LEVELING_BILINEAR, AUTO_BED_LEVELING_UBL) + /** + * Gradually reduce leveling correction until a set height is reached, + * at which point movement will be level to the machine's XY plane. + * The height can be set with M420 Z + */ + #define ENABLE_LEVELING_FADE_HEIGHT + #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT) + #define DEFAULT_LEVELING_FADE_HEIGHT 10.0 // (mm) Default fade height. + #endif + + /** + * For Cartesian machines, instead of dividing moves on mesh boundaries, + * split up moves into short segments like a Delta. This follows the + * contours of the bed more closely than edge-to-edge straight moves. + */ + #define SEGMENT_LEVELED_MOVES + #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one) + + /** + * Enable the G26 Mesh Validation Pattern tool. + */ + //#define G26_MESH_VALIDATION + #if ENABLED(G26_MESH_VALIDATION) + #define MESH_TEST_NOZZLE_SIZE 0.4 // (mm) Diameter of primary nozzle. + #define MESH_TEST_LAYER_HEIGHT 0.2 // (mm) Default layer height for G26. + #define MESH_TEST_HOTEND_TEMP 205 // (°C) Default nozzle temperature for G26. + #define MESH_TEST_BED_TEMP 60 // (°C) Default bed temperature for G26. + #define G26_XY_FEEDRATE 20 // (mm/s) Feedrate for G26 XY moves. + #define G26_XY_FEEDRATE_TRAVEL 100 // (mm/s) Feedrate for G26 XY travel moves. + #define G26_RETRACT_MULTIPLIER 1.0 // G26 Q (retraction) used by default between mesh test elements. + #endif + +#endif + +#if EITHER(AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_BILINEAR) + + // Set the number of grid points per dimension. + #define GRID_MAX_POINTS_X 3 + #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X + + // Probe along the Y axis, advancing X after each column + //#define PROBE_Y_FIRST + + #if ENABLED(AUTO_BED_LEVELING_BILINEAR) + + // Beyond the probed grid, continue the implied tilt? + // Default is to maintain the height of the nearest edge. + //#define EXTRAPOLATE_BEYOND_GRID + + // + // Experimental Subdivision of the grid by Catmull-Rom method. + // Synthesizes intermediate points to produce a more detailed mesh. + // + //#define ABL_BILINEAR_SUBDIVISION + #if ENABLED(ABL_BILINEAR_SUBDIVISION) + // Number of subdivisions between probe points + #define BILINEAR_SUBDIVISIONS 3 + #endif + + #endif + +#elif ENABLED(AUTO_BED_LEVELING_UBL) + + //=========================================================================== + //========================= Unified Bed Leveling ============================ + //=========================================================================== + + //#define MESH_EDIT_GFX_OVERLAY // Display a graphics overlay while editing the mesh + + #define MESH_INSET 1 // Set Mesh bounds as an inset region of the bed + #define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited. + #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X + + //#define UBL_HILBERT_CURVE // Use Hilbert distribution for less travel when probing multiple points + + #define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle + #define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500 + + //#define UBL_Z_RAISE_WHEN_OFF_MESH 2.5 // When the nozzle is off the mesh, this value is used + // as the Z-Height correction value. + + //#define UBL_MESH_WIZARD // Run several commands in a row to get a complete mesh + +#elif ENABLED(MESH_BED_LEVELING) + + //=========================================================================== + //=================================== Mesh ================================== + //=========================================================================== + + #define MESH_INSET 10 // Set Mesh bounds as an inset region of the bed + #define GRID_MAX_POINTS_X 3 // Don't use more than 7 points per axis, implementation limited. + #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X + + //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS + +#endif // BED_LEVELING + +/** + * Add a bed leveling sub-menu for ABL or MBL. + * Include a guided procedure if manual probing is enabled. + */ +//#define LCD_BED_LEVELING + +#if ENABLED(LCD_BED_LEVELING) + #define MESH_EDIT_Z_STEP 0.025 // (mm) Step size while manually probing Z axis. + #define LCD_PROBE_Z_RANGE 4 // (mm) Z Range centered on Z_MIN_POS for LCD Z adjustment + //#define MESH_EDIT_MENU // Add a menu to edit mesh points +#endif + +// Add a menu item to move between bed corners for manual bed adjustment +#define LCD_BED_TRAMMING + +#if ENABLED(LCD_BED_TRAMMING) +// Default is (30, 30, 30, 30) - Changed to work with BED_TRAMMING_USE_PROBE - DELICIOUS + #define BED_TRAMMING_INSET_LFRB { 30, 30, 49, 30 } // (mm) Left, Front, Right, Back insets + #define BED_TRAMMING_HEIGHT 0.2 // (mm) Z height of nozzle at leveling points + #define BED_TRAMMING_Z_HOP 4.0 // (mm) Z height of nozzle between leveling points + #define BED_TRAMMING_INCLUDE_CENTER // Move to the center after the last corner + //#define BED_TRAMMING_USE_PROBE + #if ENABLED(BED_TRAMMING_USE_PROBE) + #define BED_TRAMMING_PROBE_TOLERANCE 0.04 // (mm) + #define BED_TRAMMING_VERIFY_RAISED // After adjustment triggers the probe, re-probe to verify + //#define BED_TRAMMING_AUDIO_FEEDBACK + #endif + + /** + * Corner Leveling Order + * + * Set 2 or 4 points. When 2 points are given, the 3rd is the center of the opposite edge. + * + * LF Left-Front RF Right-Front + * LB Left-Back RB Right-Back + * + * Examples: + * + * Default {LF,RB,LB,RF} {LF,RF} {LB,LF} + * LB --------- RB LB --------- RB LB --------- RB LB --------- RB + * | 4 3 | | 3 2 | | <3> | | 1 | + * | | | | | | | <3>| + * | 1 2 | | 1 4 | | 1 2 | | 2 | + * LF --------- RF LF --------- RF LF --------- RF LF --------- RF + */ + #define BED_TRAMMING_LEVELING_ORDER { LF, RF, RB, LB } +#endif + +/** + * Commands to execute at the end of G29 probing. + * Useful to retract or move the Z probe out of the way. + */ +//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" + +// @section homing + +// The center of the bed is at (X=0, Y=0) +//#define BED_CENTER_AT_0_0 + +// Manually set the home position. Leave these undefined for automatic settings. +// For DELTA this is the top-center of the Cartesian print volume. +//#define MANUAL_X_HOME_POS 0 +//#define MANUAL_Y_HOME_POS 0 +//#define MANUAL_Z_HOME_POS 0 +//#define MANUAL_I_HOME_POS 0 +//#define MANUAL_J_HOME_POS 0 +//#define MANUAL_K_HOME_POS 0 +//#define MANUAL_U_HOME_POS 0 +//#define MANUAL_V_HOME_POS 0 +//#define MANUAL_W_HOME_POS 0 + +/** + * Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. + * + * - Moves the Z probe (or nozzle) to a defined XY point before Z homing. + * - Allows Z homing only when XY positions are known and trusted. + * - If stepper drivers sleep, XY homing may be required again before Z homing. + */ +#define Z_SAFE_HOMING + +#if ENABLED(Z_SAFE_HOMING) + #define Z_SAFE_HOMING_X_POINT X_CENTER // X point for Z homing + #define Z_SAFE_HOMING_Y_POINT Y_CENTER // Y point for Z homing +#endif + +// Homing speeds (linear=mm/min, rotational=°/min) +#define HOMING_FEEDRATE_MM_M { (20*60), (20*60), (4*60) } + +// Validate that endstops are triggered on homing moves +#define VALIDATE_HOMING_ENDSTOPS + +// @section calibrate + +/** + * Bed Skew Compensation + * + * This feature corrects for misalignment in the XYZ axes. + * + * Take the following steps to get the bed skew in the XY plane: + * 1. Print a test square (e.g., https://www.thingiverse.com/thing:2563185) + * 2. For XY_DIAG_AC measure the diagonal A to C + * 3. For XY_DIAG_BD measure the diagonal B to D + * 4. For XY_SIDE_AD measure the edge A to D + * + * Marlin automatically computes skew factors from these measurements. + * Skew factors may also be computed and set manually: + * + * - Compute AB : SQRT(2*AC*AC+2*BD*BD-4*AD*AD)/2 + * - XY_SKEW_FACTOR : TAN(PI/2-ACOS((AC*AC-AB*AB-AD*AD)/(2*AB*AD))) + * + * If desired, follow the same procedure for XZ and YZ. + * Use these diagrams for reference: + * + * Y Z Z + * ^ B-------C ^ B-------C ^ B-------C + * | / / | / / | / / + * | / / | / / | / / + * | A-------D | A-------D | A-------D + * +-------------->X +-------------->X +-------------->Y + * XY_SKEW_FACTOR XZ_SKEW_FACTOR YZ_SKEW_FACTOR + */ +//#define SKEW_CORRECTION + +#if ENABLED(SKEW_CORRECTION) + // Input all length measurements here: + #define XY_DIAG_AC 282.8427124746 + #define XY_DIAG_BD 282.8427124746 + #define XY_SIDE_AD 200 + + // Or, set the XY skew factor directly: + //#define XY_SKEW_FACTOR 0.0 + + //#define SKEW_CORRECTION_FOR_Z + #if ENABLED(SKEW_CORRECTION_FOR_Z) + #define XZ_DIAG_AC 282.8427124746 + #define XZ_DIAG_BD 282.8427124746 + #define YZ_DIAG_AC 282.8427124746 + #define YZ_DIAG_BD 282.8427124746 + #define YZ_SIDE_AD 200 + + // Or, set the Z skew factors directly: + //#define XZ_SKEW_FACTOR 0.0 + //#define YZ_SKEW_FACTOR 0.0 + #endif + + // Enable this option for M852 to set skew at runtime + //#define SKEW_CORRECTION_GCODE +#endif + +//============================================================================= +//============================= Additional Features =========================== +//============================================================================= + +// @section eeprom + +/** + * EEPROM + * + * Persistent storage to preserve configurable settings across reboots. + * + * M500 - Store settings to EEPROM. + * M501 - Read settings from EEPROM. (i.e., Throw away unsaved changes) + * M502 - Revert settings to "factory" defaults. (Follow with M500 to init the EEPROM.) + */ +#define EEPROM_SETTINGS // Persistent storage with M500 and M501 +//#define DISABLE_M503 // Saves ~2700 bytes of flash. Disable for release! +#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM. +#define EEPROM_BOOT_SILENT // Keep M503 quiet and only give errors during first load +#if ENABLED(EEPROM_SETTINGS) + #define EEPROM_AUTO_INIT // Init EEPROM automatically on any errors. + //#define EEPROM_INIT_NOW // Init EEPROM on first boot after a new build. +#endif + +// @section host + +// +// Host Keepalive +// +// When enabled Marlin will send a busy status message to the host +// every couple of seconds when it can't accept commands. +// +#define HOST_KEEPALIVE_FEATURE // Disable this if your host doesn't like keepalive messages +#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113. +#define BUSY_WHILE_HEATING // Some hosts require "busy" messages even during heating + +// @section units + +// +// G20/G21 Inch mode support +// +//#define INCH_MODE_SUPPORT + +// +// M149 Set temperature units support +// +//#define TEMPERATURE_UNITS_SUPPORT + +// @section temperature + +// +// Preheat Constants - Up to 10 are supported without changes +// +#define PREHEAT_1_LABEL "PLA" +#define PREHEAT_1_TEMP_HOTEND 190 +#define PREHEAT_1_TEMP_BED 50 +#define PREHEAT_1_FAN_SPEED 0 // Value from 0 to 255 + +#define PREHEAT_2_LABEL "ABS" +#define PREHEAT_2_TEMP_HOTEND 240 +#define PREHEAT_2_TEMP_BED 70 +#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255 + +#define PREHEAT_3_LABEL "ASA" +#define PREHEAT_3_TEMP_HOTEND 260 +#define PREHEAT_3_TEMP_BED 90 +#define PREHEAT_3_FAN_SPEED 0 // Value from 0 to 255 + +#define PREHEAT_4_LABEL "BED LEVEL" +#define PREHEAT_4_TEMP_HOTEND 150 +#define PREHEAT_4_TEMP_BED 50 +#define PREHEAT_4_FAN_SPEED 0 // Value from 0 to 255 + +// @section motion + +/** + * Nozzle Park + * + * Park the nozzle at the given XYZ position on idle or G27. + * + * The "P" parameter controls the action applied to the Z axis: + * + * P0 (Default) If Z is below park Z raise the nozzle. + * P1 Raise the nozzle always to Z-park height. + * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS. + */ +#define NOZZLE_PARK_FEATURE + +#if ENABLED(NOZZLE_PARK_FEATURE) + // Specify a park position as { X, Y, Z_raise } + #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } + #define NOZZLE_PARK_MOVE 0 // Park motion: 0 = XY Move, 1 = X Only, 2 = Y Only, 3 = X before Y, 4 = Y before X + #define NOZZLE_PARK_Z_RAISE_MIN 2 // (mm) Always raise Z by at least this distance + #define NOZZLE_PARK_XY_FEEDRATE 100 // (mm/s) X and Y axes feedrate (also used for delta Z axis) + #define NOZZLE_PARK_Z_FEEDRATE 5 // (mm/s) Z axis feedrate (not used for delta printers) +#endif + +/** + * Clean Nozzle Feature -- EXPERIMENTAL + * + * Adds the G12 command to perform a nozzle cleaning process. + * + * Parameters: + * P Pattern + * S Strokes / Repetitions + * T Triangles (P1 only) + * + * Patterns: + * P0 Straight line (default). This process requires a sponge type material + * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions) + * between the start / end points. + * + * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the + * number of zig-zag triangles to do. "S" defines the number of strokes. + * Zig-zags are done in whichever is the narrower dimension. + * For example, "G12 P1 S1 T3" will execute: + * + * -- + * | (X0, Y1) | /\ /\ /\ | (X1, Y1) + * | | / \ / \ / \ | + * A | | / \ / \ / \ | + * | | / \ / \ / \ | + * | (X0, Y0) | / \/ \/ \ | (X1, Y0) + * -- +--------------------------------+ + * |________|_________|_________| + * T1 T2 T3 + * + * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE. + * "R" specifies the radius. "S" specifies the stroke count. + * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT. + * + * Caveats: The ending Z should be the same as starting Z. + * Attention: EXPERIMENTAL. G-code arguments may change. + */ +//#define NOZZLE_CLEAN_FEATURE + +#if ENABLED(NOZZLE_CLEAN_FEATURE) + // Default number of pattern repetitions + #define NOZZLE_CLEAN_STROKES 12 + + // Default number of triangles + #define NOZZLE_CLEAN_TRIANGLES 3 + + // Specify positions for each tool as { { X, Y, Z }, { X, Y, Z } } + // Dual hotend system may use { { -20, (Y_BED_SIZE / 2), (Z_MIN_POS + 1) }, { 420, (Y_BED_SIZE / 2), (Z_MIN_POS + 1) }} + #define NOZZLE_CLEAN_START_POINT { { 30, 30, (Z_MIN_POS + 1) } } + #define NOZZLE_CLEAN_END_POINT { { 100, 60, (Z_MIN_POS + 1) } } + + // Circular pattern radius + #define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5 + // Circular pattern circle fragments number + #define NOZZLE_CLEAN_CIRCLE_FN 10 + // Middle point of circle + #define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT + + // Move the nozzle to the initial position after cleaning + #define NOZZLE_CLEAN_GOBACK + + // For a purge/clean station that's always at the gantry height (thus no Z move) + //#define NOZZLE_CLEAN_NO_Z + + // For a purge/clean station mounted on the X axis + //#define NOZZLE_CLEAN_NO_Y + + // Require a minimum hotend temperature for cleaning + #define NOZZLE_CLEAN_MIN_TEMP 170 + //#define NOZZLE_CLEAN_HEATUP // Heat up the nozzle instead of skipping wipe + + // Explicit wipe G-code script applies to a G12 with no arguments. + //#define WIPE_SEQUENCE_COMMANDS "G1 X-17 Y25 Z10 F4000\nG1 Z1\nM114\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 Z15\nM400\nG0 X-10.0 Y-9.0" + +#endif + +// @section host + +/** + * Print Job Timer + * + * Automatically start and stop the print job timer on M104/M109/M140/M190/M141/M191. + * The print job timer will only be stopped if the bed/chamber target temp is + * below BED_MINTEMP/CHAMBER_MINTEMP. + * + * M104 (hotend, no wait) - high temp = none, low temp = stop timer + * M109 (hotend, wait) - high temp = start timer, low temp = stop timer + * M140 (bed, no wait) - high temp = none, low temp = stop timer + * M190 (bed, wait) - high temp = start timer, low temp = none + * M141 (chamber, no wait) - high temp = none, low temp = stop timer + * M191 (chamber, wait) - high temp = start timer, low temp = none + * + * For M104/M109, high temp is anything over EXTRUDE_MINTEMP / 2. + * For M140/M190, high temp is anything over BED_MINTEMP. + * For M141/M191, high temp is anything over CHAMBER_MINTEMP. + * + * The timer can also be controlled with the following commands: + * + * M75 - Start the print job timer + * M76 - Pause the print job timer + * M77 - Stop the print job timer + */ +//#define PRINTJOB_TIMER_AUTOSTART + +// @section stats + +/** + * Print Counter + * + * Track statistical data such as: + * + * - Total print jobs + * - Total successful print jobs + * - Total failed print jobs + * - Total time printing + * + * View the current statistics with M78. + */ +//#define PRINTCOUNTER +#if ENABLED(PRINTCOUNTER) + #define PRINTCOUNTER_SAVE_INTERVAL 60 // (minutes) EEPROM save interval during print. A value of 0 will save stats at end of print. +#endif + +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= + +// @section interface + +/** + * LCD LANGUAGE + * + * Select the language to display on the LCD. These languages are available: + * + * en, an, bg, ca, cz, da, de, el, el_CY, es, eu, fi, fr, gl, hr, hu, it, + * jp_kana, ko_KR, nl, pl, pt, pt_br, ro, ru, sk, sv, tr, uk, vi, zh_CN, zh_TW + * + * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cz':'Czech', 'da':'Danish', 'de':'German', 'el':'Greek (Greece)', 'el_CY':'Greek (Cyprus)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'hu':'Hungarian', 'it':'Italian', 'jp_kana':'Japanese', 'ko_KR':'Korean (South Korea)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt_br':'Portuguese (Brazilian)', 'ro':'Romanian', 'ru':'Russian', 'sk':'Slovak', 'sv':'Swedish', 'tr':'Turkish', 'uk':'Ukrainian', 'vi':'Vietnamese', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Traditional)' } + */ +#define LCD_LANGUAGE en + +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCDs provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://marlinfw.org/docs/development/lcd_language.html + * + * :['JAPANESE', 'WESTERN', 'CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE + +/** + * Info Screen Style (0:Classic, 1:Průša) + * + * :[0:'Classic', 1:'Průša'] + */ +#define LCD_INFO_SCREEN_STYLE 0 + +/** + * SD CARD + * + * SD Card support is disabled by default. If your controller has an SD slot, + * you must uncomment the following option or it won't work. + */ +#define SDSUPPORT + +/** + * SD CARD: ENABLE CRC + * + * Use CRC checks and retries on the SD communication. + */ +//#define SD_CHECK_AND_RETRY + +/** + * LCD Menu Items + * + * Disable all menus and only display the Status Screen, or + * just remove some extraneous menu items to recover space. + */ +//#define NO_LCD_MENUS +//#define SLIM_LCD_MENUS + +// +// ENCODER SETTINGS +// +// This option overrides the default number of encoder pulses needed to +// produce one step. Should be increased for high-resolution encoders. +// +//#define ENCODER_PULSES_PER_STEP 4 + +// +// Use this option to override the number of step signals required to +// move between next/prev menu items. +// +//#define ENCODER_STEPS_PER_MENU_ITEM 1 + +/** + * Encoder Direction Options + * + * Test your encoder's behavior first with both options disabled. + * + * Reversed Value Edit and Menu Nav? Enable REVERSE_ENCODER_DIRECTION. + * Reversed Menu Navigation only? Enable REVERSE_MENU_DIRECTION. + * Reversed Value Editing only? Enable BOTH options. + */ + +// +// This option reverses the encoder direction everywhere. +// +// Set this option if CLOCKWISE causes values to DECREASE +// +//#define REVERSE_ENCODER_DIRECTION + +// +// This option reverses the encoder direction for navigating LCD menus. +// +// If CLOCKWISE normally moves DOWN this makes it go UP. +// If CLOCKWISE normally moves UP this makes it go DOWN. +// +//#define REVERSE_MENU_DIRECTION + +// +// This option reverses the encoder direction for Select Screen. +// +// If CLOCKWISE normally moves LEFT this makes it go RIGHT. +// If CLOCKWISE normally moves RIGHT this makes it go LEFT. +// +//#define REVERSE_SELECT_DIRECTION + +// +// Encoder EMI Noise Filter +// +// This option increases encoder samples to filter out phantom encoder clicks caused by EMI noise. +// +//#define ENCODER_NOISE_FILTER +#if ENABLED(ENCODER_NOISE_FILTER) + #define ENCODER_SAMPLES 10 +#endif + +// +// Individual Axis Homing +// +// Add individual axis homing items (Home X, Home Y, and Home Z) to the LCD menu. +// +//#define INDIVIDUAL_AXIS_HOMING_MENU +//#define INDIVIDUAL_AXIS_HOMING_SUBMENU + +// +// SPEAKER/BUZZER +// +// If you have a speaker that can produce tones, enable it here. +// By default Marlin assumes you have a buzzer with a fixed frequency. +// +#define SPEAKER + +// +// The duration and frequency for the UI feedback sound. +// Set these to 0 to disable audio feedback in the LCD menus. +// +// Note: Test audio output with the G-Code: +// M300 S P +// +//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 2 +//#define LCD_FEEDBACK_FREQUENCY_HZ 5000 + +//============================================================================= +//======================== LCD / Controller Selection ========================= +//======================== (Character-based LCDs) ========================= +//============================================================================= +// @section lcd + +// +// RepRapDiscount Smart Controller. +// https://reprap.org/wiki/RepRapDiscount_Smart_Controller +// +// Note: Usually sold with a white PCB. +// +//#define REPRAP_DISCOUNT_SMART_CONTROLLER + +// +// GT2560 (YHCB2004) LCD Display +// +// Requires Testato, Koepel softwarewire library and +// Andriy Golovnya's LiquidCrystal_AIP31068 library. +// +//#define YHCB2004 + +// +// Original RADDS LCD Display+Encoder+SDCardReader +// http://doku.radds.org/dokumentation/lcd-display/ +// +//#define RADDS_DISPLAY + +// +// ULTIMAKER Controller. +// +//#define ULTIMAKERCONTROLLER + +// +// ULTIPANEL as seen on Thingiverse. +// +//#define ULTIPANEL + +// +// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) +// https://reprap.org/wiki/PanelOne +// +//#define PANEL_ONE + +// +// GADGETS3D G3D LCD/SD Controller +// https://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +// +// Note: Usually sold with a blue PCB. +// +//#define G3D_PANEL + +// +// RigidBot Panel V1.0 +// http://www.inventapart.com/ +// +//#define RIGIDBOT_PANEL + +// +// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller +// https://www.aliexpress.com/item/32765887917.html +// +//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602 + +// +// ANET and Tronxy 20x4 Controller +// +//#define ZONESTAR_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin. + // This LCD is known to be susceptible to electrical interference + // which scrambles the display. Pressing any button clears it up. + // This is a LCD2004 display with 5 analog buttons. + +// +// Generic 16x2, 16x4, 20x2, or 20x4 character-based LCD. +// +//#define ULTRA_LCD + +//============================================================================= +//======================== LCD / Controller Selection ========================= +//===================== (I2C and Shift-Register LCDs) ===================== +//============================================================================= + +// +// CONTROLLER TYPE: I2C +// +// Note: These controllers require the installation of Arduino's LiquidCrystal_I2C +// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C +// + +// +// Elefu RA Board Control Panel +// https://web.archive.org/web/20140823033947/http://www.elefu.com/index.php?route=product/product&product_id=53 +// +//#define RA_CONTROL_PANEL + +// +// Sainsmart (YwRobot) LCD Displays +// +// These require F.Malpartida's LiquidCrystal_I2C library +// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home +// +//#define LCD_SAINSMART_I2C_1602 +//#define LCD_SAINSMART_I2C_2004 + +// +// Generic LCM1602 LCD adapter +// +//#define LCM1602 + +// +// PANELOLU2 LCD with status LEDs, +// separate encoder and click inputs. +// +// Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. +// For more info: https://github.com/lincomatic/LiquidTWI2 +// +// Note: The PANELOLU2 encoder click input can either be directly connected to +// a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// +//#define LCD_I2C_PANELOLU2 + +// +// Panucatt VIKI LCD with status LEDs, +// integrated click & L/R/U/D buttons, separate encoder inputs. +// +//#define LCD_I2C_VIKI + +// +// CONTROLLER TYPE: Shift register panels +// + +// +// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH +// LCD configuration: https://reprap.org/wiki/SAV_3D_LCD +// +//#define SAV_3DLCD + +// +// 3-wire SR LCD with strobe using 74HC4094 +// https://github.com/mikeshub/SailfishLCD +// Uses the code directly from Sailfish +// +//#define FF_INTERFACEBOARD + +// +// TFT GLCD Panel with Marlin UI +// Panel connected to main board by SPI or I2C interface. +// See https://github.com/Serhiy-K/TFTGLCDAdapter +// +//#define TFTGLCD_PANEL_SPI +//#define TFTGLCD_PANEL_I2C + +//============================================================================= +//======================= LCD / Controller Selection ======================= +//========================= (Graphical LCDs) ======================== +//============================================================================= + +// +// CONTROLLER TYPE: Graphical 128x64 (DOGM) +// +// IMPORTANT: The U8glib library is required for Graphical Display! +// https://github.com/olikraus/U8glib_Arduino +// +// NOTE: If the LCD is unresponsive you may need to reverse the plugs. +// + +// +// RepRapDiscount FULL GRAPHIC Smart Controller +// https://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller +// +//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER + +// +// K.3D Full Graphic Smart Controller +// +//#define K3D_FULL_GRAPHIC_SMART_CONTROLLER + +// +// ReprapWorld Graphical LCD +// https://reprapworld.com/electronics/3d-printer-modules/autonomous-printing/graphical-lcd-screen-v1-0/ +// +//#define REPRAPWORLD_GRAPHICAL_LCD + +// +// Activate one of these if you have a Panucatt Devices +// Viki 2.0 or mini Viki with Graphic LCD +// https://www.panucatt.com +// +//#define VIKI2 +//#define miniVIKI + +// +// Alfawise Ex8 printer LCD marked as WYH L12864 COG +// +//#define WYH_L12864 + +// +// MakerLab Mini Panel with graphic +// controller and SD support - https://reprap.org/wiki/Mini_panel +// +//#define MINIPANEL + +// +// MaKr3d Makr-Panel with graphic controller and SD support. +// https://reprap.org/wiki/MaKr3d_MaKrPanel +// +//#define MAKRPANEL + +// +// Adafruit ST7565 Full Graphic Controller. +// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ +// +//#define ELB_FULL_GRAPHIC_CONTROLLER + +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER + +// +// Cartesio UI +// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface +// +//#define CARTESIO_UI + +// +// LCD for Melzi Card with Graphical LCD +// +//#define LCD_FOR_MELZI + +// +// Original Ulticontroller from Ultimaker 2 printer with SSD1309 I2C display and encoder +// https://github.com/Ultimaker/Ultimaker2/tree/master/1249_Ulticontroller_Board_(x1) +// +//#define ULTI_CONTROLLER + +// +// MKS MINI12864 with graphic controller and SD support +// https://reprap.org/wiki/MKS_MINI_12864 +// +//#define MKS_MINI_12864 + +// +// MKS MINI12864 V3 is an alias for FYSETC_MINI_12864_2_1. Type A/B. NeoPixel RGB Backlight. +// +//#define MKS_MINI_12864_V3 + +// +// MKS LCD12864A/B with graphic controller and SD support. Follows MKS_MINI_12864 pinout. +// https://www.aliexpress.com/item/33018110072.html +// +//#define MKS_LCD12864A +//#define MKS_LCD12864B + +// +// FYSETC variant of the MINI12864 graphic controller with SD support +// https://wiki.fysetc.com/Mini12864_Panel/ +// +//#define FYSETC_MINI_12864_X_X // Type C/D/E/F. No tunable RGB Backlight by default +//#define FYSETC_MINI_12864_1_2 // Type C/D/E/F. Simple RGB Backlight (always on) +//#define FYSETC_MINI_12864_2_0 // Type A/B. Discreet RGB Backlight +//#define FYSETC_MINI_12864_2_1 // Type A/B. NeoPixel RGB Backlight +//#define FYSETC_GENERIC_12864_1_1 // Larger display with basic ON/OFF backlight. + +// +// BigTreeTech Mini 12864 V1.0 is an alias for FYSETC_MINI_12864_2_1. Type A/B. NeoPixel RGB Backlight. +// +//#define BTT_MINI_12864_V1 + +// +// Factory display for Creality CR-10 +// https://www.aliexpress.com/item/32833148327.html +// +// This is RAMPS-compatible using a single 10-pin connector. +// (For CR-10 owners who want to replace the Melzi Creality board but retain the display) +// +#define CR10_STOCKDISPLAY +#if ENABLED(CR10_STOCKDISPLAY) + #define RET6_12864_LCD // Specific to the SoC (can either be RET / VET) +#endif + +// +// Ender-2 OEM display, a variant of the MKS_MINI_12864 +// +//#define ENDER2_STOCKDISPLAY + +// +// ANET and Tronxy Graphical Controller +// +// Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6 +// A clone of the RepRapDiscount full graphics display but with +// different pins/wiring (see pins_ANET_10.h). Enable one of these. +// +//#define ANET_FULL_GRAPHICS_LCD +//#define ANET_FULL_GRAPHICS_LCD_ALT_WIRING + +// +// AZSMZ 12864 LCD with SD +// https://www.aliexpress.com/item/32837222770.html +// +//#define AZSMZ_12864 + +// +// Silvergate GLCD controller +// https://github.com/android444/Silvergate +// +//#define SILVER_GATE_GLCD_CONTROLLER + +// +// eMotion Tech LCD with SD +// https://www.reprap-france.com/produit/1234568748-ecran-graphique-128-x-64-points-2-1 +// +//#define EMOTION_TECH_LCD + +//============================================================================= +//============================== OLED Displays ============================== +//============================================================================= + +// +// SSD1306 OLED full graphics generic display +// +//#define U8GLIB_SSD1306 + +// +// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules +// +//#define SAV_3DGLCD +#if ENABLED(SAV_3DGLCD) + #define U8GLIB_SSD1306 + //#define U8GLIB_SH1106 +#endif + +// +// TinyBoy2 128x64 OLED / Encoder Panel +// +//#define OLED_PANEL_TINYBOY2 + +// +// MKS OLED 1.3" 128×64 Full Graphics Controller +// https://reprap.org/wiki/MKS_12864OLED +// +// Tiny, but very sharp OLED display +// +//#define MKS_12864OLED // Uses the SH1106 controller (default) +//#define MKS_12864OLED_SSD1306 // Uses the SSD1306 controller + +// +// Zonestar OLED 128×64 Full Graphics Controller +// +//#define ZONESTAR_12864LCD // Graphical (DOGM) with ST7920 controller +//#define ZONESTAR_12864OLED // 1.3" OLED with SH1106 controller (default) +//#define ZONESTAR_12864OLED_SSD1306 // 0.96" OLED with SSD1306 controller + +// +// Einstart S OLED SSD1306 +// +//#define U8GLIB_SH1106_EINSTART + +// +// Overlord OLED display/controller with i2c buzzer and LEDs +// +//#define OVERLORD_OLED + +// +// FYSETC OLED 2.42" 128×64 Full Graphics Controller with WS2812 RGB +// Where to find : https://www.aliexpress.com/item/4000345255731.html +//#define FYSETC_242_OLED_12864 // Uses the SSD1309 controller + +// +// K.3D SSD1309 OLED 2.42" 128×64 Full Graphics Controller +// +//#define K3D_242_OLED_CONTROLLER // Software SPI + +//============================================================================= +//========================== Extensible UI Displays =========================== +//============================================================================= + +/** + * DGUS Touch Display with DWIN OS. (Choose one.) + * ORIGIN : https://www.aliexpress.com/item/32993409517.html + * FYSETC : https://www.aliexpress.com/item/32961471929.html + * MKS : https://www.aliexpress.com/item/1005002008179262.html + * + * Flash display with DGUS Displays for Marlin: + * - Format the SD card to FAT32 with an allocation size of 4kb. + * - Download files as specified for your type of display. + * - Plug the microSD card into the back of the display. + * - Boot the display and wait for the update to complete. + * + * ORIGIN (Marlin DWIN_SET) + * - Download https://github.com/coldtobi/Marlin_DGUS_Resources + * - Copy the downloaded DWIN_SET folder to the SD card. + * + * FYSETC (Supplier default) + * - Download https://github.com/FYSETC/FYSTLCD-2.0 + * - Copy the downloaded SCREEN folder to the SD card. + * + * HIPRECY (Supplier default) + * - Download https://github.com/HiPrecy/Touch-Lcd-LEO + * - Copy the downloaded DWIN_SET folder to the SD card. + * + * MKS (MKS-H43) (Supplier default) + * - Download https://github.com/makerbase-mks/MKS-H43 + * - Copy the downloaded DWIN_SET folder to the SD card. + * + * RELOADED (T5UID1) + * - Download https://github.com/Desuuuu/DGUS-reloaded/releases + * - Copy the downloaded DWIN_SET folder to the SD card. + */ +//#define DGUS_LCD_UI_ORIGIN +//#define DGUS_LCD_UI_FYSETC +//#define DGUS_LCD_UI_HIPRECY +//#define DGUS_LCD_UI_MKS +//#define DGUS_LCD_UI_RELOADED +#if ENABLED(DGUS_LCD_UI_MKS) + #define USE_MKS_GREEN_UI +#endif + +// +// Touch-screen LCD for Malyan M200/M300 printers +// +//#define MALYAN_LCD + +// +// Touch UI for FTDI EVE (FT800/FT810) displays +// See Configuration_adv.h for all configuration options. +// +//#define TOUCH_UI_FTDI_EVE + +// +// Touch-screen LCD for Anycubic printers +// +//#define ANYCUBIC_LCD_I3MEGA +//#define ANYCUBIC_LCD_CHIRON +#if EITHER(ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON) + //#define ANYCUBIC_LCD_DEBUG + //#define ANYCUBIC_LCD_GCODE_EXT // Add ".gcode" to menu entries for DGUS clone compatibility +#endif + +// +// 320x240 Nextion 2.8" serial TFT Resistive Touch Screen NX3224T028 +// +//#define NEXTION_TFT + +// +// Third-party or vendor-customized controller interfaces. +// Sources should be installed in 'src/lcd/extui'. +// +//#define EXTENSIBLE_UI + +#if ENABLED(EXTENSIBLE_UI) + //#define EXTUI_LOCAL_BEEPER // Enables use of local Beeper pin with external display +#endif + +//============================================================================= +//=============================== Graphical TFTs ============================== +//============================================================================= + +/** + * Specific TFT Model Presets. Enable one of the following options + * or enable TFT_GENERIC and set sub-options. + */ + +// +// 480x320, 3.5", SPI Display with Rotary Encoder from MKS +// Usually paired with MKS Robin Nano V2 & V3 +// +//#define MKS_TS35_V2_0 + +// +// 320x240, 2.4", FSMC Display From MKS +// Usually paired with MKS Robin Nano V1.2 +// +//#define MKS_ROBIN_TFT24 + +// +// 320x240, 2.8", FSMC Display From MKS +// Usually paired with MKS Robin Nano V1.2 +// +//#define MKS_ROBIN_TFT28 + +// +// 320x240, 3.2", FSMC Display From MKS +// Usually paired with MKS Robin Nano V1.2 +// +//#define MKS_ROBIN_TFT32 + +// +// 480x320, 3.5", FSMC Display From MKS +// Usually paired with MKS Robin Nano V1.2 +// +//#define MKS_ROBIN_TFT35 + +// +// 480x272, 4.3", FSMC Display From MKS +// +//#define MKS_ROBIN_TFT43 + +// +// 320x240, 3.2", FSMC Display From MKS +// Usually paired with MKS Robin +// +//#define MKS_ROBIN_TFT_V1_1R + +// +// 480x320, 3.5", FSMC Stock Display from Tronxy +// +//#define TFT_TRONXY_X5SA + +// +// 480x320, 3.5", FSMC Stock Display from AnyCubic +// +//#define ANYCUBIC_TFT35 + +// +// 320x240, 2.8", FSMC Stock Display from Longer/Alfawise +// +//#define LONGER_LK_TFT28 + +// +// 320x240, 2.8", FSMC Stock Display from ET4 +// +//#define ANET_ET4_TFT28 + +// +// 480x320, 3.5", FSMC Stock Display from ET5 +// +//#define ANET_ET5_TFT35 + +// +// 1024x600, 7", RGB Stock Display with Rotary Encoder from BIQU-BX +// +//#define BIQU_BX_TFT70 + +// +// 480x320, 3.5", SPI Stock Display with Rotary Encoder from BIQU B1 SE Series +// +//#define BTT_TFT35_SPI_V1_0 + +// +// Generic TFT with detailed options +// +//#define TFT_GENERIC +#if ENABLED(TFT_GENERIC) + // :[ 'AUTO', 'ST7735', 'ST7789', 'ST7796', 'R61505', 'ILI9328', 'ILI9341', 'ILI9488' ] + #define TFT_DRIVER AUTO + + // Interface. Enable one of the following options: + //#define TFT_INTERFACE_FSMC + //#define TFT_INTERFACE_SPI + + // TFT Resolution. Enable one of the following options: + //#define TFT_RES_320x240 + //#define TFT_RES_480x272 + //#define TFT_RES_480x320 + //#define TFT_RES_1024x600 +#endif + +/** + * TFT UI - User Interface Selection. Enable one of the following options: + * + * TFT_CLASSIC_UI - Emulated DOGM - 128x64 Upscaled + * TFT_COLOR_UI - Marlin Default Menus, Touch Friendly, using full TFT capabilities + * TFT_LVGL_UI - A Modern UI using LVGL + * + * For LVGL_UI also copy the 'assets' folder from the build directory to the + * root of your SD card, together with the compiled firmware. + */ +//#define TFT_CLASSIC_UI +//#define TFT_COLOR_UI +//#define TFT_LVGL_UI + +#if ENABLED(TFT_COLOR_UI) + //#define TFT_SHARED_SPI // SPI is shared between TFT display and other devices. Disable async data transfer +#endif + +#if ENABLED(TFT_LVGL_UI) + //#define MKS_WIFI_MODULE // MKS WiFi module +#endif + +/** + * TFT Rotation. Set to one of the following values: + * + * TFT_ROTATE_90, TFT_ROTATE_90_MIRROR_X, TFT_ROTATE_90_MIRROR_Y, + * TFT_ROTATE_180, TFT_ROTATE_180_MIRROR_X, TFT_ROTATE_180_MIRROR_Y, + * TFT_ROTATE_270, TFT_ROTATE_270_MIRROR_X, TFT_ROTATE_270_MIRROR_Y, + * TFT_MIRROR_X, TFT_MIRROR_Y, TFT_NO_ROTATION + */ +//#define TFT_ROTATION TFT_NO_ROTATION + +//============================================================================= +//============================ Other Controllers ============================ +//============================================================================= + +// +// Ender-3 v2 OEM display. A DWIN display with Rotary Encoder. +// +//#define DWIN_CREALITY_LCD // Creality UI +//#define DWIN_LCD_PROUI // Pro UI by MRiscoC +//#define DWIN_CREALITY_LCD_JYERSUI // Jyers UI by Jacob Myers +//#define DWIN_MARLINUI_PORTRAIT // MarlinUI (portrait orientation) +//#define DWIN_MARLINUI_LANDSCAPE // MarlinUI (landscape orientation) + +// +// Touch Screen Settings +// +//#define TOUCH_SCREEN +#if ENABLED(TOUCH_SCREEN) + #define BUTTON_DELAY_EDIT 50 // (ms) Button repeat delay for edit screens + #define BUTTON_DELAY_MENU 250 // (ms) Button repeat delay for menus + + //#define DISABLE_ENCODER // Disable the click encoder, if any + //#define TOUCH_IDLE_SLEEP_MINS 5 // (minutes) Display Sleep after a period of inactivity. Set with M255 S. + + #define TOUCH_SCREEN_CALIBRATION + + //#define TOUCH_CALIBRATION_X 12316 + //#define TOUCH_CALIBRATION_Y -8981 + //#define TOUCH_OFFSET_X -43 + //#define TOUCH_OFFSET_Y 257 + //#define TOUCH_ORIENTATION TOUCH_LANDSCAPE + + #if BOTH(TOUCH_SCREEN_CALIBRATION, EEPROM_SETTINGS) + #define TOUCH_CALIBRATION_AUTO_SAVE // Auto save successful calibration values to EEPROM + #endif + + #if ENABLED(TFT_COLOR_UI) + //#define SINGLE_TOUCH_NAVIGATION + #endif +#endif + +// +// RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// https://reprapworld.com/products/electronics/ramps/keypad_v1_0_fully_assembled/ +// +//#define REPRAPWORLD_KEYPAD +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // (mm) Distance to move per key-press + +// +// EasyThreeD ET-4000+ with button input and status LED +// +//#define EASYTHREED_UI + +//============================================================================= +//=============================== Extra Features ============================== +//============================================================================= + +// @section fans + +// Set number of user-controlled fans. Disable to use all board-defined fans. +// :[1,2,3,4,5,6,7,8] +//#define NUM_M106_FANS 1 + +// Use software PWM to drive the fan, as for the heaters. This uses a very low frequency +// which is not as annoying as with the hardware PWM. On the other hand, if this frequency +// is too low, you should also increment SOFT_PWM_SCALE. +#define FAN_SOFT_PWM + +// Incrementing this by 1 will double the software PWM frequency, +// affecting heaters, and the fan if FAN_SOFT_PWM is enabled. +// However, control resolution will be halved for each increment; +// at zero value, there are 128 effective control positions. +// :[0,1,2,3,4,5,6,7] +#define SOFT_PWM_SCALE 0 + +// If SOFT_PWM_SCALE is set to a value higher than 0, dithering can +// be used to mitigate the associated resolution loss. If enabled, +// some of the PWM cycles are stretched so on average the desired +// duty cycle is attained. +//#define SOFT_PWM_DITHER + +// @section extras + +// @section lights + +// Temperature status LEDs that display the hotend and bed temperature. +// If all hotends, bed temperature, and target temperature are under 54C +// then the BLUE led is on. Otherwise the RED led is on. (1C hysteresis) +//#define TEMP_STAT_LEDS + +/** + * Printer Event LEDs + * + * During printing, the LEDs will reflect the printer status: + * + * - Gradually change from blue to violet as the heated bed gets to target temp + * - Gradually change from violet to red as the hotend gets to temperature + * - Change to white to illuminate work surface + * - Change to green once print has finished + * - Turn off after the print has finished and the user has pushed a button + */ +#if ANY(BLINKM, RGB_LED, RGBW_LED, PCA9632, PCA9533, NEOPIXEL_LED) + #define PRINTER_EVENT_LEDS +#endif + +// @section servos + +/** + * Number of servos + * + * For some servo-related options NUM_SERVOS will be set automatically. + * Set this manually if there are extra servos needing manual control. + * Set to 0 to turn off servo support. + */ +//#define NUM_SERVOS 3 // Note: Servo index starts with 0 for M280-M282 commands + +// (ms) Delay before the next move will start, to give the servo time to reach its target angle. +// 300ms is a good value but you can try less delay. +// If the servo can't reach the requested position, increase it. +#define SERVO_DELAY { 300 } + +// Only power servos during movement, otherwise leave off to prevent jitter +//#define DEACTIVATE_SERVOS_AFTER_MOVE + +// Edit servo angles with M281 and save to EEPROM with M500 +//#define EDITABLE_SERVO_ANGLES + +// Disable servo with M282 to reduce power consumption, noise, and heat when not in use +//#define SERVO_DETACH_GCODE diff --git a/_OLDER VERSIONS/V1.15.0/Configuration_adv.h b/_OLDER VERSIONS/V1.15.0/Configuration_adv.h new file mode 100644 index 0000000..1ddede3 --- /dev/null +++ b/_OLDER VERSIONS/V1.15.0/Configuration_adv.h @@ -0,0 +1,3681 @@ +#pragma once + +#define CONFIGURATION_ADV_H_VERSION 02010201 + +// @section develop + +/** + * Configuration Export + * + * Export the configuration as part of the build. (See signature.py) + * Output files are saved with the build (e.g., .pio/build/mega2560). + * + * See `build_all_examples --ini` as an example of config.ini archiving. + * + * 1 = marlin_config.json - Dictionary containing the configuration. + * This file is also generated for CONFIGURATION_EMBEDDING. + * 2 = config.ini - File format for PlatformIO preprocessing. + * 3 = schema.json - The entire configuration schema. (13 = pattern groups) + * 4 = schema.yml - The entire configuration schema. + */ +#define CONFIG_EXPORT 2 // :[1:'JSON', 2:'config.ini', 3:'schema.json', 4:'schema.yml'] + +//=========================================================================== +//============================= Thermal Settings ============================ +//=========================================================================== +// @section temperature + +/** + * Thermocouple sensors are quite sensitive to noise. Any noise induced in + * the sensor wires, such as by stepper motor wires run in parallel to them, + * may result in the thermocouple sensor reporting spurious errors. This + * value is the number of errors which can occur in a row before the error + * is reported. This allows us to ignore intermittent error conditions while + * still detecting an actual failure, which should result in a continuous + * stream of errors from the sensor. + * + * Set this value to 0 to fail on the first error to occur. + */ +#define THERMOCOUPLE_MAX_ERRORS 15 + +// +// Custom Thermistor 1000 parameters +// +#if TEMP_SENSOR_0 == 1000 + #define HOTEND0_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define HOTEND0_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define HOTEND0_BETA 3950 // Beta value + #define HOTEND0_SH_C_COEFF 0 // Steinhart-Hart C coefficient +#endif + +#if TEMP_SENSOR_1 == 1000 + #define HOTEND1_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define HOTEND1_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define HOTEND1_BETA 3950 // Beta value + #define HOTEND1_SH_C_COEFF 0 // Steinhart-Hart C coefficient +#endif + +#if TEMP_SENSOR_2 == 1000 + #define HOTEND2_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define HOTEND2_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define HOTEND2_BETA 3950 // Beta value + #define HOTEND2_SH_C_COEFF 0 // Steinhart-Hart C coefficient +#endif + +#if TEMP_SENSOR_3 == 1000 + #define HOTEND3_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define HOTEND3_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define HOTEND3_BETA 3950 // Beta value + #define HOTEND3_SH_C_COEFF 0 // Steinhart-Hart C coefficient +#endif + +#if TEMP_SENSOR_4 == 1000 + #define HOTEND4_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define HOTEND4_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define HOTEND4_BETA 3950 // Beta value + #define HOTEND4_SH_C_COEFF 0 // Steinhart-Hart C coefficient +#endif + +#if TEMP_SENSOR_5 == 1000 + #define HOTEND5_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define HOTEND5_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define HOTEND5_BETA 3950 // Beta value + #define HOTEND5_SH_C_COEFF 0 // Steinhart-Hart C coefficient +#endif + +#if TEMP_SENSOR_6 == 1000 + #define HOTEND6_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define HOTEND6_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define HOTEND6_BETA 3950 // Beta value + #define HOTEND6_SH_C_COEFF 0 // Steinhart-Hart C coefficient +#endif + +#if TEMP_SENSOR_7 == 1000 + #define HOTEND7_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define HOTEND7_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define HOTEND7_BETA 3950 // Beta value + #define HOTEND7_SH_C_COEFF 0 // Steinhart-Hart C coefficient +#endif + +#if TEMP_SENSOR_BED == 1000 + #define BED_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define BED_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define BED_BETA 3950 // Beta value + #define BED_SH_C_COEFF 0 // Steinhart-Hart C coefficient +#endif + +#if TEMP_SENSOR_CHAMBER == 1000 + #define CHAMBER_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define CHAMBER_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define CHAMBER_BETA 3950 // Beta value + #define CHAMBER_SH_C_COEFF 0 // Steinhart-Hart C coefficient +#endif + +#if TEMP_SENSOR_COOLER == 1000 + #define COOLER_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define COOLER_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define COOLER_BETA 3950 // Beta value + #define COOLER_SH_C_COEFF 0 // Steinhart-Hart C coefficient +#endif + +#if TEMP_SENSOR_PROBE == 1000 + #define PROBE_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define PROBE_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define PROBE_BETA 3950 // Beta value + #define PROBE_SH_C_COEFF 0 // Steinhart-Hart C coefficient +#endif + +#if TEMP_SENSOR_BOARD == 1000 + #define BOARD_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define BOARD_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define BOARD_BETA 3950 // Beta value + #define BOARD_SH_C_COEFF 0 // Steinhart-Hart C coefficient +#endif + +#if TEMP_SENSOR_REDUNDANT == 1000 + #define REDUNDANT_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define REDUNDANT_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define REDUNDANT_BETA 3950 // Beta value + #define REDUNDANT_SH_C_COEFF 0 // Steinhart-Hart C coefficient +#endif + +/** + * Thermocouple Options — for MAX6675 (-2), MAX31855 (-3), and MAX31865 (-5). + */ +//#define TEMP_SENSOR_FORCE_HW_SPI // Ignore SCK/MOSI/MISO pins; use CS and the default SPI bus. +//#define MAX31865_SENSOR_WIRES_0 2 // (2-4) Number of wires for the probe connected to a MAX31865 board. +//#define MAX31865_SENSOR_WIRES_1 2 +//#define MAX31865_SENSOR_WIRES_2 2 + +//#define MAX31865_50HZ_FILTER // Use a 50Hz filter instead of the default 60Hz. +//#define MAX31865_USE_READ_ERROR_DETECTION // Treat value spikes (20°C delta in under 1s) as read errors. + +//#define MAX31865_USE_AUTO_MODE // Read faster and more often than 1-shot; bias voltage always on; slight effect on RTD temperature. +//#define MAX31865_MIN_SAMPLING_TIME_MSEC 100 // (ms) 1-shot: minimum read interval. Reduces bias voltage effects by leaving sensor unpowered for longer intervals. +//#define MAX31865_IGNORE_INITIAL_FAULTY_READS 10 // Ignore some read faults (keeping the temperature reading) to work around a possible issue (#23439). + +//#define MAX31865_WIRE_OHMS_0 0.95f // For 2-wire, set the wire resistances for more accurate readings. +//#define MAX31865_WIRE_OHMS_1 0.0f +//#define MAX31865_WIRE_OHMS_2 0.0f + +/** + * Hephestos 2 24V heated bed upgrade kit. + * https://store.bq.com/en/heated-bed-kit-hephestos2 + */ +//#define HEPHESTOS2_HEATED_BED_KIT +#if ENABLED(HEPHESTOS2_HEATED_BED_KIT) + #undef TEMP_SENSOR_BED + #define TEMP_SENSOR_BED 70 + #define HEATER_BED_INVERTING true +#endif + +// +// Heated Bed Bang-Bang options +// +#if DISABLED(PIDTEMPBED) + #define BED_CHECK_INTERVAL 5000 // (ms) Interval between checks in bang-bang control + #if ENABLED(BED_LIMIT_SWITCHING) + #define BED_HYSTERESIS 2 // (°C) Only set the relevant heater state when ABS(T-target) > BED_HYSTERESIS + #endif +#endif + +// +// Heated Chamber options +// +#if DISABLED(PIDTEMPCHAMBER) + #define CHAMBER_CHECK_INTERVAL 5000 // (ms) Interval between checks in bang-bang control + #if ENABLED(CHAMBER_LIMIT_SWITCHING) + #define CHAMBER_HYSTERESIS 2 // (°C) Only set the relevant heater state when ABS(T-target) > CHAMBER_HYSTERESIS + #endif +#endif + +#if TEMP_SENSOR_CHAMBER + //#define HEATER_CHAMBER_PIN P2_04 // Required heater on/off pin (example: SKR 1.4 Turbo HE1 plug) + //#define HEATER_CHAMBER_INVERTING false + //#define FAN1_PIN -1 // Remove the fan signal on pin P2_04 (example: SKR 1.4 Turbo HE1 plug) + + //#define CHAMBER_FAN // Enable a fan on the chamber + #if ENABLED(CHAMBER_FAN) + //#define CHAMBER_FAN_INDEX 2 // Index of a fan to repurpose as the chamber fan. (Default: first unused fan) + #define CHAMBER_FAN_MODE 2 // Fan control mode: 0=Static; 1=Linear increase when temp is higher than target; 2=V-shaped curve; 3=similar to 1 but fan is always on. + #if CHAMBER_FAN_MODE == 0 + #define CHAMBER_FAN_BASE 255 // Chamber fan PWM (0-255) + #elif CHAMBER_FAN_MODE == 1 + #define CHAMBER_FAN_BASE 128 // Base chamber fan PWM (0-255); turns on when chamber temperature is above the target + #define CHAMBER_FAN_FACTOR 25 // PWM increase per °C above target + #elif CHAMBER_FAN_MODE == 2 + #define CHAMBER_FAN_BASE 128 // Minimum chamber fan PWM (0-255) + #define CHAMBER_FAN_FACTOR 25 // PWM increase per °C difference from target + #elif CHAMBER_FAN_MODE == 3 + #define CHAMBER_FAN_BASE 128 // Base chamber fan PWM (0-255) + #define CHAMBER_FAN_FACTOR 25 // PWM increase per °C above target + #endif + #endif + + //#define CHAMBER_VENT // Enable a servo-controlled vent on the chamber + #if ENABLED(CHAMBER_VENT) + #define CHAMBER_VENT_SERVO_NR 1 // Index of the vent servo + #define HIGH_EXCESS_HEAT_LIMIT 5 // How much above target temp to consider there is excess heat in the chamber + #define LOW_EXCESS_HEAT_LIMIT 3 + #define MIN_COOLING_SLOPE_TIME_CHAMBER_VENT 20 + #define MIN_COOLING_SLOPE_DEG_CHAMBER_VENT 1.5 + #endif +#endif + +// +// Motherboard Sensor options +// +#if TEMP_SENSOR_BOARD + #define THERMAL_PROTECTION_BOARD // Halt the printer if the board sensor leaves the temp range below. + #define BOARD_MINTEMP 8 // (°C) + #define BOARD_MAXTEMP 70 // (°C) + #ifndef TEMP_BOARD_PIN + //#define TEMP_BOARD_PIN -1 // Board temp sensor pin, if not set in pins file. + #endif +#endif + +/** + * Thermal Protection provides additional protection to your printer from damage + * and fire. Marlin always includes safe min and max temperature ranges which + * protect against a broken or disconnected thermistor wire. + * + * The issue: If a thermistor falls out, it will report the much lower + * temperature of the air in the room, and the the firmware will keep + * the heater on. + * + * The solution: Once the temperature reaches the target, start observing. + * If the temperature stays too far below the target (hysteresis) for too + * long (period), the firmware will halt the machine as a safety precaution. + * + * If you get false positives for "Thermal Runaway", increase + * THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD + */ +#if ENABLED(THERMAL_PROTECTION_HOTENDS) + #define THERMAL_PROTECTION_PERIOD 40 // Seconds + #define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius + + //#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops + #if BOTH(ADAPTIVE_FAN_SLOWING, PIDTEMP) + //#define NO_FAN_SLOWING_IN_PID_TUNING // Don't slow fan speed during M303 + #endif + + /** + * Whenever an M104, M109, or M303 increases the target temperature, the + * firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature + * hasn't increased by WATCH_TEMP_INCREASE degrees, the machine is halted and + * requires a hard reset. This test restarts with any M104/M109/M303, but only + * if the current temperature is far enough below the target for a reliable + * test. + * + * If you get false positives for "Heating failed", increase WATCH_TEMP_PERIOD + * and/or decrease WATCH_TEMP_INCREASE. WATCH_TEMP_INCREASE should not be set + * below 2. + */ + #define WATCH_TEMP_PERIOD 40 // Seconds + #define WATCH_TEMP_INCREASE 2 // Degrees Celsius +#endif + +/** + * Thermal Protection parameters for the bed are just as above for hotends. + */ +#if ENABLED(THERMAL_PROTECTION_BED) + #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds + #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius + + /** + * As described above, except for the bed (M140/M190/M303). + */ + #define WATCH_BED_TEMP_PERIOD 60 // Seconds + #define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius +#endif + +#if ANY(THERMAL_PROTECTION_HOTENDS, THERMAL_PROTECTION_BED) + /** + * Thermal Protection Variance Monitor - EXPERIMENTAL. + * Kill the machine on a stuck temperature sensor. Disable if you get false positives. + */ + //#define THERMAL_PROTECTION_VARIANCE_MONITOR // Detect a sensor malfunction preventing temperature updates +#endif + +#if ENABLED(PIDTEMP) + // Add an experimental additional term to the heater power, proportional to the extrusion speed. + // A well-chosen Kc value should add just enough power to melt the increased material volume. + //#define PID_EXTRUSION_SCALING + #if ENABLED(PID_EXTRUSION_SCALING) + #define DEFAULT_Kc (100) // heating power = Kc * e_speed + #define LPQ_MAX_LEN 50 + #endif + + /** + * Add an experimental additional term to the heater power, proportional to the fan speed. + * A well-chosen Kf value should add just enough power to compensate for power-loss from the cooling fan. + * You can either just add a constant compensation with the DEFAULT_Kf value + * or follow the instruction below to get speed-dependent compensation. + * + * Constant compensation (use only with fanspeeds of 0% and 100%) + * --------------------------------------------------------------------- + * A good starting point for the Kf-value comes from the calculation: + * kf = (power_fan * eff_fan) / power_heater * 255 + * where eff_fan is between 0.0 and 1.0, based on fan-efficiency and airflow to the nozzle / heater. + * + * Example: + * Heater: 40W, Fan: 0.1A * 24V = 2.4W, eff_fan = 0.8 + * Kf = (2.4W * 0.8) / 40W * 255 = 12.24 + * + * Fan-speed dependent compensation + * -------------------------------- + * 1. To find a good Kf value, set the hotend temperature, wait for it to settle, and enable the fan (100%). + * Make sure PID_FAN_SCALING_LIN_FACTOR is 0 and PID_FAN_SCALING_ALTERNATIVE_DEFINITION is not enabled. + * If you see the temperature drop repeat the test, increasing the Kf value slowly, until the temperature + * drop goes away. If the temperature overshoots after enabling the fan, the Kf value is too big. + * 2. Note the Kf-value for fan-speed at 100% + * 3. Determine a good value for PID_FAN_SCALING_MIN_SPEED, which is around the speed, where the fan starts moving. + * 4. Repeat step 1. and 2. for this fan speed. + * 5. Enable PID_FAN_SCALING_ALTERNATIVE_DEFINITION and enter the two identified Kf-values in + * PID_FAN_SCALING_AT_FULL_SPEED and PID_FAN_SCALING_AT_MIN_SPEED. Enter the minimum speed in PID_FAN_SCALING_MIN_SPEED + */ + //#define PID_FAN_SCALING + #if ENABLED(PID_FAN_SCALING) + //#define PID_FAN_SCALING_ALTERNATIVE_DEFINITION + #if ENABLED(PID_FAN_SCALING_ALTERNATIVE_DEFINITION) + // The alternative definition is used for an easier configuration. + // Just figure out Kf at fullspeed (255) and PID_FAN_SCALING_MIN_SPEED. + // DEFAULT_Kf and PID_FAN_SCALING_LIN_FACTOR are calculated accordingly. + + #define PID_FAN_SCALING_AT_FULL_SPEED 13.0 //=PID_FAN_SCALING_LIN_FACTOR*255+DEFAULT_Kf + #define PID_FAN_SCALING_AT_MIN_SPEED 6.0 //=PID_FAN_SCALING_LIN_FACTOR*PID_FAN_SCALING_MIN_SPEED+DEFAULT_Kf + #define PID_FAN_SCALING_MIN_SPEED 10.0 // Minimum fan speed at which to enable PID_FAN_SCALING + + #define DEFAULT_Kf (255.0*PID_FAN_SCALING_AT_MIN_SPEED-PID_FAN_SCALING_AT_FULL_SPEED*PID_FAN_SCALING_MIN_SPEED)/(255.0-PID_FAN_SCALING_MIN_SPEED) + #define PID_FAN_SCALING_LIN_FACTOR (PID_FAN_SCALING_AT_FULL_SPEED-DEFAULT_Kf)/255.0 + + #else + #define PID_FAN_SCALING_LIN_FACTOR (0) // Power loss due to cooling = Kf * (fan_speed) + #define DEFAULT_Kf 10 // A constant value added to the PID-tuner + #define PID_FAN_SCALING_MIN_SPEED 10 // Minimum fan speed at which to enable PID_FAN_SCALING + #endif + #endif +#endif + +/** + * Automatic Temperature Mode + * + * Dynamically adjust the hotend target temperature based on planned E moves. + * + * (Contrast with PID_EXTRUSION_SCALING, which tracks E movement and adjusts PID + * behavior using an additional kC value.) + * + * Autotemp is calculated by (mintemp + factor * mm_per_sec), capped to maxtemp. + * + * Enable Autotemp Mode with M104/M109 F S B. + * Disable by sending M104/M109 with no F parameter (or F0 with AUTOTEMP_PROPORTIONAL). + */ +#define AUTOTEMP +#if ENABLED(AUTOTEMP) + #define AUTOTEMP_OLDWEIGHT 0.98 // Factor used to weight previous readings (0.0 < value < 1.0) + // Turn on AUTOTEMP on M104/M109 by default using proportions set here + //#define AUTOTEMP_PROPORTIONAL + #if ENABLED(AUTOTEMP_PROPORTIONAL) + #define AUTOTEMP_MIN_P 0 // (°C) Added to the target temperature + #define AUTOTEMP_MAX_P 5 // (°C) Added to the target temperature + #define AUTOTEMP_FACTOR_P 1 // Apply this F parameter by default (overridden by M104/M109 F) + #endif +#endif + +// Show Temperature ADC value +// Enable for M105 to include ADC values read from temperature sensors. +//#define SHOW_TEMP_ADC_VALUES + +/** + * High Temperature Thermistor Support + * + * Thermistors able to support high temperature tend to have a hard time getting + * good readings at room and lower temperatures. This means TEMP_SENSOR_X_RAW_LO_TEMP + * will probably be caught when the heating element first turns on during the + * preheating process, which will trigger a MINTEMP error as a safety measure + * and force stop everything. + * To circumvent this limitation, we allow for a preheat time (during which, + * MINTEMP error won't be triggered) and add a min_temp buffer to handle + * aberrant readings. + * + * If you want to enable this feature for your hotend thermistor(s) + * uncomment and set values > 0 in the constants below + */ + +// The number of consecutive low temperature errors that can occur +// before a MINTEMP error is triggered. (Shouldn't be more than 10.) +//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0 + +/** + * The number of milliseconds a hotend will preheat before starting to check + * the temperature. This value should NOT be set to the time it takes the + * hot end to reach the target temperature, but the time it takes to reach + * the minimum temperature your thermistor can read. The lower the better/safer. + * This shouldn't need to be more than 30 seconds (30000) + */ +//#define MILLISECONDS_PREHEAT_TIME 0 + +// @section extruder + +/** + * Extruder runout prevention. + * If the machine is idle and the temperature over MINTEMP + * then extrude some filament every couple of SECONDS. + */ +//#define EXTRUDER_RUNOUT_PREVENT +#if ENABLED(EXTRUDER_RUNOUT_PREVENT) + #define EXTRUDER_RUNOUT_MINTEMP 190 + #define EXTRUDER_RUNOUT_SECONDS 30 + #define EXTRUDER_RUNOUT_SPEED 1500 // (mm/min) + #define EXTRUDER_RUNOUT_EXTRUDE 5 // (mm) +#endif + +/** + * Hotend Idle Timeout + * Prevent filament in the nozzle from charring and causing a critical jam. + */ +//#define HOTEND_IDLE_TIMEOUT +#if ENABLED(HOTEND_IDLE_TIMEOUT) + #define HOTEND_IDLE_TIMEOUT_SEC (5*60) // (seconds) Time without extruder movement to trigger protection + #define HOTEND_IDLE_MIN_TRIGGER 180 // (°C) Minimum temperature to enable hotend protection + #define HOTEND_IDLE_NOZZLE_TARGET 0 // (°C) Safe temperature for the nozzle after timeout + #define HOTEND_IDLE_BED_TARGET 0 // (°C) Safe temperature for the bed after timeout +#endif + +// @section temperature + +// Calibration for AD595 / AD8495 sensor to adjust temperature measurements. +// The final temperature is calculated as (measuredTemp * GAIN) + OFFSET. +#define TEMP_SENSOR_AD595_OFFSET 0.0 +#define TEMP_SENSOR_AD595_GAIN 1.0 +#define TEMP_SENSOR_AD8495_OFFSET 0.0 +#define TEMP_SENSOR_AD8495_GAIN 1.0 + +/** + * Controller Fan + * To cool down the stepper drivers and MOSFETs. + * + * The fan turns on automatically whenever any driver is enabled and turns + * off (or reduces to idle speed) shortly after drivers are turned off. + */ +//#define USE_CONTROLLER_FAN +#if ENABLED(USE_CONTROLLER_FAN) + //#define CONTROLLER_FAN_PIN -1 // Set a custom pin for the controller fan + //#define CONTROLLER_FAN2_PIN -1 // Set a custom pin for second controller fan + //#define CONTROLLER_FAN_USE_Z_ONLY // With this option only the Z axis is considered + //#define CONTROLLER_FAN_IGNORE_Z // Ignore Z stepper. Useful when stepper timeout is disabled. + #define CONTROLLERFAN_SPEED_MIN 0 // (0-255) Minimum speed. (If set below this value the fan is turned off.) + #define CONTROLLERFAN_SPEED_ACTIVE 255 // (0-255) Active speed, used when any motor is enabled + #define CONTROLLERFAN_SPEED_IDLE 0 // (0-255) Idle speed, used when motors are disabled + #define CONTROLLERFAN_IDLE_TIME 60 // (seconds) Extra time to keep the fan running after disabling motors + + // Use TEMP_SENSOR_BOARD as a trigger for enabling the controller fan + //#define CONTROLLER_FAN_MIN_BOARD_TEMP 40 // (°C) Turn on the fan if the board reaches this temperature + + //#define CONTROLLER_FAN_EDITABLE // Enable M710 configurable settings + #if ENABLED(CONTROLLER_FAN_EDITABLE) + #define CONTROLLER_FAN_MENU // Enable the Controller Fan submenu + #endif +#endif + +/** + * Fan Kickstart + * When part cooling or controller fans first start, run at a speed that + * gets it spinning reliably for a short time before setting the requested speed. + * (Does not work on Sanguinololu with FAN_SOFT_PWM.) + */ +//#define FAN_KICKSTART_TIME 100 // (ms) +//#define FAN_KICKSTART_POWER 180 // 64-255 + +// Some coolers may require a non-zero "off" state. +//#define FAN_OFF_PWM 1 + +/** + * PWM Fan Scaling + * + * Define the min/max speeds for PWM fans (as set with M106). + * + * With these options the M106 0-255 value range is scaled to a subset + * to ensure that the fan has enough power to spin, or to run lower + * current fans with higher current. (e.g., 5V/12V fans with 12V/24V) + * Value 0 always turns off the fan. + * + * Define one or both of these to override the default 0-255 range. + */ +//#define FAN_MIN_PWM 50 +//#define FAN_MAX_PWM 128 + +/** + * Fan Fast PWM + * + * Combinations of PWM Modes, prescale values and TOP resolutions are used internally + * to produce a frequency as close as possible to the desired frequency. + * + * FAST_PWM_FAN_FREQUENCY + * Set this to your desired frequency. + * For AVR, if left undefined this defaults to F = F_CPU/(2*255*1) + * i.e., F = 31.4kHz on 16MHz microcontrollers or F = 39.2kHz on 20MHz microcontrollers. + * For non AVR, if left undefined this defaults to F = 1Khz. + * This F value is only to protect the hardware from an absence of configuration + * and not to complete it when users are not aware that the frequency must be specifically set to support the target board. + * + * NOTE: Setting very low frequencies (< 10 Hz) may result in unexpected timer behavior. + * Setting very high frequencies can damage your hardware. + * + * USE_OCR2A_AS_TOP [undefined by default] + * Boards that use TIMER2 for PWM have limitations resulting in only a few possible frequencies on TIMER2: + * 16MHz MCUs: [62.5kHz, 31.4kHz (default), 7.8kHz, 3.92kHz, 1.95kHz, 977Hz, 488Hz, 244Hz, 60Hz, 122Hz, 30Hz] + * 20MHz MCUs: [78.1kHz, 39.2kHz (default), 9.77kHz, 4.9kHz, 2.44kHz, 1.22kHz, 610Hz, 305Hz, 153Hz, 76Hz, 38Hz] + * A greater range can be achieved by enabling USE_OCR2A_AS_TOP. But note that this option blocks the use of + * PWM on pin OC2A. Only use this option if you don't need PWM on 0C2A. (Check your schematic.) + * USE_OCR2A_AS_TOP sacrifices duty cycle control resolution to achieve this broader range of frequencies. + */ +//#define FAST_PWM_FAN // Increase the fan PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino +#if ENABLED(FAST_PWM_FAN) + //#define FAST_PWM_FAN_FREQUENCY 31400 // Define here to override the defaults below + //#define USE_OCR2A_AS_TOP + #ifndef FAST_PWM_FAN_FREQUENCY + #ifdef __AVR__ + #define FAST_PWM_FAN_FREQUENCY ((F_CPU) / (2 * 255 * 1)) + #else + #define FAST_PWM_FAN_FREQUENCY 1000U + #endif + #endif +#endif + +/** + * Use one of the PWM fans as a redundant part-cooling fan + */ +//#define REDUNDANT_PART_COOLING_FAN 2 // Index of the fan to sync with FAN 0. + +// @section extruder + +/** + * Extruder cooling fans + * + * Extruder auto fans automatically turn on when their extruders' + * temperatures go above EXTRUDER_AUTO_FAN_TEMPERATURE. + * + * Your board's pins file specifies the recommended pins. Override those here + * or set to -1 to disable completely. + * + * Multiple extruders can be assigned to the same pin in which case + * the fan will turn on when any selected extruder is above the threshold. + */ +//#define E0_AUTO_FAN_PIN -1 +#define E1_AUTO_FAN_PIN -1 +#define E2_AUTO_FAN_PIN -1 +#define E3_AUTO_FAN_PIN -1 +#define E4_AUTO_FAN_PIN -1 +#define E5_AUTO_FAN_PIN -1 +#define E6_AUTO_FAN_PIN -1 +#define E7_AUTO_FAN_PIN -1 +#define CHAMBER_AUTO_FAN_PIN -1 +#define COOLER_AUTO_FAN_PIN -1 + +#define EXTRUDER_AUTO_FAN_TEMPERATURE 50 +#define EXTRUDER_AUTO_FAN_SPEED 255 // 255 == full speed +#define CHAMBER_AUTO_FAN_TEMPERATURE 30 +#define CHAMBER_AUTO_FAN_SPEED 255 +#define COOLER_AUTO_FAN_TEMPERATURE 18 +#define COOLER_AUTO_FAN_SPEED 255 + +/** + * Hotend Cooling Fans tachometers + * + * Define one or more tachometer pins to enable fan speed + * monitoring, and reporting of fan speeds with M123. + * + * NOTE: Only works with fans up to 7000 RPM. + */ +//#define FOURWIRES_FANS // Needed with AUTO_FAN when 4-wire PWM fans are installed +//#define E0_FAN_TACHO_PIN -1 +//#define E0_FAN_TACHO_PULLUP +//#define E0_FAN_TACHO_PULLDOWN +//#define E1_FAN_TACHO_PIN -1 +//#define E1_FAN_TACHO_PULLUP +//#define E1_FAN_TACHO_PULLDOWN +//#define E2_FAN_TACHO_PIN -1 +//#define E2_FAN_TACHO_PULLUP +//#define E2_FAN_TACHO_PULLDOWN +//#define E3_FAN_TACHO_PIN -1 +//#define E3_FAN_TACHO_PULLUP +//#define E3_FAN_TACHO_PULLDOWN +//#define E4_FAN_TACHO_PIN -1 +//#define E4_FAN_TACHO_PULLUP +//#define E4_FAN_TACHO_PULLDOWN +//#define E5_FAN_TACHO_PIN -1 +//#define E5_FAN_TACHO_PULLUP +//#define E5_FAN_TACHO_PULLDOWN +//#define E6_FAN_TACHO_PIN -1 +//#define E6_FAN_TACHO_PULLUP +//#define E6_FAN_TACHO_PULLDOWN +//#define E7_FAN_TACHO_PIN -1 +//#define E7_FAN_TACHO_PULLUP +//#define E7_FAN_TACHO_PULLDOWN + +/** + * Part-Cooling Fan Multiplexer + * + * This feature allows you to digitally multiplex the fan output. + * The multiplexer is automatically switched at tool-change. + * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans. + */ +#define FANMUX0_PIN -1 +#define FANMUX1_PIN -1 +#define FANMUX2_PIN -1 + +// @section homing + +// If you want endstops to stay on (by default) even when not homing +// enable this option. Override at any time with M120, M121. +//#define ENDSTOPS_ALWAYS_ON_DEFAULT + +// @section extras + +//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. + +// Employ an external closed loop controller. Override pins here if needed. +//#define EXTERNAL_CLOSED_LOOP_CONTROLLER +#if ENABLED(EXTERNAL_CLOSED_LOOP_CONTROLLER) + //#define CLOSED_LOOP_ENABLE_PIN -1 + //#define CLOSED_LOOP_MOVE_COMPLETE_PIN -1 +#endif + +/** + * Multi-Stepper / Multi-Endstop + * + * When X2_DRIVER_TYPE is defined, this indicates that the X and X2 motors work in tandem. + * The following explanations for X also apply to Y and Z multi-stepper setups. + * Endstop offsets may be changed by 'M666 X Y Z' and stored to EEPROM. + * + * - Enable INVERT_X2_VS_X_DIR if the X2 motor requires an opposite DIR signal from X. + * + * - Enable X_DUAL_ENDSTOPS if the second motor has its own endstop, with adjustable offset. + * + * - Extra endstops are included in the output of 'M119'. + * + * - Set X_DUAL_ENDSTOP_ADJUSTMENT to the known error in the X2 endstop. + * Applied to the X2 motor on 'G28' / 'G28 X'. + * Get the offset by homing X and measuring the error. + * Also set with 'M666 X' and stored to EEPROM with 'M500'. + * + * - Use X2_USE_ENDSTOP to set the endstop plug by name. (_XMIN_, _XMAX_, _YMIN_, _YMAX_, _ZMIN_, _ZMAX_) + */ +#if HAS_X2_STEPPER && DISABLED(DUAL_X_CARRIAGE) + //#define INVERT_X2_VS_X_DIR // X2 direction signal is the opposite of X + //#define X_DUAL_ENDSTOPS // X2 has its own endstop + #if ENABLED(X_DUAL_ENDSTOPS) + #define X2_USE_ENDSTOP _XMAX_ // X2 endstop board plug. Don't forget to enable USE_*_PLUG. + #define X2_ENDSTOP_ADJUSTMENT 0 // X2 offset relative to X endstop + #endif +#endif + +#if HAS_DUAL_Y_STEPPERS + //#define INVERT_Y2_VS_Y_DIR // Y2 direction signal is the opposite of Y + //#define Y_DUAL_ENDSTOPS // Y2 has its own endstop + #if ENABLED(Y_DUAL_ENDSTOPS) + #define Y2_USE_ENDSTOP _YMAX_ // Y2 endstop board plug. Don't forget to enable USE_*_PLUG. + #define Y2_ENDSTOP_ADJUSTMENT 0 // Y2 offset relative to Y endstop + #endif +#endif + +// +// Multi-Z steppers +// +#ifdef Z2_DRIVER_TYPE + //#define INVERT_Z2_VS_Z_DIR // Z2 direction signal is the opposite of Z + + //#define Z_MULTI_ENDSTOPS // Other Z axes have their own endstops + #if ENABLED(Z_MULTI_ENDSTOPS) + #define Z2_USE_ENDSTOP _XMAX_ // Z2 endstop board plug. Don't forget to enable USE_*_PLUG. + #define Z2_ENDSTOP_ADJUSTMENT 0 // Z2 offset relative to Z endstop + #endif + #ifdef Z3_DRIVER_TYPE + //#define INVERT_Z3_VS_Z_DIR // Z3 direction signal is the opposite of Z + #if ENABLED(Z_MULTI_ENDSTOPS) + #define Z3_USE_ENDSTOP _YMAX_ // Z3 endstop board plug. Don't forget to enable USE_*_PLUG. + #define Z3_ENDSTOP_ADJUSTMENT 0 // Z3 offset relative to Z endstop + #endif + #endif + #ifdef Z4_DRIVER_TYPE + //#define INVERT_Z4_VS_Z_DIR // Z4 direction signal is the opposite of Z + #if ENABLED(Z_MULTI_ENDSTOPS) + #define Z4_USE_ENDSTOP _ZMAX_ // Z4 endstop board plug. Don't forget to enable USE_*_PLUG. + #define Z4_ENDSTOP_ADJUSTMENT 0 // Z4 offset relative to Z endstop + #endif + #endif +#endif + +// Drive the E axis with two synchronized steppers +//#define E_DUAL_STEPPER_DRIVERS +#if ENABLED(E_DUAL_STEPPER_DRIVERS) + //#define INVERT_E1_VS_E0_DIR // E direction signals are opposites +#endif + +// Activate a solenoid on the active extruder with M380. Disable all with M381. +// Define SOL0_PIN, SOL1_PIN, etc., for each extruder that has a solenoid. +//#define EXT_SOLENOID + +// @section homing + +/** + * Homing Procedure + * Homing (G28) does an indefinite move towards the endstops to establish + * the position of the toolhead relative to the workspace. + */ + +//#define SENSORLESS_BACKOFF_MM { 2, 2, 0 } // (linear=mm, rotational=°) Backoff from endstops before sensorless homing + +#define HOMING_BUMP_MM { 5, 5, 2 } // (linear=mm, rotational=°) Backoff from endstops after first bump +#define HOMING_BUMP_DIVISOR { 2, 2, 4 } // Re-Bump Speed Divisor (Divides the Homing Feedrate) + +//#define HOMING_BACKOFF_POST_MM { 2, 2, 2 } // (linear=mm, rotational=°) Backoff from endstops after homing +//#define XY_COUNTERPART_BACKOFF_MM 0 // (mm) Backoff X after homing Y, and vice-versa + +#define QUICK_HOME // If G28 contains XY do a diagonal move first +//#define HOME_Y_BEFORE_X // If G28 contains XY home Y before X +//#define HOME_Z_FIRST // Home Z first. Requires a Z-MIN endstop (not a probe). +//#define CODEPENDENT_XY_HOMING // If X/Y can't home without homing Y/X first + +// @section bltouch + +#if ENABLED(BLTOUCH) + /** + * Either: Use the defaults (recommended) or: For special purposes, use the following DEFINES + * Do not activate settings that the probe might not understand. Clones might misunderstand + * advanced commands. + * + * Note: If the probe is not deploying, do a "Reset" and "Self-Test" and then check the + * wiring of the BROWN, RED and ORANGE wires. + * + * Note: If the trigger signal of your probe is not being recognized, it has been very often + * because the BLACK and WHITE wires needed to be swapped. They are not "interchangeable" + * like they would be with a real switch. So please check the wiring first. + * + * Settings for all BLTouch and clone probes: + */ + + // Safety: The probe needs time to recognize the command. + // Minimum command delay (ms). Enable and increase if needed. + #define BLTOUCH_DELAY 500 + + /** + * Settings for BLTOUCH Classic 1.2, 1.3 or BLTouch Smart 1.0, 2.0, 2.2, 3.0, 3.1, and most clones: + */ + + // Feature: Switch into SW mode after a deploy. It makes the output pulse longer. Can be useful + // in special cases, like noisy or filtered input configurations. + #define BLTOUCH_FORCE_SW_MODE + + /** + * Settings for BLTouch Smart 3.0 and 3.1 + * Summary: + * - Voltage modes: 5V and OD (open drain - "logic voltage free") output modes + * - High-Speed mode + * - Disable LCD voltage options + */ + + /** + * Danger: Don't activate 5V mode unless attached to a 5V-tolerant controller! + * V3.0 or 3.1: Set default mode to 5V mode at Marlin startup. + * If disabled, OD mode is the hard-coded default on 3.0 + * On startup, Marlin will compare its eeprom to this value. If the selected mode + * differs, a mode set eeprom write will be completed at initialization. + * Use the option below to force an eeprom write to a V3.1 probe regardless. + */ + //#define BLTOUCH_SET_5V_MODE + + /** + * Safety: Activate if connecting a probe with an unknown voltage mode. + * V3.0: Set a probe into mode selected above at Marlin startup. Required for 5V mode on 3.0 + * V3.1: Force a probe with unknown mode into selected mode at Marlin startup ( = Probe EEPROM write ) + * To preserve the life of the probe, use this once then turn it off and re-flash. + */ + //#define BLTOUCH_FORCE_MODE_SET + + /** + * Enable "HIGH SPEED" option for probing. + * Danger: Disable if your probe sometimes fails. Only suitable for stable well-adjusted systems. + * This feature was designed for Deltabots with very fast Z moves; however, higher speed Cartesians + * might be able to use it. If the machine can't raise Z fast enough the BLTouch may go into ALARM. + * + * Set the default state here, change with 'M401 S' or UI, use M500 to save, M502 to reset. + */ + //#define BLTOUCH_HS_MODE true + + // Safety: Enable voltage mode settings in the LCD menu. + //#define BLTOUCH_LCD_VOLTAGE_MENU + +#endif // BLTOUCH + +// @section extras + +/** + * Z Steppers Auto-Alignment + * Add the G34 command to align multiple Z steppers using a bed probe. + */ +//#define Z_STEPPER_AUTO_ALIGN +#if ENABLED(Z_STEPPER_AUTO_ALIGN) + /** + * Define probe X and Y positions for Z1, Z2 [, Z3 [, Z4]] + * These positions are machine-relative and do not shift with the M206 home offset! + * If not defined, probe limits will be used. + * Override with 'M422 S X Y'. + */ + //#define Z_STEPPER_ALIGN_XY { { 10, 190 }, { 100, 10 }, { 190, 190 } } + + /** + * Orientation for the automatically-calculated probe positions. + * Override Z stepper align points with 'M422 S X Y' + * + * 2 Steppers: (0) (1) + * | | 2 | + * | 1 2 | | + * | | 1 | + * + * 3 Steppers: (0) (1) (2) (3) + * | 3 | 1 | 2 1 | 2 | + * | | 3 | | 3 | + * | 1 2 | 2 | 3 | 1 | + * + * 4 Steppers: (0) (1) (2) (3) + * | 4 3 | 1 4 | 2 1 | 3 2 | + * | | | | | + * | 1 2 | 2 3 | 3 4 | 4 1 | + */ + #ifndef Z_STEPPER_ALIGN_XY + //#define Z_STEPPERS_ORIENTATION 0 + #endif + + /** + * Z Stepper positions for more rapid convergence in bed alignment. + * Requires 3 or 4 Z steppers. + * + * Define Stepper XY positions for Z1, Z2, Z3... corresponding to the screw + * positions in the bed carriage, with one position per Z stepper in stepper + * driver order. + */ + //#define Z_STEPPER_ALIGN_STEPPER_XY { { 210.7, 102.5 }, { 152.6, 220.0 }, { 94.5, 102.5 } } + + #ifndef Z_STEPPER_ALIGN_STEPPER_XY + // Amplification factor. Used to scale the correction step up or down in case + // the stepper (spindle) position is farther out than the test point. + #define Z_STEPPER_ALIGN_AMP 1.0 // Use a value > 1.0 NOTE: This may cause instability! + #endif + + // On a 300mm bed a 5% grade would give a misalignment of ~1.5cm + #define G34_MAX_GRADE 5 // (%) Maximum incline that G34 will handle + #define Z_STEPPER_ALIGN_ITERATIONS 5 // Number of iterations to apply during alignment + #define Z_STEPPER_ALIGN_ACC 0.02 // Stop iterating early if the accuracy is better than this + #define RESTORE_LEVELING_AFTER_G34 // Restore leveling after G34 is done? + // After G34, re-home Z (G28 Z) or just calculate it from the last probe heights? + // Re-homing might be more precise in reproducing the actual 'G28 Z' homing height, especially on an uneven bed. + #define HOME_AFTER_G34 +#endif + +// +// Add the G35 command to read bed corners to help adjust screws. Requires a bed probe. +// +//#define ASSISTED_TRAMMING +#if ENABLED(ASSISTED_TRAMMING) + + // Define positions for probe points. + #define TRAMMING_POINT_XY { { 20, 20 }, { 180, 20 }, { 180, 180 }, { 20, 180 } } + + // Define position names for probe points. + #define TRAMMING_POINT_NAME_1 "Front-Left" + #define TRAMMING_POINT_NAME_2 "Front-Right" + #define TRAMMING_POINT_NAME_3 "Back-Right" + #define TRAMMING_POINT_NAME_4 "Back-Left" + + #define RESTORE_LEVELING_AFTER_G35 // Enable to restore leveling setup after operation + #define REPORT_TRAMMING_MM // Report Z deviation (mm) for each point relative to the first + + #define ASSISTED_TRAMMING_WIZARD // Add a Tramming Wizard to the LCD menu + + //#define ASSISTED_TRAMMING_WAIT_POSITION { X_CENTER, Y_CENTER, 30 } // Move the nozzle out of the way for adjustment + + /** + * Screw thread: + * M3: 30 = Clockwise, 31 = Counter-Clockwise + * M4: 40 = Clockwise, 41 = Counter-Clockwise + * M5: 50 = Clockwise, 51 = Counter-Clockwise + */ + + // Default is 30, but research online shows the Ender 3 bed uses M4 screws - DELICIOUS + #define TRAMMING_SCREW_THREAD 40 + +#endif + +// @section motion + +/** + * Input Shaping -- EXPERIMENTAL + * + * Zero Vibration (ZV) Input Shaping for X and/or Y movements. + * + * This option uses a lot of SRAM for the step buffer. The buffer size is + * calculated automatically from SHAPING_FREQ_[XY], DEFAULT_AXIS_STEPS_PER_UNIT, + * DEFAULT_MAX_FEEDRATE and ADAPTIVE_STEP_SMOOTHING. The default calculation can + * be overridden by setting SHAPING_MIN_FREQ and/or SHAPING_MAX_FEEDRATE. + * The higher the frequency and the lower the feedrate, the smaller the buffer. + * If the buffer is too small at runtime, input shaping will have reduced + * effectiveness during high speed movements. + * + * Tune with M593 D F: + * + * D Set the zeta/damping factor. If axes (X, Y, etc.) are not specified, set for all axes. + * F Set the frequency. If axes (X, Y, etc.) are not specified, set for all axes. + * T[map] Input Shaping type, 0:ZV, 1:EI, 2:2H EI (not implemented yet) + * X<1> Set the given parameters only for the X axis. + * Y<1> Set the given parameters only for the Y axis. + */ +#define INPUT_SHAPING_X +#define INPUT_SHAPING_Y +#if EITHER(INPUT_SHAPING_X, INPUT_SHAPING_Y) + #if ENABLED(INPUT_SHAPING_X) + #define SHAPING_FREQ_X 40 // (Hz) The default dominant resonant frequency on the X axis. + #define SHAPING_ZETA_X 0.15f // Damping ratio of the X axis (range: 0.0 = no damping to 1.0 = critical damping). + #endif + #if ENABLED(INPUT_SHAPING_Y) + #define SHAPING_FREQ_Y 40 // (Hz) The default dominant resonant frequency on the Y axis. + #define SHAPING_ZETA_Y 0.15f // Damping ratio of the Y axis (range: 0.0 = no damping to 1.0 = critical damping). + #endif + //#define SHAPING_MIN_FREQ 20 // By default the minimum of the shaping frequencies. Override to affect SRAM usage. + //#define SHAPING_MAX_STEPRATE 10000 // By default the maximum total step rate of the shaped axes. Override to affect SRAM usage. + #define SHAPING_MENU // Add a menu to the LCD to set shaping parameters. +#endif + +#define AXIS_RELATIVE_MODES { false, false, false, false } + +// Add a Duplicate option for well-separated conjoined nozzles +//#define MULTI_NOZZLE_DUPLICATION + +// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +#define INVERT_X_STEP_PIN false +#define INVERT_Y_STEP_PIN false +#define INVERT_Z_STEP_PIN false +#define INVERT_I_STEP_PIN false +#define INVERT_J_STEP_PIN false +#define INVERT_K_STEP_PIN false +#define INVERT_U_STEP_PIN false +#define INVERT_V_STEP_PIN false +#define INVERT_W_STEP_PIN false +#define INVERT_E_STEP_PIN false + +/** + * Idle Stepper Shutdown + * Set DISABLE_INACTIVE_? 'true' to shut down axis steppers after an idle period. + * The Deactive Time can be overridden with M18 and M84. Set to 0 for No Timeout. + */ +#define DEFAULT_STEPPER_DEACTIVE_TIME 120 +#define DISABLE_INACTIVE_X true +#define DISABLE_INACTIVE_Y true +#define DISABLE_INACTIVE_Z true // Set 'false' if the nozzle could fall onto your printed part! +#define DISABLE_INACTIVE_I true +#define DISABLE_INACTIVE_J true +#define DISABLE_INACTIVE_K true +#define DISABLE_INACTIVE_U true +#define DISABLE_INACTIVE_V true +#define DISABLE_INACTIVE_W true +#define DISABLE_INACTIVE_E true + +// Default Minimum Feedrates for printing and travel moves +#define DEFAULT_MINIMUMFEEDRATE 0.0 // (mm/s. °/s for rotational-only moves) Minimum feedrate. Set with M205 S. +#define DEFAULT_MINTRAVELFEEDRATE 0.0 // (mm/s. °/s for rotational-only moves) Minimum travel feedrate. Set with M205 T. + +// Minimum time that a segment needs to take as the buffer gets emptied +#define DEFAULT_MINSEGMENTTIME 20000 // (µs) Set with M205 B. + +// Slow down the machine if the lookahead buffer is (by default) half full. +// Increase the slowdown divisor for larger buffer sizes. +#define SLOWDOWN +#if ENABLED(SLOWDOWN) + #define SLOWDOWN_DIVISOR 2 +#endif + +/** + * XY Frequency limit + * Reduce resonance by limiting the frequency of small zigzag infill moves. + * See https://hydraraptor.blogspot.com/2010/12/frequency-limit.html + * Use M201 F G to change limits at runtime. + */ +//#define XY_FREQUENCY_LIMIT 10 // (Hz) Maximum frequency of small zigzag infill moves. Set with M201 F. +#ifdef XY_FREQUENCY_LIMIT + #define XY_FREQUENCY_MIN_PERCENT 5 // (percent) Minimum FR percentage to apply. Set with M201 G. +#endif + +// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end +// of the buffer and all stops. This should not be much greater than zero and should only be changed +// if unwanted behavior is observed on a user's machine when running at very slow speeds. +#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s) + +// +// Backlash Compensation +// Adds extra movement to axes on direction-changes to account for backlash. +// +//#define BACKLASH_COMPENSATION +#if ENABLED(BACKLASH_COMPENSATION) + // Define values for backlash distance and correction. + // If BACKLASH_GCODE is enabled these values are the defaults. + #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (linear=mm, rotational=°) One value for each linear axis + #define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction + + // Add steps for motor direction changes on CORE kinematics + //#define CORE_BACKLASH + + // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments + // to reduce print artifacts. (Enabling this is costly in memory and computation!) + //#define BACKLASH_SMOOTHING_MM 3 // (mm) + + // Add runtime configuration and tuning of backlash values (M425) + //#define BACKLASH_GCODE + + #if ENABLED(BACKLASH_GCODE) + // Measure the Z backlash when probing (G29) and set with "M425 Z" + #define MEASURE_BACKLASH_WHEN_PROBING + + #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) + // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT + // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION + // increments while checking for the contact to be broken. + #define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm) + #define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm) + #define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_FEEDRATE_SLOW // (mm/min) + #endif + #endif +#endif + +/** + * Automatic backlash, position, and hotend offset calibration + * + * Enable G425 to run automatic calibration using an electrically- + * conductive cube, bolt, or washer mounted on the bed. + * + * G425 uses the probe to touch the top and sides of the calibration object + * on the bed and measures and/or correct positional offsets, axis backlash + * and hotend offsets. + * + * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within + * ±5mm of true values for G425 to succeed. + */ +//#define CALIBRATION_GCODE +#if ENABLED(CALIBRATION_GCODE) + + //#define CALIBRATION_SCRIPT_PRE "M117 Starting Auto-Calibration\nT0\nG28\nG12\nM117 Calibrating..." + //#define CALIBRATION_SCRIPT_POST "M500\nM117 Calibration data saved" + + #define CALIBRATION_MEASUREMENT_RESOLUTION 0.01 // mm + + #define CALIBRATION_FEEDRATE_SLOW 60 // mm/min + #define CALIBRATION_FEEDRATE_FAST 1200 // mm/min + #define CALIBRATION_FEEDRATE_TRAVEL 3000 // mm/min + + // The following parameters refer to the conical section of the nozzle tip. + #define CALIBRATION_NOZZLE_TIP_HEIGHT 1.0 // mm + #define CALIBRATION_NOZZLE_OUTER_DIAMETER 2.0 // mm + + // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM). + //#define CALIBRATION_REPORTING + + // The true location and dimension the cube/bolt/washer on the bed. + #define CALIBRATION_OBJECT_CENTER { 264.0, -22.0, -2.0 } // mm + #define CALIBRATION_OBJECT_DIMENSIONS { 10.0, 10.0, 10.0 } // mm + + // Comment out any sides which are unreachable by the probe. For best + // auto-calibration results, all sides must be reachable. + #define CALIBRATION_MEASURE_RIGHT + #define CALIBRATION_MEASURE_FRONT + #define CALIBRATION_MEASURE_LEFT + #define CALIBRATION_MEASURE_BACK + + //#define CALIBRATION_MEASURE_IMIN + //#define CALIBRATION_MEASURE_IMAX + //#define CALIBRATION_MEASURE_JMIN + //#define CALIBRATION_MEASURE_JMAX + //#define CALIBRATION_MEASURE_KMIN + //#define CALIBRATION_MEASURE_KMAX + //#define CALIBRATION_MEASURE_UMIN + //#define CALIBRATION_MEASURE_UMAX + //#define CALIBRATION_MEASURE_VMIN + //#define CALIBRATION_MEASURE_VMAX + //#define CALIBRATION_MEASURE_WMIN + //#define CALIBRATION_MEASURE_WMAX + + // Probing at the exact top center only works if the center is flat. If + // probing on a screwhead or hollow washer, probe near the edges. + //#define CALIBRATION_MEASURE_AT_TOP_EDGES + + // Define the pin to read during calibration + #ifndef CALIBRATION_PIN + //#define CALIBRATION_PIN -1 // Define here to override the default pin + #define CALIBRATION_PIN_INVERTING false // Set to true to invert the custom pin + //#define CALIBRATION_PIN_PULLDOWN + #define CALIBRATION_PIN_PULLUP + #endif +#endif + +/** + * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies + * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible + * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the + * lowest stepping frequencies. + */ +//#define ADAPTIVE_STEP_SMOOTHING + +/** + * Custom Microstepping + * Override as-needed for your setup. Up to 3 MS pins are supported. + */ +//#define MICROSTEP1 LOW,LOW,LOW +//#define MICROSTEP2 HIGH,LOW,LOW +//#define MICROSTEP4 LOW,HIGH,LOW +//#define MICROSTEP8 HIGH,HIGH,LOW +//#define MICROSTEP16 LOW,LOW,HIGH +//#define MICROSTEP32 HIGH,LOW,HIGH + +// Microstep settings (Requires a board with pins named X_MS1, X_MS2, etc.) +#define MICROSTEP_MODES { 16, 16, 16, 16, 16, 16 } // [1,2,4,8,16] + +/** + * @section stepper motor current + * + * Some boards have a means of setting the stepper motor current via firmware. + * + * The power on motor currents are set by: + * PWM_MOTOR_CURRENT - used by MINIRAMBO & ULTIMAIN_2 + * known compatible chips: A4982 + * DIGIPOT_MOTOR_CURRENT - used by BQ_ZUM_MEGA_3D, RAMBO & SCOOVO_X9H + * known compatible chips: AD5206 + * DAC_MOTOR_CURRENT_DEFAULT - used by PRINTRBOARD_REVF & RIGIDBOARD_V2 + * known compatible chips: MCP4728 + * DIGIPOT_I2C_MOTOR_CURRENTS - used by 5DPRINT, AZTEEG_X3_PRO, AZTEEG_X5_MINI_WIFI, MIGHTYBOARD_REVE + * known compatible chips: MCP4451, MCP4018 + * + * Motor currents can also be set by M907 - M910 and by the LCD. + * M907 - applies to all. + * M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H + * M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2 + */ +//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps +//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A) +//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis + +/** + * I2C-based DIGIPOTs (e.g., Azteeg X3 Pro) + */ +//#define DIGIPOT_MCP4018 // Requires https://github.com/felias-fogg/SlowSoftI2CMaster +//#define DIGIPOT_MCP4451 +#if EITHER(DIGIPOT_MCP4018, DIGIPOT_MCP4451) + #define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT:4 AZTEEG_X3_PRO:8 MKS_SBASE:5 MIGHTYBOARD_REVE:5 + + // Actual motor currents in Amps. The number of entries must match DIGIPOT_I2C_NUM_CHANNELS. + // These correspond to the physical drivers, so be mindful if the order is changed. + #define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO + + //#define DIGIPOT_USE_RAW_VALUES // Use DIGIPOT_MOTOR_CURRENT raw wiper values (instead of A4988 motor currents) + + /** + * Common slave addresses: + * + * A (A shifted) B (B shifted) IC + * Smoothie 0x2C (0x58) 0x2D (0x5A) MCP4451 + * AZTEEG_X3_PRO 0x2C (0x58) 0x2E (0x5C) MCP4451 + * AZTEEG_X5_MINI 0x2C (0x58) 0x2E (0x5C) MCP4451 + * AZTEEG_X5_MINI_WIFI 0x58 0x5C MCP4451 + * MIGHTYBOARD_REVE 0x2F (0x5E) MCP4018 + */ + //#define DIGIPOT_I2C_ADDRESS_A 0x2C // Unshifted slave address for first DIGIPOT + //#define DIGIPOT_I2C_ADDRESS_B 0x2D // Unshifted slave address for second DIGIPOT +#endif + +//=========================================================================== +//=============================Additional Features=========================== +//=========================================================================== + +// @section lcd + +#if HAS_MANUAL_MOVE_MENU + #define MANUAL_FEEDRATE { 50*60, 50*60, 4*60, 2*60 } // (mm/min) Feedrates for manual moves along X, Y, Z, E from panel + #define FINE_MANUAL_MOVE 0.025 // (mm) Smallest manual move (< 0.1mm) applying to Z on most machines + #if IS_ULTIPANEL + #define MANUAL_E_MOVES_RELATIVE // Display extruder move distance rather than "position" + #define ULTIPANEL_FEEDMULTIPLY // Encoder sets the feedrate multiplier on the Status Screen + #endif +#endif + +// Change values more rapidly when the encoder is rotated faster +#define ENCODER_RATE_MULTIPLIER +#if ENABLED(ENCODER_RATE_MULTIPLIER) + #define ENCODER_10X_STEPS_PER_SEC 30 // (steps/s) Encoder rate for 10x speed + #define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed +#endif + +// Play a beep when the feedrate is changed from the Status Screen +//#define BEEP_ON_FEEDRATE_CHANGE +#if ENABLED(BEEP_ON_FEEDRATE_CHANGE) + #define FEEDRATE_CHANGE_BEEP_DURATION 10 + #define FEEDRATE_CHANGE_BEEP_FREQUENCY 440 +#endif + +// +// LCD Backlight Timeout +// +//#define LCD_BACKLIGHT_TIMEOUT_MINS 5 // (minutes) Timeout before turning off the backlight + +#if HAS_BED_PROBE // && EITHER(HAS_MARLINUI_MENU, HAS_TFT_LVGL_UI) + #define PROBE_OFFSET_WIZARD // Add a Probe Z Offset calibration option to the LCD menu + #if ENABLED(PROBE_OFFSET_WIZARD) + /** + * Enable to init the Probe Z-Offset when starting the Wizard. + * Use a height slightly above the estimated nozzle-to-probe Z offset. + * For example, with an offset of -5, consider a starting height of -4. + */ + //#define PROBE_OFFSET_WIZARD_START_Z -4.0 + + // Set a convenient position to do the calibration (probing point and nozzle/bed-distance) + //#define PROBE_OFFSET_WIZARD_XY_POS { X_CENTER, Y_CENTER } + #endif +#endif + +#if HAS_MARLINUI_MENU + + #if HAS_BED_PROBE + // Add calibration in the Probe Offsets menu to compensate for X-axis twist. + //#define X_AXIS_TWIST_COMPENSATION + #if ENABLED(X_AXIS_TWIST_COMPENSATION) + /** + * Enable to init the Probe Z-Offset when starting the Wizard. + * Use a height slightly above the estimated nozzle-to-probe Z offset. + * For example, with an offset of -5, consider a starting height of -4. + */ + #define XATC_START_Z 0.0 + #define XATC_MAX_POINTS 3 // Number of points to probe in the wizard + #define XATC_Y_POSITION Y_CENTER // (mm) Y position to probe + #define XATC_Z_OFFSETS { 0, 0, 0 } // Z offsets for X axis sample points + #endif + + // Show Deploy / Stow Probe options in the Motion menu. + #define PROBE_DEPLOY_STOW_MENU + #endif + + // Include a page of printer information in the LCD Main Menu + #define LCD_INFO_MENU + #if ENABLED(LCD_INFO_MENU) + //#define LCD_PRINTER_INFO_IS_BOOTSCREEN // Show bootscreen(s) instead of Printer Info pages + #endif + + // BACK menu items keep the highlight at the top + //#define TURBO_BACK_MENU_ITEM + + // Insert a menu for preheating at the top level to allow for quick access + //#define PREHEAT_SHORTCUT_MENU_ITEM + +#endif // HAS_MARLINUI_MENU + +#if ANY(HAS_DISPLAY, DWIN_LCD_PROUI, DWIN_CREALITY_LCD_JYERSUI) + #define SOUND_MENU_ITEM // Add a mute option to the LCD menu + #define SOUND_ON_DEFAULT // Buzzer/speaker default enabled state +#endif + +#if EITHER(HAS_DISPLAY, DWIN_LCD_PROUI) + // The timeout to return to the status screen from sub-menus + //#define LCD_TIMEOUT_TO_STATUS 15000 // (ms) + + #if ENABLED(SHOW_BOOTSCREEN) + #define BOOTSCREEN_TIMEOUT 3000 // (ms) Total Duration to display the boot screen(s) + #if EITHER(HAS_MARLINUI_U8GLIB, TFT_COLOR_UI) + #define BOOT_MARLIN_LOGO_SMALL // Show a smaller Marlin logo on the Boot Screen (saving lots of flash) + #endif + #endif + + // Scroll a longer status message into view + #define STATUS_MESSAGE_SCROLLING + + // Apply a timeout to low-priority status messages + //#define STATUS_MESSAGE_TIMEOUT_SEC 30 // (seconds) + + // On the Info Screen, display XY with one decimal place when possible + //#define LCD_DECIMAL_SMALL_XY + + // Show the E position (filament used) during printing + //#define LCD_SHOW_E_TOTAL + +#endif // HAS_DISPLAY || DWIN_LCD_PROUI + +// Add 'M73' to set print job progress, overrides Marlin's built-in estimate +//#define SET_PROGRESS_MANUALLY +#if ENABLED(SET_PROGRESS_MANUALLY) + #define SET_PROGRESS_PERCENT // Add 'P' parameter to set percentage done + #define SET_REMAINING_TIME // Add 'R' parameter to set remaining time + //#define SET_INTERACTION_TIME // Add 'C' parameter to set time until next filament change or other user interaction + //#define M73_REPORT // Report M73 values to host + #if BOTH(M73_REPORT, SDSUPPORT) + #define M73_REPORT_SD_ONLY // Report only when printing from SD + #endif +#endif + +// LCD Print Progress options. Multiple times may be displayed in turn. +#if HAS_DISPLAY && EITHER(SDSUPPORT, SET_PROGRESS_MANUALLY) + #define SHOW_PROGRESS_PERCENT // Show print progress percentage (doesn't affect progress bar) + //#define SHOW_ELAPSED_TIME // Display elapsed printing time (prefix 'E') + #define SHOW_REMAINING_TIME // Display estimated time to completion (prefix 'R') + #if ENABLED(SET_INTERACTION_TIME) + #define SHOW_INTERACTION_TIME // Display time until next user interaction ('C' = filament change) + #endif + //#define PRINT_PROGRESS_SHOW_DECIMALS // Show/report progress with decimal digits, not all UIs support this + + #if EITHER(HAS_MARLINUI_HD44780, IS_TFTGLCD_PANEL) + //#define LCD_PROGRESS_BAR // Show a progress bar on HD44780 LCDs for SD printing + #if ENABLED(LCD_PROGRESS_BAR) + #define PROGRESS_BAR_BAR_TIME 2000 // (ms) Amount of time to show the bar + #define PROGRESS_BAR_MSG_TIME 3000 // (ms) Amount of time to show the status message + #define PROGRESS_MSG_EXPIRE 0 // (ms) Amount of time to retain the status message (0=forever) + //#define PROGRESS_MSG_ONCE // Show the message for MSG_TIME then clear it + //#define LCD_PROGRESS_BAR_TEST // Add a menu item to test the progress bar + #endif + #endif +#endif + +#if ENABLED(SDSUPPORT) + /** + * SD Card SPI Speed + * May be required to resolve "volume init" errors. + * + * Enable and set to SPI_HALF_SPEED, SPI_QUARTER_SPEED, or SPI_EIGHTH_SPEED + * otherwise full speed will be applied. + * + * :['SPI_HALF_SPEED', 'SPI_QUARTER_SPEED', 'SPI_EIGHTH_SPEED'] + */ + //#define SD_SPI_SPEED SPI_HALF_SPEED + + // The standard SD detect circuit reads LOW when media is inserted and HIGH when empty. + // Enable this option and set to HIGH if your SD cards are incorrectly detected. + //#define SD_DETECT_STATE HIGH + + //#define SD_IGNORE_AT_STARTUP // Don't mount the SD card when starting up + //#define SDCARD_READONLY // Read-only SD card (to save over 2K of flash) + + //#define GCODE_REPEAT_MARKERS // Enable G-code M808 to set repeat markers and do looping + + #define SD_PROCEDURE_DEPTH 1 // Increase if you need more nested M32 calls + + #define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished + #define SD_FINISHED_RELEASECOMMAND "M84" // Use "M84XYE" to keep Z enabled so your bed stays in place + + // Reverse SD sort to show "more recent" files first, according to the card's FAT. + // Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended. + #define SDCARD_RATHERRECENTFIRST + + #define SD_MENU_CONFIRM_START // Confirm the selected SD file before printing + + //#define NO_SD_AUTOSTART // Remove auto#.g file support completely to save some Flash, SRAM + #define MENU_ADDAUTOSTART // Add a menu option to run auto#.g files + + //#define BROWSE_MEDIA_ON_INSERT // Open the file browser when media is inserted + + //#define MEDIA_MENU_AT_TOP // Force the media menu to be listed on the top of the main menu + + #define EVENT_GCODE_SD_ABORT "G28XY" // G-code to run on SD Abort Print (e.g., "G28XY" or "G27") + + #if ENABLED(PRINTER_EVENT_LEDS) + #define PE_LEDS_COMPLETED_TIME (30*60) // (seconds) Time to keep the LED "done" color before restoring normal illumination + #endif + + /** + * Continue after Power-Loss (Creality3D) + * + * Store the current state to the SD Card at the start of each layer + * during SD printing. If the recovery file is found at boot time, present + * an option on the LCD screen to continue the print from the last-known + * point in the file. + */ + #define POWER_LOSS_RECOVERY + #if ENABLED(POWER_LOSS_RECOVERY) + #define PLR_ENABLED_DEFAULT false // Power Loss Recovery enabled by default. (Set with 'M413 Sn' & M500) + //#define BACKUP_POWER_SUPPLY // Backup power / UPS to move the steppers on power loss + //#define POWER_LOSS_ZRAISE 2 // (mm) Z axis raise on resume (on power loss with UPS) + //#define POWER_LOSS_PIN 44 // Pin to detect power loss. Set to -1 to disable default pin on boards without module. + //#define POWER_LOSS_STATE HIGH // State of pin indicating power loss + //#define POWER_LOSS_PULLUP // Set pullup / pulldown as appropriate for your sensor + //#define POWER_LOSS_PULLDOWN + //#define POWER_LOSS_PURGE_LEN 20 // (mm) Length of filament to purge on resume + //#define POWER_LOSS_RETRACT_LEN 10 // (mm) Length of filament to retract on fail. Requires backup power. + + // Without a POWER_LOSS_PIN the following option helps reduce wear on the SD card, + // especially with "vase mode" printing. Set too high and vases cannot be continued. + #define POWER_LOSS_MIN_Z_CHANGE 0.05 // (mm) Minimum Z change before saving power-loss data + + // Enable if Z homing is needed for proper recovery. 99.9% of the time this should be disabled! + //#define POWER_LOSS_RECOVER_ZHOME + #if ENABLED(POWER_LOSS_RECOVER_ZHOME) + //#define POWER_LOSS_ZHOME_POS { 0, 0 } // Safe XY position to home Z while avoiding objects on the bed + #endif + #endif + + /** + * Sort SD file listings in alphabetical order. + * + * With this option enabled, items on SD cards will be sorted + * by name for easier navigation. + * + * By default... + * + * - Use the slowest -but safest- method for sorting. + * - Folders are sorted to the top. + * - The sort key is statically allocated. + * - No added G-code (M34) support. + * - 40 item sorting limit. (Items after the first 40 are unsorted.) + * + * SD sorting uses static allocation (as set by SDSORT_LIMIT), allowing the + * compiler to calculate the worst-case usage and throw an error if the SRAM + * limit is exceeded. + * + * - SDSORT_USES_RAM provides faster sorting via a static directory buffer. + * - SDSORT_USES_STACK does the same, but uses a local stack-based buffer. + * - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!) + * - SDSORT_DYNAMIC_RAM only uses RAM when the SD menu is visible. (Use with caution!) + */ + #define SDCARD_SORT_ALPHA + + // SD Card Sorting options + #if ENABLED(SDCARD_SORT_ALPHA) + #define SDSORT_LIMIT 40 // Maximum number of sorted items (10-256). Costs 27 bytes each. + #define FOLDER_SORTING -1 // -1=above 0=none 1=below + #define SDSORT_GCODE false // Allow turning sorting on/off with LCD and M34 G-code. + #define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting. + #define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.) + #define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option. + #define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use! + #define SDSORT_CACHE_VFATS 2 // Maximum number of 13-byte VFAT entries to use for sorting. + // Note: Only affects SCROLL_LONG_FILENAMES with SDSORT_CACHE_NAMES but not SDSORT_DYNAMIC_RAM. + #endif + + // Allow international symbols in long filenames. To display correctly, the + // LCD's font must contain the characters. Check your selected LCD language. + //#define UTF_FILENAME_SUPPORT + + //#define LONG_FILENAME_HOST_SUPPORT // Get the long filename of a file/folder with 'M33 ' and list long filenames with 'M20 L' + //#define LONG_FILENAME_WRITE_SUPPORT // Create / delete files with long filenames via M28, M30, and Binary Transfer Protocol + //#define M20_TIMESTAMP_SUPPORT // Include timestamps by adding the 'T' flag to M20 commands + + #define SCROLL_LONG_FILENAMES // Scroll long filenames in the SD card menu + + //#define SD_ABORT_NO_COOLDOWN // Leave the heaters on after Stop Print (not recommended!) + + /** + * Abort SD printing when any endstop is triggered. + * This feature is enabled with 'M540 S1' or from the LCD menu. + * Endstops must be activated for this option to work. + */ + //#define SD_ABORT_ON_ENDSTOP_HIT + #if ENABLED(SD_ABORT_ON_ENDSTOP_HIT) + //#define SD_ABORT_ON_ENDSTOP_HIT_GCODE "G28XY" // G-code to run on endstop hit (e.g., "G28XY" or "G27") + #endif + + //#define SD_REPRINT_LAST_SELECTED_FILE // On print completion open the LCD Menu and select the same file + + //#define AUTO_REPORT_SD_STATUS // Auto-report media status with 'M27 S' + + /** + * Support for USB thumb drives using an Arduino USB Host Shield or + * equivalent MAX3421E breakout board. The USB thumb drive will appear + * to Marlin as an SD card. + * + * The MAX3421E can be assigned the same pins as the SD card reader, with + * the following pin mapping: + * + * SCLK, MOSI, MISO --> SCLK, MOSI, MISO + * INT --> SD_DETECT_PIN [1] + * SS --> SDSS + * + * [1] On AVR an interrupt-capable pin is best for UHS3 compatibility. + */ + //#define USB_FLASH_DRIVE_SUPPORT + #if ENABLED(USB_FLASH_DRIVE_SUPPORT) + /** + * USB Host Shield Library + * + * - UHS2 uses no interrupts and has been production-tested + * on a LulzBot TAZ Pro with a 32-bit Archim board. + * + * - UHS3 is newer code with better USB compatibility. But it + * is less tested and is known to interfere with Servos. + * [1] This requires USB_INTR_PIN to be interrupt-capable. + */ + //#define USE_UHS2_USB + //#define USE_UHS3_USB + + #define DISABLE_DUE_SD_MMC // Disable USB Host access to USB Drive to prevent hangs on block access for DUE platform + + /** + * Native USB Host supported by some boards (USB OTG) + */ + //#define USE_OTG_USB_HOST + + #if DISABLED(USE_OTG_USB_HOST) + #define USB_CS_PIN SDSS + #define USB_INTR_PIN SD_DETECT_PIN + #endif + #endif + + /** + * When using a bootloader that supports SD-Firmware-Flashing, + * add a menu item to activate SD-FW-Update on the next reboot. + * + * Requires ATMEGA2560 (Arduino Mega) + * + * Tested with this bootloader: + * https://github.com/FleetProbe/MicroBridge-Arduino-ATMega2560 + */ + //#define SD_FIRMWARE_UPDATE + #if ENABLED(SD_FIRMWARE_UPDATE) + #define SD_FIRMWARE_UPDATE_EEPROM_ADDR 0x1FF + #define SD_FIRMWARE_UPDATE_ACTIVE_VALUE 0xF0 + #define SD_FIRMWARE_UPDATE_INACTIVE_VALUE 0xFF + #endif + + /** + * Enable this option if you have more than ~3K of unused flash space. + * Marlin will embed all settings in the firmware binary as compressed data. + * Use 'M503 C' to write the settings out to the SD Card as 'mc.zip'. + * See docs/ConfigEmbedding.md for details on how to use 'mc-apply.py'. + */ + //#define CONFIGURATION_EMBEDDING + + // Add an optimized binary file transfer mode, initiated with 'M28 B1' + //#define BINARY_FILE_TRANSFER + + #if ENABLED(BINARY_FILE_TRANSFER) + // Include extra facilities (e.g., 'M20 F') supporting firmware upload via BINARY_FILE_TRANSFER + //#define CUSTOM_FIRMWARE_UPLOAD + #endif + + /** + * Set this option to one of the following (or the board's defaults apply): + * + * LCD - Use the SD drive in the external LCD controller. + * ONBOARD - Use the SD drive on the control board. + * CUSTOM_CABLE - Use a custom cable to access the SD (as defined in a pins file). + * + * :[ 'LCD', 'ONBOARD', 'CUSTOM_CABLE' ] + */ + //#define SDCARD_CONNECTION LCD + + // Enable if SD detect is rendered useless (e.g., by using an SD extender) + //#define NO_SD_DETECT + + /** + * Multiple volume support - EXPERIMENTAL. + * Adds 'M21 Pm' / 'M21 S' / 'M21 U' to mount SD Card / USB Drive. + */ + //#define MULTI_VOLUME + #if ENABLED(MULTI_VOLUME) + #define VOLUME_SD_ONBOARD + #define VOLUME_USB_FLASH_DRIVE + #define DEFAULT_VOLUME SV_SD_ONBOARD + #define DEFAULT_SHARED_VOLUME SV_USB_FLASH_DRIVE + #endif + +#endif // SDSUPPORT + +/** + * By default an onboard SD card reader may be shared as a USB mass- + * storage device. This option hides the SD card from the host PC. + */ +//#define NO_SD_HOST_DRIVE // Disable SD Card access over USB (for security). + +/** + * Additional options for Graphical Displays + * + * Use the optimizations here to improve printing performance, + * which can be adversely affected by graphical display drawing, + * especially when doing several short moves, and when printing + * on DELTA and SCARA machines. + * + * Some of these options may result in the display lagging behind + * controller events, as there is a trade-off between reliable + * printing performance versus fast display updates. + */ +#if HAS_MARLINUI_U8GLIB + // Save many cycles by drawing a hollow frame or no frame on the Info Screen + //#define XYZ_NO_FRAME + #define XYZ_HOLLOW_FRAME + + // A bigger font is available for edit items. Costs 3120 bytes of flash. + // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese. + //#define USE_BIG_EDIT_FONT + + // A smaller font may be used on the Info Screen. Costs 2434 bytes of flash. + // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese. + //#define USE_SMALL_INFOFONT + + /** + * Graphical Display Sleep + * + * The U8G library provides sleep / wake functions for SH1106, SSD1306, + * SSD1309, and some other DOGM displays. + * Enable this option to save energy and prevent OLED pixel burn-in. + * Adds the menu item Configuration > LCD Timeout (m) to set a wait period + * from 0 (disabled) to 99 minutes. + */ + //#define DISPLAY_SLEEP_MINUTES 2 // (minutes) Timeout before turning off the screen. Set with M255 S. + + /** + * ST7920-based LCDs can emulate a 16 x 4 character display using + * the ST7920 character-generator for very fast screen updates. + * Enable LIGHTWEIGHT_UI to use this special display mode. + * + * Since LIGHTWEIGHT_UI has limited space, the position and status + * message occupy the same line. Set STATUS_EXPIRE_SECONDS to the + * length of time to display the status message before clearing. + * + * Set STATUS_EXPIRE_SECONDS to zero to never clear the status. + * This will prevent position updates from being displayed. + */ + #if IS_U8GLIB_ST7920 + // Enable this option and reduce the value to optimize screen updates. + // The normal delay is 10µs. Use the lowest value that still gives a reliable display. + //#define DOGM_SPI_DELAY_US 5 + + //#define LIGHTWEIGHT_UI + #if ENABLED(LIGHTWEIGHT_UI) + #define STATUS_EXPIRE_SECONDS 20 + #endif + #endif + + /** + * Status (Info) Screen customizations + * These options may affect code size and screen render time. + * Custom status screens can forcibly override these settings. + */ + //#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones + //#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends) + #define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM for numbered hotends) + #define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating + #define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating + //#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap + //#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap + //#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames + //#define STATUS_HEAT_PERCENT // Show heating in a progress bar + //#define BOOT_MARLIN_LOGO_ANIMATED // Animated Marlin logo. Costs ~3260 (or ~940) bytes of flash. + + // Frivolous Game Options + //#define MARLIN_BRICKOUT + //#define MARLIN_INVADERS + //#define MARLIN_SNAKE + //#define GAMES_EASTER_EGG // Add extra blank lines above the "Games" sub-menu + +#endif // HAS_MARLINUI_U8GLIB + +#if HAS_MARLINUI_U8GLIB || IS_DWIN_MARLINUI + #define MENU_HOLLOW_FRAME // Enable to save many cycles by drawing a hollow frame on Menu Screens + //#define OVERLAY_GFX_REVERSE // Swap the CW/CCW indicators in the graphics overlay +#endif + +// +// Additional options for DGUS / DWIN displays +// +#if HAS_DGUS_LCD + #define LCD_BAUDRATE 115200 + + #define DGUS_RX_BUFFER_SIZE 128 + #define DGUS_TX_BUFFER_SIZE 48 + //#define SERIAL_STATS_RX_BUFFER_OVERRUNS // Fix Rx overrun situation (Currently only for AVR) + + #define DGUS_UPDATE_INTERVAL_MS 500 // (ms) Interval between automatic screen updates + + #if ANY(DGUS_LCD_UI_FYSETC, DGUS_LCD_UI_MKS, DGUS_LCD_UI_HIPRECY) + #define DGUS_PRINT_FILENAME // Display the filename during printing + #define DGUS_PREHEAT_UI // Display a preheat screen during heatup + + #if EITHER(DGUS_LCD_UI_FYSETC, DGUS_LCD_UI_MKS) + //#define DGUS_UI_MOVE_DIS_OPTION // Disabled by default for FYSETC and MKS + #else + #define DGUS_UI_MOVE_DIS_OPTION // Enabled by default for UI_HIPRECY + #endif + + #define DGUS_FILAMENT_LOADUNLOAD + #if ENABLED(DGUS_FILAMENT_LOADUNLOAD) + #define DGUS_FILAMENT_PURGE_LENGTH 10 + #define DGUS_FILAMENT_LOAD_LENGTH_PER_TIME 0.5 // (mm) Adjust in proportion to DGUS_UPDATE_INTERVAL_MS + #endif + + #define DGUS_UI_WAITING // Show a "waiting" screen between some screens + #if ENABLED(DGUS_UI_WAITING) + #define DGUS_UI_WAITING_STATUS 10 + #define DGUS_UI_WAITING_STATUS_PERIOD 8 // Increase to slower waiting status looping + #endif + #endif +#endif // HAS_DGUS_LCD + +// +// Additional options for AnyCubic Chiron TFT displays +// +#if ENABLED(ANYCUBIC_LCD_CHIRON) + // By default the type of panel is automatically detected. + // Enable one of these options if you know the panel type. + //#define CHIRON_TFT_STANDARD + //#define CHIRON_TFT_NEW + + // Enable the longer Anycubic powerup startup tune + //#define AC_DEFAULT_STARTUP_TUNE + + /** + * Display Folders + * By default the file browser lists all G-code files (including those in subfolders) in a flat list. + * Enable this option to display a hierarchical file browser. + * + * NOTES: + * - Without this option it helps to enable SDCARD_SORT_ALPHA so files are sorted before/after folders. + * - When used with the "new" panel, folder names will also have '.gcode' appended to their names. + * This hack is currently required to force the panel to show folders. + */ + #define AC_SD_FOLDER_VIEW +#endif + +// +// Specify additional languages for the UI. Default specified by LCD_LANGUAGE. +// +#if ANY(DOGLCD, TFT_COLOR_UI, TOUCH_UI_FTDI_EVE, IS_DWIN_MARLINUI) + //#define LCD_LANGUAGE_2 fr + //#define LCD_LANGUAGE_3 de + //#define LCD_LANGUAGE_4 es + //#define LCD_LANGUAGE_5 it + #ifdef LCD_LANGUAGE_2 + //#define LCD_LANGUAGE_AUTO_SAVE // Automatically save language to EEPROM on change + #endif +#endif + +// +// Touch UI for the FTDI Embedded Video Engine (EVE) +// +#if ENABLED(TOUCH_UI_FTDI_EVE) + // Display board used + //#define LCD_FTDI_VM800B35A // FTDI 3.5" with FT800 (320x240) + //#define LCD_4DSYSTEMS_4DLCD_FT843 // 4D Systems 4.3" (480x272) + //#define LCD_HAOYU_FT800CB // Haoyu with 4.3" or 5" (480x272) + //#define LCD_HAOYU_FT810CB // Haoyu with 5" (800x480) + //#define LCD_LULZBOT_CLCD_UI // LulzBot Color LCD UI + //#define LCD_FYSETC_TFT81050 // FYSETC with 5" (800x480) + //#define LCD_EVE3_50G // Matrix Orbital 5.0", 800x480, BT815 + //#define LCD_EVE2_50G // Matrix Orbital 5.0", 800x480, FT813 + + // Correct the resolution if not using the stock TFT panel. + //#define TOUCH_UI_320x240 + //#define TOUCH_UI_480x272 + //#define TOUCH_UI_800x480 + + // Mappings for boards with a standard RepRapDiscount Display connector + //#define AO_EXP1_PINMAP // LulzBot CLCD UI EXP1 mapping + //#define AO_EXP2_PINMAP // LulzBot CLCD UI EXP2 mapping + //#define CR10_TFT_PINMAP // Rudolph Riedel's CR10 pin mapping + //#define S6_TFT_PINMAP // FYSETC S6 pin mapping + //#define F6_TFT_PINMAP // FYSETC F6 pin mapping + + //#define OTHER_PIN_LAYOUT // Define pins manually below + #if ENABLED(OTHER_PIN_LAYOUT) + // Pins for CS and MOD_RESET (PD) must be chosen + #define CLCD_MOD_RESET 9 + #define CLCD_SPI_CS 10 + + // If using software SPI, specify pins for SCLK, MOSI, MISO + //#define CLCD_USE_SOFT_SPI + #if ENABLED(CLCD_USE_SOFT_SPI) + #define CLCD_SOFT_SPI_MOSI 11 + #define CLCD_SOFT_SPI_MISO 12 + #define CLCD_SOFT_SPI_SCLK 13 + #endif + #endif + + // Display Orientation. An inverted (i.e. upside-down) display + // is supported on the FT800. The FT810 and beyond also support + // portrait and mirrored orientations. + //#define TOUCH_UI_INVERTED + //#define TOUCH_UI_PORTRAIT + //#define TOUCH_UI_MIRRORED + + // UTF8 processing and rendering. + // Unsupported characters are shown as '?'. + //#define TOUCH_UI_USE_UTF8 + #if ENABLED(TOUCH_UI_USE_UTF8) + // Western accents support. These accented characters use + // combined bitmaps and require relatively little storage. + #define TOUCH_UI_UTF8_WESTERN_CHARSET + #if ENABLED(TOUCH_UI_UTF8_WESTERN_CHARSET) + // Additional character groups. These characters require + // full bitmaps and take up considerable storage: + //#define TOUCH_UI_UTF8_SUPERSCRIPTS // ¹ ² ³ + //#define TOUCH_UI_UTF8_COPYRIGHT // © ® + //#define TOUCH_UI_UTF8_GERMANIC // ß + //#define TOUCH_UI_UTF8_SCANDINAVIAN // Æ Ð Ø Þ æ ð ø þ + //#define TOUCH_UI_UTF8_PUNCTUATION // « » ¿ ¡ + //#define TOUCH_UI_UTF8_CURRENCY // ¢ £ ¤ ¥ + //#define TOUCH_UI_UTF8_ORDINALS // º ª + //#define TOUCH_UI_UTF8_MATHEMATICS // ± × ÷ + //#define TOUCH_UI_UTF8_FRACTIONS // ¼ ½ ¾ + //#define TOUCH_UI_UTF8_SYMBOLS // µ ¶ ¦ § ¬ + #endif + + // Cyrillic character set, costs about 27KiB of flash + //#define TOUCH_UI_UTF8_CYRILLIC_CHARSET + #endif + + // Use a smaller font when labels don't fit buttons + #define TOUCH_UI_FIT_TEXT + + // Use a numeric passcode for "Screen lock" keypad. + // (recommended for smaller displays) + //#define TOUCH_UI_PASSCODE + + // Output extra debug info for Touch UI events + //#define TOUCH_UI_DEBUG + + // Developer menu (accessed by touching "About Printer" copyright text) + //#define TOUCH_UI_DEVELOPER_MENU +#endif + +// +// Classic UI Options +// +#if TFT_SCALED_DOGLCD + //#define TFT_MARLINUI_COLOR 0xFFFF // White + //#define TFT_MARLINBG_COLOR 0x0000 // Black + //#define TFT_DISABLED_COLOR 0x0003 // Almost black + //#define TFT_BTCANCEL_COLOR 0xF800 // Red + //#define TFT_BTARROWS_COLOR 0xDEE6 // 11011 110111 00110 Yellow + //#define TFT_BTOKMENU_COLOR 0x145F // 00010 100010 11111 Cyan +#endif + +// +// ADC Button Debounce +// +#if HAS_ADC_BUTTONS + #define ADC_BUTTON_DEBOUNCE_DELAY 16 // Increase if buttons bounce or repeat too fast +#endif + +// @section safety + +/** + * The watchdog hardware timer will do a reset and disable all outputs + * if the firmware gets too overloaded to read the temperature sensors. + * + * If you find that watchdog reboot causes your AVR board to hang forever, + * enable WATCHDOG_RESET_MANUAL to use a custom timer instead of WDTO. + * NOTE: This method is less reliable as it can only catch hangups while + * interrupts are enabled. + */ +#define USE_WATCHDOG +#if ENABLED(USE_WATCHDOG) + //#define WATCHDOG_RESET_MANUAL +#endif + +// @section lcd + +/** + * Babystepping enables movement of the axes by tiny increments without changing + * the current position values. This feature is used primarily to adjust the Z + * axis in the first layer of a print in real-time. + * + * Warning: Does not respect endstops! + */ +#define BABYSTEPPING +#if ENABLED(BABYSTEPPING) + //#define INTEGRATED_BABYSTEPPING // EXPERIMENTAL integration of babystepping into the Stepper ISR + //#define BABYSTEP_WITHOUT_HOMING + //#define BABYSTEP_ALWAYS_AVAILABLE // Allow babystepping at all times (not just during movement). + //#define BABYSTEP_XY // Also enable X/Y Babystepping. Not supported on DELTA! + #define BABYSTEP_INVERT_Z false // Change if Z babysteps should go the other way + //#define BABYSTEP_MILLIMETER_UNITS // Specify BABYSTEP_MULTIPLICATOR_(XY|Z) in mm instead of micro-steps + #define BABYSTEP_MULTIPLICATOR_Z 1 // (steps or mm) Steps or millimeter distance for each Z babystep + #define BABYSTEP_MULTIPLICATOR_XY 1 // (steps or mm) Steps or millimeter distance for each XY babystep + + //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping. + #if ENABLED(DOUBLECLICK_FOR_Z_BABYSTEPPING) + #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds. + // Note: Extra time may be added to mitigate controller latency. + //#define MOVE_Z_WHEN_IDLE // Jump to the move Z menu on doubleclick when printer is idle. + #if ENABLED(MOVE_Z_WHEN_IDLE) + #define MOVE_Z_IDLE_MULTIPLICATOR 1 // Multiply 1mm by this factor for the move step size. + #endif + #endif + + //#define BABYSTEP_DISPLAY_TOTAL // Display total babysteps since last G28 + + //#define BABYSTEP_ZPROBE_OFFSET // Combine M851 Z and Babystepping + #if ENABLED(BABYSTEP_ZPROBE_OFFSET) + //#define BABYSTEP_HOTEND_Z_OFFSET // For multiple hotends, babystep relative Z offsets + //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor + #endif +#endif + +// @section extruder + +/** + * Linear Pressure Control v1.5 + * + * Assumption: advance [steps] = k * (delta velocity [steps/s]) + * K=0 means advance disabled. + * + * NOTE: K values for LIN_ADVANCE 1.5 differ from earlier versions! + * + * Set K around 0.22 for 3mm PLA Direct Drive with ~6.5cm between the drive gear and heatbreak. + * Larger K values will be needed for flexible filament and greater distances. + * If this algorithm produces a higher speed offset than the extruder can handle (compared to E jerk) + * print acceleration will be reduced during the affected moves to keep within the limit. + * + * See https://marlinfw.org/docs/features/lin_advance.html for full instructions. + */ +//#define LIN_ADVANCE +#if ENABLED(LIN_ADVANCE) + #if ENABLED(DISTINCT_E_FACTORS) + #define ADVANCE_K { 0.22 } // (mm) Compression length per 1mm/s extruder speed, per extruder + #else + // Default is 0.22, but at elast 0.1 is closer to what I ahve observed - DELICIOUS + #define ADVANCE_K 0.1 // (mm) Compression length applying to all extruders + #endif + //#define ADVANCE_K_EXTRA // Add a second linear advance constant, configurable with M900 L. + //#define LA_DEBUG // Print debug information to serial during operation. Disable for production use. + //#define EXPERIMENTAL_SCURVE // Allow S-Curve Acceleration to be used with LA. + //#define ALLOW_LOW_EJERK // Allow a DEFAULT_EJERK value of <10. Recommended for direct drive hotends. + //#define EXPERIMENTAL_I2S_LA // Allow I2S_STEPPER_STREAM to be used with LA. Performance degrades as the LA step rate reaches ~20kHz. +#endif + +// @section leveling + +/** + * Use Safe Bed Leveling coordinates to move axes to a useful position before bed probing. + * For example, after homing a rotational axis the Z probe might not be perpendicular to the bed. + * Choose values the orient the bed horizontally and the Z-probe vertically. + */ +//#define SAFE_BED_LEVELING_START_X 0.0 +//#define SAFE_BED_LEVELING_START_Y 0.0 +//#define SAFE_BED_LEVELING_START_Z 0.0 +//#define SAFE_BED_LEVELING_START_I 0.0 +//#define SAFE_BED_LEVELING_START_J 0.0 +//#define SAFE_BED_LEVELING_START_K 0.0 +//#define SAFE_BED_LEVELING_START_U 0.0 +//#define SAFE_BED_LEVELING_START_V 0.0 +//#define SAFE_BED_LEVELING_START_W 0.0 + +/** + * Points to probe for all 3-point Leveling procedures. + * Override if the automatically selected points are inadequate. + */ +#if EITHER(AUTO_BED_LEVELING_3POINT, AUTO_BED_LEVELING_UBL) + //#define PROBE_PT_1_X 15 + //#define PROBE_PT_1_Y 180 + //#define PROBE_PT_2_X 15 + //#define PROBE_PT_2_Y 20 + //#define PROBE_PT_3_X 170 + //#define PROBE_PT_3_Y 20 +#endif + +/** + * Probing Margins + * + * Override PROBING_MARGIN for each side of the build plate + * Useful to get probe points to exact positions on targets or + * to allow leveling to avoid plate clamps on only specific + * sides of the bed. With NOZZLE_AS_PROBE negative values are + * allowed, to permit probing outside the bed. + * + * If you are replacing the prior *_PROBE_BED_POSITION options, + * LEFT and FRONT values in most cases will map directly over + * RIGHT and REAR would be the inverse such as + * (X/Y_BED_SIZE - RIGHT/BACK_PROBE_BED_POSITION) + * + * This will allow all positions to match at compilation, however + * should the probe position be modified with M851XY then the + * probe points will follow. This prevents any change from causing + * the probe to be unable to reach any points. + */ +#if PROBE_SELECTED && !IS_KINEMATIC + //#define PROBING_MARGIN_LEFT PROBING_MARGIN + //#define PROBING_MARGIN_RIGHT PROBING_MARGIN + //#define PROBING_MARGIN_FRONT PROBING_MARGIN + //#define PROBING_MARGIN_BACK PROBING_MARGIN +#endif + +#if EITHER(MESH_BED_LEVELING, AUTO_BED_LEVELING_UBL) + // Override the mesh area if the automatic (max) area is too large + //#define MESH_MIN_X MESH_INSET + //#define MESH_MIN_Y MESH_INSET + //#define MESH_MAX_X X_BED_SIZE - (MESH_INSET) + //#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET) +#endif + +#if BOTH(AUTO_BED_LEVELING_UBL, EEPROM_SETTINGS) + //#define OPTIMIZED_MESH_STORAGE // Store mesh with less precision to save EEPROM space +#endif + +/** + * Repeatedly attempt G29 leveling until it succeeds. + * Stop after G29_MAX_RETRIES attempts. + */ +//#define G29_RETRY_AND_RECOVER +#if ENABLED(G29_RETRY_AND_RECOVER) + #define G29_MAX_RETRIES 3 + #define G29_HALT_ON_FAILURE + /** + * Specify the GCODE commands that will be executed when leveling succeeds, + * between attempts, and after the maximum number of retries have been tried. + */ + #define G29_SUCCESS_COMMANDS "M117 Bed leveling done." + #define G29_RECOVER_COMMANDS "M117 Probe failed. Rewiping.\nG28\nG12 P0 S12 T0" + #define G29_FAILURE_COMMANDS "M117 Bed leveling failed.\nG0 Z10\nM300 P25 S880\nM300 P50 S0\nM300 P25 S880\nM300 P50 S0\nM300 P25 S880\nM300 P50 S0\nG4 S1" + +#endif + +/** + * Thermal Probe Compensation + * + * Adjust probe measurements to compensate for distortion associated with the temperature + * of the probe, bed, and/or hotend. + * Use G76 to automatically calibrate this feature for probe and bed temperatures. + * (Extruder temperature/offset values must be calibrated manually.) + * Use M871 to set temperature/offset values manually. + * For more details see https://marlinfw.org/docs/features/probe_temp_compensation.html + */ +//#define PTC_PROBE // Compensate based on probe temperature +//#define PTC_BED // Compensate based on bed temperature +//#define PTC_HOTEND // Compensate based on hotend temperature + +#if ANY(PTC_PROBE, PTC_BED, PTC_HOTEND) + /** + * If the probe is outside the defined range, use linear extrapolation with the closest + * point and the point with index PTC_LINEAR_EXTRAPOLATION. e.g., If set to 4 it will use the + * linear extrapolation between data[0] and data[4] for values below PTC_PROBE_START. + */ + //#define PTC_LINEAR_EXTRAPOLATION 4 + + #if ENABLED(PTC_PROBE) + // Probe temperature calibration generates a table of values starting at PTC_PROBE_START + // (e.g., 30), in steps of PTC_PROBE_RES (e.g., 5) with PTC_PROBE_COUNT (e.g., 10) samples. + #define PTC_PROBE_START 30 // (°C) + #define PTC_PROBE_RES 5 // (°C) + #define PTC_PROBE_COUNT 10 + #define PTC_PROBE_ZOFFS { 0 } // (µm) Z adjustments per sample + #endif + + #if ENABLED(PTC_BED) + // Bed temperature calibration builds a similar table. + #define PTC_BED_START 60 // (°C) + #define PTC_BED_RES 5 // (°C) + #define PTC_BED_COUNT 10 + #define PTC_BED_ZOFFS { 0 } // (µm) Z adjustments per sample + #endif + + #if ENABLED(PTC_HOTEND) + // Note: There is no automatic calibration for the hotend. Use M871. + #define PTC_HOTEND_START 180 // (°C) + #define PTC_HOTEND_RES 5 // (°C) + #define PTC_HOTEND_COUNT 20 + #define PTC_HOTEND_ZOFFS { 0 } // (µm) Z adjustments per sample + #endif + + // G76 options + #if BOTH(PTC_PROBE, PTC_BED) + // Park position to wait for probe cooldown + #define PTC_PARK_POS { 0, 0, 100 } + + // Probe position to probe and wait for probe to reach target temperature + //#define PTC_PROBE_POS { 12.0f, 7.3f } // Example: MK52 magnetic heatbed + #define PTC_PROBE_POS { 90, 100 } + + // The temperature the probe should be at while taking measurements during + // bed temperature calibration. + #define PTC_PROBE_TEMP 30 // (°C) + + // Height above Z=0.0 to raise the nozzle. Lowering this can help the probe to heat faster. + // Note: The Z=0.0 offset is determined by the probe Z offset (e.g., as set with M851 Z). + #define PTC_PROBE_HEATING_OFFSET 0.5 + #endif +#endif // PTC_PROBE || PTC_BED || PTC_HOTEND + +// @section extras + +// +// G60/G61 Position Save and Return +// +//#define SAVED_POSITIONS 1 // Each saved position slot costs 12 bytes + +// +// G2/G3 Arc Support +// +#define ARC_SUPPORT // Requires ~3226 bytes +#if ENABLED(ARC_SUPPORT) + #define MIN_ARC_SEGMENT_MM 0.1 // (mm) Minimum length of each arc segment + #define MAX_ARC_SEGMENT_MM 1.0 // (mm) Maximum length of each arc segment + #define MIN_CIRCLE_SEGMENTS 72 // Minimum number of segments in a complete circle + //#define ARC_SEGMENTS_PER_SEC 50 // Use the feedrate to choose the segment length + #define N_ARC_CORRECTION 25 // Number of interpolated segments between corrections + //#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles + //#define SF_ARC_FIX // Enable only if using SkeinForge with "Arc Point" fillet procedure +#endif + +// G5 Bézier Curve Support with XYZE destination and IJPQ offsets +//#define BEZIER_CURVE_SUPPORT // Requires ~2666 bytes + +#if EITHER(ARC_SUPPORT, BEZIER_CURVE_SUPPORT) + //#define CNC_WORKSPACE_PLANES // Allow G2/G3/G5 to operate in XY, ZX, or YZ planes +#endif + +/** + * Direct Stepping + * + * Comparable to the method used by Klipper, G6 direct stepping significantly + * reduces motion calculations, increases top printing speeds, and results in + * less step aliasing by calculating all motions in advance. + * Preparing your G-code: https://github.com/colinrgodsey/step-daemon + */ +//#define DIRECT_STEPPING + +/** + * G38 Probe Target + * + * This option adds G38.2 and G38.3 (probe towards target) + * and optionally G38.4 and G38.5 (probe away from target). + * Set MULTIPLE_PROBING for G38 to probe more than once. + */ +//#define G38_PROBE_TARGET +#if ENABLED(G38_PROBE_TARGET) + //#define G38_PROBE_AWAY // Include G38.4 and G38.5 to probe away from target + #define G38_MINIMUM_MOVE 0.0275 // (mm) Minimum distance that will produce a move. +#endif + +// Moves (or segments) with fewer steps than this will be joined with the next move +#define MIN_STEPS_PER_SEGMENT 6 + +/** + * Minimum delay before and after setting the stepper DIR (in ns) + * 0 : No delay (Expect at least 10µS since one Stepper ISR must transpire) + * 20 : Minimum for TMC2xxx drivers + * 200 : Minimum for A4988 drivers + * 400 : Minimum for A5984 drivers + * 500 : Minimum for LV8729 drivers (guess, no info in datasheet) + * 650 : Minimum for DRV8825 drivers + * 1500 : Minimum for TB6600 drivers (guess, no info in datasheet) + * 15000 : Minimum for TB6560 drivers (guess, no info in datasheet) + * + * Override the default value based on the driver type set in Configuration.h. + */ +//#define MINIMUM_STEPPER_POST_DIR_DELAY 650 +//#define MINIMUM_STEPPER_PRE_DIR_DELAY 650 + +/** + * Minimum stepper driver pulse width (in µs) + * 0 : Smallest possible width the MCU can produce, compatible with TMC2xxx drivers + * 0 : Minimum 500ns for LV8729, adjusted in stepper.h + * 1 : Minimum for A4988 and A5984 stepper drivers + * 2 : Minimum for DRV8825 stepper drivers + * 3 : Minimum for TB6600 stepper drivers + * 30 : Minimum for TB6560 stepper drivers + * + * Override the default value based on the driver type set in Configuration.h. + */ +//#define MINIMUM_STEPPER_PULSE 2 + +/** + * Maximum stepping rate (in Hz) the stepper driver allows + * If undefined, defaults to 1MHz / (2 * MINIMUM_STEPPER_PULSE) + * 5000000 : Maximum for TMC2xxx stepper drivers + * 1000000 : Maximum for LV8729 stepper driver + * 500000 : Maximum for A4988 stepper driver + * 250000 : Maximum for DRV8825 stepper driver + * 150000 : Maximum for TB6600 stepper driver + * 15000 : Maximum for TB6560 stepper driver + * + * Override the default value based on the driver type set in Configuration.h. + */ +//#define MAXIMUM_STEPPER_RATE 250000 + +// @section temperature + +// Control heater 0 and heater 1 in parallel. +//#define HEATERS_PARALLEL + +//=========================================================================== +//================================= Buffers ================================= +//=========================================================================== + +// @section motion + +// The number of linear moves that can be in the planner at once. +// The value of BLOCK_BUFFER_SIZE must be a power of 2 (e.g., 8, 16, 32) +#if BOTH(SDSUPPORT, DIRECT_STEPPING) + #define BLOCK_BUFFER_SIZE 8 +#elif ENABLED(SDSUPPORT) + #define BLOCK_BUFFER_SIZE 16 +#else + #define BLOCK_BUFFER_SIZE 16 +#endif + +// @section serial + +// The ASCII buffer for serial input +#define MAX_CMD_SIZE 96 +#define BUFSIZE 4 + +// Transmission to Host Buffer Size +// To save 386 bytes of flash (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0. +// To buffer a simple "ok" you need 4 bytes. +// For ADVANCED_OK (M105) you need 32 bytes. +// For debug-echo: 128 bytes for the optimal speed. +// Other output doesn't need to be that speedy. +// :[0, 2, 4, 8, 16, 32, 64, 128, 256] +#define TX_BUFFER_SIZE 0 + +// Host Receive Buffer Size +// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough. +// To use flow control, set this buffer size to at least 1024 bytes. +// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048] +//#define RX_BUFFER_SIZE 1024 + +#if RX_BUFFER_SIZE >= 1024 + // Enable to have the controller send XON/XOFF control characters to + // the host to signal the RX buffer is becoming full. + //#define SERIAL_XON_XOFF +#endif + +#if ENABLED(SDSUPPORT) + // Enable this option to collect and display the maximum + // RX queue usage after transferring a file to SD. + //#define SERIAL_STATS_MAX_RX_QUEUED + + // Enable this option to collect and display the number + // of dropped bytes after a file transfer to SD. + //#define SERIAL_STATS_DROPPED_RX +#endif + +// Bad Serial-connections can miss a received command by sending an 'ok' +// Therefore some clients abort after 30 seconds in a timeout. +// Some other clients start sending commands while receiving a 'wait'. +// This "wait" is only sent when the buffer is empty. 1 second is a good value here. +//#define NO_TIMEOUTS 1000 // Milliseconds + +// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary. +//#define ADVANCED_OK + +// Printrun may have trouble receiving long strings all at once. +// This option inserts short delays between lines of serial output. +#define SERIAL_OVERRUN_PROTECTION + +// For serial echo, the number of digits after the decimal point +//#define SERIAL_FLOAT_PRECISION 4 + +/** + * Set the number of proportional font spaces required to fill up a typical character space. + * This can help to better align the output of commands like `G29 O` Mesh Output. + * + * For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0. + * Otherwise, adjust according to your client and font. + */ +#define PROPORTIONAL_FONT_RATIO 1.0 + +// @section extras + +/** + * Extra Fan Speed + * Adds a secondary fan speed for each print-cooling fan. + * 'M106 P T3-255' : Set a secondary speed for + * 'M106 P T2' : Use the set secondary speed + * 'M106 P T1' : Restore the previous fan speed + */ +//#define EXTRA_FAN_SPEED + +/** + * Firmware-based and LCD-controlled retract + * + * Add G10 / G11 commands for automatic firmware-based retract / recover. + * Use M207 and M208 to define parameters for retract / recover. + * + * Use M209 to enable or disable auto-retract. + * With auto-retract enabled, all G1 E moves within the set range + * will be converted to firmware-based retract/recover moves. + * + * Be sure to turn off auto-retract during filament change. + * + * Note that M207 / M208 / M209 settings are saved to EEPROM. + */ +//#define FWRETRACT +#if ENABLED(FWRETRACT) + #define FWRETRACT_AUTORETRACT // Override slicer retractions + #if ENABLED(FWRETRACT_AUTORETRACT) + #define MIN_AUTORETRACT 0.1 // (mm) Don't convert E moves under this length + #define MAX_AUTORETRACT 10.0 // (mm) Don't convert E moves over this length + #endif + #define RETRACT_LENGTH 3 // (mm) Default retract length (positive value) + #define RETRACT_LENGTH_SWAP 13 // (mm) Default swap retract length (positive value) + #define RETRACT_FEEDRATE 45 // (mm/s) Default feedrate for retracting + #define RETRACT_ZRAISE 0 // (mm) Default retract Z-raise + #define RETRACT_RECOVER_LENGTH 0 // (mm) Default additional recover length (added to retract length on recover) + #define RETRACT_RECOVER_LENGTH_SWAP 0 // (mm) Default additional swap recover length (added to retract length on recover from toolchange) + #define RETRACT_RECOVER_FEEDRATE 8 // (mm/s) Default feedrate for recovering from retraction + #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // (mm/s) Default feedrate for recovering from swap retraction + #if ENABLED(MIXING_EXTRUDER) + //#define RETRACT_SYNC_MIXING // Retract and restore all mixing steppers simultaneously + #endif +#endif + +/** + * Universal tool change settings. + * Applies to all types of extruders except where explicitly noted. + */ +#if HAS_MULTI_EXTRUDER + // Z raise distance for tool-change, as needed for some extruders + #define TOOLCHANGE_ZRAISE 2 // (mm) + //#define TOOLCHANGE_ZRAISE_BEFORE_RETRACT // Apply raise before swap retraction (if enabled) + //#define TOOLCHANGE_NO_RETURN // Never return to previous position on tool-change + #if ENABLED(TOOLCHANGE_NO_RETURN) + //#define EVENT_GCODE_AFTER_TOOLCHANGE "G12X" // Extra G-code to run after tool-change + #endif + + /** + * Extra G-code to run while executing tool-change commands. Can be used to use an additional + * stepper motor (e.g., I axis in Configuration.h) to drive the tool-changer. + */ + //#define EVENT_GCODE_TOOLCHANGE_T0 "G28 A\nG1 A0" // Extra G-code to run while executing tool-change command T0 + //#define EVENT_GCODE_TOOLCHANGE_T1 "G1 A10" // Extra G-code to run while executing tool-change command T1 + //#define EVENT_GCODE_TOOLCHANGE_ALWAYS_RUN // Always execute above G-code sequences. Use with caution! + + /** + * Tool Sensors detect when tools have been picked up or dropped. + * Requires the pins TOOL_SENSOR1_PIN, TOOL_SENSOR2_PIN, etc. + */ + //#define TOOL_SENSOR + + /** + * Retract and prime filament on tool-change to reduce + * ooze and stringing and to get cleaner transitions. + */ + //#define TOOLCHANGE_FILAMENT_SWAP + #if ENABLED(TOOLCHANGE_FILAMENT_SWAP) + // Load / Unload + #define TOOLCHANGE_FS_LENGTH 12 // (mm) Load / Unload length + #define TOOLCHANGE_FS_EXTRA_RESUME_LENGTH 0 // (mm) Extra length for better restart. Adjust with LCD or M217 B. + #define TOOLCHANGE_FS_RETRACT_SPEED (50*60) // (mm/min) (Unloading) + #define TOOLCHANGE_FS_UNRETRACT_SPEED (25*60) // (mm/min) (On SINGLENOZZLE or Bowden loading must be slowed down) + + // Longer prime to clean out a SINGLENOZZLE + #define TOOLCHANGE_FS_EXTRA_PRIME 0 // (mm) Extra priming length + #define TOOLCHANGE_FS_PRIME_SPEED (4.6*60) // (mm/min) Extra priming feedrate + #define TOOLCHANGE_FS_WIPE_RETRACT 0 // (mm) Cutting retraction out of park, for less stringing, better wipe, etc. Adjust with LCD or M217 G. + + // Cool after prime to reduce stringing + #define TOOLCHANGE_FS_FAN -1 // Fan index or -1 to skip + #define TOOLCHANGE_FS_FAN_SPEED 255 // 0-255 + #define TOOLCHANGE_FS_FAN_TIME 10 // (seconds) + + // Use TOOLCHANGE_FS_PRIME_SPEED feedrate the first time each extruder is primed + //#define TOOLCHANGE_FS_SLOW_FIRST_PRIME + + /** + * Prime T0 the first time T0 is sent to the printer: + * [ Power-On -> T0 { Activate & Prime T0 } -> T1 { Retract T0, Activate & Prime T1 } ] + * If disabled, no priming on T0 until switching back to T0 from another extruder: + * [ Power-On -> T0 { T0 Activated } -> T1 { Activate & Prime T1 } -> T0 { Retract T1, Activate & Prime T0 } ] + * Enable with M217 V1 before printing to avoid unwanted priming on host connect. + */ + //#define TOOLCHANGE_FS_PRIME_FIRST_USED + + /** + * Tool Change Migration + * This feature provides G-code and LCD options to switch tools mid-print. + * All applicable tool properties are migrated so the print can continue. + * Tools must be closely matching and other restrictions may apply. + * Useful to: + * - Change filament color without interruption + * - Switch spools automatically on filament runout + * - Switch to a different nozzle on an extruder jam + */ + #define TOOLCHANGE_MIGRATION_FEATURE + + #endif + + /** + * Position to park head during tool change. + * Doesn't apply to SWITCHING_TOOLHEAD, DUAL_X_CARRIAGE, or PARKING_EXTRUDER + */ + //#define TOOLCHANGE_PARK + #if ENABLED(TOOLCHANGE_PARK) + #define TOOLCHANGE_PARK_XY { X_MIN_POS + 10, Y_MIN_POS + 10 } + #define TOOLCHANGE_PARK_XY_FEEDRATE 6000 // (mm/min) + //#define TOOLCHANGE_PARK_X_ONLY // X axis only move + //#define TOOLCHANGE_PARK_Y_ONLY // Y axis only move + #endif +#endif // HAS_MULTI_EXTRUDER + +// @section advanced pause + +/** + * Advanced Pause for Filament Change + * - Adds the G-code M600 Filament Change to initiate a filament change. + * - This feature is required for the default FILAMENT_RUNOUT_SCRIPT. + * + * Requirements: + * - For Filament Change parking enable and configure NOZZLE_PARK_FEATURE. + * - For user interaction enable an LCD display, HOST_PROMPT_SUPPORT, or EMERGENCY_PARSER. + * + * Enable PARK_HEAD_ON_PAUSE to add the G-code M125 Pause and Park. + */ +#define ADVANCED_PAUSE_FEATURE +#if ENABLED(ADVANCED_PAUSE_FEATURE) + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate. + + // Default is 2mm - DELICIOUS + #define PAUSE_PARK_RETRACT_LENGTH 3 // (mm) Initial retract. + // This short retract is done immediately, before parking the nozzle. + #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. + + // Default is 100mm - DELICIOUS + #define FILAMENT_CHANGE_UNLOAD_LENGTH 150 // (mm) The length of filament for a complete unload. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + // Set to 0 for manual unloading. + #define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE 6 // (mm/s) Slow move when starting load. + #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0 // (mm) Slow length, to allow time to insert material. + // 0 to disable start loading and skip to fast load only + #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_FAST_LOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. + #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + //#define ADVANCED_PAUSE_CONTINUOUS_PURGE // Purge continuously up to the purge length until interrupted. + #define ADVANCED_PAUSE_PURGE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_PURGE_LENGTH 50 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + #define ADVANCED_PAUSE_RESUME_PRIME 0 // (mm) Extra distance to prime nozzle after returning from park. + //#define ADVANCED_PAUSE_FANS_PAUSE // Turn off print-cooling fans while the machine is paused. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_PURGE_RETRACT 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_PURGE_DELAY 5000 // (ms) Delay for the filament to cool after retract. + #define FILAMENT_UNLOAD_PURGE_LENGTH 8 // (mm) An unretract is done, then this length is purged. + #define FILAMENT_UNLOAD_PURGE_FEEDRATE 25 // (mm/s) feedrate to purge before unload + + #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. + //#define FILAMENT_CHANGE_RESUME_ON_INSERT // Automatically continue / load filament when runout sensor is triggered again. + //#define PAUSE_REHEAT_FAST_RESUME // Reduce number of waits by not prompting again post-timeout before continuing. + + #define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. + //#define HOME_BEFORE_FILAMENT_CHANGE // If needed, home before parking for filament change + + #define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) +#endif + +// @section tmc_smart + +/** + * Trinamic Smart Drivers + * + * To use TMC2130, TMC2160, TMC2660, TMC5130, TMC5160 stepper drivers in SPI mode: + * - Connect your SPI pins to the Hardware SPI interface on the board. + * Some boards have simple jumper connections! See your board's documentation. + * - Define the required Stepper CS pins in your `pins_MYBOARD.h` file. + * (See the RAMPS pins, for example.) + * - You can also use Software SPI with GPIO pins instead of Hardware SPI. + * + * To use TMC220x stepper drivers with Serial UART: + * - Connect PDN_UART to the #_SERIAL_TX_PIN through a 1K resistor. + * For reading capabilities also connect PDN_UART to #_SERIAL_RX_PIN with no resistor. + * Some boards have simple jumper connections! See your board's documentation. + * - These drivers can also be used with Hardware Serial. + * + * The TMC26XStepper library is required for TMC26X stepper drivers. + * https://github.com/MarlinFirmware/TMC26XStepper + * + * The TMCStepper library is required for other TMC stepper drivers. + * https://github.com/teemuatlut/TMCStepper + * + * @section tmc/config + */ +#if HAS_TRINAMIC_CONFIG || HAS_TMC26X + + #define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current + + /** + * Interpolate microsteps to 256 + * Override for each driver with _INTERPOLATE settings below + */ + #define INTERPOLATE true + + #if AXIS_IS_TMC_CONFIG(X) + #define X_CURRENT 580 // (mA) RMS current. Multiply by 1.414 for peak current. + #define X_CURRENT_HOME X_CURRENT // (mA) RMS current for sensorless homing + #define X_MICROSTEPS 16 // 0..256 + #define X_RSENSE 0.11 // Multiplied x1000 for TMC26X + #define X_CHAIN_POS -1 // -1..0: Not chained. 1: MCU MOSI connected. 2: Next in chain, ... + //#define X_INTERPOLATE true // Enable to override 'INTERPOLATE' for the X axis + //#define X_HOLD_MULTIPLIER 0.5 // Enable to override 'HOLD_MULTIPLIER' for the X axis + #endif + + #if AXIS_IS_TMC_CONFIG(X2) + #define X2_CURRENT 800 + #define X2_CURRENT_HOME X2_CURRENT + #define X2_MICROSTEPS X_MICROSTEPS + #define X2_RSENSE 0.11 + #define X2_CHAIN_POS -1 + //#define X2_INTERPOLATE true + //#define X2_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC_CONFIG(Y) + #define Y_CURRENT 580 + #define Y_CURRENT_HOME Y_CURRENT + #define Y_MICROSTEPS 16 + #define Y_RSENSE 0.11 + #define Y_CHAIN_POS -1 + //#define Y_INTERPOLATE true + //#define Y_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC_CONFIG(Y2) + #define Y2_CURRENT 800 + #define Y2_CURRENT_HOME Y2_CURRENT + #define Y2_MICROSTEPS Y_MICROSTEPS + #define Y2_RSENSE 0.11 + #define Y2_CHAIN_POS -1 + //#define Y2_INTERPOLATE true + //#define Y2_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC_CONFIG(Z) + #define Z_CURRENT 580 + #define Z_CURRENT_HOME Z_CURRENT + #define Z_MICROSTEPS 16 + #define Z_RSENSE 0.11 + #define Z_CHAIN_POS -1 + //#define Z_INTERPOLATE true + //#define Z_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC_CONFIG(Z2) + #define Z2_CURRENT 800 + #define Z2_CURRENT_HOME Z2_CURRENT + #define Z2_MICROSTEPS Z_MICROSTEPS + #define Z2_RSENSE 0.11 + #define Z2_CHAIN_POS -1 + //#define Z2_INTERPOLATE true + //#define Z2_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC_CONFIG(Z3) + #define Z3_CURRENT 800 + #define Z3_CURRENT_HOME Z3_CURRENT + #define Z3_MICROSTEPS Z_MICROSTEPS + #define Z3_RSENSE 0.11 + #define Z3_CHAIN_POS -1 + //#define Z3_INTERPOLATE true + //#define Z3_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC_CONFIG(Z4) + #define Z4_CURRENT 800 + #define Z4_CURRENT_HOME Z4_CURRENT + #define Z4_MICROSTEPS Z_MICROSTEPS + #define Z4_RSENSE 0.11 + #define Z4_CHAIN_POS -1 + //#define Z4_INTERPOLATE true + //#define Z4_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC_CONFIG(I) + #define I_CURRENT 800 + #define I_CURRENT_HOME I_CURRENT + #define I_MICROSTEPS 16 + #define I_RSENSE 0.11 + #define I_CHAIN_POS -1 + //#define I_INTERPOLATE true + //#define I_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC_CONFIG(J) + #define J_CURRENT 800 + #define J_CURRENT_HOME J_CURRENT + #define J_MICROSTEPS 16 + #define J_RSENSE 0.11 + #define J_CHAIN_POS -1 + //#define J_INTERPOLATE true + //#define J_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC_CONFIG(K) + #define K_CURRENT 800 + #define K_CURRENT_HOME K_CURRENT + #define K_MICROSTEPS 16 + #define K_RSENSE 0.11 + #define K_CHAIN_POS -1 + //#define K_INTERPOLATE true + //#define K_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC_CONFIG(U) + #define U_CURRENT 800 + #define U_CURRENT_HOME U_CURRENT + #define U_MICROSTEPS 8 + #define U_RSENSE 0.11 + #define U_CHAIN_POS -1 + //#define U_INTERPOLATE true + //#define U_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC_CONFIG(V) + #define V_CURRENT 800 + #define V_CURRENT_HOME V_CURRENT + #define V_MICROSTEPS 8 + #define V_RSENSE 0.11 + #define V_CHAIN_POS -1 + //#define V_INTERPOLATE true + //#define V_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC_CONFIG(W) + #define W_CURRENT 800 + #define W_CURRENT_HOME W_CURRENT + #define W_MICROSTEPS 8 + #define W_RSENSE 0.11 + #define W_CHAIN_POS -1 + //#define W_INTERPOLATE true + //#define W_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC_CONFIG(E0) + #define E0_CURRENT 650 + #define E0_MICROSTEPS 16 + #define E0_RSENSE 0.11 + #define E0_CHAIN_POS -1 + //#define E0_INTERPOLATE true + //#define E0_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC_CONFIG(E1) + #define E1_CURRENT 800 + #define E1_MICROSTEPS E0_MICROSTEPS + #define E1_RSENSE 0.11 + #define E1_CHAIN_POS -1 + //#define E1_INTERPOLATE true + //#define E1_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC_CONFIG(E2) + #define E2_CURRENT 800 + #define E2_MICROSTEPS E0_MICROSTEPS + #define E2_RSENSE 0.11 + #define E2_CHAIN_POS -1 + //#define E2_INTERPOLATE true + //#define E2_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC_CONFIG(E3) + #define E3_CURRENT 800 + #define E3_MICROSTEPS E0_MICROSTEPS + #define E3_RSENSE 0.11 + #define E3_CHAIN_POS -1 + //#define E3_INTERPOLATE true + //#define E3_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC_CONFIG(E4) + #define E4_CURRENT 800 + #define E4_MICROSTEPS E0_MICROSTEPS + #define E4_RSENSE 0.11 + #define E4_CHAIN_POS -1 + //#define E4_INTERPOLATE true + //#define E4_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC_CONFIG(E5) + #define E5_CURRENT 800 + #define E5_MICROSTEPS E0_MICROSTEPS + #define E5_RSENSE 0.11 + #define E5_CHAIN_POS -1 + //#define E5_INTERPOLATE true + //#define E5_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC_CONFIG(E6) + #define E6_CURRENT 800 + #define E6_MICROSTEPS E0_MICROSTEPS + #define E6_RSENSE 0.11 + #define E6_CHAIN_POS -1 + //#define E6_INTERPOLATE true + //#define E6_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC_CONFIG(E7) + #define E7_CURRENT 800 + #define E7_MICROSTEPS E0_MICROSTEPS + #define E7_RSENSE 0.11 + #define E7_CHAIN_POS -1 + //#define E7_INTERPOLATE true + //#define E7_HOLD_MULTIPLIER 0.5 + #endif + + // @section tmc/spi + + /** + * Override default SPI pins for TMC2130, TMC2160, TMC2660, TMC5130 and TMC5160 drivers here. + * The default pins can be found in your board's pins file. + */ + //#define X_CS_PIN -1 + //#define Y_CS_PIN -1 + //#define Z_CS_PIN -1 + //#define X2_CS_PIN -1 + //#define Y2_CS_PIN -1 + //#define Z2_CS_PIN -1 + //#define Z3_CS_PIN -1 + //#define Z4_CS_PIN -1 + //#define I_CS_PIN -1 + //#define J_CS_PIN -1 + //#define K_CS_PIN -1 + //#define U_CS_PIN -1 + //#define V_CS_PIN -1 + //#define W_CS_PIN -1 + //#define E0_CS_PIN -1 + //#define E1_CS_PIN -1 + //#define E2_CS_PIN -1 + //#define E3_CS_PIN -1 + //#define E4_CS_PIN -1 + //#define E5_CS_PIN -1 + //#define E6_CS_PIN -1 + //#define E7_CS_PIN -1 + + /** + * Software option for SPI driven drivers (TMC2130, TMC2160, TMC2660, TMC5130 and TMC5160). + * The default SW SPI pins are defined the respective pins files, + * but you can override or define them here. + */ + //#define TMC_USE_SW_SPI + //#define TMC_SW_MOSI -1 + //#define TMC_SW_MISO -1 + //#define TMC_SW_SCK -1 + + // @section tmc/serial + + /** + * Four TMC2209 drivers can use the same HW/SW serial port with hardware configured addresses. + * Set the address using jumpers on pins MS1 and MS2. + * Address | MS1 | MS2 + * 0 | LOW | LOW + * 1 | HIGH | LOW + * 2 | LOW | HIGH + * 3 | HIGH | HIGH + * + * Set *_SERIAL_TX_PIN and *_SERIAL_RX_PIN to match for all drivers + * on the same serial port, either here or in your board's pins file. + */ + //#define X_SLAVE_ADDRESS 0 + //#define Y_SLAVE_ADDRESS 0 + //#define Z_SLAVE_ADDRESS 0 + //#define X2_SLAVE_ADDRESS 0 + //#define Y2_SLAVE_ADDRESS 0 + //#define Z2_SLAVE_ADDRESS 0 + //#define Z3_SLAVE_ADDRESS 0 + //#define Z4_SLAVE_ADDRESS 0 + //#define I_SLAVE_ADDRESS 0 + //#define J_SLAVE_ADDRESS 0 + //#define K_SLAVE_ADDRESS 0 + //#define U_SLAVE_ADDRESS 0 + //#define V_SLAVE_ADDRESS 0 + //#define W_SLAVE_ADDRESS 0 + //#define E0_SLAVE_ADDRESS 0 + //#define E1_SLAVE_ADDRESS 0 + //#define E2_SLAVE_ADDRESS 0 + //#define E3_SLAVE_ADDRESS 0 + //#define E4_SLAVE_ADDRESS 0 + //#define E5_SLAVE_ADDRESS 0 + //#define E6_SLAVE_ADDRESS 0 + //#define E7_SLAVE_ADDRESS 0 + + // @section tmc/smart + + /** + * Software enable + * + * Use for drivers that do not use a dedicated enable pin, but rather handle the same + * function through a communication line such as SPI or UART. + */ + //#define SOFTWARE_DRIVER_ENABLE + + // @section tmc/stealthchop + + /** + * TMC2130, TMC2160, TMC2208, TMC2209, TMC5130 and TMC5160 only + * Use Trinamic's ultra quiet stepping mode. + * When disabled, Marlin will use spreadCycle stepping mode. + */ + #if HAS_STEALTHCHOP + #define STEALTHCHOP_XY + #define STEALTHCHOP_Z + #define STEALTHCHOP_I + #define STEALTHCHOP_J + #define STEALTHCHOP_K + #define STEALTHCHOP_U + #define STEALTHCHOP_V + #define STEALTHCHOP_W + #define STEALTHCHOP_E + #endif + + /** + * Optimize spreadCycle chopper parameters by using predefined parameter sets + * or with the help of an example included in the library. + * Provided parameter sets are + * CHOPPER_DEFAULT_12V + * CHOPPER_DEFAULT_19V + * CHOPPER_DEFAULT_24V + * CHOPPER_DEFAULT_36V + * CHOPPER_09STEP_24V // 0.9 degree steppers (24V) + * CHOPPER_PRUSAMK3_24V // Imported parameters from the official Průša firmware for MK3 (24V) + * CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9 + * + * Define your own with: + * { , , hysteresis_start[1..8] } + */ + #define CHOPPER_TIMING CHOPPER_DEFAULT_24V // All axes (override below) + //#define CHOPPER_TIMING_X CHOPPER_TIMING // For X Axes (override below) + //#define CHOPPER_TIMING_X2 CHOPPER_TIMING_X + //#define CHOPPER_TIMING_Y CHOPPER_TIMING // For Y Axes (override below) + //#define CHOPPER_TIMING_Y2 CHOPPER_TIMING_Y + //#define CHOPPER_TIMING_Z CHOPPER_TIMING // For Z Axes (override below) + //#define CHOPPER_TIMING_Z2 CHOPPER_TIMING_Z + //#define CHOPPER_TIMING_Z3 CHOPPER_TIMING_Z + //#define CHOPPER_TIMING_Z4 CHOPPER_TIMING_Z + //#define CHOPPER_TIMING_I CHOPPER_TIMING // For I Axis + //#define CHOPPER_TIMING_J CHOPPER_TIMING // For J Axis + //#define CHOPPER_TIMING_K CHOPPER_TIMING // For K Axis + //#define CHOPPER_TIMING_U CHOPPER_TIMING // For U Axis + //#define CHOPPER_TIMING_V CHOPPER_TIMING // For V Axis + //#define CHOPPER_TIMING_W CHOPPER_TIMING // For W Axis + //#define CHOPPER_TIMING_E CHOPPER_TIMING // For Extruders (override below) + //#define CHOPPER_TIMING_E1 CHOPPER_TIMING_E + //#define CHOPPER_TIMING_E2 CHOPPER_TIMING_E + //#define CHOPPER_TIMING_E3 CHOPPER_TIMING_E + //#define CHOPPER_TIMING_E4 CHOPPER_TIMING_E + //#define CHOPPER_TIMING_E5 CHOPPER_TIMING_E + //#define CHOPPER_TIMING_E6 CHOPPER_TIMING_E + //#define CHOPPER_TIMING_E7 CHOPPER_TIMING_E + + // @section tmc/status + + /** + * Monitor Trinamic drivers + * for error conditions like overtemperature and short to ground. + * To manage over-temp Marlin can decrease the driver current until the error condition clears. + * Other detected conditions can be used to stop the current print. + * Relevant G-codes: + * M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given. + * M911 - Report stepper driver overtemperature pre-warn condition. + * M912 - Clear stepper driver overtemperature pre-warn condition flag. + * M122 - Report driver parameters (Requires TMC_DEBUG) + */ + //#define MONITOR_DRIVER_STATUS + + #if ENABLED(MONITOR_DRIVER_STATUS) + #define CURRENT_STEP_DOWN 50 // [mA] + #define REPORT_CURRENT_CHANGE + #define STOP_ON_ERROR + #endif + + // @section tmc/hybrid + + /** + * TMC2130, TMC2160, TMC2208, TMC2209, TMC5130 and TMC5160 only + * The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD. + * This mode allows for faster movements at the expense of higher noise levels. + * STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD. + * M913 X/Y/Z/E to live tune the setting + */ + //#define HYBRID_THRESHOLD + + #define X_HYBRID_THRESHOLD 100 // [mm/s] + #define X2_HYBRID_THRESHOLD 100 + #define Y_HYBRID_THRESHOLD 100 + #define Y2_HYBRID_THRESHOLD 100 + #define Z_HYBRID_THRESHOLD 3 + #define Z2_HYBRID_THRESHOLD 3 + #define Z3_HYBRID_THRESHOLD 3 + #define Z4_HYBRID_THRESHOLD 3 + #define I_HYBRID_THRESHOLD 3 // [linear=mm/s, rotational=°/s] + #define J_HYBRID_THRESHOLD 3 // [linear=mm/s, rotational=°/s] + #define K_HYBRID_THRESHOLD 3 // [linear=mm/s, rotational=°/s] + #define U_HYBRID_THRESHOLD 3 // [mm/s] + #define V_HYBRID_THRESHOLD 3 + #define W_HYBRID_THRESHOLD 3 + #define E0_HYBRID_THRESHOLD 30 + #define E1_HYBRID_THRESHOLD 30 + #define E2_HYBRID_THRESHOLD 30 + #define E3_HYBRID_THRESHOLD 30 + #define E4_HYBRID_THRESHOLD 30 + #define E5_HYBRID_THRESHOLD 30 + #define E6_HYBRID_THRESHOLD 30 + #define E7_HYBRID_THRESHOLD 30 + + /** + * Use StallGuard to home / probe X, Y, Z. + * + * TMC2130, TMC2160, TMC2209, TMC2660, TMC5130, and TMC5160 only + * Connect the stepper driver's DIAG1 pin to the X/Y endstop pin. + * X, Y, and Z homing will always be done in spreadCycle mode. + * + * X/Y/Z_STALL_SENSITIVITY is the default stall threshold. + * Use M914 X Y Z to set the stall threshold at runtime: + * + * Sensitivity TMC2209 Others + * HIGHEST 255 -64 (Too sensitive => False positive) + * LOWEST 0 63 (Too insensitive => No trigger) + * + * It is recommended to set HOMING_BUMP_MM to { 0, 0, 0 }. + * + * SPI_ENDSTOPS *** Beta feature! *** TMC2130/TMC5160 Only *** + * Poll the driver through SPI to determine load when homing. + * Removes the need for a wire from DIAG1 to an endstop pin. + * + * IMPROVE_HOMING_RELIABILITY tunes acceleration and jerk when + * homing and adds a guard period for endstop triggering. + * + * Comment *_STALL_SENSITIVITY to disable sensorless homing for that axis. + * @section tmc/stallguard + */ + //#define SENSORLESS_HOMING // StallGuard capable drivers only + + #if EITHER(SENSORLESS_HOMING, SENSORLESS_PROBING) + // TMC2209: 0...255. TMC2130: -64...63 + #define X_STALL_SENSITIVITY 8 + #define X2_STALL_SENSITIVITY X_STALL_SENSITIVITY + #define Y_STALL_SENSITIVITY 8 + #define Y2_STALL_SENSITIVITY Y_STALL_SENSITIVITY + //#define Z_STALL_SENSITIVITY 8 + //#define Z2_STALL_SENSITIVITY Z_STALL_SENSITIVITY + //#define Z3_STALL_SENSITIVITY Z_STALL_SENSITIVITY + //#define Z4_STALL_SENSITIVITY Z_STALL_SENSITIVITY + //#define I_STALL_SENSITIVITY 8 + //#define J_STALL_SENSITIVITY 8 + //#define K_STALL_SENSITIVITY 8 + //#define U_STALL_SENSITIVITY 8 + //#define V_STALL_SENSITIVITY 8 + //#define W_STALL_SENSITIVITY 8 + //#define SPI_ENDSTOPS // TMC2130 only + //#define IMPROVE_HOMING_RELIABILITY + #endif + + // @section tmc/config + + /** + * TMC Homing stepper phase. + * + * Improve homing repeatability by homing to stepper coil's nearest absolute + * phase position. Trinamic drivers use a stepper phase table with 1024 values + * spanning 4 full steps with 256 positions each (ergo, 1024 positions). + * Full step positions (128, 384, 640, 896) have the highest holding torque. + * + * Values from 0..1023, -1 to disable homing phase for that axis. + */ + //#define TMC_HOME_PHASE { 896, 896, 896 } + + /** + * Beta feature! + * Create a 50/50 square wave step pulse optimal for stepper drivers. + */ + //#define SQUARE_WAVE_STEPPING + + /** + * Enable M122 debugging command for TMC stepper drivers. + * M122 S0/1 will enable continuous reporting. + */ + //#define TMC_DEBUG + + /** + * You can set your own advanced settings by filling in predefined functions. + * A list of available functions can be found on the library github page + * https://github.com/teemuatlut/TMCStepper + * + * Example: + * #define TMC_ADV() { \ + * stepperX.diag0_otpw(1); \ + * stepperY.intpol(0); \ + * } + */ + #define TMC_ADV() { } + +#endif // HAS_TRINAMIC_CONFIG || HAS_TMC26X + +// @section i2cbus + +// +// I2C Master ID for LPC176x LCD and Digital Current control +// Does not apply to other peripherals based on the Wire library. +// +//#define I2C_MASTER_ID 1 // Set a value from 0 to 2 + +/** + * TWI/I2C BUS + * + * This feature is an EXPERIMENTAL feature so it shall not be used on production + * machines. Enabling this will allow you to send and receive I2C data from slave + * devices on the bus. + * + * ; Example #1 + * ; This macro send the string "Marlin" to the slave device with address 0x63 (99) + * ; It uses multiple M260 commands with one B arg + * M260 A99 ; Target slave address + * M260 B77 ; M + * M260 B97 ; a + * M260 B114 ; r + * M260 B108 ; l + * M260 B105 ; i + * M260 B110 ; n + * M260 S1 ; Send the current buffer + * + * ; Example #2 + * ; Request 6 bytes from slave device with address 0x63 (99) + * M261 A99 B5 + * + * ; Example #3 + * ; Example serial output of a M261 request + * echo:i2c-reply: from:99 bytes:5 data:hello + */ + +//#define EXPERIMENTAL_I2CBUS +#if ENABLED(EXPERIMENTAL_I2CBUS) + #define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave +#endif + +// @section photo + +/** + * Photo G-code + * Add the M240 G-code to take a photo. + * The photo can be triggered by a digital pin or a physical movement. + */ +//#define PHOTO_GCODE +#if ENABLED(PHOTO_GCODE) + // A position to move to (and raise Z) before taking the photo + //#define PHOTO_POSITION { X_MAX_POS - 5, Y_MAX_POS, 0 } // { xpos, ypos, zraise } (M240 X Y Z) + //#define PHOTO_DELAY_MS 100 // (ms) Duration to pause before moving back (M240 P) + //#define PHOTO_RETRACT_MM 6.5 // (mm) E retract/recover for the photo move (M240 R S) + + // Canon RC-1 or homebrew digital camera trigger + // Data from: https://www.doc-diy.net/photo/rc-1_hacked/ + //#define PHOTOGRAPH_PIN 23 + + // Canon Hack Development Kit + // https://captain-slow.dk/2014/03/09/3d-printing-timelapses/ + //#define CHDK_PIN 4 + + // Optional second move with delay to trigger the camera shutter + //#define PHOTO_SWITCH_POSITION { X_MAX_POS, Y_MAX_POS } // { xpos, ypos } (M240 I J) + + // Duration to hold the switch or keep CHDK_PIN high + //#define PHOTO_SWITCH_MS 50 // (ms) (M240 D) + + /** + * PHOTO_PULSES_US may need adjustment depending on board and camera model. + * Pin must be running at 48.4kHz. + * Be sure to use a PHOTOGRAPH_PIN which can rise and fall quick enough. + * (e.g., MKS SBase temp sensor pin was too slow, so used P1.23 on J8.) + * + * Example pulse data for Nikon: https://bit.ly/2FKD0Aq + * IR Wiring: https://git.io/JvJf7 + */ + //#define PHOTO_PULSES_US { 2000, 27850, 400, 1580, 400, 3580, 400 } // (µs) Durations for each 48.4kHz oscillation + #ifdef PHOTO_PULSES_US + #define PHOTO_PULSE_DELAY_US 13 // (µs) Approximate duration of each HIGH and LOW pulse in the oscillation + #endif +#endif + +// @section filament width + +/** + * Filament Width Sensor + * + * Measures the filament width in real-time and adjusts + * flow rate to compensate for any irregularities. + * + * Also allows the measured filament diameter to set the + * extrusion rate, so the slicer only has to specify the + * volume. + * + * Only a single extruder is supported at this time. + * + * 34 RAMPS_14 : Analog input 5 on the AUX2 connector + * 81 PRINTRBOARD : Analog input 2 on the Exp1 connector (version B,C,D,E) + * 301 RAMBO : Analog input 3 + * + * Note: May require analog pins to be defined for other boards. + */ +//#define FILAMENT_WIDTH_SENSOR + +#if ENABLED(FILAMENT_WIDTH_SENSOR) + #define FILAMENT_SENSOR_EXTRUDER_NUM 0 // Index of the extruder that has the filament sensor. :[0,1,2,3,4] + #define MEASUREMENT_DELAY_CM 14 // (cm) The distance from the filament sensor to the melting chamber + + #define FILWIDTH_ERROR_MARGIN 1.0 // (mm) If a measurement differs too much from nominal width ignore it + #define MAX_MEASUREMENT_DELAY 20 // (bytes) Buffer size for stored measurements (1 byte per cm). Must be larger than MEASUREMENT_DELAY_CM. + + #define DEFAULT_MEASURED_FILAMENT_DIA DEFAULT_NOMINAL_FILAMENT_DIA // Set measured to nominal initially + + // Display filament width on the LCD status line. Status messages will expire after 5 seconds. + //#define FILAMENT_LCD_DISPLAY +#endif + +// @section power + +/** + * Power Monitor + * Monitor voltage (V) and/or current (A), and -when possible- power (W) + * + * Read and configure with M430 + * + * The current sensor feeds DC voltage (relative to the measured current) to an analog pin + * The voltage sensor feeds DC voltage (relative to the measured voltage) to an analog pin + */ +//#define POWER_MONITOR_CURRENT // Monitor the system current +//#define POWER_MONITOR_VOLTAGE // Monitor the system voltage + +#if ENABLED(POWER_MONITOR_CURRENT) + #define POWER_MONITOR_VOLTS_PER_AMP 0.05000 // Input voltage to the MCU analog pin per amp - DO NOT apply more than ADC_VREF! + #define POWER_MONITOR_CURRENT_OFFSET 0 // Offset (in amps) applied to the calculated current + #define POWER_MONITOR_FIXED_VOLTAGE 13.6 // Voltage for a current sensor with no voltage sensor (for power display) +#endif + +#if ENABLED(POWER_MONITOR_VOLTAGE) + #define POWER_MONITOR_VOLTS_PER_VOLT 0.077933 // Input voltage to the MCU analog pin per volt - DO NOT apply more than ADC_VREF! + #define POWER_MONITOR_VOLTAGE_OFFSET 0 // Offset (in volts) applied to the calculated voltage +#endif + +// @section safety + +/** + * Stepper Driver Anti-SNAFU Protection + * + * If the SAFE_POWER_PIN is defined for your board, Marlin will check + * that stepper drivers are properly plugged in before applying power. + * Disable protection if your stepper drivers don't support the feature. + */ +//#define DISABLE_DRIVER_SAFE_POWER_PROTECT + +// @section reporting + +/** + * Auto-report fan speed with M123 S + * Requires fans with tachometer pins + */ +//#define AUTO_REPORT_FANS + +/** + * Auto-report temperatures with M155 S + */ +#define AUTO_REPORT_TEMPERATURES +#if ENABLED(AUTO_REPORT_TEMPERATURES) && TEMP_SENSOR_REDUNDANT + //#define AUTO_REPORT_REDUNDANT // Include the "R" sensor in the auto-report +#endif + +/** + * Auto-report position with M154 S + */ +//#define AUTO_REPORT_POSITION + +/** + * Include capabilities in M115 output + */ +#define EXTENDED_CAPABILITIES_REPORT +#if ENABLED(EXTENDED_CAPABILITIES_REPORT) + //#define M115_GEOMETRY_REPORT +#endif + +#if DISABLED(NO_VOLUMETRICS) + /** + * Volumetric extrusion default state + * Activate to make volumetric extrusion the default method, + * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. + * + * M200 D0 to disable, M200 Dn to set a new diameter (and enable volumetric). + * M200 S0/S1 to disable/enable volumetric extrusion. + */ + //#define VOLUMETRIC_DEFAULT_ON + + //#define VOLUMETRIC_EXTRUDER_LIMIT + #if ENABLED(VOLUMETRIC_EXTRUDER_LIMIT) + /** + * Default volumetric extrusion limit in cubic mm per second (mm^3/sec). + * This factory setting applies to all extruders. + * Use 'M200 [T] L' to override and 'M502' to reset. + * A non-zero value activates Volume-based Extrusion Limiting. + */ + #define DEFAULT_VOLUMETRIC_EXTRUDER_LIMIT 0.00 // (mm^3/sec) + #endif +#endif + +// @section reporting + +// Extra options for the M114 "Current Position" report +//#define M114_DETAIL // Use 'M114` for details to check planner calculations +//#define M114_REALTIME // Real current position based on forward kinematics +//#define M114_LEGACY // M114 used to synchronize on every call. Enable if needed. + +//#define REPORT_FAN_CHANGE // Report the new fan speed when changed by M106 (and others) + +// @section gcode + +/** + * Spend 28 bytes of SRAM to optimize the G-code parser + */ +#define FASTER_GCODE_PARSER + +#if ENABLED(FASTER_GCODE_PARSER) + //#define GCODE_QUOTED_STRINGS // Support for quoted string parameters +#endif + +// Support for MeatPack G-code compression (https://github.com/scottmudge/OctoPrint-MeatPack) +//#define MEATPACK_ON_SERIAL_PORT_1 +//#define MEATPACK_ON_SERIAL_PORT_2 + +//#define GCODE_CASE_INSENSITIVE // Accept G-code sent to the firmware in lowercase + +//#define REPETIER_GCODE_M360 // Add commands originally from Repetier FW + +/** + * Enable this option for a leaner build of Marlin that removes all + * workspace offsets, simplifying coordinate transformations, leveling, etc. + * + * - M206 and M428 are disabled. + * - G92 will revert to its behavior from Marlin 1.0. + */ +//#define NO_WORKSPACE_OFFSETS + +// @section gcode + +/** + * Startup commands + * + * Execute certain G-code commands immediately after power-on. + */ +//#define STARTUP_COMMANDS "M17 Z" + +/** + * G-code Macros + * + * Add G-codes M810-M819 to define and run G-code macros. + * Macros are not saved to EEPROM. + */ +//#define GCODE_MACROS +#if ENABLED(GCODE_MACROS) + #define GCODE_MACROS_SLOTS 5 // Up to 10 may be used + #define GCODE_MACROS_SLOT_SIZE 50 // Maximum length of a single macro +#endif + +/** + * User-defined menu items to run custom G-code. + * Up to 25 may be defined, but the actual number is LCD-dependent. + */ + +// @section custom main menu + +// Custom Menu: Main Menu +//#define CUSTOM_MENU_MAIN +#if ENABLED(CUSTOM_MENU_MAIN) + //#define CUSTOM_MENU_MAIN_TITLE "Custom Commands" + #define CUSTOM_MENU_MAIN_SCRIPT_DONE "M117 User Script Done" + #define CUSTOM_MENU_MAIN_SCRIPT_AUDIBLE_FEEDBACK + //#define CUSTOM_MENU_MAIN_SCRIPT_RETURN // Return to status screen after a script + #define CUSTOM_MENU_MAIN_ONLY_IDLE // Only show custom menu when the machine is idle + + #define MAIN_MENU_ITEM_1_DESC "Home & UBL Info" + #define MAIN_MENU_ITEM_1_GCODE "G28\nG29 W" + //#define MAIN_MENU_ITEM_1_CONFIRM // Show a confirmation dialog before this action + + #define MAIN_MENU_ITEM_2_DESC "Preheat for " PREHEAT_1_LABEL + #define MAIN_MENU_ITEM_2_GCODE "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND) + //#define MAIN_MENU_ITEM_2_CONFIRM + + //#define MAIN_MENU_ITEM_3_DESC "Preheat for " PREHEAT_2_LABEL + //#define MAIN_MENU_ITEM_3_GCODE "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND) + //#define MAIN_MENU_ITEM_3_CONFIRM + + //#define MAIN_MENU_ITEM_4_DESC "Heat Bed/Home/Level" + //#define MAIN_MENU_ITEM_4_GCODE "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29" + //#define MAIN_MENU_ITEM_4_CONFIRM + + //#define MAIN_MENU_ITEM_5_DESC "Home & Info" + //#define MAIN_MENU_ITEM_5_GCODE "G28\nM503" + //#define MAIN_MENU_ITEM_5_CONFIRM +#endif + +// @section custom config menu + +// Custom Menu: Configuration Menu +#define CUSTOM_MENU_CONFIG +#if ENABLED(CUSTOM_MENU_CONFIG) + #define CUSTOM_MENU_CONFIG_TITLE "DELICIOUS COMMANDS" + #define CUSTOM_MENU_CONFIG_SCRIPT_DONE "Script Done" + #define CUSTOM_MENU_CONFIG_SCRIPT_AUDIBLE_FEEDBACK + #define CUSTOM_MENU_CONFIG_SCRIPT_RETURN // Return to status screen after a script + #define CUSTOM_MENU_CONFIG_ONLY_IDLE // Only show custom menu when the machine is idle +// M106 Sets fan speed to 100 percent, M106 S0 sets fan to 0 - DELICIOUS + #define CONFIG_MENU_ITEM_1_DESC "PID E C10 TEMP 190" + #define CONFIG_MENU_ITEM_1_GCODE "M106 S255\nM303 E0 C10 S190 U\nM500\nM106 S0\nM117 PID E TEMP 190 DONE" + #define CONFIG_MENU_ITEM_1_CONFIRM // Show a confirmation dialog before this action + + #define CONFIG_MENU_ITEM_2_DESC "PID E C10 TEMP 200" + #define CONFIG_MENU_ITEM_2_GCODE "M106 S255\nM303 E0 C10 S200 U\nM500\nM106 S0\nM117 PID E TEMP 200 DONE" + #define CONFIG_MENU_ITEM_2_CONFIRM // Show a confirmation dialog before this action + + #define CONFIG_MENU_ITEM_3_DESC "PID E C10 TEMP 210" + #define CONFIG_MENU_ITEM_3_GCODE "M106 S255\nM303 E0 C10 S210 U\nM500\nM106 S0\nM117 PID E TEMP 210 DONE" + #define CONFIG_MENU_ITEM_3_CONFIRM // Show a confirmation dialog before this action + + #define CONFIG_MENU_ITEM_4_DESC "PID E C10 TEMP 260" + #define CONFIG_MENU_ITEM_4_GCODE "M106 S255\nM303 E0 C10 S260 U\nM500\nM106 S0\nM117 PID E TEMP 260 DONE" + #define CONFIG_MENU_ITEM_4_CONFIRM // Show a confirmation dialog before this action + + #define CONFIG_MENU_ITEM_5_DESC "PID BED C10 TEMP 50" + #define CONFIG_MENU_ITEM_5_GCODE "M303 E-1 C10 S50 U\nM500\nM106 S0\nM117 PID BED TEMP 50 DONE" + #define CONFIG_MENU_ITEM_5_CONFIRM + + #define CONFIG_MENU_ITEM_6_DESC "PID BED C10 TEMP 60" + #define CONFIG_MENU_ITEM_6_GCODE "M303 E-1 C10 S60 U\nM500\nM106 S0\nM117 PID BED TEMP 60 DONE" + #define CONFIG_MENU_ITEM_6_CONFIRM + + #define CONFIG_MENU_ITEM_7_DESC "PID BED C10 TEMP 70" + #define CONFIG_MENU_ITEM_7_GCODE "M303 E-1 C10 S70 U\nM500\nM106 S0\nM117 PID BED TEMP 70 DONE" + #define CONFIG_MENU_ITEM_7_CONFIRM + + #define CONFIG_MENU_ITEM_8_DESC "PID BED C10 TEMP 90" + #define CONFIG_MENU_ITEM_8_GCODE "M303 E-1 C10 S90 U\nM500\nM106 S0\nM117 PID BED TEMP 90 DONE" + #define CONFIG_MENU_ITEM_8_CONFIRM +#endif + +// @section custom buttons + +/** + * User-defined buttons to run custom G-code. + * Up to 25 may be defined. + */ +//#define CUSTOM_USER_BUTTONS +#if ENABLED(CUSTOM_USER_BUTTONS) + //#define BUTTON1_PIN -1 + #if PIN_EXISTS(BUTTON1) + #define BUTTON1_HIT_STATE LOW // State of the triggered button. NC=LOW. NO=HIGH. + #define BUTTON1_WHEN_PRINTING false // Button allowed to trigger during printing? + #define BUTTON1_GCODE "G28" + #define BUTTON1_DESC "Homing" // Optional string to set the LCD status + #endif + + //#define BUTTON2_PIN -1 + #if PIN_EXISTS(BUTTON2) + #define BUTTON2_HIT_STATE LOW + #define BUTTON2_WHEN_PRINTING false + #define BUTTON2_GCODE "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND) + #define BUTTON2_DESC "Preheat for " PREHEAT_1_LABEL + #endif + + //#define BUTTON3_PIN -1 + #if PIN_EXISTS(BUTTON3) + #define BUTTON3_HIT_STATE LOW + #define BUTTON3_WHEN_PRINTING false + #define BUTTON3_GCODE "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND) + #define BUTTON3_DESC "Preheat for " PREHEAT_2_LABEL + #endif +#endif + +// @section host + +/** + * Host Action Commands + * + * Define host streamer action commands in compliance with the standard. + * + * See https://reprap.org/wiki/G-code#Action_commands + * Common commands ........ poweroff, pause, paused, resume, resumed, cancel + * G29_RETRY_AND_RECOVER .. probe_rewipe, probe_failed + * + * Some features add reason codes to extend these commands. + * + * Host Prompt Support enables Marlin to use the host for user prompts so + * filament runout and other processes can be managed from the host side. + */ +#define HOST_ACTION_COMMANDS +#if ENABLED(HOST_ACTION_COMMANDS) + //#define HOST_PAUSE_M76 // Tell the host to pause in response to M76 + //#define HOST_PROMPT_SUPPORT // Initiate host prompts to get user feedback + #if ENABLED(HOST_PROMPT_SUPPORT) + //#define HOST_STATUS_NOTIFICATIONS // Send some status messages to the host as notifications + #endif + //#define HOST_START_MENU_ITEM // Add a menu item that tells the host to start + //#define HOST_SHUTDOWN_MENU_ITEM // Add a menu item that tells the host to shut down +#endif + +// @section extras + +/** + * Cancel Objects + * + * Implement M486 to allow Marlin to skip objects + */ +//#define CANCEL_OBJECTS +#if ENABLED(CANCEL_OBJECTS) + #define CANCEL_OBJECTS_REPORTING // Emit the current object as a status message +#endif + +/** + * I2C position encoders for closed loop control. + * Developed by Chris Barr at Aus3D. + * + * Wiki: https://wiki.aus3d.com.au/Magnetic_Encoder + * Github: https://github.com/Aus3D/MagneticEncoder + * + * Supplier: https://aus3d.com.au/magnetic-encoder-module + * Alternative Supplier: https://reliabuild3d.com/ + * + * Reliabuild encoders have been modified to improve reliability. + * @section i2c encoders + */ + +//#define I2C_POSITION_ENCODERS +#if ENABLED(I2C_POSITION_ENCODERS) + + #define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5 + // encoders supported currently. + + #define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200. + #define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. _AXIS. + #define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or- + // I2CPE_ENC_TYPE_ROTARY. + #define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for + // 1mm poles. For linear encoders this is ticks / mm, + // for rotary encoders this is ticks / revolution. + //#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper + // steps per full revolution (motor steps/rev * microstepping) + //#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel. + #define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_MICROSTEP // Type of error error correction. + #define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the + // printer will attempt to correct the error; errors + // smaller than this are ignored to minimize effects of + // measurement noise / latency (filter). + + #define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2. + #define I2CPE_ENC_2_AXIS Y_AXIS + #define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR + #define I2CPE_ENC_2_TICKS_UNIT 2048 + //#define I2CPE_ENC_2_TICKS_REV (16 * 200) + //#define I2CPE_ENC_2_INVERT + #define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_MICROSTEP + #define I2CPE_ENC_2_EC_THRESH 0.10 + + #define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options + #define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below. + + #define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4. + #define I2CPE_ENC_4_AXIS E_AXIS + + #define I2CPE_ENC_5_ADDR 34 // Encoder 5. + #define I2CPE_ENC_5_AXIS E_AXIS + + // Default settings for encoders which are enabled, but without settings configured above. + #define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR + #define I2CPE_DEF_ENC_TICKS_UNIT 2048 + #define I2CPE_DEF_TICKS_REV (16 * 200) + #define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE + #define I2CPE_DEF_EC_THRESH 0.1 + + //#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given + // axis after which the printer will abort. Comment out to + // disable abort behavior. + + #define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault + // for this amount of time (in ms) before the encoder + // is trusted again. + + /** + * Position is checked every time a new command is executed from the buffer but during long moves, + * this setting determines the minimum update time between checks. A value of 100 works well with + * error rolling average when attempting to correct only for skips and not for vibration. + */ + #define I2CPE_MIN_UPD_TIME_MS 4 // (ms) Minimum time between encoder checks. + + // Use a rolling average to identify persistent errors that indicate skips, as opposed to vibration and noise. + #define I2CPE_ERR_ROLLING_AVERAGE + +#endif // I2C_POSITION_ENCODERS + +/** + * Analog Joystick(s) + * @section joystick + */ +//#define JOYSTICK +#if ENABLED(JOYSTICK) + #define JOY_X_PIN 5 // RAMPS: Suggested pin A5 on AUX2 + #define JOY_Y_PIN 10 // RAMPS: Suggested pin A10 on AUX2 + #define JOY_Z_PIN 12 // RAMPS: Suggested pin A12 on AUX2 + #define JOY_EN_PIN 44 // RAMPS: Suggested pin D44 on AUX2 + + //#define INVERT_JOY_X // Enable if X direction is reversed + //#define INVERT_JOY_Y // Enable if Y direction is reversed + //#define INVERT_JOY_Z // Enable if Z direction is reversed + + // Use M119 with JOYSTICK_DEBUG to find reasonable values after connecting: + #define JOY_X_LIMITS { 5600, 8190-100, 8190+100, 10800 } // min, deadzone start, deadzone end, max + #define JOY_Y_LIMITS { 5600, 8250-100, 8250+100, 11000 } + #define JOY_Z_LIMITS { 4800, 8080-100, 8080+100, 11550 } + //#define JOYSTICK_DEBUG +#endif + +/** + * Mechanical Gantry Calibration + * Modern replacement for the Průša TMC_Z_CALIBRATION. + * Adds capability to work with any adjustable current drivers. + * Implemented as G34 because M915 is deprecated. + * @section calibrate + */ +//#define MECHANICAL_GANTRY_CALIBRATION +#if ENABLED(MECHANICAL_GANTRY_CALIBRATION) + #define GANTRY_CALIBRATION_CURRENT 600 // Default calibration current in ma + #define GANTRY_CALIBRATION_EXTRA_HEIGHT 15 // Extra distance in mm past Z_###_POS to move + #define GANTRY_CALIBRATION_FEEDRATE 500 // Feedrate for correction move + //#define GANTRY_CALIBRATION_TO_MIN // Enable to calibrate Z in the MIN direction + + //#define GANTRY_CALIBRATION_SAFE_POSITION XY_CENTER // Safe position for nozzle + //#define GANTRY_CALIBRATION_XY_PARK_FEEDRATE 3000 // XY Park Feedrate - MMM + //#define GANTRY_CALIBRATION_COMMANDS_PRE "" + #define GANTRY_CALIBRATION_COMMANDS_POST "G28" // G28 highly recommended to ensure an accurate position +#endif + +/** + * Instant freeze / unfreeze functionality + * Potentially useful for emergency stop that allows being resumed. + * @section interface + */ +//#define FREEZE_FEATURE +#if ENABLED(FREEZE_FEATURE) + //#define FREEZE_PIN 41 // Override the default (KILL) pin here + #define FREEZE_STATE LOW // State of pin indicating freeze +#endif + +/** + * MAX7219 Debug Matrix + * + * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip as a realtime status display. + * Requires 3 signal wires. Some useful debug options are included to demonstrate its usage. + * @section debug matrix + */ +//#define MAX7219_DEBUG +#if ENABLED(MAX7219_DEBUG) + #define MAX7219_CLK_PIN 64 + #define MAX7219_DIN_PIN 57 + #define MAX7219_LOAD_PIN 44 + + //#define MAX7219_GCODE // Add the M7219 G-code to control the LED matrix + #define MAX7219_INIT_TEST 2 // Test pattern at startup: 0=none, 1=sweep, 2=spiral + #define MAX7219_NUMBER_UNITS 1 // Number of Max7219 units in chain. + #define MAX7219_ROTATE 0 // Rotate the display clockwise (in multiples of +/- 90°) + // connector at: right=0 bottom=-90 top=90 left=180 + //#define MAX7219_REVERSE_ORDER // The order of the LED matrix units may be reversed + //#define MAX7219_REVERSE_EACH // The LEDs in each matrix unit row may be reversed + //#define MAX7219_SIDE_BY_SIDE // Big chip+matrix boards can be chained side-by-side + + /** + * Sample debug features + * If you add more debug displays, be careful to avoid conflicts! + */ + #define MAX7219_DEBUG_PRINTER_ALIVE // Blink corner LED of 8x8 matrix to show that the firmware is functioning + #define MAX7219_DEBUG_PLANNER_HEAD 2 // Show the planner queue head position on this and the next LED matrix row + #define MAX7219_DEBUG_PLANNER_TAIL 4 // Show the planner queue tail position on this and the next LED matrix row + + #define MAX7219_DEBUG_PLANNER_QUEUE 0 // Show the current planner queue depth on this and the next LED matrix row + // If you experience stuttering, reboots, etc. this option can reveal how + // tweaks made to the configuration are affecting the printer in real-time. + #define MAX7219_DEBUG_PROFILE 6 // Display the fraction of CPU time spent in profiled code on this LED matrix + // row. By default idle() is profiled so this shows how "idle" the processor is. + // See class CodeProfiler. +#endif + +/** + * NanoDLP Sync support + * + * Support for Synchronized Z moves when used with NanoDLP. G0/G1 axis moves will + * output a "Z_move_comp" string to enable synchronization with DLP projector exposure. + * This feature allows you to use [[WaitForDoneMessage]] instead of M400 commands. + * @section nanodlp + */ +//#define NANODLP_Z_SYNC +#if ENABLED(NANODLP_Z_SYNC) + //#define NANODLP_ALL_AXIS // Send a "Z_move_comp" report for any axis move (not just Z). +#endif + +/** + * Ethernet. Use M552 to enable and set the IP address. + * @section network + */ +#if HAS_ETHERNET + #define MAC_ADDRESS { 0xDE, 0xAD, 0xBE, 0xEF, 0xF0, 0x0D } // A MAC address unique to your network +#endif + +/** + * Advanced Print Counter settings + * @section stats + */ +#if ENABLED(PRINTCOUNTER) + #define SERVICE_WARNING_BUZZES 3 + // Activate up to 3 service interval watchdogs + //#define SERVICE_NAME_1 "Service S" + //#define SERVICE_INTERVAL_1 100 // print hours + //#define SERVICE_NAME_2 "Service L" + //#define SERVICE_INTERVAL_2 200 // print hours + //#define SERVICE_NAME_3 "Service 3" + //#define SERVICE_INTERVAL_3 1 // print hours +#endif + +// @section develop + +// +// M100 Free Memory Watcher to debug memory usage +// +//#define M100_FREE_MEMORY_WATCHER + +// +// M42 - Set pin states +// +//#define DIRECT_PIN_CONTROL + +// +// M43 - display pin status, toggle pins, watch pins, watch endstops & toggle LED, test servo probe +// +//#define PINS_DEBUGGING + +// Enable Tests that will run at startup and produce a report +//#define MARLIN_TEST_BUILD + +// Enable Marlin dev mode which adds some special commands +//#define MARLIN_DEV_MODE + +#if ENABLED(MARLIN_DEV_MODE) + /** + * D576 - Buffer Monitoring + * To help diagnose print quality issues stemming from empty command buffers. + */ + //#define BUFFER_MONITORING +#endif + +/** + * Postmortem Debugging captures misbehavior and outputs the CPU status and backtrace to serial. + * When running in the debugger it will break for debugging. This is useful to help understand + * a crash from a remote location. Requires ~400 bytes of SRAM and 5Kb of flash. + */ +//#define POSTMORTEM_DEBUGGING + +/** + * Software Reset options + */ +//#define SOFT_RESET_VIA_SERIAL // 'KILL' and '^X' commands will soft-reset the controller +//#define SOFT_RESET_ON_KILL // Use a digital button to soft-reset the controller after KILL + +// Report uncleaned reset reason from register r2 instead of MCUSR. Supported by Optiboot on AVR. +//#define OPTIBOOT_RESET_REASON diff --git a/_OLDER VERSIONS/V1.15.0/_Bootscreen.h b/_OLDER VERSIONS/V1.15.0/_Bootscreen.h new file mode 100644 index 0000000..2ef6821 --- /dev/null +++ b/_OLDER VERSIONS/V1.15.0/_Bootscreen.h @@ -0,0 +1,80 @@ +#pragma once + +/** + * Custom Boot Screen bitmap + * + * Place this file in the root with your configuration files + * and enable SHOW_CUSTOM_BOOTSCREEN in Configuration.h. + * + * Use the Marlin Bitmap Converter to make your own: + * https://marlinfw.org/tools/u8glib/converter.html + */ + +#define LEU1_BMPWIDTH 128 + +const unsigned char custom_start_bmp[] PROGMEM = { + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000011,B10000000, + B00011111,B11000000,B11111111,B00011110,B00000111,B10000001,B11110011,B11100001,B11110000,B01111000,B11110001,B11111000,B00000000,B00000000,B00000111,B10000000, + B00001100,B01110000,B01100001,B10001100,B00000011,B00000110,B00110001,B11000011,B00011000,B00110000,B01100011,B00011000,B00000000,B00000000,B00011110,B00000000, + B00001100,B00110000,B01100000,B00001100,B00000011,B00001100,B00010001,B11000110,B00001100,B00110000,B01100011,B00001000,B00000000,B00000000,B00011110,B00000000, + B00001100,B00011000,B01100000,B00001100,B00000011,B00001100,B00000001,B11000100,B00000110,B00110000,B01100011,B00000000,B00000000,B00000000,B01111000,B00000000, + B00001100,B00011000,B01100010,B00001100,B00000011,B00001100,B00000001,B11001100,B00000110,B00110000,B01100011,B00000000,B00000000,B00000000,B01111000,B00000000, + B00001100,B00011000,B01111110,B00001100,B00000011,B00001000,B00000001,B11001100,B00000110,B00110000,B01100001,B11000000,B00000000,B00000001,B11111000,B00000000, + B00001100,B00011000,B01111110,B00001100,B00000011,B00001000,B00000001,B11001100,B00000110,B00110000,B01100000,B11110000,B00000000,B00000001,B11111100,B00000000, + B00001100,B00011000,B01100010,B00001100,B00000011,B00001000,B00000001,B11001100,B00000110,B00110000,B01100000,B00111000,B00000000,B00011111,B11111110,B00000000, + B00001100,B00011000,B01100000,B00001100,B00000011,B00001100,B00000001,B11001100,B00000110,B00110000,B01100000,B00011000,B00000000,B00111111,B11111111,B10000000, + B00001100,B00011000,B01100000,B00001100,B00110011,B00001100,B00000001,B11000100,B00000100,B00110000,B01100000,B00001000,B00000000,B01111111,B11111111,B10000000, + B00001100,B00110000,B01100001,B10001100,B00110011,B00001100,B00010001,B11000110,B00001100,B00110000,B01100010,B00001000,B00000001,B11100111,B11111111,B11100000, + B00001100,B01100000,B11100001,B10001100,B00110011,B00000110,B00110001,B11000011,B00011000,B00011000,B11000011,B00111000,B00000001,B11011000,B00111111,B11100000, + B00011111,B10000000,B11111111,B00011111,B11100111,B10000011,B11100011,B11100001,B11110000,B00001111,B10000001,B11110000,B00000001,B10011000,B00011111,B11100000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00011101,B11100011,B11100000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11111111,B11111111,B11100001,B11100000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11000001,B11111111,B11100001,B11100000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00000000,B00011111,B11111100,B01110000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100111,B11111110,B00110000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B01100011,B11111110,B00010000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B01100001,B10011111,B10010000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B01100001,B10011111,B10010000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B01100001,B10001111,B10010000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B01100001,B10001111,B10010000, + B00000000,B00000001,B11000000,B01110000,B00010000,B00111111,B10000011,B11000000,B01110001,B11000001,B11000000,B00000000,B00000000,B01100001,B10001111,B10010000, + B00000000,B00000001,B11000000,B11100000,B00111000,B00011000,B11100001,B10000000,B01110000,B11100001,B10000000,B00000000,B00000000,B00000000,B00001111,B10000000, + B00000000,B00000001,B11100000,B11100000,B00111000,B00011000,B01100001,B10000000,B00100000,B11100001,B10000000,B00000000,B00000000,B00000000,B00001111,B10000000, + B00000000,B00000001,B11100001,B11100000,B01111000,B00011000,B01100001,B10000000,B00100000,B10110001,B10000000,B00000000,B00000000,B00000000,B00001111,B11000000, + B00000000,B00000001,B10100001,B01100000,B01001100,B00011000,B01100001,B10000000,B00100000,B10111001,B10000000,B00000000,B00000000,B00000000,B00001111,B11100000, + B00000000,B00000001,B10110001,B01100000,B01001100,B00011000,B01100001,B10000000,B00100000,B10011001,B10000000,B00000000,B00000000,B00000000,B00001111,B11100000, + B00000000,B00000001,B10110010,B01100000,B11001100,B00011111,B11000001,B10000000,B00100000,B10001101,B10000000,B00000000,B00000000,B00000000,B00001111,B11000000, + B00000000,B00000001,B10011010,B01100000,B10000100,B00011111,B10000001,B10000000,B00100000,B10001101,B10000000,B00000000,B00000000,B00000000,B00001111,B10000000, + B00000000,B00000001,B10011110,B01100000,B11111110,B00011000,B11000001,B10000000,B00100000,B10000111,B10000000,B00000000,B00000000,B00000000,B00001111,B10000000, + B00000000,B00000001,B10001100,B01100001,B10000110,B00011000,B01100001,B10000010,B00100000,B10000111,B10000000,B00000000,B00000000,B00000000,B00001110,B00000000, + B00000000,B00000001,B10001100,B01100001,B00000010,B00011000,B01100001,B10000110,B00100000,B10000011,B10000000,B00000000,B00000000,B00000000,B00001110,B00000000, + B00000000,B00000001,B10000000,B01100011,B00000011,B00011000,B00110001,B10000110,B01110000,B10000001,B10000000,B00000000,B00000000,B00000000,B00001110,B00000000, + B00000000,B00000011,B11000000,B11110111,B10000111,B10111100,B00111011,B11111110,B01110001,B11000001,B10000000,B00000000,B00000000,B00000000,B00001110,B00000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00001110,B00000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00001100,B00000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00011100,B00000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00011110,B00000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B01111110,B00000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B01111110,B00000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000011,B11100111,B10000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000011,B11000011,B10000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00011100,B00000000,B01000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00011000,B00000000,B01000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00011000,B00000000,B01000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00011000,B00000000,B01100000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00011000,B00000000,B01000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000 +}; diff --git a/_OLDER VERSIONS/V1.15.0/_Statusscreen.h b/_OLDER VERSIONS/V1.15.0/_Statusscreen.h new file mode 100644 index 0000000..f6c6af3 --- /dev/null +++ b/_OLDER VERSIONS/V1.15.0/_Statusscreen.h @@ -0,0 +1,50 @@ +#pragma once + +/** + * Custom Status Screen bitmap + * + * Place this file in the root with your configuration files + * and enable CUSTOM_STATUS_SCREEN_IMAGE in Configuration.h. + * + * Use the Marlin Bitmap Converter to make your own: + * https://marlinfw.org/tools/u8glib/converter.html + */ + +// +// Status Screen Logo bitmap +// +#define STATUS_LOGO_Y 8 +#define STATUS_LOGO_WIDTH 39 + +const unsigned char status_logo_bmp[] PROGMEM = { + B11111000,B00000001,B10000000,B00000000,B00001100, + B01001000,B00000000,B10000000,B00000000,B00010010, + B01000011,B11000011,B10001100,B11010000,B00000010, + B01110001,B00100100,B10010010,B01100111,B11001100, + B01000001,B00100100,B10011110,B01000000,B00000010, + B01001001,B00100100,B10010000,B01000000,B00010010, + B11111011,B10110011,B11001110,B11100000,B00001100, + B00000000,B00000000,B00000000,B00000000,B00000000, + B00000000,B00000000,B00000000,B00000000,B00000000, + B00000000,B00000011,B10000000,B00000000,B00000000, + B00000000,B00000010,B01000000,B00000000,B00000000, + B00000000,B00000010,B01010110,B01100000,B00000000, + B00000000,B00000011,B10011000,B10010000,B00000000, + B00000000,B00000010,B00010000,B10010000,B00000000, + B00000000,B00000010,B00010000,B10010000,B00000000, + B00000000,B00000010,B00010000,B01100000,B00000000 +}; + +// +// Use default bitmaps +// +#define STATUS_HOTEND_ANIM +#define STATUS_BED_ANIM +#define STATUS_HEATERS_XSPACE 20 +#if HOTENDS < 2 + #define STATUS_HEATERS_X 48 + #define STATUS_BED_X 72 +#else + #define STATUS_HEATERS_X 40 + #define STATUS_BED_X 80 +#endif