From f9836c0303a3d8c4093707a461d402fa3f4fa743 Mon Sep 17 00:00:00 2001 From: Theodor Hansson Date: Thu, 25 Jan 2024 15:43:46 +0100 Subject: [PATCH] Initial commit of zyyx profiles --- resources/definitions/zyyx_plus.def.json | 63 +++++++++++ resources/definitions/zyyx_pro.def.json | 99 ++++++++++++++++++ resources/definitions/zyyx_pro_ii.def.json | 99 ++++++++++++++++++ .../extruders/zyyx_plus_extruder_0.def.json | 16 +++ .../extruders/zyyx_pro_extruder.def.json | 19 ++++ .../extruders/zyyx_pro_ii_extruder.def.json | 19 ++++ resources/meshes/zyyx_pro_platform.stl | Bin 0 -> 104184 bytes .../zyyx/zyyx_plus_flex_normal.inst.cfg | 27 +++++ .../zyyx/zyyx_plus_global_normal.inst.cfg | 14 +++ .../zyyx/zyyx_plus_pla_normal.inst.cfg | 27 +++++ .../zyyx/zyyx_pro_02_normal_pla.inst.cfg | 44 ++++++++ .../zyyx/zyyx_pro_04_normal_pla.inst.cfg | 44 ++++++++ .../zyyx/zyyx_pro_06_normal_pla.inst.cfg | 43 ++++++++ .../zyyx/zyyx_pro_08_normal_pla.inst.cfg | 44 ++++++++ .../zyyx/zyyx_pro_ii_02_pla_normal.inst.cfg | 47 +++++++++ .../zyyx/zyyx_pro_ii_04_pla_fine.inst.cfg | 47 +++++++++ .../zyyx/zyyx_pro_ii_04_pla_normal.inst.cfg | 47 +++++++++ .../zyyx/zyyx_pro_ii_04_pla_quick.inst.cfg | 47 +++++++++ .../zyyx/zyyx_pro_ii_06_pla_fine.inst.cfg | 46 ++++++++ .../zyyx/zyyx_pro_ii_06_pla_normal.inst.cfg | 46 ++++++++ .../zyyx/zyyx_pro_ii_06_pla_quick.inst.cfg | 46 ++++++++ .../zyyx/zyyx_pro_ii_12_pla_normal.inst.cfg | 46 ++++++++ .../zyyx/zyyx_pro_ii_global_normal.inst.cfg | 14 +++ resources/variants/zyyx_plus_0.4.inst.cfg | 14 +++ .../variants/zyyx_pro_carbon0.6.inst.cfg | 16 +++ .../variants/zyyx_pro_ii_carbon0.4.inst.cfg | 16 +++ .../variants/zyyx_pro_ii_carbon0.6.inst.cfg | 16 +++ .../variants/zyyx_pro_ii_carbon1.2.inst.cfg | 67 ++++++++++++ .../variants/zyyx_pro_ii_multi0.2.inst.cfg | 50 +++++++++ resources/variants/zyyx_pro_multi0.2.inst.cfg | 50 +++++++++ resources/variants/zyyx_pro_multi0.4.inst.cfg | 16 +++ resources/variants/zyyx_pro_multi0.8.inst.cfg | 67 ++++++++++++ 32 files changed, 1256 insertions(+) create mode 100644 resources/definitions/zyyx_plus.def.json create mode 100644 resources/definitions/zyyx_pro.def.json create mode 100644 resources/definitions/zyyx_pro_ii.def.json create mode 100644 resources/extruders/zyyx_plus_extruder_0.def.json create mode 100644 resources/extruders/zyyx_pro_extruder.def.json create mode 100644 resources/extruders/zyyx_pro_ii_extruder.def.json create mode 100644 resources/meshes/zyyx_pro_platform.stl create mode 100644 resources/quality/zyyx/zyyx_plus_flex_normal.inst.cfg create mode 100644 resources/quality/zyyx/zyyx_plus_global_normal.inst.cfg create mode 100644 resources/quality/zyyx/zyyx_plus_pla_normal.inst.cfg create mode 100644 resources/quality/zyyx/zyyx_pro_02_normal_pla.inst.cfg create mode 100644 resources/quality/zyyx/zyyx_pro_04_normal_pla.inst.cfg create mode 100644 resources/quality/zyyx/zyyx_pro_06_normal_pla.inst.cfg create mode 100644 resources/quality/zyyx/zyyx_pro_08_normal_pla.inst.cfg create mode 100644 resources/quality/zyyx/zyyx_pro_ii_02_pla_normal.inst.cfg create mode 100644 resources/quality/zyyx/zyyx_pro_ii_04_pla_fine.inst.cfg create mode 100644 resources/quality/zyyx/zyyx_pro_ii_04_pla_normal.inst.cfg create mode 100644 resources/quality/zyyx/zyyx_pro_ii_04_pla_quick.inst.cfg create mode 100644 resources/quality/zyyx/zyyx_pro_ii_06_pla_fine.inst.cfg create mode 100644 resources/quality/zyyx/zyyx_pro_ii_06_pla_normal.inst.cfg create mode 100644 resources/quality/zyyx/zyyx_pro_ii_06_pla_quick.inst.cfg create mode 100644 resources/quality/zyyx/zyyx_pro_ii_12_pla_normal.inst.cfg create mode 100644 resources/quality/zyyx/zyyx_pro_ii_global_normal.inst.cfg create mode 100644 resources/variants/zyyx_plus_0.4.inst.cfg create mode 100644 resources/variants/zyyx_pro_carbon0.6.inst.cfg create mode 100644 resources/variants/zyyx_pro_ii_carbon0.4.inst.cfg create mode 100644 resources/variants/zyyx_pro_ii_carbon0.6.inst.cfg create mode 100644 resources/variants/zyyx_pro_ii_carbon1.2.inst.cfg create mode 100644 resources/variants/zyyx_pro_ii_multi0.2.inst.cfg create mode 100644 resources/variants/zyyx_pro_multi0.2.inst.cfg create mode 100644 resources/variants/zyyx_pro_multi0.4.inst.cfg create mode 100644 resources/variants/zyyx_pro_multi0.8.inst.cfg diff --git a/resources/definitions/zyyx_plus.def.json b/resources/definitions/zyyx_plus.def.json new file mode 100644 index 0000000000..378ec9bd9f --- /dev/null +++ b/resources/definitions/zyyx_plus.def.json @@ -0,0 +1,63 @@ +{ + "version": 2, + "name": "ZYYX+", + "inherits": "fdmprinter", + "metadata": + { + "visible": true, + "author": "ZYYX Labs AB", + "manufacturer": "ZYYX Labs AB", + "file_formats": "application/x3g", + "platform": "zyyx_platform.3mf", + "has_machine_quality": true, + "machine_extruder_trains": { "0": "zyyx_plus_extruder_0" }, + "machine_x3g_variant": "z", + "preferred_material": "zyyx_pla", + "preferred_quality_type": "normal", + "quality_definition": "zyyx_plus" + }, + "overrides": + { + "gantry_height": { "value": "10" }, + "infill_overlap": { "value": "12 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0" }, + "machine_center_is_zero": { "default_value": true }, + "machine_depth": { "default_value": 225 }, + "machine_end_gcode": { "default_value": "; ZYYX 3D Printer end gcode\nM73 P100 ; end build progress\nG0 Z195 F1000 ; send Z axis to bottom of machine\nM104 S0 T0 ; cool down extruder\nM127 ; stop blower fan\nG162 X Y F3000 ; home XY maximum\nM18 ; disable stepper\nM70 P5 (ZYYX Print Finished!)\nM72 P1 ; play Ta-Da song\n" }, + "machine_gcode_flavor": { "default_value": "Makerbot" }, + "machine_head_with_fans_polygon": + { + "default_value": [ + [-37, 50], + [25, 50], + [25, -40], + [-37, -40] + ] + }, + "machine_height": { "default_value": 195 }, + "machine_name": { "default_value": "ZYYX+" }, + "machine_start_gcode": { "default_value": "; ZYYX 3D Printer start gcode\nM73 P0; enable build progress\nG21; set units to mm\nG90; set positioning to absolute\nG130 X80 Y80 A127 B127 ; Set Stepper Vref to default value\nG162 X Y F3000; home XY axes maximum\nM133 T0 ; stabilize extruder temperature\nG161 Z F450\nG161 Z F450; home Z axis minimum\nG92 X0 Y0 Z0 E0\nG1 X0 Y0 Z5 F200\nG161 Z F200; home Z axis minimum again\nG92 X0 Y0 Z0 E0\nM131 A; store surface calibration point 1\nG1 X0 Y0 Z5 F200\nG1 X-177 Y0 Z5 F3000; move to 2nd probing point\nG161 Z F200\nM131 B; store surface calibration point 2\nG92 X-177 Y0 Z0 E0\nG1 X-177 Y0 Z5 F200\nG1 X0 Y0 Z5 F3000; move to home point\nG161 Z F200; home Z axis minimum again\nG92 X0 Y0 Z0 E0; set reference again\nG1 X0 Y0 Z5 F200; clear Z\nG1 X0 Y-225 Z5 F3000; move to 3rd calibration point\nG161 Z F200\nM131 AB; store surface calibration point 3\nM132 AB; activate auto leveling\nG92 X0 Y-225 Z0 E0\nG1 X0 Y-225 Z5 F200\nG162 X Y F3000\nG161 Z F200\nG92 X135 Y115 Z0 E0\nM132 Z; Recall stored home offset for Z axis\nG1 X135 Y115 Z5 F450; clear nozzle from hole\nG1 X0 Y115 Z5 F3000; clear nozzle from hole\nG92 E0 ; Set E to 0" }, + "machine_steps_per_mm_e": { "default_value": 96.27520187033366 }, + "machine_steps_per_mm_x": { "default_value": 88.888889 }, + "machine_steps_per_mm_y": { "default_value": 88.888889 }, + "machine_steps_per_mm_z": { "default_value": 400 }, + "machine_width": { "default_value": 265 }, + "material_final_print_temperature": { "value": "material_print_temperature" }, + "material_initial_print_temperature": { "value": "material_print_temperature" }, + "raft_airgap": { "default_value": 0.15 }, + "raft_margin": { "default_value": 6 }, + "retract_at_layer_change": { "default_value": true }, + "retraction_amount": { "default_value": 0.7 }, + "retraction_speed": { "default_value": 15 }, + "speed_layer_0": { "value": 15 }, + "speed_print": { "default_value": 50 }, + "speed_travel": { "value": 80 }, + "speed_wall": { "value": 25 }, + "speed_wall_x": { "value": 35 }, + "support_interface_density": { "default_value": 80 }, + "support_interface_enable": { "default_value": true }, + "support_interface_height": { "default_value": 0.8 }, + "support_interface_pattern": { "default_value": "grid" }, + "travel_avoid_other_parts": { "default_value": false }, + "travel_retract_before_outer_wall": { "default_value": true } + } +} \ No newline at end of file diff --git a/resources/definitions/zyyx_pro.def.json b/resources/definitions/zyyx_pro.def.json new file mode 100644 index 0000000000..7f720f7a62 --- /dev/null +++ b/resources/definitions/zyyx_pro.def.json @@ -0,0 +1,99 @@ +{ + "version": 2, + "name": "ZYYX Pro", + "inherits": "fdmprinter", + "metadata": + { + "visible": true, + "author": "ZYYX Labs AB", + "manufacturer": "ZYYX Labs AB", + "file_formats": "text/x-gcode", + "platform": "zyyx_pro_platform.stl", + "has_machine_quality": true, + "has_materials": true, + "has_variants": true, + "machine": "zyyx_pro", + "machine_extruder_trains": { "0": "zyyx_pro_extruder" }, + "machine_x3g_variant": "z", + "preferred_material": "zyyx_procarbon", + "preferred_quality_type": "normal", + "preferred_variant_name": "Carbon0.6", + "quality_definition": "zyyx_pro", + "variants_name": "SwiftTool" + }, + "overrides": + { + "gantry_height": { "value": "10" }, + "infill_overlap": { "value": "12 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0" }, + "machine_center_is_zero": { "default_value": true }, + "machine_depth": { "default_value": 225 }, + "machine_disallowed_areas": + { + "default_value": [ + [ + [-58, 117.5], + [-58, 108], + [-50, 108], + [-50, 117.5] + ], + [ + [119, 117.5], + [119, 108], + [140, 108], + [140, 117.5] + ], + [ + [-58, -117.5], + [-58, -108], + [-50, -108], + [-50, -117.5] + ], + [ + [119, -117.5], + [119, -108], + [140, -108], + [140, -117.5] + ] + ] + }, + "machine_end_gcode": { "default_value": "; ZYYX 3D Printer end gcode\nM73 P100 ; end build progress\nG0 Z195 F1000 ; send Z axis to bottom of machine\nM104 S0 T0 ; cool down extruder\nM127 ; stop blower fan\nG162 X Y F3000 ; home XY maximum\nM18 ; disable stepper\nM70 P5 (ZYYX Print Finished!)\nM72 P1 ; play Ta-Da song\n" }, + "machine_gcode_flavor": { "default_value": "Makerbot" }, + "machine_head_with_fans_polygon": + { + "default_value": [ + [-37, 50], + [25, 50], + [25, -40], + [-37, -40] + ] + }, + "machine_heated_bed": { "default_value": true }, + "machine_height": { "default_value": 195 }, + "machine_name": { "default_value": "ZYYX Pro" }, + "machine_start_gcode": { "default_value": ";start of ZYYX Pro startcode\n M73 P0; enable build progress\n G21; set units to mm\n G90; set positioning to absolute\n G130 X80 Y80 A127 B127 ; Set Stepper Vref to default value\n G162 X Y F3000; home XY axes maximum\n G161 Z F450\n G161 Z F450; home Z axis minimum\n G92 X0 Y0 Z0 E0\n G1 X0 Y0 Z20 F3000\n G1 X-120 Y-110 Z10 F3000\n G130 X0 Y0 Z3 A0 B0 ; Set Stepper Vref to low value\n M420 P10; set back fan speed 10 off 11-20 10-100%\n M140 S10 T0; set 100% heater power\n M140 S99 T0; set chamber heater negative hysteresis 19 degrees\n M140 S102 T0; set chamber heater positive hysteresis 2 degrees\n M140 S{material_bed_temperature_layer_0} T0; set chamber temperature\n M104 S100 T0; set extruder temp 100 while heating\n M134 T0; wait for heated chamber temperature\n M420 P13; set fan speed 10 off 11-20 10-100%\n G130 X80 Y80 Z64 A127 B127 ; Set Stepper Vref to default value\n ; Perform probing of build plate\n G162 X Y F3000; home XY axes maximum\n G161 Z F450\n G161 Z F450; home Z axis minimum\n G92 X0 Y0 Z0 E0\n G1 X0 Y0 Z5 F200\n G161 Z F200; home Z axis minimum again\n G92 X0 Y0 Z0 E0\n M131 A; store surface calibration point 1\n G1 X0 Y0 Z5 F200\n G1 X-182 Y0 Z5 F3000; move to 2nd probing point\n G161 Z F200\n M131 B; store surface calibration point 2\n G92 X-182 Y0 Z0 E0\n G1 X-182 Y0 Z5 F200\n G1 X0 Y0 Z5 F3000; move to home point\n G161 Z F200; home Z axis minimum again\n G92 X0 Y0 Z0 E0; set reference again\n G1 X0 Y0 Z5 F200; clear Z\n G1 X0 Y-228 Z5 F3000; move to 3rd calibration point\n G161 Z F200\n M131 AB; store surface calibration point 3\n M132 AB; activate auto leveling\n G92 X0 Y-228 Z0 E0\n G1 X0 Y-228 Z5 F200\n G162 X Y F3000\n G161 Z F200\n G92 X135 Y115 Z0 E0\n M132 Z; Recall stored home offset for Z axis\n G1 X135 Y115 Z5 F450; clear nozzle from hole\n G1 X0 Y115 Z5 F3000; clear nozzle from hole\n ; end of ZYYX pro build plate calibration\n M127; turn off fan\n M104 S{material_print_temperature_layer_0} T0\n M133 T0 ; stabilize extruder temperature\n ;SET_ZXPARAM\n ;SET_SUPPORT_BUMPMAP\n G92 E0 ; Set E to 0\n ; end of ZYYX Pro start code" }, + "machine_steps_per_mm_e": { "default_value": 96.27520187033366 }, + "machine_steps_per_mm_x": { "default_value": 88.888889 }, + "machine_steps_per_mm_y": { "default_value": 88.888889 }, + "machine_steps_per_mm_z": { "default_value": 400 }, + "machine_width": { "default_value": 265 }, + "material_diameter": { "default_value": 1.75 }, + "material_final_print_temperature": { "value": "material_print_temperature" }, + "material_initial_print_temperature": { "value": "material_print_temperature" }, + "raft_airgap": { "default_value": 0.15 }, + "raft_margin": { "default_value": 6 }, + "retract_at_layer_change": { "default_value": true }, + "retraction_amount": { "default_value": 0.7 }, + "retraction_speed": { "default_value": 15 }, + "speed_layer_0": { "value": 15 }, + "speed_print": { "default_value": 50 }, + "speed_travel": { "value": 80 }, + "speed_wall": { "value": 25 }, + "speed_wall_x": { "value": 35 }, + "support_interface_density": { "default_value": 80 }, + "support_interface_enable": { "default_value": true }, + "support_interface_height": { "default_value": 0.8 }, + "support_interface_pattern": { "default_value": "grid" }, + "travel_avoid_other_parts": { "default_value": false }, + "travel_retract_before_outer_wall": { "default_value": true } + } +} \ No newline at end of file diff --git a/resources/definitions/zyyx_pro_ii.def.json b/resources/definitions/zyyx_pro_ii.def.json new file mode 100644 index 0000000000..f965c5c276 --- /dev/null +++ b/resources/definitions/zyyx_pro_ii.def.json @@ -0,0 +1,99 @@ +{ + "version": 2, + "name": "ZYYX Pro II", + "inherits": "fdmprinter", + "metadata": + { + "visible": true, + "author": "ZYYX Labs AB", + "manufacturer": "ZYYX Labs AB", + "file_formats": "text/x-gcode", + "platform": "zyyx_pro_platform.stl", + "has_machine_quality": true, + "has_materials": true, + "has_variants": true, + "machine": "zyyx_pro_ii", + "machine_extruder_trains": { "0": "zyyx_pro_ii_extruder" }, + "machine_x3g_variant": "z", + "preferred_material": "zyyx_pla", + "preferred_quality_type": "normal", + "preferred_variant_name": "Carbon0.4", + "quality_definition": "zyyx_pro_ii", + "variants_name": "SwiftTool24" + }, + "overrides": + { + "gantry_height": { "value": "10" }, + "infill_overlap": { "value": "12 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0" }, + "machine_center_is_zero": { "default_value": true }, + "machine_depth": { "default_value": 235 }, + "machine_disallowed_areas": + { + "default_value": [ + [ + [-58, 117.5], + [-58, 108], + [-50, 108], + [-50, 117.5] + ], + [ + [119, 117.5], + [119, 108], + [140, 108], + [140, 117.5] + ], + [ + [-58, -117.5], + [-58, -108], + [-50, -108], + [-50, -117.5] + ], + [ + [119, -117.5], + [119, -108], + [140, -108], + [140, -117.5] + ] + ] + }, + "machine_end_gcode": { "default_value": "; ZYYX 3D Printer end gcode\nM73 P100 ; end build progress\nG0 Z195 F1000 ; send Z axis to bottom of machine\nM104 S0 T0 ; cool down extruder\nM127 ; stop blower fan\nG162 X Y F3000 ; home XY maximum\nM18 ; disable stepper\nM70 P5 (ZYYX Print Finished!)\nM72 P1 ; play Ta-Da song\n" }, + "machine_gcode_flavor": { "default_value": "Makerbot" }, + "machine_head_with_fans_polygon": + { + "default_value": [ + [-37, 50], + [25, 50], + [25, -40], + [-37, -40] + ] + }, + "machine_heated_bed": { "default_value": true }, + "machine_height": { "default_value": 210 }, + "machine_name": { "default_value": "ZYYX Pro II" }, + "machine_start_gcode": { "default_value": ";start of ZYYX Pro II startcode\n M73 P0; enable build progress\n G21; set units to mm\n G90; set positioning to absolute\n G130 X80 Y80 A127 B127 ; Set Stepper Vref to default value\n G162 X Y F3000; home XY axes maximum\n G161 Z F450\n G161 Z F450; home Z axis minimum\n G92 X0 Y0 Z0 E0\n G1 X0 Y0 Z20 F3000\n G1 X-120 Y-110 Z10 F3000\n G130 X0 Y0 Z3 A0 B0 ; Set Stepper Vref to low value\n M420 P10; set back fan speed 10 off 11-20 10-100%\n M140 S10 T0; set 100% heater power\n M140 S99 T0; set chamber heater negative hysteresis 19 degrees\n M140 S110 T0; set chamber heater positive hysteresis 10 degrees\n M140 S{material_bed_temperature_layer_0} T0; set chamber temperature\n M104 S100 T0; set extruder temp 100 while heating\n M134 T0; wait for heated chamber temperature\n M420 P13; set fan speed 10 off 11-20 10-100%\n G130 X80 Y80 Z64 A127 B127 ; Set Stepper Vref to default value\n ; Perform probing of build plate\n G162 X Y F3000; home XY axes maximum\n G161 Z F450\n G161 Z F450; home Z axis minimum\n G92 X0 Y0 Z0 E0\n G1 X0 Y0 Z5 F200\n G161 Z F200; home Z axis minimum again\n G92 X0 Y0 Z0 E0\n M131 A; store surface calibration point 1\n G1 X0 Y0 Z5 F200\n G1 X-182 Y0 Z5 F3000; move to 2nd probing point\n G161 Z F200\n M131 B; store surface calibration point 2\n G92 X-182 Y0 Z0 E0\n G1 X-182 Y0 Z5 F200\n G1 X0 Y0 Z5 F3000; move to home point\n G161 Z F200; home Z axis minimum again\n G92 X0 Y0 Z0 E0; set reference again\n G1 X0 Y0 Z5 F200; clear Z\n G1 X0 Y-228 Z5 F3000; move to 3rd calibration point\n G161 Z F200\n M131 AB; store surface calibration point 3\n M132 AB; activate auto leveling\n G92 X0 Y-228 Z0 E0\n G1 X0 Y-228 Z5 F200\n G162 X Y F3000\n G161 Z F200\n G92 X135 Y115 Z0 E0\n M132 Z; Recall stored home offset for Z axis\n G1 X135 Y115 Z5 F450; clear nozzle from hole\n G1 X0 Y115 Z5 F3000; clear nozzle from hole\n ; end of ZYYX pro build plate calibration\n M127; turn off fan\n M104 S{material_print_temperature_layer_0} T0\n M133 T0 ; stabilize extruder temperature\n ;SET_ZXPARAM\n ;SET_SUPPORT_BUMPMAP\n G92 E0 ; Set E to 0\n ; end of ZYYX Pro II start code" }, + "machine_steps_per_mm_e": { "default_value": 415 }, + "machine_steps_per_mm_x": { "default_value": 88.888889 }, + "machine_steps_per_mm_y": { "default_value": 88.888889 }, + "machine_steps_per_mm_z": { "default_value": 400 }, + "machine_width": { "default_value": 285 }, + "material_diameter": { "default_value": 1.75 }, + "material_final_print_temperature": { "value": "material_print_temperature" }, + "material_initial_print_temperature": { "value": "material_print_temperature" }, + "raft_airgap": { "default_value": 0.15 }, + "raft_margin": { "default_value": 6 }, + "retract_at_layer_change": { "default_value": true }, + "retraction_amount": { "default_value": 0.7 }, + "retraction_speed": { "default_value": 15 }, + "speed_layer_0": { "value": 15 }, + "speed_print": { "default_value": 50 }, + "speed_travel": { "value": 80 }, + "speed_wall": { "value": 25 }, + "speed_wall_x": { "value": 35 }, + "support_interface_density": { "default_value": 80 }, + "support_interface_enable": { "default_value": true }, + "support_interface_height": { "default_value": 0.8 }, + "support_interface_pattern": { "default_value": "grid" }, + "travel_avoid_other_parts": { "default_value": false }, + "travel_retract_before_outer_wall": { "default_value": true } + } +} \ No newline at end of file diff --git a/resources/extruders/zyyx_plus_extruder_0.def.json b/resources/extruders/zyyx_plus_extruder_0.def.json new file mode 100644 index 0000000000..f87248832c --- /dev/null +++ b/resources/extruders/zyyx_plus_extruder_0.def.json @@ -0,0 +1,16 @@ +{ + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": + { + "machine": "zyyx_plus", + "position": "0" + }, + "overrides": + { + "extruder_nr": { "default_value": 0 }, + "machine_nozzle_size": { "default_value": 0.4 }, + "material_diameter": { "default_value": 1.75 } + } +} \ No newline at end of file diff --git a/resources/extruders/zyyx_pro_extruder.def.json b/resources/extruders/zyyx_pro_extruder.def.json new file mode 100644 index 0000000000..e885e5008c --- /dev/null +++ b/resources/extruders/zyyx_pro_extruder.def.json @@ -0,0 +1,19 @@ +{ + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": + { + "machine": "zyyx_pro", + "position": "0" + }, + "overrides": + { + "extruder_nr": + { + "default_value": 0, + "maximum_value": "1" + }, + "material_diameter": { "default_value": 1.75 } + } +} \ No newline at end of file diff --git a/resources/extruders/zyyx_pro_ii_extruder.def.json b/resources/extruders/zyyx_pro_ii_extruder.def.json new file mode 100644 index 0000000000..403114fa56 --- /dev/null +++ b/resources/extruders/zyyx_pro_ii_extruder.def.json @@ -0,0 +1,19 @@ +{ + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": + { + "machine": "zyyx_pro_ii", + "position": "0" + }, + "overrides": + { + "extruder_nr": + { + "default_value": 0, + "maximum_value": "1" + }, + "material_diameter": { "default_value": 1.75 } + } +} \ No newline at end of file diff --git a/resources/meshes/zyyx_pro_platform.stl b/resources/meshes/zyyx_pro_platform.stl new file mode 100644 index 0000000000000000000000000000000000000000..16b2ef7abc18569a572bcba40875de9ebde7ebcb GIT binary patch literal 104184 zcmb513A|3#_y2ctOS4Kv3JsEZF5y1MJy$A(G%8b)T$Q=Zb&W}sMiOYH>%Z37XFdC~&vUNV@9*`xwO{A6-e>J$?deRoKH$^GXeB)vZ;pQq4;L*ME0*=x|4+cK!QQy0ny1r~PzivdyxRNk#wW z)Hx&PyqP(KnO`sA-Fs)Qh<&w!2Id=sMIM71_~fe$1k z%~pGEytG-zDN5=Uqsch8-YSU756-~$OsvsK4=Q=9D@ z&@}Xc1S)Za_ECHPHQxK)u)qfrl4h%cdp9)Ovrc>O2$Y z0~I7BVlsUofmW@5E1UD~gt(HUg2dJyIXNA>#kB`2NJxxj<_Zb48uMZ2oFjX6ESUD= zHb(^siLp!{NT5~An!R&Q{ZYn5<0U_d3KCab)H~;Bmdpl7pn?SU0%OnRKmx7&XFKQI zdrW3d!{jGXK|*Hg%#tI4RvpXbYr+$-k24Cz&-$e#)eA#>uBy4GA;j6i4tpcv8Ld zlQ*_)8~8xNqzh7JUSS_dpb}58kN+mm@E&}2K;Q!jlP*Y^d4+u-fl55VKED6>?Z&?y z(<^->Ou8Ut<`wpV1S;_a`zW*Rc6f zU63*}5&J*_m3V@E)Nb3>sZH(9K9Df!f|Qww*as4*#1rge*s}wiS=8?A0|}EZNSV2d zeIS8KJi$Jwy`9tBz1^67AYsx4DKmGm4CnlN8>7Qf55HCK9Df!f|Qvb*#{D+#1rh}ylpRg)XxJS zNSHKPrRQ4qfdne?1pBD8;{4=U)b3mkBuu&>W#&irfrO=`bAkl>pkAA#ejfNh!lVmQ zW=3TnNT3o=u#cfMuD?a?&c#5&q-oqu&(7=v2~^?<_QB)&qj$dj0sBD0qzh7JMr9vJ zpb}58kG3?fUqtQBK9Df!0+@H%2NGsR&WD^J!9L8te8ObI2@c7Ez@d&gseI-huf<&XyRhoTO;o2A< zNLW_sJ|FdA#*h3I5@sZd5~v`ts^OGobr;0t3JJ6_BWlzKDoC7u&DLfkJH+`w0qjDAUr9v*l{iAz?yHxb<`nI?E%1Sa zq}fXPy!L?vDshDNad=~e#HYK52R@LHG+W`=rBtU+hC3T3ToSB(B=789`bV@D;t4)4 z5|Y-rn$T&G^U}AYgLMfil4c(g`MTuA5ojf8?Zd5howH?Ar6jjLDv}O-gndQ(D3$;# z>?=wo&-gh};kSFV59oJd#pjjC*FK6P&`Q#}97XHz%6{s9`WgT#lIHVD9BUuN5ojf8 z?c=ep-}PRt&?hJdDw5{&O8?M4iX+fU(%Q!bA2mpR;5H0=pdx8LudL3rkKzcllC<_w z@O|&(`ie_~xI#tJ!Fj{AmiAE`A*((lw2$}ZKAJq~$9CDlsDkS@Ja4$x(mskM&n6RrVmt*z!}wu+XoV8CHFiteV~E_&eXOKB+yFkd1m@R1qobn z*gh;G+)eO#z|6?@!&dBA#Fc2}x_B-{1kxkgN3-FFe=f4YS;tCEoMdN{+K{rQ!%y zkdSnmNQw{f&dLqFK1i_-PRsFht}+N#kdU+{r0jgR5A%yT5g$5NNT7m*_{bzsL1Ovb z8*`2>-4K+?c;H+ifmR3SUbP~gsQ2-|IY%2MgL92}eRs~9M^*=E^k@4(1&I%S`6OrN zsC6;9LISPUeLO#>^$B0Z5U5-_bwWbTTGk>QiCvCriAqjOJ7q+>g9;Lo ztK$=BCGC+(pn`<7Qzn5564ExA1S&{K+hh``AR+CPNuYv+v`r>~3KG(SnFQ9AL_1qy zJK1fH3KG)OGJPO{R?>qr2~=cc_`l~02^p2NkBheDB|mr82RlfqA092GemE`1iziq? zLeiS}sC?VxX+!j#YE&f6KBS%WNL?I(R+0{L)w+7}!$cz3ZKEP-KCeWN_Hj`$1X@X2 z`zTEpKt6k?Q{V#?N%MInrnQga2(*&4_VFmq<$VY1rxQ?-G@n;`n)Xo~fmV{%K2AAj zQ=xkCk)Rx?NSemN1>G**FNG1%n6@YXiZS;Iug6sqcFnd zc<}@)NJv@}6p4YabMe zj>Il1l4c(`5-C+2fmV{%J}43s61%8KntkB-s8n$TT1i^_ph(P?*hNLs>_g&;(@GUb zpp~Sx4~#^m?)BUCtwr|-=F{3)r(b;WZdc{cgyR-rDVan-YasY9?GKQkbiwvtT=b{Y z2H_nA3W$KdE?4ISa!AIRgt0=R4$*lopZ$1*Sh0`Vxz{|_Glnqvy*DiR z(R58q$uoUO{b*VUexi}nak&zrU0<={TuGUt#M0`l+)Mdos}^D2k4KnuMTu*Rtt;`) zgjjJ}>MfcpQ;YZddluJ%9CDhX68`bntMjYt1Zp>kH>m}K5Me1cVQN|vdTeJOMv*l2 zm2_0<_FyI?EG3TMo~HjvyX$gbBnD*)bBiSp2}^-m2#@O;S@Fb`UbRufgE{JrTgLhm z_UBS9)^$yqB0T>IYLDi@aix$zC7$5^K}14)AYsyZ?j7@+-mz~__to09r{25m3V@ERIBu;b7I9ef_F@iFzGzEd!Lv6 zVO1K3K9E2qo?ss@RU7QQ-*s4UHvIFzGxuugiGwfdne?L|6__%7KJQ z=eb1#M?qatIno3w@kH1jNofxxOghiqe(Er2b83$?fl55VJ}63(5?4r=be`L>{y>Ob zBv6Sb*at;>Qu+rHCY|RtzN8=YK_pO#C)fw|+NAVzBuqNbonN&-j3r2*5>K!X8hw&7 zULj%9dG6_T2Emw!1S;_a`=C)YDdR2@CY|RVobxD*?MR>!Pp}V~4Lq4YkTB^ym=o(p z2s8K9g`6P4KFq&-$ILQy?Y^C!;n;`yM?Du5(+BIu_FCp_!t^Md+oL|P97veHay$a9 zOua=3RFE)z<#+^InbwRFs32kb%JB%aGEo^NP(i}=PwWLBgybjz^%CnMI=nDoB|1!|@2TGOGbi$O@bTUhhVOl`yV-!{h0FR5IPGP{|<7 z-XPOQaITP$Rk+y!q*wVtH=Jp9DFG4g0Yl%iZqM{#%7FyziZaS!h|ntVA$zK5u6Rdp zh|nr5Q*pTp_iA|FAT4{tOdm*uRz#ScWt2$QB3bFQ-bb114_v8tjUM9_wcuw=cwZyC zYEJ8tFWNN~jw4|!hS1StYS;L%h@iAsyW*RD94^@~NqSpQ++fBDBE!sNk}EyJ znR(CFvy;0PC_(Fe~qX2ubP&#TjXCY)=7IVw#U#Sq+r<~ZkzOD!{w zQP7HMxr&Q~js{!-=yYbTVtoX4WoYA@ePGGc3K5dF>o7`4{qU$JgdX9f4r_P3H*rVP zb%k?k4^Cb;T)9UZrF>rX-FsOncWc4YAYJ=^r@4(9E%U#xFqf{@=5`;N_^ZTQg%xOq zMg@uFuG8Iu9`A=lqC|D)v;_}(rBp+UK&zj-ly-X_d7u2fN?GPm*E?{S6a=p2(-HX+LPRpU#tpq)nNHe&h~z%Cd*%u>!E_g!S|Ir=f}07 zk6ouEoQ>tqO*Zelz#`D(<0Dn`tC(JrO(_P`dIwzH;F1g-JN`LRvQl$Bp&HFFK5m8Z$clRRDC)z z^w#^5B|6Ns2(%jY*~A=m+Lq8q*1Ka8r}ycbeCO339x6yQS~ouD`h84rl-yEcb@qsR z2P7x2c)=pjszHsGIr(R74SiJTx-h$9hli6pPaNZ+5+#l>ID7pBQTDg2YMde#zO;|C7+i_|a!MXV%>24UQ0Kg}qs+ zQAGS+W1BaY2vm?LQ|&~z&NnMV9~T_F)EV;4D;}2v3ADm-OsOhFOedlj5vU-6<1u|( zp$&%+Eqi3*CL89g8&)sv&{_NKNZ8i}r zh`2L`K&u7$o_nltaY(%PO?&6Nl8<{6=vgmRknoo!-B)g3>>m4j2KiV@#MeYT9wE@G z+WT+0W&eFNB&yxh&pEJly4PTCmWK)wUmiIjx5+pBW--qO2_lXXG5d9!Kr39M&`AC7 zp~TxwF7cXBU11wwYYrd(n_FS`mASgE#@|=N`Db}YZ!}%WK?R8xvrowV;4tTkS7d9Z zwReV%o8a9|B}W3SCa*l?{<7%GTwPaZ-G9Gx^G#E{xpWN+6(q1sO5I2$Kl!`q-siKj zECQ|mT=9duYwVe!k6J|hLUpzBjVuopBszNQ-FFu5ffn2pwmA}LwPWmdx6J!zhIPel zE(9t_V8qz5iv(I>94oc(Krg4{t<${MsjhIvdfOfK-Oa1U`dp)Sn>$qUA}aYa6eXx2 zF}~BS?)Z(D2DDNwh&X|2cj0WCK&!%TgWUYFJyRyyzYU`u6(pYDKhVu@e{V|1mDCmY z4vTN3lbDJM#SI1t2<|`>gGL1eGnBSaEGMSn|~fobZSuEyPE0>3A8GFxrTe?n`3-kSLdHQ zEb-NsZxp^wV>>EHV40M1X{4@5BlRFEITC1f@U=GXm9r~_K9E2KiOO&Eb=8_KDV?in z)PhZ^1xHXhkU*>MKecz)l)5ymt0_b@CgKqyP(cDCMvv4IyGWoF#xcE@NbSt%LoTJB*LLxTD5NL%XhEly~yedQE)lIKvd8iYAKVhoA2`=y@4~f&Qj;il8&d3!q}W9T3A+#Sj3Yj9m4W{7OiJOZ z4_9G0JLBB0lt(^zEO|7t>cjOMwkDZ{#3PhM1&PV;&TtR5xFB4YEDQU`*a(4Ec9eWT z1oy$wM4*BM_7&Y8--PXfa}>6w-GW?KTykC^BY{@-C^~|AZ4F*!yprYNDhzAduHC9c z{7EaB`m{pE{)~CYGSQRdL|j5X7LX5Auy*lGNbG0aCfMUF zfAJ0fkMr6DyOiK~-y6d{4qr)aH8U$QgvMP|kQn;R18JJ=X$2cYpw)=qvLeJdYGA*AFM0akoGzOGQg z^K#lIOnaDfp%tG=VocW+5~3i%X*sS5i9|dXS_QRGOzcvO|a&$($@hh?rLpO4Qk16(5%x(b0~CC`jPgW%npN7h3UgyGP0BgXhI^;Mk>o2!RR`7(JSZ?X^4(hW(Mp zN;_9Vpc0%{dN9vjvHjd8j1}iL-Uli{Il}XDjo5^YS4f~0AD4D2zCExFINsuY;JAyU z9hT4bfePl3kH_Z<6(lmtA(0p*`j&`Z5=olrX#WC0}2NGz-Y4N8C$rabAc*n@+ z+O-LjE2BgS$)W87M+Wql=|ghGwJ5p5K8QWd_QCCJ2s4Xft=n~l3Pubck1q%MK$_Fy z+s+lv0MWLwYgbB+1hyKdjSsrVvRv-5EIM`X3b~iEVZoL3Z3%r>=FD3UtT6ZP=swPJ zxsQVi5htQmliTX-Tp@QuZG!HM7RsGb zRFF8S@!=Kb?&~udQ#N{V9OPPC+bU&(4?nfbk zR#@x7{is5@AB74MXTI2!z7Yraqdd7Eg$fc=3Pz^PT}!$jdEuy`H~ap`4Uu+SXuG2lzG0S z2@ws6I5|R~)tAZjDf0{qJ&}^UHhdxl6(s7l{wifXk&@&mQa+<6Qcyu+YJ(3`))Og7 zc_IZBBqmQ-p0b`uN%9jZ<>-kNB+zR6fQ2dRiIgNik3kYQj+pS3Mxp{{CsT6dLkt$PoyA$R%LG;l(L>k@#KjVRFG)=>9r~A zi4>2YNSRDeq#%J-N0(leGEbzetNOGzBzz(T6(n%%Qi`5P@#KjVB+v>+RHa_OVu5!r zJu}gQMo}CMaP&cc^eYJMJ9sbCD4I(IDoCI|r3xP0@BK|rS&SkAM+5YS^+tD>C|B8( zD<)7u0(~nrar9Zqlj$joK}6tafc~)k>B=4DN`+5ypn?SYrnj9AUYZ;qK4pP@8~tG% z)3qhaRZ;jP2P#OQZ~A2i@-ZoVE(7}=`olBP?=#+ie{#l+Q@q)(HmUwv~=_|AL!CC{fTUT4nC@=!sd@$OIkCP}z6n&dm9g>+2@3A7si{c?Zi z1wV&ZAV2)3ee!#{*4LkQ+o&MXYvwZl#7E?gdvOF>&7U#XuY19g@ap-%A&0$6;k^k| zkT^7Kjz4ORzI&onaRgdj_0SZ5!QFDl}4%(~HEQK@@)hnMdB zB)3tNRFHUfSX+O=&G&`(ooiCG9}Z&|3ADob zk$(Av2!3YbKe`)^3KC^|*Yqd9DtE(M62W)Fv*~U)5@_{u*VFuqmg>9j!PWDmJo|wP z5`*`a@|WKvcX-Q`y*ZgZTHg~!0^^$(i0=XxA^SQ&kj$i0|!bqSM#+Xvs6p0s6B=S9BRFKGDe1%_UfZP+F zLj7Yd^^c(u0aK;~`5P)% z4X>VG+OtM-@{*3;NUB{_kofD#1HL=~rPSO19P-Z3y~MkQa)kt1RhzuUAO47bPKvHs zo;t#-xMW7*0$Pirf&`8d^b0OjyJv;9iv(Kre*9zq+*a~5)g?rn6cVT)v0&8u{w=ll zhIf(auB9hWQz3y?SIk@I_c|m`z0lKCX#y1_aMV@`X9FbA3g;5KGkTy`^7UKvQ!g0p z*dMXqDAk2}?OD`oUw$pi!;t}r=AS(7cU&#^)#z!eU}WH@sZc=z=SOsmW-HZ z6KGZ9%W1x9nIF!a1Bkeca&@#I%R>c;6`SYzUoMd6$mot@atDo~BPe!}K&xL~c+u~= zK<+!QBH||^`VoN&5;&s}g8T^H<4V!;uJxG4m0B0O*e{5N$kU#}%y6)uh{zcEq6A(PBi4Rnez&Z@>>Zkh$ z5@>}h1Kl3d2T?)7ZjVnWSG%d?J*eb3%iyeb_((N>{l-he=VY)Ps32jFqB!m%fmS#M z>yqC=BQ-xKgJTIs433q-9rxr`D#zng4pfk^UAsT^7~`F>vP$9iXAiOnoCllk z-RHME$iF4TPyFs8q6`t+i9p37di@d*`b{JzPFYzcJ4!SKE6!~}&h?>>-9%hSgyc#T zB-r2Rnb!x;2hcCp{m|QU`y38@;JMIh>*+uHTkqiCedThzNyNn7hqHg8a-f35tLNp%2P1myq)iC5e2@ZWOvvlO(irPh11$CwNP zt?*70J*Q6uwPHfIpt)<6L8R|HFFClg@SY#*J8$i(Pf=o?^XOXM!{-@olF z%p!vRECQ|gOmbgUsr$EH=zZOLp!4Q`qv$TOQIP0ScBfx*fIQD|8WH=5s2d^BD#&g6 z?rUSp%_u6%*HjLSa9oRGRMM{^5|JMgs374b4u(C7@1KW0ve^d`XoXR!iIE3)1_UZd zu)p2=xks^&mN#6QoYQqy;-jz}(sR%Xqf)8ciTIj`1w^2N#N0{y{aG)!3Vn?FSS4qE ztem$a1X^KKDm8=%`g1lAfeI44TkP>q_Bq5tZAh-6ET#Cy+ojb1l=DF+nnDX_?C!fTP{rO zix6mqHLcVSL_A8woG@3?wn(tQdr#)ysb(K9jqI2_W6Ac!>pc z8s(vaM31ru{L{YRHfJ9*i)tn5&)GvhkU%S}X{BZmv5JWMh(HC2Mf3JhIogCi{#?A> zn?JIn(>X$*mED4;EZOc&CxT0k3KH1ol{!GP4Ucdpvg~iy%pWCbMmt1=o(+tG#HjlJx@P`p zPP5JF=^4imXtnk9|6DT<&ZQY`3;pfka)5$F!8ylVGY?Lt9BrqvL14rrswpD z*hU1G0~I9rofa9Dl%jP>g4QMB3c#ETt(xvV=348L1kF?7D#Iv9RA_iYE)(f>NrKiT z;Y!93XoXLI)73%B6|GCc)slJF3JH8SCm5+6nLkiLqD#dRL9X-&N3(%LV|y^;Ac0o+ zZcZ?kI5d`cJeHt>M1_aM2lrYUOB@2FhnKr4(&rJf;c{^R)r6(lyaP`PFv>_R!BStr43A0*HUqmpWu2%6av zJgcFC1hq*Xk8Kzs33t6qtwG&FHHPIky4AI1Y0c_;ldRX*0fS5 z5V3`bdBM1A+7^i(WskUKMRtH@o7ZTh=D8Nng;rS8N}WwJ+AJcv5`hX53+5el&HS;D zW*h$N9wE>QYnraslJ!#h+f4*2NYtOGa?LzAnR0Xj<*X#loJgP*)-=tWMEp#p=aQp> z1ouHRpVPX;p>;_HfmU`4(z?WjXYfku>|j zFGwg=9D!Dn);^}szSVi^Z|{mHHDC0+l#I`=BUEN?ai!XPv)|{AyCO6 z(of?u5q>!`c<$Bu4ohgow0Ro$c!XHt6SQm}e8DWqWkChc8{{zk)uH1N@@*nrKKV`& z&74V@Yo!*sJ@7d~Ij(Crj$j1|No#^u07+RhpdxAZhtCuSYlc_?tt72|&`KsLYadi3 z%|7s%!eH$aOQ4mcwGUd6C1nkVilo^GK2sR1;bIB2lC<_gD@#w-qNqrkec&^N!CEwy zKr2aWAGAXDWKE5Vq}hl4d}46~T1i^_pp|~1>3ZJdFeV~F*$K#o70u?0ix%c7;w8E#@Z2}d14jp~l1l}1{`Lk$#tx8v#=ckG% zECmRq?n%?O4~syn{IRb1vk7G>cwS2PmAjUPp)Yht39;hik~RSU){mu_^U~a&e%lRz z2w_>}zhA5mqht_aO-FqY5h_U7*Io_7&e#R4Gt*4=O<@Ln+h zysis8|F?emnsR z64?GGPr3z7jN<(kY=4_T1qu5ei($B~%r$+q!uuk|o^yo?({j%P&twy*AYtFlFigJn zEGPE);-lSCaFl?4qtvi1pJm^4;=|4Z8%HM&E~l{OjG+g7f*y!|dZHA}%AMTZBNXn!Del_wM9d#X0}p?OfV; zZK59$s30-zyVa@fRr#CC?Bix4E+gVFl^hAQnzZAiR2hc}F2~ZkS&5Gp^#~#nqtC3b z3Q`y`N{u99I1w*V?4p9i<=G=sfBpJ-7`wS+mL#UvyV&VOk%$CZVf!of+2|#STZnj{ z2vm^3)>JCTsh3#x=e3Dxlq<}MSpgQLkXGtJB6bilg$PuTsQ=ZB)cpLlVL2|^dnnO) z*GbL-$`ul5W#?)M5ib*QBN3<|fe}Od|53NoJ^G7+TwzYk>a`$+v{F?^-=3&U1dk=C zAknGMV%kNf!gBoYn{%9b-8Lp#QLd0cD?3-Ch?q#kgG8W$1V$x&U-Yg4iHqOaoXxqy zoS3z5K?-TQQ%%HOL`)(A6(r`BSw(TRG%QEz%gWC4bDmA~qFfdP(h;i;U{v;N@nPm&kEbqN~TAIKr6kE z*6Sdp8WE98#P>v?5+%&qXZ_kKg*QKTIS@RzfXr+D2 z+Go+KZOh*c*FLBqVXiswO6Kv@w&m-?wGR?#rH}Jf114VivT|}1^{7ddD~#~lPCeC? zo{CXP&z=*(z4m@0P(k9Yt4p|MyrR)3DWeY(XoXR!)C3})qw%Uc`9KAUdS4yLF=PAl zdk=X}(Ma7bLZB5!C0{W=j#=W# z%!vvTr4GEEW7dgpcIxWwq*Wi!wMd{9#+Xu<6Y(+;ZxDeB5*RT`eSOyeuR}OeW2>2+ zML`N{I+zVSnGH}u;=1%NS8!ZiG5U6|S~#mAfmT@4^lfz_s)htANSNz>?BhwNo~Mpn z8_b+YpcU41u*&dcm4ONp=1L*^pw*Hmt0g4R3Trx8k$JKrLj?(QosoUeZlds&a5sSj zTG=gl+02=Rm1xH@h~`>Ukib4qdz^mvC!eW4CE?K*_>SeN+!1&3m&B*1Dt!5mTYK#_ zx!-S_mU?-D%H7qLkMqj1HoaH$_txo&!EaqFB(}Y{%boK>x!kiJP;R29*qbyjHHLaC61V*$0R~1&LqY|J?01 z=CG^FF_6kJn#!?>N{$3tjeq=WcgM{o!@62T#3CYA5`hX5jhz-@Ex)S0*gg~p7i?F z5|JVT6(l-tnC&)r^xlxTm0GY7wcr+tL?qB^@pW&xf2#3eo4-xOI3gaW7DNS!?(JW9 zTi3idB)+5Ay{cLR5=CO_2|E&zDATFHU2sR^&7U(_=sW>K3@rZ!(gZH@{O8!n&Vw%gk) zM~{iG5-}@=K&vseN4w3sJkm@P$0*u=q-cMaViy%8a2-Tz>Iy}Lr7x?Ty(vPV)q?{E zyImjpdWH6Z1S&|Zd%TxBdE65zP2^HJI#D@(q>>|nRwq;)>Q>sdWreQYwnW@V#1BNE zf<)KE1Mc;&PE2WH47EpBYLDvFKafDHvnvmCyAIg4Lbv%KB5om~BN3<|(YNt~Zs``2 zQkv*Qu}g20C)T}|Wf5qF@kT2dB7UUU-89dRL?qU??c%okbw}usw#s>s)ckJ5f2RQ8`dS;_|$9Zr6Xx`=+kq2(%jWi0i7)TZF{J)E*XORYJ1G)TK>}lp-YdGes4(x+ z%Gp~Y1X?Zn{c^X?ACp2KNT7nmxu;&>=6885B;KKN%%O7dDgz0$YVpPuZl$JAhIQ4S zh(SbrO#~`PyzZ5C`_6t1+T+eJc9B4ZNWA+&Ik)TQ zuZ2V|#nrzQiI=>dWf5qF@kYN;@oTT-kk-=@chV{x6(n#MPJ5gSZcZL~;<3c{G~=Lx z1m=*gA@8f6JpG++iBepT?sCZpuYZjh*)LH!P(cFMD0GE| z#`a&Se|$~-0|~SmKIV{nq*d+E$M>{1=t=ALgG8W$M2)BRx$9rJJR}ZMwC|v3=N$_Y zXtk#EVRz(}wZppN{xLG_AE+RK`yHiZEy}A`B+v?XVM<+dR#9QOa+R~o(>f8?R9Ftb zXipn`-QCC{8wR9LHgG4%P)M|?ONfJm=ypLXyyGp)%|_rS*{-2=TYs>r`r9H+5;6NaK%C2tf8@F z42>ldsCJP+D_jSe_Taq%wg3TR@gsymwFZX_>ppj1X^JZ?Q)=kgk28YP2e67_ndoQ zUh7`*)pucBVXja?0(ZqqEul!9L6OKaClY8?uxgEa?uFaJ{(-w9RFJ^ky;A?Xw5YJ4 za^>s~sYfA!R@j4;>O@g;H$}<5m08wKxP86l?sFR#1v?0PkMj}jCQhYYQTvDOxI&^t z_7b=G{WAiZe*27k%po5WXvc!*LMz;n=@#Vu2S*|*NZ_tdDQpki(c?ZEbEtjD4iXh4 zj(UsTM$gR%+Z=b0NT3zwP^ot)cE?gVhEo4P1qr(x>|-<$<0GRFjySl}v+D{K+;g7( z{VVQsa~p@{SVBH{Cp?gRpn?SMij{heVpn!vNT3yt`Lr$}g0DvT6z!-Wfin^PE&xSI zQ;L$8KFdnrp7V+kPq^*wzc1LC;<}5j6wxSJmPXObB6|ZQHa#}RZFW!JW_oYHM0p}E zju2>tdmp8EH_?Uaigy#JAc6ZUDmf945%Dn9E|vrLxR^stj39!e1QjIKpEAbHANf!- zJ*$l+AGZ=wlX8UwT44_Da-f2QT@Ktq;@%1OYW~fg-TYQN!aXPMAW=aAcau6wIIeh1 zL;|g9z0%QLU;Bq}?|d`G)tyA}P8by=a92$4@Lo_<*qE;G9-%Q23ADl$2Ys)PqU0Zn z#LsDV#vSCdLv!6dm97hR5OyS9M8sYqqWfATet)W=oBv0@aR0%?&oKmA;Z8=kpzP>T zK>~M6nuy!i;*J$_X!}3~i65VB;1;~r&)1PSD(oM%DH4%DE6kzo0~I9favY{Mm%9MC zrpC1v?iuVm4X7YtugC_GkKPnlyrajx0s6x;DK(skene~}0`C>zDje7FN}&(DrjKh8 zT%*wM#E}oVE{X(N;XMnQafpzs&Zr=PYb|>o#I+BuQLJm$>i0qP6JSkX!@5ER30!d~#n(ljA%d@q;vNV0A~*-@ z7UUH&ua;0j0#^p~eFpOJ0{K`S@qskX+Isc+5)nL7qk@DzM{%^jPCmFj&nlqCXd5#!j7-9r_N3ir`nfG;RlNMKFdwcF^tR!#VuwRP$0AU`)> zvJHPFX?m*7{?-1J`{)aAbT?E#PcL6j;wQa zgVQ3!jf*=a@1v0cl_+s*7No4v#lOpDdHLu1luovTyn+lgONB%%@}o>_Ebc#Vvi zID%=hs`qoJbXxmxre=BHQ+uF-gn3(m@6q$WI0CJ1KTx+AAE+R~zriCp)IOvfNT3xT zmwL-2L_vbna$FPA9(XRa;^PuynS>}va9WOQLLw2*g;p4$hG-XwL?o`=_f9I)N0dOT zN=Lb-_{WZU z6KTzW3Z9qK5|wnNsCuhqw6^l7EE$AY1!oH0wTzCUsNi|I-h@^vuXL+rCsWBUppxS% zjORY7A3iQ+qVMTn-l~a|92F#jnKNDTvr4pDwlXYvlxP=P@o|%@cdEB)QZFnyDtO)? z9b57YBDCTapz*=6D037lcwS!5*@W~cB+!bFo4R5jNQi<2t{K_htVQu$XvN3v9wp_# zHn-R=l}&KHX)CVjcps?XdAZ(fLQ0MVTJdqIH@mJd zt}vFk-`GB+t~mNc;r)lCF^Ad*6Vdf9619x2D=hdr3365Qch_3XJ;B~Oj#S>_SYdcLyd!P~}q~2^IS`M+o z9NGjboEC!pNxFCftuTi+feI2_zIY$em7dfnu4HW=NT3y`Z66X>Jf2JZ;5g4?yG=-Y zpb{k{hdNi{1J_sR56@&1JaS5|a3#ZOIc^g?_KAYyAdZj46KKV0Ig?GGf&`B9Ho+sO zoC{YRoR;G@!DEytIBIiRj@tw(NZ<%=6FfT0xp36Ru~HM#=BPx8_%=r$NdMo)T^t{A zuWpwEl_(+QE1qClthmohS`#vgqJl)`C@Rs8R+uXskL_IX2q4~ZG{8}!cml0BEoZU` zRFJ^Y&L(gV7#&yakwHq11dceIwsYmi>?Wdp-X@yI5YgUc6Vig%Qqi_C#0_1CJGbww zn0TxH(Cnsr573vf_&0;-8ER&`DoB_wTd|L6M}{V@c%i-5^@;u#fmUVd7mjM2-8%Gf)~{6(-~Cd>J0)v~ zg9;MnyIAbw++_L04L^+Y+H4zO5omSAJv;o*2Fi7x-79xw|2wX;_e=A^4k}2PuV=B3 zdUv$UuGRl3@4x#WvIw*ac3$Z#Ea5MPc=U@Qbft*D(yP5^5b5hB)w=zcy{DjllKw1$ zX}Ru$xus`{?)fkKs{hqbK1T#9NF-j{;cr>TzmLOThk2>TyNOr+yf`^0LZB7ax>5-u z`V#Ro5vU;Xbb|pI8)iv36VWR|Ewb--UU%sAOZEDIU+UD*{Jm9rTHvMjG0u>~%ZRpEi zZ`F5BdaHi&%sGE$qg9!Cd;ME~%v%_e`6cYvDYLNB*z=Do?XOgu+`iSxmD(H?B(7hia;2SuHc!&JBxrLa z(5k{8D*O!|{;mPFd6HLh+~%kt!D-Xx6j$scSo=f?vBGE4gSAgm);_4TAv$5NMg}Z6(Lw~`2H5mtyz>$dFF(IM}t$m&)0u>}Mhf0m;@vb+URx)oy2(-eH zNU1xC=t0C@B2YmBYg(y4-#;yR4y|N1MhLXRkw~em4^B&Fhie~HkidwcUq$RuJ-M1z zG7HHE5@>}Z5j`VJ#24Y(2Nfjj9z`peV1(mxAc0oaxWa3nfZ)}Vr9h9uaYd;+N{&b@ z{(eUA1}N^G8hg9^A=?`TPif%}iJlj|s3`kWdKa0Wzd{9xO6$M#@4u>6_>5QT;-c&! z^hD#g5dy7B?bzgZo_JYEJT&-lLf()@1&Q{{zxIFXd6{{0GBJssf#helkwB})pRM=5 z^~#1sy>Ht){LW9CW5*JxAmO(D!tXk_Z1@&keIodsxEmt`T3y-sW52zU_wJs(r=OEe z@0e_uo|Qla3EW33HLzPhhrf7oVag`Zs&wC#{ zbH{JtJ6QC7l+%LB!QXm80J|R3Qb7u>2HyCl zU#`+eAwgg3N$?j>I1*7o!mIL@U;UfaVO`Pp022LU2(+4g&Fg;Yu?wYksXYc#d+=LA zs37syd$0Q!cU%~@`MV)8EJC2w3u_Df5~Zex#CLc1b55m5-1Ajd0u>}M#_0EJyZ3Vz zQzRZ6YZGWSe9Mdeo_EHDKBkk8?OUcNj%=ZCnSz2u_XE%PQ$tG4B-*!8w4;JV$3D;a`Dfn~67()W5WD=8Hxg)7WAs#i&1H{;ZBB1mB>2r@egYd6 zB+hyMY5$H_?g@!<=NDx^K~F9prAR~qt?bxcOVQpgeE%F3B>tH_!LM|rQRrg@jntcC zMryReuX@s#zs@Ym&MsRyyAnk^DoFgWbhN*}&6%MO?oqj6k3s^iCO<#K?|I`#;d|S& zsjg;IU42A#g$fdvw;bj#t-Ct>I?Nm*_$`PifmXji_@F=8zdIxrQMC7^{=sifqJl(; zUcG%atZVQtAwAztL_Z?~r!!}0(t>$$ z8O7Cxm$MS6Ab~MP-wGq*BqAoyvI(^Mz4Wov;HTv~EJ&b~s7Og;Cbe1`=~js#k5 zD*In*d{6nF436!nAkn|;52=FX@;#Yzs0FX1Nc^255ec-K|MuUhsh2z%ws{{ScrCh_ z2vm@0dE~p);)mqBIIq%rSH8W21X^Ld(Qo};Ff1|ry*IMw(-V!TAc5aTrmuJ$KAiX~ zr+nfW$`vX|U=Haz!@lay1@CrCtfVJ1kw7c^o6FNLxY=np;jzSI8W~VQ0&7~S9l!K) zO0}7m=s<72Ac0oc{z_f?-=V~e8kZ!VrE=g70{0?grvB)cC~Oq2Ma%T4;WYoaV`2xD z0~I9jP7}RfGNZk7b^e6J`$vx@kU*;m=kN9(pVKH@Q}52Z-+AbcDT$R-4pfl9HA?U$ zHfI`*?IqsJvIw;5f93c7u%eowj}g?PuA&|_;gzfeDoEVfc(dR8mdiq-9`$qCu^@p~ zz2g9bt#B7c@2gQcN>Dk*&!%^m z;4UJzGp@C0w@vflHB?vQ=Zw8FI({gMFfSgI3o!s1R2DoEhUiSEjfk1t|s z7i$!Ifl}3J9vn*Z;14uM;lB3Z;m`ecJIcoF&o8>LD7$8*%GrA(dmJP-Wv%tyMrVdQ zFJ8mdjM){T74EN;!rdJzNZ_tdsb8q%pHaydQte_naOaIVr1xtf5>Y|o((P;gb!E;B zqaAmUNT3zwkiHO0Em)6o#qaQ>s#4M+FJotJC#%>Vxg54-TcZC=zIey_xPVT~U;MkiMU|gyIVK zwH>?6_KQAQ80-gdUqZjaN9(Iq;hU_eAknd%hxOQ+5VbA{s-DoEhiMfam<6wRekbT5s& zNT5~yv&Z^1`kVog$or@*f_L?Us|LJFMFk1mEh$Cc z{!H9OZO(73V>xjDi8)lN6%oCN*g*s;Ncc~8@zrA;!>_}-=XHMJ+;m)h}e+~VfU3Y~$NZb#if&}gjgLn1QyCNjeD)IMK zew~s(hC5-|*H)$2MFk1m)bpV~g5wIyfxAh}p;EVy5B>`6b|O$gVtUWh{mobQ_w`P=I0CIOhx9EA^3gT)feI3K zIb?;*SLkttj4N5(0Vvgvd`u)CJhr2PguNo;H8p>g>tq_?aBqPA@JveKDjcu;* z0s7<28M>!aET3yJS=j{_Z(n5k>_GTx$hibV$foBXI45 zYZSZ!O!x!V=C=GI@1@eQ9;69$nHsNnDn;MycbZc<_?!KxAkm=3aDUIF55w!CZHeHW7k_aP3ADm1o=VlBmE~hl|TgvdlbEqe7NM}0Qo>G%oVN-%xn<7%8Bz5&R2GO;B`^7!mGH3;68{75;*S$ z-^EE^9mIJM=PSI5M|bWrx3@dJ&Nyl-buang-D zyHAjhsx)3zr)#fBU`^Y#yRUX7uj)6$gFE~Bi4FZsV)Q9Aev4B7LU$a&3KEjm#E^b_ zyklj%2R=}dG(XpePo&X4su%*TB&~g%menx1h29P4r?ya$H2aVz(lQBD;s~bcssWYZ z70Ma=Ktj@NCC`^>A4s4QM`$117F@&Z0|`m96+T}^PnZ@%pp~R`u0kSs{u~uaOF873 z{j`q^f^#KSlGZ-@4IYpjdiBczAqt-tzh@}Niziq?LeiQjzb!Ah!C4>pKtCb7k1DOJCzmG@fe$1k%~tYTd)fyQ zsKgQ4M-~-j1Fb{397sr-t>oAFv=1aui6gX+R#(654IVro@PUM+*-Cz$Py0Xul{iBC z=y>j?!lP3k3497#-Kr{xy_Y1KFM_9n-uJSBKb}OUFPn0;iR9o@!{Orx){iu0UZePY_;Ig2C=hbQXZ9uLo zdP^w5Pi$op+RFYVMbc7qij!MJi>-VFCfY`O-%>dE5f->QiFaU_K6|4m)A0QDT-&o-t z2mpdMH_!DcAgmezgrmd|Xoc^U0YEI8#CWj@w89bG z*z-MgY$;imAnWet<>pn?ScX1TFvAE+RKzYcB_s33vA!)+6&Ac4PlZ4=lY z_-mV3(>8$$68L+d#S>_Szfx)wsNnCVqHmkPh{HE0F+yzu6(sQ8&f*EQ;xiRD?iwZf z?yEdO8|+vd+D8R@1KgkETU&BmuM=rkltHj!5#d|S7U6M;#43Y;cg)hc$|S&wbH#5v zX&a zpY8Un@jeWFMVb4kXa3^|Vvn{9b;H4^)tleRQS|B+%;M`^ug3s30Nx z=u96-pw;C0dvaQLT_58E6(nRIo#_J!w3;~glblMkHpcis1qsva7F1wn`6p>1X>+kdQ~dE1yMnwbot!WsyT6Sg#=oay>(D3 zJ`zzu;*=?)Q)QBI{R0WKdV2oURD6#@1&La;fBvib$1!z<1X^t$urL)rGN6J)&E4;% zjy8%LuaH2isSQ3%#gA~PAR$-oGvf*gw5r$ot5p0*jS3RH8sICpnLdy}tC_$4>c`JG zs33uBA~TZky4@mRO+|Ae?JTd2$rUPiUOv;kC*Kf5pn`;~gEC8Q5wHsDQTBj;+83>2 ze4v8om32_24MaF9_i9TFw znNo1Hqk;sloXkq!F!>HDNYtOGa^oWr3AB=8FU5|Kcw;@bliBuk-c1isurzZDUkdQQ6;k;`TsKgQ4M=83b|5bRe2nk8E70$bKM+pd2 z;t1`7?qE4`&kG4jvlY&}N+E$t9HD*Coj6DC-60`qw!(QgxZ9T|P>Cb7kBhhEIcvjv zkVr_Ht?al$0+l#I`_LnU-gC;zk`-CWa$1gKAG8TpkdU+xbiY9U@pVeM2LabCgX@>U z@%h1>hB$(hC=py+&Lqs;4C`uk`YuQD1p9z1+v&6>xDa8^Feh+D*yONyf)%(ToK9yF zm=n5tl5r)yc!Ct`n!eCL1lJj?tK`@=oGWOLpyUyPeMDLl2pu81*(0Tu_K%c2j^O-C zPWXO=q%+FFrIquh+nMh)$noL{E=MF{;>!`O(X>CicA*?;f_+F%ipf>bM`RDk{SHTJ zIW9fQL?S9kNZKNF3+6ASx~fI@=r~t8{o;#vyDER2Ij$Qnyc%UGF+@OzM3^%?7o`if z|Kg&*ARQqvS2mHRiNKKo2~J;^tIGjpiY1H{5_O2qbHn^g-mKE{c|)tV(p!t~hp0T?xblC=nt}hvs3=wXDPk z_Z5js-5v}H0ZN)ig3{t6=;u-nj6_`~om(uq%s8Nsk929Vd}_rLS9;Y(>FdyGT>hUGv4m3V@E^u430)3RI5zy}g0o#&o3^(ps}OPhs0kU%A# zU>}wG_Hs(h`!u*KgM>-vxtq#Na&NshJM@7BD)9vSs8;Dw=fsL{6mozeVbXc-^vM(5 zVO1K3K9E2qo?ss@RU7QQ-*s4U&kG5Y&U4=?_oUms;?^W36=FSvc4uNV420+o1zee`o? zCr-Gef8YZNlg@K{cA4%Dd%AAu0|`{(3HG7?>5%~mlg@KrD0mfoAc0Ce5thS~av)*S zd2Wd(=0IIhIno3w@kH1jNofxxOghhQu+rHCY|SY>$3>@AQGs=6YPU}ZBqI<5+!Pp}V~4Lq4YkTB^ym=o(p z2s8K9g`6P4KFq&-$ILQy?Y^C!;n;`yM?Du5(+BIu_FCp_!t^Md+oL|P97veHay$a9 zOua=3RFE)z<#+^InbwRFs32kb%JB%aGEo^NP(i}=PwWLBgybjz^%CnMI=nDoB|1!|@2TGOGbigzM=b;Ca0p?g7Fzu3jzc5j*vI@t&ft@R}OX2g%?nUQH*6lW7mjemd6=meglvehf>;raQ$020r zrAuC1u4JzU=MCyG-0AVC6Y+tB><7oW>78W;k*-BLuTJY-QTqBr(0F&zZvz(5bK!bd zB=uu<+il7}V`|zWEG5_#VO^QprSGeUK5T+Zjzs7?@Nt;l`Jq22lh9UtJRJ)eL|O@I zRLV3iLQtubl(U3&E+T9icfvx*H5nZxTvyu4I#ZA$MrQ6H89gc(tz zgrxvs#>XgODL|O~aIW)6-LmI8#1vAB}kgc*Iz$|>r@QegBk>!2uMDL|N2O_Z<{Aj}#iN>~aIW+f9P zECmRwKUzI1lhD1^tfHbmEG6)v3A46~5|#plS#d@QO98?fV}f$f0aif{(Fe~qX2y|RF`?6ZCY)=PLL#l;c`2Pf9^{Hk zEi+D9L92ic=Xs0J(SR!eozBcvybrEvL#KTQKH|$^Ru)zrW)M<8JgTM78?=q7U0BJe zi&vg>-EQ~Le?wL%O8>R=M_d}_{$Y<7`JXvHR&*2mk_spM6rC%uF0sdLH4KjFD_ znthyi!TBruwEjChj)bjb5;}+N=^f!y%5@KXAR%eCTDHCH%DNBz8Tvp1l{iBCC`Io( ze@~IfExx*X+K4li{m^nt{A7Z@du&^}Hm*F8Cap4(<0NJyHk7LU4!%CSH6fdndX zg!WO1p4Z+`M?a^Jgrv2Vjs@Ll!NT3o&Xdhe#&KdhaLegxt@r$v(>4Qk15=Uqs+!kEJ>;nl& zYb$JXBrqD{2u+)qVlUikTf?|AEhxt&uJqMlwzriiA<^@|>gy8kmKhe5L#dAB1b3XS})j79* zoVq=pfB4BiF8=(xear}HNJKXA?$;hW`pWIgTOZU!R&T$5_`~yCU%s{YTO(){**-qs zo`1LbQNO8)EFa&z{-g8n{rLUG#~MMa$oBDi8>gSY`OJ2{q9(GV<~WT6<1r%=bM+um zynGQ4#-{xXR@>k0L-xCbH5JX!{{7X@ys-I1i@V9MU*y$mFMR{!`N*(2M7M$t!nY!IC}aoHM_(I%gWhipR>$Y2M13!AK8~!R!gp2J;ahdglRpyW`_5UYhO|kY`4YR-;-A( zVGRk({#`khejFU!ZO_WeVp%Qu!9#yPp6^R~%}BT($|nLZn_W#4!o^`gYUY6C8 zU%&X+$(Mfe#_~IfUNaKz2j>zJk!AJx6OW$!?BU`205%$q46PHrUAQ9PCj5!Hr z!;COp8KP|Y)XDuDubo>{5zOz&t7Ksj*7QVW&%atfKDYecwpw-n#@pv6EX$u-_}tka zmfuPAnvrm8m(kts%1A_(l}7sT&hHl=B&eAY_OWEi)(45m?#H7i*RKC|@j*hl6wQpV zkLCS1)7X-TEGuRH;hmd{4-(YO2>WQUIBFxj^+6)Ct(*&v6A5O+j4-YCx7=EG$@h*G zb89Msn!73&X2fom^x5-9Tc57H`OLN-nnmy5xV`nES@b&}{%P^&-~FT+Aq|PhCYIG; z+Yf3Yt4~@>e)ICXi@!C3R*~&vS=F{asEI5eS`*)Y;hn|D8bPbb_MvlgTc@@@sEO>@ zFdifrsTpCqpG!3Esp(d19H&%kXN23kOWalc23Wo-JcM> zW+dE?WuLh9K_arOv;#c6^WVh>32J79eQ14Zv%}U0iO90jPWIaM|13U8P%|U!L+ewU z<+kq!iO90jj{NY>KNcS(sF@M=q4lY)I$IwkBHPNj;K-6-Hp~dq{mk&>xngcjMNntz z%7qzW?<6c=v}%)n=yX>%3YO(hC%qc0){hIK*NlW)+eUYjc#w!JE1g&?<|L?@5%$rt zWRtui5m{C`c~|a|pk_wcN6U8A8Me7gBC`8&cwX-y3Dp*&nGyEU-t)7(=OiNAiZLg_ zY?u+IYkg9_C~96m5`SCycW23ru%==j+P^>F)~B1xysK(d)x48UBAZyM zYTI~F6IuOGO|I6cHG)==?W3(~swZxJP!m}`R9mcdca5M`WcxU4<8*6T$##)Cv6 zsAtUx)BVhF^&%dOjjFY4`x0s@nxWl~ewT6WBCk|+uJQ5j>x48UBAZyM=i7Kt6Is1g z?Y&~YM$jsBg+)b`sRg z2>akJgG6Lm>E^H2C=%4n2>akJgG6Lm=?1gbS`yUE2>akJgG6LoF|s6>4Ku=YKbL&E zeZ!D_Nky=I1;72>**+tzAz|6S>)f2PTE3I8roMpC&3KI!iC!}j?gw`nBqGa7H~bZI z64cBH`&e!PwsQ%I$gSM{d?>^Z&6c3R)+lqtuoJ#1Y4DOj4kY2RV^Wr zksf_;tZ0>S+fV3*KXWkqRBh5&^_n95{%3A4M(c=I0DIph>RcNpL^MTYUK#t*Yl_Hh zHxj+3h|Iww(QAsx$}kelhOD)=V!ox{yO~HrvhEN@ADrQOtNIS8Jj6%tyhy0Ex;L2n z2th05f^Gpuf^Fa3am@R{mXMIF%Khl0*KohXvqAM;dBtbZinrlCK}``kC(K$^1g#{` zdrl3BREZ<{hbASPNKKs{RfHMtGK`(Nu_w3_yzj~OOjC;!`^+ah%q}no$6i?S*4z6qDH-X z;hvX{E zwVcjfSTV{(-oDU^w`U}BYb77KU2<>N2;QZT$i2~Qtm;{`$}P}H^cwc5o>aY1UUBYI ztLl!HvuiOLtJ09rh}7*XiQN?^tBmHZ`JRCqt|gjXKc1kKW}^8ngBlXb#E&O>D}Euw zo@*}2muEe}FH(A#Lx8QrW9jnrmaFIk=u%quvvY2MNvdYyGHa(MoGcjazwX z|6X{f;TLW7q_X$uQbWRDH_jrsOE~7t>0KY!S|%nl>O1ZAU3jl4Lg&QfLhqv|X!Rhc z2|icn-TCPDn)0DD?mU9MrU;#JD`ToBr$@b}2%UtJZ)NWYa&#rNlDd!HJPEpvPqp`mq?XjKS8ThMMk36 zR2`1KtKThxU8`~`)^nB9b%#()PxMwk-H)wGjbwbTYaIKDR6=YeB31RiReslGl~b_^ zj>0aHXOYM$eAcRZ7OhgT7>T^K*7%J|tMsmnME(+Km&hEmpP*H04kN)4q8J6RsMKK2m{_W|ye%Na=$_>P&vF>p`QB z?5U+monb$bzs;Btxh1bQIos)-x36nG&%RwgvZsze?fTuq@^ZRiKS*TPzn`F0KMK1( za%W0Ha(*v+^_(aJT4(FZewIVOMgB{_XiLn1rm(Fcj%%IA-f$QehPp78E` zMwF%}ywl%Ls4iB2d*E}zj3`acBDN~uHBx@hOG6^(otcj!Xq7Y7NKlh=+x}MN3@EFd z4NW{qJV@mHIkt)sq*cziBhhPo!hY~p<>YO`XZ6tsTa^>NteByF1UchKuDO=qh!>;X zYiWAoUaKJZZ%@kJSyDu*^=`ZCL1RBs5t1gAqWwf_OS?p>RHF|Pv`T${Bzg_|wAK%f zRVsygE=Ro|t6sye{9RidTa_< zrK1mJc+MYsyYyv+t!iB<56;BWkkA{fZzg6wilCKd34H-E64azxzrR(f{L4zST|M_f z)>;ypQP=uW&!UxP?Haclt9!FMM;pY1io)mR@ wDXThJ?zXB